summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/3rdparty/atspi2/atspi/atspi-constants.h118
-rw-r--r--src/3rdparty/des/des.cpp602
-rw-r--r--src/3rdparty/forkfd/forkfd.c495
-rw-r--r--src/3rdparty/forkfd/forkfd.h58
-rw-r--r--src/3rdparty/forkfd/forkfd_gcc.h76
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/Accessible2.h585
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/Accessible2_i.c79
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/Accessible2_p.c1196
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleAction.h220
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleAction_i.c79
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleAction_p.c557
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleApplication.h188
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleApplication_i.c79
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleApplication_p.c420
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleComponent.h185
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleComponent_i.c79
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleComponent_p.c360
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleEditableText.h235
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleEditableText_i.c79
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleEditableText_p.c579
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleEventID.h105
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleHyperlink.h252
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleHyperlink_i.c79
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleHyperlink_p.c1113
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleHypertext.h349
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleHypertext_i.c79
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleHypertext_p.c454
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleImage.h185
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleImage_i.c79
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleImage_p.c414
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleRelation.h244
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleRelation_i.c79
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleRelation_p.c520
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleRole.h118
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleStates.h95
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleTable.h497
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleTable2.h367
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleTable2_i.c79
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleTable2_p.c1099
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleTableCell.h246
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleTableCell_i.c79
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleTableCell_p.c634
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleTable_i.c79
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleTable_p.c1543
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleText.h435
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleText_i.c79
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleText_p.c1203
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleValue.h188
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleValue_i.c79
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/AccessibleValue_p.c1029
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/IA2CommonTypes.h102
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/IA2TypeLibrary.h103
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/IA2TypeLibrary.tlbbin1236 -> 0 bytes
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/IA2TypeLibrary_i.c79
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/dlldata.c30
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/ia2_api_all.h4667
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/ia2_api_all.tlbbin0 -> 27672 bytes
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/ia2_api_all_i.c133
-rw-r--r--src/3rdparty/iaccessible2/generated/amd64/ia2_api_all_p.c7867
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/Accessible2.h585
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/Accessible2_i.c79
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/Accessible2_p.c1190
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleAction.h220
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleAction_i.c79
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleAction_p.c563
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleApplication.h188
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleApplication_i.c79
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleApplication_p.c428
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleComponent.h185
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleComponent_i.c79
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleComponent_p.c369
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleEditableText.h235
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleEditableText_i.c79
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleEditableText_p.c584
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleEventID.h105
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleHyperlink.h252
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleHyperlink_i.c79
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleHyperlink_p.c1191
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleHypertext.h349
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleHypertext_i.c79
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleHypertext_p.c463
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleImage.h185
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleImage_i.c79
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleImage_p.c423
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleRelation.h244
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleRelation_i.c79
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleRelation_p.c527
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleRole.h118
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleStates.h95
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleTable.h497
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleTable2.h367
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleTable2_i.c79
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleTable2_p.c1091
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleTableCell.h246
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleTableCell_i.c79
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleTableCell_p.c637
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleTable_i.c79
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleTable_p.c1526
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleText.h435
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleText_i.c79
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleText_p.c1196
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleValue.h188
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleValue_i.c79
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/AccessibleValue_p.c1105
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/IA2CommonTypes.h102
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/IA2TypeLibrary.h103
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/IA2TypeLibrary.tlbbin1236 -> 0 bytes
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/IA2TypeLibrary_i.c79
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/dlldata.c30
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/ia2_api_all.h4667
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/ia2_api_all.tlbbin0 -> 27672 bytes
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/ia2_api_all_i.c133
-rw-r--r--src/3rdparty/iaccessible2/generated/x86/ia2_api_all_p.c7823
-rw-r--r--src/3rdparty/iaccessible2/iaccessible2.pri74
-rw-r--r--src/3rdparty/iaccessible2/idl/Accessible2.idl679
-rw-r--r--src/3rdparty/iaccessible2/idl/AccessibleAction.idl194
-rw-r--r--src/3rdparty/iaccessible2/idl/AccessibleApplication.idl121
-rw-r--r--src/3rdparty/iaccessible2/idl/AccessibleComponent.idl124
-rw-r--r--src/3rdparty/iaccessible2/idl/AccessibleEditableText.idl259
-rw-r--r--src/3rdparty/iaccessible2/idl/AccessibleEventID.idl230
-rw-r--r--src/3rdparty/iaccessible2/idl/AccessibleHyperlink.idl187
-rw-r--r--src/3rdparty/iaccessible2/idl/AccessibleHypertext.idl123
-rw-r--r--src/3rdparty/iaccessible2/idl/AccessibleImage.idl111
-rw-r--r--src/3rdparty/iaccessible2/idl/AccessibleRelation.idl197
-rw-r--r--src/3rdparty/iaccessible2/idl/AccessibleRole.idl293
-rw-r--r--src/3rdparty/iaccessible2/idl/AccessibleStates.idl209
-rw-r--r--src/3rdparty/iaccessible2/idl/AccessibleTable.idl551
-rw-r--r--src/3rdparty/iaccessible2/idl/AccessibleTable2.idl375
-rw-r--r--src/3rdparty/iaccessible2/idl/AccessibleTableCell.idl194
-rw-r--r--src/3rdparty/iaccessible2/idl/AccessibleText.idl674
-rw-r--r--src/3rdparty/iaccessible2/idl/AccessibleValue.idl136
-rw-r--r--src/3rdparty/iaccessible2/idl/IA2CommonTypes.idl191
-rw-r--r--src/3rdparty/iaccessible2/idl/IA2TypeLibrary.idl94
-rw-r--r--src/3rdparty/iaccessible2/idl/Makefile41
-rw-r--r--src/3rdparty/iaccessible2/idl/README3
-rw-r--r--src/3rdparty/iaccessible2/idl/ia2_api_all.idl5473
-rw-r--r--src/concurrent/qtconcurrentthreadengine.h4
-rw-r--r--src/corelib/animation/qabstractanimation.h2
-rw-r--r--src/corelib/animation/qabstractanimation_p.h10
-rw-r--r--src/corelib/animation/qanimationgroup.h2
-rw-r--r--src/corelib/animation/qparallelanimationgroup.h10
-rw-r--r--src/corelib/animation/qparallelanimationgroup_p.h2
-rw-r--r--src/corelib/animation/qpauseanimation.h6
-rw-r--r--src/corelib/animation/qpropertyanimation.h6
-rw-r--r--src/corelib/animation/qsequentialanimationgroup.h10
-rw-r--r--src/corelib/animation/qsequentialanimationgroup_p.h4
-rw-r--r--src/corelib/animation/qvariantanimation.h8
-rw-r--r--src/corelib/codecs/qicucodec_p.h10
-rw-r--r--src/corelib/codecs/qisciicodec_p.h8
-rw-r--r--src/corelib/codecs/qlatincodec_p.h20
-rw-r--r--src/corelib/codecs/qtsciicodec_p.h8
-rw-r--r--src/corelib/codecs/qutfcodec_p.h52
-rw-r--r--src/corelib/doc/snippets/code/src_corelib_kernel_qmimedata.cpp6
-rw-r--r--src/corelib/doc/snippets/qstring/main.cpp14
-rw-r--r--src/corelib/global/qcompilerdetection.h104
-rw-r--r--src/corelib/global/qflags.h14
-rw-r--r--src/corelib/global/qglobal.cpp116
-rw-r--r--src/corelib/global/qglobal.h37
-rw-r--r--src/corelib/global/qlibraryinfo.cpp2
-rw-r--r--src/corelib/global/qlogging.cpp19
-rw-r--r--src/corelib/global/qsysinfo.h18
-rw-r--r--src/corelib/io/qbuffer.cpp4
-rw-r--r--src/corelib/io/qbuffer.h22
-rw-r--r--src/corelib/io/qdatastream.cpp1
-rw-r--r--src/corelib/io/qdatastream.h5
-rw-r--r--src/corelib/io/qdebug.cpp22
-rw-r--r--src/corelib/io/qdebug.h11
-rw-r--r--src/corelib/io/qdir.cpp29
-rw-r--r--src/corelib/io/qfile.h12
-rw-r--r--src/corelib/io/qfiledevice.h18
-rw-r--r--src/corelib/io/qfiledevice_p.h2
-rw-r--r--src/corelib/io/qfileselector.cpp2
-rw-r--r--src/corelib/io/qfilesystemengine_unix.cpp37
-rw-r--r--src/corelib/io/qfilesystemwatcher_inotify_p.h4
-rw-r--r--src/corelib/io/qfilesystemwatcher_polling_p.h4
-rw-r--r--src/corelib/io/qfsfileengine_iterator_p.h8
-rw-r--r--src/corelib/io/qfsfileengine_p.h68
-rw-r--r--src/corelib/io/qiodevice.cpp167
-rw-r--r--src/corelib/io/qipaddress.cpp3
-rw-r--r--src/corelib/io/qnoncontiguousbytedevice_p.h52
-rw-r--r--src/corelib/io/qprocess.h20
-rw-r--r--src/corelib/io/qprocess_unix.cpp2
-rw-r--r--src/corelib/io/qresource.cpp22
-rw-r--r--src/corelib/io/qresource_iterator_p.h6
-rw-r--r--src/corelib/io/qresource_p.h60
-rw-r--r--src/corelib/io/qsettings.h2
-rw-r--r--src/corelib/io/qsettings_p.h18
-rw-r--r--src/corelib/io/qstorageinfo_p.h6
-rw-r--r--src/corelib/io/qstorageinfo_unix.cpp4
-rw-r--r--src/corelib/io/qstorageinfo_win.cpp8
-rw-r--r--src/corelib/io/qtemporaryfile.cpp1
-rw-r--r--src/corelib/io/qtemporaryfile.h4
-rw-r--r--src/corelib/io/qtextstream.cpp85
-rw-r--r--src/corelib/io/qtextstream_p.h8
-rw-r--r--src/corelib/io/qurlrecode.cpp4
-rw-r--r--src/corelib/itemmodels/qabstractitemmodel.cpp17
-rw-r--r--src/corelib/itemmodels/qabstractitemmodel.h34
-rw-r--r--src/corelib/itemmodels/qabstractproxymodel.h48
-rw-r--r--src/corelib/itemmodels/qidentityproxymodel.cpp3
-rw-r--r--src/corelib/itemmodels/qidentityproxymodel.h38
-rw-r--r--src/corelib/itemmodels/qsortfilterproxymodel.cpp23
-rw-r--r--src/corelib/itemmodels/qsortfilterproxymodel.h66
-rw-r--r--src/corelib/itemmodels/qstringlistmodel.h18
-rw-r--r--src/corelib/json/qjsonobject.cpp43
-rw-r--r--src/corelib/json/qjsonobject.h4
-rw-r--r--src/corelib/json/qjsonvalue.cpp3
-rw-r--r--src/corelib/kernel/kernel.pri24
-rw-r--r--src/corelib/kernel/qcore_mac_objc.mm67
-rw-r--r--src/corelib/kernel/qcore_mac_p.h8
-rw-r--r--src/corelib/kernel/qcoreapplication.h2
-rw-r--r--src/corelib/kernel/qcoreevent.cpp1
-rw-r--r--src/corelib/kernel/qcoreevent.h2
-rw-r--r--src/corelib/kernel/qeventdispatcher_glib_p.h4
-rw-r--r--src/corelib/kernel/qeventdispatcher_unix_p.h6
-rw-r--r--src/corelib/kernel/qeventloop.h2
-rw-r--r--src/corelib/kernel/qfunctions_wince.h2
-rw-r--r--src/corelib/kernel/qmetaobject.cpp208
-rw-r--r--src/corelib/kernel/qmetaobject.h35
-rw-r--r--src/corelib/kernel/qmetaobject_p.h4
-rw-r--r--src/corelib/kernel/qmetatype.cpp256
-rw-r--r--src/corelib/kernel/qmetatype.h70
-rw-r--r--src/corelib/kernel/qmetatype_p.h6
-rw-r--r--src/corelib/kernel/qmimedata.cpp5
-rw-r--r--src/corelib/kernel/qobject.cpp10
-rw-r--r--src/corelib/kernel/qobject_p.h4
-rw-r--r--src/corelib/kernel/qobjectdefs.h15
-rw-r--r--src/corelib/kernel/qsocketnotifier.h2
-rw-r--r--src/corelib/kernel/qtimer.cpp2
-rw-r--r--src/corelib/kernel/qtimer.h2
-rw-r--r--src/corelib/kernel/qtranslator.cpp1
-rw-r--r--src/corelib/kernel/qvariant.cpp211
-rw-r--r--src/corelib/mimetypes/qmimedatabase_p.h1
-rw-r--r--src/corelib/mimetypes/qmimeprovider_p.h38
-rw-r--r--src/corelib/plugin/qlibrary.cpp10
-rw-r--r--src/corelib/plugin/qlibrary.h3
-rw-r--r--src/corelib/plugin/qlibrary_unix.cpp4
-rw-r--r--src/corelib/plugin/quuid.cpp21
-rw-r--r--src/corelib/plugin/quuid.h15
-rw-r--r--src/corelib/statemachine/qabstractstate.h2
-rw-r--r--src/corelib/statemachine/qabstracttransition.h2
-rw-r--r--src/corelib/statemachine/qeventtransition.h6
-rw-r--r--src/corelib/statemachine/qfinalstate.h6
-rw-r--r--src/corelib/statemachine/qhistorystate.h6
-rw-r--r--src/corelib/statemachine/qsignaltransition.h6
-rw-r--r--src/corelib/statemachine/qsignaltransition_p.h2
-rw-r--r--src/corelib/statemachine/qstate.cpp15
-rw-r--r--src/corelib/statemachine/qstate.h20
-rw-r--r--src/corelib/statemachine/qstatemachine.cpp8
-rw-r--r--src/corelib/statemachine/qstatemachine.h8
-rw-r--r--src/corelib/thread/qatomic.h11
-rw-r--r--src/corelib/thread/qexception.h4
-rw-r--r--src/corelib/thread/qfutureinterface.cpp4
-rw-r--r--src/corelib/thread/qfuturewatcher.h14
-rw-r--r--src/corelib/thread/qfuturewatcher_p.h4
-rw-r--r--src/corelib/thread/qthread.h2
-rw-r--r--src/corelib/thread/qthread_p.h2
-rw-r--r--src/corelib/thread/qthreadpool.cpp46
-rw-r--r--src/corelib/thread/qthreadpool.h1
-rw-r--r--src/corelib/thread/qthreadpool_p.h3
-rw-r--r--src/corelib/tools/qarraydata.cpp19
-rw-r--r--src/corelib/tools/qarraydatapointer.h6
-rw-r--r--src/corelib/tools/qbytearray.cpp237
-rw-r--r--src/corelib/tools/qbytearray.h40
-rw-r--r--src/corelib/tools/qchar.h125
-rw-r--r--src/corelib/tools/qcommandlineparser.cpp68
-rw-r--r--src/corelib/tools/qdatetime.cpp101
-rw-r--r--src/corelib/tools/qdatetime.h16
-rw-r--r--src/corelib/tools/qdatetime_mac.mm76
-rw-r--r--src/corelib/tools/qdatetime_p.h3
-rw-r--r--src/corelib/tools/qeasingcurve.cpp105
-rw-r--r--src/corelib/tools/qelapsedtimer_generic.cpp4
-rw-r--r--src/corelib/tools/qelapsedtimer_unix.cpp14
-rw-r--r--src/corelib/tools/qhash.cpp46
-rw-r--r--src/corelib/tools/qhash.h2
-rw-r--r--src/corelib/tools/qlist.cpp2
-rw-r--r--src/corelib/tools/qlist.h25
-rw-r--r--src/corelib/tools/qmap.cpp43
-rw-r--r--src/corelib/tools/qmap.h2
-rw-r--r--src/corelib/tools/qmargins.h90
-rw-r--r--src/corelib/tools/qpair.h4
-rw-r--r--src/corelib/tools/qpoint.h72
-rw-r--r--src/corelib/tools/qrect.h264
-rw-r--r--src/corelib/tools/qregularexpression.cpp131
-rw-r--r--src/corelib/tools/qregularexpression.h10
-rw-r--r--src/corelib/tools/qringbuffer_p.h46
-rw-r--r--src/corelib/tools/qsize.h56
-rw-r--r--src/corelib/tools/qstring.cpp514
-rw-r--r--src/corelib/tools/qstring.h88
-rw-r--r--src/corelib/tools/qstring_compat.cpp49
-rw-r--r--src/corelib/tools/qstringalgorithms_p.h156
-rw-r--r--src/corelib/tools/qstringiterator_p.h5
-rw-r--r--src/corelib/tools/qstringlist.cpp45
-rw-r--r--src/corelib/tools/qstringlist.h18
-rw-r--r--src/corelib/tools/qtimeline.h2
-rw-r--r--src/corelib/tools/qtimezone.cpp4
-rw-r--r--src/corelib/tools/qtimezoneprivate_android.cpp287
-rw-r--r--src/corelib/tools/qtimezoneprivate_p.h50
-rw-r--r--src/corelib/tools/qtools_p.h31
-rw-r--r--src/corelib/tools/qvector.cpp12
-rw-r--r--src/corelib/tools/qvector.h26
-rw-r--r--src/corelib/tools/tools.pri11
-rw-r--r--src/corelib/xml/qxmlstream.cpp9
-rw-r--r--src/corelib/xml/qxmlstream.h5
-rw-r--r--src/dbus/qdbusabstractinterface.h6
-rw-r--r--src/dbus/qdbusargument_p.h3
-rw-r--r--src/dbus/qdbusconnection.h1
-rw-r--r--src/dbus/qdbusconnection_p.h4
-rw-r--r--src/dbus/qdbusconnectioninterface.h4
-rw-r--r--src/dbus/qdbusintegrator.cpp2
-rw-r--r--src/dbus/qdbusintegrator_p.h4
-rw-r--r--src/dbus/qdbusinterface.h6
-rw-r--r--src/dbus/qdbusmarshaller.cpp87
-rw-r--r--src/dbus/qdbusmetaobject.cpp14
-rw-r--r--src/dbus/qdbuspendingreply.h5
-rw-r--r--src/gui/Qt5GuiConfigExtras.cmake.in3
-rw-r--r--src/gui/accessible/qaccessible.cpp105
-rw-r--r--src/gui/accessible/qaccessible.h6
-rw-r--r--src/gui/accessible/qaccessiblecache.cpp4
-rw-r--r--src/gui/accessible/qaccessiblecache_p.h4
-rw-r--r--src/gui/gui.pro4
-rw-r--r--src/gui/image/qbmphandler.cpp4
-rw-r--r--src/gui/image/qgifhandler_p.h22
-rw-r--r--src/gui/image/qicon.cpp2
-rw-r--r--src/gui/image/qicon_p.h22
-rw-r--r--src/gui/image/qimage.cpp98
-rw-r--r--src/gui/image/qimage.h38
-rw-r--r--src/gui/image/qimage_conversions.cpp333
-rw-r--r--src/gui/image/qimage_p.h2
-rw-r--r--src/gui/image/qimagereader.cpp2
-rw-r--r--src/gui/image/qjpeghandler.cpp31
-rw-r--r--src/gui/image/qjpeghandler_p.h14
-rw-r--r--src/gui/image/qpaintengine_pic_p.h27
-rw-r--r--src/gui/image/qpicture.cpp4
-rw-r--r--src/gui/image/qpicture.h6
-rw-r--r--src/gui/image/qpixmap.h6
-rw-r--r--src/gui/image/qpixmap_blitter_p.h22
-rw-r--r--src/gui/image/qpixmap_raster.cpp9
-rw-r--r--src/gui/image/qpixmap_raster_p.h38
-rw-r--r--src/gui/image/qpixmapcache.cpp2
-rw-r--r--src/gui/image/qpnghandler.cpp14
-rw-r--r--src/gui/image/qppmhandler.cpp108
-rw-r--r--src/gui/itemmodels/qstandarditemmodel.cpp6
-rw-r--r--src/gui/itemmodels/qstandarditemmodel.h48
-rw-r--r--src/gui/kernel/qdnd_p.h6
-rw-r--r--src/gui/kernel/qevent.cpp63
-rw-r--r--src/gui/kernel/qevent.h19
-rw-r--r--src/gui/kernel/qguiapplication.cpp61
-rw-r--r--src/gui/kernel/qguiapplication.h6
-rw-r--r--src/gui/kernel/qguiapplication_p.h2
-rw-r--r--src/gui/kernel/qkeysequence.cpp5
-rw-r--r--src/gui/kernel/qkeysequence.h3
-rw-r--r--src/gui/kernel/qoffscreensurface.cpp7
-rw-r--r--src/gui/kernel/qoffscreensurface.h8
-rw-r--r--src/gui/kernel/qopenglcontext.cpp1
-rw-r--r--src/gui/kernel/qopenglcontext_p.h4
-rw-r--r--src/gui/kernel/qopenglwindow.cpp29
-rw-r--r--src/gui/kernel/qopenglwindow.h2
-rw-r--r--src/gui/kernel/qpaintdevicewindow.cpp5
-rw-r--r--src/gui/kernel/qpaintdevicewindow_p.h12
-rw-r--r--src/gui/kernel/qpixelformat.cpp18
-rw-r--r--src/gui/kernel/qpixelformat.h19
-rw-r--r--src/gui/kernel/qplatformintegration.cpp28
-rw-r--r--src/gui/kernel/qplatformintegration.h2
-rw-r--r--src/gui/kernel/qplatformoffscreensurface.h2
-rw-r--r--src/gui/kernel/qplatformopenglcontext.cpp10
-rw-r--r--src/gui/kernel/qplatformopenglcontext.h2
-rw-r--r--src/gui/kernel/qplatformscreen.cpp8
-rw-r--r--src/gui/kernel/qplatformsystemtrayicon.cpp2
-rw-r--r--src/gui/kernel/qplatformsystemtrayicon.h2
-rw-r--r--src/gui/kernel/qplatformtheme.cpp7
-rw-r--r--src/gui/kernel/qplatformtheme.h3
-rw-r--r--src/gui/kernel/qplatformwindow.cpp32
-rw-r--r--src/gui/kernel/qplatformwindow.h3
-rw-r--r--src/gui/kernel/qshapedpixmapdndwindow_p.h2
-rw-r--r--src/gui/kernel/qshortcutmap.cpp4
-rw-r--r--src/gui/kernel/qsimpledrag_p.h14
-rw-r--r--src/gui/kernel/qsurface.h4
-rw-r--r--src/gui/kernel/qwindow.cpp79
-rw-r--r--src/gui/kernel/qwindow.h10
-rw-r--r--src/gui/kernel/qwindow_p.h11
-rw-r--r--src/gui/kernel/qwindowsysteminterface.cpp44
-rw-r--r--src/gui/kernel/qwindowsysteminterface.h5
-rw-r--r--src/gui/kernel/qwindowsysteminterface_p.h20
-rw-r--r--src/gui/opengl/qopenglengineshadermanager.cpp16
-rw-r--r--src/gui/opengl/qopenglengineshadermanager_p.h6
-rw-r--r--src/gui/opengl/qopenglengineshadersource_p.h16
-rw-r--r--src/gui/opengl/qopenglextensions_p.h14
-rw-r--r--src/gui/opengl/qopenglfunctions.cpp18
-rw-r--r--src/gui/opengl/qopenglfunctions.h3
-rw-r--r--src/gui/opengl/qopenglgradientcache_p.h4
-rw-r--r--src/gui/opengl/qopenglpaintengine.cpp16
-rw-r--r--src/gui/opengl/qopenglpaintengine_p.h56
-rw-r--r--src/gui/opengl/qopenglshaderprogram.cpp153
-rw-r--r--src/gui/opengl/qopengltexture.cpp470
-rw-r--r--src/gui/opengl/qopengltexture.h211
-rw-r--r--src/gui/opengl/qopengltexture_p.h4
-rw-r--r--src/gui/opengl/qopengltexturecache.cpp33
-rw-r--r--src/gui/opengl/qopengltexturecache_p.h5
-rw-r--r--src/gui/opengl/qopengltextureglyphcache_p.h16
-rw-r--r--src/gui/opengl/qopengltexturehelper.cpp5
-rw-r--r--src/gui/opengl/qopenglvertexarrayobject.cpp5
-rw-r--r--src/gui/opengl/qtriangulator.cpp6
-rw-r--r--src/gui/painting/painting.pri1
-rw-r--r--src/gui/painting/qblendfunctions.cpp426
-rw-r--r--src/gui/painting/qbrush.h2
-rw-r--r--src/gui/painting/qcolor.h2
-rw-r--r--src/gui/painting/qdrawhelper.cpp103
-rw-r--r--src/gui/painting/qdrawhelper_sse2.cpp4
-rw-r--r--src/gui/painting/qdrawhelper_sse_p.h4
-rw-r--r--src/gui/painting/qmemrotate.cpp17
-rw-r--r--src/gui/painting/qpaintbuffer.cpp6
-rw-r--r--src/gui/painting/qpaintengineex_p.h26
-rw-r--r--src/gui/painting/qpainter.cpp14
-rw-r--r--src/gui/painting/qpdf.cpp13
-rw-r--r--src/gui/painting/qpdf_p.h26
-rw-r--r--src/gui/painting/qrgb.h14
-rw-r--r--src/gui/painting/qtextureglyphcache.cpp8
-rw-r--r--src/gui/painting/qtextureglyphcache_p.h6
-rw-r--r--src/gui/text/qdistancefield.cpp5
-rw-r--r--src/gui/text/qfont.cpp10
-rw-r--r--src/gui/text/qfont.h17
-rw-r--r--src/gui/text/qfont_p.h2
-rw-r--r--src/gui/text/qfontdatabase.cpp203
-rw-r--r--src/gui/text/qfontdatabase.h2
-rw-r--r--src/gui/text/qfontengine.cpp219
-rw-r--r--src/gui/text/qfontengine_ft.cpp11
-rw-r--r--src/gui/text/qfontengine_ft_p.h82
-rw-r--r--src/gui/text/qfontengine_p.h134
-rw-r--r--src/gui/text/qfontengine_qpf2.cpp2
-rw-r--r--src/gui/text/qfontengine_qpf2_p.h36
-rw-r--r--src/gui/text/qfragmentmap_p.h2
-rw-r--r--src/gui/text/qplatformfontdatabase.cpp30
-rw-r--r--src/gui/text/qplatformfontdatabase.h1
-rw-r--r--src/gui/text/qstatictext.cpp46
-rw-r--r--src/gui/text/qstatictext_p.h21
-rw-r--r--src/gui/text/qtextdocument.cpp253
-rw-r--r--src/gui/text/qtextdocument.h11
-rw-r--r--src/gui/text/qtextdocument_p.cpp2
-rw-r--r--src/gui/text/qtextdocumentlayout_p.h22
-rw-r--r--src/gui/text/qtextengine.cpp4
-rw-r--r--src/gui/text/qtextformat.cpp20
-rw-r--r--src/gui/text/qtexthtmlparser.cpp16
-rw-r--r--src/gui/text/qtextimagehandler_p.h4
-rw-r--r--src/gui/text/qtextodfwriter.cpp4
-rw-r--r--src/gui/text/qtexttable_p.h4
-rw-r--r--src/gui/util/qabstractlayoutstyleinfo.cpp7
-rw-r--r--src/gui/util/qabstractlayoutstyleinfo_p.h21
-rw-r--r--src/gui/util/qgridlayoutengine.cpp4
-rw-r--r--src/gui/util/qvalidator.h8
-rw-r--r--src/network/access/qhttpmultipart_p.h18
-rw-r--r--src/network/access/qhttpnetworkconnection.cpp11
-rw-r--r--src/network/access/qhttpnetworkconnection_p.h2
-rw-r--r--src/network/access/qhttpnetworkreply_p.h18
-rw-r--r--src/network/access/qhttpnetworkrequest_p.h18
-rw-r--r--src/network/access/qhttpthreaddelegate.cpp12
-rw-r--r--src/network/access/qhttpthreaddelegate_p.h10
-rw-r--r--src/network/access/qnetworkaccessauthenticationmanager.cpp2
-rw-r--r--src/network/access/qnetworkaccesscache_p.h2
-rw-r--r--src/network/access/qnetworkaccesscachebackend_p.h6
-rw-r--r--src/network/access/qnetworkaccessdebugpipebackend_p.h8
-rw-r--r--src/network/access/qnetworkaccessfilebackend_p.h8
-rw-r--r--src/network/access/qnetworkaccessftpbackend.cpp2
-rw-r--r--src/network/access/qnetworkaccessftpbackend_p.h8
-rw-r--r--src/network/access/qnetworkdiskcache.h16
-rw-r--r--src/network/access/qnetworkreply.cpp1
-rw-r--r--src/network/access/qnetworkreply.h6
-rw-r--r--src/network/access/qnetworkreply_p.h1
-rw-r--r--src/network/access/qnetworkreplydataimpl_p.h12
-rw-r--r--src/network/access/qnetworkreplyfileimpl_p.h12
-rw-r--r--src/network/access/qnetworkreplyhttpimpl.cpp19
-rw-r--r--src/network/access/qnetworkreplyhttpimpl_p.h24
-rw-r--r--src/network/access/qnetworkreplyimpl.cpp18
-rw-r--r--src/network/access/qnetworkreplyimpl_p.h26
-rw-r--r--src/network/access/qnetworkrequest.cpp7
-rw-r--r--src/network/access/qnetworkrequest.h1
-rw-r--r--src/network/bearer/qnetworksession.h4
-rw-r--r--src/network/kernel/qauthenticator.cpp59
-rw-r--r--src/network/kernel/qdnslookup_p.h2
-rw-r--r--src/network/kernel/qhostinfo_p.h4
-rw-r--r--src/network/socket/qabstractsocket.h22
-rw-r--r--src/network/socket/qhttpsocketengine_p.h70
-rw-r--r--src/network/socket/qlocalsocket.h18
-rw-r--r--src/network/socket/qnativesocketengine_p.h68
-rw-r--r--src/network/socket/qsocks5socketengine.cpp2
-rw-r--r--src/network/socket/qsocks5socketengine_p.h78
-rw-r--r--src/network/socket/qtcpserver.cpp4
-rw-r--r--src/network/ssl/qsslconfiguration.cpp46
-rw-r--r--src/network/ssl/qsslconfiguration.h5
-rw-r--r--src/network/ssl/qsslconfiguration_p.h3
-rw-r--r--src/network/ssl/qsslcontext_openssl.cpp45
-rw-r--r--src/network/ssl/qsslellipticcurve.cpp173
-rw-r--r--src/network/ssl/qsslellipticcurve.h103
-rw-r--r--src/network/ssl/qsslellipticcurve_dummy.cpp67
-rw-r--r--src/network/ssl/qsslellipticcurve_openssl.cpp167
-rw-r--r--src/network/ssl/qsslsocket.cpp161
-rw-r--r--src/network/ssl/qsslsocket.h44
-rw-r--r--src/network/ssl/qsslsocket_openssl.cpp28
-rw-r--r--src/network/ssl/qsslsocket_openssl_p.h16
-rw-r--r--src/network/ssl/qsslsocket_openssl_symbols.cpp11
-rw-r--r--src/network/ssl/qsslsocket_openssl_symbols_p.h7
-rw-r--r--src/network/ssl/qsslsocket_p.h10
-rw-r--r--src/network/ssl/ssl.pri6
-rw-r--r--src/opengl/gl2paintengineex/qglengineshadermanager.cpp4
-rw-r--r--src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp2
-rw-r--r--src/opengl/gl2paintengineex/qpaintengineex_opengl2_p.h56
-rw-r--r--src/opengl/gl2paintengineex/qtextureglyphcache_gl_p.h16
-rw-r--r--src/opengl/qgl.h8
-rw-r--r--src/opengl/qgl_p.h8
-rw-r--r--src/opengl/qglframebufferobject.h6
-rw-r--r--src/opengl/qglframebufferobject_p.h10
-rw-r--r--src/opengl/qglfunctions.cpp4
-rw-r--r--src/opengl/qglpaintdevice_p.h14
-rw-r--r--src/opengl/qglpixelbuffer.h6
-rw-r--r--src/opengl/qgraphicsshadereffect.cpp2
-rw-r--r--src/opengl/qgraphicsshadereffect_p.h2
-rw-r--r--src/platformsupport/accessibility/qaccessiblebridgeutils_p.h4
-rw-r--r--src/platformsupport/eglconvenience/eglconvenience.pri4
-rw-r--r--src/platformsupport/eglconvenience/qeglconvenience.cpp12
-rw-r--r--src/platformsupport/eglconvenience/qeglpbuffer_p.h4
-rw-r--r--src/platformsupport/eglconvenience/qeglplatformcontext.cpp56
-rw-r--r--src/platformsupport/eglconvenience/qeglplatformcontext_p.h17
-rw-r--r--src/platformsupport/eglconvenience/qeglplatformcursor_p.h1
-rw-r--r--src/platformsupport/eglconvenience/qeglplatformintegration.cpp45
-rw-r--r--src/platformsupport/eglconvenience/qeglplatformintegration_p.h5
-rw-r--r--src/platformsupport/eglconvenience/qeglplatformscreen.cpp49
-rw-r--r--src/platformsupport/eglconvenience/qeglplatformscreen_p.h13
-rw-r--r--src/platformsupport/eglconvenience/qeglplatformwindow.cpp24
-rw-r--r--src/platformsupport/eglconvenience/qeglplatformwindow_p.h17
-rw-r--r--src/platformsupport/eglconvenience/qxlibeglintegration.cpp34
-rw-r--r--src/platformsupport/eventdispatchers/qeventdispatcher_glib_p.h2
-rw-r--r--src/platformsupport/fbconvenience/qfbbackingstore_p.h6
-rw-r--r--src/platformsupport/fbconvenience/qfbcursor_p.h4
-rw-r--r--src/platformsupport/fbconvenience/qfbvthandler.cpp2
-rw-r--r--src/platformsupport/fontdatabases/basic/qbasicfontdatabase.cpp31
-rw-r--r--src/platformsupport/fontdatabases/basic/qbasicfontdatabase_p.h12
-rw-r--r--src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp47
-rw-r--r--src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase_p.h16
-rw-r--r--src/platformsupport/fontdatabases/fontconfig/qfontenginemultifontconfig.cpp6
-rw-r--r--src/platformsupport/fontdatabases/fontconfig/qfontenginemultifontconfig_p.h4
-rw-r--r--src/platformsupport/fontdatabases/mac/qcoretextfontdatabase.mm27
-rw-r--r--src/platformsupport/fontdatabases/mac/qcoretextfontdatabase_p.h1
-rw-r--r--src/platformsupport/fontdatabases/mac/qfontengine_coretext.mm76
-rw-r--r--src/platformsupport/fontdatabases/mac/qfontengine_coretext_p.h5
-rw-r--r--src/platformsupport/input/evdevkeyboard/qevdevkeyboardhandler.cpp72
-rw-r--r--src/platformsupport/input/evdevkeyboard/qevdevkeyboardmanager.cpp25
-rw-r--r--src/platformsupport/input/evdevmouse/qevdevmousehandler.cpp28
-rw-r--r--src/platformsupport/input/evdevmouse/qevdevmousemanager.cpp33
-rw-r--r--src/platformsupport/input/evdevtablet/qevdevtablet.cpp16
-rw-r--r--src/platformsupport/input/evdevtablet/qevdevtablet_p.h2
-rw-r--r--src/platformsupport/input/evdevtouch/qevdevtouch.cpp35
-rw-r--r--src/platformsupport/input/evdevtouch/qevdevtouch_p.h2
-rw-r--r--src/platformsupport/input/input.pri8
-rw-r--r--src/platformsupport/input/libinput/libinput.pri21
-rw-r--r--src/platformsupport/input/libinput/qlibinputhandler.cpp188
-rw-r--r--src/platformsupport/input/libinput/qlibinputhandler_p.h90
-rw-r--r--src/platformsupport/input/libinput/qlibinputkeyboard.cpp279
-rw-r--r--src/platformsupport/input/libinput/qlibinputkeyboard_p.h98
-rw-r--r--src/platformsupport/input/libinput/qlibinputpointer.cpp101
-rw-r--r--src/platformsupport/input/libinput/qlibinputpointer_p.h (renamed from src/platformsupport/eglconvenience/qeglcompositor_p.h)41
-rw-r--r--src/platformsupport/input/libinput/qlibinputtouch.cpp165
-rw-r--r--src/platformsupport/input/libinput/qlibinputtouch_p.h83
-rw-r--r--src/platformsupport/input/tslib/qtslib.cpp (renamed from src/plugins/generic/tslib/qtslib.cpp)34
-rw-r--r--src/platformsupport/input/tslib/qtslib_p.h (renamed from src/plugins/generic/tslib/qtslib.h)11
-rw-r--r--src/platformsupport/input/tslib/tslib.pri7
-rw-r--r--src/platformsupport/linuxaccessibility/application.cpp3
-rw-r--r--src/platformsupport/linuxaccessibility/application_p.h4
-rw-r--r--src/platformsupport/linuxaccessibility/atspiadaptor.cpp2
-rw-r--r--src/platformsupport/linuxaccessibility/atspiadaptor_p.h2
-rw-r--r--src/platformsupport/linuxaccessibility/bridge.cpp2
-rw-r--r--src/platformsupport/linuxaccessibility/bridge_p.h4
-rw-r--r--src/platformsupport/linuxaccessibility/cache.cpp6
-rw-r--r--src/platformsupport/linuxaccessibility/cache_p.h2
-rw-r--r--src/platformsupport/linuxaccessibility/constant_mappings.cpp2
-rw-r--r--src/platformsupport/linuxaccessibility/constant_mappings_p.h2
-rw-r--r--src/platformsupport/linuxaccessibility/struct_marshallers.cpp2
-rw-r--r--src/platformsupport/linuxaccessibility/struct_marshallers_p.h2
-rw-r--r--src/platformsupport/platformcompositor/platformcompositor.pri7
-rw-r--r--src/platformsupport/platformcompositor/qopenglcompositor.cpp (renamed from src/platformsupport/eglconvenience/qeglcompositor.cpp)158
-rw-r--r--src/platformsupport/platformcompositor/qopenglcompositor_p.h107
-rw-r--r--src/platformsupport/platformcompositor/qopenglcompositorbackingstore.cpp (renamed from src/platformsupport/eglconvenience/qeglplatformbackingstore.cpp)103
-rw-r--r--src/platformsupport/platformcompositor/qopenglcompositorbackingstore_p.h (renamed from src/platformsupport/eglconvenience/qeglplatformbackingstore_p.h)20
-rw-r--r--src/platformsupport/platformsupport.pro1
-rw-r--r--src/platformsupport/services/genericunix/qgenericunixservices_p.h6
-rw-r--r--src/platformsupport/themes/genericunix/qgenericunixthemes.cpp42
-rw-r--r--src/platformsupport/themes/genericunix/qgenericunixthemes_p.h14
-rw-r--r--src/plugins/bearer/generic/main.cpp2
-rw-r--r--src/plugins/bearer/generic/qgenericengine.h18
-rw-r--r--src/plugins/bearer/linux_common/qofonoservice_linux.cpp8
-rw-r--r--src/plugins/bearer/linux_common/qofonoservice_linux_p.h4
-rw-r--r--src/plugins/bearer/qnetworksession_impl.h44
-rw-r--r--src/plugins/generic/evdevkeyboard/main.cpp2
-rw-r--r--src/plugins/generic/evdevmouse/main.cpp2
-rw-r--r--src/plugins/generic/evdevtablet/main.cpp2
-rw-r--r--src/plugins/generic/evdevtouch/main.cpp2
-rw-r--r--src/plugins/generic/generic.pro6
-rw-r--r--src/plugins/generic/libinput/README18
-rw-r--r--src/plugins/generic/libinput/libinput.json3
-rw-r--r--src/plugins/generic/libinput/libinput.pro12
-rw-r--r--src/plugins/generic/libinput/main.cpp58
-rw-r--r--src/plugins/generic/tslib/main.cpp15
-rw-r--r--src/plugins/generic/tslib/tslib.pro7
-rw-r--r--src/plugins/generic/tuiotouch/README.md54
-rw-r--r--src/plugins/generic/tuiotouch/main.cpp68
-rw-r--r--src/plugins/generic/tuiotouch/qoscbundle.cpp186
-rw-r--r--src/plugins/generic/tuiotouch/qoscbundle_p.h62
-rw-r--r--src/plugins/generic/tuiotouch/qoscmessage.cpp138
-rw-r--r--src/plugins/generic/tuiotouch/qoscmessage_p.h57
-rw-r--r--src/plugins/generic/tuiotouch/qtuio_p.h62
-rw-r--r--src/plugins/generic/tuiotouch/qtuiocursor_p.h102
-rw-r--r--src/plugins/generic/tuiotouch/qtuiohandler.cpp337
-rw-r--r--src/plugins/generic/tuiotouch/qtuiohandler_p.h79
-rw-r--r--src/plugins/generic/tuiotouch/tuiotouch.json3
-rw-r--r--src/plugins/generic/tuiotouch/tuiotouch.pro26
-rw-r--r--src/plugins/imageformats/gif/main.h4
-rw-r--r--src/plugins/imageformats/ico/main.h4
-rw-r--r--src/plugins/imageformats/ico/qicohandler.h18
-rw-r--r--src/plugins/imageformats/jpeg/main.h4
-rw-r--r--src/plugins/platforminputcontexts/compose/main.cpp2
-rw-r--r--src/plugins/platforminputcontexts/compose/qcomposeplatforminputcontext.h10
-rw-r--r--src/plugins/platforminputcontexts/ibus/main.cpp2
-rw-r--r--src/plugins/platforminputcontexts/ibus/qibusplatforminputcontext.h12
-rw-r--r--src/plugins/platforms/android/androidjniinput.cpp2
-rw-r--r--src/plugins/platforms/android/androidjnimain.cpp2
-rw-r--r--src/plugins/platforms/android/androidjnimenu.cpp2
-rw-r--r--src/plugins/platforms/android/qandroidassetsfileenginehandler.cpp2
-rw-r--r--src/plugins/platforms/android/qandroidplatformscreen.cpp2
-rw-r--r--src/plugins/platforms/android/qandroidplatformtheme.cpp6
-rw-r--r--src/plugins/platforms/cocoa/qcocoaintegration.mm4
-rwxr-xr-xsrc/plugins/platforms/cocoa/qcocoasystemtrayicon.h2
-rw-r--r--src/plugins/platforms/cocoa/qnsview.h1
-rw-r--r--src/plugins/platforms/cocoa/qnsview.mm33
-rw-r--r--src/plugins/platforms/direct2d/qwindowsdirect2dpaintengine.cpp6
-rw-r--r--src/plugins/platforms/eglfs/deviceintegration/deviceintegration.pro4
-rw-r--r--src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/eglfs_kms.json3
-rw-r--r--src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/eglfs_kms.pro26
-rw-r--r--src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsintegration.cpp1155
-rw-r--r--src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsintegration.h90
-rw-r--r--src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsmain.cpp58
-rw-r--r--src/plugins/platforms/eglfs/deviceintegration/eglfs_x11/eglfs_x11.json3
-rw-r--r--src/plugins/platforms/eglfs/deviceintegration/eglfs_x11/eglfs_x11.pro24
-rw-r--r--src/plugins/platforms/eglfs/deviceintegration/eglfs_x11/qeglfsx11integration.cpp (renamed from src/plugins/platforms/eglfs/qeglfshooks_x11.cpp)118
-rw-r--r--src/plugins/platforms/eglfs/deviceintegration/eglfs_x11/qeglfsx11integration.h95
-rw-r--r--src/plugins/platforms/eglfs/deviceintegration/eglfs_x11/qeglfsx11main.cpp58
-rw-r--r--src/plugins/platforms/eglfs/eglfs-plugin.pro12
-rw-r--r--src/plugins/platforms/eglfs/eglfs.pri44
-rw-r--r--src/plugins/platforms/eglfs/eglfs.pro14
-rw-r--r--src/plugins/platforms/eglfs/eglfs_device_lib.pro59
-rw-r--r--src/plugins/platforms/eglfs/qeglfscontext.cpp35
-rw-r--r--src/plugins/platforms/eglfs/qeglfscontext.h8
-rw-r--r--src/plugins/platforms/eglfs/qeglfsdeviceintegration.cpp306
-rw-r--r--src/plugins/platforms/eglfs/qeglfsdeviceintegration.h113
-rw-r--r--src/plugins/platforms/eglfs/qeglfsglobal.h45
-rw-r--r--src/plugins/platforms/eglfs/qeglfshooks.cpp130
-rw-r--r--src/plugins/platforms/eglfs/qeglfshooks.h49
-rw-r--r--src/plugins/platforms/eglfs/qeglfshooks_kms.cpp422
-rw-r--r--src/plugins/platforms/eglfs/qeglfshooks_stub.cpp199
-rw-r--r--src/plugins/platforms/eglfs/qeglfsintegration.cpp75
-rw-r--r--src/plugins/platforms/eglfs/qeglfsintegration.h9
-rw-r--r--src/plugins/platforms/eglfs/qeglfsmain.cpp (renamed from src/plugins/platforms/eglfs/main.cpp)4
-rw-r--r--src/plugins/platforms/eglfs/qeglfsoffscreenwindow.cpp85
-rw-r--r--src/plugins/platforms/eglfs/qeglfsoffscreenwindow.h69
-rw-r--r--src/plugins/platforms/eglfs/qeglfsscreen.cpp22
-rw-r--r--src/plugins/platforms/eglfs/qeglfsscreen.h17
-rw-r--r--src/plugins/platforms/eglfs/qeglfswindow.cpp46
-rw-r--r--src/plugins/platforms/eglfs/qeglfswindow.h6
-rw-r--r--src/plugins/platforms/ios/qiosintegration.mm2
-rw-r--r--src/plugins/platforms/ios/quiaccessibilityelement.mm29
-rw-r--r--src/plugins/platforms/kms/main.cpp2
-rw-r--r--src/plugins/platforms/kms/qkmsbackingstore.h8
-rw-r--r--src/plugins/platforms/kms/qkmscontext.h12
-rw-r--r--src/plugins/platforms/kms/qkmscursor.h4
-rw-r--r--src/plugins/platforms/kms/qkmsintegration.cpp2
-rw-r--r--src/plugins/platforms/kms/qkmsnativeinterface.cpp24
-rw-r--r--src/plugins/platforms/kms/qkmsnativeinterface.h6
-rw-r--r--src/plugins/platforms/kms/qkmsscreen.cpp2
-rw-r--r--src/plugins/platforms/kms/qkmsscreen.h10
-rw-r--r--src/plugins/platforms/linuxfb/main.cpp2
-rw-r--r--src/plugins/platforms/linuxfb/qlinuxfbintegration.cpp2
-rw-r--r--src/plugins/platforms/linuxfb/qlinuxfbscreen.h2
-rw-r--r--src/plugins/platforms/minimal/main.cpp2
-rw-r--r--src/plugins/platforms/minimal/qminimalbackingstore.h6
-rw-r--r--src/plugins/platforms/minimal/qminimalintegration.cpp4
-rw-r--r--src/plugins/platforms/minimal/qminimalintegration.h16
-rw-r--r--src/plugins/platforms/minimalegl/main.cpp2
-rw-r--r--src/plugins/platforms/minimalegl/qminimaleglbackingstore.h10
-rw-r--r--src/plugins/platforms/minimalegl/qminimaleglintegration.cpp2
-rw-r--r--src/plugins/platforms/minimalegl/qminimaleglintegration.h14
-rw-r--r--src/plugins/platforms/minimalegl/qminimaleglscreen.cpp2
-rw-r--r--src/plugins/platforms/minimalegl/qminimaleglscreen.h6
-rw-r--r--src/plugins/platforms/minimalegl/qminimaleglwindow.h4
-rw-r--r--src/plugins/platforms/offscreen/main.cpp2
-rw-r--r--src/plugins/platforms/offscreen/qoffscreencommon.cpp6
-rw-r--r--src/plugins/platforms/offscreen/qoffscreencommon.h22
-rw-r--r--src/plugins/platforms/offscreen/qoffscreenintegration.h14
-rw-r--r--src/plugins/platforms/offscreen/qoffscreenintegration_x11.h18
-rw-r--r--src/plugins/platforms/offscreen/qoffscreenwindow.h12
-rw-r--r--src/plugins/platforms/openwfd/qopenwfdintegration.cpp5
-rw-r--r--src/plugins/platforms/openwfd/qopenwfdintegration.h1
-rw-r--r--src/plugins/platforms/openwfd/qopenwfdport.cpp2
-rw-r--r--src/plugins/platforms/qnx/qqnxglcontext.cpp4
-rw-r--r--src/plugins/platforms/qnx/qqnxglcontext.h4
-rw-r--r--src/plugins/platforms/qnx/qqnxintegration.cpp6
-rw-r--r--src/plugins/platforms/qnx/qqnxscreen.cpp6
-rw-r--r--src/plugins/platforms/windows/accessible/iaccessible2.cpp2
-rw-r--r--src/plugins/platforms/windows/accessible/iaccessible2.h19
-rw-r--r--src/plugins/platforms/windows/accessible/qwindowsmsaaaccessible.h2
-rw-r--r--src/plugins/platforms/windows/qwindowsdialoghelpers.cpp24
-rw-r--r--src/plugins/platforms/windows/qwindowsfontdatabase.cpp56
-rw-r--r--src/plugins/platforms/windows/qwindowsfontdatabase_ft.cpp30
-rw-r--r--src/plugins/platforms/windows/qwindowsfontengine.cpp53
-rw-r--r--src/plugins/platforms/windows/qwindowsfontengine.h5
-rw-r--r--src/plugins/platforms/windows/qwindowsfontenginedirectwrite.cpp10
-rw-r--r--src/plugins/platforms/windows/qwindowsinputcontext.cpp4
-rw-r--r--src/plugins/platforms/windows/qwindowsintegration.h1
-rw-r--r--src/plugins/platforms/windows/qwindowskeymapper.cpp2
-rw-r--r--src/plugins/platforms/windows/qwindowsmime.cpp36
-rw-r--r--src/plugins/platforms/windows/qwindowsscreen.cpp9
-rw-r--r--src/plugins/platforms/windows/qwindowsscreen.h6
-rw-r--r--src/plugins/platforms/winrt/qwinrtfontdatabase.cpp31
-rw-r--r--src/plugins/platforms/winrt/qwinrtfontdatabase.h3
-rw-r--r--src/plugins/platforms/winrt/qwinrttheme.cpp2
-rw-r--r--src/plugins/platforms/xcb/gl_integrations/gl_integrations.pri13
-rw-r--r--src/plugins/platforms/xcb/gl_integrations/gl_integrations.pro9
-rw-r--r--src/plugins/platforms/xcb/gl_integrations/gl_integrations_plugin_base.pri38
-rw-r--r--src/plugins/platforms/xcb/gl_integrations/qxcbglintegration.cpp62
-rw-r--r--src/plugins/platforms/xcb/gl_integrations/qxcbglintegration.h76
-rw-r--r--src/plugins/platforms/xcb/gl_integrations/qxcbglintegrationfactory.cpp108
-rw-r--r--src/plugins/platforms/xcb/gl_integrations/qxcbglintegrationfactory.h61
-rw-r--r--src/plugins/platforms/xcb/gl_integrations/qxcbglintegrationplugin.h67
-rw-r--r--src/plugins/platforms/xcb/gl_integrations/qxcbnativeinterfacehandler.cpp93
-rw-r--r--src/plugins/platforms/xcb/gl_integrations/qxcbnativeinterfacehandler.h72
-rw-r--r--src/plugins/platforms/xcb/gl_integrations/xcb_egl/qxcbeglcontext.h104
-rw-r--r--src/plugins/platforms/xcb/gl_integrations/xcb_egl/qxcbeglinclude.h57
-rw-r--r--src/plugins/platforms/xcb/gl_integrations/xcb_egl/qxcbeglintegration.cpp112
-rw-r--r--src/plugins/platforms/xcb/gl_integrations/xcb_egl/qxcbeglintegration.h83
-rw-r--r--src/plugins/platforms/xcb/gl_integrations/xcb_egl/qxcbeglmain.cpp62
-rw-r--r--src/plugins/platforms/xcb/gl_integrations/xcb_egl/qxcbeglnativeinterfacehandler.cpp139
-rw-r--r--src/plugins/platforms/xcb/gl_integrations/xcb_egl/qxcbeglnativeinterfacehandler.h72
-rw-r--r--src/plugins/platforms/xcb/gl_integrations/xcb_egl/qxcbeglwindow.cpp92
-rw-r--r--src/plugins/platforms/xcb/gl_integrations/xcb_egl/qxcbeglwindow.h75
-rw-r--r--src/plugins/platforms/xcb/gl_integrations/xcb_egl/xcb_egl.json3
-rw-r--r--src/plugins/platforms/xcb/gl_integrations/xcb_egl/xcb_egl.pro27
-rw-r--r--src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp (renamed from src/plugins/platforms/xcb/qglxintegration.cpp)0
-rw-r--r--src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.h (renamed from src/plugins/platforms/xcb/qglxintegration.h)18
-rw-r--r--src/plugins/platforms/xcb/gl_integrations/xcb_glx/qxcbglxintegration.cpp217
-rw-r--r--src/plugins/platforms/xcb/gl_integrations/xcb_glx/qxcbglxintegration.h72
-rw-r--r--src/plugins/platforms/xcb/gl_integrations/xcb_glx/qxcbglxmain.cpp62
-rw-r--r--src/plugins/platforms/xcb/gl_integrations/xcb_glx/qxcbglxnativeinterfacehandler.cpp95
-rw-r--r--src/plugins/platforms/xcb/gl_integrations/xcb_glx/qxcbglxnativeinterfacehandler.h67
-rw-r--r--src/plugins/platforms/xcb/gl_integrations/xcb_glx/qxcbglxwindow.cpp68
-rw-r--r--src/plugins/platforms/xcb/gl_integrations/xcb_glx/qxcbglxwindow.h63
-rw-r--r--src/plugins/platforms/xcb/gl_integrations/xcb_glx/xcb_glx.json3
-rw-r--r--src/plugins/platforms/xcb/gl_integrations/xcb_glx/xcb_glx.pro31
-rw-r--r--src/plugins/platforms/xcb/qxcbbackingstore.cpp2
-rw-r--r--src/plugins/platforms/xcb/qxcbbackingstore.h14
-rw-r--r--src/plugins/platforms/xcb/qxcbclipboard.cpp8
-rw-r--r--src/plugins/platforms/xcb/qxcbclipboard.h8
-rw-r--r--src/plugins/platforms/xcb/qxcbconnection.cpp191
-rw-r--r--src/plugins/platforms/xcb/qxcbconnection.h31
-rw-r--r--src/plugins/platforms/xcb/qxcbcursor.h6
-rw-r--r--src/plugins/platforms/xcb/qxcbdrag.cpp6
-rw-r--r--src/plugins/platforms/xcb/qxcbdrag.h14
-rw-r--r--src/plugins/platforms/xcb/qxcbexport.h (renamed from src/plugins/platforms/xcb/qxcbeglsurface.h)33
-rw-r--r--src/plugins/platforms/xcb/qxcbintegration.cpp142
-rw-r--r--src/plugins/platforms/xcb/qxcbintegration.h44
-rw-r--r--src/plugins/platforms/xcb/qxcbmain.cpp2
-rw-r--r--src/plugins/platforms/xcb/qxcbnativeinterface.cpp298
-rw-r--r--src/plugins/platforms/xcb/qxcbnativeinterface.h35
-rw-r--r--src/plugins/platforms/xcb/qxcbscreen.cpp2
-rw-r--r--src/plugins/platforms/xcb/qxcbscreen.h35
-rw-r--r--src/plugins/platforms/xcb/qxcbsystemtraytracker.h2
-rw-r--r--src/plugins/platforms/xcb/qxcbwindow.cpp76
-rw-r--r--src/plugins/platforms/xcb/qxcbwindow.h76
-rw-r--r--src/plugins/platforms/xcb/xcb-plugin.pro112
-rw-r--r--src/plugins/platforms/xcb/xcb.pro3
-rw-r--r--src/plugins/platforms/xcb/xcb_qpa_lib.pro111
-rw-r--r--src/plugins/platformthemes/gtk2/main.cpp2
-rw-r--r--src/plugins/platformthemes/gtk2/qgtk2dialoghelpers.cpp24
-rw-r--r--src/plugins/platformthemes/gtk2/qgtk2dialoghelpers.h34
-rw-r--r--src/plugins/platformthemes/gtk2/qgtk2theme.h4
-rw-r--r--src/plugins/plugins.pro1
-rw-r--r--src/plugins/printsupport/cups/main.cpp2
-rw-r--r--src/plugins/printsupport/cups/qcupsprintengine_p.h8
-rw-r--r--src/plugins/sqldrivers/mysql/main.cpp2
-rw-r--r--src/plugins/sqldrivers/psql/main.cpp2
-rw-r--r--src/plugins/sqldrivers/sqlite/smain.cpp2
-rw-r--r--src/plugins/styles/bb10style/bb10lightstyle.qrc54
-rw-r--r--src/plugins/styles/bb10style/bb10style.pro28
-rw-r--r--src/plugins/styles/bb10style/bright/button/core_button_disabled.pngbin0 -> 1510 bytes
-rw-r--r--src/plugins/styles/bb10style/bright/button/core_button_disabled_selected.pngbin0 -> 1782 bytes
-rw-r--r--src/plugins/styles/bb10style/bright/button/core_button_enabled_selected.pngbin0 -> 1830 bytes
-rwxr-xr-xsrc/plugins/styles/bb10style/bright/button/core_button_inactive.pngbin0 -> 2428 bytes
-rwxr-xr-xsrc/plugins/styles/bb10style/bright/button/core_button_pressed.pngbin0 -> 3221 bytes
-rw-r--r--src/plugins/styles/bb10style/bright/checkbox/core_checkbox_checked.pngbin0 -> 2048 bytes
-rw-r--r--src/plugins/styles/bb10style/bright/checkbox/core_checkbox_disabled.pngbin0 -> 935 bytes
-rw-r--r--src/plugins/styles/bb10style/bright/checkbox/core_checkbox_disabled_checked.pngbin0 -> 1702 bytes
-rw-r--r--src/plugins/styles/bb10style/bright/checkbox/core_checkbox_enabled.pngbin0 -> 1082 bytes
-rwxr-xr-xsrc/plugins/styles/bb10style/bright/checkbox/core_checkbox_pressed.pngbin0 -> 2776 bytes
-rw-r--r--src/plugins/styles/bb10style/bright/checkbox/core_checkbox_pressed_checked.pngbin0 -> 2652 bytes
-rw-r--r--src/plugins/styles/bb10style/bright/combobox/core_dropdown_button.pngbin0 -> 1605 bytes
-rw-r--r--src/plugins/styles/bb10style/bright/combobox/core_dropdown_button_arrowdown.pngbin0 -> 1419 bytes
-rw-r--r--src/plugins/styles/bb10style/bright/combobox/core_dropdown_button_arrowdown_pressed.pngbin0 -> 1404 bytes
-rw-r--r--src/plugins/styles/bb10style/bright/combobox/core_dropdown_button_arrowup.pngbin0 -> 1398 bytes
-rw-r--r--src/plugins/styles/bb10style/bright/combobox/core_dropdown_button_disabled.pngbin0 -> 1587 bytes
-rw-r--r--src/plugins/styles/bb10style/bright/combobox/core_dropdown_button_pressed.pngbin0 -> 1801 bytes
-rw-r--r--src/plugins/styles/bb10style/bright/combobox/core_dropdown_checkmark.pngbin0 -> 1769 bytes
-rw-r--r--src/plugins/styles/bb10style/bright/combobox/core_dropdown_divider.pngbin0 -> 134 bytes
-rw-r--r--src/plugins/styles/bb10style/bright/combobox/core_dropdown_menu.pngbin0 -> 874 bytes
-rw-r--r--src/plugins/styles/bb10style/bright/combobox/core_dropdown_menuup.pngbin0 -> 996 bytes
-rw-r--r--src/plugins/styles/bb10style/bright/combobox/core_listitem_active.pngbin0 -> 182 bytes
-rwxr-xr-xsrc/plugins/styles/bb10style/bright/lineedit/core_textinput_bg.pngbin0 -> 1315 bytes
-rw-r--r--src/plugins/styles/bb10style/bright/lineedit/core_textinput_bg_disabled.pngbin0 -> 454 bytes
-rwxr-xr-xsrc/plugins/styles/bb10style/bright/lineedit/core_textinput_bg_highlight.pngbin0 -> 394 bytes
-rwxr-xr-xsrc/plugins/styles/bb10style/bright/listitem/core_listitem_active.pngbin0 -> 164 bytes
-rwxr-xr-xsrc/plugins/styles/bb10style/bright/listitem/core_listitem_divider.pngbin0 -> 135 bytes
-rwxr-xr-xsrc/plugins/styles/bb10style/bright/progressbar/core_progressindicator_bg.pngbin0 -> 1802 bytes
-rw-r--r--src/plugins/styles/bb10style/bright/progressbar/core_progressindicator_complete.pngbin0 -> 635 bytes
-rw-r--r--src/plugins/styles/bb10style/bright/progressbar/core_progressindicator_fill.pngbin0 -> 629 bytes
-rw-r--r--src/plugins/styles/bb10style/bright/progressbar/core_progressindicator_vbg.pngbin0 -> 903 bytes
-rw-r--r--src/plugins/styles/bb10style/bright/progressbar/core_progressindicator_vcomplete.pngbin0 -> 614 bytes
-rw-r--r--src/plugins/styles/bb10style/bright/progressbar/core_progressindicator_vfill.pngbin0 -> 594 bytes
-rw-r--r--src/plugins/styles/bb10style/bright/radiobutton/core_radiobutton_checked.pngbin0 -> 4471 bytes
-rw-r--r--src/plugins/styles/bb10style/bright/radiobutton/core_radiobutton_disabled.pngbin0 -> 3652 bytes
-rw-r--r--src/plugins/styles/bb10style/bright/radiobutton/core_radiobutton_disabled_checked.pngbin0 -> 4094 bytes
-rwxr-xr-xsrc/plugins/styles/bb10style/bright/radiobutton/core_radiobutton_inactive.pngbin0 -> 4245 bytes
-rwxr-xr-xsrc/plugins/styles/bb10style/bright/radiobutton/core_radiobutton_pressed.pngbin0 -> 5460 bytes
-rwxr-xr-xsrc/plugins/styles/bb10style/bright/scrollbar/core_scrollbar.pngbin0 -> 1242 bytes
-rw-r--r--src/plugins/styles/bb10style/bright/scrollbar/core_scrollbar_v.pngbin0 -> 385 bytes
-rw-r--r--src/plugins/styles/bb10style/bright/slider/core_slider_active.pngbin0 -> 1167 bytes
-rw-r--r--src/plugins/styles/bb10style/bright/slider/core_slider_cache.pngbin0 -> 1154 bytes
-rw-r--r--src/plugins/styles/bb10style/bright/slider/core_slider_disabled.pngbin0 -> 1134 bytes
-rw-r--r--src/plugins/styles/bb10style/bright/slider/core_slider_enabled.pngbin0 -> 1049 bytes
-rw-r--r--src/plugins/styles/bb10style/bright/slider/core_slider_handle.pngbin0 -> 2843 bytes
-rw-r--r--src/plugins/styles/bb10style/bright/slider/core_slider_handle_disabled.pngbin0 -> 2708 bytes
-rwxr-xr-xsrc/plugins/styles/bb10style/bright/slider/core_slider_handle_pressed.pngbin0 -> 6577 bytes
-rw-r--r--src/plugins/styles/bb10style/bright/slider/core_slider_inactive.pngbin0 -> 1162 bytes
-rw-r--r--src/plugins/styles/bb10style/bright/slider/core_slider_vactive.pngbin0 -> 1077 bytes
-rw-r--r--src/plugins/styles/bb10style/bright/slider/core_slider_vcache.pngbin0 -> 1063 bytes
-rw-r--r--src/plugins/styles/bb10style/bright/slider/core_slider_vdisabled.pngbin0 -> 1064 bytes
-rw-r--r--src/plugins/styles/bb10style/bright/slider/core_slider_venabled.pngbin0 -> 996 bytes
-rw-r--r--src/plugins/styles/bb10style/bright/slider/core_slider_vinactive.pngbin0 -> 1071 bytes
-rw-r--r--src/plugins/styles/bb10style/dark/button/core_button_disabled.pngbin0 -> 1291 bytes
-rw-r--r--src/plugins/styles/bb10style/dark/button/core_button_disabled_selected.pngbin0 -> 1655 bytes
-rw-r--r--src/plugins/styles/bb10style/dark/button/core_button_enabled_selected.pngbin0 -> 1665 bytes
-rwxr-xr-xsrc/plugins/styles/bb10style/dark/button/core_button_inactive.pngbin0 -> 2262 bytes
-rwxr-xr-xsrc/plugins/styles/bb10style/dark/button/core_button_pressed.pngbin0 -> 2853 bytes
-rw-r--r--src/plugins/styles/bb10style/dark/checkbox/core_checkbox_checked.pngbin0 -> 1947 bytes
-rw-r--r--src/plugins/styles/bb10style/dark/checkbox/core_checkbox_disabled.pngbin0 -> 787 bytes
-rw-r--r--src/plugins/styles/bb10style/dark/checkbox/core_checkbox_disabled_checked.pngbin0 -> 1578 bytes
-rw-r--r--src/plugins/styles/bb10style/dark/checkbox/core_checkbox_enabled.pngbin0 -> 925 bytes
-rwxr-xr-xsrc/plugins/styles/bb10style/dark/checkbox/core_checkbox_pressed.pngbin0 -> 2478 bytes
-rw-r--r--src/plugins/styles/bb10style/dark/checkbox/core_checkbox_pressed_checked.pngbin0 -> 2256 bytes
-rw-r--r--src/plugins/styles/bb10style/dark/combobox/core_dropdown_button.pngbin0 -> 1425 bytes
-rw-r--r--src/plugins/styles/bb10style/dark/combobox/core_dropdown_button_arrowdown.pngbin0 -> 1404 bytes
-rw-r--r--src/plugins/styles/bb10style/dark/combobox/core_dropdown_button_arrowdown_pressed.pngbin0 -> 1465 bytes
-rw-r--r--src/plugins/styles/bb10style/dark/combobox/core_dropdown_button_arrowup.pngbin0 -> 1383 bytes
-rw-r--r--src/plugins/styles/bb10style/dark/combobox/core_dropdown_button_disabled.pngbin0 -> 1291 bytes
-rw-r--r--src/plugins/styles/bb10style/dark/combobox/core_dropdown_button_pressed.pngbin0 -> 1583 bytes
-rw-r--r--src/plugins/styles/bb10style/dark/combobox/core_dropdown_checkmark.pngbin0 -> 1588 bytes
-rw-r--r--src/plugins/styles/bb10style/dark/combobox/core_dropdown_divider.pngbin0 -> 134 bytes
-rw-r--r--src/plugins/styles/bb10style/dark/combobox/core_dropdown_menu.pngbin0 -> 662 bytes
-rw-r--r--src/plugins/styles/bb10style/dark/combobox/core_dropdown_menuup.pngbin0 -> 688 bytes
-rw-r--r--src/plugins/styles/bb10style/dark/combobox/core_listitem_active.pngbin0 -> 149 bytes
-rwxr-xr-xsrc/plugins/styles/bb10style/dark/lineedit/core_textinput_bg.pngbin0 -> 1315 bytes
-rw-r--r--src/plugins/styles/bb10style/dark/lineedit/core_textinput_bg_disabled.pngbin0 -> 454 bytes
-rwxr-xr-xsrc/plugins/styles/bb10style/dark/lineedit/core_textinput_bg_highlight.pngbin0 -> 394 bytes
-rwxr-xr-xsrc/plugins/styles/bb10style/dark/listitem/core_listitem_active.pngbin0 -> 164 bytes
-rwxr-xr-xsrc/plugins/styles/bb10style/dark/listitem/core_listitem_divider.pngbin0 -> 136 bytes
-rwxr-xr-xsrc/plugins/styles/bb10style/dark/progressbar/core_progressindicator_bg.pngbin0 -> 1724 bytes
-rw-r--r--src/plugins/styles/bb10style/dark/progressbar/core_progressindicator_complete.pngbin0 -> 635 bytes
-rw-r--r--src/plugins/styles/bb10style/dark/progressbar/core_progressindicator_fill.pngbin0 -> 658 bytes
-rw-r--r--src/plugins/styles/bb10style/dark/progressbar/core_progressindicator_vbg.pngbin0 -> 815 bytes
-rw-r--r--src/plugins/styles/bb10style/dark/progressbar/core_progressindicator_vcomplete.pngbin0 -> 614 bytes
-rw-r--r--src/plugins/styles/bb10style/dark/progressbar/core_progressindicator_vfill.pngbin0 -> 602 bytes
-rw-r--r--src/plugins/styles/bb10style/dark/radiobutton/core_radiobutton_checked.pngbin0 -> 4298 bytes
-rw-r--r--src/plugins/styles/bb10style/dark/radiobutton/core_radiobutton_disabled.pngbin0 -> 3125 bytes
-rw-r--r--src/plugins/styles/bb10style/dark/radiobutton/core_radiobutton_disabled_checked.pngbin0 -> 3539 bytes
-rwxr-xr-xsrc/plugins/styles/bb10style/dark/radiobutton/core_radiobutton_inactive.pngbin0 -> 3968 bytes
-rwxr-xr-xsrc/plugins/styles/bb10style/dark/radiobutton/core_radiobutton_pressed.pngbin0 -> 4777 bytes
-rwxr-xr-xsrc/plugins/styles/bb10style/dark/scrollbar/core_scrollbar.pngbin0 -> 1245 bytes
-rw-r--r--src/plugins/styles/bb10style/dark/scrollbar/core_scrollbar_v.pngbin0 -> 369 bytes
-rw-r--r--src/plugins/styles/bb10style/dark/slider/core_slider_active.pngbin0 -> 1160 bytes
-rw-r--r--src/plugins/styles/bb10style/dark/slider/core_slider_cache.pngbin0 -> 1154 bytes
-rw-r--r--src/plugins/styles/bb10style/dark/slider/core_slider_disabled.pngbin0 -> 1105 bytes
-rw-r--r--src/plugins/styles/bb10style/dark/slider/core_slider_enabled.pngbin0 -> 983 bytes
-rw-r--r--src/plugins/styles/bb10style/dark/slider/core_slider_handle.pngbin0 -> 3019 bytes
-rw-r--r--src/plugins/styles/bb10style/dark/slider/core_slider_handle_disabled.pngbin0 -> 1715 bytes
-rwxr-xr-xsrc/plugins/styles/bb10style/dark/slider/core_slider_handle_pressed.pngbin0 -> 6593 bytes
-rw-r--r--src/plugins/styles/bb10style/dark/slider/core_slider_inactive.pngbin0 -> 1158 bytes
-rw-r--r--src/plugins/styles/bb10style/dark/slider/core_slider_vactive.pngbin0 -> 1066 bytes
-rw-r--r--src/plugins/styles/bb10style/dark/slider/core_slider_vcache.pngbin0 -> 1058 bytes
-rw-r--r--src/plugins/styles/bb10style/dark/slider/core_slider_vdisabled.pngbin0 -> 1009 bytes
-rw-r--r--src/plugins/styles/bb10style/dark/slider/core_slider_venabled.pngbin0 -> 929 bytes
-rw-r--r--src/plugins/styles/bb10style/dark/slider/core_slider_vinactive.pngbin0 -> 1067 bytes
-rw-r--r--src/plugins/styles/bb10style/qbb10brightstyle.cpp352
-rw-r--r--src/plugins/styles/bb10style/qbb10brightstyle.h70
-rw-r--r--src/plugins/styles/bb10style/qbb10brightstyle.qrc57
-rw-r--r--src/plugins/styles/bb10style/qbb10darkstyle.cpp357
-rw-r--r--src/plugins/styles/bb10style/qbb10darkstyle.h70
-rw-r--r--src/plugins/styles/bb10style/qbb10darkstyle.qrc57
-rw-r--r--src/plugins/styles/bb10style/qbb10styleplugin.cpp74
-rw-r--r--src/plugins/styles/bb10style/qbb10styleplugin.h64
-rw-r--r--src/plugins/styles/bb10style/qbb10styleplugin.json3
-rw-r--r--src/plugins/styles/bb10style/qpixmapstyle.cpp994
-rw-r--r--src/plugins/styles/bb10style/qpixmapstyle.h236
-rw-r--r--src/plugins/styles/styles.pro3
-rw-r--r--src/printsupport/dialogs/qpagesetupdialog.h10
-rw-r--r--src/printsupport/dialogs/qpagesetupdialog_unix.cpp2
-rw-r--r--src/printsupport/dialogs/qprintdialog.h20
-rw-r--r--src/printsupport/dialogs/qprintdialog_unix.cpp4
-rw-r--r--src/printsupport/dialogs/qprintpreviewdialog.cpp8
-rw-r--r--src/printsupport/dialogs/qprintpreviewdialog.h10
-rw-r--r--src/printsupport/kernel/qcups.cpp7
-rw-r--r--src/printsupport/kernel/qprintengine_pdf_p.h16
-rw-r--r--src/printsupport/kernel/qprinter.h14
-rw-r--r--src/printsupport/widgets/qprintpreviewwidget.cpp6
-rw-r--r--src/printsupport/widgets/qprintpreviewwidget.h2
-rw-r--r--src/sql/drivers/mysql/qsql_mysql_p.h60
-rw-r--r--src/sql/drivers/odbc/qsql_odbc.cpp189
-rw-r--r--src/sql/drivers/psql/qsql_psql.cpp2
-rw-r--r--src/sql/drivers/psql/qsql_psql_p.h62
-rw-r--r--src/sql/drivers/sqlite/qsql_sqlite.cpp22
-rw-r--r--src/sql/drivers/sqlite/qsql_sqlite_p.h24
-rw-r--r--src/sql/kernel/qsqldatabase.h2
-rw-r--r--src/sql/kernel/qsqlfield.cpp6
-rw-r--r--src/sql/models/qsqlquerymodel.h18
-rw-r--r--src/sql/models/qsqlrelationaltablemodel.cpp8
-rw-r--r--src/sql/models/qsqlrelationaltablemodel.h22
-rw-r--r--src/sql/models/qsqltablemodel.h26
-rw-r--r--src/testlib/qbenchmarkperfevents_p.h20
-rw-r--r--src/testlib/qtest.h2
-rw-r--r--src/testlib/qtestcase.cpp21
-rw-r--r--src/testlib/qtestkeyboard.h4
-rw-r--r--src/tools/bootstrap/bootstrap.pro12
-rw-r--r--src/tools/moc/generator.cpp340
-rw-r--r--src/tools/moc/preprocessor.cpp59
-rw-r--r--src/tools/moc/preprocessor.h4
-rw-r--r--src/tools/qdoc/atom.cpp8
-rw-r--r--src/tools/qdoc/atom.h31
-rw-r--r--src/tools/qdoc/codeparser.cpp9
-rw-r--r--src/tools/qdoc/codeparser.h5
-rw-r--r--src/tools/qdoc/config.cpp36
-rw-r--r--src/tools/qdoc/config.h5
-rw-r--r--src/tools/qdoc/cppcodemarker.h30
-rw-r--r--src/tools/qdoc/cppcodeparser.h18
-rw-r--r--src/tools/qdoc/ditaxmlgenerator.cpp6
-rw-r--r--src/tools/qdoc/ditaxmlgenerator.h34
-rw-r--r--src/tools/qdoc/doc.cpp43
-rw-r--r--src/tools/qdoc/doc.h8
-rw-r--r--src/tools/qdoc/generator.cpp17
-rw-r--r--src/tools/qdoc/generator.h22
-rw-r--r--src/tools/qdoc/htmlgenerator.cpp295
-rw-r--r--src/tools/qdoc/htmlgenerator.h30
-rw-r--r--src/tools/qdoc/jscodemarker.h10
-rw-r--r--src/tools/qdoc/location.cpp16
-rw-r--r--src/tools/qdoc/location.h4
-rw-r--r--src/tools/qdoc/main.cpp489
-rw-r--r--src/tools/qdoc/node.cpp2
-rw-r--r--src/tools/qdoc/node.h266
-rw-r--r--src/tools/qdoc/plaincodemarker.h26
-rw-r--r--src/tools/qdoc/puredocparser.h4
-rw-r--r--src/tools/qdoc/qdocdatabase.cpp321
-rw-r--r--src/tools/qdoc/qdocdatabase.h54
-rw-r--r--src/tools/qdoc/qdocindexfiles.cpp4
-rw-r--r--src/tools/qdoc/qmlcodemarker.h20
-rw-r--r--src/tools/qdoc/qmlcodeparser.h12
-rw-r--r--src/tools/qdoc/qmlmarkupvisitor.h172
-rw-r--r--src/tools/qdoc/qmlparser/qqmljsast_p.h548
-rw-r--r--src/tools/qdoc/qmlvisitor.h34
-rw-r--r--src/tools/qdoc/tokenizer.cpp8
-rw-r--r--src/tools/qdoc/tree.cpp72
-rw-r--r--src/tools/qdoc/tree.h36
-rw-r--r--src/tools/uic/cpp/cppextractimages.h6
-rw-r--r--src/tools/uic/cpp/cppwritedeclaration.h14
-rw-r--r--src/tools/uic/cpp/cppwriteicondata.h6
-rw-r--r--src/tools/uic/cpp/cppwriteicondeclaration.h6
-rw-r--r--src/tools/uic/cpp/cppwriteiconinitialization.h6
-rw-r--r--src/tools/uic/cpp/cppwriteincludes.h20
-rw-r--r--src/tools/uic/cpp/cppwriteinitialization.cpp16
-rw-r--r--src/tools/uic/cpp/cppwriteinitialization.h32
-rw-r--r--src/tools/uic/customwidgetsinfo.h6
-rw-r--r--src/tools/uic/databaseinfo.h4
-rw-r--r--src/tools/uic/validator.h12
-rw-r--r--src/widgets/accessible/complexwidgets.cpp32
-rw-r--r--src/widgets/accessible/qaccessiblewidgets.h4
-rw-r--r--src/widgets/dialogs/qcolordialog.cpp73
-rw-r--r--src/widgets/dialogs/qcolordialog.h10
-rw-r--r--src/widgets/dialogs/qcolordialog_p.h6
-rw-r--r--src/widgets/dialogs/qerrormessage.cpp4
-rw-r--r--src/widgets/dialogs/qerrormessage.h4
-rw-r--r--src/widgets/dialogs/qfiledialog.h14
-rw-r--r--src/widgets/dialogs/qfiledialog_p.h22
-rw-r--r--src/widgets/dialogs/qfilesystemmodel.h36
-rw-r--r--src/widgets/dialogs/qfontdialog.cpp2
-rw-r--r--src/widgets/dialogs/qfontdialog.h14
-rw-r--r--src/widgets/dialogs/qfontdialog_p.h6
-rw-r--r--src/widgets/dialogs/qfscompleter_p.h4
-rw-r--r--src/widgets/dialogs/qinputdialog.cpp8
-rw-r--r--src/widgets/dialogs/qinputdialog.h14
-rw-r--r--src/widgets/dialogs/qmessagebox.cpp10
-rw-r--r--src/widgets/dialogs/qmessagebox.h18
-rw-r--r--src/widgets/dialogs/qprogressdialog.h16
-rw-r--r--src/widgets/dialogs/qsidebar_p.h20
-rw-r--r--src/widgets/dialogs/qwizard.cpp4
-rw-r--r--src/widgets/dialogs/qwizard.h12
-rw-r--r--src/widgets/effects/qgraphicseffect.h12
-rw-r--r--src/widgets/effects/qpixmapfilter.cpp7
-rw-r--r--src/widgets/effects/qpixmapfilter_p.h14
-rw-r--r--src/widgets/graphicsview/qgraphicsanchorlayout.h12
-rw-r--r--src/widgets/graphicsview/qgraphicsanchorlayout_p.h4
-rw-r--r--src/widgets/graphicsview/qgraphicsgridlayout.cpp1
-rw-r--r--src/widgets/graphicsview/qgraphicsgridlayout.h12
-rw-r--r--src/widgets/graphicsview/qgraphicsitem.cpp10
-rw-r--r--src/widgets/graphicsview/qgraphicsitem.h222
-rw-r--r--src/widgets/graphicsview/qgraphicsitem_p.h6
-rw-r--r--src/widgets/graphicsview/qgraphicslayout.h4
-rw-r--r--src/widgets/graphicsview/qgraphicslayout_p.h2
-rw-r--r--src/widgets/graphicsview/qgraphicslayoutstyleinfo_p.h7
-rw-r--r--src/widgets/graphicsview/qgraphicslinearlayout.cpp1
-rw-r--r--src/widgets/graphicsview/qgraphicslinearlayout.h12
-rw-r--r--src/widgets/graphicsview/qgraphicsproxywidget.h64
-rw-r--r--src/widgets/graphicsview/qgraphicsscene.cpp2
-rw-r--r--src/widgets/graphicsview/qgraphicsscene.h4
-rw-r--r--src/widgets/graphicsview/qgraphicsscene_bsp.cpp6
-rw-r--r--src/widgets/graphicsview/qgraphicsscenebsptreeindex_p.h20
-rw-r--r--src/widgets/graphicsview/qgraphicsscenelinearindex_p.h10
-rw-r--r--src/widgets/graphicsview/qgraphicstransform.h4
-rw-r--r--src/widgets/graphicsview/qgraphicsview.h50
-rw-r--r--src/widgets/graphicsview/qgraphicswidget.cpp12
-rw-r--r--src/widgets/graphicsview/qgraphicswidget.h34
-rw-r--r--src/widgets/graphicsview/qgraphicswidget_p.h16
-rw-r--r--src/widgets/itemviews/itemviews.pri1
-rw-r--r--src/widgets/itemviews/qabstractitemdelegate.cpp118
-rw-r--r--src/widgets/itemviews/qabstractitemdelegate.h3
-rw-r--r--src/widgets/itemviews/qabstractitemdelegate_p.h70
-rw-r--r--src/widgets/itemviews/qabstractitemview.cpp6
-rw-r--r--src/widgets/itemviews/qabstractitemview.h44
-rw-r--r--src/widgets/itemviews/qcolumnview.h36
-rw-r--r--src/widgets/itemviews/qcolumnview_p.h24
-rw-r--r--src/widgets/itemviews/qcolumnviewgrip_p.h10
-rw-r--r--src/widgets/itemviews/qdatawidgetmapper.cpp2
-rw-r--r--src/widgets/itemviews/qdirmodel.cpp5
-rw-r--r--src/widgets/itemviews/qdirmodel.h32
-rw-r--r--src/widgets/itemviews/qheaderview.cpp120
-rw-r--r--src/widgets/itemviews/qheaderview.h55
-rw-r--r--src/widgets/itemviews/qheaderview_p.h6
-rw-r--r--src/widgets/itemviews/qitemdelegate.cpp109
-rw-r--r--src/widgets/itemviews/qitemdelegate.h18
-rw-r--r--src/widgets/itemviews/qitemeditorfactory.cpp4
-rw-r--r--src/widgets/itemviews/qitemeditorfactory_p.h2
-rw-r--r--src/widgets/itemviews/qlistview.h62
-rw-r--r--src/widgets/itemviews/qlistwidget.cpp19
-rw-r--r--src/widgets/itemviews/qlistwidget.h6
-rw-r--r--src/widgets/itemviews/qlistwidget_p.h2
-rw-r--r--src/widgets/itemviews/qstyleditemdelegate.cpp103
-rw-r--r--src/widgets/itemviews/qstyleditemdelegate.h18
-rw-r--r--src/widgets/itemviews/qtableview.cpp2
-rw-r--r--src/widgets/itemviews/qtableview.h50
-rw-r--r--src/widgets/itemviews/qtablewidget.cpp19
-rw-r--r--src/widgets/itemviews/qtablewidget.h6
-rw-r--r--src/widgets/itemviews/qtablewidget_p.h2
-rw-r--r--src/widgets/itemviews/qtreeview.cpp4
-rw-r--r--src/widgets/itemviews/qtreeview.h70
-rw-r--r--src/widgets/itemviews/qtreeview_p.h2
-rw-r--r--src/widgets/itemviews/qtreewidget.cpp5
-rw-r--r--src/widgets/itemviews/qtreewidget.h8
-rw-r--r--src/widgets/itemviews/qtreewidget_p.h40
-rw-r--r--src/widgets/kernel/qaction.h2
-rw-r--r--src/widgets/kernel/qapplication.cpp53
-rw-r--r--src/widgets/kernel/qapplication.h13
-rw-r--r--src/widgets/kernel/qapplication_p.h14
-rw-r--r--src/widgets/kernel/qboxlayout.h26
-rw-r--r--src/widgets/kernel/qdesktopwidget.h2
-rw-r--r--src/widgets/kernel/qdesktopwidget_p.h4
-rw-r--r--src/widgets/kernel/qformlayout.h26
-rw-r--r--src/widgets/kernel/qgesture.cpp106
-rw-r--r--src/widgets/kernel/qgesture.h13
-rw-r--r--src/widgets/kernel/qgesturemanager.cpp53
-rw-r--r--src/widgets/kernel/qgridlayout.h26
-rw-r--r--src/widgets/kernel/qlayout.cpp8
-rw-r--r--src/widgets/kernel/qlayout.h24
-rw-r--r--src/widgets/kernel/qopenglwidget.cpp98
-rw-r--r--src/widgets/kernel/qopenglwidget.h8
-rw-r--r--src/widgets/kernel/qshortcut.h2
-rw-r--r--src/widgets/kernel/qsizepolicy.h1
-rw-r--r--src/widgets/kernel/qstackedlayout.cpp5
-rw-r--r--src/widgets/kernel/qstackedlayout.h22
-rw-r--r--src/widgets/kernel/qstandardgestures_p.h30
-rw-r--r--src/widgets/kernel/qtooltip.cpp10
-rw-r--r--src/widgets/kernel/qwhatsthis.cpp14
-rw-r--r--src/widgets/kernel/qwidget.cpp23
-rw-r--r--src/widgets/kernel/qwidget.h14
-rw-r--r--src/widgets/kernel/qwidget_p.h10
-rw-r--r--src/widgets/kernel/qwidgetaction.h4
-rw-r--r--src/widgets/kernel/qwidgetbackingstore.cpp18
-rw-r--r--src/widgets/kernel/qwidgetwindow.cpp5
-rw-r--r--src/widgets/kernel/qwidgetwindow_p.h8
-rw-r--r--src/widgets/kernel/qwindowcontainer_p.h2
-rw-r--r--src/widgets/statemachine/qbasickeyeventtransition_p.h4
-rw-r--r--src/widgets/statemachine/qbasicmouseeventtransition_p.h4
-rw-r--r--src/widgets/statemachine/qkeyeventtransition.h4
-rw-r--r--src/widgets/statemachine/qmouseeventtransition.h4
-rw-r--r--src/widgets/styles/qcommonstyle.cpp25
-rw-r--r--src/widgets/styles/qcommonstyle.h36
-rw-r--r--src/widgets/styles/qfusionstyle.cpp5
-rw-r--r--src/widgets/styles/qfusionstyle_p.h42
-rw-r--r--src/widgets/styles/qgtk2painter_p.h30
-rw-r--r--src/widgets/styles/qgtkstyle_p.cpp14
-rw-r--r--src/widgets/styles/qgtkstyle_p.h42
-rw-r--r--src/widgets/styles/qgtkstyle_p_p.h2
-rw-r--r--src/widgets/styles/qmacstyle_mac.mm33
-rw-r--r--src/widgets/styles/qproxystyle.h48
-rw-r--r--src/widgets/styles/qstyle.cpp31
-rw-r--r--src/widgets/styles/qstyle.h9
-rw-r--r--src/widgets/styles/qstyleanimation_p.h12
-rw-r--r--src/widgets/styles/qstyleoption.cpp3
-rw-r--r--src/widgets/styles/qstyleoption.h2
-rw-r--r--src/widgets/styles/qstylesheetstyle.cpp20
-rw-r--r--src/widgets/styles/qstylesheetstyle_p.h48
-rw-r--r--src/widgets/styles/qwindowsstyle.cpp11
-rw-r--r--src/widgets/styles/qwindowsstyle_p.h30
-rw-r--r--src/widgets/util/qcompleter.h4
-rw-r--r--src/widgets/util/qcompleter_p.h26
-rw-r--r--src/widgets/util/qflickgesture.cpp2
-rw-r--r--src/widgets/util/qscroller.cpp4
-rw-r--r--src/widgets/util/qsystemtrayicon.cpp6
-rw-r--r--src/widgets/util/qsystemtrayicon.h2
-rw-r--r--src/widgets/util/qsystemtrayicon_p.h12
-rw-r--r--src/widgets/util/qsystemtrayicon_qpa.cpp8
-rw-r--r--src/widgets/util/qsystemtrayicon_x11.cpp43
-rw-r--r--src/widgets/util/qundoview.cpp10
-rw-r--r--src/widgets/widgets/qabstractbutton.h20
-rw-r--r--src/widgets/widgets/qabstractscrollarea.cpp17
-rw-r--r--src/widgets/widgets/qabstractscrollarea.h35
-rw-r--r--src/widgets/widgets/qabstractscrollarea_p.h2
-rw-r--r--src/widgets/widgets/qabstractslider.h10
-rw-r--r--src/widgets/widgets/qcalendarwidget.cpp74
-rw-r--r--src/widgets/widgets/qcalendarwidget.h14
-rw-r--r--src/widgets/widgets/qcheckbox.h16
-rw-r--r--src/widgets/widgets/qcombobox.cpp3
-rw-r--r--src/widgets/widgets/qcombobox.h36
-rw-r--r--src/widgets/widgets/qcommandlinkbutton.h10
-rw-r--r--src/widgets/widgets/qdial.cpp2
-rw-r--r--src/widgets/widgets/qdial.h18
-rw-r--r--src/widgets/widgets/qdialogbuttonbox.h4
-rw-r--r--src/widgets/widgets/qdockwidget.cpp8
-rw-r--r--src/widgets/widgets/qdockwidget.h8
-rw-r--r--src/widgets/widgets/qdockwidget_p.h22
-rw-r--r--src/widgets/widgets/qeffects.cpp10
-rw-r--r--src/widgets/widgets/qfocusframe.h6
-rw-r--r--src/widgets/widgets/qfontcombobox.cpp4
-rw-r--r--src/widgets/widgets/qfontcombobox.h4
-rw-r--r--src/widgets/widgets/qframe.cpp76
-rw-r--r--src/widgets/widgets/qframe.h10
-rw-r--r--src/widgets/widgets/qgroupbox.h20
-rw-r--r--src/widgets/widgets/qlabel.h28
-rw-r--r--src/widgets/widgets/qlcdnumber.h6
-rw-r--r--src/widgets/widgets/qlineedit.cpp8
-rw-r--r--src/widgets/widgets/qlineedit.h44
-rw-r--r--src/widgets/widgets/qlineedit_p.h2
-rw-r--r--src/widgets/widgets/qmainwindow.h4
-rw-r--r--src/widgets/widgets/qmainwindowlayout.cpp2
-rw-r--r--src/widgets/widgets/qmainwindowlayout_p.h18
-rw-r--r--src/widgets/widgets/qmdiarea.cpp4
-rw-r--r--src/widgets/widgets/qmdiarea.h24
-rw-r--r--src/widgets/widgets/qmdiarea_p.h10
-rw-r--r--src/widgets/widgets/qmdisubwindow.cpp26
-rw-r--r--src/widgets/widgets/qmdisubwindow.h44
-rw-r--r--src/widgets/widgets/qmdisubwindow_p.h2
-rw-r--r--src/widgets/widgets/qmenu.cpp311
-rw-r--r--src/widgets/widgets/qmenu.h35
-rw-r--r--src/widgets/widgets/qmenu_p.h251
-rw-r--r--src/widgets/widgets/qmenubar.cpp13
-rw-r--r--src/widgets/widgets/qmenubar.h4
-rw-r--r--src/widgets/widgets/qplaintextedit.h62
-rw-r--r--src/widgets/widgets/qplaintextedit_p.h14
-rw-r--r--src/widgets/widgets/qprogressbar.cpp2
-rw-r--r--src/widgets/widgets/qprogressbar.h8
-rw-r--r--src/widgets/widgets/qpushbutton.h14
-rw-r--r--src/widgets/widgets/qradiobutton.h12
-rw-r--r--src/widgets/widgets/qrubberband.h12
-rw-r--r--src/widgets/widgets/qscrollarea.h12
-rw-r--r--src/widgets/widgets/qscrollbar.h20
-rw-r--r--src/widgets/widgets/qsizegrip.h22
-rw-r--r--src/widgets/widgets/qslider.h14
-rw-r--r--src/widgets/widgets/qspinbox.cpp12
-rw-r--r--src/widgets/widgets/qsplashscreen.h4
-rw-r--r--src/widgets/widgets/qsplitter.h26
-rw-r--r--src/widgets/widgets/qstackedwidget.h2
-rw-r--r--src/widgets/widgets/qstatusbar.h8
-rw-r--r--src/widgets/widgets/qtabbar.h28
-rw-r--r--src/widgets/widgets/qtabbar_p.h12
-rw-r--r--src/widgets/widgets/qtabwidget.h20
-rw-r--r--src/widgets/widgets/qtextbrowser.cpp2
-rw-r--r--src/widgets/widgets/qtextbrowser.h18
-rw-r--r--src/widgets/widgets/qtextedit.cpp6
-rw-r--r--src/widgets/widgets/qtextedit.h48
-rw-r--r--src/widgets/widgets/qtoolbar.cpp9
-rw-r--r--src/widgets/widgets/qtoolbar.h14
-rw-r--r--src/widgets/widgets/qtoolbarextension_p.h4
-rw-r--r--src/widgets/widgets/qtoolbarlayout_p.h24
-rw-r--r--src/widgets/widgets/qtoolbarseparator_p.h4
-rw-r--r--src/widgets/widgets/qtoolbox.cpp6
-rw-r--r--src/widgets/widgets/qtoolbox.h6
-rw-r--r--src/widgets/widgets/qtoolbutton.h30
-rw-r--r--src/widgets/widgets/qwidgetlinecontrol_p.h2
-rw-r--r--src/widgets/widgets/qwidgetresizehandler_p.h2
-rw-r--r--src/widgets/widgets/qwidgettextcontrol.cpp6
-rw-r--r--src/widgets/widgets/qwidgettextcontrol_p.h8
-rw-r--r--src/xml/dom/qdom.cpp125
-rw-r--r--src/xml/sax/qxml.cpp4
-rw-r--r--src/xml/sax/qxml.h114
1212 files changed, 55639 insertions, 50368 deletions
diff --git a/src/3rdparty/atspi2/atspi/atspi-constants.h b/src/3rdparty/atspi2/atspi/atspi-constants.h
index 7a55169f1f..3675bcca1f 100644
--- a/src/3rdparty/atspi2/atspi/atspi-constants.h
+++ b/src/3rdparty/atspi2/atspi/atspi-constants.h
@@ -190,7 +190,7 @@ typedef enum {
* enumeration.
*
* Enumeration used by #AtspiMatchRule to specify
- * how to interpret #AtspiAccesible objects.
+ * how to interpret #AtspiAccessible objects.
*
**/
typedef enum {
@@ -331,6 +331,8 @@ typedef enum {
* #atspi_text_get_text_at_offset, #atspi_text_get_text_after_offset, and
* #atspi_text_get_text_before_offset.
*
+ * This enumerationis deprecated since 2.9.90 and should not be used. Use
+ * AtspiTextGranularity with #atspi_text_get_string_at_offset instead.
**/
typedef enum {
ATSPI_TEXT_BOUNDARY_CHAR,
@@ -343,6 +345,34 @@ typedef enum {
} AtspiTextBoundaryType;
/**
+ *AtspiTextGranularity:
+ *@ATSPI_TEXT_GRANULARITY_CHAR: Granularity is defined by the boundaries between characters
+ * (including non-printing characters)
+ *@ATSPI_TEXT_GRANULARITY_WORD: Granularity is defined by the boundaries of a word,
+ * starting at the beginning of the current word and finishing at the beginning of
+ * the following one, if present.
+ *@ATSPI_TEXT_GRANULARITY_SENTENCE: Granularity is defined by the boundaries of a sentence,
+ * starting at the beginning of the current sentence and finishing at the beginning of
+ * the following one, if present.
+ *@ATSPI_TEXT_GRANULARITY_LINE: Granularity is defined by the boundaries of a line,
+ * starting at the beginning of the current line and finishing at the beginning of
+ * the following one, if present.
+ *@ATSPI_TEXT_GRANULARITY_PARAGRAPH: Granularity is defined by the boundaries of a paragraph,
+ * starting at the beginning of the current paragraph and finishing at the beginning of
+ * the following one, if present.
+ *
+ * Text granularity types used for specifying the granularity of the region of
+ * text we are interested in.
+ **/
+typedef enum {
+ ATSPI_TEXT_GRANULARITY_CHAR,
+ ATSPI_TEXT_GRANULARITY_WORD,
+ ATSPI_TEXT_GRANULARITY_SENTENCE,
+ ATSPI_TEXT_GRANULARITY_LINE,
+ ATSPI_TEXT_GRANULARITY_PARAGRAPH
+} AtspiTextGranularity;
+
+/**
* ATSPI_TEXT_BOUNDARY_TYPE_COUNT:
*
* One higher than the highest valid value of #AtspiTextBoundaryType.
@@ -523,6 +553,14 @@ typedef enum {
* @ATSPI_STATE_VISITED: This state indicates that the object (typically a
* hyperlink) has already been activated or invoked, with the result that
* some backing data has been downloaded or rendered.
+ *@ATSPI_STATE_CHECKABLE: Indicates this object has the potential to
+ * be checked, such as a checkbox or toggle-able table cell. @Since:
+ * 2.12
+ *@ATSPI_STATE_HAS_POPUP: Indicates that the object has a popup
+ * context menu or sub-level menu which may or may not be
+ * showing. This means that activation renders conditional content.
+ * Note that ordinary tooltips are not considered popups in this
+ * context. @Since: 2.12
* @ATSPI_STATE_LAST_DEFINED: This value of the enumeration should not be used
* as a parameter, it indicates the number of items in the #AtspiStateType
* enumeration.
@@ -574,6 +612,8 @@ typedef enum {
ATSPI_STATE_SELECTABLE_TEXT,
ATSPI_STATE_IS_DEFAULT,
ATSPI_STATE_VISITED,
+ ATSPI_STATE_CHECKABLE,
+ ATSPI_STATE_HAS_POPUP,
ATSPI_STATE_LAST_DEFINED,
} AtspiStateType;
@@ -639,19 +679,20 @@ typedef enum {
* @ATSPI_KEY_PRESS: Emulates the pressing of a hardware keyboard key.
* @ATSPI_KEY_RELEASE: Emulates the release of a hardware keyboard key.
* @ATSPI_KEY_PRESSRELEASE: Emulates the pressing and immediate releasing
- * ofa hardware keyboard key.
+ * of a hardware keyboard key.
* @ATSPI_KEY_SYM: A symbolic key event is generated, without specifying a
* hardware key. Note: if the keysym is not present in the current keyboard
* map, the #AtspiDeviceEventController instance has a limited ability to
* generate such keysyms on-the-fly. Reliability of GenerateKeyboardEvent
* calls using out-of-keymap keysyms will vary from system to system, and on
- * the number of different out-of-keymap being generated in quick succession.
+ * the number of different out-of-keymap keysyms being generated in quick
+ * succession.
* In practice this is rarely significant, since the keysyms of interest to
* AT clients and keyboard emulators are usually part of the current keymap,
- * i.e. present on the system keyboard for the current locale (even if a
- * physical hardware keyboard is not connected.
+ * i.e., present on the system keyboard for the current locale (even if a
+ * physical hardware keyboard is not connected).
* @ATSPI_KEY_STRING: A string is converted to its equivalent keyboard events
- * and emitted. If the string consists of complex character or composed
+ * and emitted. If the string consists of complex characters or composed
* characters which are not in the current keymap, string emission is
* subject to the out-of-keymap limitations described for
* @ATSPI_KEY_SYM. In practice this limitation primarily effects
@@ -1000,7 +1041,7 @@ typedef enum {
* contains a view of document content. #AtspiDocument frames may occur within
* another #AtspiDocument instance, in which case the second document may be
* said to be embedded in the containing instance. HTML frames are often
- * @ATSPI_ROLE_DOCUMENT_FRAME: Either this object, or a singleton descendant,
+ * ATSPI_ROLE_DOCUMENT_FRAME: Either this object, or a singleton descendant,
* should implement the #AtspiDocument interface.
* @ATSPI_ROLE_HEADING: The object serves as a heading for content which
* follows it in a document. The 'heading level' of the heading, if
@@ -1064,6 +1105,46 @@ typedef enum {
* particular application.
* @ATSPI_ROLE_INFO_BAR: An object designed to present a message to the user
* within an existing window.
+ *@ATSPI_ROLE_LEVEL_BAR: A bar that serves as a level indicator to, for
+ * instance, show the strength of a password or the state of a battery.
+ * Since: 2.8
+ *@ATSPI_ROLE_TITLE_BAR: A bar that serves as the title of a window or a
+ * dialog. @Since: 2.12
+ *@ATSPI_ROLE_BLOCK_QUOTE: An object which contains a text section
+ * that is quoted from another source. @Since: 2.12
+ *@ATSPI_ROLE_AUDIO: An object which represents an audio
+ * element. @Since: 2.12
+ *@ATSPI_ROLE_VIDEO: An object which represents a video
+ * element. @Since: 2.12
+ *@ATSPI_ROLE_DEFINITION: A definition of a term or concept. @Since: 2.12
+ *@ATSPI_ROLE_ARTICLE: A section of a page that consists of a
+ * composition that forms an independent part of a document, page, or
+ * site. Examples: A blog entry, a news story, a forum post. @Since:
+ * 2.12
+ *@ATSPI_ROLE_LANDMARK: A region of a web page intended as a
+ * navigational landmark. This is designed to allow Assistive
+ * Technologies to provide quick navigation among key regions within a
+ * document. @Since: 2.12
+ *@ATSPI_ROLE_LOG: A text widget or container holding log content, such
+ * as chat history and error logs. In this role there is a
+ * relationship between the arrival of new items in the log and the
+ * reading order. The log contains a meaningful sequence and new
+ * information is added only to the end of the log, not at arbitrary
+ * points. @Since: 2.12
+ *@ATSPI_ROLE_MARQUEE: A container where non-essential information
+ * changes frequently. Common usages of marquee include stock tickers
+ * and ad banners. The primary difference between a marquee and a log
+ * is that logs usually have a meaningful order or sequence of
+ * important content changes. @Since: 2.12
+ *@ATSPI_ROLE_MATH: A text widget or container that holds a mathematical
+ * expression. @Since: 2.12
+ *@ATSPI_ROLE_RATING: A widget whose purpose is to display a rating,
+ * such as the number of stars associated with a song in a media
+ * player. Objects of this role should also implement
+ * AtspiValue. @Since: 2.12
+ *@ATSPI_ROLE_TIMER: An object containing a numerical counter which
+ * indicates an amount of elapsed time from a start point, or the time
+ * remaining until an end point. @Since: 2.12
* @ATSPI_ROLE_LAST_DEFINED: Not a valid role, used for finding end of
* enumeration.
*
@@ -1175,6 +1256,19 @@ typedef enum {
ATSPI_ROLE_IMAGE_MAP,
ATSPI_ROLE_NOTIFICATION,
ATSPI_ROLE_INFO_BAR,
+ ATSPI_ROLE_LEVEL_BAR,
+ ATSPI_ROLE_TITLE_BAR,
+ ATSPI_ROLE_BLOCK_QUOTE,
+ ATSPI_ROLE_AUDIO,
+ ATSPI_ROLE_VIDEO,
+ ATSPI_ROLE_DEFINITION,
+ ATSPI_ROLE_ARTICLE,
+ ATSPI_ROLE_LANDMARK,
+ ATSPI_ROLE_LOG,
+ ATSPI_ROLE_MARQUEE,
+ ATSPI_ROLE_MATH,
+ ATSPI_ROLE_RATING,
+ ATSPI_ROLE_TIMER,
ATSPI_ROLE_LAST_DEFINED,
} AtspiRole;
@@ -1187,8 +1281,8 @@ typedef enum {
typedef enum
{
- ATSPI_CACHE_NONE = 0,
- ATSPI_CACHE_PARENT = 1 << 0,
+ ATSPI_CACHE_NONE = 0,
+ ATSPI_CACHE_PARENT = 1 << 0,
ATSPI_CACHE_CHILDREN = 1 << 1,
ATSPI_CACHE_NAME = 1 << 2,
ATSPI_CACHE_DESCRIPTION = 1 << 3,
@@ -1197,10 +1291,7 @@ typedef enum
ATSPI_CACHE_INTERFACES = 1 << 6,
ATSPI_CACHE_ATTRIBUTES = 1 << 7,
ATSPI_CACHE_ALL = 0x3fffffff,
- ATSPI_CACHE_DEFAULT = ATSPI_CACHE_PARENT | ATSPI_CACHE_CHILDREN |
- ATSPI_CACHE_NAME | ATSPI_CACHE_DESCRIPTION |
- ATSPI_CACHE_STATES | ATSPI_CACHE_ROLE |
- ATSPI_CACHE_INTERFACES,
+ ATSPI_CACHE_DEFAULT = ATSPI_CACHE_PARENT | ATSPI_CACHE_CHILDREN | ATSPI_CACHE_NAME | ATSPI_CACHE_DESCRIPTION | ATSPI_CACHE_STATES | ATSPI_CACHE_ROLE | ATSPI_CACHE_INTERFACES,
ATSPI_CACHE_UNDEFINED = 0x40000000,
} AtspiCache;
@@ -1231,6 +1322,7 @@ typedef enum
#define ATSPI_DBUS_INTERFACE_IMAGE "org.a11y.atspi.Image"
#define ATSPI_DBUS_INTERFACE_SELECTION "org.a11y.atspi.Selection"
#define ATSPI_DBUS_INTERFACE_TABLE "org.a11y.atspi.Table"
+#define ATSPI_DBUS_INTERFACE_TABLE_CELL "org.a11y.atspi.TableCell"
#define ATSPI_DBUS_INTERFACE_TEXT "org.a11y.atspi.Text"
#define ATSPI_DBUS_INTERFACE_VALUE "org.a11y.atspi.Value"
#define ATSPI_DBUS_INTERFACE_SOCKET "org.a11y.atspi.Socket"
diff --git a/src/3rdparty/des/des.cpp b/src/3rdparty/des/des.cpp
deleted file mode 100644
index c1a260bbac..0000000000
--- a/src/3rdparty/des/des.cpp
+++ /dev/null
@@ -1,602 +0,0 @@
-/*
- * Implementation of DES encryption for NTLM
- *
- * Copyright 1997-2005 Simon Tatham.
- *
- * This software is released under the MIT license.
- */
-
-/*
- * Description of DES
- * ------------------
- *
- * Unlike the description in FIPS 46, I'm going to use _sensible_ indices:
- * bits in an n-bit word are numbered from 0 at the LSB to n-1 at the MSB.
- * And S-boxes are indexed by six consecutive bits, not by the outer two
- * followed by the middle four.
- *
- * The DES encryption routine requires a 64-bit input, and a key schedule K
- * containing 16 48-bit elements.
- *
- * First the input is permuted by the initial permutation IP.
- * Then the input is split into 32-bit words L and R. (L is the MSW.)
- * Next, 16 rounds. In each round:
- * (L, R) <- (R, L xor f(R, K[i]))
- * Then the pre-output words L and R are swapped.
- * Then L and R are glued back together into a 64-bit word. (L is the MSW,
- * again, but since we just swapped them, the MSW is the R that came out
- * of the last round.)
- * The 64-bit output block is permuted by the inverse of IP and returned.
- *
- * Decryption is identical except that the elements of K are used in the
- * opposite order. (This wouldn't work if that word swap didn't happen.)
- *
- * The function f, used in each round, accepts a 32-bit word R and a
- * 48-bit key block K. It produces a 32-bit output.
- *
- * First R is expanded to 48 bits using the bit-selection function E.
- * The resulting 48-bit block is XORed with the key block K to produce
- * a 48-bit block X.
- * This block X is split into eight groups of 6 bits. Each group of 6
- * bits is then looked up in one of the eight S-boxes to convert
- * it to 4 bits. These eight groups of 4 bits are glued back
- * together to produce a 32-bit preoutput block.
- * The preoutput block is permuted using the permutation P and returned.
- *
- * Key setup maps a 64-bit key word into a 16x48-bit key schedule. Although
- * the approved input format for the key is a 64-bit word, eight of the
- * bits are discarded, so the actual quantity of key used is 56 bits.
- *
- * First the input key is converted to two 28-bit words C and D using
- * the bit-selection function PC1.
- * Then 16 rounds of key setup occur. In each round, C and D are each
- * rotated left by either 1 or 2 bits (depending on which round), and
- * then converted into a key schedule element using the bit-selection
- * function PC2.
- *
- * That's the actual algorithm. Now for the tedious details: all those
- * painful permutations and lookup tables.
- *
- * IP is a 64-to-64 bit permutation. Its output contains the following
- * bits of its input (listed in order MSB to LSB of output).
- *
- * 6 14 22 30 38 46 54 62 4 12 20 28 36 44 52 60
- * 2 10 18 26 34 42 50 58 0 8 16 24 32 40 48 56
- * 7 15 23 31 39 47 55 63 5 13 21 29 37 45 53 61
- * 3 11 19 27 35 43 51 59 1 9 17 25 33 41 49 57
- *
- * E is a 32-to-48 bit selection function. Its output contains the following
- * bits of its input (listed in order MSB to LSB of output).
- *
- * 0 31 30 29 28 27 28 27 26 25 24 23 24 23 22 21 20 19 20 19 18 17 16 15
- * 16 15 14 13 12 11 12 11 10 9 8 7 8 7 6 5 4 3 4 3 2 1 0 31
- *
- * The S-boxes are arbitrary table-lookups each mapping a 6-bit input to a
- * 4-bit output. In other words, each S-box is an array[64] of 4-bit numbers.
- * The S-boxes are listed below. The first S-box listed is applied to the
- * most significant six bits of the block X; the last one is applied to the
- * least significant.
- *
- * 14 0 4 15 13 7 1 4 2 14 15 2 11 13 8 1
- * 3 10 10 6 6 12 12 11 5 9 9 5 0 3 7 8
- * 4 15 1 12 14 8 8 2 13 4 6 9 2 1 11 7
- * 15 5 12 11 9 3 7 14 3 10 10 0 5 6 0 13
- *
- * 15 3 1 13 8 4 14 7 6 15 11 2 3 8 4 14
- * 9 12 7 0 2 1 13 10 12 6 0 9 5 11 10 5
- * 0 13 14 8 7 10 11 1 10 3 4 15 13 4 1 2
- * 5 11 8 6 12 7 6 12 9 0 3 5 2 14 15 9
- *
- * 10 13 0 7 9 0 14 9 6 3 3 4 15 6 5 10
- * 1 2 13 8 12 5 7 14 11 12 4 11 2 15 8 1
- * 13 1 6 10 4 13 9 0 8 6 15 9 3 8 0 7
- * 11 4 1 15 2 14 12 3 5 11 10 5 14 2 7 12
- *
- * 7 13 13 8 14 11 3 5 0 6 6 15 9 0 10 3
- * 1 4 2 7 8 2 5 12 11 1 12 10 4 14 15 9
- * 10 3 6 15 9 0 0 6 12 10 11 1 7 13 13 8
- * 15 9 1 4 3 5 14 11 5 12 2 7 8 2 4 14
- *
- * 2 14 12 11 4 2 1 12 7 4 10 7 11 13 6 1
- * 8 5 5 0 3 15 15 10 13 3 0 9 14 8 9 6
- * 4 11 2 8 1 12 11 7 10 1 13 14 7 2 8 13
- * 15 6 9 15 12 0 5 9 6 10 3 4 0 5 14 3
- *
- * 12 10 1 15 10 4 15 2 9 7 2 12 6 9 8 5
- * 0 6 13 1 3 13 4 14 14 0 7 11 5 3 11 8
- * 9 4 14 3 15 2 5 12 2 9 8 5 12 15 3 10
- * 7 11 0 14 4 1 10 7 1 6 13 0 11 8 6 13
- *
- * 4 13 11 0 2 11 14 7 15 4 0 9 8 1 13 10
- * 3 14 12 3 9 5 7 12 5 2 10 15 6 8 1 6
- * 1 6 4 11 11 13 13 8 12 1 3 4 7 10 14 7
- * 10 9 15 5 6 0 8 15 0 14 5 2 9 3 2 12
- *
- * 13 1 2 15 8 13 4 8 6 10 15 3 11 7 1 4
- * 10 12 9 5 3 6 14 11 5 0 0 14 12 9 7 2
- * 7 2 11 1 4 14 1 7 9 4 12 10 14 8 2 13
- * 0 15 6 12 10 9 13 0 15 3 3 5 5 6 8 11
- *
- * P is a 32-to-32 bit permutation. Its output contains the following
- * bits of its input (listed in order MSB to LSB of output).
- *
- * 16 25 12 11 3 20 4 15 31 17 9 6 27 14 1 22
- * 30 24 8 18 0 5 29 23 13 19 2 26 10 21 28 7
- *
- * PC1 is a 64-to-56 bit selection function. Its output is in two words,
- * C and D. The word C contains the following bits of its input (listed
- * in order MSB to LSB of output).
- *
- * 7 15 23 31 39 47 55 63 6 14 22 30 38 46
- * 54 62 5 13 21 29 37 45 53 61 4 12 20 28
- *
- * And the word D contains these bits.
- *
- * 1 9 17 25 33 41 49 57 2 10 18 26 34 42
- * 50 58 3 11 19 27 35 43 51 59 36 44 52 60
- *
- * PC2 is a 56-to-48 bit selection function. Its input is in two words,
- * C and D. These are treated as one 56-bit word (with C more significant,
- * so that bits 55 to 28 of the word are bits 27 to 0 of C, and bits 27 to
- * 0 of the word are bits 27 to 0 of D). The output contains the following
- * bits of this 56-bit input word (listed in order MSB to LSB of output).
- *
- * 42 39 45 32 55 51 53 28 41 50 35 46 33 37 44 52 30 48 40 49 29 36 43 54
- * 15 4 25 19 9 1 26 16 5 11 23 8 12 7 17 0 22 3 10 14 6 20 27 24
- */
-
-/*
- * Implementation details
- * ----------------------
- *
- * If you look at the code in this module, you'll find it looks
- * nothing _like_ the above algorithm. Here I explain the
- * differences...
- *
- * Key setup has not been heavily optimised here. We are not
- * concerned with key agility: we aren't codebreakers. We don't
- * mind a little delay (and it really is a little one; it may be a
- * factor of five or so slower than it could be but it's still not
- * an appreciable length of time) while setting up. The only tweaks
- * in the key setup are ones which change the format of the key
- * schedule to speed up the actual encryption. I'll describe those
- * below.
- *
- * The first and most obvious optimisation is the S-boxes. Since
- * each S-box always targets the same four bits in the final 32-bit
- * word, so the output from (for example) S-box 0 must always be
- * shifted left 28 bits, we can store the already-shifted outputs
- * in the lookup tables. This reduces lookup-and-shift to lookup,
- * so the S-box step is now just a question of ORing together eight
- * table lookups.
- *
- * The permutation P is just a bit order change; it's invariant
- * with respect to OR, in that P(x)|P(y) = P(x|y). Therefore, we
- * can apply P to every entry of the S-box tables and then we don't
- * have to do it in the code of f(). This yields a set of tables
- * which might be called SP-boxes.
- *
- * The bit-selection function E is our next target. Note that E is
- * immediately followed by the operation of splitting into 6-bit
- * chunks. Examining the 6-bit chunks coming out of E we notice
- * they're all contiguous within the word (speaking cyclically -
- * the end two wrap round); so we can extract those bit strings
- * individually rather than explicitly running E. This would yield
- * code such as
- *
- * y |= SPboxes[0][ (rotl(R, 5) ^ top6bitsofK) & 0x3F ];
- * t |= SPboxes[1][ (rotl(R,11) ^ next6bitsofK) & 0x3F ];
- *
- * and so on; and the key schedule preparation would have to
- * provide each 6-bit chunk separately.
- *
- * Really we'd like to XOR in the key schedule element before
- * looking up bit strings in R. This we can't do, naively, because
- * the 6-bit strings we want overlap. But look at the strings:
- *
- * 3322222222221111111111
- * bit 10987654321098765432109876543210
- *
- * box0 XXXXX X
- * box1 XXXXXX
- * box2 XXXXXX
- * box3 XXXXXX
- * box4 XXXXXX
- * box5 XXXXXX
- * box6 XXXXXX
- * box7 X XXXXX
- *
- * The bit strings we need to XOR in for boxes 0, 2, 4 and 6 don't
- * overlap with each other. Neither do the ones for boxes 1, 3, 5
- * and 7. So we could provide the key schedule in the form of two
- * words that we can separately XOR into R, and then every S-box
- * index is available as a (cyclically) contiguous 6-bit substring
- * of one or the other of the results.
- *
- * The comments in Eric Young's libdes implementation point out
- * that two of these bit strings require a rotation (rather than a
- * simple shift) to extract. It's unavoidable that at least _one_
- * must do; but we can actually run the whole inner algorithm (all
- * 16 rounds) rotated one bit to the left, so that what the `real'
- * DES description sees as L=0x80000001 we see as L=0x00000003.
- * This requires rotating all our SP-box entries one bit to the
- * left, and rotating each word of the key schedule elements one to
- * the left, and rotating L and R one bit left just after IP and
- * one bit right again just before FP. And in each round we convert
- * a rotate into a shift, so we've saved a few per cent.
- *
- * That's about it for the inner loop; the SP-box tables as listed
- * below are what I've described here (the original S value,
- * shifted to its final place in the input to P, run through P, and
- * then rotated one bit left). All that remains is to optimise the
- * initial permutation IP.
- *
- * IP is not an arbitrary permutation. It has the nice property
- * that if you take any bit number, write it in binary (6 bits),
- * permute those 6 bits and invert some of them, you get the final
- * position of that bit. Specifically, the bit whose initial
- * position is given (in binary) as fedcba ends up in position
- * AcbFED (where a capital letter denotes the inverse of a bit).
- *
- * We have the 64-bit data in two 32-bit words L and R, where bits
- * in L are those with f=1 and bits in R are those with f=0. We
- * note that we can do a simple transformation: suppose we exchange
- * the bits with f=1,c=0 and the bits with f=0,c=1. This will cause
- * the bit fedcba to be in position cedfba - we've `swapped' bits c
- * and f in the position of each bit!
- *
- * Better still, this transformation is easy. In the example above,
- * bits in L with c=0 are bits 0x0F0F0F0F, and those in R with c=1
- * are 0xF0F0F0F0. So we can do
- *
- * difference = ((R >> 4) ^ L) & 0x0F0F0F0F
- * R ^= (difference << 4)
- * L ^= difference
- *
- * to perform the swap. Let's denote this by bitswap(4,0x0F0F0F0F).
- * Also, we can invert the bit at the top just by exchanging L and
- * R. So in a few swaps and a few of these bit operations we can
- * do:
- *
- * Initially the position of bit fedcba is fedcba
- * Swap L with R to make it Fedcba
- * Perform bitswap( 4,0x0F0F0F0F) to make it cedFba
- * Perform bitswap(16,0x0000FFFF) to make it ecdFba
- * Swap L with R to make it EcdFba
- * Perform bitswap( 2,0x33333333) to make it bcdFEa
- * Perform bitswap( 8,0x00FF00FF) to make it dcbFEa
- * Swap L with R to make it DcbFEa
- * Perform bitswap( 1,0x55555555) to make it acbFED
- * Swap L with R to make it AcbFED
- *
- * (In the actual code the four swaps are implicit: R and L are
- * simply used the other way round in the first, second and last
- * bitswap operations.)
- *
- * The final permutation is just the inverse of IP, so it can be
- * performed by a similar set of operations.
- */
-
-struct des_context {
- quint32 k0246[16], k1357[16];
-};
-
-#define rotl(x, c) ( (x << c) | (x >> (32-c)) )
-#define rotl28(x, c) ( ( (x << c) | (x >> (28-c)) ) & 0x0FFFFFFF)
-
-static quint32 bitsel(quint32 * input, const int *bitnums, int size)
-{
- quint32 ret = 0;
- while (size--) {
- int bitpos = *bitnums++;
- ret <<= 1;
- if (bitpos >= 0)
- ret |= 1 & (input[bitpos / 32] >> (bitpos % 32));
- }
- return ret;
-}
-
-static inline void des_key_setup(quint32 key_msw, quint32 key_lsw,
- struct des_context *sched)
-{
- /* Tables are modified to work with 56-bit key */
- static const int PC1_Cbits[] = {
- 6, 13, 20, 27, 34, 41, 48, 55, 5, 12, 19, 26, 33, 40,
- 47, 54, 4, 11, 18, 25, 32, 39, 46, 53, 3, 10, 17, 24
- };
- static const int PC1_Dbits[] = {
- 0, 7, 14, 21, 28, 35, 42, 49, 1, 8, 15, 22, 29, 36,
- 43, 50, 2, 9, 16, 23, 30, 37, 44, 51, 31, 38, 45, 52
- };
- /*
- * The bit numbers in the two lists below don't correspond to
- * the ones in the above description of PC2, because in the
- * above description C and D are concatenated so `bit 28' means
- * bit 0 of C. In this implementation we're using the standard
- * `bitsel' function above and C is in the second word, so bit
- * 0 of C is addressed by writing `32' here.
- */
- static const int PC2_0246[] = {
- 49, 36, 59, 55, -1, -1, 37, 41, 48, 56, 34, 52, -1, -1, 15, 4,
- 25, 19, 9, 1, -1, -1, 12, 7, 17, 0, 22, 3, -1, -1, 46, 43
- };
- static const int PC2_1357[] = {
- -1, -1, 57, 32, 45, 54, 39, 50, -1, -1, 44, 53, 33, 40, 47, 58,
- -1, -1, 26, 16, 5, 11, 23, 8, -1, -1, 10, 14, 6, 20, 27, 24
- };
- static const int leftshifts[] = {
- 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1
- };
-
- quint32 C, D;
- quint32 buf[2];
- int i;
-
- buf[0] = key_lsw;
- buf[1] = key_msw;
-
- C = bitsel(buf, PC1_Cbits, 28);
- D = bitsel(buf, PC1_Dbits, 28);
-
- for (i = 0; i < 16; i++) {
- C = rotl28(C, leftshifts[i]);
- D = rotl28(D, leftshifts[i]);
- buf[0] = D;
- buf[1] = C;
- sched->k0246[i] = bitsel(buf, PC2_0246, 32);
- sched->k1357[i] = bitsel(buf, PC2_1357, 32);
- }
-}
-
-static const quint32 SPboxes[8][64] = {
- {0x01010400, 0x00000000, 0x00010000, 0x01010404,
- 0x01010004, 0x00010404, 0x00000004, 0x00010000,
- 0x00000400, 0x01010400, 0x01010404, 0x00000400,
- 0x01000404, 0x01010004, 0x01000000, 0x00000004,
- 0x00000404, 0x01000400, 0x01000400, 0x00010400,
- 0x00010400, 0x01010000, 0x01010000, 0x01000404,
- 0x00010004, 0x01000004, 0x01000004, 0x00010004,
- 0x00000000, 0x00000404, 0x00010404, 0x01000000,
- 0x00010000, 0x01010404, 0x00000004, 0x01010000,
- 0x01010400, 0x01000000, 0x01000000, 0x00000400,
- 0x01010004, 0x00010000, 0x00010400, 0x01000004,
- 0x00000400, 0x00000004, 0x01000404, 0x00010404,
- 0x01010404, 0x00010004, 0x01010000, 0x01000404,
- 0x01000004, 0x00000404, 0x00010404, 0x01010400,
- 0x00000404, 0x01000400, 0x01000400, 0x00000000,
- 0x00010004, 0x00010400, 0x00000000, 0x01010004},
-
- {0x80108020, 0x80008000, 0x00008000, 0x00108020,
- 0x00100000, 0x00000020, 0x80100020, 0x80008020,
- 0x80000020, 0x80108020, 0x80108000, 0x80000000,
- 0x80008000, 0x00100000, 0x00000020, 0x80100020,
- 0x00108000, 0x00100020, 0x80008020, 0x00000000,
- 0x80000000, 0x00008000, 0x00108020, 0x80100000,
- 0x00100020, 0x80000020, 0x00000000, 0x00108000,
- 0x00008020, 0x80108000, 0x80100000, 0x00008020,
- 0x00000000, 0x00108020, 0x80100020, 0x00100000,
- 0x80008020, 0x80100000, 0x80108000, 0x00008000,
- 0x80100000, 0x80008000, 0x00000020, 0x80108020,
- 0x00108020, 0x00000020, 0x00008000, 0x80000000,
- 0x00008020, 0x80108000, 0x00100000, 0x80000020,
- 0x00100020, 0x80008020, 0x80000020, 0x00100020,
- 0x00108000, 0x00000000, 0x80008000, 0x00008020,
- 0x80000000, 0x80100020, 0x80108020, 0x00108000},
-
- {0x00000208, 0x08020200, 0x00000000, 0x08020008,
- 0x08000200, 0x00000000, 0x00020208, 0x08000200,
- 0x00020008, 0x08000008, 0x08000008, 0x00020000,
- 0x08020208, 0x00020008, 0x08020000, 0x00000208,
- 0x08000000, 0x00000008, 0x08020200, 0x00000200,
- 0x00020200, 0x08020000, 0x08020008, 0x00020208,
- 0x08000208, 0x00020200, 0x00020000, 0x08000208,
- 0x00000008, 0x08020208, 0x00000200, 0x08000000,
- 0x08020200, 0x08000000, 0x00020008, 0x00000208,
- 0x00020000, 0x08020200, 0x08000200, 0x00000000,
- 0x00000200, 0x00020008, 0x08020208, 0x08000200,
- 0x08000008, 0x00000200, 0x00000000, 0x08020008,
- 0x08000208, 0x00020000, 0x08000000, 0x08020208,
- 0x00000008, 0x00020208, 0x00020200, 0x08000008,
- 0x08020000, 0x08000208, 0x00000208, 0x08020000,
- 0x00020208, 0x00000008, 0x08020008, 0x00020200},
-
- {0x00802001, 0x00002081, 0x00002081, 0x00000080,
- 0x00802080, 0x00800081, 0x00800001, 0x00002001,
- 0x00000000, 0x00802000, 0x00802000, 0x00802081,
- 0x00000081, 0x00000000, 0x00800080, 0x00800001,
- 0x00000001, 0x00002000, 0x00800000, 0x00802001,
- 0x00000080, 0x00800000, 0x00002001, 0x00002080,
- 0x00800081, 0x00000001, 0x00002080, 0x00800080,
- 0x00002000, 0x00802080, 0x00802081, 0x00000081,
- 0x00800080, 0x00800001, 0x00802000, 0x00802081,
- 0x00000081, 0x00000000, 0x00000000, 0x00802000,
- 0x00002080, 0x00800080, 0x00800081, 0x00000001,
- 0x00802001, 0x00002081, 0x00002081, 0x00000080,
- 0x00802081, 0x00000081, 0x00000001, 0x00002000,
- 0x00800001, 0x00002001, 0x00802080, 0x00800081,
- 0x00002001, 0x00002080, 0x00800000, 0x00802001,
- 0x00000080, 0x00800000, 0x00002000, 0x00802080},
-
- {0x00000100, 0x02080100, 0x02080000, 0x42000100,
- 0x00080000, 0x00000100, 0x40000000, 0x02080000,
- 0x40080100, 0x00080000, 0x02000100, 0x40080100,
- 0x42000100, 0x42080000, 0x00080100, 0x40000000,
- 0x02000000, 0x40080000, 0x40080000, 0x00000000,
- 0x40000100, 0x42080100, 0x42080100, 0x02000100,
- 0x42080000, 0x40000100, 0x00000000, 0x42000000,
- 0x02080100, 0x02000000, 0x42000000, 0x00080100,
- 0x00080000, 0x42000100, 0x00000100, 0x02000000,
- 0x40000000, 0x02080000, 0x42000100, 0x40080100,
- 0x02000100, 0x40000000, 0x42080000, 0x02080100,
- 0x40080100, 0x00000100, 0x02000000, 0x42080000,
- 0x42080100, 0x00080100, 0x42000000, 0x42080100,
- 0x02080000, 0x00000000, 0x40080000, 0x42000000,
- 0x00080100, 0x02000100, 0x40000100, 0x00080000,
- 0x00000000, 0x40080000, 0x02080100, 0x40000100},
-
- {0x20000010, 0x20400000, 0x00004000, 0x20404010,
- 0x20400000, 0x00000010, 0x20404010, 0x00400000,
- 0x20004000, 0x00404010, 0x00400000, 0x20000010,
- 0x00400010, 0x20004000, 0x20000000, 0x00004010,
- 0x00000000, 0x00400010, 0x20004010, 0x00004000,
- 0x00404000, 0x20004010, 0x00000010, 0x20400010,
- 0x20400010, 0x00000000, 0x00404010, 0x20404000,
- 0x00004010, 0x00404000, 0x20404000, 0x20000000,
- 0x20004000, 0x00000010, 0x20400010, 0x00404000,
- 0x20404010, 0x00400000, 0x00004010, 0x20000010,
- 0x00400000, 0x20004000, 0x20000000, 0x00004010,
- 0x20000010, 0x20404010, 0x00404000, 0x20400000,
- 0x00404010, 0x20404000, 0x00000000, 0x20400010,
- 0x00000010, 0x00004000, 0x20400000, 0x00404010,
- 0x00004000, 0x00400010, 0x20004010, 0x00000000,
- 0x20404000, 0x20000000, 0x00400010, 0x20004010},
-
- {0x00200000, 0x04200002, 0x04000802, 0x00000000,
- 0x00000800, 0x04000802, 0x00200802, 0x04200800,
- 0x04200802, 0x00200000, 0x00000000, 0x04000002,
- 0x00000002, 0x04000000, 0x04200002, 0x00000802,
- 0x04000800, 0x00200802, 0x00200002, 0x04000800,
- 0x04000002, 0x04200000, 0x04200800, 0x00200002,
- 0x04200000, 0x00000800, 0x00000802, 0x04200802,
- 0x00200800, 0x00000002, 0x04000000, 0x00200800,
- 0x04000000, 0x00200800, 0x00200000, 0x04000802,
- 0x04000802, 0x04200002, 0x04200002, 0x00000002,
- 0x00200002, 0x04000000, 0x04000800, 0x00200000,
- 0x04200800, 0x00000802, 0x00200802, 0x04200800,
- 0x00000802, 0x04000002, 0x04200802, 0x04200000,
- 0x00200800, 0x00000000, 0x00000002, 0x04200802,
- 0x00000000, 0x00200802, 0x04200000, 0x00000800,
- 0x04000002, 0x04000800, 0x00000800, 0x00200002},
-
- {0x10001040, 0x00001000, 0x00040000, 0x10041040,
- 0x10000000, 0x10001040, 0x00000040, 0x10000000,
- 0x00040040, 0x10040000, 0x10041040, 0x00041000,
- 0x10041000, 0x00041040, 0x00001000, 0x00000040,
- 0x10040000, 0x10000040, 0x10001000, 0x00001040,
- 0x00041000, 0x00040040, 0x10040040, 0x10041000,
- 0x00001040, 0x00000000, 0x00000000, 0x10040040,
- 0x10000040, 0x10001000, 0x00041040, 0x00040000,
- 0x00041040, 0x00040000, 0x10041000, 0x00001000,
- 0x00000040, 0x10040040, 0x00001000, 0x00041040,
- 0x10001000, 0x00000040, 0x10000040, 0x10040000,
- 0x10040040, 0x10000000, 0x00040000, 0x10001040,
- 0x00000000, 0x10041040, 0x00040040, 0x10000040,
- 0x10040000, 0x10001000, 0x10001040, 0x00000000,
- 0x10041040, 0x00041000, 0x00041000, 0x00001040,
- 0x00001040, 0x00040040, 0x10000000, 0x10041000}
-};
-
-#define f(R, K0246, K1357) (\
- s0246 = R ^ K0246, \
- s1357 = R ^ K1357, \
- s0246 = rotl(s0246, 28), \
- SPboxes[0] [(s0246 >> 24) & 0x3F] | \
- SPboxes[1] [(s1357 >> 24) & 0x3F] | \
- SPboxes[2] [(s0246 >> 16) & 0x3F] | \
- SPboxes[3] [(s1357 >> 16) & 0x3F] | \
- SPboxes[4] [(s0246 >> 8) & 0x3F] | \
- SPboxes[5] [(s1357 >> 8) & 0x3F] | \
- SPboxes[6] [(s0246 ) & 0x3F] | \
- SPboxes[7] [(s1357 ) & 0x3F])
-
-#define bitswap(L, R, n, mask) (\
- swap = mask & ( (R >> n) ^ L ), \
- R ^= swap << n, \
- L ^= swap)
-
-/* Initial permutation */
-#define IP(L, R) (\
- bitswap(R, L, 4, 0x0F0F0F0F), \
- bitswap(R, L, 16, 0x0000FFFF), \
- bitswap(L, R, 2, 0x33333333), \
- bitswap(L, R, 8, 0x00FF00FF), \
- bitswap(R, L, 1, 0x55555555))
-
-/* Final permutation */
-#define FP(L, R) (\
- bitswap(R, L, 1, 0x55555555), \
- bitswap(L, R, 8, 0x00FF00FF), \
- bitswap(L, R, 2, 0x33333333), \
- bitswap(R, L, 16, 0x0000FFFF), \
- bitswap(R, L, 4, 0x0F0F0F0F))
-
-static void
-des_encipher(quint32 *output, quint32 L, quint32 R,
- struct des_context *sched)
-{
- quint32 swap, s0246, s1357;
-
- IP(L, R);
-
- L = rotl(L, 1);
- R = rotl(R, 1);
-
- L ^= f(R, sched->k0246[0], sched->k1357[0]);
- R ^= f(L, sched->k0246[1], sched->k1357[1]);
- L ^= f(R, sched->k0246[2], sched->k1357[2]);
- R ^= f(L, sched->k0246[3], sched->k1357[3]);
- L ^= f(R, sched->k0246[4], sched->k1357[4]);
- R ^= f(L, sched->k0246[5], sched->k1357[5]);
- L ^= f(R, sched->k0246[6], sched->k1357[6]);
- R ^= f(L, sched->k0246[7], sched->k1357[7]);
- L ^= f(R, sched->k0246[8], sched->k1357[8]);
- R ^= f(L, sched->k0246[9], sched->k1357[9]);
- L ^= f(R, sched->k0246[10], sched->k1357[10]);
- R ^= f(L, sched->k0246[11], sched->k1357[11]);
- L ^= f(R, sched->k0246[12], sched->k1357[12]);
- R ^= f(L, sched->k0246[13], sched->k1357[13]);
- L ^= f(R, sched->k0246[14], sched->k1357[14]);
- R ^= f(L, sched->k0246[15], sched->k1357[15]);
-
- L = rotl(L, 31);
- R = rotl(R, 31);
-
- swap = L;
- L = R;
- R = swap;
-
- FP(L, R);
-
- output[0] = L;
- output[1] = R;
-}
-
-#define GET_32BIT_MSB_FIRST(cp) \
- (((unsigned long)(unsigned char)(cp)[3]) | \
- ((unsigned long)(unsigned char)(cp)[2] << 8) | \
- ((unsigned long)(unsigned char)(cp)[1] << 16) | \
- ((unsigned long)(unsigned char)(cp)[0] << 24))
-
-#define PUT_32BIT_MSB_FIRST(cp, value) do { \
- (cp)[3] = (value); \
- (cp)[2] = (value) >> 8; \
- (cp)[1] = (value) >> 16; \
- (cp)[0] = (value) >> 24; } while (0)
-
-static inline void
-des_cbc_encrypt(unsigned char *dest, const unsigned char *src,
- struct des_context *sched)
-{
- quint32 out[2], L, R;
-
- L = GET_32BIT_MSB_FIRST(src);
- R = GET_32BIT_MSB_FIRST(src + 4);
- des_encipher(out, L, R, sched);
- PUT_32BIT_MSB_FIRST(dest, out[0]);
- PUT_32BIT_MSB_FIRST(dest + 4, out[1]);
-}
-
-
-static unsigned char *
-deshash(unsigned char *dst, const unsigned char *key,
- const unsigned char *src)
-{
- struct des_context ctx;
-
- des_key_setup(GET_32BIT_MSB_FIRST(key) >> 8,
- GET_32BIT_MSB_FIRST(key + 3), &ctx);
-
- des_cbc_encrypt(dst, src, &ctx);
-
- return dst;
-}
diff --git a/src/3rdparty/forkfd/forkfd.c b/src/3rdparty/forkfd/forkfd.c
new file mode 100644
index 0000000000..b781b517a6
--- /dev/null
+++ b/src/3rdparty/forkfd/forkfd.c
@@ -0,0 +1,495 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Intel Corporation
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef _GNU_SOURCE
+# define _GNU_SOURCE
+# define _POSIX_C_SOURCE 200809L
+# define _XOPEN_SOURCE 500
+#endif
+#include "forkfd.h"
+
+#include <sys/types.h>
+#include <sys/wait.h>
+#include <assert.h>
+#include <errno.h>
+#include <pthread.h>
+#include <signal.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+#ifdef __linux__
+# define HAVE_PIPE2 1
+# define HAVE_EVENTFD 1
+# include <sys/eventfd.h>
+#endif
+
+#if _POSIX_VERSION-0 >= 200809L || _XOPEN_VERSION-0 >= 500
+# define HAVE_WAITID 1
+#endif
+
+#ifndef FFD_ATOMIC_RELAXED
+# include "forkfd_gcc.h"
+#endif
+
+#define CHILDREN_IN_SMALL_ARRAY 16
+#define CHILDREN_IN_BIG_ARRAY 256
+#define sizeofarray(array) (sizeof(array)/sizeof(array[0]))
+#define EINTR_LOOP(ret, call) \
+ do { \
+ ret = call; \
+ } while (ret == -1 && errno == EINTR)
+
+typedef struct process_info
+{
+ ffd_atomic_int pid;
+ int deathPipe;
+} ProcessInfo;
+
+struct BigArray;
+typedef struct Header
+{
+ ffd_atomic_pointer(struct BigArray) nextArray;
+ ffd_atomic_int busyCount;
+} Header;
+
+typedef struct BigArray
+{
+ Header header;
+ ProcessInfo entries[CHILDREN_IN_BIG_ARRAY];
+} BigArray;
+
+typedef struct SmallArray
+{
+ Header header;
+ ProcessInfo entries[CHILDREN_IN_SMALL_ARRAY];
+} SmallArray;
+static SmallArray children;
+
+static struct sigaction old_sigaction;
+static pthread_once_t forkfd_initialization = PTHREAD_ONCE_INIT;
+static ffd_atomic_int forkfd_status = FFD_ATOMIC_INIT(0);
+
+static ProcessInfo *tryAllocateInSection(Header *header, ProcessInfo entries[], int maxCount)
+{
+ /* we use ACQUIRE here because the signal handler might have released the PID */
+ int busyCount = ffd_atomic_add_fetch(&header->busyCount, 1, FFD_ATOMIC_ACQUIRE);
+ if (busyCount <= maxCount) {
+ /* there's an available entry in this section, find it and take it */
+ int i;
+ for (i = 0; i < maxCount; ++i) {
+ /* if the PID is 0, it's free; mark it as used by swapping it with -1 */
+ int expected_pid = 0;
+ if (ffd_atomic_compare_exchange(&entries[i].pid, &expected_pid,
+ -1, FFD_ATOMIC_RELAXED, FFD_ATOMIC_RELAXED))
+ return &entries[i];
+ }
+ }
+
+ /* there isn't an available entry, undo our increment */
+ ffd_atomic_add_fetch(&header->busyCount, -1, FFD_ATOMIC_RELAXED);
+ return NULL;
+}
+
+static ProcessInfo *allocateInfo(Header **header)
+{
+ Header *currentHeader = &children.header;
+
+ /* try to find an available entry in the small array first */
+ ProcessInfo *info =
+ tryAllocateInSection(currentHeader, children.entries, sizeofarray(children.entries));
+
+ /* go on to the next arrays */
+ while (info == NULL) {
+ BigArray *array = ffd_atomic_load(&currentHeader->nextArray, FFD_ATOMIC_ACQUIRE);
+ if (array == NULL) {
+ /* allocate an array and try to use it */
+ BigArray *allocatedArray = (BigArray *)calloc(1, sizeof(BigArray));
+ if (allocatedArray == NULL)
+ return NULL;
+
+ if (ffd_atomic_compare_exchange(&currentHeader->nextArray, &array, allocatedArray,
+ FFD_ATOMIC_RELEASE, FFD_ATOMIC_ACQUIRE)) {
+ /* success */
+ array = allocatedArray;
+ } else {
+ /* failed, the atomic updated 'array' */
+ free(allocatedArray);
+ }
+ }
+
+ currentHeader = &array->header;
+ info = tryAllocateInSection(currentHeader, array->entries, sizeofarray(array->entries));
+ }
+
+ *header = currentHeader;
+ return info;
+}
+
+static int tryReaping(pid_t pid, siginfo_t *info)
+{
+ /* reap the child */
+#ifdef HAVE_WAITID
+ // we have waitid(2), which fills in siginfo_t for us
+ info->si_pid = 0;
+ return waitid(P_PID, pid, info, WEXITED | WNOHANG) == 0 && info->si_pid == pid;
+#else
+ int status;
+ if (waitpid(pid, &status, WNOHANG) <= 0)
+ return 0; // child did not change state
+
+ info->si_signo = SIGCHLD;
+ info->si_utime = 0;
+ info->si_stime = 0;
+ info->si_pid = pid;
+ if (WIFEXITED(status)) {
+ info->si_code = CLD_EXITED;
+ info->si_status = WEXITSTATUS(status);
+ } else if (WIFSIGNALED(status)) {
+ info->si_code = CLD_KILLED;
+# ifdef WCOREDUMP
+ if (WCOREDUMP(status))
+ info->si_code = CLD_DUMPED;
+# endif
+ info->si_status = WTERMSIG(status);
+ }
+
+ return 1;
+#endif
+}
+
+static void freeInfo(Header *header, ProcessInfo *entry)
+{
+ entry->deathPipe = -1;
+ entry->pid = 0;
+
+ ffd_atomic_add_fetch(&header->busyCount, -1, FFD_ATOMIC_RELEASE);
+ assert(header->busyCount >= 0);
+}
+
+static void notifyAndFreeInfo(Header *header, ProcessInfo *entry, siginfo_t *info)
+{
+ ssize_t ret;
+ EINTR_LOOP(ret, write(entry->deathPipe, info, sizeof(*info)));
+ EINTR_LOOP(ret, close(entry->deathPipe));
+
+ freeInfo(header, entry);
+}
+
+static void sigchld_handler(int signum)
+{
+ /*
+ * This is a signal handler, so we need to be careful about which functions
+ * we can call. See the full, official listing in the POSIX.1-2008
+ * specification at:
+ * http://pubs.opengroup.org/onlinepubs/9699919799/functions/V2_chap02.html#tag_15_04_03
+ *
+ */
+
+ if (ffd_atomic_load(&forkfd_status, FFD_ATOMIC_RELAXED) == 1) {
+ /* is this one of our children? */
+ BigArray *array;
+ siginfo_t info;
+ int i;
+
+ for (i = 0; i < (int)sizeofarray(children.entries); ++i) {
+ int pid = ffd_atomic_load(&children.entries[i].pid, FFD_ATOMIC_ACQUIRE);
+ if (pid > 0 && tryReaping(pid, &info)) {
+ /* this is our child, send notification and free up this entry */
+ notifyAndFreeInfo(&children.header, &children.entries[i], &info);
+ }
+ }
+
+ /* try the arrays */
+ array = ffd_atomic_load(&children.header.nextArray, FFD_ATOMIC_ACQUIRE);
+ while (array != NULL) {
+ for (i = 0; i < (int)sizeofarray(array->entries); ++i) {
+ int pid = ffd_atomic_load(&array->entries[i].pid, FFD_ATOMIC_ACQUIRE);
+ if (pid > 0 && tryReaping(pid, &info)) {
+ /* this is our child, send notification and free up this entry */
+ notifyAndFreeInfo(&array->header, &array->entries[i], &info);
+ }
+ }
+
+ array = ffd_atomic_load(&array->header.nextArray, FFD_ATOMIC_ACQUIRE);
+ }
+ }
+
+ if (old_sigaction.sa_handler != SIG_IGN && old_sigaction.sa_handler != SIG_DFL)
+ old_sigaction.sa_handler(signum);
+}
+
+static void forkfd_initialize()
+{
+ /* install our signal handler */
+ struct sigaction action;
+ memset(&action, 0, sizeof action);
+ sigemptyset(&action.sa_mask);
+ action.sa_flags = SA_NOCLDSTOP;
+ action.sa_handler = sigchld_handler;
+
+ /* ### RACE CONDITION
+ * The sigaction function does a memcpy from an internal buffer
+ * to old_sigaction, which we use in the SIGCHLD handler. If a
+ * SIGCHLD is delivered before or during that memcpy, the handler will
+ * see an inconsistent state.
+ *
+ * There is no solution. pthread_sigmask doesn't work here because the
+ * signal could be delivered to another thread.
+ */
+ sigaction(SIGCHLD, &action, &old_sigaction);
+
+#ifndef __GNUC__
+ atexit(cleanup);
+#endif
+
+ ffd_atomic_store(&forkfd_status, 1, FFD_ATOMIC_RELAXED);
+}
+
+#ifdef __GNUC__
+__attribute((destructor, unused)) static void cleanup();
+#endif
+
+static void cleanup()
+{
+ BigArray *array;
+ /* This function is not thread-safe!
+ * It must only be called when the process is shutting down.
+ * At shutdown, we expect no one to be calling forkfd(), so we don't
+ * need to be thread-safe with what is done there.
+ *
+ * But SIGCHLD might be delivered to any thread, including this one.
+ * There's no way to prevent that. The correct solution would be to
+ * cooperatively delete. We don't do that.
+ */
+ if (ffd_atomic_load(&forkfd_status, FFD_ATOMIC_RELAXED) == 0)
+ return;
+
+ /* notify the handler that we're no longer in operation */
+ ffd_atomic_store(&forkfd_status, 0, FFD_ATOMIC_RELAXED);
+
+ /* free any arrays we might have */
+ array = children.header.nextArray;
+ while (array != NULL) {
+ BigArray *next = array->header.nextArray;
+ free(array);
+ array = next;
+ }
+}
+
+static int create_pipe(int filedes[], int flags)
+{
+ int ret;
+#ifdef HAVE_PIPE2
+ /* use pipe2(2) whenever possible, since it can thread-safely create a
+ * cloexec pair of pipes. Without it, we have a race condition setting
+ * FD_CLOEXEC
+ */
+ ret = pipe2(filedes, O_CLOEXEC);
+ if (ret == -1)
+ return ret;
+
+ if ((flags & FFD_CLOEXEC) == 0)
+ fcntl(filedes[0], F_SETFD, 0);
+#else
+ ret = pipe(filedes);
+ if (ret == -1)
+ return ret;
+
+ fcntl(filedes[1], F_SETFD, FD_CLOEXEC);
+ if (flags & FFD_CLOEXEC)
+ fcntl(filedes[0], F_SETFD, FD_CLOEXEC);
+#endif
+ if (flags & FFD_NONBLOCK)
+ fcntl(filedes[0], F_SETFL, fcntl(filedes[0], F_GETFL) | O_NONBLOCK);
+ return ret;
+}
+
+/**
+ * @brief forkfd returns a file descriptor representing a child process
+ * @return a file descriptor, or -1 in case of failure
+ *
+ * forkfd() creates a file descriptor that can be used to be notified of when a
+ * child process exits. This file descriptor can be monitored using select(2),
+ * poll(2) or similar mechanisms.
+ *
+ * The @a flags parameter can contain the following values ORed to change the
+ * behaviour of forkfd():
+ *
+ * @li @c FFD_NONBLOCK Set the O_NONBLOCK file status flag on the new open file
+ * descriptor. Using this flag saves extra calls to fnctl(2) to achieve the same
+ * result.
+ *
+ * @li @c FFD_CLOEXEC Set the close-on-exec (FD_CLOEXEC) flag on the new file
+ * descriptor. You probably want to set this flag, since forkfd() does not work
+ * if the original parent process dies.
+ *
+ * The file descriptor returned by forkfd() supports the following operations:
+ *
+ * @li read(2) When the child process exits, then the buffer supplied to
+ * read(2) is used to return information about the status of the child in the
+ * form of one @c siginfo_t structure. The buffer must be at least
+ * sizeof(siginfo_t) bytes. The return value of read(2) is the total number of
+ * bytes read.
+ *
+ * @li poll(2), select(2) (and similar) The file descriptor is readable (the
+ * select(2) readfds argument; the poll(2) POLLIN flag) if the child has exited
+ * or signalled via SIGCHLD.
+ *
+ * @li close(2) When the file descriptor is no longer required it should be closed.
+ */
+int forkfd(int flags, pid_t *ppid)
+{
+ Header *header;
+ ProcessInfo *info;
+ pid_t pid;
+ int fd = -1;
+ int death_pipe[2];
+ int sync_pipe[2];
+ int ret;
+#ifdef __linux__
+ int efd;
+#endif
+
+ (void) pthread_once(&forkfd_initialization, forkfd_initialize);
+
+ info = allocateInfo(&header);
+ if (info == NULL) {
+ errno = ENOMEM;
+ return -1;
+ }
+
+ /* create the pipes before we fork */
+ if (create_pipe(death_pipe, flags) == -1)
+ goto err_free; /* failed to create the pipes, pass errno */
+
+#ifdef HAVE_EVENTFD
+ /* try using an eventfd, which consumes less resources */
+ efd = eventfd(0, EFD_CLOEXEC);
+ if (efd == -1)
+#endif
+ {
+ /* try a pipe */
+ if (create_pipe(sync_pipe, O_CLOEXEC) == -1) {
+ /* failed both at eventfd and pipe; fail and pass errno */
+ goto err_close;
+ }
+ }
+
+ /* now fork */
+ pid = fork();
+ if (pid == -1)
+ goto err_close2; /* failed to fork, pass errno */
+ if (ppid)
+ *ppid = pid;
+
+ /*
+ * We need to store the child's PID in the info structure, so
+ * the SIGCHLD handler knows that this child is present and it
+ * knows the writing end of the pipe to pass information on.
+ * However, the child process could exit before we stored the
+ * information (or the handler could run for other children exiting).
+ * We prevent that from happening by blocking the child process in
+ * a read(2) until we're finished storing the information.
+ */
+ if (pid == 0) {
+ /* this is the child process */
+ /* first, wait for the all clear */
+#ifdef HAVE_EVENTFD
+ if (efd != -1) {
+ eventfd_t val64;
+ EINTR_LOOP(ret, eventfd_read(efd, &val64));
+ EINTR_LOOP(ret, close(efd));
+ } else
+#endif
+ {
+ char c;
+ EINTR_LOOP(ret, close(sync_pipe[1]));
+ EINTR_LOOP(ret, read(sync_pipe[0], &c, sizeof c));
+ EINTR_LOOP(ret, close(sync_pipe[0]));
+ }
+
+ /* now close the pipes and return to the caller */
+ EINTR_LOOP(ret, close(death_pipe[0]));
+ EINTR_LOOP(ret, close(death_pipe[1]));
+ fd = FFD_CHILD_PROCESS;
+ } else {
+ /* parent process */
+ info->deathPipe = death_pipe[1];
+ fd = death_pipe[0];
+ ffd_atomic_store(&info->pid, pid, FFD_ATOMIC_RELEASE);
+
+ /* release the child */
+#ifdef HAVE_EVENTFD
+ if (efd != -1) {
+ eventfd_t val64 = 42;
+ EINTR_LOOP(ret, eventfd_write(efd, val64));
+ EINTR_LOOP(ret, close(efd));
+ } else
+#endif
+ {
+ /*
+ * Usually, closing would be enough to make read(2) return and the child process
+ * continue. We need to write here: another thread could be calling forkfd at the
+ * same time, which means auxpipe[1] might be open in another child process.
+ */
+ EINTR_LOOP(ret, close(sync_pipe[0]));
+ EINTR_LOOP(ret, write(sync_pipe[1], "", 1));
+ EINTR_LOOP(ret, close(sync_pipe[1]));
+ }
+ }
+
+ return fd;
+
+err_close2:
+#ifdef HAVE_EVENTFD
+ if (efd != -1) {
+ EINTR_LOOP(ret, close(efd));
+ } else
+#endif
+ {
+ EINTR_LOOP(ret, close(sync_pipe[0]));
+ EINTR_LOOP(ret, close(sync_pipe[1]));
+ }
+err_close:
+ EINTR_LOOP(ret, close(death_pipe[0]));
+ EINTR_LOOP(ret, close(death_pipe[1]));
+err_free:
+ /* free the info pointer */
+ freeInfo(header, info);
+ return -1;
+}
diff --git a/src/3rdparty/forkfd/forkfd.h b/src/3rdparty/forkfd/forkfd.h
new file mode 100644
index 0000000000..de75f84bc0
--- /dev/null
+++ b/src/3rdparty/forkfd/forkfd.h
@@ -0,0 +1,58 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Intel Corporation
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef FORKFD_H
+#define FORKFD_H
+
+#include <fcntl.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define FFD_CLOEXEC O_CLOEXEC
+#define FFD_NONBLOCK O_NONBLOCK
+
+#define FFD_CHILD_PROCESS (-2)
+
+int forkfd(int flags, pid_t *ppid);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // FORKFD_H
diff --git a/src/3rdparty/forkfd/forkfd_gcc.h b/src/3rdparty/forkfd/forkfd_gcc.h
new file mode 100644
index 0000000000..e5cbbe60e0
--- /dev/null
+++ b/src/3rdparty/forkfd/forkfd_gcc.h
@@ -0,0 +1,76 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Intel Corporation
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef FFD_ATOMIC_GCC_H
+#define FFD_ATOMIC_GCC_H
+
+/* atomics */
+/* we'll use the GCC 4.7 atomic builtins
+ * See http://gcc.gnu.org/onlinedocs/gcc/_005f_005fatomic-Builtins.html#_005f_005fatomic-Builtins
+ * Or in texinfo: C Extensions > __atomic Builtins
+ */
+typedef int ffd_atomic_int;
+#define ffd_atomic_pointer(type) type*
+
+#define FFD_ATOMIC_INIT(val) (val)
+
+#define FFD_ATOMIC_RELAXED __ATOMIC_RELAXED
+#define FFD_ATOMIC_ACQUIRE __ATOMIC_ACQUIRE
+#define FFD_ATOMIC_RELEASE __ATOMIC_RELEASE
+// acq_rel & cst not necessary
+
+#if !defined(__GNUC__) || \
+ ((__GNUC__ - 0) * 100 + (__GNUC_MINOR__ - 0)) < 407 || \
+ (defined(__INTEL_COMPILER) && __INTEL_COMPILER-0 < 1310) || \
+ (defined(__clang__) && ((__clang_major__-0) * 100 + (__clang_minor-0)) < 303)
+#define ffd_atomic_load_n(ptr,order) *(ptr)
+#define ffd_atomic_store_n(ptr,val,order) (*(ptr) = (val), (void)0)
+#define ffd_atomic_exchange_n(ptr,val,order) __sync_lock_test_and_set(ptr, val)
+#define ffd_atomic_compare_exchange_n(ptr,expected,desired,weak,order1,order2) \
+ __sync_bool_compare_and_swap(ptr, *(expected), desired) ? 1 : \
+ (*(expected) = *(ptr), 0)
+#define ffd_atomic_add_fetch(ptr,val,order) __sync_add_and_fetch(ptr, val)
+#else
+#define ffd_atomic_load(ptr,order) __atomic_load_n(ptr, order)
+#define ffd_atomic_store(ptr,val,order) __atomic_store_n(ptr, val, order)
+#define ffd_atomic_exchange(ptr,val,order) __atomic_exchange_n(ptr, val, order)
+#define ffd_atomic_compare_exchange(ptr,expected,desired,order1,order2) \
+ __atomic_compare_exchange_n(ptr, expected, desired, 1, order1, order2)
+#define ffd_atomic_add_fetch(ptr,val,order) __atomic_add_fetch(ptr, val, order)
+#endif
+
+#endif
diff --git a/src/3rdparty/iaccessible2/generated/amd64/Accessible2.h b/src/3rdparty/iaccessible2/generated/amd64/Accessible2.h
deleted file mode 100644
index 3973db319e..0000000000
--- a/src/3rdparty/iaccessible2/generated/amd64/Accessible2.h
+++ /dev/null
@@ -1,585 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the definitions for the interfaces */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:56 2012
- */
-/* Compiler settings for Accessible2.idl:
- Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-
-
-/* verify that the <rpcndr.h> version is high enough to compile this file*/
-#ifndef __REQUIRED_RPCNDR_H_VERSION__
-#define __REQUIRED_RPCNDR_H_VERSION__ 475
-#endif
-
-#include "rpc.h"
-#include "rpcndr.h"
-
-#ifndef __RPCNDR_H_VERSION__
-#error this stub requires an updated version of <rpcndr.h>
-#endif // __RPCNDR_H_VERSION__
-
-#ifndef COM_NO_WINDOWS_H
-#include "windows.h"
-#include "ole2.h"
-#endif /*COM_NO_WINDOWS_H*/
-
-#ifndef __Accessible2_h__
-#define __Accessible2_h__
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-#pragma once
-#endif
-
-/* Forward Declarations */
-
-#ifndef __IAccessible2_FWD_DEFINED__
-#define __IAccessible2_FWD_DEFINED__
-typedef interface IAccessible2 IAccessible2;
-#endif /* __IAccessible2_FWD_DEFINED__ */
-
-
-/* header files for imported files */
-#include "objidl.h"
-#include "oaidl.h"
-#include "oleacc.h"
-#include "AccessibleRelation.h"
-#include "AccessibleStates.h"
-#include "IA2CommonTypes.h"
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-
-/* interface __MIDL_itf_Accessible2_0000_0000 */
-/* [local] */
-
-typedef struct IA2Locale
- {
- BSTR language;
- BSTR country;
- BSTR variant;
- } IA2Locale;
-
-
-
-extern RPC_IF_HANDLE __MIDL_itf_Accessible2_0000_0000_v0_0_c_ifspec;
-extern RPC_IF_HANDLE __MIDL_itf_Accessible2_0000_0000_v0_0_s_ifspec;
-
-#ifndef __IAccessible2_INTERFACE_DEFINED__
-#define __IAccessible2_INTERFACE_DEFINED__
-
-/* interface IAccessible2 */
-/* [uuid][object] */
-
-
-EXTERN_C const IID IID_IAccessible2;
-
-#if defined(__cplusplus) && !defined(CINTERFACE)
-
- MIDL_INTERFACE("E89F726E-C4F4-4c19-BB19-B647D7FA8478")
- IAccessible2 : public IAccessible
- {
- public:
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nRelations(
- /* [retval][out] */ long *nRelations) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_relation(
- /* [in] */ long relationIndex,
- /* [retval][out] */ IAccessibleRelation **relation) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_relations(
- /* [in] */ long maxRelations,
- /* [length_is][size_is][out] */ IAccessibleRelation **relations,
- /* [retval][out] */ long *nRelations) = 0;
-
- virtual HRESULT STDMETHODCALLTYPE role(
- /* [retval][out] */ long *role) = 0;
-
- virtual HRESULT STDMETHODCALLTYPE scrollTo(
- /* [in] */ enum IA2ScrollType scrollType) = 0;
-
- virtual HRESULT STDMETHODCALLTYPE scrollToPoint(
- /* [in] */ enum IA2CoordinateType coordinateType,
- /* [in] */ long x,
- /* [in] */ long y) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_groupPosition(
- /* [out] */ long *groupLevel,
- /* [out] */ long *similarItemsInGroup,
- /* [retval][out] */ long *positionInGroup) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_states(
- /* [retval][out] */ AccessibleStates *states) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_extendedRole(
- /* [retval][out] */ BSTR *extendedRole) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_localizedExtendedRole(
- /* [retval][out] */ BSTR *localizedExtendedRole) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nExtendedStates(
- /* [retval][out] */ long *nExtendedStates) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_extendedStates(
- /* [in] */ long maxExtendedStates,
- /* [length_is][length_is][size_is][size_is][out] */ BSTR **extendedStates,
- /* [retval][out] */ long *nExtendedStates) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_localizedExtendedStates(
- /* [in] */ long maxLocalizedExtendedStates,
- /* [length_is][length_is][size_is][size_is][out] */ BSTR **localizedExtendedStates,
- /* [retval][out] */ long *nLocalizedExtendedStates) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_uniqueID(
- /* [retval][out] */ long *uniqueID) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_windowHandle(
- /* [retval][out] */ HWND *windowHandle) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_indexInParent(
- /* [retval][out] */ long *indexInParent) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_locale(
- /* [retval][out] */ IA2Locale *locale) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_attributes(
- /* [retval][out] */ BSTR *attributes) = 0;
-
- };
-
-#else /* C style interface */
-
- typedef struct IAccessible2Vtbl
- {
- BEGIN_INTERFACE
-
- HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
- IAccessible2 * This,
- /* [in] */ REFIID riid,
- /* [annotation][iid_is][out] */
- __RPC__deref_out void **ppvObject);
-
- ULONG ( STDMETHODCALLTYPE *AddRef )(
- IAccessible2 * This);
-
- ULONG ( STDMETHODCALLTYPE *Release )(
- IAccessible2 * This);
-
- HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
- IAccessible2 * This,
- /* [out] */ UINT *pctinfo);
-
- HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
- IAccessible2 * This,
- /* [in] */ UINT iTInfo,
- /* [in] */ LCID lcid,
- /* [out] */ ITypeInfo **ppTInfo);
-
- HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
- IAccessible2 * This,
- /* [in] */ REFIID riid,
- /* [size_is][in] */ LPOLESTR *rgszNames,
- /* [range][in] */ UINT cNames,
- /* [in] */ LCID lcid,
- /* [size_is][out] */ DISPID *rgDispId);
-
- /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
- IAccessible2 * This,
- /* [in] */ DISPID dispIdMember,
- /* [in] */ REFIID riid,
- /* [in] */ LCID lcid,
- /* [in] */ WORD wFlags,
- /* [out][in] */ DISPPARAMS *pDispParams,
- /* [out] */ VARIANT *pVarResult,
- /* [out] */ EXCEPINFO *pExcepInfo,
- /* [out] */ UINT *puArgErr);
-
- /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accParent )(
- IAccessible2 * This,
- /* [retval][out] */ IDispatch **ppdispParent);
-
- /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accChildCount )(
- IAccessible2 * This,
- /* [retval][out] */ long *pcountChildren);
-
- /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accChild )(
- IAccessible2 * This,
- /* [in] */ VARIANT varChild,
- /* [retval][out] */ IDispatch **ppdispChild);
-
- /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accName )(
- IAccessible2 * This,
- /* [optional][in] */ VARIANT varChild,
- /* [retval][out] */ BSTR *pszName);
-
- /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accValue )(
- IAccessible2 * This,
- /* [optional][in] */ VARIANT varChild,
- /* [retval][out] */ BSTR *pszValue);
-
- /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accDescription )(
- IAccessible2 * This,
- /* [optional][in] */ VARIANT varChild,
- /* [retval][out] */ BSTR *pszDescription);
-
- /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accRole )(
- IAccessible2 * This,
- /* [optional][in] */ VARIANT varChild,
- /* [retval][out] */ VARIANT *pvarRole);
-
- /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accState )(
- IAccessible2 * This,
- /* [optional][in] */ VARIANT varChild,
- /* [retval][out] */ VARIANT *pvarState);
-
- /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accHelp )(
- IAccessible2 * This,
- /* [optional][in] */ VARIANT varChild,
- /* [retval][out] */ BSTR *pszHelp);
-
- /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accHelpTopic )(
- IAccessible2 * This,
- /* [out] */ BSTR *pszHelpFile,
- /* [optional][in] */ VARIANT varChild,
- /* [retval][out] */ long *pidTopic);
-
- /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accKeyboardShortcut )(
- IAccessible2 * This,
- /* [optional][in] */ VARIANT varChild,
- /* [retval][out] */ BSTR *pszKeyboardShortcut);
-
- /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accFocus )(
- IAccessible2 * This,
- /* [retval][out] */ VARIANT *pvarChild);
-
- /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accSelection )(
- IAccessible2 * This,
- /* [retval][out] */ VARIANT *pvarChildren);
-
- /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accDefaultAction )(
- IAccessible2 * This,
- /* [optional][in] */ VARIANT varChild,
- /* [retval][out] */ BSTR *pszDefaultAction);
-
- /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accSelect )(
- IAccessible2 * This,
- /* [in] */ long flagsSelect,
- /* [optional][in] */ VARIANT varChild);
-
- /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accLocation )(
- IAccessible2 * This,
- /* [out] */ long *pxLeft,
- /* [out] */ long *pyTop,
- /* [out] */ long *pcxWidth,
- /* [out] */ long *pcyHeight,
- /* [optional][in] */ VARIANT varChild);
-
- /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accNavigate )(
- IAccessible2 * This,
- /* [in] */ long navDir,
- /* [optional][in] */ VARIANT varStart,
- /* [retval][out] */ VARIANT *pvarEndUpAt);
-
- /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accHitTest )(
- IAccessible2 * This,
- /* [in] */ long xLeft,
- /* [in] */ long yTop,
- /* [retval][out] */ VARIANT *pvarChild);
-
- /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accDoDefaultAction )(
- IAccessible2 * This,
- /* [optional][in] */ VARIANT varChild);
-
- /* [id][propput][hidden] */ HRESULT ( STDMETHODCALLTYPE *put_accName )(
- IAccessible2 * This,
- /* [optional][in] */ VARIANT varChild,
- /* [in] */ BSTR szName);
-
- /* [id][propput][hidden] */ HRESULT ( STDMETHODCALLTYPE *put_accValue )(
- IAccessible2 * This,
- /* [optional][in] */ VARIANT varChild,
- /* [in] */ BSTR szValue);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nRelations )(
- IAccessible2 * This,
- /* [retval][out] */ long *nRelations);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relation )(
- IAccessible2 * This,
- /* [in] */ long relationIndex,
- /* [retval][out] */ IAccessibleRelation **relation);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relations )(
- IAccessible2 * This,
- /* [in] */ long maxRelations,
- /* [length_is][size_is][out] */ IAccessibleRelation **relations,
- /* [retval][out] */ long *nRelations);
-
- HRESULT ( STDMETHODCALLTYPE *role )(
- IAccessible2 * This,
- /* [retval][out] */ long *role);
-
- HRESULT ( STDMETHODCALLTYPE *scrollTo )(
- IAccessible2 * This,
- /* [in] */ enum IA2ScrollType scrollType);
-
- HRESULT ( STDMETHODCALLTYPE *scrollToPoint )(
- IAccessible2 * This,
- /* [in] */ enum IA2CoordinateType coordinateType,
- /* [in] */ long x,
- /* [in] */ long y);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_groupPosition )(
- IAccessible2 * This,
- /* [out] */ long *groupLevel,
- /* [out] */ long *similarItemsInGroup,
- /* [retval][out] */ long *positionInGroup);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_states )(
- IAccessible2 * This,
- /* [retval][out] */ AccessibleStates *states);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_extendedRole )(
- IAccessible2 * This,
- /* [retval][out] */ BSTR *extendedRole);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedExtendedRole )(
- IAccessible2 * This,
- /* [retval][out] */ BSTR *localizedExtendedRole);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nExtendedStates )(
- IAccessible2 * This,
- /* [retval][out] */ long *nExtendedStates);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_extendedStates )(
- IAccessible2 * This,
- /* [in] */ long maxExtendedStates,
- /* [length_is][length_is][size_is][size_is][out] */ BSTR **extendedStates,
- /* [retval][out] */ long *nExtendedStates);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedExtendedStates )(
- IAccessible2 * This,
- /* [in] */ long maxLocalizedExtendedStates,
- /* [length_is][length_is][size_is][size_is][out] */ BSTR **localizedExtendedStates,
- /* [retval][out] */ long *nLocalizedExtendedStates);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_uniqueID )(
- IAccessible2 * This,
- /* [retval][out] */ long *uniqueID);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_windowHandle )(
- IAccessible2 * This,
- /* [retval][out] */ HWND *windowHandle);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_indexInParent )(
- IAccessible2 * This,
- /* [retval][out] */ long *indexInParent);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_locale )(
- IAccessible2 * This,
- /* [retval][out] */ IA2Locale *locale);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )(
- IAccessible2 * This,
- /* [retval][out] */ BSTR *attributes);
-
- END_INTERFACE
- } IAccessible2Vtbl;
-
- interface IAccessible2
- {
- CONST_VTBL struct IAccessible2Vtbl *lpVtbl;
- };
-
-
-
-#ifdef COBJMACROS
-
-
-#define IAccessible2_QueryInterface(This,riid,ppvObject) \
- ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
-
-#define IAccessible2_AddRef(This) \
- ( (This)->lpVtbl -> AddRef(This) )
-
-#define IAccessible2_Release(This) \
- ( (This)->lpVtbl -> Release(This) )
-
-
-#define IAccessible2_GetTypeInfoCount(This,pctinfo) \
- ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
-
-#define IAccessible2_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
- ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
-
-#define IAccessible2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
- ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
-
-#define IAccessible2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
- ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
-
-
-#define IAccessible2_get_accParent(This,ppdispParent) \
- ( (This)->lpVtbl -> get_accParent(This,ppdispParent) )
-
-#define IAccessible2_get_accChildCount(This,pcountChildren) \
- ( (This)->lpVtbl -> get_accChildCount(This,pcountChildren) )
-
-#define IAccessible2_get_accChild(This,varChild,ppdispChild) \
- ( (This)->lpVtbl -> get_accChild(This,varChild,ppdispChild) )
-
-#define IAccessible2_get_accName(This,varChild,pszName) \
- ( (This)->lpVtbl -> get_accName(This,varChild,pszName) )
-
-#define IAccessible2_get_accValue(This,varChild,pszValue) \
- ( (This)->lpVtbl -> get_accValue(This,varChild,pszValue) )
-
-#define IAccessible2_get_accDescription(This,varChild,pszDescription) \
- ( (This)->lpVtbl -> get_accDescription(This,varChild,pszDescription) )
-
-#define IAccessible2_get_accRole(This,varChild,pvarRole) \
- ( (This)->lpVtbl -> get_accRole(This,varChild,pvarRole) )
-
-#define IAccessible2_get_accState(This,varChild,pvarState) \
- ( (This)->lpVtbl -> get_accState(This,varChild,pvarState) )
-
-#define IAccessible2_get_accHelp(This,varChild,pszHelp) \
- ( (This)->lpVtbl -> get_accHelp(This,varChild,pszHelp) )
-
-#define IAccessible2_get_accHelpTopic(This,pszHelpFile,varChild,pidTopic) \
- ( (This)->lpVtbl -> get_accHelpTopic(This,pszHelpFile,varChild,pidTopic) )
-
-#define IAccessible2_get_accKeyboardShortcut(This,varChild,pszKeyboardShortcut) \
- ( (This)->lpVtbl -> get_accKeyboardShortcut(This,varChild,pszKeyboardShortcut) )
-
-#define IAccessible2_get_accFocus(This,pvarChild) \
- ( (This)->lpVtbl -> get_accFocus(This,pvarChild) )
-
-#define IAccessible2_get_accSelection(This,pvarChildren) \
- ( (This)->lpVtbl -> get_accSelection(This,pvarChildren) )
-
-#define IAccessible2_get_accDefaultAction(This,varChild,pszDefaultAction) \
- ( (This)->lpVtbl -> get_accDefaultAction(This,varChild,pszDefaultAction) )
-
-#define IAccessible2_accSelect(This,flagsSelect,varChild) \
- ( (This)->lpVtbl -> accSelect(This,flagsSelect,varChild) )
-
-#define IAccessible2_accLocation(This,pxLeft,pyTop,pcxWidth,pcyHeight,varChild) \
- ( (This)->lpVtbl -> accLocation(This,pxLeft,pyTop,pcxWidth,pcyHeight,varChild) )
-
-#define IAccessible2_accNavigate(This,navDir,varStart,pvarEndUpAt) \
- ( (This)->lpVtbl -> accNavigate(This,navDir,varStart,pvarEndUpAt) )
-
-#define IAccessible2_accHitTest(This,xLeft,yTop,pvarChild) \
- ( (This)->lpVtbl -> accHitTest(This,xLeft,yTop,pvarChild) )
-
-#define IAccessible2_accDoDefaultAction(This,varChild) \
- ( (This)->lpVtbl -> accDoDefaultAction(This,varChild) )
-
-#define IAccessible2_put_accName(This,varChild,szName) \
- ( (This)->lpVtbl -> put_accName(This,varChild,szName) )
-
-#define IAccessible2_put_accValue(This,varChild,szValue) \
- ( (This)->lpVtbl -> put_accValue(This,varChild,szValue) )
-
-
-#define IAccessible2_get_nRelations(This,nRelations) \
- ( (This)->lpVtbl -> get_nRelations(This,nRelations) )
-
-#define IAccessible2_get_relation(This,relationIndex,relation) \
- ( (This)->lpVtbl -> get_relation(This,relationIndex,relation) )
-
-#define IAccessible2_get_relations(This,maxRelations,relations,nRelations) \
- ( (This)->lpVtbl -> get_relations(This,maxRelations,relations,nRelations) )
-
-#define IAccessible2_role(This,role) \
- ( (This)->lpVtbl -> role(This,role) )
-
-#define IAccessible2_scrollTo(This,scrollType) \
- ( (This)->lpVtbl -> scrollTo(This,scrollType) )
-
-#define IAccessible2_scrollToPoint(This,coordinateType,x,y) \
- ( (This)->lpVtbl -> scrollToPoint(This,coordinateType,x,y) )
-
-#define IAccessible2_get_groupPosition(This,groupLevel,similarItemsInGroup,positionInGroup) \
- ( (This)->lpVtbl -> get_groupPosition(This,groupLevel,similarItemsInGroup,positionInGroup) )
-
-#define IAccessible2_get_states(This,states) \
- ( (This)->lpVtbl -> get_states(This,states) )
-
-#define IAccessible2_get_extendedRole(This,extendedRole) \
- ( (This)->lpVtbl -> get_extendedRole(This,extendedRole) )
-
-#define IAccessible2_get_localizedExtendedRole(This,localizedExtendedRole) \
- ( (This)->lpVtbl -> get_localizedExtendedRole(This,localizedExtendedRole) )
-
-#define IAccessible2_get_nExtendedStates(This,nExtendedStates) \
- ( (This)->lpVtbl -> get_nExtendedStates(This,nExtendedStates) )
-
-#define IAccessible2_get_extendedStates(This,maxExtendedStates,extendedStates,nExtendedStates) \
- ( (This)->lpVtbl -> get_extendedStates(This,maxExtendedStates,extendedStates,nExtendedStates) )
-
-#define IAccessible2_get_localizedExtendedStates(This,maxLocalizedExtendedStates,localizedExtendedStates,nLocalizedExtendedStates) \
- ( (This)->lpVtbl -> get_localizedExtendedStates(This,maxLocalizedExtendedStates,localizedExtendedStates,nLocalizedExtendedStates) )
-
-#define IAccessible2_get_uniqueID(This,uniqueID) \
- ( (This)->lpVtbl -> get_uniqueID(This,uniqueID) )
-
-#define IAccessible2_get_windowHandle(This,windowHandle) \
- ( (This)->lpVtbl -> get_windowHandle(This,windowHandle) )
-
-#define IAccessible2_get_indexInParent(This,indexInParent) \
- ( (This)->lpVtbl -> get_indexInParent(This,indexInParent) )
-
-#define IAccessible2_get_locale(This,locale) \
- ( (This)->lpVtbl -> get_locale(This,locale) )
-
-#define IAccessible2_get_attributes(This,attributes) \
- ( (This)->lpVtbl -> get_attributes(This,attributes) )
-
-#endif /* COBJMACROS */
-
-
-#endif /* C style interface */
-
-
-
-
-#endif /* __IAccessible2_INTERFACE_DEFINED__ */
-
-
-/* Additional Prototypes for ALL interfaces */
-
-unsigned long __RPC_USER BSTR_UserSize( unsigned long *, unsigned long , BSTR * );
-unsigned char * __RPC_USER BSTR_UserMarshal( unsigned long *, unsigned char *, BSTR * );
-unsigned char * __RPC_USER BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * );
-void __RPC_USER BSTR_UserFree( unsigned long *, BSTR * );
-
-unsigned long __RPC_USER HWND_UserSize( unsigned long *, unsigned long , HWND * );
-unsigned char * __RPC_USER HWND_UserMarshal( unsigned long *, unsigned char *, HWND * );
-unsigned char * __RPC_USER HWND_UserUnmarshal(unsigned long *, unsigned char *, HWND * );
-void __RPC_USER HWND_UserFree( unsigned long *, HWND * );
-
-/* end of Additional Prototypes */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-
diff --git a/src/3rdparty/iaccessible2/generated/amd64/Accessible2_i.c b/src/3rdparty/iaccessible2/generated/amd64/Accessible2_i.c
deleted file mode 100644
index 480a2a7537..0000000000
--- a/src/3rdparty/iaccessible2/generated/amd64/Accessible2_i.c
+++ /dev/null
@@ -1,79 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
-
-/* link this file in with the server and any clients */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:56 2012
- */
-/* Compiler settings for Accessible2.idl:
- Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-
-#include <rpc.h>
-#include <rpcndr.h>
-
-#ifdef _MIDL_USE_GUIDDEF_
-
-#ifndef INITGUID
-#define INITGUID
-#include <guiddef.h>
-#undef INITGUID
-#else
-#include <guiddef.h>
-#endif
-
-#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
- DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
-
-#else // !_MIDL_USE_GUIDDEF_
-
-#ifndef __IID_DEFINED__
-#define __IID_DEFINED__
-
-typedef struct _IID
-{
- unsigned long x;
- unsigned short s1;
- unsigned short s2;
- unsigned char c[8];
-} IID;
-
-#endif // __IID_DEFINED__
-
-#ifndef CLSID_DEFINED
-#define CLSID_DEFINED
-typedef IID CLSID;
-#endif // CLSID_DEFINED
-
-#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
- const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
-
-#endif !_MIDL_USE_GUIDDEF_
-
-MIDL_DEFINE_GUID(IID, IID_IAccessible2,0xE89F726E,0xC4F4,0x4c19,0xBB,0x19,0xB6,0x47,0xD7,0xFA,0x84,0x78);
-
-#undef MIDL_DEFINE_GUID
-
-#ifdef __cplusplus
-}
-#endif
-
-
-
diff --git a/src/3rdparty/iaccessible2/generated/amd64/Accessible2_p.c b/src/3rdparty/iaccessible2/generated/amd64/Accessible2_p.c
deleted file mode 100644
index 281718a7e5..0000000000
--- a/src/3rdparty/iaccessible2/generated/amd64/Accessible2_p.c
+++ /dev/null
@@ -1,1196 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the proxy stub code */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:56 2012
- */
-/* Compiler settings for Accessible2.idl:
- Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#if defined(_M_AMD64)
-
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-#if _MSC_VER >= 1200
-#pragma warning(push)
-#endif
-
-#pragma warning( disable: 4211 ) /* redefine extern to static */
-#pragma warning( disable: 4232 ) /* dllimport identity*/
-#pragma warning( disable: 4024 ) /* array to pointer mapping*/
-#pragma warning( disable: 4152 ) /* function/data pointer conversion in expression */
-
-#define USE_STUBLESS_PROXY
-
-
-/* verify that the <rpcproxy.h> version is high enough to compile this file*/
-#ifndef __REDQ_RPCPROXY_H_VERSION__
-#define __REQUIRED_RPCPROXY_H_VERSION__ 475
-#endif
-
-
-#include "rpcproxy.h"
-#ifndef __RPCPROXY_H_VERSION__
-#error this stub requires an updated version of <rpcproxy.h>
-#endif /* __RPCPROXY_H_VERSION__ */
-
-
-#include "Accessible2.h"
-
-#define TYPE_FORMAT_STRING_SIZE 189
-#define PROC_FORMAT_STRING_SIZE 751
-#define EXPR_FORMAT_STRING_SIZE 1
-#define TRANSMIT_AS_TABLE_SIZE 0
-#define WIRE_MARSHAL_TABLE_SIZE 2
-
-typedef struct _Accessible2_MIDL_TYPE_FORMAT_STRING
- {
- short Pad;
- unsigned char Format[ TYPE_FORMAT_STRING_SIZE ];
- } Accessible2_MIDL_TYPE_FORMAT_STRING;
-
-typedef struct _Accessible2_MIDL_PROC_FORMAT_STRING
- {
- short Pad;
- unsigned char Format[ PROC_FORMAT_STRING_SIZE ];
- } Accessible2_MIDL_PROC_FORMAT_STRING;
-
-typedef struct _Accessible2_MIDL_EXPR_FORMAT_STRING
- {
- long Pad;
- unsigned char Format[ EXPR_FORMAT_STRING_SIZE ];
- } Accessible2_MIDL_EXPR_FORMAT_STRING;
-
-
-static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax =
-{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}};
-
-
-extern const Accessible2_MIDL_TYPE_FORMAT_STRING Accessible2__MIDL_TypeFormatString;
-extern const Accessible2_MIDL_PROC_FORMAT_STRING Accessible2__MIDL_ProcFormatString;
-extern const Accessible2_MIDL_EXPR_FORMAT_STRING Accessible2__MIDL_ExprFormatString;
-
-
-extern const MIDL_STUB_DESC Object_StubDesc;
-
-
-extern const MIDL_SERVER_INFO IAccessible2_ServerInfo;
-extern const MIDL_STUBLESS_PROXY_INFO IAccessible2_ProxyInfo;
-
-
-extern const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ];
-
-#if !defined(__RPC_WIN64__)
-#error Invalid build platform for this stub.
-#endif
-
-static const Accessible2_MIDL_PROC_FORMAT_STRING Accessible2__MIDL_ProcFormatString =
- {
- 0,
- {
-
- /* Procedure get_nRelations */
-
- 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 2 */ NdrFcLong( 0x0 ), /* 0 */
-/* 6 */ NdrFcShort( 0x1c ), /* 28 */
-/* 8 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 10 */ NdrFcShort( 0x0 ), /* 0 */
-/* 12 */ NdrFcShort( 0x24 ), /* 36 */
-/* 14 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 16 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 18 */ NdrFcShort( 0x0 ), /* 0 */
-/* 20 */ NdrFcShort( 0x0 ), /* 0 */
-/* 22 */ NdrFcShort( 0x0 ), /* 0 */
-/* 24 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter nRelations */
-
-/* 26 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 28 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 30 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 32 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 34 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 36 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_relation */
-
-/* 38 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 40 */ NdrFcLong( 0x0 ), /* 0 */
-/* 44 */ NdrFcShort( 0x1d ), /* 29 */
-/* 46 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
-/* 48 */ NdrFcShort( 0x8 ), /* 8 */
-/* 50 */ NdrFcShort( 0x8 ), /* 8 */
-/* 52 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x3, /* 3 */
-/* 54 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 56 */ NdrFcShort( 0x0 ), /* 0 */
-/* 58 */ NdrFcShort( 0x0 ), /* 0 */
-/* 60 */ NdrFcShort( 0x0 ), /* 0 */
-/* 62 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter relationIndex */
-
-/* 64 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 66 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 68 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter relation */
-
-/* 70 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
-/* 72 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 74 */ NdrFcShort( 0x6 ), /* Type Offset=6 */
-
- /* Return value */
-
-/* 76 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 78 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 80 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_relations */
-
-/* 82 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 84 */ NdrFcLong( 0x0 ), /* 0 */
-/* 88 */ NdrFcShort( 0x1e ), /* 30 */
-/* 90 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
-/* 92 */ NdrFcShort( 0x8 ), /* 8 */
-/* 94 */ NdrFcShort( 0x24 ), /* 36 */
-/* 96 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x4, /* 4 */
-/* 98 */ 0xa, /* 10 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 100 */ NdrFcShort( 0x1 ), /* 1 */
-/* 102 */ NdrFcShort( 0x0 ), /* 0 */
-/* 104 */ NdrFcShort( 0x0 ), /* 0 */
-/* 106 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter maxRelations */
-
-/* 108 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 110 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 112 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter relations */
-
-/* 114 */ NdrFcShort( 0x113 ), /* Flags: must size, must free, out, simple ref, */
-/* 116 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 118 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
-
- /* Parameter nRelations */
-
-/* 120 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 122 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 124 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 126 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 128 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
-/* 130 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure role */
-
-/* 132 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 134 */ NdrFcLong( 0x0 ), /* 0 */
-/* 138 */ NdrFcShort( 0x1f ), /* 31 */
-/* 140 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 142 */ NdrFcShort( 0x0 ), /* 0 */
-/* 144 */ NdrFcShort( 0x24 ), /* 36 */
-/* 146 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 148 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 150 */ NdrFcShort( 0x0 ), /* 0 */
-/* 152 */ NdrFcShort( 0x0 ), /* 0 */
-/* 154 */ NdrFcShort( 0x0 ), /* 0 */
-/* 156 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter role */
-
-/* 158 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 160 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 162 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 164 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 166 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 168 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure scrollTo */
-
-/* 170 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 172 */ NdrFcLong( 0x0 ), /* 0 */
-/* 176 */ NdrFcShort( 0x20 ), /* 32 */
-/* 178 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 180 */ NdrFcShort( 0x6 ), /* 6 */
-/* 182 */ NdrFcShort( 0x8 ), /* 8 */
-/* 184 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 186 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 188 */ NdrFcShort( 0x0 ), /* 0 */
-/* 190 */ NdrFcShort( 0x0 ), /* 0 */
-/* 192 */ NdrFcShort( 0x0 ), /* 0 */
-/* 194 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter scrollType */
-
-/* 196 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 198 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 200 */ 0xd, /* FC_ENUM16 */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 202 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 204 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 206 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure scrollToPoint */
-
-/* 208 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 210 */ NdrFcLong( 0x0 ), /* 0 */
-/* 214 */ NdrFcShort( 0x21 ), /* 33 */
-/* 216 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
-/* 218 */ NdrFcShort( 0x16 ), /* 22 */
-/* 220 */ NdrFcShort( 0x8 ), /* 8 */
-/* 222 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x4, /* 4 */
-/* 224 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 226 */ NdrFcShort( 0x0 ), /* 0 */
-/* 228 */ NdrFcShort( 0x0 ), /* 0 */
-/* 230 */ NdrFcShort( 0x0 ), /* 0 */
-/* 232 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter coordinateType */
-
-/* 234 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 236 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 238 */ 0xd, /* FC_ENUM16 */
- 0x0, /* 0 */
-
- /* Parameter x */
-
-/* 240 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 242 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 244 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter y */
-
-/* 246 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 248 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 250 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 252 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 254 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
-/* 256 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_groupPosition */
-
-/* 258 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 260 */ NdrFcLong( 0x0 ), /* 0 */
-/* 264 */ NdrFcShort( 0x22 ), /* 34 */
-/* 266 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
-/* 268 */ NdrFcShort( 0x0 ), /* 0 */
-/* 270 */ NdrFcShort( 0x5c ), /* 92 */
-/* 272 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x4, /* 4 */
-/* 274 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 276 */ NdrFcShort( 0x0 ), /* 0 */
-/* 278 */ NdrFcShort( 0x0 ), /* 0 */
-/* 280 */ NdrFcShort( 0x0 ), /* 0 */
-/* 282 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter groupLevel */
-
-/* 284 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 286 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 288 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter similarItemsInGroup */
-
-/* 290 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 292 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 294 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter positionInGroup */
-
-/* 296 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 298 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 300 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 302 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 304 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
-/* 306 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_states */
-
-/* 308 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 310 */ NdrFcLong( 0x0 ), /* 0 */
-/* 314 */ NdrFcShort( 0x23 ), /* 35 */
-/* 316 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 318 */ NdrFcShort( 0x0 ), /* 0 */
-/* 320 */ NdrFcShort( 0x24 ), /* 36 */
-/* 322 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 324 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 326 */ NdrFcShort( 0x0 ), /* 0 */
-/* 328 */ NdrFcShort( 0x0 ), /* 0 */
-/* 330 */ NdrFcShort( 0x0 ), /* 0 */
-/* 332 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter states */
-
-/* 334 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 336 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 338 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 340 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 342 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 344 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_extendedRole */
-
-/* 346 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 348 */ NdrFcLong( 0x0 ), /* 0 */
-/* 352 */ NdrFcShort( 0x24 ), /* 36 */
-/* 354 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 356 */ NdrFcShort( 0x0 ), /* 0 */
-/* 358 */ NdrFcShort( 0x8 ), /* 8 */
-/* 360 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x2, /* 2 */
-/* 362 */ 0xa, /* 10 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 364 */ NdrFcShort( 0x1 ), /* 1 */
-/* 366 */ NdrFcShort( 0x0 ), /* 0 */
-/* 368 */ NdrFcShort( 0x0 ), /* 0 */
-/* 370 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter extendedRole */
-
-/* 372 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
-/* 374 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 376 */ NdrFcShort( 0x54 ), /* Type Offset=84 */
-
- /* Return value */
-
-/* 378 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 380 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 382 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_localizedExtendedRole */
-
-/* 384 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 386 */ NdrFcLong( 0x0 ), /* 0 */
-/* 390 */ NdrFcShort( 0x25 ), /* 37 */
-/* 392 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 394 */ NdrFcShort( 0x0 ), /* 0 */
-/* 396 */ NdrFcShort( 0x8 ), /* 8 */
-/* 398 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x2, /* 2 */
-/* 400 */ 0xa, /* 10 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 402 */ NdrFcShort( 0x1 ), /* 1 */
-/* 404 */ NdrFcShort( 0x0 ), /* 0 */
-/* 406 */ NdrFcShort( 0x0 ), /* 0 */
-/* 408 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter localizedExtendedRole */
-
-/* 410 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
-/* 412 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 414 */ NdrFcShort( 0x54 ), /* Type Offset=84 */
-
- /* Return value */
-
-/* 416 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 418 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 420 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_nExtendedStates */
-
-/* 422 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 424 */ NdrFcLong( 0x0 ), /* 0 */
-/* 428 */ NdrFcShort( 0x26 ), /* 38 */
-/* 430 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 432 */ NdrFcShort( 0x0 ), /* 0 */
-/* 434 */ NdrFcShort( 0x24 ), /* 36 */
-/* 436 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 438 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 440 */ NdrFcShort( 0x0 ), /* 0 */
-/* 442 */ NdrFcShort( 0x0 ), /* 0 */
-/* 444 */ NdrFcShort( 0x0 ), /* 0 */
-/* 446 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter nExtendedStates */
-
-/* 448 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 450 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 452 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 454 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 456 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 458 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_extendedStates */
-
-/* 460 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 462 */ NdrFcLong( 0x0 ), /* 0 */
-/* 466 */ NdrFcShort( 0x27 ), /* 39 */
-/* 468 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
-/* 470 */ NdrFcShort( 0x8 ), /* 8 */
-/* 472 */ NdrFcShort( 0x24 ), /* 36 */
-/* 474 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x4, /* 4 */
-/* 476 */ 0xa, /* 10 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 478 */ NdrFcShort( 0x1 ), /* 1 */
-/* 480 */ NdrFcShort( 0x0 ), /* 0 */
-/* 482 */ NdrFcShort( 0x0 ), /* 0 */
-/* 484 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter maxExtendedStates */
-
-/* 486 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 488 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 490 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter extendedStates */
-
-/* 492 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
-/* 494 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 496 */ NdrFcShort( 0x5e ), /* Type Offset=94 */
-
- /* Parameter nExtendedStates */
-
-/* 498 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 500 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 502 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 504 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 506 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
-/* 508 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_localizedExtendedStates */
-
-/* 510 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 512 */ NdrFcLong( 0x0 ), /* 0 */
-/* 516 */ NdrFcShort( 0x28 ), /* 40 */
-/* 518 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
-/* 520 */ NdrFcShort( 0x8 ), /* 8 */
-/* 522 */ NdrFcShort( 0x24 ), /* 36 */
-/* 524 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x4, /* 4 */
-/* 526 */ 0xa, /* 10 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 528 */ NdrFcShort( 0x1 ), /* 1 */
-/* 530 */ NdrFcShort( 0x0 ), /* 0 */
-/* 532 */ NdrFcShort( 0x0 ), /* 0 */
-/* 534 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter maxLocalizedExtendedStates */
-
-/* 536 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 538 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 540 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter localizedExtendedStates */
-
-/* 542 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
-/* 544 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 546 */ NdrFcShort( 0x5e ), /* Type Offset=94 */
-
- /* Parameter nLocalizedExtendedStates */
-
-/* 548 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 550 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 552 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 554 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 556 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
-/* 558 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_uniqueID */
-
-/* 560 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 562 */ NdrFcLong( 0x0 ), /* 0 */
-/* 566 */ NdrFcShort( 0x29 ), /* 41 */
-/* 568 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 570 */ NdrFcShort( 0x0 ), /* 0 */
-/* 572 */ NdrFcShort( 0x24 ), /* 36 */
-/* 574 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 576 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 578 */ NdrFcShort( 0x0 ), /* 0 */
-/* 580 */ NdrFcShort( 0x0 ), /* 0 */
-/* 582 */ NdrFcShort( 0x0 ), /* 0 */
-/* 584 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter uniqueID */
-
-/* 586 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 588 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 590 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 592 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 594 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 596 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_windowHandle */
-
-/* 598 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 600 */ NdrFcLong( 0x0 ), /* 0 */
-/* 604 */ NdrFcShort( 0x2a ), /* 42 */
-/* 606 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 608 */ NdrFcShort( 0x0 ), /* 0 */
-/* 610 */ NdrFcShort( 0x8 ), /* 8 */
-/* 612 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x2, /* 2 */
-/* 614 */ 0xa, /* 10 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 616 */ NdrFcShort( 0x1 ), /* 1 */
-/* 618 */ NdrFcShort( 0x0 ), /* 0 */
-/* 620 */ NdrFcShort( 0x0 ), /* 0 */
-/* 622 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter windowHandle */
-
-/* 624 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
-/* 626 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 628 */ NdrFcShort( 0x98 ), /* Type Offset=152 */
-
- /* Return value */
-
-/* 630 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 632 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 634 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_indexInParent */
-
-/* 636 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 638 */ NdrFcLong( 0x0 ), /* 0 */
-/* 642 */ NdrFcShort( 0x2b ), /* 43 */
-/* 644 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 646 */ NdrFcShort( 0x0 ), /* 0 */
-/* 648 */ NdrFcShort( 0x24 ), /* 36 */
-/* 650 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 652 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 654 */ NdrFcShort( 0x0 ), /* 0 */
-/* 656 */ NdrFcShort( 0x0 ), /* 0 */
-/* 658 */ NdrFcShort( 0x0 ), /* 0 */
-/* 660 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter indexInParent */
-
-/* 662 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 664 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 666 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 668 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 670 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 672 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_locale */
-
-/* 674 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 676 */ NdrFcLong( 0x0 ), /* 0 */
-/* 680 */ NdrFcShort( 0x2c ), /* 44 */
-/* 682 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 684 */ NdrFcShort( 0x0 ), /* 0 */
-/* 686 */ NdrFcShort( 0x8 ), /* 8 */
-/* 688 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x2, /* 2 */
-/* 690 */ 0xa, /* 10 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 692 */ NdrFcShort( 0x1 ), /* 1 */
-/* 694 */ NdrFcShort( 0x0 ), /* 0 */
-/* 696 */ NdrFcShort( 0x0 ), /* 0 */
-/* 698 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter locale */
-
-/* 700 */ NdrFcShort( 0x6113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=24 */
-/* 702 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 704 */ NdrFcShort( 0xa6 ), /* Type Offset=166 */
-
- /* Return value */
-
-/* 706 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 708 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 710 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_attributes */
-
-/* 712 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 714 */ NdrFcLong( 0x0 ), /* 0 */
-/* 718 */ NdrFcShort( 0x2d ), /* 45 */
-/* 720 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 722 */ NdrFcShort( 0x0 ), /* 0 */
-/* 724 */ NdrFcShort( 0x8 ), /* 8 */
-/* 726 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x2, /* 2 */
-/* 728 */ 0xa, /* 10 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 730 */ NdrFcShort( 0x1 ), /* 1 */
-/* 732 */ NdrFcShort( 0x0 ), /* 0 */
-/* 734 */ NdrFcShort( 0x0 ), /* 0 */
-/* 736 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter attributes */
-
-/* 738 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
-/* 740 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 742 */ NdrFcShort( 0x54 ), /* Type Offset=84 */
-
- /* Return value */
-
-/* 744 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 746 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 748 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- 0x0
- }
- };
-
-static const Accessible2_MIDL_TYPE_FORMAT_STRING Accessible2__MIDL_TypeFormatString =
- {
- 0,
- {
- NdrFcShort( 0x0 ), /* 0 */
-/* 2 */
- 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
-/* 4 */ 0x8, /* FC_LONG */
- 0x5c, /* FC_PAD */
-/* 6 */
- 0x11, 0x10, /* FC_RP [pointer_deref] */
-/* 8 */ NdrFcShort( 0x2 ), /* Offset= 2 (10) */
-/* 10 */
- 0x2f, /* FC_IP */
- 0x5a, /* FC_CONSTANT_IID */
-/* 12 */ NdrFcLong( 0x7cdf86ee ), /* 2095023854 */
-/* 16 */ NdrFcShort( 0xc3da ), /* -15398 */
-/* 18 */ NdrFcShort( 0x496a ), /* 18794 */
-/* 20 */ 0xbd, /* 189 */
- 0xa4, /* 164 */
-/* 22 */ 0x28, /* 40 */
- 0x1b, /* 27 */
-/* 24 */ 0x33, /* 51 */
- 0x6e, /* 110 */
-/* 26 */ 0x1f, /* 31 */
- 0xdc, /* 220 */
-/* 28 */
- 0x11, 0x0, /* FC_RP */
-/* 30 */ NdrFcShort( 0x2 ), /* Offset= 2 (32) */
-/* 32 */
- 0x21, /* FC_BOGUS_ARRAY */
- 0x3, /* 3 */
-/* 34 */ NdrFcShort( 0x0 ), /* 0 */
-/* 36 */ 0x28, /* Corr desc: parameter, FC_LONG */
- 0x0, /* */
-/* 38 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 40 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 42 */ 0x28, /* Corr desc: parameter, FC_LONG */
- 0x54, /* FC_DEREFERENCE */
-/* 44 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 46 */ NdrFcShort( 0x0 ), /* Corr flags: */
-/* 48 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
- 0x0, /* 0 */
-/* 50 */ NdrFcShort( 0xffd8 ), /* Offset= -40 (10) */
-/* 52 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-/* 54 */
- 0x11, 0x4, /* FC_RP [alloced_on_stack] */
-/* 56 */ NdrFcShort( 0x1c ), /* Offset= 28 (84) */
-/* 58 */
- 0x13, 0x0, /* FC_OP */
-/* 60 */ NdrFcShort( 0xe ), /* Offset= 14 (74) */
-/* 62 */
- 0x1b, /* FC_CARRAY */
- 0x1, /* 1 */
-/* 64 */ NdrFcShort( 0x2 ), /* 2 */
-/* 66 */ 0x9, /* Corr desc: FC_ULONG */
- 0x0, /* */
-/* 68 */ NdrFcShort( 0xfffc ), /* -4 */
-/* 70 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 72 */ 0x6, /* FC_SHORT */
- 0x5b, /* FC_END */
-/* 74 */
- 0x17, /* FC_CSTRUCT */
- 0x3, /* 3 */
-/* 76 */ NdrFcShort( 0x8 ), /* 8 */
-/* 78 */ NdrFcShort( 0xfff0 ), /* Offset= -16 (62) */
-/* 80 */ 0x8, /* FC_LONG */
- 0x8, /* FC_LONG */
-/* 82 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-/* 84 */ 0xb4, /* FC_USER_MARSHAL */
- 0x83, /* 131 */
-/* 86 */ NdrFcShort( 0x0 ), /* 0 */
-/* 88 */ NdrFcShort( 0x8 ), /* 8 */
-/* 90 */ NdrFcShort( 0x0 ), /* 0 */
-/* 92 */ NdrFcShort( 0xffde ), /* Offset= -34 (58) */
-/* 94 */
- 0x11, 0x14, /* FC_RP [alloced_on_stack] [pointer_deref] */
-/* 96 */ NdrFcShort( 0x2 ), /* Offset= 2 (98) */
-/* 98 */
- 0x13, 0x0, /* FC_OP */
-/* 100 */ NdrFcShort( 0x2 ), /* Offset= 2 (102) */
-/* 102 */
- 0x21, /* FC_BOGUS_ARRAY */
- 0x3, /* 3 */
-/* 104 */ NdrFcShort( 0x0 ), /* 0 */
-/* 106 */ 0x28, /* Corr desc: parameter, FC_LONG */
- 0x0, /* */
-/* 108 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 110 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 112 */ 0x28, /* Corr desc: parameter, FC_LONG */
- 0x54, /* FC_DEREFERENCE */
-/* 114 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 116 */ NdrFcShort( 0x0 ), /* Corr flags: */
-/* 118 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
- 0x0, /* 0 */
-/* 120 */ NdrFcShort( 0xffdc ), /* Offset= -36 (84) */
-/* 122 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-/* 124 */
- 0x11, 0x4, /* FC_RP [alloced_on_stack] */
-/* 126 */ NdrFcShort( 0x1a ), /* Offset= 26 (152) */
-/* 128 */
- 0x13, 0x0, /* FC_OP */
-/* 130 */ NdrFcShort( 0x2 ), /* Offset= 2 (132) */
-/* 132 */
- 0x2a, /* FC_ENCAPSULATED_UNION */
- 0x48, /* 72 */
-/* 134 */ NdrFcShort( 0x4 ), /* 4 */
-/* 136 */ NdrFcShort( 0x2 ), /* 2 */
-/* 138 */ NdrFcLong( 0x48746457 ), /* 1215587415 */
-/* 142 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
-/* 144 */ NdrFcLong( 0x52746457 ), /* 1383359575 */
-/* 148 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
-/* 150 */ NdrFcShort( 0xffff ), /* Offset= -1 (149) */
-/* 152 */ 0xb4, /* FC_USER_MARSHAL */
- 0x83, /* 131 */
-/* 154 */ NdrFcShort( 0x1 ), /* 1 */
-/* 156 */ NdrFcShort( 0x8 ), /* 8 */
-/* 158 */ NdrFcShort( 0x0 ), /* 0 */
-/* 160 */ NdrFcShort( 0xffe0 ), /* Offset= -32 (128) */
-/* 162 */
- 0x11, 0x4, /* FC_RP [alloced_on_stack] */
-/* 164 */ NdrFcShort( 0x2 ), /* Offset= 2 (166) */
-/* 166 */
- 0x1a, /* FC_BOGUS_STRUCT */
- 0x3, /* 3 */
-/* 168 */ NdrFcShort( 0x18 ), /* 24 */
-/* 170 */ NdrFcShort( 0x0 ), /* 0 */
-/* 172 */ NdrFcShort( 0x0 ), /* Offset= 0 (172) */
-/* 174 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
- 0x0, /* 0 */
-/* 176 */ NdrFcShort( 0xffa4 ), /* Offset= -92 (84) */
-/* 178 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
- 0x0, /* 0 */
-/* 180 */ NdrFcShort( 0xffa0 ), /* Offset= -96 (84) */
-/* 182 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
- 0x0, /* 0 */
-/* 184 */ NdrFcShort( 0xff9c ), /* Offset= -100 (84) */
-/* 186 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-
- 0x0
- }
- };
-
-static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] =
- {
-
- {
- BSTR_UserSize
- ,BSTR_UserMarshal
- ,BSTR_UserUnmarshal
- ,BSTR_UserFree
- },
- {
- HWND_UserSize
- ,HWND_UserMarshal
- ,HWND_UserUnmarshal
- ,HWND_UserFree
- }
-
- };
-
-
-
-/* Standard interface: __MIDL_itf_Accessible2_0000_0000, ver. 0.0,
- GUID={0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}} */
-
-
-/* Object interface: IUnknown, ver. 0.0,
- GUID={0x00000000,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
-
-
-/* Object interface: IDispatch, ver. 0.0,
- GUID={0x00020400,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
-
-
-/* Object interface: IAccessible, ver. 0.0,
- GUID={0x618736e0,0x3c3d,0x11cf,{0x81,0x0c,0x00,0xaa,0x00,0x38,0x9b,0x71}} */
-
-
-/* Object interface: IAccessible2, ver. 0.0,
- GUID={0xE89F726E,0xC4F4,0x4c19,{0xBB,0x19,0xB6,0x47,0xD7,0xFA,0x84,0x78}} */
-
-#pragma code_seg(".orpc")
-static const unsigned short IAccessible2_FormatStringOffsetTable[] =
- {
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- 0,
- 38,
- 82,
- 132,
- 170,
- 208,
- 258,
- 308,
- 346,
- 384,
- 422,
- 460,
- 510,
- 560,
- 598,
- 636,
- 674,
- 712
- };
-
-static const MIDL_STUBLESS_PROXY_INFO IAccessible2_ProxyInfo =
- {
- &Object_StubDesc,
- Accessible2__MIDL_ProcFormatString.Format,
- &IAccessible2_FormatStringOffsetTable[-3],
- 0,
- 0,
- 0
- };
-
-
-static const MIDL_SERVER_INFO IAccessible2_ServerInfo =
- {
- &Object_StubDesc,
- 0,
- Accessible2__MIDL_ProcFormatString.Format,
- &IAccessible2_FormatStringOffsetTable[-3],
- 0,
- 0,
- 0,
- 0};
-CINTERFACE_PROXY_VTABLE(46) _IAccessible2ProxyVtbl =
-{
- &IAccessible2_ProxyInfo,
- &IID_IAccessible2,
- IUnknown_QueryInterface_Proxy,
- IUnknown_AddRef_Proxy,
- IUnknown_Release_Proxy ,
- 0 /* IDispatch::GetTypeInfoCount */ ,
- 0 /* IDispatch::GetTypeInfo */ ,
- 0 /* IDispatch::GetIDsOfNames */ ,
- 0 /* IDispatch_Invoke_Proxy */ ,
- 0 /* IAccessible::get_accParent */ ,
- 0 /* IAccessible::get_accChildCount */ ,
- 0 /* IAccessible::get_accChild */ ,
- 0 /* IAccessible::get_accName */ ,
- 0 /* IAccessible::get_accValue */ ,
- 0 /* IAccessible::get_accDescription */ ,
- 0 /* IAccessible::get_accRole */ ,
- 0 /* IAccessible::get_accState */ ,
- 0 /* IAccessible::get_accHelp */ ,
- 0 /* IAccessible::get_accHelpTopic */ ,
- 0 /* IAccessible::get_accKeyboardShortcut */ ,
- 0 /* IAccessible::get_accFocus */ ,
- 0 /* IAccessible::get_accSelection */ ,
- 0 /* IAccessible::get_accDefaultAction */ ,
- 0 /* IAccessible::accSelect */ ,
- 0 /* IAccessible::accLocation */ ,
- 0 /* IAccessible::accNavigate */ ,
- 0 /* IAccessible::accHitTest */ ,
- 0 /* IAccessible::accDoDefaultAction */ ,
- 0 /* IAccessible::put_accName */ ,
- 0 /* IAccessible::put_accValue */ ,
- (void *) (INT_PTR) -1 /* IAccessible2::get_nRelations */ ,
- (void *) (INT_PTR) -1 /* IAccessible2::get_relation */ ,
- (void *) (INT_PTR) -1 /* IAccessible2::get_relations */ ,
- (void *) (INT_PTR) -1 /* IAccessible2::role */ ,
- (void *) (INT_PTR) -1 /* IAccessible2::scrollTo */ ,
- (void *) (INT_PTR) -1 /* IAccessible2::scrollToPoint */ ,
- (void *) (INT_PTR) -1 /* IAccessible2::get_groupPosition */ ,
- (void *) (INT_PTR) -1 /* IAccessible2::get_states */ ,
- (void *) (INT_PTR) -1 /* IAccessible2::get_extendedRole */ ,
- (void *) (INT_PTR) -1 /* IAccessible2::get_localizedExtendedRole */ ,
- (void *) (INT_PTR) -1 /* IAccessible2::get_nExtendedStates */ ,
- (void *) (INT_PTR) -1 /* IAccessible2::get_extendedStates */ ,
- (void *) (INT_PTR) -1 /* IAccessible2::get_localizedExtendedStates */ ,
- (void *) (INT_PTR) -1 /* IAccessible2::get_uniqueID */ ,
- (void *) (INT_PTR) -1 /* IAccessible2::get_windowHandle */ ,
- (void *) (INT_PTR) -1 /* IAccessible2::get_indexInParent */ ,
- (void *) (INT_PTR) -1 /* IAccessible2::get_locale */ ,
- (void *) (INT_PTR) -1 /* IAccessible2::get_attributes */
-};
-
-
-static const PRPC_STUB_FUNCTION IAccessible2_table[] =
-{
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- NdrStubCall2,
- NdrStubCall2,
- NdrStubCall2,
- NdrStubCall2,
- NdrStubCall2,
- NdrStubCall2,
- NdrStubCall2,
- NdrStubCall2,
- NdrStubCall2,
- NdrStubCall2,
- NdrStubCall2,
- NdrStubCall2,
- NdrStubCall2,
- NdrStubCall2,
- NdrStubCall2,
- NdrStubCall2,
- NdrStubCall2,
- NdrStubCall2
-};
-
-CInterfaceStubVtbl _IAccessible2StubVtbl =
-{
- &IID_IAccessible2,
- &IAccessible2_ServerInfo,
- 46,
- &IAccessible2_table[-3],
- CStdStubBuffer_DELEGATING_METHODS
-};
-
-static const MIDL_STUB_DESC Object_StubDesc =
- {
- 0,
- NdrOleAllocate,
- NdrOleFree,
- 0,
- 0,
- 0,
- 0,
- 0,
- Accessible2__MIDL_TypeFormatString.Format,
- 1, /* -error bounds_check flag */
- 0x50002, /* Ndr library version */
- 0,
- 0x700022b, /* MIDL Version 7.0.555 */
- 0,
- UserMarshalRoutines,
- 0, /* notify & notify_flag routine table */
- 0x1, /* MIDL flag */
- 0, /* cs routines */
- 0, /* proxy/server info */
- 0
- };
-
-const CInterfaceProxyVtbl * const _Accessible2_ProxyVtblList[] =
-{
- ( CInterfaceProxyVtbl *) &_IAccessible2ProxyVtbl,
- 0
-};
-
-const CInterfaceStubVtbl * const _Accessible2_StubVtblList[] =
-{
- ( CInterfaceStubVtbl *) &_IAccessible2StubVtbl,
- 0
-};
-
-PCInterfaceName const _Accessible2_InterfaceNamesList[] =
-{
- "IAccessible2",
- 0
-};
-
-const IID * const _Accessible2_BaseIIDList[] =
-{
- &IID_IAccessible,
- 0
-};
-
-
-#define _Accessible2_CHECK_IID(n) IID_GENERIC_CHECK_IID( _Accessible2, pIID, n)
-
-int __stdcall _Accessible2_IID_Lookup( const IID * pIID, int * pIndex )
-{
-
- if(!_Accessible2_CHECK_IID(0))
- {
- *pIndex = 0;
- return 1;
- }
-
- return 0;
-}
-
-const ExtendedProxyFileInfo Accessible2_ProxyFileInfo =
-{
- (PCInterfaceProxyVtblList *) & _Accessible2_ProxyVtblList,
- (PCInterfaceStubVtblList *) & _Accessible2_StubVtblList,
- (const PCInterfaceName * ) & _Accessible2_InterfaceNamesList,
- (const IID ** ) & _Accessible2_BaseIIDList,
- & _Accessible2_IID_Lookup,
- 1,
- 2,
- 0, /* table of [async_uuid] interfaces */
- 0, /* Filler1 */
- 0, /* Filler2 */
- 0 /* Filler3 */
-};
-#if _MSC_VER >= 1200
-#pragma warning(pop)
-#endif
-
-
-#endif /* defined(_M_AMD64)*/
-
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleAction.h b/src/3rdparty/iaccessible2/generated/amd64/AccessibleAction.h
deleted file mode 100644
index 8755505bf3..0000000000
--- a/src/3rdparty/iaccessible2/generated/amd64/AccessibleAction.h
+++ /dev/null
@@ -1,220 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the definitions for the interfaces */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:56 2012
- */
-/* Compiler settings for AccessibleAction.idl:
- Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-
-
-/* verify that the <rpcndr.h> version is high enough to compile this file*/
-#ifndef __REQUIRED_RPCNDR_H_VERSION__
-#define __REQUIRED_RPCNDR_H_VERSION__ 475
-#endif
-
-#include "rpc.h"
-#include "rpcndr.h"
-
-#ifndef __RPCNDR_H_VERSION__
-#error this stub requires an updated version of <rpcndr.h>
-#endif // __RPCNDR_H_VERSION__
-
-#ifndef COM_NO_WINDOWS_H
-#include "windows.h"
-#include "ole2.h"
-#endif /*COM_NO_WINDOWS_H*/
-
-#ifndef __AccessibleAction_h__
-#define __AccessibleAction_h__
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-#pragma once
-#endif
-
-/* Forward Declarations */
-
-#ifndef __IAccessibleAction_FWD_DEFINED__
-#define __IAccessibleAction_FWD_DEFINED__
-typedef interface IAccessibleAction IAccessibleAction;
-#endif /* __IAccessibleAction_FWD_DEFINED__ */
-
-
-/* header files for imported files */
-#include "objidl.h"
-#include "oaidl.h"
-#include "oleacc.h"
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-
-#ifndef __IAccessibleAction_INTERFACE_DEFINED__
-#define __IAccessibleAction_INTERFACE_DEFINED__
-
-/* interface IAccessibleAction */
-/* [uuid][object] */
-
-
-EXTERN_C const IID IID_IAccessibleAction;
-
-#if defined(__cplusplus) && !defined(CINTERFACE)
-
- MIDL_INTERFACE("B70D9F59-3B5A-4dba-AB9E-22012F607DF5")
- IAccessibleAction : public IUnknown
- {
- public:
- virtual HRESULT STDMETHODCALLTYPE nActions(
- /* [retval][out] */ long *nActions) = 0;
-
- virtual HRESULT STDMETHODCALLTYPE doAction(
- /* [in] */ long actionIndex) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_description(
- /* [in] */ long actionIndex,
- /* [retval][out] */ BSTR *description) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_keyBinding(
- /* [in] */ long actionIndex,
- /* [in] */ long nMaxBindings,
- /* [length_is][length_is][size_is][size_is][out] */ BSTR **keyBindings,
- /* [retval][out] */ long *nBindings) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_name(
- /* [in] */ long actionIndex,
- /* [retval][out] */ BSTR *name) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_localizedName(
- /* [in] */ long actionIndex,
- /* [retval][out] */ BSTR *localizedName) = 0;
-
- };
-
-#else /* C style interface */
-
- typedef struct IAccessibleActionVtbl
- {
- BEGIN_INTERFACE
-
- HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
- IAccessibleAction * This,
- /* [in] */ REFIID riid,
- /* [annotation][iid_is][out] */
- __RPC__deref_out void **ppvObject);
-
- ULONG ( STDMETHODCALLTYPE *AddRef )(
- IAccessibleAction * This);
-
- ULONG ( STDMETHODCALLTYPE *Release )(
- IAccessibleAction * This);
-
- HRESULT ( STDMETHODCALLTYPE *nActions )(
- IAccessibleAction * This,
- /* [retval][out] */ long *nActions);
-
- HRESULT ( STDMETHODCALLTYPE *doAction )(
- IAccessibleAction * This,
- /* [in] */ long actionIndex);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_description )(
- IAccessibleAction * This,
- /* [in] */ long actionIndex,
- /* [retval][out] */ BSTR *description);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_keyBinding )(
- IAccessibleAction * This,
- /* [in] */ long actionIndex,
- /* [in] */ long nMaxBindings,
- /* [length_is][length_is][size_is][size_is][out] */ BSTR **keyBindings,
- /* [retval][out] */ long *nBindings);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_name )(
- IAccessibleAction * This,
- /* [in] */ long actionIndex,
- /* [retval][out] */ BSTR *name);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedName )(
- IAccessibleAction * This,
- /* [in] */ long actionIndex,
- /* [retval][out] */ BSTR *localizedName);
-
- END_INTERFACE
- } IAccessibleActionVtbl;
-
- interface IAccessibleAction
- {
- CONST_VTBL struct IAccessibleActionVtbl *lpVtbl;
- };
-
-
-
-#ifdef COBJMACROS
-
-
-#define IAccessibleAction_QueryInterface(This,riid,ppvObject) \
- ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
-
-#define IAccessibleAction_AddRef(This) \
- ( (This)->lpVtbl -> AddRef(This) )
-
-#define IAccessibleAction_Release(This) \
- ( (This)->lpVtbl -> Release(This) )
-
-
-#define IAccessibleAction_nActions(This,nActions) \
- ( (This)->lpVtbl -> nActions(This,nActions) )
-
-#define IAccessibleAction_doAction(This,actionIndex) \
- ( (This)->lpVtbl -> doAction(This,actionIndex) )
-
-#define IAccessibleAction_get_description(This,actionIndex,description) \
- ( (This)->lpVtbl -> get_description(This,actionIndex,description) )
-
-#define IAccessibleAction_get_keyBinding(This,actionIndex,nMaxBindings,keyBindings,nBindings) \
- ( (This)->lpVtbl -> get_keyBinding(This,actionIndex,nMaxBindings,keyBindings,nBindings) )
-
-#define IAccessibleAction_get_name(This,actionIndex,name) \
- ( (This)->lpVtbl -> get_name(This,actionIndex,name) )
-
-#define IAccessibleAction_get_localizedName(This,actionIndex,localizedName) \
- ( (This)->lpVtbl -> get_localizedName(This,actionIndex,localizedName) )
-
-#endif /* COBJMACROS */
-
-
-#endif /* C style interface */
-
-
-
-
-#endif /* __IAccessibleAction_INTERFACE_DEFINED__ */
-
-
-/* Additional Prototypes for ALL interfaces */
-
-unsigned long __RPC_USER BSTR_UserSize( unsigned long *, unsigned long , BSTR * );
-unsigned char * __RPC_USER BSTR_UserMarshal( unsigned long *, unsigned char *, BSTR * );
-unsigned char * __RPC_USER BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * );
-void __RPC_USER BSTR_UserFree( unsigned long *, BSTR * );
-
-/* end of Additional Prototypes */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleAction_i.c b/src/3rdparty/iaccessible2/generated/amd64/AccessibleAction_i.c
deleted file mode 100644
index a4d754b68d..0000000000
--- a/src/3rdparty/iaccessible2/generated/amd64/AccessibleAction_i.c
+++ /dev/null
@@ -1,79 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
-
-/* link this file in with the server and any clients */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:56 2012
- */
-/* Compiler settings for AccessibleAction.idl:
- Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-
-#include <rpc.h>
-#include <rpcndr.h>
-
-#ifdef _MIDL_USE_GUIDDEF_
-
-#ifndef INITGUID
-#define INITGUID
-#include <guiddef.h>
-#undef INITGUID
-#else
-#include <guiddef.h>
-#endif
-
-#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
- DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
-
-#else // !_MIDL_USE_GUIDDEF_
-
-#ifndef __IID_DEFINED__
-#define __IID_DEFINED__
-
-typedef struct _IID
-{
- unsigned long x;
- unsigned short s1;
- unsigned short s2;
- unsigned char c[8];
-} IID;
-
-#endif // __IID_DEFINED__
-
-#ifndef CLSID_DEFINED
-#define CLSID_DEFINED
-typedef IID CLSID;
-#endif // CLSID_DEFINED
-
-#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
- const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
-
-#endif !_MIDL_USE_GUIDDEF_
-
-MIDL_DEFINE_GUID(IID, IID_IAccessibleAction,0xB70D9F59,0x3B5A,0x4dba,0xAB,0x9E,0x22,0x01,0x2F,0x60,0x7D,0xF5);
-
-#undef MIDL_DEFINE_GUID
-
-#ifdef __cplusplus
-}
-#endif
-
-
-
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleAction_p.c b/src/3rdparty/iaccessible2/generated/amd64/AccessibleAction_p.c
deleted file mode 100644
index 68eeac00b4..0000000000
--- a/src/3rdparty/iaccessible2/generated/amd64/AccessibleAction_p.c
+++ /dev/null
@@ -1,557 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the proxy stub code */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:56 2012
- */
-/* Compiler settings for AccessibleAction.idl:
- Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#if defined(_M_AMD64)
-
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-#if _MSC_VER >= 1200
-#pragma warning(push)
-#endif
-
-#pragma warning( disable: 4211 ) /* redefine extern to static */
-#pragma warning( disable: 4232 ) /* dllimport identity*/
-#pragma warning( disable: 4024 ) /* array to pointer mapping*/
-#pragma warning( disable: 4152 ) /* function/data pointer conversion in expression */
-
-#define USE_STUBLESS_PROXY
-
-
-/* verify that the <rpcproxy.h> version is high enough to compile this file*/
-#ifndef __REDQ_RPCPROXY_H_VERSION__
-#define __REQUIRED_RPCPROXY_H_VERSION__ 475
-#endif
-
-
-#include "rpcproxy.h"
-#ifndef __RPCPROXY_H_VERSION__
-#error this stub requires an updated version of <rpcproxy.h>
-#endif /* __RPCPROXY_H_VERSION__ */
-
-
-#include "AccessibleAction.h"
-
-#define TYPE_FORMAT_STRING_SIZE 77
-#define PROC_FORMAT_STRING_SIZE 265
-#define EXPR_FORMAT_STRING_SIZE 1
-#define TRANSMIT_AS_TABLE_SIZE 0
-#define WIRE_MARSHAL_TABLE_SIZE 1
-
-typedef struct _AccessibleAction_MIDL_TYPE_FORMAT_STRING
- {
- short Pad;
- unsigned char Format[ TYPE_FORMAT_STRING_SIZE ];
- } AccessibleAction_MIDL_TYPE_FORMAT_STRING;
-
-typedef struct _AccessibleAction_MIDL_PROC_FORMAT_STRING
- {
- short Pad;
- unsigned char Format[ PROC_FORMAT_STRING_SIZE ];
- } AccessibleAction_MIDL_PROC_FORMAT_STRING;
-
-typedef struct _AccessibleAction_MIDL_EXPR_FORMAT_STRING
- {
- long Pad;
- unsigned char Format[ EXPR_FORMAT_STRING_SIZE ];
- } AccessibleAction_MIDL_EXPR_FORMAT_STRING;
-
-
-static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax =
-{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}};
-
-
-extern const AccessibleAction_MIDL_TYPE_FORMAT_STRING AccessibleAction__MIDL_TypeFormatString;
-extern const AccessibleAction_MIDL_PROC_FORMAT_STRING AccessibleAction__MIDL_ProcFormatString;
-extern const AccessibleAction_MIDL_EXPR_FORMAT_STRING AccessibleAction__MIDL_ExprFormatString;
-
-
-extern const MIDL_STUB_DESC Object_StubDesc;
-
-
-extern const MIDL_SERVER_INFO IAccessibleAction_ServerInfo;
-extern const MIDL_STUBLESS_PROXY_INFO IAccessibleAction_ProxyInfo;
-
-
-extern const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ];
-
-#if !defined(__RPC_WIN64__)
-#error Invalid build platform for this stub.
-#endif
-
-static const AccessibleAction_MIDL_PROC_FORMAT_STRING AccessibleAction__MIDL_ProcFormatString =
- {
- 0,
- {
-
- /* Procedure nActions */
-
- 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 2 */ NdrFcLong( 0x0 ), /* 0 */
-/* 6 */ NdrFcShort( 0x3 ), /* 3 */
-/* 8 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 10 */ NdrFcShort( 0x0 ), /* 0 */
-/* 12 */ NdrFcShort( 0x24 ), /* 36 */
-/* 14 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 16 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 18 */ NdrFcShort( 0x0 ), /* 0 */
-/* 20 */ NdrFcShort( 0x0 ), /* 0 */
-/* 22 */ NdrFcShort( 0x0 ), /* 0 */
-/* 24 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter nActions */
-
-/* 26 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 28 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 30 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 32 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 34 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 36 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure doAction */
-
-/* 38 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 40 */ NdrFcLong( 0x0 ), /* 0 */
-/* 44 */ NdrFcShort( 0x4 ), /* 4 */
-/* 46 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 48 */ NdrFcShort( 0x8 ), /* 8 */
-/* 50 */ NdrFcShort( 0x8 ), /* 8 */
-/* 52 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 54 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 56 */ NdrFcShort( 0x0 ), /* 0 */
-/* 58 */ NdrFcShort( 0x0 ), /* 0 */
-/* 60 */ NdrFcShort( 0x0 ), /* 0 */
-/* 62 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter actionIndex */
-
-/* 64 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 66 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 68 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 70 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 72 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 74 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_description */
-
-/* 76 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 78 */ NdrFcLong( 0x0 ), /* 0 */
-/* 82 */ NdrFcShort( 0x5 ), /* 5 */
-/* 84 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
-/* 86 */ NdrFcShort( 0x8 ), /* 8 */
-/* 88 */ NdrFcShort( 0x8 ), /* 8 */
-/* 90 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x3, /* 3 */
-/* 92 */ 0xa, /* 10 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 94 */ NdrFcShort( 0x1 ), /* 1 */
-/* 96 */ NdrFcShort( 0x0 ), /* 0 */
-/* 98 */ NdrFcShort( 0x0 ), /* 0 */
-/* 100 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter actionIndex */
-
-/* 102 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 104 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 106 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter description */
-
-/* 108 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
-/* 110 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 112 */ NdrFcShort( 0x24 ), /* Type Offset=36 */
-
- /* Return value */
-
-/* 114 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 116 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 118 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_keyBinding */
-
-/* 120 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 122 */ NdrFcLong( 0x0 ), /* 0 */
-/* 126 */ NdrFcShort( 0x6 ), /* 6 */
-/* 128 */ NdrFcShort( 0x30 ), /* X64 Stack size/offset = 48 */
-/* 130 */ NdrFcShort( 0x10 ), /* 16 */
-/* 132 */ NdrFcShort( 0x24 ), /* 36 */
-/* 134 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x5, /* 5 */
-/* 136 */ 0xa, /* 10 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 138 */ NdrFcShort( 0x1 ), /* 1 */
-/* 140 */ NdrFcShort( 0x0 ), /* 0 */
-/* 142 */ NdrFcShort( 0x0 ), /* 0 */
-/* 144 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter actionIndex */
-
-/* 146 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 148 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 150 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter nMaxBindings */
-
-/* 152 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 154 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 156 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter keyBindings */
-
-/* 158 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
-/* 160 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 162 */ NdrFcShort( 0x2e ), /* Type Offset=46 */
-
- /* Parameter nBindings */
-
-/* 164 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 166 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
-/* 168 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 170 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 172 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
-/* 174 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_name */
-
-/* 176 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 178 */ NdrFcLong( 0x0 ), /* 0 */
-/* 182 */ NdrFcShort( 0x7 ), /* 7 */
-/* 184 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
-/* 186 */ NdrFcShort( 0x8 ), /* 8 */
-/* 188 */ NdrFcShort( 0x8 ), /* 8 */
-/* 190 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x3, /* 3 */
-/* 192 */ 0xa, /* 10 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 194 */ NdrFcShort( 0x1 ), /* 1 */
-/* 196 */ NdrFcShort( 0x0 ), /* 0 */
-/* 198 */ NdrFcShort( 0x0 ), /* 0 */
-/* 200 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter actionIndex */
-
-/* 202 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 204 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 206 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter name */
-
-/* 208 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
-/* 210 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 212 */ NdrFcShort( 0x24 ), /* Type Offset=36 */
-
- /* Return value */
-
-/* 214 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 216 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 218 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_localizedName */
-
-/* 220 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 222 */ NdrFcLong( 0x0 ), /* 0 */
-/* 226 */ NdrFcShort( 0x8 ), /* 8 */
-/* 228 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
-/* 230 */ NdrFcShort( 0x8 ), /* 8 */
-/* 232 */ NdrFcShort( 0x8 ), /* 8 */
-/* 234 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x3, /* 3 */
-/* 236 */ 0xa, /* 10 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 238 */ NdrFcShort( 0x1 ), /* 1 */
-/* 240 */ NdrFcShort( 0x0 ), /* 0 */
-/* 242 */ NdrFcShort( 0x0 ), /* 0 */
-/* 244 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter actionIndex */
-
-/* 246 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 248 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 250 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter localizedName */
-
-/* 252 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
-/* 254 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 256 */ NdrFcShort( 0x24 ), /* Type Offset=36 */
-
- /* Return value */
-
-/* 258 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 260 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 262 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- 0x0
- }
- };
-
-static const AccessibleAction_MIDL_TYPE_FORMAT_STRING AccessibleAction__MIDL_TypeFormatString =
- {
- 0,
- {
- NdrFcShort( 0x0 ), /* 0 */
-/* 2 */
- 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
-/* 4 */ 0x8, /* FC_LONG */
- 0x5c, /* FC_PAD */
-/* 6 */
- 0x11, 0x4, /* FC_RP [alloced_on_stack] */
-/* 8 */ NdrFcShort( 0x1c ), /* Offset= 28 (36) */
-/* 10 */
- 0x13, 0x0, /* FC_OP */
-/* 12 */ NdrFcShort( 0xe ), /* Offset= 14 (26) */
-/* 14 */
- 0x1b, /* FC_CARRAY */
- 0x1, /* 1 */
-/* 16 */ NdrFcShort( 0x2 ), /* 2 */
-/* 18 */ 0x9, /* Corr desc: FC_ULONG */
- 0x0, /* */
-/* 20 */ NdrFcShort( 0xfffc ), /* -4 */
-/* 22 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 24 */ 0x6, /* FC_SHORT */
- 0x5b, /* FC_END */
-/* 26 */
- 0x17, /* FC_CSTRUCT */
- 0x3, /* 3 */
-/* 28 */ NdrFcShort( 0x8 ), /* 8 */
-/* 30 */ NdrFcShort( 0xfff0 ), /* Offset= -16 (14) */
-/* 32 */ 0x8, /* FC_LONG */
- 0x8, /* FC_LONG */
-/* 34 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-/* 36 */ 0xb4, /* FC_USER_MARSHAL */
- 0x83, /* 131 */
-/* 38 */ NdrFcShort( 0x0 ), /* 0 */
-/* 40 */ NdrFcShort( 0x8 ), /* 8 */
-/* 42 */ NdrFcShort( 0x0 ), /* 0 */
-/* 44 */ NdrFcShort( 0xffde ), /* Offset= -34 (10) */
-/* 46 */
- 0x11, 0x14, /* FC_RP [alloced_on_stack] [pointer_deref] */
-/* 48 */ NdrFcShort( 0x2 ), /* Offset= 2 (50) */
-/* 50 */
- 0x13, 0x0, /* FC_OP */
-/* 52 */ NdrFcShort( 0x2 ), /* Offset= 2 (54) */
-/* 54 */
- 0x21, /* FC_BOGUS_ARRAY */
- 0x3, /* 3 */
-/* 56 */ NdrFcShort( 0x0 ), /* 0 */
-/* 58 */ 0x28, /* Corr desc: parameter, FC_LONG */
- 0x0, /* */
-/* 60 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 62 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 64 */ 0x28, /* Corr desc: parameter, FC_LONG */
- 0x54, /* FC_DEREFERENCE */
-/* 66 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
-/* 68 */ NdrFcShort( 0x0 ), /* Corr flags: */
-/* 70 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
- 0x0, /* 0 */
-/* 72 */ NdrFcShort( 0xffdc ), /* Offset= -36 (36) */
-/* 74 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-
- 0x0
- }
- };
-
-static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] =
- {
-
- {
- BSTR_UserSize
- ,BSTR_UserMarshal
- ,BSTR_UserUnmarshal
- ,BSTR_UserFree
- }
-
- };
-
-
-
-/* Object interface: IUnknown, ver. 0.0,
- GUID={0x00000000,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
-
-
-/* Object interface: IAccessibleAction, ver. 0.0,
- GUID={0xB70D9F59,0x3B5A,0x4dba,{0xAB,0x9E,0x22,0x01,0x2F,0x60,0x7D,0xF5}} */
-
-#pragma code_seg(".orpc")
-static const unsigned short IAccessibleAction_FormatStringOffsetTable[] =
- {
- 0,
- 38,
- 76,
- 120,
- 176,
- 220
- };
-
-static const MIDL_STUBLESS_PROXY_INFO IAccessibleAction_ProxyInfo =
- {
- &Object_StubDesc,
- AccessibleAction__MIDL_ProcFormatString.Format,
- &IAccessibleAction_FormatStringOffsetTable[-3],
- 0,
- 0,
- 0
- };
-
-
-static const MIDL_SERVER_INFO IAccessibleAction_ServerInfo =
- {
- &Object_StubDesc,
- 0,
- AccessibleAction__MIDL_ProcFormatString.Format,
- &IAccessibleAction_FormatStringOffsetTable[-3],
- 0,
- 0,
- 0,
- 0};
-CINTERFACE_PROXY_VTABLE(9) _IAccessibleActionProxyVtbl =
-{
- &IAccessibleAction_ProxyInfo,
- &IID_IAccessibleAction,
- IUnknown_QueryInterface_Proxy,
- IUnknown_AddRef_Proxy,
- IUnknown_Release_Proxy ,
- (void *) (INT_PTR) -1 /* IAccessibleAction::nActions */ ,
- (void *) (INT_PTR) -1 /* IAccessibleAction::doAction */ ,
- (void *) (INT_PTR) -1 /* IAccessibleAction::get_description */ ,
- (void *) (INT_PTR) -1 /* IAccessibleAction::get_keyBinding */ ,
- (void *) (INT_PTR) -1 /* IAccessibleAction::get_name */ ,
- (void *) (INT_PTR) -1 /* IAccessibleAction::get_localizedName */
-};
-
-const CInterfaceStubVtbl _IAccessibleActionStubVtbl =
-{
- &IID_IAccessibleAction,
- &IAccessibleAction_ServerInfo,
- 9,
- 0, /* pure interpreted */
- CStdStubBuffer_METHODS
-};
-
-static const MIDL_STUB_DESC Object_StubDesc =
- {
- 0,
- NdrOleAllocate,
- NdrOleFree,
- 0,
- 0,
- 0,
- 0,
- 0,
- AccessibleAction__MIDL_TypeFormatString.Format,
- 1, /* -error bounds_check flag */
- 0x50002, /* Ndr library version */
- 0,
- 0x700022b, /* MIDL Version 7.0.555 */
- 0,
- UserMarshalRoutines,
- 0, /* notify & notify_flag routine table */
- 0x1, /* MIDL flag */
- 0, /* cs routines */
- 0, /* proxy/server info */
- 0
- };
-
-const CInterfaceProxyVtbl * const _AccessibleAction_ProxyVtblList[] =
-{
- ( CInterfaceProxyVtbl *) &_IAccessibleActionProxyVtbl,
- 0
-};
-
-const CInterfaceStubVtbl * const _AccessibleAction_StubVtblList[] =
-{
- ( CInterfaceStubVtbl *) &_IAccessibleActionStubVtbl,
- 0
-};
-
-PCInterfaceName const _AccessibleAction_InterfaceNamesList[] =
-{
- "IAccessibleAction",
- 0
-};
-
-
-#define _AccessibleAction_CHECK_IID(n) IID_GENERIC_CHECK_IID( _AccessibleAction, pIID, n)
-
-int __stdcall _AccessibleAction_IID_Lookup( const IID * pIID, int * pIndex )
-{
-
- if(!_AccessibleAction_CHECK_IID(0))
- {
- *pIndex = 0;
- return 1;
- }
-
- return 0;
-}
-
-const ExtendedProxyFileInfo AccessibleAction_ProxyFileInfo =
-{
- (PCInterfaceProxyVtblList *) & _AccessibleAction_ProxyVtblList,
- (PCInterfaceStubVtblList *) & _AccessibleAction_StubVtblList,
- (const PCInterfaceName * ) & _AccessibleAction_InterfaceNamesList,
- 0, /* no delegation */
- & _AccessibleAction_IID_Lookup,
- 1,
- 2,
- 0, /* table of [async_uuid] interfaces */
- 0, /* Filler1 */
- 0, /* Filler2 */
- 0 /* Filler3 */
-};
-#if _MSC_VER >= 1200
-#pragma warning(pop)
-#endif
-
-
-#endif /* defined(_M_AMD64)*/
-
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleApplication.h b/src/3rdparty/iaccessible2/generated/amd64/AccessibleApplication.h
deleted file mode 100644
index 7e901563e9..0000000000
--- a/src/3rdparty/iaccessible2/generated/amd64/AccessibleApplication.h
+++ /dev/null
@@ -1,188 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the definitions for the interfaces */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:57 2012
- */
-/* Compiler settings for AccessibleApplication.idl:
- Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-
-
-/* verify that the <rpcndr.h> version is high enough to compile this file*/
-#ifndef __REQUIRED_RPCNDR_H_VERSION__
-#define __REQUIRED_RPCNDR_H_VERSION__ 475
-#endif
-
-#include "rpc.h"
-#include "rpcndr.h"
-
-#ifndef __RPCNDR_H_VERSION__
-#error this stub requires an updated version of <rpcndr.h>
-#endif // __RPCNDR_H_VERSION__
-
-#ifndef COM_NO_WINDOWS_H
-#include "windows.h"
-#include "ole2.h"
-#endif /*COM_NO_WINDOWS_H*/
-
-#ifndef __AccessibleApplication_h__
-#define __AccessibleApplication_h__
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-#pragma once
-#endif
-
-/* Forward Declarations */
-
-#ifndef __IAccessibleApplication_FWD_DEFINED__
-#define __IAccessibleApplication_FWD_DEFINED__
-typedef interface IAccessibleApplication IAccessibleApplication;
-#endif /* __IAccessibleApplication_FWD_DEFINED__ */
-
-
-/* header files for imported files */
-#include "objidl.h"
-#include "oaidl.h"
-#include "oleacc.h"
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-
-#ifndef __IAccessibleApplication_INTERFACE_DEFINED__
-#define __IAccessibleApplication_INTERFACE_DEFINED__
-
-/* interface IAccessibleApplication */
-/* [uuid][object] */
-
-
-EXTERN_C const IID IID_IAccessibleApplication;
-
-#if defined(__cplusplus) && !defined(CINTERFACE)
-
- MIDL_INTERFACE("D49DED83-5B25-43F4-9B95-93B44595979E")
- IAccessibleApplication : public IUnknown
- {
- public:
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_appName(
- /* [retval][out] */ BSTR *name) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_appVersion(
- /* [retval][out] */ BSTR *version) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_toolkitName(
- /* [retval][out] */ BSTR *name) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_toolkitVersion(
- /* [retval][out] */ BSTR *version) = 0;
-
- };
-
-#else /* C style interface */
-
- typedef struct IAccessibleApplicationVtbl
- {
- BEGIN_INTERFACE
-
- HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
- IAccessibleApplication * This,
- /* [in] */ REFIID riid,
- /* [annotation][iid_is][out] */
- __RPC__deref_out void **ppvObject);
-
- ULONG ( STDMETHODCALLTYPE *AddRef )(
- IAccessibleApplication * This);
-
- ULONG ( STDMETHODCALLTYPE *Release )(
- IAccessibleApplication * This);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_appName )(
- IAccessibleApplication * This,
- /* [retval][out] */ BSTR *name);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_appVersion )(
- IAccessibleApplication * This,
- /* [retval][out] */ BSTR *version);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_toolkitName )(
- IAccessibleApplication * This,
- /* [retval][out] */ BSTR *name);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_toolkitVersion )(
- IAccessibleApplication * This,
- /* [retval][out] */ BSTR *version);
-
- END_INTERFACE
- } IAccessibleApplicationVtbl;
-
- interface IAccessibleApplication
- {
- CONST_VTBL struct IAccessibleApplicationVtbl *lpVtbl;
- };
-
-
-
-#ifdef COBJMACROS
-
-
-#define IAccessibleApplication_QueryInterface(This,riid,ppvObject) \
- ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
-
-#define IAccessibleApplication_AddRef(This) \
- ( (This)->lpVtbl -> AddRef(This) )
-
-#define IAccessibleApplication_Release(This) \
- ( (This)->lpVtbl -> Release(This) )
-
-
-#define IAccessibleApplication_get_appName(This,name) \
- ( (This)->lpVtbl -> get_appName(This,name) )
-
-#define IAccessibleApplication_get_appVersion(This,version) \
- ( (This)->lpVtbl -> get_appVersion(This,version) )
-
-#define IAccessibleApplication_get_toolkitName(This,name) \
- ( (This)->lpVtbl -> get_toolkitName(This,name) )
-
-#define IAccessibleApplication_get_toolkitVersion(This,version) \
- ( (This)->lpVtbl -> get_toolkitVersion(This,version) )
-
-#endif /* COBJMACROS */
-
-
-#endif /* C style interface */
-
-
-
-
-#endif /* __IAccessibleApplication_INTERFACE_DEFINED__ */
-
-
-/* Additional Prototypes for ALL interfaces */
-
-unsigned long __RPC_USER BSTR_UserSize( unsigned long *, unsigned long , BSTR * );
-unsigned char * __RPC_USER BSTR_UserMarshal( unsigned long *, unsigned char *, BSTR * );
-unsigned char * __RPC_USER BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * );
-void __RPC_USER BSTR_UserFree( unsigned long *, BSTR * );
-
-/* end of Additional Prototypes */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleApplication_i.c b/src/3rdparty/iaccessible2/generated/amd64/AccessibleApplication_i.c
deleted file mode 100644
index b50ae8a2c6..0000000000
--- a/src/3rdparty/iaccessible2/generated/amd64/AccessibleApplication_i.c
+++ /dev/null
@@ -1,79 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
-
-/* link this file in with the server and any clients */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:57 2012
- */
-/* Compiler settings for AccessibleApplication.idl:
- Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-
-#include <rpc.h>
-#include <rpcndr.h>
-
-#ifdef _MIDL_USE_GUIDDEF_
-
-#ifndef INITGUID
-#define INITGUID
-#include <guiddef.h>
-#undef INITGUID
-#else
-#include <guiddef.h>
-#endif
-
-#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
- DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
-
-#else // !_MIDL_USE_GUIDDEF_
-
-#ifndef __IID_DEFINED__
-#define __IID_DEFINED__
-
-typedef struct _IID
-{
- unsigned long x;
- unsigned short s1;
- unsigned short s2;
- unsigned char c[8];
-} IID;
-
-#endif // __IID_DEFINED__
-
-#ifndef CLSID_DEFINED
-#define CLSID_DEFINED
-typedef IID CLSID;
-#endif // CLSID_DEFINED
-
-#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
- const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
-
-#endif !_MIDL_USE_GUIDDEF_
-
-MIDL_DEFINE_GUID(IID, IID_IAccessibleApplication,0xD49DED83,0x5B25,0x43F4,0x9B,0x95,0x93,0xB4,0x45,0x95,0x97,0x9E);
-
-#undef MIDL_DEFINE_GUID
-
-#ifdef __cplusplus
-}
-#endif
-
-
-
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleApplication_p.c b/src/3rdparty/iaccessible2/generated/amd64/AccessibleApplication_p.c
deleted file mode 100644
index 84d7e30344..0000000000
--- a/src/3rdparty/iaccessible2/generated/amd64/AccessibleApplication_p.c
+++ /dev/null
@@ -1,420 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the proxy stub code */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:57 2012
- */
-/* Compiler settings for AccessibleApplication.idl:
- Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#if defined(_M_AMD64)
-
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-#if _MSC_VER >= 1200
-#pragma warning(push)
-#endif
-
-#pragma warning( disable: 4211 ) /* redefine extern to static */
-#pragma warning( disable: 4232 ) /* dllimport identity*/
-#pragma warning( disable: 4024 ) /* array to pointer mapping*/
-#pragma warning( disable: 4152 ) /* function/data pointer conversion in expression */
-
-#define USE_STUBLESS_PROXY
-
-
-/* verify that the <rpcproxy.h> version is high enough to compile this file*/
-#ifndef __REDQ_RPCPROXY_H_VERSION__
-#define __REQUIRED_RPCPROXY_H_VERSION__ 475
-#endif
-
-
-#include "rpcproxy.h"
-#ifndef __RPCPROXY_H_VERSION__
-#error this stub requires an updated version of <rpcproxy.h>
-#endif /* __RPCPROXY_H_VERSION__ */
-
-
-#include "AccessibleApplication.h"
-
-#define TYPE_FORMAT_STRING_SIZE 43
-#define PROC_FORMAT_STRING_SIZE 153
-#define EXPR_FORMAT_STRING_SIZE 1
-#define TRANSMIT_AS_TABLE_SIZE 0
-#define WIRE_MARSHAL_TABLE_SIZE 1
-
-typedef struct _AccessibleApplication_MIDL_TYPE_FORMAT_STRING
- {
- short Pad;
- unsigned char Format[ TYPE_FORMAT_STRING_SIZE ];
- } AccessibleApplication_MIDL_TYPE_FORMAT_STRING;
-
-typedef struct _AccessibleApplication_MIDL_PROC_FORMAT_STRING
- {
- short Pad;
- unsigned char Format[ PROC_FORMAT_STRING_SIZE ];
- } AccessibleApplication_MIDL_PROC_FORMAT_STRING;
-
-typedef struct _AccessibleApplication_MIDL_EXPR_FORMAT_STRING
- {
- long Pad;
- unsigned char Format[ EXPR_FORMAT_STRING_SIZE ];
- } AccessibleApplication_MIDL_EXPR_FORMAT_STRING;
-
-
-static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax =
-{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}};
-
-
-extern const AccessibleApplication_MIDL_TYPE_FORMAT_STRING AccessibleApplication__MIDL_TypeFormatString;
-extern const AccessibleApplication_MIDL_PROC_FORMAT_STRING AccessibleApplication__MIDL_ProcFormatString;
-extern const AccessibleApplication_MIDL_EXPR_FORMAT_STRING AccessibleApplication__MIDL_ExprFormatString;
-
-
-extern const MIDL_STUB_DESC Object_StubDesc;
-
-
-extern const MIDL_SERVER_INFO IAccessibleApplication_ServerInfo;
-extern const MIDL_STUBLESS_PROXY_INFO IAccessibleApplication_ProxyInfo;
-
-
-extern const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ];
-
-#if !defined(__RPC_WIN64__)
-#error Invalid build platform for this stub.
-#endif
-
-static const AccessibleApplication_MIDL_PROC_FORMAT_STRING AccessibleApplication__MIDL_ProcFormatString =
- {
- 0,
- {
-
- /* Procedure get_appName */
-
- 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 2 */ NdrFcLong( 0x0 ), /* 0 */
-/* 6 */ NdrFcShort( 0x3 ), /* 3 */
-/* 8 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 10 */ NdrFcShort( 0x0 ), /* 0 */
-/* 12 */ NdrFcShort( 0x8 ), /* 8 */
-/* 14 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x2, /* 2 */
-/* 16 */ 0xa, /* 10 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 18 */ NdrFcShort( 0x1 ), /* 1 */
-/* 20 */ NdrFcShort( 0x0 ), /* 0 */
-/* 22 */ NdrFcShort( 0x0 ), /* 0 */
-/* 24 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter name */
-
-/* 26 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
-/* 28 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 30 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
-
- /* Return value */
-
-/* 32 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 34 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 36 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_appVersion */
-
-/* 38 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 40 */ NdrFcLong( 0x0 ), /* 0 */
-/* 44 */ NdrFcShort( 0x4 ), /* 4 */
-/* 46 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 48 */ NdrFcShort( 0x0 ), /* 0 */
-/* 50 */ NdrFcShort( 0x8 ), /* 8 */
-/* 52 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x2, /* 2 */
-/* 54 */ 0xa, /* 10 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 56 */ NdrFcShort( 0x1 ), /* 1 */
-/* 58 */ NdrFcShort( 0x0 ), /* 0 */
-/* 60 */ NdrFcShort( 0x0 ), /* 0 */
-/* 62 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter version */
-
-/* 64 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
-/* 66 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 68 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
-
- /* Return value */
-
-/* 70 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 72 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 74 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_toolkitName */
-
-/* 76 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 78 */ NdrFcLong( 0x0 ), /* 0 */
-/* 82 */ NdrFcShort( 0x5 ), /* 5 */
-/* 84 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 86 */ NdrFcShort( 0x0 ), /* 0 */
-/* 88 */ NdrFcShort( 0x8 ), /* 8 */
-/* 90 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x2, /* 2 */
-/* 92 */ 0xa, /* 10 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 94 */ NdrFcShort( 0x1 ), /* 1 */
-/* 96 */ NdrFcShort( 0x0 ), /* 0 */
-/* 98 */ NdrFcShort( 0x0 ), /* 0 */
-/* 100 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter name */
-
-/* 102 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
-/* 104 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 106 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
-
- /* Return value */
-
-/* 108 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 110 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 112 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_toolkitVersion */
-
-/* 114 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 116 */ NdrFcLong( 0x0 ), /* 0 */
-/* 120 */ NdrFcShort( 0x6 ), /* 6 */
-/* 122 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 124 */ NdrFcShort( 0x0 ), /* 0 */
-/* 126 */ NdrFcShort( 0x8 ), /* 8 */
-/* 128 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x2, /* 2 */
-/* 130 */ 0xa, /* 10 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 132 */ NdrFcShort( 0x1 ), /* 1 */
-/* 134 */ NdrFcShort( 0x0 ), /* 0 */
-/* 136 */ NdrFcShort( 0x0 ), /* 0 */
-/* 138 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter version */
-
-/* 140 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
-/* 142 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 144 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
-
- /* Return value */
-
-/* 146 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 148 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 150 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- 0x0
- }
- };
-
-static const AccessibleApplication_MIDL_TYPE_FORMAT_STRING AccessibleApplication__MIDL_TypeFormatString =
- {
- 0,
- {
- NdrFcShort( 0x0 ), /* 0 */
-/* 2 */
- 0x11, 0x4, /* FC_RP [alloced_on_stack] */
-/* 4 */ NdrFcShort( 0x1c ), /* Offset= 28 (32) */
-/* 6 */
- 0x13, 0x0, /* FC_OP */
-/* 8 */ NdrFcShort( 0xe ), /* Offset= 14 (22) */
-/* 10 */
- 0x1b, /* FC_CARRAY */
- 0x1, /* 1 */
-/* 12 */ NdrFcShort( 0x2 ), /* 2 */
-/* 14 */ 0x9, /* Corr desc: FC_ULONG */
- 0x0, /* */
-/* 16 */ NdrFcShort( 0xfffc ), /* -4 */
-/* 18 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 20 */ 0x6, /* FC_SHORT */
- 0x5b, /* FC_END */
-/* 22 */
- 0x17, /* FC_CSTRUCT */
- 0x3, /* 3 */
-/* 24 */ NdrFcShort( 0x8 ), /* 8 */
-/* 26 */ NdrFcShort( 0xfff0 ), /* Offset= -16 (10) */
-/* 28 */ 0x8, /* FC_LONG */
- 0x8, /* FC_LONG */
-/* 30 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-/* 32 */ 0xb4, /* FC_USER_MARSHAL */
- 0x83, /* 131 */
-/* 34 */ NdrFcShort( 0x0 ), /* 0 */
-/* 36 */ NdrFcShort( 0x8 ), /* 8 */
-/* 38 */ NdrFcShort( 0x0 ), /* 0 */
-/* 40 */ NdrFcShort( 0xffde ), /* Offset= -34 (6) */
-
- 0x0
- }
- };
-
-static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] =
- {
-
- {
- BSTR_UserSize
- ,BSTR_UserMarshal
- ,BSTR_UserUnmarshal
- ,BSTR_UserFree
- }
-
- };
-
-
-
-/* Object interface: IUnknown, ver. 0.0,
- GUID={0x00000000,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
-
-
-/* Object interface: IAccessibleApplication, ver. 0.0,
- GUID={0xD49DED83,0x5B25,0x43F4,{0x9B,0x95,0x93,0xB4,0x45,0x95,0x97,0x9E}} */
-
-#pragma code_seg(".orpc")
-static const unsigned short IAccessibleApplication_FormatStringOffsetTable[] =
- {
- 0,
- 38,
- 76,
- 114
- };
-
-static const MIDL_STUBLESS_PROXY_INFO IAccessibleApplication_ProxyInfo =
- {
- &Object_StubDesc,
- AccessibleApplication__MIDL_ProcFormatString.Format,
- &IAccessibleApplication_FormatStringOffsetTable[-3],
- 0,
- 0,
- 0
- };
-
-
-static const MIDL_SERVER_INFO IAccessibleApplication_ServerInfo =
- {
- &Object_StubDesc,
- 0,
- AccessibleApplication__MIDL_ProcFormatString.Format,
- &IAccessibleApplication_FormatStringOffsetTable[-3],
- 0,
- 0,
- 0,
- 0};
-CINTERFACE_PROXY_VTABLE(7) _IAccessibleApplicationProxyVtbl =
-{
- &IAccessibleApplication_ProxyInfo,
- &IID_IAccessibleApplication,
- IUnknown_QueryInterface_Proxy,
- IUnknown_AddRef_Proxy,
- IUnknown_Release_Proxy ,
- (void *) (INT_PTR) -1 /* IAccessibleApplication::get_appName */ ,
- (void *) (INT_PTR) -1 /* IAccessibleApplication::get_appVersion */ ,
- (void *) (INT_PTR) -1 /* IAccessibleApplication::get_toolkitName */ ,
- (void *) (INT_PTR) -1 /* IAccessibleApplication::get_toolkitVersion */
-};
-
-const CInterfaceStubVtbl _IAccessibleApplicationStubVtbl =
-{
- &IID_IAccessibleApplication,
- &IAccessibleApplication_ServerInfo,
- 7,
- 0, /* pure interpreted */
- CStdStubBuffer_METHODS
-};
-
-static const MIDL_STUB_DESC Object_StubDesc =
- {
- 0,
- NdrOleAllocate,
- NdrOleFree,
- 0,
- 0,
- 0,
- 0,
- 0,
- AccessibleApplication__MIDL_TypeFormatString.Format,
- 1, /* -error bounds_check flag */
- 0x50002, /* Ndr library version */
- 0,
- 0x700022b, /* MIDL Version 7.0.555 */
- 0,
- UserMarshalRoutines,
- 0, /* notify & notify_flag routine table */
- 0x1, /* MIDL flag */
- 0, /* cs routines */
- 0, /* proxy/server info */
- 0
- };
-
-const CInterfaceProxyVtbl * const _AccessibleApplication_ProxyVtblList[] =
-{
- ( CInterfaceProxyVtbl *) &_IAccessibleApplicationProxyVtbl,
- 0
-};
-
-const CInterfaceStubVtbl * const _AccessibleApplication_StubVtblList[] =
-{
- ( CInterfaceStubVtbl *) &_IAccessibleApplicationStubVtbl,
- 0
-};
-
-PCInterfaceName const _AccessibleApplication_InterfaceNamesList[] =
-{
- "IAccessibleApplication",
- 0
-};
-
-
-#define _AccessibleApplication_CHECK_IID(n) IID_GENERIC_CHECK_IID( _AccessibleApplication, pIID, n)
-
-int __stdcall _AccessibleApplication_IID_Lookup( const IID * pIID, int * pIndex )
-{
-
- if(!_AccessibleApplication_CHECK_IID(0))
- {
- *pIndex = 0;
- return 1;
- }
-
- return 0;
-}
-
-const ExtendedProxyFileInfo AccessibleApplication_ProxyFileInfo =
-{
- (PCInterfaceProxyVtblList *) & _AccessibleApplication_ProxyVtblList,
- (PCInterfaceStubVtblList *) & _AccessibleApplication_StubVtblList,
- (const PCInterfaceName * ) & _AccessibleApplication_InterfaceNamesList,
- 0, /* no delegation */
- & _AccessibleApplication_IID_Lookup,
- 1,
- 2,
- 0, /* table of [async_uuid] interfaces */
- 0, /* Filler1 */
- 0, /* Filler2 */
- 0 /* Filler3 */
-};
-#if _MSC_VER >= 1200
-#pragma warning(pop)
-#endif
-
-
-#endif /* defined(_M_AMD64)*/
-
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleComponent.h b/src/3rdparty/iaccessible2/generated/amd64/AccessibleComponent.h
deleted file mode 100644
index 38f696f45c..0000000000
--- a/src/3rdparty/iaccessible2/generated/amd64/AccessibleComponent.h
+++ /dev/null
@@ -1,185 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the definitions for the interfaces */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:57 2012
- */
-/* Compiler settings for AccessibleComponent.idl:
- Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-
-
-/* verify that the <rpcndr.h> version is high enough to compile this file*/
-#ifndef __REQUIRED_RPCNDR_H_VERSION__
-#define __REQUIRED_RPCNDR_H_VERSION__ 475
-#endif
-
-#include "rpc.h"
-#include "rpcndr.h"
-
-#ifndef __RPCNDR_H_VERSION__
-#error this stub requires an updated version of <rpcndr.h>
-#endif // __RPCNDR_H_VERSION__
-
-#ifndef COM_NO_WINDOWS_H
-#include "windows.h"
-#include "ole2.h"
-#endif /*COM_NO_WINDOWS_H*/
-
-#ifndef __AccessibleComponent_h__
-#define __AccessibleComponent_h__
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-#pragma once
-#endif
-
-/* Forward Declarations */
-
-#ifndef __IAccessibleComponent_FWD_DEFINED__
-#define __IAccessibleComponent_FWD_DEFINED__
-typedef interface IAccessibleComponent IAccessibleComponent;
-#endif /* __IAccessibleComponent_FWD_DEFINED__ */
-
-
-/* header files for imported files */
-#include "objidl.h"
-#include "oaidl.h"
-#include "oleacc.h"
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-
-/* interface __MIDL_itf_AccessibleComponent_0000_0000 */
-/* [local] */
-
-typedef long IA2Color;
-
-
-
-extern RPC_IF_HANDLE __MIDL_itf_AccessibleComponent_0000_0000_v0_0_c_ifspec;
-extern RPC_IF_HANDLE __MIDL_itf_AccessibleComponent_0000_0000_v0_0_s_ifspec;
-
-#ifndef __IAccessibleComponent_INTERFACE_DEFINED__
-#define __IAccessibleComponent_INTERFACE_DEFINED__
-
-/* interface IAccessibleComponent */
-/* [uuid][object] */
-
-
-EXTERN_C const IID IID_IAccessibleComponent;
-
-#if defined(__cplusplus) && !defined(CINTERFACE)
-
- MIDL_INTERFACE("1546D4B0-4C98-4bda-89AE-9A64748BDDE4")
- IAccessibleComponent : public IUnknown
- {
- public:
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_locationInParent(
- /* [out] */ long *x,
- /* [retval][out] */ long *y) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_foreground(
- /* [retval][out] */ IA2Color *foreground) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_background(
- /* [retval][out] */ IA2Color *background) = 0;
-
- };
-
-#else /* C style interface */
-
- typedef struct IAccessibleComponentVtbl
- {
- BEGIN_INTERFACE
-
- HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
- IAccessibleComponent * This,
- /* [in] */ REFIID riid,
- /* [annotation][iid_is][out] */
- __RPC__deref_out void **ppvObject);
-
- ULONG ( STDMETHODCALLTYPE *AddRef )(
- IAccessibleComponent * This);
-
- ULONG ( STDMETHODCALLTYPE *Release )(
- IAccessibleComponent * This);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_locationInParent )(
- IAccessibleComponent * This,
- /* [out] */ long *x,
- /* [retval][out] */ long *y);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_foreground )(
- IAccessibleComponent * This,
- /* [retval][out] */ IA2Color *foreground);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_background )(
- IAccessibleComponent * This,
- /* [retval][out] */ IA2Color *background);
-
- END_INTERFACE
- } IAccessibleComponentVtbl;
-
- interface IAccessibleComponent
- {
- CONST_VTBL struct IAccessibleComponentVtbl *lpVtbl;
- };
-
-
-
-#ifdef COBJMACROS
-
-
-#define IAccessibleComponent_QueryInterface(This,riid,ppvObject) \
- ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
-
-#define IAccessibleComponent_AddRef(This) \
- ( (This)->lpVtbl -> AddRef(This) )
-
-#define IAccessibleComponent_Release(This) \
- ( (This)->lpVtbl -> Release(This) )
-
-
-#define IAccessibleComponent_get_locationInParent(This,x,y) \
- ( (This)->lpVtbl -> get_locationInParent(This,x,y) )
-
-#define IAccessibleComponent_get_foreground(This,foreground) \
- ( (This)->lpVtbl -> get_foreground(This,foreground) )
-
-#define IAccessibleComponent_get_background(This,background) \
- ( (This)->lpVtbl -> get_background(This,background) )
-
-#endif /* COBJMACROS */
-
-
-#endif /* C style interface */
-
-
-
-
-#endif /* __IAccessibleComponent_INTERFACE_DEFINED__ */
-
-
-/* Additional Prototypes for ALL interfaces */
-
-/* end of Additional Prototypes */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleComponent_i.c b/src/3rdparty/iaccessible2/generated/amd64/AccessibleComponent_i.c
deleted file mode 100644
index 34be13e31c..0000000000
--- a/src/3rdparty/iaccessible2/generated/amd64/AccessibleComponent_i.c
+++ /dev/null
@@ -1,79 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
-
-/* link this file in with the server and any clients */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:57 2012
- */
-/* Compiler settings for AccessibleComponent.idl:
- Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-
-#include <rpc.h>
-#include <rpcndr.h>
-
-#ifdef _MIDL_USE_GUIDDEF_
-
-#ifndef INITGUID
-#define INITGUID
-#include <guiddef.h>
-#undef INITGUID
-#else
-#include <guiddef.h>
-#endif
-
-#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
- DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
-
-#else // !_MIDL_USE_GUIDDEF_
-
-#ifndef __IID_DEFINED__
-#define __IID_DEFINED__
-
-typedef struct _IID
-{
- unsigned long x;
- unsigned short s1;
- unsigned short s2;
- unsigned char c[8];
-} IID;
-
-#endif // __IID_DEFINED__
-
-#ifndef CLSID_DEFINED
-#define CLSID_DEFINED
-typedef IID CLSID;
-#endif // CLSID_DEFINED
-
-#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
- const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
-
-#endif !_MIDL_USE_GUIDDEF_
-
-MIDL_DEFINE_GUID(IID, IID_IAccessibleComponent,0x1546D4B0,0x4C98,0x4bda,0x89,0xAE,0x9A,0x64,0x74,0x8B,0xDD,0xE4);
-
-#undef MIDL_DEFINE_GUID
-
-#ifdef __cplusplus
-}
-#endif
-
-
-
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleComponent_p.c b/src/3rdparty/iaccessible2/generated/amd64/AccessibleComponent_p.c
deleted file mode 100644
index ddcacff7e7..0000000000
--- a/src/3rdparty/iaccessible2/generated/amd64/AccessibleComponent_p.c
+++ /dev/null
@@ -1,360 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the proxy stub code */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:57 2012
- */
-/* Compiler settings for AccessibleComponent.idl:
- Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#if defined(_M_AMD64)
-
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-#if _MSC_VER >= 1200
-#pragma warning(push)
-#endif
-
-#pragma warning( disable: 4211 ) /* redefine extern to static */
-#pragma warning( disable: 4232 ) /* dllimport identity*/
-#pragma warning( disable: 4024 ) /* array to pointer mapping*/
-#pragma warning( disable: 4152 ) /* function/data pointer conversion in expression */
-
-#define USE_STUBLESS_PROXY
-
-
-/* verify that the <rpcproxy.h> version is high enough to compile this file*/
-#ifndef __REDQ_RPCPROXY_H_VERSION__
-#define __REQUIRED_RPCPROXY_H_VERSION__ 475
-#endif
-
-
-#include "rpcproxy.h"
-#ifndef __RPCPROXY_H_VERSION__
-#error this stub requires an updated version of <rpcproxy.h>
-#endif /* __RPCPROXY_H_VERSION__ */
-
-
-#include "AccessibleComponent.h"
-
-#define TYPE_FORMAT_STRING_SIZE 7
-#define PROC_FORMAT_STRING_SIZE 121
-#define EXPR_FORMAT_STRING_SIZE 1
-#define TRANSMIT_AS_TABLE_SIZE 0
-#define WIRE_MARSHAL_TABLE_SIZE 0
-
-typedef struct _AccessibleComponent_MIDL_TYPE_FORMAT_STRING
- {
- short Pad;
- unsigned char Format[ TYPE_FORMAT_STRING_SIZE ];
- } AccessibleComponent_MIDL_TYPE_FORMAT_STRING;
-
-typedef struct _AccessibleComponent_MIDL_PROC_FORMAT_STRING
- {
- short Pad;
- unsigned char Format[ PROC_FORMAT_STRING_SIZE ];
- } AccessibleComponent_MIDL_PROC_FORMAT_STRING;
-
-typedef struct _AccessibleComponent_MIDL_EXPR_FORMAT_STRING
- {
- long Pad;
- unsigned char Format[ EXPR_FORMAT_STRING_SIZE ];
- } AccessibleComponent_MIDL_EXPR_FORMAT_STRING;
-
-
-static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax =
-{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}};
-
-
-extern const AccessibleComponent_MIDL_TYPE_FORMAT_STRING AccessibleComponent__MIDL_TypeFormatString;
-extern const AccessibleComponent_MIDL_PROC_FORMAT_STRING AccessibleComponent__MIDL_ProcFormatString;
-extern const AccessibleComponent_MIDL_EXPR_FORMAT_STRING AccessibleComponent__MIDL_ExprFormatString;
-
-
-extern const MIDL_STUB_DESC Object_StubDesc;
-
-
-extern const MIDL_SERVER_INFO IAccessibleComponent_ServerInfo;
-extern const MIDL_STUBLESS_PROXY_INFO IAccessibleComponent_ProxyInfo;
-
-
-
-#if !defined(__RPC_WIN64__)
-#error Invalid build platform for this stub.
-#endif
-
-static const AccessibleComponent_MIDL_PROC_FORMAT_STRING AccessibleComponent__MIDL_ProcFormatString =
- {
- 0,
- {
-
- /* Procedure get_locationInParent */
-
- 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 2 */ NdrFcLong( 0x0 ), /* 0 */
-/* 6 */ NdrFcShort( 0x3 ), /* 3 */
-/* 8 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
-/* 10 */ NdrFcShort( 0x0 ), /* 0 */
-/* 12 */ NdrFcShort( 0x40 ), /* 64 */
-/* 14 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x3, /* 3 */
-/* 16 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 18 */ NdrFcShort( 0x0 ), /* 0 */
-/* 20 */ NdrFcShort( 0x0 ), /* 0 */
-/* 22 */ NdrFcShort( 0x0 ), /* 0 */
-/* 24 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter x */
-
-/* 26 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 28 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 30 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter y */
-
-/* 32 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 34 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 36 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 38 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 40 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 42 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_foreground */
-
-/* 44 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 46 */ NdrFcLong( 0x0 ), /* 0 */
-/* 50 */ NdrFcShort( 0x4 ), /* 4 */
-/* 52 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 54 */ NdrFcShort( 0x0 ), /* 0 */
-/* 56 */ NdrFcShort( 0x24 ), /* 36 */
-/* 58 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 60 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 62 */ NdrFcShort( 0x0 ), /* 0 */
-/* 64 */ NdrFcShort( 0x0 ), /* 0 */
-/* 66 */ NdrFcShort( 0x0 ), /* 0 */
-/* 68 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter foreground */
-
-/* 70 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 72 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 74 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 76 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 78 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 80 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_background */
-
-/* 82 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 84 */ NdrFcLong( 0x0 ), /* 0 */
-/* 88 */ NdrFcShort( 0x5 ), /* 5 */
-/* 90 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 92 */ NdrFcShort( 0x0 ), /* 0 */
-/* 94 */ NdrFcShort( 0x24 ), /* 36 */
-/* 96 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 98 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 100 */ NdrFcShort( 0x0 ), /* 0 */
-/* 102 */ NdrFcShort( 0x0 ), /* 0 */
-/* 104 */ NdrFcShort( 0x0 ), /* 0 */
-/* 106 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter background */
-
-/* 108 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 110 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 112 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 114 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 116 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 118 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- 0x0
- }
- };
-
-static const AccessibleComponent_MIDL_TYPE_FORMAT_STRING AccessibleComponent__MIDL_TypeFormatString =
- {
- 0,
- {
- NdrFcShort( 0x0 ), /* 0 */
-/* 2 */
- 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
-/* 4 */ 0x8, /* FC_LONG */
- 0x5c, /* FC_PAD */
-
- 0x0
- }
- };
-
-
-/* Standard interface: __MIDL_itf_AccessibleComponent_0000_0000, ver. 0.0,
- GUID={0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}} */
-
-
-/* Object interface: IUnknown, ver. 0.0,
- GUID={0x00000000,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
-
-
-/* Object interface: IAccessibleComponent, ver. 0.0,
- GUID={0x1546D4B0,0x4C98,0x4bda,{0x89,0xAE,0x9A,0x64,0x74,0x8B,0xDD,0xE4}} */
-
-#pragma code_seg(".orpc")
-static const unsigned short IAccessibleComponent_FormatStringOffsetTable[] =
- {
- 0,
- 44,
- 82
- };
-
-static const MIDL_STUBLESS_PROXY_INFO IAccessibleComponent_ProxyInfo =
- {
- &Object_StubDesc,
- AccessibleComponent__MIDL_ProcFormatString.Format,
- &IAccessibleComponent_FormatStringOffsetTable[-3],
- 0,
- 0,
- 0
- };
-
-
-static const MIDL_SERVER_INFO IAccessibleComponent_ServerInfo =
- {
- &Object_StubDesc,
- 0,
- AccessibleComponent__MIDL_ProcFormatString.Format,
- &IAccessibleComponent_FormatStringOffsetTable[-3],
- 0,
- 0,
- 0,
- 0};
-CINTERFACE_PROXY_VTABLE(6) _IAccessibleComponentProxyVtbl =
-{
- &IAccessibleComponent_ProxyInfo,
- &IID_IAccessibleComponent,
- IUnknown_QueryInterface_Proxy,
- IUnknown_AddRef_Proxy,
- IUnknown_Release_Proxy ,
- (void *) (INT_PTR) -1 /* IAccessibleComponent::get_locationInParent */ ,
- (void *) (INT_PTR) -1 /* IAccessibleComponent::get_foreground */ ,
- (void *) (INT_PTR) -1 /* IAccessibleComponent::get_background */
-};
-
-const CInterfaceStubVtbl _IAccessibleComponentStubVtbl =
-{
- &IID_IAccessibleComponent,
- &IAccessibleComponent_ServerInfo,
- 6,
- 0, /* pure interpreted */
- CStdStubBuffer_METHODS
-};
-
-static const MIDL_STUB_DESC Object_StubDesc =
- {
- 0,
- NdrOleAllocate,
- NdrOleFree,
- 0,
- 0,
- 0,
- 0,
- 0,
- AccessibleComponent__MIDL_TypeFormatString.Format,
- 1, /* -error bounds_check flag */
- 0x50002, /* Ndr library version */
- 0,
- 0x700022b, /* MIDL Version 7.0.555 */
- 0,
- 0,
- 0, /* notify & notify_flag routine table */
- 0x1, /* MIDL flag */
- 0, /* cs routines */
- 0, /* proxy/server info */
- 0
- };
-
-const CInterfaceProxyVtbl * const _AccessibleComponent_ProxyVtblList[] =
-{
- ( CInterfaceProxyVtbl *) &_IAccessibleComponentProxyVtbl,
- 0
-};
-
-const CInterfaceStubVtbl * const _AccessibleComponent_StubVtblList[] =
-{
- ( CInterfaceStubVtbl *) &_IAccessibleComponentStubVtbl,
- 0
-};
-
-PCInterfaceName const _AccessibleComponent_InterfaceNamesList[] =
-{
- "IAccessibleComponent",
- 0
-};
-
-
-#define _AccessibleComponent_CHECK_IID(n) IID_GENERIC_CHECK_IID( _AccessibleComponent, pIID, n)
-
-int __stdcall _AccessibleComponent_IID_Lookup( const IID * pIID, int * pIndex )
-{
-
- if(!_AccessibleComponent_CHECK_IID(0))
- {
- *pIndex = 0;
- return 1;
- }
-
- return 0;
-}
-
-const ExtendedProxyFileInfo AccessibleComponent_ProxyFileInfo =
-{
- (PCInterfaceProxyVtblList *) & _AccessibleComponent_ProxyVtblList,
- (PCInterfaceStubVtblList *) & _AccessibleComponent_StubVtblList,
- (const PCInterfaceName * ) & _AccessibleComponent_InterfaceNamesList,
- 0, /* no delegation */
- & _AccessibleComponent_IID_Lookup,
- 1,
- 2,
- 0, /* table of [async_uuid] interfaces */
- 0, /* Filler1 */
- 0, /* Filler2 */
- 0 /* Filler3 */
-};
-#if _MSC_VER >= 1200
-#pragma warning(pop)
-#endif
-
-
-#endif /* defined(_M_AMD64)*/
-
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleEditableText.h b/src/3rdparty/iaccessible2/generated/amd64/AccessibleEditableText.h
deleted file mode 100644
index 4c94154a15..0000000000
--- a/src/3rdparty/iaccessible2/generated/amd64/AccessibleEditableText.h
+++ /dev/null
@@ -1,235 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the definitions for the interfaces */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:57 2012
- */
-/* Compiler settings for AccessibleEditableText.idl:
- Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-
-
-/* verify that the <rpcndr.h> version is high enough to compile this file*/
-#ifndef __REQUIRED_RPCNDR_H_VERSION__
-#define __REQUIRED_RPCNDR_H_VERSION__ 475
-#endif
-
-#include "rpc.h"
-#include "rpcndr.h"
-
-#ifndef __RPCNDR_H_VERSION__
-#error this stub requires an updated version of <rpcndr.h>
-#endif // __RPCNDR_H_VERSION__
-
-#ifndef COM_NO_WINDOWS_H
-#include "windows.h"
-#include "ole2.h"
-#endif /*COM_NO_WINDOWS_H*/
-
-#ifndef __AccessibleEditableText_h__
-#define __AccessibleEditableText_h__
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-#pragma once
-#endif
-
-/* Forward Declarations */
-
-#ifndef __IAccessibleEditableText_FWD_DEFINED__
-#define __IAccessibleEditableText_FWD_DEFINED__
-typedef interface IAccessibleEditableText IAccessibleEditableText;
-#endif /* __IAccessibleEditableText_FWD_DEFINED__ */
-
-
-/* header files for imported files */
-#include "objidl.h"
-#include "oaidl.h"
-#include "oleacc.h"
-#include "IA2CommonTypes.h"
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-
-#ifndef __IAccessibleEditableText_INTERFACE_DEFINED__
-#define __IAccessibleEditableText_INTERFACE_DEFINED__
-
-/* interface IAccessibleEditableText */
-/* [uuid][object] */
-
-
-EXTERN_C const IID IID_IAccessibleEditableText;
-
-#if defined(__cplusplus) && !defined(CINTERFACE)
-
- MIDL_INTERFACE("A59AA09A-7011-4b65-939D-32B1FB5547E3")
- IAccessibleEditableText : public IUnknown
- {
- public:
- virtual HRESULT STDMETHODCALLTYPE copyText(
- /* [in] */ long startOffset,
- /* [in] */ long endOffset) = 0;
-
- virtual HRESULT STDMETHODCALLTYPE deleteText(
- /* [in] */ long startOffset,
- /* [in] */ long endOffset) = 0;
-
- virtual HRESULT STDMETHODCALLTYPE insertText(
- /* [in] */ long offset,
- /* [in] */ BSTR *text) = 0;
-
- virtual HRESULT STDMETHODCALLTYPE cutText(
- /* [in] */ long startOffset,
- /* [in] */ long endOffset) = 0;
-
- virtual HRESULT STDMETHODCALLTYPE pasteText(
- /* [in] */ long offset) = 0;
-
- virtual HRESULT STDMETHODCALLTYPE replaceText(
- /* [in] */ long startOffset,
- /* [in] */ long endOffset,
- /* [in] */ BSTR *text) = 0;
-
- virtual HRESULT STDMETHODCALLTYPE setAttributes(
- /* [in] */ long startOffset,
- /* [in] */ long endOffset,
- /* [in] */ BSTR *attributes) = 0;
-
- };
-
-#else /* C style interface */
-
- typedef struct IAccessibleEditableTextVtbl
- {
- BEGIN_INTERFACE
-
- HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
- IAccessibleEditableText * This,
- /* [in] */ REFIID riid,
- /* [annotation][iid_is][out] */
- __RPC__deref_out void **ppvObject);
-
- ULONG ( STDMETHODCALLTYPE *AddRef )(
- IAccessibleEditableText * This);
-
- ULONG ( STDMETHODCALLTYPE *Release )(
- IAccessibleEditableText * This);
-
- HRESULT ( STDMETHODCALLTYPE *copyText )(
- IAccessibleEditableText * This,
- /* [in] */ long startOffset,
- /* [in] */ long endOffset);
-
- HRESULT ( STDMETHODCALLTYPE *deleteText )(
- IAccessibleEditableText * This,
- /* [in] */ long startOffset,
- /* [in] */ long endOffset);
-
- HRESULT ( STDMETHODCALLTYPE *insertText )(
- IAccessibleEditableText * This,
- /* [in] */ long offset,
- /* [in] */ BSTR *text);
-
- HRESULT ( STDMETHODCALLTYPE *cutText )(
- IAccessibleEditableText * This,
- /* [in] */ long startOffset,
- /* [in] */ long endOffset);
-
- HRESULT ( STDMETHODCALLTYPE *pasteText )(
- IAccessibleEditableText * This,
- /* [in] */ long offset);
-
- HRESULT ( STDMETHODCALLTYPE *replaceText )(
- IAccessibleEditableText * This,
- /* [in] */ long startOffset,
- /* [in] */ long endOffset,
- /* [in] */ BSTR *text);
-
- HRESULT ( STDMETHODCALLTYPE *setAttributes )(
- IAccessibleEditableText * This,
- /* [in] */ long startOffset,
- /* [in] */ long endOffset,
- /* [in] */ BSTR *attributes);
-
- END_INTERFACE
- } IAccessibleEditableTextVtbl;
-
- interface IAccessibleEditableText
- {
- CONST_VTBL struct IAccessibleEditableTextVtbl *lpVtbl;
- };
-
-
-
-#ifdef COBJMACROS
-
-
-#define IAccessibleEditableText_QueryInterface(This,riid,ppvObject) \
- ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
-
-#define IAccessibleEditableText_AddRef(This) \
- ( (This)->lpVtbl -> AddRef(This) )
-
-#define IAccessibleEditableText_Release(This) \
- ( (This)->lpVtbl -> Release(This) )
-
-
-#define IAccessibleEditableText_copyText(This,startOffset,endOffset) \
- ( (This)->lpVtbl -> copyText(This,startOffset,endOffset) )
-
-#define IAccessibleEditableText_deleteText(This,startOffset,endOffset) \
- ( (This)->lpVtbl -> deleteText(This,startOffset,endOffset) )
-
-#define IAccessibleEditableText_insertText(This,offset,text) \
- ( (This)->lpVtbl -> insertText(This,offset,text) )
-
-#define IAccessibleEditableText_cutText(This,startOffset,endOffset) \
- ( (This)->lpVtbl -> cutText(This,startOffset,endOffset) )
-
-#define IAccessibleEditableText_pasteText(This,offset) \
- ( (This)->lpVtbl -> pasteText(This,offset) )
-
-#define IAccessibleEditableText_replaceText(This,startOffset,endOffset,text) \
- ( (This)->lpVtbl -> replaceText(This,startOffset,endOffset,text) )
-
-#define IAccessibleEditableText_setAttributes(This,startOffset,endOffset,attributes) \
- ( (This)->lpVtbl -> setAttributes(This,startOffset,endOffset,attributes) )
-
-#endif /* COBJMACROS */
-
-
-#endif /* C style interface */
-
-
-
-
-#endif /* __IAccessibleEditableText_INTERFACE_DEFINED__ */
-
-
-/* Additional Prototypes for ALL interfaces */
-
-unsigned long __RPC_USER BSTR_UserSize( unsigned long *, unsigned long , BSTR * );
-unsigned char * __RPC_USER BSTR_UserMarshal( unsigned long *, unsigned char *, BSTR * );
-unsigned char * __RPC_USER BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * );
-void __RPC_USER BSTR_UserFree( unsigned long *, BSTR * );
-
-/* end of Additional Prototypes */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleEditableText_i.c b/src/3rdparty/iaccessible2/generated/amd64/AccessibleEditableText_i.c
deleted file mode 100644
index a444951721..0000000000
--- a/src/3rdparty/iaccessible2/generated/amd64/AccessibleEditableText_i.c
+++ /dev/null
@@ -1,79 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
-
-/* link this file in with the server and any clients */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:57 2012
- */
-/* Compiler settings for AccessibleEditableText.idl:
- Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-
-#include <rpc.h>
-#include <rpcndr.h>
-
-#ifdef _MIDL_USE_GUIDDEF_
-
-#ifndef INITGUID
-#define INITGUID
-#include <guiddef.h>
-#undef INITGUID
-#else
-#include <guiddef.h>
-#endif
-
-#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
- DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
-
-#else // !_MIDL_USE_GUIDDEF_
-
-#ifndef __IID_DEFINED__
-#define __IID_DEFINED__
-
-typedef struct _IID
-{
- unsigned long x;
- unsigned short s1;
- unsigned short s2;
- unsigned char c[8];
-} IID;
-
-#endif // __IID_DEFINED__
-
-#ifndef CLSID_DEFINED
-#define CLSID_DEFINED
-typedef IID CLSID;
-#endif // CLSID_DEFINED
-
-#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
- const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
-
-#endif !_MIDL_USE_GUIDDEF_
-
-MIDL_DEFINE_GUID(IID, IID_IAccessibleEditableText,0xA59AA09A,0x7011,0x4b65,0x93,0x9D,0x32,0xB1,0xFB,0x55,0x47,0xE3);
-
-#undef MIDL_DEFINE_GUID
-
-#ifdef __cplusplus
-}
-#endif
-
-
-
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleEditableText_p.c b/src/3rdparty/iaccessible2/generated/amd64/AccessibleEditableText_p.c
deleted file mode 100644
index 9e9b466d86..0000000000
--- a/src/3rdparty/iaccessible2/generated/amd64/AccessibleEditableText_p.c
+++ /dev/null
@@ -1,579 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the proxy stub code */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:57 2012
- */
-/* Compiler settings for AccessibleEditableText.idl:
- Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#if defined(_M_AMD64)
-
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-#if _MSC_VER >= 1200
-#pragma warning(push)
-#endif
-
-#pragma warning( disable: 4211 ) /* redefine extern to static */
-#pragma warning( disable: 4232 ) /* dllimport identity*/
-#pragma warning( disable: 4024 ) /* array to pointer mapping*/
-#pragma warning( disable: 4152 ) /* function/data pointer conversion in expression */
-
-#define USE_STUBLESS_PROXY
-
-
-/* verify that the <rpcproxy.h> version is high enough to compile this file*/
-#ifndef __REDQ_RPCPROXY_H_VERSION__
-#define __REQUIRED_RPCPROXY_H_VERSION__ 475
-#endif
-
-
-#include "rpcproxy.h"
-#ifndef __RPCPROXY_H_VERSION__
-#error this stub requires an updated version of <rpcproxy.h>
-#endif /* __RPCPROXY_H_VERSION__ */
-
-
-#include "AccessibleEditableText.h"
-
-#define TYPE_FORMAT_STRING_SIZE 43
-#define PROC_FORMAT_STRING_SIZE 315
-#define EXPR_FORMAT_STRING_SIZE 1
-#define TRANSMIT_AS_TABLE_SIZE 0
-#define WIRE_MARSHAL_TABLE_SIZE 1
-
-typedef struct _AccessibleEditableText_MIDL_TYPE_FORMAT_STRING
- {
- short Pad;
- unsigned char Format[ TYPE_FORMAT_STRING_SIZE ];
- } AccessibleEditableText_MIDL_TYPE_FORMAT_STRING;
-
-typedef struct _AccessibleEditableText_MIDL_PROC_FORMAT_STRING
- {
- short Pad;
- unsigned char Format[ PROC_FORMAT_STRING_SIZE ];
- } AccessibleEditableText_MIDL_PROC_FORMAT_STRING;
-
-typedef struct _AccessibleEditableText_MIDL_EXPR_FORMAT_STRING
- {
- long Pad;
- unsigned char Format[ EXPR_FORMAT_STRING_SIZE ];
- } AccessibleEditableText_MIDL_EXPR_FORMAT_STRING;
-
-
-static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax =
-{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}};
-
-
-extern const AccessibleEditableText_MIDL_TYPE_FORMAT_STRING AccessibleEditableText__MIDL_TypeFormatString;
-extern const AccessibleEditableText_MIDL_PROC_FORMAT_STRING AccessibleEditableText__MIDL_ProcFormatString;
-extern const AccessibleEditableText_MIDL_EXPR_FORMAT_STRING AccessibleEditableText__MIDL_ExprFormatString;
-
-
-extern const MIDL_STUB_DESC Object_StubDesc;
-
-
-extern const MIDL_SERVER_INFO IAccessibleEditableText_ServerInfo;
-extern const MIDL_STUBLESS_PROXY_INFO IAccessibleEditableText_ProxyInfo;
-
-
-extern const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ];
-
-#if !defined(__RPC_WIN64__)
-#error Invalid build platform for this stub.
-#endif
-
-static const AccessibleEditableText_MIDL_PROC_FORMAT_STRING AccessibleEditableText__MIDL_ProcFormatString =
- {
- 0,
- {
-
- /* Procedure copyText */
-
- 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 2 */ NdrFcLong( 0x0 ), /* 0 */
-/* 6 */ NdrFcShort( 0x3 ), /* 3 */
-/* 8 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
-/* 10 */ NdrFcShort( 0x10 ), /* 16 */
-/* 12 */ NdrFcShort( 0x8 ), /* 8 */
-/* 14 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x3, /* 3 */
-/* 16 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 18 */ NdrFcShort( 0x0 ), /* 0 */
-/* 20 */ NdrFcShort( 0x0 ), /* 0 */
-/* 22 */ NdrFcShort( 0x0 ), /* 0 */
-/* 24 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter startOffset */
-
-/* 26 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 28 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 30 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter endOffset */
-
-/* 32 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 34 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 36 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 38 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 40 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 42 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure deleteText */
-
-/* 44 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 46 */ NdrFcLong( 0x0 ), /* 0 */
-/* 50 */ NdrFcShort( 0x4 ), /* 4 */
-/* 52 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
-/* 54 */ NdrFcShort( 0x10 ), /* 16 */
-/* 56 */ NdrFcShort( 0x8 ), /* 8 */
-/* 58 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x3, /* 3 */
-/* 60 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 62 */ NdrFcShort( 0x0 ), /* 0 */
-/* 64 */ NdrFcShort( 0x0 ), /* 0 */
-/* 66 */ NdrFcShort( 0x0 ), /* 0 */
-/* 68 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter startOffset */
-
-/* 70 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 72 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 74 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter endOffset */
-
-/* 76 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 78 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 80 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 82 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 84 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 86 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure insertText */
-
-/* 88 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 90 */ NdrFcLong( 0x0 ), /* 0 */
-/* 94 */ NdrFcShort( 0x5 ), /* 5 */
-/* 96 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
-/* 98 */ NdrFcShort( 0x8 ), /* 8 */
-/* 100 */ NdrFcShort( 0x8 ), /* 8 */
-/* 102 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
- 0x3, /* 3 */
-/* 104 */ 0xa, /* 10 */
- 0x5, /* Ext Flags: new corr desc, srv corr check, */
-/* 106 */ NdrFcShort( 0x0 ), /* 0 */
-/* 108 */ NdrFcShort( 0x1 ), /* 1 */
-/* 110 */ NdrFcShort( 0x0 ), /* 0 */
-/* 112 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter offset */
-
-/* 114 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 116 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 118 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter text */
-
-/* 120 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
-/* 122 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 124 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
-
- /* Return value */
-
-/* 126 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 128 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 130 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure cutText */
-
-/* 132 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 134 */ NdrFcLong( 0x0 ), /* 0 */
-/* 138 */ NdrFcShort( 0x6 ), /* 6 */
-/* 140 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
-/* 142 */ NdrFcShort( 0x10 ), /* 16 */
-/* 144 */ NdrFcShort( 0x8 ), /* 8 */
-/* 146 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x3, /* 3 */
-/* 148 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 150 */ NdrFcShort( 0x0 ), /* 0 */
-/* 152 */ NdrFcShort( 0x0 ), /* 0 */
-/* 154 */ NdrFcShort( 0x0 ), /* 0 */
-/* 156 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter startOffset */
-
-/* 158 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 160 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 162 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter endOffset */
-
-/* 164 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 166 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 168 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 170 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 172 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 174 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure pasteText */
-
-/* 176 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 178 */ NdrFcLong( 0x0 ), /* 0 */
-/* 182 */ NdrFcShort( 0x7 ), /* 7 */
-/* 184 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 186 */ NdrFcShort( 0x8 ), /* 8 */
-/* 188 */ NdrFcShort( 0x8 ), /* 8 */
-/* 190 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 192 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 194 */ NdrFcShort( 0x0 ), /* 0 */
-/* 196 */ NdrFcShort( 0x0 ), /* 0 */
-/* 198 */ NdrFcShort( 0x0 ), /* 0 */
-/* 200 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter offset */
-
-/* 202 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 204 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 206 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 208 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 210 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 212 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure replaceText */
-
-/* 214 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 216 */ NdrFcLong( 0x0 ), /* 0 */
-/* 220 */ NdrFcShort( 0x8 ), /* 8 */
-/* 222 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
-/* 224 */ NdrFcShort( 0x10 ), /* 16 */
-/* 226 */ NdrFcShort( 0x8 ), /* 8 */
-/* 228 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
- 0x4, /* 4 */
-/* 230 */ 0xa, /* 10 */
- 0x5, /* Ext Flags: new corr desc, srv corr check, */
-/* 232 */ NdrFcShort( 0x0 ), /* 0 */
-/* 234 */ NdrFcShort( 0x1 ), /* 1 */
-/* 236 */ NdrFcShort( 0x0 ), /* 0 */
-/* 238 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter startOffset */
-
-/* 240 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 242 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 244 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter endOffset */
-
-/* 246 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 248 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 250 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter text */
-
-/* 252 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
-/* 254 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 256 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
-
- /* Return value */
-
-/* 258 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 260 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
-/* 262 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure setAttributes */
-
-/* 264 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 266 */ NdrFcLong( 0x0 ), /* 0 */
-/* 270 */ NdrFcShort( 0x9 ), /* 9 */
-/* 272 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
-/* 274 */ NdrFcShort( 0x10 ), /* 16 */
-/* 276 */ NdrFcShort( 0x8 ), /* 8 */
-/* 278 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
- 0x4, /* 4 */
-/* 280 */ 0xa, /* 10 */
- 0x5, /* Ext Flags: new corr desc, srv corr check, */
-/* 282 */ NdrFcShort( 0x0 ), /* 0 */
-/* 284 */ NdrFcShort( 0x1 ), /* 1 */
-/* 286 */ NdrFcShort( 0x0 ), /* 0 */
-/* 288 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter startOffset */
-
-/* 290 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 292 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 294 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter endOffset */
-
-/* 296 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 298 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 300 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter attributes */
-
-/* 302 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
-/* 304 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 306 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
-
- /* Return value */
-
-/* 308 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 310 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
-/* 312 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- 0x0
- }
- };
-
-static const AccessibleEditableText_MIDL_TYPE_FORMAT_STRING AccessibleEditableText__MIDL_TypeFormatString =
- {
- 0,
- {
- NdrFcShort( 0x0 ), /* 0 */
-/* 2 */
- 0x11, 0x0, /* FC_RP */
-/* 4 */ NdrFcShort( 0x1c ), /* Offset= 28 (32) */
-/* 6 */
- 0x12, 0x0, /* FC_UP */
-/* 8 */ NdrFcShort( 0xe ), /* Offset= 14 (22) */
-/* 10 */
- 0x1b, /* FC_CARRAY */
- 0x1, /* 1 */
-/* 12 */ NdrFcShort( 0x2 ), /* 2 */
-/* 14 */ 0x9, /* Corr desc: FC_ULONG */
- 0x0, /* */
-/* 16 */ NdrFcShort( 0xfffc ), /* -4 */
-/* 18 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 20 */ 0x6, /* FC_SHORT */
- 0x5b, /* FC_END */
-/* 22 */
- 0x17, /* FC_CSTRUCT */
- 0x3, /* 3 */
-/* 24 */ NdrFcShort( 0x8 ), /* 8 */
-/* 26 */ NdrFcShort( 0xfff0 ), /* Offset= -16 (10) */
-/* 28 */ 0x8, /* FC_LONG */
- 0x8, /* FC_LONG */
-/* 30 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-/* 32 */ 0xb4, /* FC_USER_MARSHAL */
- 0x83, /* 131 */
-/* 34 */ NdrFcShort( 0x0 ), /* 0 */
-/* 36 */ NdrFcShort( 0x8 ), /* 8 */
-/* 38 */ NdrFcShort( 0x0 ), /* 0 */
-/* 40 */ NdrFcShort( 0xffde ), /* Offset= -34 (6) */
-
- 0x0
- }
- };
-
-static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] =
- {
-
- {
- BSTR_UserSize
- ,BSTR_UserMarshal
- ,BSTR_UserUnmarshal
- ,BSTR_UserFree
- }
-
- };
-
-
-
-/* Object interface: IUnknown, ver. 0.0,
- GUID={0x00000000,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
-
-
-/* Object interface: IAccessibleEditableText, ver. 0.0,
- GUID={0xA59AA09A,0x7011,0x4b65,{0x93,0x9D,0x32,0xB1,0xFB,0x55,0x47,0xE3}} */
-
-#pragma code_seg(".orpc")
-static const unsigned short IAccessibleEditableText_FormatStringOffsetTable[] =
- {
- 0,
- 44,
- 88,
- 132,
- 176,
- 214,
- 264
- };
-
-static const MIDL_STUBLESS_PROXY_INFO IAccessibleEditableText_ProxyInfo =
- {
- &Object_StubDesc,
- AccessibleEditableText__MIDL_ProcFormatString.Format,
- &IAccessibleEditableText_FormatStringOffsetTable[-3],
- 0,
- 0,
- 0
- };
-
-
-static const MIDL_SERVER_INFO IAccessibleEditableText_ServerInfo =
- {
- &Object_StubDesc,
- 0,
- AccessibleEditableText__MIDL_ProcFormatString.Format,
- &IAccessibleEditableText_FormatStringOffsetTable[-3],
- 0,
- 0,
- 0,
- 0};
-CINTERFACE_PROXY_VTABLE(10) _IAccessibleEditableTextProxyVtbl =
-{
- &IAccessibleEditableText_ProxyInfo,
- &IID_IAccessibleEditableText,
- IUnknown_QueryInterface_Proxy,
- IUnknown_AddRef_Proxy,
- IUnknown_Release_Proxy ,
- (void *) (INT_PTR) -1 /* IAccessibleEditableText::copyText */ ,
- (void *) (INT_PTR) -1 /* IAccessibleEditableText::deleteText */ ,
- (void *) (INT_PTR) -1 /* IAccessibleEditableText::insertText */ ,
- (void *) (INT_PTR) -1 /* IAccessibleEditableText::cutText */ ,
- (void *) (INT_PTR) -1 /* IAccessibleEditableText::pasteText */ ,
- (void *) (INT_PTR) -1 /* IAccessibleEditableText::replaceText */ ,
- (void *) (INT_PTR) -1 /* IAccessibleEditableText::setAttributes */
-};
-
-const CInterfaceStubVtbl _IAccessibleEditableTextStubVtbl =
-{
- &IID_IAccessibleEditableText,
- &IAccessibleEditableText_ServerInfo,
- 10,
- 0, /* pure interpreted */
- CStdStubBuffer_METHODS
-};
-
-static const MIDL_STUB_DESC Object_StubDesc =
- {
- 0,
- NdrOleAllocate,
- NdrOleFree,
- 0,
- 0,
- 0,
- 0,
- 0,
- AccessibleEditableText__MIDL_TypeFormatString.Format,
- 1, /* -error bounds_check flag */
- 0x50002, /* Ndr library version */
- 0,
- 0x700022b, /* MIDL Version 7.0.555 */
- 0,
- UserMarshalRoutines,
- 0, /* notify & notify_flag routine table */
- 0x1, /* MIDL flag */
- 0, /* cs routines */
- 0, /* proxy/server info */
- 0
- };
-
-const CInterfaceProxyVtbl * const _AccessibleEditableText_ProxyVtblList[] =
-{
- ( CInterfaceProxyVtbl *) &_IAccessibleEditableTextProxyVtbl,
- 0
-};
-
-const CInterfaceStubVtbl * const _AccessibleEditableText_StubVtblList[] =
-{
- ( CInterfaceStubVtbl *) &_IAccessibleEditableTextStubVtbl,
- 0
-};
-
-PCInterfaceName const _AccessibleEditableText_InterfaceNamesList[] =
-{
- "IAccessibleEditableText",
- 0
-};
-
-
-#define _AccessibleEditableText_CHECK_IID(n) IID_GENERIC_CHECK_IID( _AccessibleEditableText, pIID, n)
-
-int __stdcall _AccessibleEditableText_IID_Lookup( const IID * pIID, int * pIndex )
-{
-
- if(!_AccessibleEditableText_CHECK_IID(0))
- {
- *pIndex = 0;
- return 1;
- }
-
- return 0;
-}
-
-const ExtendedProxyFileInfo AccessibleEditableText_ProxyFileInfo =
-{
- (PCInterfaceProxyVtblList *) & _AccessibleEditableText_ProxyVtblList,
- (PCInterfaceStubVtblList *) & _AccessibleEditableText_StubVtblList,
- (const PCInterfaceName * ) & _AccessibleEditableText_InterfaceNamesList,
- 0, /* no delegation */
- & _AccessibleEditableText_IID_Lookup,
- 1,
- 2,
- 0, /* table of [async_uuid] interfaces */
- 0, /* Filler1 */
- 0, /* Filler2 */
- 0 /* Filler3 */
-};
-#if _MSC_VER >= 1200
-#pragma warning(pop)
-#endif
-
-
-#endif /* defined(_M_AMD64)*/
-
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleEventID.h b/src/3rdparty/iaccessible2/generated/amd64/AccessibleEventID.h
deleted file mode 100644
index 6e6c8a888a..0000000000
--- a/src/3rdparty/iaccessible2/generated/amd64/AccessibleEventID.h
+++ /dev/null
@@ -1,105 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the definitions for the interfaces */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:57 2012
- */
-/* Compiler settings for AccessibleEventID.idl:
- Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-
-
-/* verify that the <rpcndr.h> version is high enough to compile this file*/
-#ifndef __REQUIRED_RPCNDR_H_VERSION__
-#define __REQUIRED_RPCNDR_H_VERSION__ 475
-#endif
-
-#include "rpc.h"
-#include "rpcndr.h"
-
-#ifndef __RPCNDR_H_VERSION__
-#error this stub requires an updated version of <rpcndr.h>
-#endif // __RPCNDR_H_VERSION__
-
-
-#ifndef __AccessibleEventID_h__
-#define __AccessibleEventID_h__
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-#pragma once
-#endif
-
-/* Forward Declarations */
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-
-/* interface __MIDL_itf_AccessibleEventID_0000_0000 */
-/* [local] */
-
-
-enum IA2EventID
- { IA2_EVENT_ACTION_CHANGED = 0x101,
- IA2_EVENT_ACTIVE_DECENDENT_CHANGED = ( IA2_EVENT_ACTION_CHANGED + 1 ) ,
- IA2_EVENT_ACTIVE_DESCENDANT_CHANGED = IA2_EVENT_ACTIVE_DECENDENT_CHANGED,
- IA2_EVENT_DOCUMENT_ATTRIBUTE_CHANGED = ( IA2_EVENT_ACTIVE_DESCENDANT_CHANGED + 1 ) ,
- IA2_EVENT_DOCUMENT_CONTENT_CHANGED = ( IA2_EVENT_DOCUMENT_ATTRIBUTE_CHANGED + 1 ) ,
- IA2_EVENT_DOCUMENT_LOAD_COMPLETE = ( IA2_EVENT_DOCUMENT_CONTENT_CHANGED + 1 ) ,
- IA2_EVENT_DOCUMENT_LOAD_STOPPED = ( IA2_EVENT_DOCUMENT_LOAD_COMPLETE + 1 ) ,
- IA2_EVENT_DOCUMENT_RELOAD = ( IA2_EVENT_DOCUMENT_LOAD_STOPPED + 1 ) ,
- IA2_EVENT_HYPERLINK_END_INDEX_CHANGED = ( IA2_EVENT_DOCUMENT_RELOAD + 1 ) ,
- IA2_EVENT_HYPERLINK_NUMBER_OF_ANCHORS_CHANGED = ( IA2_EVENT_HYPERLINK_END_INDEX_CHANGED + 1 ) ,
- IA2_EVENT_HYPERLINK_SELECTED_LINK_CHANGED = ( IA2_EVENT_HYPERLINK_NUMBER_OF_ANCHORS_CHANGED + 1 ) ,
- IA2_EVENT_HYPERTEXT_LINK_ACTIVATED = ( IA2_EVENT_HYPERLINK_SELECTED_LINK_CHANGED + 1 ) ,
- IA2_EVENT_HYPERTEXT_LINK_SELECTED = ( IA2_EVENT_HYPERTEXT_LINK_ACTIVATED + 1 ) ,
- IA2_EVENT_HYPERLINK_START_INDEX_CHANGED = ( IA2_EVENT_HYPERTEXT_LINK_SELECTED + 1 ) ,
- IA2_EVENT_HYPERTEXT_CHANGED = ( IA2_EVENT_HYPERLINK_START_INDEX_CHANGED + 1 ) ,
- IA2_EVENT_HYPERTEXT_NLINKS_CHANGED = ( IA2_EVENT_HYPERTEXT_CHANGED + 1 ) ,
- IA2_EVENT_OBJECT_ATTRIBUTE_CHANGED = ( IA2_EVENT_HYPERTEXT_NLINKS_CHANGED + 1 ) ,
- IA2_EVENT_PAGE_CHANGED = ( IA2_EVENT_OBJECT_ATTRIBUTE_CHANGED + 1 ) ,
- IA2_EVENT_SECTION_CHANGED = ( IA2_EVENT_PAGE_CHANGED + 1 ) ,
- IA2_EVENT_TABLE_CAPTION_CHANGED = ( IA2_EVENT_SECTION_CHANGED + 1 ) ,
- IA2_EVENT_TABLE_COLUMN_DESCRIPTION_CHANGED = ( IA2_EVENT_TABLE_CAPTION_CHANGED + 1 ) ,
- IA2_EVENT_TABLE_COLUMN_HEADER_CHANGED = ( IA2_EVENT_TABLE_COLUMN_DESCRIPTION_CHANGED + 1 ) ,
- IA2_EVENT_TABLE_MODEL_CHANGED = ( IA2_EVENT_TABLE_COLUMN_HEADER_CHANGED + 1 ) ,
- IA2_EVENT_TABLE_ROW_DESCRIPTION_CHANGED = ( IA2_EVENT_TABLE_MODEL_CHANGED + 1 ) ,
- IA2_EVENT_TABLE_ROW_HEADER_CHANGED = ( IA2_EVENT_TABLE_ROW_DESCRIPTION_CHANGED + 1 ) ,
- IA2_EVENT_TABLE_SUMMARY_CHANGED = ( IA2_EVENT_TABLE_ROW_HEADER_CHANGED + 1 ) ,
- IA2_EVENT_TEXT_ATTRIBUTE_CHANGED = ( IA2_EVENT_TABLE_SUMMARY_CHANGED + 1 ) ,
- IA2_EVENT_TEXT_CARET_MOVED = ( IA2_EVENT_TEXT_ATTRIBUTE_CHANGED + 1 ) ,
- IA2_EVENT_TEXT_CHANGED = ( IA2_EVENT_TEXT_CARET_MOVED + 1 ) ,
- IA2_EVENT_TEXT_COLUMN_CHANGED = ( IA2_EVENT_TEXT_CHANGED + 1 ) ,
- IA2_EVENT_TEXT_INSERTED = ( IA2_EVENT_TEXT_COLUMN_CHANGED + 1 ) ,
- IA2_EVENT_TEXT_REMOVED = ( IA2_EVENT_TEXT_INSERTED + 1 ) ,
- IA2_EVENT_TEXT_UPDATED = ( IA2_EVENT_TEXT_REMOVED + 1 ) ,
- IA2_EVENT_TEXT_SELECTION_CHANGED = ( IA2_EVENT_TEXT_UPDATED + 1 ) ,
- IA2_EVENT_VISIBLE_DATA_CHANGED = ( IA2_EVENT_TEXT_SELECTION_CHANGED + 1 )
- } ;
-
-
-extern RPC_IF_HANDLE __MIDL_itf_AccessibleEventID_0000_0000_v0_0_c_ifspec;
-extern RPC_IF_HANDLE __MIDL_itf_AccessibleEventID_0000_0000_v0_0_s_ifspec;
-
-/* Additional Prototypes for ALL interfaces */
-
-/* end of Additional Prototypes */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleHyperlink.h b/src/3rdparty/iaccessible2/generated/amd64/AccessibleHyperlink.h
deleted file mode 100644
index 24fad0bd8a..0000000000
--- a/src/3rdparty/iaccessible2/generated/amd64/AccessibleHyperlink.h
+++ /dev/null
@@ -1,252 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the definitions for the interfaces */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:57 2012
- */
-/* Compiler settings for AccessibleHyperlink.idl:
- Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-
-
-/* verify that the <rpcndr.h> version is high enough to compile this file*/
-#ifndef __REQUIRED_RPCNDR_H_VERSION__
-#define __REQUIRED_RPCNDR_H_VERSION__ 475
-#endif
-
-#include "rpc.h"
-#include "rpcndr.h"
-
-#ifndef __RPCNDR_H_VERSION__
-#error this stub requires an updated version of <rpcndr.h>
-#endif // __RPCNDR_H_VERSION__
-
-#ifndef COM_NO_WINDOWS_H
-#include "windows.h"
-#include "ole2.h"
-#endif /*COM_NO_WINDOWS_H*/
-
-#ifndef __AccessibleHyperlink_h__
-#define __AccessibleHyperlink_h__
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-#pragma once
-#endif
-
-/* Forward Declarations */
-
-#ifndef __IAccessibleHyperlink_FWD_DEFINED__
-#define __IAccessibleHyperlink_FWD_DEFINED__
-typedef interface IAccessibleHyperlink IAccessibleHyperlink;
-#endif /* __IAccessibleHyperlink_FWD_DEFINED__ */
-
-
-/* header files for imported files */
-#include "objidl.h"
-#include "oaidl.h"
-#include "oleacc.h"
-#include "AccessibleAction.h"
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-
-#ifndef __IAccessibleHyperlink_INTERFACE_DEFINED__
-#define __IAccessibleHyperlink_INTERFACE_DEFINED__
-
-/* interface IAccessibleHyperlink */
-/* [uuid][object] */
-
-
-EXTERN_C const IID IID_IAccessibleHyperlink;
-
-#if defined(__cplusplus) && !defined(CINTERFACE)
-
- MIDL_INTERFACE("01C20F2B-3DD2-400f-949F-AD00BDAB1D41")
- IAccessibleHyperlink : public IAccessibleAction
- {
- public:
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_anchor(
- /* [in] */ long index,
- /* [retval][out] */ VARIANT *anchor) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_anchorTarget(
- /* [in] */ long index,
- /* [retval][out] */ VARIANT *anchorTarget) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_startIndex(
- /* [retval][out] */ long *index) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_endIndex(
- /* [retval][out] */ long *index) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_valid(
- /* [retval][out] */ boolean *valid) = 0;
-
- };
-
-#else /* C style interface */
-
- typedef struct IAccessibleHyperlinkVtbl
- {
- BEGIN_INTERFACE
-
- HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
- IAccessibleHyperlink * This,
- /* [in] */ REFIID riid,
- /* [annotation][iid_is][out] */
- __RPC__deref_out void **ppvObject);
-
- ULONG ( STDMETHODCALLTYPE *AddRef )(
- IAccessibleHyperlink * This);
-
- ULONG ( STDMETHODCALLTYPE *Release )(
- IAccessibleHyperlink * This);
-
- HRESULT ( STDMETHODCALLTYPE *nActions )(
- IAccessibleHyperlink * This,
- /* [retval][out] */ long *nActions);
-
- HRESULT ( STDMETHODCALLTYPE *doAction )(
- IAccessibleHyperlink * This,
- /* [in] */ long actionIndex);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_description )(
- IAccessibleHyperlink * This,
- /* [in] */ long actionIndex,
- /* [retval][out] */ BSTR *description);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_keyBinding )(
- IAccessibleHyperlink * This,
- /* [in] */ long actionIndex,
- /* [in] */ long nMaxBindings,
- /* [length_is][length_is][size_is][size_is][out] */ BSTR **keyBindings,
- /* [retval][out] */ long *nBindings);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_name )(
- IAccessibleHyperlink * This,
- /* [in] */ long actionIndex,
- /* [retval][out] */ BSTR *name);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedName )(
- IAccessibleHyperlink * This,
- /* [in] */ long actionIndex,
- /* [retval][out] */ BSTR *localizedName);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_anchor )(
- IAccessibleHyperlink * This,
- /* [in] */ long index,
- /* [retval][out] */ VARIANT *anchor);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_anchorTarget )(
- IAccessibleHyperlink * This,
- /* [in] */ long index,
- /* [retval][out] */ VARIANT *anchorTarget);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_startIndex )(
- IAccessibleHyperlink * This,
- /* [retval][out] */ long *index);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_endIndex )(
- IAccessibleHyperlink * This,
- /* [retval][out] */ long *index);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_valid )(
- IAccessibleHyperlink * This,
- /* [retval][out] */ boolean *valid);
-
- END_INTERFACE
- } IAccessibleHyperlinkVtbl;
-
- interface IAccessibleHyperlink
- {
- CONST_VTBL struct IAccessibleHyperlinkVtbl *lpVtbl;
- };
-
-
-
-#ifdef COBJMACROS
-
-
-#define IAccessibleHyperlink_QueryInterface(This,riid,ppvObject) \
- ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
-
-#define IAccessibleHyperlink_AddRef(This) \
- ( (This)->lpVtbl -> AddRef(This) )
-
-#define IAccessibleHyperlink_Release(This) \
- ( (This)->lpVtbl -> Release(This) )
-
-
-#define IAccessibleHyperlink_nActions(This,nActions) \
- ( (This)->lpVtbl -> nActions(This,nActions) )
-
-#define IAccessibleHyperlink_doAction(This,actionIndex) \
- ( (This)->lpVtbl -> doAction(This,actionIndex) )
-
-#define IAccessibleHyperlink_get_description(This,actionIndex,description) \
- ( (This)->lpVtbl -> get_description(This,actionIndex,description) )
-
-#define IAccessibleHyperlink_get_keyBinding(This,actionIndex,nMaxBindings,keyBindings,nBindings) \
- ( (This)->lpVtbl -> get_keyBinding(This,actionIndex,nMaxBindings,keyBindings,nBindings) )
-
-#define IAccessibleHyperlink_get_name(This,actionIndex,name) \
- ( (This)->lpVtbl -> get_name(This,actionIndex,name) )
-
-#define IAccessibleHyperlink_get_localizedName(This,actionIndex,localizedName) \
- ( (This)->lpVtbl -> get_localizedName(This,actionIndex,localizedName) )
-
-
-#define IAccessibleHyperlink_get_anchor(This,index,anchor) \
- ( (This)->lpVtbl -> get_anchor(This,index,anchor) )
-
-#define IAccessibleHyperlink_get_anchorTarget(This,index,anchorTarget) \
- ( (This)->lpVtbl -> get_anchorTarget(This,index,anchorTarget) )
-
-#define IAccessibleHyperlink_get_startIndex(This,index) \
- ( (This)->lpVtbl -> get_startIndex(This,index) )
-
-#define IAccessibleHyperlink_get_endIndex(This,index) \
- ( (This)->lpVtbl -> get_endIndex(This,index) )
-
-#define IAccessibleHyperlink_get_valid(This,valid) \
- ( (This)->lpVtbl -> get_valid(This,valid) )
-
-#endif /* COBJMACROS */
-
-
-#endif /* C style interface */
-
-
-
-
-#endif /* __IAccessibleHyperlink_INTERFACE_DEFINED__ */
-
-
-/* Additional Prototypes for ALL interfaces */
-
-unsigned long __RPC_USER VARIANT_UserSize( unsigned long *, unsigned long , VARIANT * );
-unsigned char * __RPC_USER VARIANT_UserMarshal( unsigned long *, unsigned char *, VARIANT * );
-unsigned char * __RPC_USER VARIANT_UserUnmarshal(unsigned long *, unsigned char *, VARIANT * );
-void __RPC_USER VARIANT_UserFree( unsigned long *, VARIANT * );
-
-/* end of Additional Prototypes */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleHyperlink_i.c b/src/3rdparty/iaccessible2/generated/amd64/AccessibleHyperlink_i.c
deleted file mode 100644
index f668740e0b..0000000000
--- a/src/3rdparty/iaccessible2/generated/amd64/AccessibleHyperlink_i.c
+++ /dev/null
@@ -1,79 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
-
-/* link this file in with the server and any clients */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:57 2012
- */
-/* Compiler settings for AccessibleHyperlink.idl:
- Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-
-#include <rpc.h>
-#include <rpcndr.h>
-
-#ifdef _MIDL_USE_GUIDDEF_
-
-#ifndef INITGUID
-#define INITGUID
-#include <guiddef.h>
-#undef INITGUID
-#else
-#include <guiddef.h>
-#endif
-
-#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
- DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
-
-#else // !_MIDL_USE_GUIDDEF_
-
-#ifndef __IID_DEFINED__
-#define __IID_DEFINED__
-
-typedef struct _IID
-{
- unsigned long x;
- unsigned short s1;
- unsigned short s2;
- unsigned char c[8];
-} IID;
-
-#endif // __IID_DEFINED__
-
-#ifndef CLSID_DEFINED
-#define CLSID_DEFINED
-typedef IID CLSID;
-#endif // CLSID_DEFINED
-
-#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
- const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
-
-#endif !_MIDL_USE_GUIDDEF_
-
-MIDL_DEFINE_GUID(IID, IID_IAccessibleHyperlink,0x01C20F2B,0x3DD2,0x400f,0x94,0x9F,0xAD,0x00,0xBD,0xAB,0x1D,0x41);
-
-#undef MIDL_DEFINE_GUID
-
-#ifdef __cplusplus
-}
-#endif
-
-
-
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleHyperlink_p.c b/src/3rdparty/iaccessible2/generated/amd64/AccessibleHyperlink_p.c
deleted file mode 100644
index 4cf0a1333c..0000000000
--- a/src/3rdparty/iaccessible2/generated/amd64/AccessibleHyperlink_p.c
+++ /dev/null
@@ -1,1113 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the proxy stub code */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:57 2012
- */
-/* Compiler settings for AccessibleHyperlink.idl:
- Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#if defined(_M_AMD64)
-
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-#if _MSC_VER >= 1200
-#pragma warning(push)
-#endif
-
-#pragma warning( disable: 4211 ) /* redefine extern to static */
-#pragma warning( disable: 4232 ) /* dllimport identity*/
-#pragma warning( disable: 4024 ) /* array to pointer mapping*/
-#pragma warning( disable: 4152 ) /* function/data pointer conversion in expression */
-
-#define USE_STUBLESS_PROXY
-
-
-/* verify that the <rpcproxy.h> version is high enough to compile this file*/
-#ifndef __REDQ_RPCPROXY_H_VERSION__
-#define __REQUIRED_RPCPROXY_H_VERSION__ 475
-#endif
-
-
-#include "rpcproxy.h"
-#ifndef __RPCPROXY_H_VERSION__
-#error this stub requires an updated version of <rpcproxy.h>
-#endif /* __RPCPROXY_H_VERSION__ */
-
-
-#include "AccessibleHyperlink.h"
-
-#define TYPE_FORMAT_STRING_SIZE 997
-#define PROC_FORMAT_STRING_SIZE 203
-#define EXPR_FORMAT_STRING_SIZE 1
-#define TRANSMIT_AS_TABLE_SIZE 0
-#define WIRE_MARSHAL_TABLE_SIZE 1
-
-typedef struct _AccessibleHyperlink_MIDL_TYPE_FORMAT_STRING
- {
- short Pad;
- unsigned char Format[ TYPE_FORMAT_STRING_SIZE ];
- } AccessibleHyperlink_MIDL_TYPE_FORMAT_STRING;
-
-typedef struct _AccessibleHyperlink_MIDL_PROC_FORMAT_STRING
- {
- short Pad;
- unsigned char Format[ PROC_FORMAT_STRING_SIZE ];
- } AccessibleHyperlink_MIDL_PROC_FORMAT_STRING;
-
-typedef struct _AccessibleHyperlink_MIDL_EXPR_FORMAT_STRING
- {
- long Pad;
- unsigned char Format[ EXPR_FORMAT_STRING_SIZE ];
- } AccessibleHyperlink_MIDL_EXPR_FORMAT_STRING;
-
-
-static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax =
-{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}};
-
-
-extern const AccessibleHyperlink_MIDL_TYPE_FORMAT_STRING AccessibleHyperlink__MIDL_TypeFormatString;
-extern const AccessibleHyperlink_MIDL_PROC_FORMAT_STRING AccessibleHyperlink__MIDL_ProcFormatString;
-extern const AccessibleHyperlink_MIDL_EXPR_FORMAT_STRING AccessibleHyperlink__MIDL_ExprFormatString;
-
-
-extern const MIDL_STUB_DESC Object_StubDesc;
-
-
-extern const MIDL_SERVER_INFO IAccessibleHyperlink_ServerInfo;
-extern const MIDL_STUBLESS_PROXY_INFO IAccessibleHyperlink_ProxyInfo;
-
-
-extern const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ];
-
-#if !defined(__RPC_WIN64__)
-#error Invalid build platform for this stub.
-#endif
-
-static const AccessibleHyperlink_MIDL_PROC_FORMAT_STRING AccessibleHyperlink__MIDL_ProcFormatString =
- {
- 0,
- {
-
- /* Procedure get_anchor */
-
- 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 2 */ NdrFcLong( 0x0 ), /* 0 */
-/* 6 */ NdrFcShort( 0x9 ), /* 9 */
-/* 8 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
-/* 10 */ NdrFcShort( 0x8 ), /* 8 */
-/* 12 */ NdrFcShort( 0x8 ), /* 8 */
-/* 14 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x3, /* 3 */
-/* 16 */ 0xa, /* 10 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 18 */ NdrFcShort( 0x1 ), /* 1 */
-/* 20 */ NdrFcShort( 0x0 ), /* 0 */
-/* 22 */ NdrFcShort( 0x0 ), /* 0 */
-/* 24 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter index */
-
-/* 26 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 28 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 30 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter anchor */
-
-/* 32 */ NdrFcShort( 0x6113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=24 */
-/* 34 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 36 */ NdrFcShort( 0x3d2 ), /* Type Offset=978 */
-
- /* Return value */
-
-/* 38 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 40 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 42 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_anchorTarget */
-
-/* 44 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 46 */ NdrFcLong( 0x0 ), /* 0 */
-/* 50 */ NdrFcShort( 0xa ), /* 10 */
-/* 52 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
-/* 54 */ NdrFcShort( 0x8 ), /* 8 */
-/* 56 */ NdrFcShort( 0x8 ), /* 8 */
-/* 58 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x3, /* 3 */
-/* 60 */ 0xa, /* 10 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 62 */ NdrFcShort( 0x1 ), /* 1 */
-/* 64 */ NdrFcShort( 0x0 ), /* 0 */
-/* 66 */ NdrFcShort( 0x0 ), /* 0 */
-/* 68 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter index */
-
-/* 70 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 72 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 74 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter anchorTarget */
-
-/* 76 */ NdrFcShort( 0x6113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=24 */
-/* 78 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 80 */ NdrFcShort( 0x3d2 ), /* Type Offset=978 */
-
- /* Return value */
-
-/* 82 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 84 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 86 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_startIndex */
-
-/* 88 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 90 */ NdrFcLong( 0x0 ), /* 0 */
-/* 94 */ NdrFcShort( 0xb ), /* 11 */
-/* 96 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 98 */ NdrFcShort( 0x0 ), /* 0 */
-/* 100 */ NdrFcShort( 0x24 ), /* 36 */
-/* 102 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 104 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 106 */ NdrFcShort( 0x0 ), /* 0 */
-/* 108 */ NdrFcShort( 0x0 ), /* 0 */
-/* 110 */ NdrFcShort( 0x0 ), /* 0 */
-/* 112 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter index */
-
-/* 114 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 116 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 118 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 120 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 122 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 124 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_endIndex */
-
-/* 126 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 128 */ NdrFcLong( 0x0 ), /* 0 */
-/* 132 */ NdrFcShort( 0xc ), /* 12 */
-/* 134 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 136 */ NdrFcShort( 0x0 ), /* 0 */
-/* 138 */ NdrFcShort( 0x24 ), /* 36 */
-/* 140 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 142 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 144 */ NdrFcShort( 0x0 ), /* 0 */
-/* 146 */ NdrFcShort( 0x0 ), /* 0 */
-/* 148 */ NdrFcShort( 0x0 ), /* 0 */
-/* 150 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter index */
-
-/* 152 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 154 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 156 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 158 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 160 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 162 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_valid */
-
-/* 164 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 166 */ NdrFcLong( 0x0 ), /* 0 */
-/* 170 */ NdrFcShort( 0xd ), /* 13 */
-/* 172 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 174 */ NdrFcShort( 0x0 ), /* 0 */
-/* 176 */ NdrFcShort( 0x21 ), /* 33 */
-/* 178 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 180 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 182 */ NdrFcShort( 0x0 ), /* 0 */
-/* 184 */ NdrFcShort( 0x0 ), /* 0 */
-/* 186 */ NdrFcShort( 0x0 ), /* 0 */
-/* 188 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter valid */
-
-/* 190 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 192 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 194 */ 0x3, /* FC_SMALL */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 196 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 198 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 200 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- 0x0
- }
- };
-
-static const AccessibleHyperlink_MIDL_TYPE_FORMAT_STRING AccessibleHyperlink__MIDL_TypeFormatString =
- {
- 0,
- {
- NdrFcShort( 0x0 ), /* 0 */
-/* 2 */
- 0x11, 0x4, /* FC_RP [alloced_on_stack] */
-/* 4 */ NdrFcShort( 0x3ce ), /* Offset= 974 (978) */
-/* 6 */
- 0x13, 0x0, /* FC_OP */
-/* 8 */ NdrFcShort( 0x3b6 ), /* Offset= 950 (958) */
-/* 10 */
- 0x2b, /* FC_NON_ENCAPSULATED_UNION */
- 0x9, /* FC_ULONG */
-/* 12 */ 0x7, /* Corr desc: FC_USHORT */
- 0x0, /* */
-/* 14 */ NdrFcShort( 0xfff8 ), /* -8 */
-/* 16 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 18 */ NdrFcShort( 0x2 ), /* Offset= 2 (20) */
-/* 20 */ NdrFcShort( 0x10 ), /* 16 */
-/* 22 */ NdrFcShort( 0x2f ), /* 47 */
-/* 24 */ NdrFcLong( 0x14 ), /* 20 */
-/* 28 */ NdrFcShort( 0x800b ), /* Simple arm type: FC_HYPER */
-/* 30 */ NdrFcLong( 0x3 ), /* 3 */
-/* 34 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
-/* 36 */ NdrFcLong( 0x11 ), /* 17 */
-/* 40 */ NdrFcShort( 0x8001 ), /* Simple arm type: FC_BYTE */
-/* 42 */ NdrFcLong( 0x2 ), /* 2 */
-/* 46 */ NdrFcShort( 0x8006 ), /* Simple arm type: FC_SHORT */
-/* 48 */ NdrFcLong( 0x4 ), /* 4 */
-/* 52 */ NdrFcShort( 0x800a ), /* Simple arm type: FC_FLOAT */
-/* 54 */ NdrFcLong( 0x5 ), /* 5 */
-/* 58 */ NdrFcShort( 0x800c ), /* Simple arm type: FC_DOUBLE */
-/* 60 */ NdrFcLong( 0xb ), /* 11 */
-/* 64 */ NdrFcShort( 0x8006 ), /* Simple arm type: FC_SHORT */
-/* 66 */ NdrFcLong( 0xa ), /* 10 */
-/* 70 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
-/* 72 */ NdrFcLong( 0x6 ), /* 6 */
-/* 76 */ NdrFcShort( 0xe8 ), /* Offset= 232 (308) */
-/* 78 */ NdrFcLong( 0x7 ), /* 7 */
-/* 82 */ NdrFcShort( 0x800c ), /* Simple arm type: FC_DOUBLE */
-/* 84 */ NdrFcLong( 0x8 ), /* 8 */
-/* 88 */ NdrFcShort( 0xe2 ), /* Offset= 226 (314) */
-/* 90 */ NdrFcLong( 0xd ), /* 13 */
-/* 94 */ NdrFcShort( 0xf6 ), /* Offset= 246 (340) */
-/* 96 */ NdrFcLong( 0x9 ), /* 9 */
-/* 100 */ NdrFcShort( 0x102 ), /* Offset= 258 (358) */
-/* 102 */ NdrFcLong( 0x2000 ), /* 8192 */
-/* 106 */ NdrFcShort( 0x10e ), /* Offset= 270 (376) */
-/* 108 */ NdrFcLong( 0x24 ), /* 36 */
-/* 112 */ NdrFcShort( 0x304 ), /* Offset= 772 (884) */
-/* 114 */ NdrFcLong( 0x4024 ), /* 16420 */
-/* 118 */ NdrFcShort( 0x2fe ), /* Offset= 766 (884) */
-/* 120 */ NdrFcLong( 0x4011 ), /* 16401 */
-/* 124 */ NdrFcShort( 0x2fc ), /* Offset= 764 (888) */
-/* 126 */ NdrFcLong( 0x4002 ), /* 16386 */
-/* 130 */ NdrFcShort( 0x2fa ), /* Offset= 762 (892) */
-/* 132 */ NdrFcLong( 0x4003 ), /* 16387 */
-/* 136 */ NdrFcShort( 0x2f8 ), /* Offset= 760 (896) */
-/* 138 */ NdrFcLong( 0x4014 ), /* 16404 */
-/* 142 */ NdrFcShort( 0x2f6 ), /* Offset= 758 (900) */
-/* 144 */ NdrFcLong( 0x4004 ), /* 16388 */
-/* 148 */ NdrFcShort( 0x2f4 ), /* Offset= 756 (904) */
-/* 150 */ NdrFcLong( 0x4005 ), /* 16389 */
-/* 154 */ NdrFcShort( 0x2f2 ), /* Offset= 754 (908) */
-/* 156 */ NdrFcLong( 0x400b ), /* 16395 */
-/* 160 */ NdrFcShort( 0x2dc ), /* Offset= 732 (892) */
-/* 162 */ NdrFcLong( 0x400a ), /* 16394 */
-/* 166 */ NdrFcShort( 0x2da ), /* Offset= 730 (896) */
-/* 168 */ NdrFcLong( 0x4006 ), /* 16390 */
-/* 172 */ NdrFcShort( 0x2e4 ), /* Offset= 740 (912) */
-/* 174 */ NdrFcLong( 0x4007 ), /* 16391 */
-/* 178 */ NdrFcShort( 0x2da ), /* Offset= 730 (908) */
-/* 180 */ NdrFcLong( 0x4008 ), /* 16392 */
-/* 184 */ NdrFcShort( 0x2dc ), /* Offset= 732 (916) */
-/* 186 */ NdrFcLong( 0x400d ), /* 16397 */
-/* 190 */ NdrFcShort( 0x2da ), /* Offset= 730 (920) */
-/* 192 */ NdrFcLong( 0x4009 ), /* 16393 */
-/* 196 */ NdrFcShort( 0x2d8 ), /* Offset= 728 (924) */
-/* 198 */ NdrFcLong( 0x6000 ), /* 24576 */
-/* 202 */ NdrFcShort( 0x2d6 ), /* Offset= 726 (928) */
-/* 204 */ NdrFcLong( 0x400c ), /* 16396 */
-/* 208 */ NdrFcShort( 0x2d4 ), /* Offset= 724 (932) */
-/* 210 */ NdrFcLong( 0x10 ), /* 16 */
-/* 214 */ NdrFcShort( 0x8002 ), /* Simple arm type: FC_CHAR */
-/* 216 */ NdrFcLong( 0x12 ), /* 18 */
-/* 220 */ NdrFcShort( 0x8006 ), /* Simple arm type: FC_SHORT */
-/* 222 */ NdrFcLong( 0x13 ), /* 19 */
-/* 226 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
-/* 228 */ NdrFcLong( 0x15 ), /* 21 */
-/* 232 */ NdrFcShort( 0x800b ), /* Simple arm type: FC_HYPER */
-/* 234 */ NdrFcLong( 0x16 ), /* 22 */
-/* 238 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
-/* 240 */ NdrFcLong( 0x17 ), /* 23 */
-/* 244 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
-/* 246 */ NdrFcLong( 0xe ), /* 14 */
-/* 250 */ NdrFcShort( 0x2b2 ), /* Offset= 690 (940) */
-/* 252 */ NdrFcLong( 0x400e ), /* 16398 */
-/* 256 */ NdrFcShort( 0x2b6 ), /* Offset= 694 (950) */
-/* 258 */ NdrFcLong( 0x4010 ), /* 16400 */
-/* 262 */ NdrFcShort( 0x2b4 ), /* Offset= 692 (954) */
-/* 264 */ NdrFcLong( 0x4012 ), /* 16402 */
-/* 268 */ NdrFcShort( 0x270 ), /* Offset= 624 (892) */
-/* 270 */ NdrFcLong( 0x4013 ), /* 16403 */
-/* 274 */ NdrFcShort( 0x26e ), /* Offset= 622 (896) */
-/* 276 */ NdrFcLong( 0x4015 ), /* 16405 */
-/* 280 */ NdrFcShort( 0x26c ), /* Offset= 620 (900) */
-/* 282 */ NdrFcLong( 0x4016 ), /* 16406 */
-/* 286 */ NdrFcShort( 0x262 ), /* Offset= 610 (896) */
-/* 288 */ NdrFcLong( 0x4017 ), /* 16407 */
-/* 292 */ NdrFcShort( 0x25c ), /* Offset= 604 (896) */
-/* 294 */ NdrFcLong( 0x0 ), /* 0 */
-/* 298 */ NdrFcShort( 0x0 ), /* Offset= 0 (298) */
-/* 300 */ NdrFcLong( 0x1 ), /* 1 */
-/* 304 */ NdrFcShort( 0x0 ), /* Offset= 0 (304) */
-/* 306 */ NdrFcShort( 0xffff ), /* Offset= -1 (305) */
-/* 308 */
- 0x15, /* FC_STRUCT */
- 0x7, /* 7 */
-/* 310 */ NdrFcShort( 0x8 ), /* 8 */
-/* 312 */ 0xb, /* FC_HYPER */
- 0x5b, /* FC_END */
-/* 314 */
- 0x13, 0x0, /* FC_OP */
-/* 316 */ NdrFcShort( 0xe ), /* Offset= 14 (330) */
-/* 318 */
- 0x1b, /* FC_CARRAY */
- 0x1, /* 1 */
-/* 320 */ NdrFcShort( 0x2 ), /* 2 */
-/* 322 */ 0x9, /* Corr desc: FC_ULONG */
- 0x0, /* */
-/* 324 */ NdrFcShort( 0xfffc ), /* -4 */
-/* 326 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 328 */ 0x6, /* FC_SHORT */
- 0x5b, /* FC_END */
-/* 330 */
- 0x17, /* FC_CSTRUCT */
- 0x3, /* 3 */
-/* 332 */ NdrFcShort( 0x8 ), /* 8 */
-/* 334 */ NdrFcShort( 0xfff0 ), /* Offset= -16 (318) */
-/* 336 */ 0x8, /* FC_LONG */
- 0x8, /* FC_LONG */
-/* 338 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-/* 340 */
- 0x2f, /* FC_IP */
- 0x5a, /* FC_CONSTANT_IID */
-/* 342 */ NdrFcLong( 0x0 ), /* 0 */
-/* 346 */ NdrFcShort( 0x0 ), /* 0 */
-/* 348 */ NdrFcShort( 0x0 ), /* 0 */
-/* 350 */ 0xc0, /* 192 */
- 0x0, /* 0 */
-/* 352 */ 0x0, /* 0 */
- 0x0, /* 0 */
-/* 354 */ 0x0, /* 0 */
- 0x0, /* 0 */
-/* 356 */ 0x0, /* 0 */
- 0x46, /* 70 */
-/* 358 */
- 0x2f, /* FC_IP */
- 0x5a, /* FC_CONSTANT_IID */
-/* 360 */ NdrFcLong( 0x20400 ), /* 132096 */
-/* 364 */ NdrFcShort( 0x0 ), /* 0 */
-/* 366 */ NdrFcShort( 0x0 ), /* 0 */
-/* 368 */ 0xc0, /* 192 */
- 0x0, /* 0 */
-/* 370 */ 0x0, /* 0 */
- 0x0, /* 0 */
-/* 372 */ 0x0, /* 0 */
- 0x0, /* 0 */
-/* 374 */ 0x0, /* 0 */
- 0x46, /* 70 */
-/* 376 */
- 0x13, 0x10, /* FC_OP [pointer_deref] */
-/* 378 */ NdrFcShort( 0x2 ), /* Offset= 2 (380) */
-/* 380 */
- 0x13, 0x0, /* FC_OP */
-/* 382 */ NdrFcShort( 0x1e4 ), /* Offset= 484 (866) */
-/* 384 */
- 0x2a, /* FC_ENCAPSULATED_UNION */
- 0x89, /* 137 */
-/* 386 */ NdrFcShort( 0x20 ), /* 32 */
-/* 388 */ NdrFcShort( 0xa ), /* 10 */
-/* 390 */ NdrFcLong( 0x8 ), /* 8 */
-/* 394 */ NdrFcShort( 0x50 ), /* Offset= 80 (474) */
-/* 396 */ NdrFcLong( 0xd ), /* 13 */
-/* 400 */ NdrFcShort( 0x70 ), /* Offset= 112 (512) */
-/* 402 */ NdrFcLong( 0x9 ), /* 9 */
-/* 406 */ NdrFcShort( 0x90 ), /* Offset= 144 (550) */
-/* 408 */ NdrFcLong( 0xc ), /* 12 */
-/* 412 */ NdrFcShort( 0xb0 ), /* Offset= 176 (588) */
-/* 414 */ NdrFcLong( 0x24 ), /* 36 */
-/* 418 */ NdrFcShort( 0x102 ), /* Offset= 258 (676) */
-/* 420 */ NdrFcLong( 0x800d ), /* 32781 */
-/* 424 */ NdrFcShort( 0x11e ), /* Offset= 286 (710) */
-/* 426 */ NdrFcLong( 0x10 ), /* 16 */
-/* 430 */ NdrFcShort( 0x138 ), /* Offset= 312 (742) */
-/* 432 */ NdrFcLong( 0x2 ), /* 2 */
-/* 436 */ NdrFcShort( 0x14e ), /* Offset= 334 (770) */
-/* 438 */ NdrFcLong( 0x3 ), /* 3 */
-/* 442 */ NdrFcShort( 0x164 ), /* Offset= 356 (798) */
-/* 444 */ NdrFcLong( 0x14 ), /* 20 */
-/* 448 */ NdrFcShort( 0x17a ), /* Offset= 378 (826) */
-/* 450 */ NdrFcShort( 0xffff ), /* Offset= -1 (449) */
-/* 452 */
- 0x21, /* FC_BOGUS_ARRAY */
- 0x3, /* 3 */
-/* 454 */ NdrFcShort( 0x0 ), /* 0 */
-/* 456 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
- 0x0, /* */
-/* 458 */ NdrFcShort( 0x0 ), /* 0 */
-/* 460 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 462 */ NdrFcLong( 0xffffffff ), /* -1 */
-/* 466 */ NdrFcShort( 0x0 ), /* Corr flags: */
-/* 468 */
- 0x13, 0x0, /* FC_OP */
-/* 470 */ NdrFcShort( 0xff74 ), /* Offset= -140 (330) */
-/* 472 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-/* 474 */
- 0x1a, /* FC_BOGUS_STRUCT */
- 0x3, /* 3 */
-/* 476 */ NdrFcShort( 0x10 ), /* 16 */
-/* 478 */ NdrFcShort( 0x0 ), /* 0 */
-/* 480 */ NdrFcShort( 0x6 ), /* Offset= 6 (486) */
-/* 482 */ 0x8, /* FC_LONG */
- 0x40, /* FC_STRUCTPAD4 */
-/* 484 */ 0x36, /* FC_POINTER */
- 0x5b, /* FC_END */
-/* 486 */
- 0x11, 0x0, /* FC_RP */
-/* 488 */ NdrFcShort( 0xffdc ), /* Offset= -36 (452) */
-/* 490 */
- 0x21, /* FC_BOGUS_ARRAY */
- 0x3, /* 3 */
-/* 492 */ NdrFcShort( 0x0 ), /* 0 */
-/* 494 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
- 0x0, /* */
-/* 496 */ NdrFcShort( 0x0 ), /* 0 */
-/* 498 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 500 */ NdrFcLong( 0xffffffff ), /* -1 */
-/* 504 */ NdrFcShort( 0x0 ), /* Corr flags: */
-/* 506 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
- 0x0, /* 0 */
-/* 508 */ NdrFcShort( 0xff58 ), /* Offset= -168 (340) */
-/* 510 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-/* 512 */
- 0x1a, /* FC_BOGUS_STRUCT */
- 0x3, /* 3 */
-/* 514 */ NdrFcShort( 0x10 ), /* 16 */
-/* 516 */ NdrFcShort( 0x0 ), /* 0 */
-/* 518 */ NdrFcShort( 0x6 ), /* Offset= 6 (524) */
-/* 520 */ 0x8, /* FC_LONG */
- 0x40, /* FC_STRUCTPAD4 */
-/* 522 */ 0x36, /* FC_POINTER */
- 0x5b, /* FC_END */
-/* 524 */
- 0x11, 0x0, /* FC_RP */
-/* 526 */ NdrFcShort( 0xffdc ), /* Offset= -36 (490) */
-/* 528 */
- 0x21, /* FC_BOGUS_ARRAY */
- 0x3, /* 3 */
-/* 530 */ NdrFcShort( 0x0 ), /* 0 */
-/* 532 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
- 0x0, /* */
-/* 534 */ NdrFcShort( 0x0 ), /* 0 */
-/* 536 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 538 */ NdrFcLong( 0xffffffff ), /* -1 */
-/* 542 */ NdrFcShort( 0x0 ), /* Corr flags: */
-/* 544 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
- 0x0, /* 0 */
-/* 546 */ NdrFcShort( 0xff44 ), /* Offset= -188 (358) */
-/* 548 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-/* 550 */
- 0x1a, /* FC_BOGUS_STRUCT */
- 0x3, /* 3 */
-/* 552 */ NdrFcShort( 0x10 ), /* 16 */
-/* 554 */ NdrFcShort( 0x0 ), /* 0 */
-/* 556 */ NdrFcShort( 0x6 ), /* Offset= 6 (562) */
-/* 558 */ 0x8, /* FC_LONG */
- 0x40, /* FC_STRUCTPAD4 */
-/* 560 */ 0x36, /* FC_POINTER */
- 0x5b, /* FC_END */
-/* 562 */
- 0x11, 0x0, /* FC_RP */
-/* 564 */ NdrFcShort( 0xffdc ), /* Offset= -36 (528) */
-/* 566 */
- 0x21, /* FC_BOGUS_ARRAY */
- 0x3, /* 3 */
-/* 568 */ NdrFcShort( 0x0 ), /* 0 */
-/* 570 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
- 0x0, /* */
-/* 572 */ NdrFcShort( 0x0 ), /* 0 */
-/* 574 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 576 */ NdrFcLong( 0xffffffff ), /* -1 */
-/* 580 */ NdrFcShort( 0x0 ), /* Corr flags: */
-/* 582 */
- 0x13, 0x0, /* FC_OP */
-/* 584 */ NdrFcShort( 0x176 ), /* Offset= 374 (958) */
-/* 586 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-/* 588 */
- 0x1a, /* FC_BOGUS_STRUCT */
- 0x3, /* 3 */
-/* 590 */ NdrFcShort( 0x10 ), /* 16 */
-/* 592 */ NdrFcShort( 0x0 ), /* 0 */
-/* 594 */ NdrFcShort( 0x6 ), /* Offset= 6 (600) */
-/* 596 */ 0x8, /* FC_LONG */
- 0x40, /* FC_STRUCTPAD4 */
-/* 598 */ 0x36, /* FC_POINTER */
- 0x5b, /* FC_END */
-/* 600 */
- 0x11, 0x0, /* FC_RP */
-/* 602 */ NdrFcShort( 0xffdc ), /* Offset= -36 (566) */
-/* 604 */
- 0x2f, /* FC_IP */
- 0x5a, /* FC_CONSTANT_IID */
-/* 606 */ NdrFcLong( 0x2f ), /* 47 */
-/* 610 */ NdrFcShort( 0x0 ), /* 0 */
-/* 612 */ NdrFcShort( 0x0 ), /* 0 */
-/* 614 */ 0xc0, /* 192 */
- 0x0, /* 0 */
-/* 616 */ 0x0, /* 0 */
- 0x0, /* 0 */
-/* 618 */ 0x0, /* 0 */
- 0x0, /* 0 */
-/* 620 */ 0x0, /* 0 */
- 0x46, /* 70 */
-/* 622 */
- 0x1b, /* FC_CARRAY */
- 0x0, /* 0 */
-/* 624 */ NdrFcShort( 0x1 ), /* 1 */
-/* 626 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
- 0x0, /* */
-/* 628 */ NdrFcShort( 0x4 ), /* 4 */
-/* 630 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 632 */ 0x1, /* FC_BYTE */
- 0x5b, /* FC_END */
-/* 634 */
- 0x1a, /* FC_BOGUS_STRUCT */
- 0x3, /* 3 */
-/* 636 */ NdrFcShort( 0x18 ), /* 24 */
-/* 638 */ NdrFcShort( 0x0 ), /* 0 */
-/* 640 */ NdrFcShort( 0xa ), /* Offset= 10 (650) */
-/* 642 */ 0x8, /* FC_LONG */
- 0x8, /* FC_LONG */
-/* 644 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
- 0x0, /* 0 */
-/* 646 */ NdrFcShort( 0xffd6 ), /* Offset= -42 (604) */
-/* 648 */ 0x36, /* FC_POINTER */
- 0x5b, /* FC_END */
-/* 650 */
- 0x13, 0x0, /* FC_OP */
-/* 652 */ NdrFcShort( 0xffe2 ), /* Offset= -30 (622) */
-/* 654 */
- 0x21, /* FC_BOGUS_ARRAY */
- 0x3, /* 3 */
-/* 656 */ NdrFcShort( 0x0 ), /* 0 */
-/* 658 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
- 0x0, /* */
-/* 660 */ NdrFcShort( 0x0 ), /* 0 */
-/* 662 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 664 */ NdrFcLong( 0xffffffff ), /* -1 */
-/* 668 */ NdrFcShort( 0x0 ), /* Corr flags: */
-/* 670 */
- 0x13, 0x0, /* FC_OP */
-/* 672 */ NdrFcShort( 0xffda ), /* Offset= -38 (634) */
-/* 674 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-/* 676 */
- 0x1a, /* FC_BOGUS_STRUCT */
- 0x3, /* 3 */
-/* 678 */ NdrFcShort( 0x10 ), /* 16 */
-/* 680 */ NdrFcShort( 0x0 ), /* 0 */
-/* 682 */ NdrFcShort( 0x6 ), /* Offset= 6 (688) */
-/* 684 */ 0x8, /* FC_LONG */
- 0x40, /* FC_STRUCTPAD4 */
-/* 686 */ 0x36, /* FC_POINTER */
- 0x5b, /* FC_END */
-/* 688 */
- 0x11, 0x0, /* FC_RP */
-/* 690 */ NdrFcShort( 0xffdc ), /* Offset= -36 (654) */
-/* 692 */
- 0x1d, /* FC_SMFARRAY */
- 0x0, /* 0 */
-/* 694 */ NdrFcShort( 0x8 ), /* 8 */
-/* 696 */ 0x1, /* FC_BYTE */
- 0x5b, /* FC_END */
-/* 698 */
- 0x15, /* FC_STRUCT */
- 0x3, /* 3 */
-/* 700 */ NdrFcShort( 0x10 ), /* 16 */
-/* 702 */ 0x8, /* FC_LONG */
- 0x6, /* FC_SHORT */
-/* 704 */ 0x6, /* FC_SHORT */
- 0x4c, /* FC_EMBEDDED_COMPLEX */
-/* 706 */ 0x0, /* 0 */
- NdrFcShort( 0xfff1 ), /* Offset= -15 (692) */
- 0x5b, /* FC_END */
-/* 710 */
- 0x1a, /* FC_BOGUS_STRUCT */
- 0x3, /* 3 */
-/* 712 */ NdrFcShort( 0x20 ), /* 32 */
-/* 714 */ NdrFcShort( 0x0 ), /* 0 */
-/* 716 */ NdrFcShort( 0xa ), /* Offset= 10 (726) */
-/* 718 */ 0x8, /* FC_LONG */
- 0x40, /* FC_STRUCTPAD4 */
-/* 720 */ 0x36, /* FC_POINTER */
- 0x4c, /* FC_EMBEDDED_COMPLEX */
-/* 722 */ 0x0, /* 0 */
- NdrFcShort( 0xffe7 ), /* Offset= -25 (698) */
- 0x5b, /* FC_END */
-/* 726 */
- 0x11, 0x0, /* FC_RP */
-/* 728 */ NdrFcShort( 0xff12 ), /* Offset= -238 (490) */
-/* 730 */
- 0x1b, /* FC_CARRAY */
- 0x0, /* 0 */
-/* 732 */ NdrFcShort( 0x1 ), /* 1 */
-/* 734 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
- 0x0, /* */
-/* 736 */ NdrFcShort( 0x0 ), /* 0 */
-/* 738 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 740 */ 0x1, /* FC_BYTE */
- 0x5b, /* FC_END */
-/* 742 */
- 0x1a, /* FC_BOGUS_STRUCT */
- 0x3, /* 3 */
-/* 744 */ NdrFcShort( 0x10 ), /* 16 */
-/* 746 */ NdrFcShort( 0x0 ), /* 0 */
-/* 748 */ NdrFcShort( 0x6 ), /* Offset= 6 (754) */
-/* 750 */ 0x8, /* FC_LONG */
- 0x40, /* FC_STRUCTPAD4 */
-/* 752 */ 0x36, /* FC_POINTER */
- 0x5b, /* FC_END */
-/* 754 */
- 0x13, 0x0, /* FC_OP */
-/* 756 */ NdrFcShort( 0xffe6 ), /* Offset= -26 (730) */
-/* 758 */
- 0x1b, /* FC_CARRAY */
- 0x1, /* 1 */
-/* 760 */ NdrFcShort( 0x2 ), /* 2 */
-/* 762 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
- 0x0, /* */
-/* 764 */ NdrFcShort( 0x0 ), /* 0 */
-/* 766 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 768 */ 0x6, /* FC_SHORT */
- 0x5b, /* FC_END */
-/* 770 */
- 0x1a, /* FC_BOGUS_STRUCT */
- 0x3, /* 3 */
-/* 772 */ NdrFcShort( 0x10 ), /* 16 */
-/* 774 */ NdrFcShort( 0x0 ), /* 0 */
-/* 776 */ NdrFcShort( 0x6 ), /* Offset= 6 (782) */
-/* 778 */ 0x8, /* FC_LONG */
- 0x40, /* FC_STRUCTPAD4 */
-/* 780 */ 0x36, /* FC_POINTER */
- 0x5b, /* FC_END */
-/* 782 */
- 0x13, 0x0, /* FC_OP */
-/* 784 */ NdrFcShort( 0xffe6 ), /* Offset= -26 (758) */
-/* 786 */
- 0x1b, /* FC_CARRAY */
- 0x3, /* 3 */
-/* 788 */ NdrFcShort( 0x4 ), /* 4 */
-/* 790 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
- 0x0, /* */
-/* 792 */ NdrFcShort( 0x0 ), /* 0 */
-/* 794 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 796 */ 0x8, /* FC_LONG */
- 0x5b, /* FC_END */
-/* 798 */
- 0x1a, /* FC_BOGUS_STRUCT */
- 0x3, /* 3 */
-/* 800 */ NdrFcShort( 0x10 ), /* 16 */
-/* 802 */ NdrFcShort( 0x0 ), /* 0 */
-/* 804 */ NdrFcShort( 0x6 ), /* Offset= 6 (810) */
-/* 806 */ 0x8, /* FC_LONG */
- 0x40, /* FC_STRUCTPAD4 */
-/* 808 */ 0x36, /* FC_POINTER */
- 0x5b, /* FC_END */
-/* 810 */
- 0x13, 0x0, /* FC_OP */
-/* 812 */ NdrFcShort( 0xffe6 ), /* Offset= -26 (786) */
-/* 814 */
- 0x1b, /* FC_CARRAY */
- 0x7, /* 7 */
-/* 816 */ NdrFcShort( 0x8 ), /* 8 */
-/* 818 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
- 0x0, /* */
-/* 820 */ NdrFcShort( 0x0 ), /* 0 */
-/* 822 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 824 */ 0xb, /* FC_HYPER */
- 0x5b, /* FC_END */
-/* 826 */
- 0x1a, /* FC_BOGUS_STRUCT */
- 0x3, /* 3 */
-/* 828 */ NdrFcShort( 0x10 ), /* 16 */
-/* 830 */ NdrFcShort( 0x0 ), /* 0 */
-/* 832 */ NdrFcShort( 0x6 ), /* Offset= 6 (838) */
-/* 834 */ 0x8, /* FC_LONG */
- 0x40, /* FC_STRUCTPAD4 */
-/* 836 */ 0x36, /* FC_POINTER */
- 0x5b, /* FC_END */
-/* 838 */
- 0x13, 0x0, /* FC_OP */
-/* 840 */ NdrFcShort( 0xffe6 ), /* Offset= -26 (814) */
-/* 842 */
- 0x15, /* FC_STRUCT */
- 0x3, /* 3 */
-/* 844 */ NdrFcShort( 0x8 ), /* 8 */
-/* 846 */ 0x8, /* FC_LONG */
- 0x8, /* FC_LONG */
-/* 848 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-/* 850 */
- 0x1b, /* FC_CARRAY */
- 0x3, /* 3 */
-/* 852 */ NdrFcShort( 0x8 ), /* 8 */
-/* 854 */ 0x7, /* Corr desc: FC_USHORT */
- 0x0, /* */
-/* 856 */ NdrFcShort( 0xffc8 ), /* -56 */
-/* 858 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 860 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
- 0x0, /* 0 */
-/* 862 */ NdrFcShort( 0xffec ), /* Offset= -20 (842) */
-/* 864 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-/* 866 */
- 0x1a, /* FC_BOGUS_STRUCT */
- 0x3, /* 3 */
-/* 868 */ NdrFcShort( 0x38 ), /* 56 */
-/* 870 */ NdrFcShort( 0xffec ), /* Offset= -20 (850) */
-/* 872 */ NdrFcShort( 0x0 ), /* Offset= 0 (872) */
-/* 874 */ 0x6, /* FC_SHORT */
- 0x6, /* FC_SHORT */
-/* 876 */ 0x8, /* FC_LONG */
- 0x8, /* FC_LONG */
-/* 878 */ 0x40, /* FC_STRUCTPAD4 */
- 0x4c, /* FC_EMBEDDED_COMPLEX */
-/* 880 */ 0x0, /* 0 */
- NdrFcShort( 0xfe0f ), /* Offset= -497 (384) */
- 0x5b, /* FC_END */
-/* 884 */
- 0x13, 0x0, /* FC_OP */
-/* 886 */ NdrFcShort( 0xff04 ), /* Offset= -252 (634) */
-/* 888 */
- 0x13, 0x8, /* FC_OP [simple_pointer] */
-/* 890 */ 0x1, /* FC_BYTE */
- 0x5c, /* FC_PAD */
-/* 892 */
- 0x13, 0x8, /* FC_OP [simple_pointer] */
-/* 894 */ 0x6, /* FC_SHORT */
- 0x5c, /* FC_PAD */
-/* 896 */
- 0x13, 0x8, /* FC_OP [simple_pointer] */
-/* 898 */ 0x8, /* FC_LONG */
- 0x5c, /* FC_PAD */
-/* 900 */
- 0x13, 0x8, /* FC_OP [simple_pointer] */
-/* 902 */ 0xb, /* FC_HYPER */
- 0x5c, /* FC_PAD */
-/* 904 */
- 0x13, 0x8, /* FC_OP [simple_pointer] */
-/* 906 */ 0xa, /* FC_FLOAT */
- 0x5c, /* FC_PAD */
-/* 908 */
- 0x13, 0x8, /* FC_OP [simple_pointer] */
-/* 910 */ 0xc, /* FC_DOUBLE */
- 0x5c, /* FC_PAD */
-/* 912 */
- 0x13, 0x0, /* FC_OP */
-/* 914 */ NdrFcShort( 0xfda2 ), /* Offset= -606 (308) */
-/* 916 */
- 0x13, 0x10, /* FC_OP [pointer_deref] */
-/* 918 */ NdrFcShort( 0xfda4 ), /* Offset= -604 (314) */
-/* 920 */
- 0x13, 0x10, /* FC_OP [pointer_deref] */
-/* 922 */ NdrFcShort( 0xfdba ), /* Offset= -582 (340) */
-/* 924 */
- 0x13, 0x10, /* FC_OP [pointer_deref] */
-/* 926 */ NdrFcShort( 0xfdc8 ), /* Offset= -568 (358) */
-/* 928 */
- 0x13, 0x10, /* FC_OP [pointer_deref] */
-/* 930 */ NdrFcShort( 0xfdd6 ), /* Offset= -554 (376) */
-/* 932 */
- 0x13, 0x10, /* FC_OP [pointer_deref] */
-/* 934 */ NdrFcShort( 0x2 ), /* Offset= 2 (936) */
-/* 936 */
- 0x13, 0x0, /* FC_OP */
-/* 938 */ NdrFcShort( 0x14 ), /* Offset= 20 (958) */
-/* 940 */
- 0x15, /* FC_STRUCT */
- 0x7, /* 7 */
-/* 942 */ NdrFcShort( 0x10 ), /* 16 */
-/* 944 */ 0x6, /* FC_SHORT */
- 0x1, /* FC_BYTE */
-/* 946 */ 0x1, /* FC_BYTE */
- 0x8, /* FC_LONG */
-/* 948 */ 0xb, /* FC_HYPER */
- 0x5b, /* FC_END */
-/* 950 */
- 0x13, 0x0, /* FC_OP */
-/* 952 */ NdrFcShort( 0xfff4 ), /* Offset= -12 (940) */
-/* 954 */
- 0x13, 0x8, /* FC_OP [simple_pointer] */
-/* 956 */ 0x2, /* FC_CHAR */
- 0x5c, /* FC_PAD */
-/* 958 */
- 0x1a, /* FC_BOGUS_STRUCT */
- 0x7, /* 7 */
-/* 960 */ NdrFcShort( 0x20 ), /* 32 */
-/* 962 */ NdrFcShort( 0x0 ), /* 0 */
-/* 964 */ NdrFcShort( 0x0 ), /* Offset= 0 (964) */
-/* 966 */ 0x8, /* FC_LONG */
- 0x8, /* FC_LONG */
-/* 968 */ 0x6, /* FC_SHORT */
- 0x6, /* FC_SHORT */
-/* 970 */ 0x6, /* FC_SHORT */
- 0x6, /* FC_SHORT */
-/* 972 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
- 0x0, /* 0 */
-/* 974 */ NdrFcShort( 0xfc3c ), /* Offset= -964 (10) */
-/* 976 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-/* 978 */ 0xb4, /* FC_USER_MARSHAL */
- 0x83, /* 131 */
-/* 980 */ NdrFcShort( 0x0 ), /* 0 */
-/* 982 */ NdrFcShort( 0x18 ), /* 24 */
-/* 984 */ NdrFcShort( 0x0 ), /* 0 */
-/* 986 */ NdrFcShort( 0xfc2c ), /* Offset= -980 (6) */
-/* 988 */
- 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
-/* 990 */ 0x8, /* FC_LONG */
- 0x5c, /* FC_PAD */
-/* 992 */
- 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
-/* 994 */ 0x3, /* FC_SMALL */
- 0x5c, /* FC_PAD */
-
- 0x0
- }
- };
-
-static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] =
- {
-
- {
- VARIANT_UserSize
- ,VARIANT_UserMarshal
- ,VARIANT_UserUnmarshal
- ,VARIANT_UserFree
- }
-
- };
-
-
-
-/* Object interface: IUnknown, ver. 0.0,
- GUID={0x00000000,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
-
-
-/* Object interface: IAccessibleAction, ver. 0.0,
- GUID={0xB70D9F59,0x3B5A,0x4dba,{0xAB,0x9E,0x22,0x01,0x2F,0x60,0x7D,0xF5}} */
-
-
-/* Object interface: IAccessibleHyperlink, ver. 0.0,
- GUID={0x01C20F2B,0x3DD2,0x400f,{0x94,0x9F,0xAD,0x00,0xBD,0xAB,0x1D,0x41}} */
-
-#pragma code_seg(".orpc")
-static const unsigned short IAccessibleHyperlink_FormatStringOffsetTable[] =
- {
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- 0,
- 44,
- 88,
- 126,
- 164
- };
-
-static const MIDL_STUBLESS_PROXY_INFO IAccessibleHyperlink_ProxyInfo =
- {
- &Object_StubDesc,
- AccessibleHyperlink__MIDL_ProcFormatString.Format,
- &IAccessibleHyperlink_FormatStringOffsetTable[-3],
- 0,
- 0,
- 0
- };
-
-
-static const MIDL_SERVER_INFO IAccessibleHyperlink_ServerInfo =
- {
- &Object_StubDesc,
- 0,
- AccessibleHyperlink__MIDL_ProcFormatString.Format,
- &IAccessibleHyperlink_FormatStringOffsetTable[-3],
- 0,
- 0,
- 0,
- 0};
-CINTERFACE_PROXY_VTABLE(14) _IAccessibleHyperlinkProxyVtbl =
-{
- &IAccessibleHyperlink_ProxyInfo,
- &IID_IAccessibleHyperlink,
- IUnknown_QueryInterface_Proxy,
- IUnknown_AddRef_Proxy,
- IUnknown_Release_Proxy ,
- 0 /* IAccessibleAction::nActions */ ,
- 0 /* IAccessibleAction::doAction */ ,
- 0 /* IAccessibleAction::get_description */ ,
- 0 /* IAccessibleAction::get_keyBinding */ ,
- 0 /* IAccessibleAction::get_name */ ,
- 0 /* IAccessibleAction::get_localizedName */ ,
- (void *) (INT_PTR) -1 /* IAccessibleHyperlink::get_anchor */ ,
- (void *) (INT_PTR) -1 /* IAccessibleHyperlink::get_anchorTarget */ ,
- (void *) (INT_PTR) -1 /* IAccessibleHyperlink::get_startIndex */ ,
- (void *) (INT_PTR) -1 /* IAccessibleHyperlink::get_endIndex */ ,
- (void *) (INT_PTR) -1 /* IAccessibleHyperlink::get_valid */
-};
-
-
-static const PRPC_STUB_FUNCTION IAccessibleHyperlink_table[] =
-{
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- NdrStubCall2,
- NdrStubCall2,
- NdrStubCall2,
- NdrStubCall2,
- NdrStubCall2
-};
-
-CInterfaceStubVtbl _IAccessibleHyperlinkStubVtbl =
-{
- &IID_IAccessibleHyperlink,
- &IAccessibleHyperlink_ServerInfo,
- 14,
- &IAccessibleHyperlink_table[-3],
- CStdStubBuffer_DELEGATING_METHODS
-};
-
-static const MIDL_STUB_DESC Object_StubDesc =
- {
- 0,
- NdrOleAllocate,
- NdrOleFree,
- 0,
- 0,
- 0,
- 0,
- 0,
- AccessibleHyperlink__MIDL_TypeFormatString.Format,
- 1, /* -error bounds_check flag */
- 0x50002, /* Ndr library version */
- 0,
- 0x700022b, /* MIDL Version 7.0.555 */
- 0,
- UserMarshalRoutines,
- 0, /* notify & notify_flag routine table */
- 0x1, /* MIDL flag */
- 0, /* cs routines */
- 0, /* proxy/server info */
- 0
- };
-
-const CInterfaceProxyVtbl * const _AccessibleHyperlink_ProxyVtblList[] =
-{
- ( CInterfaceProxyVtbl *) &_IAccessibleHyperlinkProxyVtbl,
- 0
-};
-
-const CInterfaceStubVtbl * const _AccessibleHyperlink_StubVtblList[] =
-{
- ( CInterfaceStubVtbl *) &_IAccessibleHyperlinkStubVtbl,
- 0
-};
-
-PCInterfaceName const _AccessibleHyperlink_InterfaceNamesList[] =
-{
- "IAccessibleHyperlink",
- 0
-};
-
-const IID * const _AccessibleHyperlink_BaseIIDList[] =
-{
- &IID_IAccessibleAction,
- 0
-};
-
-
-#define _AccessibleHyperlink_CHECK_IID(n) IID_GENERIC_CHECK_IID( _AccessibleHyperlink, pIID, n)
-
-int __stdcall _AccessibleHyperlink_IID_Lookup( const IID * pIID, int * pIndex )
-{
-
- if(!_AccessibleHyperlink_CHECK_IID(0))
- {
- *pIndex = 0;
- return 1;
- }
-
- return 0;
-}
-
-const ExtendedProxyFileInfo AccessibleHyperlink_ProxyFileInfo =
-{
- (PCInterfaceProxyVtblList *) & _AccessibleHyperlink_ProxyVtblList,
- (PCInterfaceStubVtblList *) & _AccessibleHyperlink_StubVtblList,
- (const PCInterfaceName * ) & _AccessibleHyperlink_InterfaceNamesList,
- (const IID ** ) & _AccessibleHyperlink_BaseIIDList,
- & _AccessibleHyperlink_IID_Lookup,
- 1,
- 2,
- 0, /* table of [async_uuid] interfaces */
- 0, /* Filler1 */
- 0, /* Filler2 */
- 0 /* Filler3 */
-};
-#if _MSC_VER >= 1200
-#pragma warning(pop)
-#endif
-
-
-#endif /* defined(_M_AMD64)*/
-
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleHypertext.h b/src/3rdparty/iaccessible2/generated/amd64/AccessibleHypertext.h
deleted file mode 100644
index 91cb85c69e..0000000000
--- a/src/3rdparty/iaccessible2/generated/amd64/AccessibleHypertext.h
+++ /dev/null
@@ -1,349 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the definitions for the interfaces */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:58 2012
- */
-/* Compiler settings for AccessibleHypertext.idl:
- Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-
-
-/* verify that the <rpcndr.h> version is high enough to compile this file*/
-#ifndef __REQUIRED_RPCNDR_H_VERSION__
-#define __REQUIRED_RPCNDR_H_VERSION__ 475
-#endif
-
-#include "rpc.h"
-#include "rpcndr.h"
-
-#ifndef __RPCNDR_H_VERSION__
-#error this stub requires an updated version of <rpcndr.h>
-#endif // __RPCNDR_H_VERSION__
-
-#ifndef COM_NO_WINDOWS_H
-#include "windows.h"
-#include "ole2.h"
-#endif /*COM_NO_WINDOWS_H*/
-
-#ifndef __AccessibleHypertext_h__
-#define __AccessibleHypertext_h__
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-#pragma once
-#endif
-
-/* Forward Declarations */
-
-#ifndef __IAccessibleHypertext_FWD_DEFINED__
-#define __IAccessibleHypertext_FWD_DEFINED__
-typedef interface IAccessibleHypertext IAccessibleHypertext;
-#endif /* __IAccessibleHypertext_FWD_DEFINED__ */
-
-
-/* header files for imported files */
-#include "objidl.h"
-#include "oaidl.h"
-#include "oleacc.h"
-#include "AccessibleText.h"
-#include "AccessibleHyperlink.h"
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-
-#ifndef __IAccessibleHypertext_INTERFACE_DEFINED__
-#define __IAccessibleHypertext_INTERFACE_DEFINED__
-
-/* interface IAccessibleHypertext */
-/* [uuid][object] */
-
-
-EXTERN_C const IID IID_IAccessibleHypertext;
-
-#if defined(__cplusplus) && !defined(CINTERFACE)
-
- MIDL_INTERFACE("6B4F8BBF-F1F2-418a-B35E-A195BC4103B9")
- IAccessibleHypertext : public IAccessibleText
- {
- public:
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nHyperlinks(
- /* [retval][out] */ long *hyperlinkCount) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_hyperlink(
- /* [in] */ long index,
- /* [retval][out] */ IAccessibleHyperlink **hyperlink) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_hyperlinkIndex(
- /* [in] */ long charIndex,
- /* [retval][out] */ long *hyperlinkIndex) = 0;
-
- };
-
-#else /* C style interface */
-
- typedef struct IAccessibleHypertextVtbl
- {
- BEGIN_INTERFACE
-
- HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
- IAccessibleHypertext * This,
- /* [in] */ REFIID riid,
- /* [annotation][iid_is][out] */
- __RPC__deref_out void **ppvObject);
-
- ULONG ( STDMETHODCALLTYPE *AddRef )(
- IAccessibleHypertext * This);
-
- ULONG ( STDMETHODCALLTYPE *Release )(
- IAccessibleHypertext * This);
-
- HRESULT ( STDMETHODCALLTYPE *addSelection )(
- IAccessibleHypertext * This,
- /* [in] */ long startOffset,
- /* [in] */ long endOffset);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )(
- IAccessibleHypertext * This,
- /* [in] */ long offset,
- /* [out] */ long *startOffset,
- /* [out] */ long *endOffset,
- /* [retval][out] */ BSTR *textAttributes);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_caretOffset )(
- IAccessibleHypertext * This,
- /* [retval][out] */ long *offset);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_characterExtents )(
- IAccessibleHypertext * This,
- /* [in] */ long offset,
- /* [in] */ enum IA2CoordinateType coordType,
- /* [out] */ long *x,
- /* [out] */ long *y,
- /* [out] */ long *width,
- /* [retval][out] */ long *height);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelections )(
- IAccessibleHypertext * This,
- /* [retval][out] */ long *nSelections);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_offsetAtPoint )(
- IAccessibleHypertext * This,
- /* [in] */ long x,
- /* [in] */ long y,
- /* [in] */ enum IA2CoordinateType coordType,
- /* [retval][out] */ long *offset);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selection )(
- IAccessibleHypertext * This,
- /* [in] */ long selectionIndex,
- /* [out] */ long *startOffset,
- /* [retval][out] */ long *endOffset);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_text )(
- IAccessibleHypertext * This,
- /* [in] */ long startOffset,
- /* [in] */ long endOffset,
- /* [retval][out] */ BSTR *text);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textBeforeOffset )(
- IAccessibleHypertext * This,
- /* [in] */ long offset,
- /* [in] */ enum IA2TextBoundaryType boundaryType,
- /* [out] */ long *startOffset,
- /* [out] */ long *endOffset,
- /* [retval][out] */ BSTR *text);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAfterOffset )(
- IAccessibleHypertext * This,
- /* [in] */ long offset,
- /* [in] */ enum IA2TextBoundaryType boundaryType,
- /* [out] */ long *startOffset,
- /* [out] */ long *endOffset,
- /* [retval][out] */ BSTR *text);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAtOffset )(
- IAccessibleHypertext * This,
- /* [in] */ long offset,
- /* [in] */ enum IA2TextBoundaryType boundaryType,
- /* [out] */ long *startOffset,
- /* [out] */ long *endOffset,
- /* [retval][out] */ BSTR *text);
-
- HRESULT ( STDMETHODCALLTYPE *removeSelection )(
- IAccessibleHypertext * This,
- /* [in] */ long selectionIndex);
-
- HRESULT ( STDMETHODCALLTYPE *setCaretOffset )(
- IAccessibleHypertext * This,
- /* [in] */ long offset);
-
- HRESULT ( STDMETHODCALLTYPE *setSelection )(
- IAccessibleHypertext * This,
- /* [in] */ long selectionIndex,
- /* [in] */ long startOffset,
- /* [in] */ long endOffset);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nCharacters )(
- IAccessibleHypertext * This,
- /* [retval][out] */ long *nCharacters);
-
- HRESULT ( STDMETHODCALLTYPE *scrollSubstringTo )(
- IAccessibleHypertext * This,
- /* [in] */ long startIndex,
- /* [in] */ long endIndex,
- /* [in] */ enum IA2ScrollType scrollType);
-
- HRESULT ( STDMETHODCALLTYPE *scrollSubstringToPoint )(
- IAccessibleHypertext * This,
- /* [in] */ long startIndex,
- /* [in] */ long endIndex,
- /* [in] */ enum IA2CoordinateType coordinateType,
- /* [in] */ long x,
- /* [in] */ long y);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_newText )(
- IAccessibleHypertext * This,
- /* [retval][out] */ IA2TextSegment *newText);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_oldText )(
- IAccessibleHypertext * This,
- /* [retval][out] */ IA2TextSegment *oldText);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nHyperlinks )(
- IAccessibleHypertext * This,
- /* [retval][out] */ long *hyperlinkCount);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_hyperlink )(
- IAccessibleHypertext * This,
- /* [in] */ long index,
- /* [retval][out] */ IAccessibleHyperlink **hyperlink);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_hyperlinkIndex )(
- IAccessibleHypertext * This,
- /* [in] */ long charIndex,
- /* [retval][out] */ long *hyperlinkIndex);
-
- END_INTERFACE
- } IAccessibleHypertextVtbl;
-
- interface IAccessibleHypertext
- {
- CONST_VTBL struct IAccessibleHypertextVtbl *lpVtbl;
- };
-
-
-
-#ifdef COBJMACROS
-
-
-#define IAccessibleHypertext_QueryInterface(This,riid,ppvObject) \
- ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
-
-#define IAccessibleHypertext_AddRef(This) \
- ( (This)->lpVtbl -> AddRef(This) )
-
-#define IAccessibleHypertext_Release(This) \
- ( (This)->lpVtbl -> Release(This) )
-
-
-#define IAccessibleHypertext_addSelection(This,startOffset,endOffset) \
- ( (This)->lpVtbl -> addSelection(This,startOffset,endOffset) )
-
-#define IAccessibleHypertext_get_attributes(This,offset,startOffset,endOffset,textAttributes) \
- ( (This)->lpVtbl -> get_attributes(This,offset,startOffset,endOffset,textAttributes) )
-
-#define IAccessibleHypertext_get_caretOffset(This,offset) \
- ( (This)->lpVtbl -> get_caretOffset(This,offset) )
-
-#define IAccessibleHypertext_get_characterExtents(This,offset,coordType,x,y,width,height) \
- ( (This)->lpVtbl -> get_characterExtents(This,offset,coordType,x,y,width,height) )
-
-#define IAccessibleHypertext_get_nSelections(This,nSelections) \
- ( (This)->lpVtbl -> get_nSelections(This,nSelections) )
-
-#define IAccessibleHypertext_get_offsetAtPoint(This,x,y,coordType,offset) \
- ( (This)->lpVtbl -> get_offsetAtPoint(This,x,y,coordType,offset) )
-
-#define IAccessibleHypertext_get_selection(This,selectionIndex,startOffset,endOffset) \
- ( (This)->lpVtbl -> get_selection(This,selectionIndex,startOffset,endOffset) )
-
-#define IAccessibleHypertext_get_text(This,startOffset,endOffset,text) \
- ( (This)->lpVtbl -> get_text(This,startOffset,endOffset,text) )
-
-#define IAccessibleHypertext_get_textBeforeOffset(This,offset,boundaryType,startOffset,endOffset,text) \
- ( (This)->lpVtbl -> get_textBeforeOffset(This,offset,boundaryType,startOffset,endOffset,text) )
-
-#define IAccessibleHypertext_get_textAfterOffset(This,offset,boundaryType,startOffset,endOffset,text) \
- ( (This)->lpVtbl -> get_textAfterOffset(This,offset,boundaryType,startOffset,endOffset,text) )
-
-#define IAccessibleHypertext_get_textAtOffset(This,offset,boundaryType,startOffset,endOffset,text) \
- ( (This)->lpVtbl -> get_textAtOffset(This,offset,boundaryType,startOffset,endOffset,text) )
-
-#define IAccessibleHypertext_removeSelection(This,selectionIndex) \
- ( (This)->lpVtbl -> removeSelection(This,selectionIndex) )
-
-#define IAccessibleHypertext_setCaretOffset(This,offset) \
- ( (This)->lpVtbl -> setCaretOffset(This,offset) )
-
-#define IAccessibleHypertext_setSelection(This,selectionIndex,startOffset,endOffset) \
- ( (This)->lpVtbl -> setSelection(This,selectionIndex,startOffset,endOffset) )
-
-#define IAccessibleHypertext_get_nCharacters(This,nCharacters) \
- ( (This)->lpVtbl -> get_nCharacters(This,nCharacters) )
-
-#define IAccessibleHypertext_scrollSubstringTo(This,startIndex,endIndex,scrollType) \
- ( (This)->lpVtbl -> scrollSubstringTo(This,startIndex,endIndex,scrollType) )
-
-#define IAccessibleHypertext_scrollSubstringToPoint(This,startIndex,endIndex,coordinateType,x,y) \
- ( (This)->lpVtbl -> scrollSubstringToPoint(This,startIndex,endIndex,coordinateType,x,y) )
-
-#define IAccessibleHypertext_get_newText(This,newText) \
- ( (This)->lpVtbl -> get_newText(This,newText) )
-
-#define IAccessibleHypertext_get_oldText(This,oldText) \
- ( (This)->lpVtbl -> get_oldText(This,oldText) )
-
-
-#define IAccessibleHypertext_get_nHyperlinks(This,hyperlinkCount) \
- ( (This)->lpVtbl -> get_nHyperlinks(This,hyperlinkCount) )
-
-#define IAccessibleHypertext_get_hyperlink(This,index,hyperlink) \
- ( (This)->lpVtbl -> get_hyperlink(This,index,hyperlink) )
-
-#define IAccessibleHypertext_get_hyperlinkIndex(This,charIndex,hyperlinkIndex) \
- ( (This)->lpVtbl -> get_hyperlinkIndex(This,charIndex,hyperlinkIndex) )
-
-#endif /* COBJMACROS */
-
-
-#endif /* C style interface */
-
-
-
-
-#endif /* __IAccessibleHypertext_INTERFACE_DEFINED__ */
-
-
-/* Additional Prototypes for ALL interfaces */
-
-/* end of Additional Prototypes */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleHypertext_i.c b/src/3rdparty/iaccessible2/generated/amd64/AccessibleHypertext_i.c
deleted file mode 100644
index fbc3ef133a..0000000000
--- a/src/3rdparty/iaccessible2/generated/amd64/AccessibleHypertext_i.c
+++ /dev/null
@@ -1,79 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
-
-/* link this file in with the server and any clients */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:58 2012
- */
-/* Compiler settings for AccessibleHypertext.idl:
- Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-
-#include <rpc.h>
-#include <rpcndr.h>
-
-#ifdef _MIDL_USE_GUIDDEF_
-
-#ifndef INITGUID
-#define INITGUID
-#include <guiddef.h>
-#undef INITGUID
-#else
-#include <guiddef.h>
-#endif
-
-#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
- DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
-
-#else // !_MIDL_USE_GUIDDEF_
-
-#ifndef __IID_DEFINED__
-#define __IID_DEFINED__
-
-typedef struct _IID
-{
- unsigned long x;
- unsigned short s1;
- unsigned short s2;
- unsigned char c[8];
-} IID;
-
-#endif // __IID_DEFINED__
-
-#ifndef CLSID_DEFINED
-#define CLSID_DEFINED
-typedef IID CLSID;
-#endif // CLSID_DEFINED
-
-#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
- const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
-
-#endif !_MIDL_USE_GUIDDEF_
-
-MIDL_DEFINE_GUID(IID, IID_IAccessibleHypertext,0x6B4F8BBF,0xF1F2,0x418a,0xB3,0x5E,0xA1,0x95,0xBC,0x41,0x03,0xB9);
-
-#undef MIDL_DEFINE_GUID
-
-#ifdef __cplusplus
-}
-#endif
-
-
-
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleHypertext_p.c b/src/3rdparty/iaccessible2/generated/amd64/AccessibleHypertext_p.c
deleted file mode 100644
index e4df1ac6df..0000000000
--- a/src/3rdparty/iaccessible2/generated/amd64/AccessibleHypertext_p.c
+++ /dev/null
@@ -1,454 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the proxy stub code */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:58 2012
- */
-/* Compiler settings for AccessibleHypertext.idl:
- Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#if defined(_M_AMD64)
-
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-#if _MSC_VER >= 1200
-#pragma warning(push)
-#endif
-
-#pragma warning( disable: 4211 ) /* redefine extern to static */
-#pragma warning( disable: 4232 ) /* dllimport identity*/
-#pragma warning( disable: 4024 ) /* array to pointer mapping*/
-#pragma warning( disable: 4152 ) /* function/data pointer conversion in expression */
-
-#define USE_STUBLESS_PROXY
-
-
-/* verify that the <rpcproxy.h> version is high enough to compile this file*/
-#ifndef __REDQ_RPCPROXY_H_VERSION__
-#define __REQUIRED_RPCPROXY_H_VERSION__ 475
-#endif
-
-
-#include "rpcproxy.h"
-#ifndef __RPCPROXY_H_VERSION__
-#error this stub requires an updated version of <rpcproxy.h>
-#endif /* __RPCPROXY_H_VERSION__ */
-
-
-#include "AccessibleHypertext.h"
-
-#define TYPE_FORMAT_STRING_SIZE 29
-#define PROC_FORMAT_STRING_SIZE 127
-#define EXPR_FORMAT_STRING_SIZE 1
-#define TRANSMIT_AS_TABLE_SIZE 0
-#define WIRE_MARSHAL_TABLE_SIZE 0
-
-typedef struct _AccessibleHypertext_MIDL_TYPE_FORMAT_STRING
- {
- short Pad;
- unsigned char Format[ TYPE_FORMAT_STRING_SIZE ];
- } AccessibleHypertext_MIDL_TYPE_FORMAT_STRING;
-
-typedef struct _AccessibleHypertext_MIDL_PROC_FORMAT_STRING
- {
- short Pad;
- unsigned char Format[ PROC_FORMAT_STRING_SIZE ];
- } AccessibleHypertext_MIDL_PROC_FORMAT_STRING;
-
-typedef struct _AccessibleHypertext_MIDL_EXPR_FORMAT_STRING
- {
- long Pad;
- unsigned char Format[ EXPR_FORMAT_STRING_SIZE ];
- } AccessibleHypertext_MIDL_EXPR_FORMAT_STRING;
-
-
-static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax =
-{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}};
-
-
-extern const AccessibleHypertext_MIDL_TYPE_FORMAT_STRING AccessibleHypertext__MIDL_TypeFormatString;
-extern const AccessibleHypertext_MIDL_PROC_FORMAT_STRING AccessibleHypertext__MIDL_ProcFormatString;
-extern const AccessibleHypertext_MIDL_EXPR_FORMAT_STRING AccessibleHypertext__MIDL_ExprFormatString;
-
-
-extern const MIDL_STUB_DESC Object_StubDesc;
-
-
-extern const MIDL_SERVER_INFO IAccessibleHypertext_ServerInfo;
-extern const MIDL_STUBLESS_PROXY_INFO IAccessibleHypertext_ProxyInfo;
-
-
-
-#if !defined(__RPC_WIN64__)
-#error Invalid build platform for this stub.
-#endif
-
-static const AccessibleHypertext_MIDL_PROC_FORMAT_STRING AccessibleHypertext__MIDL_ProcFormatString =
- {
- 0,
- {
-
- /* Procedure get_nHyperlinks */
-
- 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 2 */ NdrFcLong( 0x0 ), /* 0 */
-/* 6 */ NdrFcShort( 0x16 ), /* 22 */
-/* 8 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 10 */ NdrFcShort( 0x0 ), /* 0 */
-/* 12 */ NdrFcShort( 0x24 ), /* 36 */
-/* 14 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 16 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 18 */ NdrFcShort( 0x0 ), /* 0 */
-/* 20 */ NdrFcShort( 0x0 ), /* 0 */
-/* 22 */ NdrFcShort( 0x0 ), /* 0 */
-/* 24 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter hyperlinkCount */
-
-/* 26 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 28 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 30 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 32 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 34 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 36 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_hyperlink */
-
-/* 38 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 40 */ NdrFcLong( 0x0 ), /* 0 */
-/* 44 */ NdrFcShort( 0x17 ), /* 23 */
-/* 46 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
-/* 48 */ NdrFcShort( 0x8 ), /* 8 */
-/* 50 */ NdrFcShort( 0x8 ), /* 8 */
-/* 52 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x3, /* 3 */
-/* 54 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 56 */ NdrFcShort( 0x0 ), /* 0 */
-/* 58 */ NdrFcShort( 0x0 ), /* 0 */
-/* 60 */ NdrFcShort( 0x0 ), /* 0 */
-/* 62 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter index */
-
-/* 64 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 66 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 68 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter hyperlink */
-
-/* 70 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
-/* 72 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 74 */ NdrFcShort( 0x6 ), /* Type Offset=6 */
-
- /* Return value */
-
-/* 76 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 78 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 80 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_hyperlinkIndex */
-
-/* 82 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 84 */ NdrFcLong( 0x0 ), /* 0 */
-/* 88 */ NdrFcShort( 0x18 ), /* 24 */
-/* 90 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
-/* 92 */ NdrFcShort( 0x8 ), /* 8 */
-/* 94 */ NdrFcShort( 0x24 ), /* 36 */
-/* 96 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x3, /* 3 */
-/* 98 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 100 */ NdrFcShort( 0x0 ), /* 0 */
-/* 102 */ NdrFcShort( 0x0 ), /* 0 */
-/* 104 */ NdrFcShort( 0x0 ), /* 0 */
-/* 106 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter charIndex */
-
-/* 108 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 110 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 112 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter hyperlinkIndex */
-
-/* 114 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 116 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 118 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 120 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 122 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 124 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- 0x0
- }
- };
-
-static const AccessibleHypertext_MIDL_TYPE_FORMAT_STRING AccessibleHypertext__MIDL_TypeFormatString =
- {
- 0,
- {
- NdrFcShort( 0x0 ), /* 0 */
-/* 2 */
- 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
-/* 4 */ 0x8, /* FC_LONG */
- 0x5c, /* FC_PAD */
-/* 6 */
- 0x11, 0x10, /* FC_RP [pointer_deref] */
-/* 8 */ NdrFcShort( 0x2 ), /* Offset= 2 (10) */
-/* 10 */
- 0x2f, /* FC_IP */
- 0x5a, /* FC_CONSTANT_IID */
-/* 12 */ NdrFcLong( 0x1c20f2b ), /* 29495083 */
-/* 16 */ NdrFcShort( 0x3dd2 ), /* 15826 */
-/* 18 */ NdrFcShort( 0x400f ), /* 16399 */
-/* 20 */ 0x94, /* 148 */
- 0x9f, /* 159 */
-/* 22 */ 0xad, /* 173 */
- 0x0, /* 0 */
-/* 24 */ 0xbd, /* 189 */
- 0xab, /* 171 */
-/* 26 */ 0x1d, /* 29 */
- 0x41, /* 65 */
-
- 0x0
- }
- };
-
-
-/* Object interface: IUnknown, ver. 0.0,
- GUID={0x00000000,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
-
-
-/* Object interface: IAccessibleText, ver. 0.0,
- GUID={0x24FD2FFB,0x3AAD,0x4a08,{0x83,0x35,0xA3,0xAD,0x89,0xC0,0xFB,0x4B}} */
-
-
-/* Object interface: IAccessibleHypertext, ver. 0.0,
- GUID={0x6B4F8BBF,0xF1F2,0x418a,{0xB3,0x5E,0xA1,0x95,0xBC,0x41,0x03,0xB9}} */
-
-#pragma code_seg(".orpc")
-static const unsigned short IAccessibleHypertext_FormatStringOffsetTable[] =
- {
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- 0,
- 38,
- 82
- };
-
-static const MIDL_STUBLESS_PROXY_INFO IAccessibleHypertext_ProxyInfo =
- {
- &Object_StubDesc,
- AccessibleHypertext__MIDL_ProcFormatString.Format,
- &IAccessibleHypertext_FormatStringOffsetTable[-3],
- 0,
- 0,
- 0
- };
-
-
-static const MIDL_SERVER_INFO IAccessibleHypertext_ServerInfo =
- {
- &Object_StubDesc,
- 0,
- AccessibleHypertext__MIDL_ProcFormatString.Format,
- &IAccessibleHypertext_FormatStringOffsetTable[-3],
- 0,
- 0,
- 0,
- 0};
-CINTERFACE_PROXY_VTABLE(25) _IAccessibleHypertextProxyVtbl =
-{
- &IAccessibleHypertext_ProxyInfo,
- &IID_IAccessibleHypertext,
- IUnknown_QueryInterface_Proxy,
- IUnknown_AddRef_Proxy,
- IUnknown_Release_Proxy ,
- 0 /* IAccessibleText::addSelection */ ,
- 0 /* IAccessibleText::get_attributes */ ,
- 0 /* IAccessibleText::get_caretOffset */ ,
- 0 /* IAccessibleText::get_characterExtents */ ,
- 0 /* IAccessibleText::get_nSelections */ ,
- 0 /* IAccessibleText::get_offsetAtPoint */ ,
- 0 /* IAccessibleText::get_selection */ ,
- 0 /* IAccessibleText::get_text */ ,
- 0 /* IAccessibleText::get_textBeforeOffset */ ,
- 0 /* IAccessibleText::get_textAfterOffset */ ,
- 0 /* IAccessibleText::get_textAtOffset */ ,
- 0 /* IAccessibleText::removeSelection */ ,
- 0 /* IAccessibleText::setCaretOffset */ ,
- 0 /* IAccessibleText::setSelection */ ,
- 0 /* IAccessibleText::get_nCharacters */ ,
- 0 /* IAccessibleText::scrollSubstringTo */ ,
- 0 /* IAccessibleText::scrollSubstringToPoint */ ,
- 0 /* IAccessibleText::get_newText */ ,
- 0 /* IAccessibleText::get_oldText */ ,
- (void *) (INT_PTR) -1 /* IAccessibleHypertext::get_nHyperlinks */ ,
- (void *) (INT_PTR) -1 /* IAccessibleHypertext::get_hyperlink */ ,
- (void *) (INT_PTR) -1 /* IAccessibleHypertext::get_hyperlinkIndex */
-};
-
-
-static const PRPC_STUB_FUNCTION IAccessibleHypertext_table[] =
-{
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- NdrStubCall2,
- NdrStubCall2,
- NdrStubCall2
-};
-
-CInterfaceStubVtbl _IAccessibleHypertextStubVtbl =
-{
- &IID_IAccessibleHypertext,
- &IAccessibleHypertext_ServerInfo,
- 25,
- &IAccessibleHypertext_table[-3],
- CStdStubBuffer_DELEGATING_METHODS
-};
-
-static const MIDL_STUB_DESC Object_StubDesc =
- {
- 0,
- NdrOleAllocate,
- NdrOleFree,
- 0,
- 0,
- 0,
- 0,
- 0,
- AccessibleHypertext__MIDL_TypeFormatString.Format,
- 1, /* -error bounds_check flag */
- 0x50002, /* Ndr library version */
- 0,
- 0x700022b, /* MIDL Version 7.0.555 */
- 0,
- 0,
- 0, /* notify & notify_flag routine table */
- 0x1, /* MIDL flag */
- 0, /* cs routines */
- 0, /* proxy/server info */
- 0
- };
-
-const CInterfaceProxyVtbl * const _AccessibleHypertext_ProxyVtblList[] =
-{
- ( CInterfaceProxyVtbl *) &_IAccessibleHypertextProxyVtbl,
- 0
-};
-
-const CInterfaceStubVtbl * const _AccessibleHypertext_StubVtblList[] =
-{
- ( CInterfaceStubVtbl *) &_IAccessibleHypertextStubVtbl,
- 0
-};
-
-PCInterfaceName const _AccessibleHypertext_InterfaceNamesList[] =
-{
- "IAccessibleHypertext",
- 0
-};
-
-const IID * const _AccessibleHypertext_BaseIIDList[] =
-{
- &IID_IAccessibleText,
- 0
-};
-
-
-#define _AccessibleHypertext_CHECK_IID(n) IID_GENERIC_CHECK_IID( _AccessibleHypertext, pIID, n)
-
-int __stdcall _AccessibleHypertext_IID_Lookup( const IID * pIID, int * pIndex )
-{
-
- if(!_AccessibleHypertext_CHECK_IID(0))
- {
- *pIndex = 0;
- return 1;
- }
-
- return 0;
-}
-
-const ExtendedProxyFileInfo AccessibleHypertext_ProxyFileInfo =
-{
- (PCInterfaceProxyVtblList *) & _AccessibleHypertext_ProxyVtblList,
- (PCInterfaceStubVtblList *) & _AccessibleHypertext_StubVtblList,
- (const PCInterfaceName * ) & _AccessibleHypertext_InterfaceNamesList,
- (const IID ** ) & _AccessibleHypertext_BaseIIDList,
- & _AccessibleHypertext_IID_Lookup,
- 1,
- 2,
- 0, /* table of [async_uuid] interfaces */
- 0, /* Filler1 */
- 0, /* Filler2 */
- 0 /* Filler3 */
-};
-#if _MSC_VER >= 1200
-#pragma warning(pop)
-#endif
-
-
-#endif /* defined(_M_AMD64)*/
-
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleImage.h b/src/3rdparty/iaccessible2/generated/amd64/AccessibleImage.h
deleted file mode 100644
index a01e4dc0b6..0000000000
--- a/src/3rdparty/iaccessible2/generated/amd64/AccessibleImage.h
+++ /dev/null
@@ -1,185 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the definitions for the interfaces */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:58 2012
- */
-/* Compiler settings for AccessibleImage.idl:
- Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-
-
-/* verify that the <rpcndr.h> version is high enough to compile this file*/
-#ifndef __REQUIRED_RPCNDR_H_VERSION__
-#define __REQUIRED_RPCNDR_H_VERSION__ 475
-#endif
-
-#include "rpc.h"
-#include "rpcndr.h"
-
-#ifndef __RPCNDR_H_VERSION__
-#error this stub requires an updated version of <rpcndr.h>
-#endif // __RPCNDR_H_VERSION__
-
-#ifndef COM_NO_WINDOWS_H
-#include "windows.h"
-#include "ole2.h"
-#endif /*COM_NO_WINDOWS_H*/
-
-#ifndef __AccessibleImage_h__
-#define __AccessibleImage_h__
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-#pragma once
-#endif
-
-/* Forward Declarations */
-
-#ifndef __IAccessibleImage_FWD_DEFINED__
-#define __IAccessibleImage_FWD_DEFINED__
-typedef interface IAccessibleImage IAccessibleImage;
-#endif /* __IAccessibleImage_FWD_DEFINED__ */
-
-
-/* header files for imported files */
-#include "objidl.h"
-#include "oaidl.h"
-#include "oleacc.h"
-#include "IA2CommonTypes.h"
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-
-#ifndef __IAccessibleImage_INTERFACE_DEFINED__
-#define __IAccessibleImage_INTERFACE_DEFINED__
-
-/* interface IAccessibleImage */
-/* [uuid][object] */
-
-
-EXTERN_C const IID IID_IAccessibleImage;
-
-#if defined(__cplusplus) && !defined(CINTERFACE)
-
- MIDL_INTERFACE("FE5ABB3D-615E-4f7b-909F-5F0EDA9E8DDE")
- IAccessibleImage : public IUnknown
- {
- public:
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_description(
- /* [retval][out] */ BSTR *description) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_imagePosition(
- /* [in] */ enum IA2CoordinateType coordinateType,
- /* [out] */ long *x,
- /* [retval][out] */ long *y) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_imageSize(
- /* [out] */ long *height,
- /* [retval][out] */ long *width) = 0;
-
- };
-
-#else /* C style interface */
-
- typedef struct IAccessibleImageVtbl
- {
- BEGIN_INTERFACE
-
- HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
- IAccessibleImage * This,
- /* [in] */ REFIID riid,
- /* [annotation][iid_is][out] */
- __RPC__deref_out void **ppvObject);
-
- ULONG ( STDMETHODCALLTYPE *AddRef )(
- IAccessibleImage * This);
-
- ULONG ( STDMETHODCALLTYPE *Release )(
- IAccessibleImage * This);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_description )(
- IAccessibleImage * This,
- /* [retval][out] */ BSTR *description);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_imagePosition )(
- IAccessibleImage * This,
- /* [in] */ enum IA2CoordinateType coordinateType,
- /* [out] */ long *x,
- /* [retval][out] */ long *y);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_imageSize )(
- IAccessibleImage * This,
- /* [out] */ long *height,
- /* [retval][out] */ long *width);
-
- END_INTERFACE
- } IAccessibleImageVtbl;
-
- interface IAccessibleImage
- {
- CONST_VTBL struct IAccessibleImageVtbl *lpVtbl;
- };
-
-
-
-#ifdef COBJMACROS
-
-
-#define IAccessibleImage_QueryInterface(This,riid,ppvObject) \
- ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
-
-#define IAccessibleImage_AddRef(This) \
- ( (This)->lpVtbl -> AddRef(This) )
-
-#define IAccessibleImage_Release(This) \
- ( (This)->lpVtbl -> Release(This) )
-
-
-#define IAccessibleImage_get_description(This,description) \
- ( (This)->lpVtbl -> get_description(This,description) )
-
-#define IAccessibleImage_get_imagePosition(This,coordinateType,x,y) \
- ( (This)->lpVtbl -> get_imagePosition(This,coordinateType,x,y) )
-
-#define IAccessibleImage_get_imageSize(This,height,width) \
- ( (This)->lpVtbl -> get_imageSize(This,height,width) )
-
-#endif /* COBJMACROS */
-
-
-#endif /* C style interface */
-
-
-
-
-#endif /* __IAccessibleImage_INTERFACE_DEFINED__ */
-
-
-/* Additional Prototypes for ALL interfaces */
-
-unsigned long __RPC_USER BSTR_UserSize( unsigned long *, unsigned long , BSTR * );
-unsigned char * __RPC_USER BSTR_UserMarshal( unsigned long *, unsigned char *, BSTR * );
-unsigned char * __RPC_USER BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * );
-void __RPC_USER BSTR_UserFree( unsigned long *, BSTR * );
-
-/* end of Additional Prototypes */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleImage_i.c b/src/3rdparty/iaccessible2/generated/amd64/AccessibleImage_i.c
deleted file mode 100644
index 1afecd10b5..0000000000
--- a/src/3rdparty/iaccessible2/generated/amd64/AccessibleImage_i.c
+++ /dev/null
@@ -1,79 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
-
-/* link this file in with the server and any clients */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:58 2012
- */
-/* Compiler settings for AccessibleImage.idl:
- Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-
-#include <rpc.h>
-#include <rpcndr.h>
-
-#ifdef _MIDL_USE_GUIDDEF_
-
-#ifndef INITGUID
-#define INITGUID
-#include <guiddef.h>
-#undef INITGUID
-#else
-#include <guiddef.h>
-#endif
-
-#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
- DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
-
-#else // !_MIDL_USE_GUIDDEF_
-
-#ifndef __IID_DEFINED__
-#define __IID_DEFINED__
-
-typedef struct _IID
-{
- unsigned long x;
- unsigned short s1;
- unsigned short s2;
- unsigned char c[8];
-} IID;
-
-#endif // __IID_DEFINED__
-
-#ifndef CLSID_DEFINED
-#define CLSID_DEFINED
-typedef IID CLSID;
-#endif // CLSID_DEFINED
-
-#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
- const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
-
-#endif !_MIDL_USE_GUIDDEF_
-
-MIDL_DEFINE_GUID(IID, IID_IAccessibleImage,0xFE5ABB3D,0x615E,0x4f7b,0x90,0x9F,0x5F,0x0E,0xDA,0x9E,0x8D,0xDE);
-
-#undef MIDL_DEFINE_GUID
-
-#ifdef __cplusplus
-}
-#endif
-
-
-
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleImage_p.c b/src/3rdparty/iaccessible2/generated/amd64/AccessibleImage_p.c
deleted file mode 100644
index 4b6aff7ba5..0000000000
--- a/src/3rdparty/iaccessible2/generated/amd64/AccessibleImage_p.c
+++ /dev/null
@@ -1,414 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the proxy stub code */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:58 2012
- */
-/* Compiler settings for AccessibleImage.idl:
- Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#if defined(_M_AMD64)
-
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-#if _MSC_VER >= 1200
-#pragma warning(push)
-#endif
-
-#pragma warning( disable: 4211 ) /* redefine extern to static */
-#pragma warning( disable: 4232 ) /* dllimport identity*/
-#pragma warning( disable: 4024 ) /* array to pointer mapping*/
-#pragma warning( disable: 4152 ) /* function/data pointer conversion in expression */
-
-#define USE_STUBLESS_PROXY
-
-
-/* verify that the <rpcproxy.h> version is high enough to compile this file*/
-#ifndef __REDQ_RPCPROXY_H_VERSION__
-#define __REQUIRED_RPCPROXY_H_VERSION__ 475
-#endif
-
-
-#include "rpcproxy.h"
-#ifndef __RPCPROXY_H_VERSION__
-#error this stub requires an updated version of <rpcproxy.h>
-#endif /* __RPCPROXY_H_VERSION__ */
-
-
-#include "AccessibleImage.h"
-
-#define TYPE_FORMAT_STRING_SIZE 47
-#define PROC_FORMAT_STRING_SIZE 133
-#define EXPR_FORMAT_STRING_SIZE 1
-#define TRANSMIT_AS_TABLE_SIZE 0
-#define WIRE_MARSHAL_TABLE_SIZE 1
-
-typedef struct _AccessibleImage_MIDL_TYPE_FORMAT_STRING
- {
- short Pad;
- unsigned char Format[ TYPE_FORMAT_STRING_SIZE ];
- } AccessibleImage_MIDL_TYPE_FORMAT_STRING;
-
-typedef struct _AccessibleImage_MIDL_PROC_FORMAT_STRING
- {
- short Pad;
- unsigned char Format[ PROC_FORMAT_STRING_SIZE ];
- } AccessibleImage_MIDL_PROC_FORMAT_STRING;
-
-typedef struct _AccessibleImage_MIDL_EXPR_FORMAT_STRING
- {
- long Pad;
- unsigned char Format[ EXPR_FORMAT_STRING_SIZE ];
- } AccessibleImage_MIDL_EXPR_FORMAT_STRING;
-
-
-static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax =
-{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}};
-
-
-extern const AccessibleImage_MIDL_TYPE_FORMAT_STRING AccessibleImage__MIDL_TypeFormatString;
-extern const AccessibleImage_MIDL_PROC_FORMAT_STRING AccessibleImage__MIDL_ProcFormatString;
-extern const AccessibleImage_MIDL_EXPR_FORMAT_STRING AccessibleImage__MIDL_ExprFormatString;
-
-
-extern const MIDL_STUB_DESC Object_StubDesc;
-
-
-extern const MIDL_SERVER_INFO IAccessibleImage_ServerInfo;
-extern const MIDL_STUBLESS_PROXY_INFO IAccessibleImage_ProxyInfo;
-
-
-extern const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ];
-
-#if !defined(__RPC_WIN64__)
-#error Invalid build platform for this stub.
-#endif
-
-static const AccessibleImage_MIDL_PROC_FORMAT_STRING AccessibleImage__MIDL_ProcFormatString =
- {
- 0,
- {
-
- /* Procedure get_description */
-
- 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 2 */ NdrFcLong( 0x0 ), /* 0 */
-/* 6 */ NdrFcShort( 0x3 ), /* 3 */
-/* 8 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 10 */ NdrFcShort( 0x0 ), /* 0 */
-/* 12 */ NdrFcShort( 0x8 ), /* 8 */
-/* 14 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x2, /* 2 */
-/* 16 */ 0xa, /* 10 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 18 */ NdrFcShort( 0x1 ), /* 1 */
-/* 20 */ NdrFcShort( 0x0 ), /* 0 */
-/* 22 */ NdrFcShort( 0x0 ), /* 0 */
-/* 24 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter description */
-
-/* 26 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
-/* 28 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 30 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
-
- /* Return value */
-
-/* 32 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 34 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 36 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_imagePosition */
-
-/* 38 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 40 */ NdrFcLong( 0x0 ), /* 0 */
-/* 44 */ NdrFcShort( 0x4 ), /* 4 */
-/* 46 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
-/* 48 */ NdrFcShort( 0x6 ), /* 6 */
-/* 50 */ NdrFcShort( 0x40 ), /* 64 */
-/* 52 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x4, /* 4 */
-/* 54 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 56 */ NdrFcShort( 0x0 ), /* 0 */
-/* 58 */ NdrFcShort( 0x0 ), /* 0 */
-/* 60 */ NdrFcShort( 0x0 ), /* 0 */
-/* 62 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter coordinateType */
-
-/* 64 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 66 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 68 */ 0xd, /* FC_ENUM16 */
- 0x0, /* 0 */
-
- /* Parameter x */
-
-/* 70 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 72 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 74 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter y */
-
-/* 76 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 78 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 80 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 82 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 84 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
-/* 86 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_imageSize */
-
-/* 88 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 90 */ NdrFcLong( 0x0 ), /* 0 */
-/* 94 */ NdrFcShort( 0x5 ), /* 5 */
-/* 96 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
-/* 98 */ NdrFcShort( 0x0 ), /* 0 */
-/* 100 */ NdrFcShort( 0x40 ), /* 64 */
-/* 102 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x3, /* 3 */
-/* 104 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 106 */ NdrFcShort( 0x0 ), /* 0 */
-/* 108 */ NdrFcShort( 0x0 ), /* 0 */
-/* 110 */ NdrFcShort( 0x0 ), /* 0 */
-/* 112 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter height */
-
-/* 114 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 116 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 118 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter width */
-
-/* 120 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 122 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 124 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 126 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 128 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 130 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- 0x0
- }
- };
-
-static const AccessibleImage_MIDL_TYPE_FORMAT_STRING AccessibleImage__MIDL_TypeFormatString =
- {
- 0,
- {
- NdrFcShort( 0x0 ), /* 0 */
-/* 2 */
- 0x11, 0x4, /* FC_RP [alloced_on_stack] */
-/* 4 */ NdrFcShort( 0x1c ), /* Offset= 28 (32) */
-/* 6 */
- 0x13, 0x0, /* FC_OP */
-/* 8 */ NdrFcShort( 0xe ), /* Offset= 14 (22) */
-/* 10 */
- 0x1b, /* FC_CARRAY */
- 0x1, /* 1 */
-/* 12 */ NdrFcShort( 0x2 ), /* 2 */
-/* 14 */ 0x9, /* Corr desc: FC_ULONG */
- 0x0, /* */
-/* 16 */ NdrFcShort( 0xfffc ), /* -4 */
-/* 18 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 20 */ 0x6, /* FC_SHORT */
- 0x5b, /* FC_END */
-/* 22 */
- 0x17, /* FC_CSTRUCT */
- 0x3, /* 3 */
-/* 24 */ NdrFcShort( 0x8 ), /* 8 */
-/* 26 */ NdrFcShort( 0xfff0 ), /* Offset= -16 (10) */
-/* 28 */ 0x8, /* FC_LONG */
- 0x8, /* FC_LONG */
-/* 30 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-/* 32 */ 0xb4, /* FC_USER_MARSHAL */
- 0x83, /* 131 */
-/* 34 */ NdrFcShort( 0x0 ), /* 0 */
-/* 36 */ NdrFcShort( 0x8 ), /* 8 */
-/* 38 */ NdrFcShort( 0x0 ), /* 0 */
-/* 40 */ NdrFcShort( 0xffde ), /* Offset= -34 (6) */
-/* 42 */
- 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
-/* 44 */ 0x8, /* FC_LONG */
- 0x5c, /* FC_PAD */
-
- 0x0
- }
- };
-
-static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] =
- {
-
- {
- BSTR_UserSize
- ,BSTR_UserMarshal
- ,BSTR_UserUnmarshal
- ,BSTR_UserFree
- }
-
- };
-
-
-
-/* Object interface: IUnknown, ver. 0.0,
- GUID={0x00000000,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
-
-
-/* Object interface: IAccessibleImage, ver. 0.0,
- GUID={0xFE5ABB3D,0x615E,0x4f7b,{0x90,0x9F,0x5F,0x0E,0xDA,0x9E,0x8D,0xDE}} */
-
-#pragma code_seg(".orpc")
-static const unsigned short IAccessibleImage_FormatStringOffsetTable[] =
- {
- 0,
- 38,
- 88
- };
-
-static const MIDL_STUBLESS_PROXY_INFO IAccessibleImage_ProxyInfo =
- {
- &Object_StubDesc,
- AccessibleImage__MIDL_ProcFormatString.Format,
- &IAccessibleImage_FormatStringOffsetTable[-3],
- 0,
- 0,
- 0
- };
-
-
-static const MIDL_SERVER_INFO IAccessibleImage_ServerInfo =
- {
- &Object_StubDesc,
- 0,
- AccessibleImage__MIDL_ProcFormatString.Format,
- &IAccessibleImage_FormatStringOffsetTable[-3],
- 0,
- 0,
- 0,
- 0};
-CINTERFACE_PROXY_VTABLE(6) _IAccessibleImageProxyVtbl =
-{
- &IAccessibleImage_ProxyInfo,
- &IID_IAccessibleImage,
- IUnknown_QueryInterface_Proxy,
- IUnknown_AddRef_Proxy,
- IUnknown_Release_Proxy ,
- (void *) (INT_PTR) -1 /* IAccessibleImage::get_description */ ,
- (void *) (INT_PTR) -1 /* IAccessibleImage::get_imagePosition */ ,
- (void *) (INT_PTR) -1 /* IAccessibleImage::get_imageSize */
-};
-
-const CInterfaceStubVtbl _IAccessibleImageStubVtbl =
-{
- &IID_IAccessibleImage,
- &IAccessibleImage_ServerInfo,
- 6,
- 0, /* pure interpreted */
- CStdStubBuffer_METHODS
-};
-
-static const MIDL_STUB_DESC Object_StubDesc =
- {
- 0,
- NdrOleAllocate,
- NdrOleFree,
- 0,
- 0,
- 0,
- 0,
- 0,
- AccessibleImage__MIDL_TypeFormatString.Format,
- 1, /* -error bounds_check flag */
- 0x50002, /* Ndr library version */
- 0,
- 0x700022b, /* MIDL Version 7.0.555 */
- 0,
- UserMarshalRoutines,
- 0, /* notify & notify_flag routine table */
- 0x1, /* MIDL flag */
- 0, /* cs routines */
- 0, /* proxy/server info */
- 0
- };
-
-const CInterfaceProxyVtbl * const _AccessibleImage_ProxyVtblList[] =
-{
- ( CInterfaceProxyVtbl *) &_IAccessibleImageProxyVtbl,
- 0
-};
-
-const CInterfaceStubVtbl * const _AccessibleImage_StubVtblList[] =
-{
- ( CInterfaceStubVtbl *) &_IAccessibleImageStubVtbl,
- 0
-};
-
-PCInterfaceName const _AccessibleImage_InterfaceNamesList[] =
-{
- "IAccessibleImage",
- 0
-};
-
-
-#define _AccessibleImage_CHECK_IID(n) IID_GENERIC_CHECK_IID( _AccessibleImage, pIID, n)
-
-int __stdcall _AccessibleImage_IID_Lookup( const IID * pIID, int * pIndex )
-{
-
- if(!_AccessibleImage_CHECK_IID(0))
- {
- *pIndex = 0;
- return 1;
- }
-
- return 0;
-}
-
-const ExtendedProxyFileInfo AccessibleImage_ProxyFileInfo =
-{
- (PCInterfaceProxyVtblList *) & _AccessibleImage_ProxyVtblList,
- (PCInterfaceStubVtblList *) & _AccessibleImage_StubVtblList,
- (const PCInterfaceName * ) & _AccessibleImage_InterfaceNamesList,
- 0, /* no delegation */
- & _AccessibleImage_IID_Lookup,
- 1,
- 2,
- 0, /* table of [async_uuid] interfaces */
- 0, /* Filler1 */
- 0, /* Filler2 */
- 0 /* Filler3 */
-};
-#if _MSC_VER >= 1200
-#pragma warning(pop)
-#endif
-
-
-#endif /* defined(_M_AMD64)*/
-
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleRelation.h b/src/3rdparty/iaccessible2/generated/amd64/AccessibleRelation.h
deleted file mode 100644
index e153cd8476..0000000000
--- a/src/3rdparty/iaccessible2/generated/amd64/AccessibleRelation.h
+++ /dev/null
@@ -1,244 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the definitions for the interfaces */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:58 2012
- */
-/* Compiler settings for AccessibleRelation.idl:
- Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-
-
-/* verify that the <rpcndr.h> version is high enough to compile this file*/
-#ifndef __REQUIRED_RPCNDR_H_VERSION__
-#define __REQUIRED_RPCNDR_H_VERSION__ 475
-#endif
-
-#include "rpc.h"
-#include "rpcndr.h"
-
-#ifndef __RPCNDR_H_VERSION__
-#error this stub requires an updated version of <rpcndr.h>
-#endif // __RPCNDR_H_VERSION__
-
-#ifndef COM_NO_WINDOWS_H
-#include "windows.h"
-#include "ole2.h"
-#endif /*COM_NO_WINDOWS_H*/
-
-#ifndef __AccessibleRelation_h__
-#define __AccessibleRelation_h__
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-#pragma once
-#endif
-
-/* Forward Declarations */
-
-#ifndef __IAccessibleRelation_FWD_DEFINED__
-#define __IAccessibleRelation_FWD_DEFINED__
-typedef interface IAccessibleRelation IAccessibleRelation;
-#endif /* __IAccessibleRelation_FWD_DEFINED__ */
-
-
-/* header files for imported files */
-#include "objidl.h"
-#include "oaidl.h"
-#include "oleacc.h"
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-
-/* interface __MIDL_itf_AccessibleRelation_0000_0000 */
-/* [local] */
-
-#define IA2_RELATION_CONTROLLED_BY ( L"controlledBy" )
-
-#define IA2_RELATION_CONTROLLER_FOR ( L"controllerFor" )
-
-#define IA2_RELATION_DESCRIBED_BY ( L"describedBy" )
-
-#define IA2_RELATION_DESCRIPTION_FOR ( L"descriptionFor" )
-
-#define IA2_RELATION_EMBEDDED_BY ( L"embeddedBy" )
-
-#define IA2_RELATION_EMBEDS ( L"embeds" )
-
-#define IA2_RELATION_FLOWS_FROM ( L"flowsFrom" )
-
-#define IA2_RELATION_FLOWS_TO ( L"flowsTo" )
-
-#define IA2_RELATION_LABEL_FOR ( L"labelFor" )
-
-#define IA2_RELATION_LABELED_BY ( L"labelledBy" )
-
-#define IA2_RELATION_LABELLED_BY ( L"labelledBy" )
-
-#define IA2_RELATION_MEMBER_OF ( L"memberOf" )
-
-#define IA2_RELATION_NODE_CHILD_OF ( L"nodeChildOf" )
-
-#define IA2_RELATION_PARENT_WINDOW_OF ( L"parentWindowOf" )
-
-#define IA2_RELATION_POPUP_FOR ( L"popupFor" )
-
-#define IA2_RELATION_SUBWINDOW_OF ( L"subwindowOf" )
-
-
-
-extern RPC_IF_HANDLE __MIDL_itf_AccessibleRelation_0000_0000_v0_0_c_ifspec;
-extern RPC_IF_HANDLE __MIDL_itf_AccessibleRelation_0000_0000_v0_0_s_ifspec;
-
-#ifndef __IAccessibleRelation_INTERFACE_DEFINED__
-#define __IAccessibleRelation_INTERFACE_DEFINED__
-
-/* interface IAccessibleRelation */
-/* [uuid][object] */
-
-
-EXTERN_C const IID IID_IAccessibleRelation;
-
-#if defined(__cplusplus) && !defined(CINTERFACE)
-
- MIDL_INTERFACE("7CDF86EE-C3DA-496a-BDA4-281B336E1FDC")
- IAccessibleRelation : public IUnknown
- {
- public:
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_relationType(
- /* [retval][out] */ BSTR *relationType) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_localizedRelationType(
- /* [retval][out] */ BSTR *localizedRelationType) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nTargets(
- /* [retval][out] */ long *nTargets) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_target(
- /* [in] */ long targetIndex,
- /* [retval][out] */ IUnknown **target) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_targets(
- /* [in] */ long maxTargets,
- /* [length_is][size_is][out] */ IUnknown **targets,
- /* [retval][out] */ long *nTargets) = 0;
-
- };
-
-#else /* C style interface */
-
- typedef struct IAccessibleRelationVtbl
- {
- BEGIN_INTERFACE
-
- HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
- IAccessibleRelation * This,
- /* [in] */ REFIID riid,
- /* [annotation][iid_is][out] */
- __RPC__deref_out void **ppvObject);
-
- ULONG ( STDMETHODCALLTYPE *AddRef )(
- IAccessibleRelation * This);
-
- ULONG ( STDMETHODCALLTYPE *Release )(
- IAccessibleRelation * This);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relationType )(
- IAccessibleRelation * This,
- /* [retval][out] */ BSTR *relationType);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedRelationType )(
- IAccessibleRelation * This,
- /* [retval][out] */ BSTR *localizedRelationType);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nTargets )(
- IAccessibleRelation * This,
- /* [retval][out] */ long *nTargets);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_target )(
- IAccessibleRelation * This,
- /* [in] */ long targetIndex,
- /* [retval][out] */ IUnknown **target);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_targets )(
- IAccessibleRelation * This,
- /* [in] */ long maxTargets,
- /* [length_is][size_is][out] */ IUnknown **targets,
- /* [retval][out] */ long *nTargets);
-
- END_INTERFACE
- } IAccessibleRelationVtbl;
-
- interface IAccessibleRelation
- {
- CONST_VTBL struct IAccessibleRelationVtbl *lpVtbl;
- };
-
-
-
-#ifdef COBJMACROS
-
-
-#define IAccessibleRelation_QueryInterface(This,riid,ppvObject) \
- ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
-
-#define IAccessibleRelation_AddRef(This) \
- ( (This)->lpVtbl -> AddRef(This) )
-
-#define IAccessibleRelation_Release(This) \
- ( (This)->lpVtbl -> Release(This) )
-
-
-#define IAccessibleRelation_get_relationType(This,relationType) \
- ( (This)->lpVtbl -> get_relationType(This,relationType) )
-
-#define IAccessibleRelation_get_localizedRelationType(This,localizedRelationType) \
- ( (This)->lpVtbl -> get_localizedRelationType(This,localizedRelationType) )
-
-#define IAccessibleRelation_get_nTargets(This,nTargets) \
- ( (This)->lpVtbl -> get_nTargets(This,nTargets) )
-
-#define IAccessibleRelation_get_target(This,targetIndex,target) \
- ( (This)->lpVtbl -> get_target(This,targetIndex,target) )
-
-#define IAccessibleRelation_get_targets(This,maxTargets,targets,nTargets) \
- ( (This)->lpVtbl -> get_targets(This,maxTargets,targets,nTargets) )
-
-#endif /* COBJMACROS */
-
-
-#endif /* C style interface */
-
-
-
-
-#endif /* __IAccessibleRelation_INTERFACE_DEFINED__ */
-
-
-/* Additional Prototypes for ALL interfaces */
-
-unsigned long __RPC_USER BSTR_UserSize( unsigned long *, unsigned long , BSTR * );
-unsigned char * __RPC_USER BSTR_UserMarshal( unsigned long *, unsigned char *, BSTR * );
-unsigned char * __RPC_USER BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * );
-void __RPC_USER BSTR_UserFree( unsigned long *, BSTR * );
-
-/* end of Additional Prototypes */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleRelation_i.c b/src/3rdparty/iaccessible2/generated/amd64/AccessibleRelation_i.c
deleted file mode 100644
index 2ab3837a27..0000000000
--- a/src/3rdparty/iaccessible2/generated/amd64/AccessibleRelation_i.c
+++ /dev/null
@@ -1,79 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
-
-/* link this file in with the server and any clients */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:58 2012
- */
-/* Compiler settings for AccessibleRelation.idl:
- Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-
-#include <rpc.h>
-#include <rpcndr.h>
-
-#ifdef _MIDL_USE_GUIDDEF_
-
-#ifndef INITGUID
-#define INITGUID
-#include <guiddef.h>
-#undef INITGUID
-#else
-#include <guiddef.h>
-#endif
-
-#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
- DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
-
-#else // !_MIDL_USE_GUIDDEF_
-
-#ifndef __IID_DEFINED__
-#define __IID_DEFINED__
-
-typedef struct _IID
-{
- unsigned long x;
- unsigned short s1;
- unsigned short s2;
- unsigned char c[8];
-} IID;
-
-#endif // __IID_DEFINED__
-
-#ifndef CLSID_DEFINED
-#define CLSID_DEFINED
-typedef IID CLSID;
-#endif // CLSID_DEFINED
-
-#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
- const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
-
-#endif !_MIDL_USE_GUIDDEF_
-
-MIDL_DEFINE_GUID(IID, IID_IAccessibleRelation,0x7CDF86EE,0xC3DA,0x496a,0xBD,0xA4,0x28,0x1B,0x33,0x6E,0x1F,0xDC);
-
-#undef MIDL_DEFINE_GUID
-
-#ifdef __cplusplus
-}
-#endif
-
-
-
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleRelation_p.c b/src/3rdparty/iaccessible2/generated/amd64/AccessibleRelation_p.c
deleted file mode 100644
index e02cf7254c..0000000000
--- a/src/3rdparty/iaccessible2/generated/amd64/AccessibleRelation_p.c
+++ /dev/null
@@ -1,520 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the proxy stub code */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:58 2012
- */
-/* Compiler settings for AccessibleRelation.idl:
- Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#if defined(_M_AMD64)
-
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-#if _MSC_VER >= 1200
-#pragma warning(push)
-#endif
-
-#pragma warning( disable: 4211 ) /* redefine extern to static */
-#pragma warning( disable: 4232 ) /* dllimport identity*/
-#pragma warning( disable: 4024 ) /* array to pointer mapping*/
-#pragma warning( disable: 4152 ) /* function/data pointer conversion in expression */
-
-#define USE_STUBLESS_PROXY
-
-
-/* verify that the <rpcproxy.h> version is high enough to compile this file*/
-#ifndef __REDQ_RPCPROXY_H_VERSION__
-#define __REQUIRED_RPCPROXY_H_VERSION__ 475
-#endif
-
-
-#include "rpcproxy.h"
-#ifndef __RPCPROXY_H_VERSION__
-#error this stub requires an updated version of <rpcproxy.h>
-#endif /* __RPCPROXY_H_VERSION__ */
-
-
-#include "AccessibleRelation.h"
-
-#define TYPE_FORMAT_STRING_SIZE 95
-#define PROC_FORMAT_STRING_SIZE 209
-#define EXPR_FORMAT_STRING_SIZE 1
-#define TRANSMIT_AS_TABLE_SIZE 0
-#define WIRE_MARSHAL_TABLE_SIZE 1
-
-typedef struct _AccessibleRelation_MIDL_TYPE_FORMAT_STRING
- {
- short Pad;
- unsigned char Format[ TYPE_FORMAT_STRING_SIZE ];
- } AccessibleRelation_MIDL_TYPE_FORMAT_STRING;
-
-typedef struct _AccessibleRelation_MIDL_PROC_FORMAT_STRING
- {
- short Pad;
- unsigned char Format[ PROC_FORMAT_STRING_SIZE ];
- } AccessibleRelation_MIDL_PROC_FORMAT_STRING;
-
-typedef struct _AccessibleRelation_MIDL_EXPR_FORMAT_STRING
- {
- long Pad;
- unsigned char Format[ EXPR_FORMAT_STRING_SIZE ];
- } AccessibleRelation_MIDL_EXPR_FORMAT_STRING;
-
-
-static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax =
-{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}};
-
-
-extern const AccessibleRelation_MIDL_TYPE_FORMAT_STRING AccessibleRelation__MIDL_TypeFormatString;
-extern const AccessibleRelation_MIDL_PROC_FORMAT_STRING AccessibleRelation__MIDL_ProcFormatString;
-extern const AccessibleRelation_MIDL_EXPR_FORMAT_STRING AccessibleRelation__MIDL_ExprFormatString;
-
-
-extern const MIDL_STUB_DESC Object_StubDesc;
-
-
-extern const MIDL_SERVER_INFO IAccessibleRelation_ServerInfo;
-extern const MIDL_STUBLESS_PROXY_INFO IAccessibleRelation_ProxyInfo;
-
-
-extern const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ];
-
-#if !defined(__RPC_WIN64__)
-#error Invalid build platform for this stub.
-#endif
-
-static const AccessibleRelation_MIDL_PROC_FORMAT_STRING AccessibleRelation__MIDL_ProcFormatString =
- {
- 0,
- {
-
- /* Procedure get_relationType */
-
- 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 2 */ NdrFcLong( 0x0 ), /* 0 */
-/* 6 */ NdrFcShort( 0x3 ), /* 3 */
-/* 8 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 10 */ NdrFcShort( 0x0 ), /* 0 */
-/* 12 */ NdrFcShort( 0x8 ), /* 8 */
-/* 14 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x2, /* 2 */
-/* 16 */ 0xa, /* 10 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 18 */ NdrFcShort( 0x1 ), /* 1 */
-/* 20 */ NdrFcShort( 0x0 ), /* 0 */
-/* 22 */ NdrFcShort( 0x0 ), /* 0 */
-/* 24 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter relationType */
-
-/* 26 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
-/* 28 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 30 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
-
- /* Return value */
-
-/* 32 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 34 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 36 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_localizedRelationType */
-
-/* 38 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 40 */ NdrFcLong( 0x0 ), /* 0 */
-/* 44 */ NdrFcShort( 0x4 ), /* 4 */
-/* 46 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 48 */ NdrFcShort( 0x0 ), /* 0 */
-/* 50 */ NdrFcShort( 0x8 ), /* 8 */
-/* 52 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x2, /* 2 */
-/* 54 */ 0xa, /* 10 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 56 */ NdrFcShort( 0x1 ), /* 1 */
-/* 58 */ NdrFcShort( 0x0 ), /* 0 */
-/* 60 */ NdrFcShort( 0x0 ), /* 0 */
-/* 62 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter localizedRelationType */
-
-/* 64 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
-/* 66 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 68 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
-
- /* Return value */
-
-/* 70 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 72 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 74 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_nTargets */
-
-/* 76 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 78 */ NdrFcLong( 0x0 ), /* 0 */
-/* 82 */ NdrFcShort( 0x5 ), /* 5 */
-/* 84 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 86 */ NdrFcShort( 0x0 ), /* 0 */
-/* 88 */ NdrFcShort( 0x24 ), /* 36 */
-/* 90 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 92 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 94 */ NdrFcShort( 0x0 ), /* 0 */
-/* 96 */ NdrFcShort( 0x0 ), /* 0 */
-/* 98 */ NdrFcShort( 0x0 ), /* 0 */
-/* 100 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter nTargets */
-
-/* 102 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 104 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 106 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 108 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 110 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 112 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_target */
-
-/* 114 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 116 */ NdrFcLong( 0x0 ), /* 0 */
-/* 120 */ NdrFcShort( 0x6 ), /* 6 */
-/* 122 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
-/* 124 */ NdrFcShort( 0x8 ), /* 8 */
-/* 126 */ NdrFcShort( 0x8 ), /* 8 */
-/* 128 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x3, /* 3 */
-/* 130 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 132 */ NdrFcShort( 0x0 ), /* 0 */
-/* 134 */ NdrFcShort( 0x0 ), /* 0 */
-/* 136 */ NdrFcShort( 0x0 ), /* 0 */
-/* 138 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter targetIndex */
-
-/* 140 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 142 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 144 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter target */
-
-/* 146 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
-/* 148 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 150 */ NdrFcShort( 0x2e ), /* Type Offset=46 */
-
- /* Return value */
-
-/* 152 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 154 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 156 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_targets */
-
-/* 158 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 160 */ NdrFcLong( 0x0 ), /* 0 */
-/* 164 */ NdrFcShort( 0x7 ), /* 7 */
-/* 166 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
-/* 168 */ NdrFcShort( 0x8 ), /* 8 */
-/* 170 */ NdrFcShort( 0x24 ), /* 36 */
-/* 172 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x4, /* 4 */
-/* 174 */ 0xa, /* 10 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 176 */ NdrFcShort( 0x1 ), /* 1 */
-/* 178 */ NdrFcShort( 0x0 ), /* 0 */
-/* 180 */ NdrFcShort( 0x0 ), /* 0 */
-/* 182 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter maxTargets */
-
-/* 184 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 186 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 188 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter targets */
-
-/* 190 */ NdrFcShort( 0x113 ), /* Flags: must size, must free, out, simple ref, */
-/* 192 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 194 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
-
- /* Parameter nTargets */
-
-/* 196 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 198 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 200 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 202 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 204 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
-/* 206 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- 0x0
- }
- };
-
-static const AccessibleRelation_MIDL_TYPE_FORMAT_STRING AccessibleRelation__MIDL_TypeFormatString =
- {
- 0,
- {
- NdrFcShort( 0x0 ), /* 0 */
-/* 2 */
- 0x11, 0x4, /* FC_RP [alloced_on_stack] */
-/* 4 */ NdrFcShort( 0x1c ), /* Offset= 28 (32) */
-/* 6 */
- 0x13, 0x0, /* FC_OP */
-/* 8 */ NdrFcShort( 0xe ), /* Offset= 14 (22) */
-/* 10 */
- 0x1b, /* FC_CARRAY */
- 0x1, /* 1 */
-/* 12 */ NdrFcShort( 0x2 ), /* 2 */
-/* 14 */ 0x9, /* Corr desc: FC_ULONG */
- 0x0, /* */
-/* 16 */ NdrFcShort( 0xfffc ), /* -4 */
-/* 18 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 20 */ 0x6, /* FC_SHORT */
- 0x5b, /* FC_END */
-/* 22 */
- 0x17, /* FC_CSTRUCT */
- 0x3, /* 3 */
-/* 24 */ NdrFcShort( 0x8 ), /* 8 */
-/* 26 */ NdrFcShort( 0xfff0 ), /* Offset= -16 (10) */
-/* 28 */ 0x8, /* FC_LONG */
- 0x8, /* FC_LONG */
-/* 30 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-/* 32 */ 0xb4, /* FC_USER_MARSHAL */
- 0x83, /* 131 */
-/* 34 */ NdrFcShort( 0x0 ), /* 0 */
-/* 36 */ NdrFcShort( 0x8 ), /* 8 */
-/* 38 */ NdrFcShort( 0x0 ), /* 0 */
-/* 40 */ NdrFcShort( 0xffde ), /* Offset= -34 (6) */
-/* 42 */
- 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
-/* 44 */ 0x8, /* FC_LONG */
- 0x5c, /* FC_PAD */
-/* 46 */
- 0x11, 0x10, /* FC_RP [pointer_deref] */
-/* 48 */ NdrFcShort( 0x2 ), /* Offset= 2 (50) */
-/* 50 */
- 0x2f, /* FC_IP */
- 0x5a, /* FC_CONSTANT_IID */
-/* 52 */ NdrFcLong( 0x0 ), /* 0 */
-/* 56 */ NdrFcShort( 0x0 ), /* 0 */
-/* 58 */ NdrFcShort( 0x0 ), /* 0 */
-/* 60 */ 0xc0, /* 192 */
- 0x0, /* 0 */
-/* 62 */ 0x0, /* 0 */
- 0x0, /* 0 */
-/* 64 */ 0x0, /* 0 */
- 0x0, /* 0 */
-/* 66 */ 0x0, /* 0 */
- 0x46, /* 70 */
-/* 68 */
- 0x11, 0x0, /* FC_RP */
-/* 70 */ NdrFcShort( 0x2 ), /* Offset= 2 (72) */
-/* 72 */
- 0x21, /* FC_BOGUS_ARRAY */
- 0x3, /* 3 */
-/* 74 */ NdrFcShort( 0x0 ), /* 0 */
-/* 76 */ 0x28, /* Corr desc: parameter, FC_LONG */
- 0x0, /* */
-/* 78 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 80 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 82 */ 0x28, /* Corr desc: parameter, FC_LONG */
- 0x54, /* FC_DEREFERENCE */
-/* 84 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 86 */ NdrFcShort( 0x0 ), /* Corr flags: */
-/* 88 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
- 0x0, /* 0 */
-/* 90 */ NdrFcShort( 0xffd8 ), /* Offset= -40 (50) */
-/* 92 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-
- 0x0
- }
- };
-
-static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] =
- {
-
- {
- BSTR_UserSize
- ,BSTR_UserMarshal
- ,BSTR_UserUnmarshal
- ,BSTR_UserFree
- }
-
- };
-
-
-
-/* Standard interface: __MIDL_itf_AccessibleRelation_0000_0000, ver. 0.0,
- GUID={0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}} */
-
-
-/* Object interface: IUnknown, ver. 0.0,
- GUID={0x00000000,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
-
-
-/* Object interface: IAccessibleRelation, ver. 0.0,
- GUID={0x7CDF86EE,0xC3DA,0x496a,{0xBD,0xA4,0x28,0x1B,0x33,0x6E,0x1F,0xDC}} */
-
-#pragma code_seg(".orpc")
-static const unsigned short IAccessibleRelation_FormatStringOffsetTable[] =
- {
- 0,
- 38,
- 76,
- 114,
- 158
- };
-
-static const MIDL_STUBLESS_PROXY_INFO IAccessibleRelation_ProxyInfo =
- {
- &Object_StubDesc,
- AccessibleRelation__MIDL_ProcFormatString.Format,
- &IAccessibleRelation_FormatStringOffsetTable[-3],
- 0,
- 0,
- 0
- };
-
-
-static const MIDL_SERVER_INFO IAccessibleRelation_ServerInfo =
- {
- &Object_StubDesc,
- 0,
- AccessibleRelation__MIDL_ProcFormatString.Format,
- &IAccessibleRelation_FormatStringOffsetTable[-3],
- 0,
- 0,
- 0,
- 0};
-CINTERFACE_PROXY_VTABLE(8) _IAccessibleRelationProxyVtbl =
-{
- &IAccessibleRelation_ProxyInfo,
- &IID_IAccessibleRelation,
- IUnknown_QueryInterface_Proxy,
- IUnknown_AddRef_Proxy,
- IUnknown_Release_Proxy ,
- (void *) (INT_PTR) -1 /* IAccessibleRelation::get_relationType */ ,
- (void *) (INT_PTR) -1 /* IAccessibleRelation::get_localizedRelationType */ ,
- (void *) (INT_PTR) -1 /* IAccessibleRelation::get_nTargets */ ,
- (void *) (INT_PTR) -1 /* IAccessibleRelation::get_target */ ,
- (void *) (INT_PTR) -1 /* IAccessibleRelation::get_targets */
-};
-
-const CInterfaceStubVtbl _IAccessibleRelationStubVtbl =
-{
- &IID_IAccessibleRelation,
- &IAccessibleRelation_ServerInfo,
- 8,
- 0, /* pure interpreted */
- CStdStubBuffer_METHODS
-};
-
-static const MIDL_STUB_DESC Object_StubDesc =
- {
- 0,
- NdrOleAllocate,
- NdrOleFree,
- 0,
- 0,
- 0,
- 0,
- 0,
- AccessibleRelation__MIDL_TypeFormatString.Format,
- 1, /* -error bounds_check flag */
- 0x50002, /* Ndr library version */
- 0,
- 0x700022b, /* MIDL Version 7.0.555 */
- 0,
- UserMarshalRoutines,
- 0, /* notify & notify_flag routine table */
- 0x1, /* MIDL flag */
- 0, /* cs routines */
- 0, /* proxy/server info */
- 0
- };
-
-const CInterfaceProxyVtbl * const _AccessibleRelation_ProxyVtblList[] =
-{
- ( CInterfaceProxyVtbl *) &_IAccessibleRelationProxyVtbl,
- 0
-};
-
-const CInterfaceStubVtbl * const _AccessibleRelation_StubVtblList[] =
-{
- ( CInterfaceStubVtbl *) &_IAccessibleRelationStubVtbl,
- 0
-};
-
-PCInterfaceName const _AccessibleRelation_InterfaceNamesList[] =
-{
- "IAccessibleRelation",
- 0
-};
-
-
-#define _AccessibleRelation_CHECK_IID(n) IID_GENERIC_CHECK_IID( _AccessibleRelation, pIID, n)
-
-int __stdcall _AccessibleRelation_IID_Lookup( const IID * pIID, int * pIndex )
-{
-
- if(!_AccessibleRelation_CHECK_IID(0))
- {
- *pIndex = 0;
- return 1;
- }
-
- return 0;
-}
-
-const ExtendedProxyFileInfo AccessibleRelation_ProxyFileInfo =
-{
- (PCInterfaceProxyVtblList *) & _AccessibleRelation_ProxyVtblList,
- (PCInterfaceStubVtblList *) & _AccessibleRelation_StubVtblList,
- (const PCInterfaceName * ) & _AccessibleRelation_InterfaceNamesList,
- 0, /* no delegation */
- & _AccessibleRelation_IID_Lookup,
- 1,
- 2,
- 0, /* table of [async_uuid] interfaces */
- 0, /* Filler1 */
- 0, /* Filler2 */
- 0 /* Filler3 */
-};
-#if _MSC_VER >= 1200
-#pragma warning(pop)
-#endif
-
-
-#endif /* defined(_M_AMD64)*/
-
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleRole.h b/src/3rdparty/iaccessible2/generated/amd64/AccessibleRole.h
deleted file mode 100644
index bee6466b7c..0000000000
--- a/src/3rdparty/iaccessible2/generated/amd64/AccessibleRole.h
+++ /dev/null
@@ -1,118 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the definitions for the interfaces */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:59 2012
- */
-/* Compiler settings for AccessibleRole.idl:
- Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-
-
-/* verify that the <rpcndr.h> version is high enough to compile this file*/
-#ifndef __REQUIRED_RPCNDR_H_VERSION__
-#define __REQUIRED_RPCNDR_H_VERSION__ 475
-#endif
-
-#include "rpc.h"
-#include "rpcndr.h"
-
-#ifndef __RPCNDR_H_VERSION__
-#error this stub requires an updated version of <rpcndr.h>
-#endif // __RPCNDR_H_VERSION__
-
-
-#ifndef __AccessibleRole_h__
-#define __AccessibleRole_h__
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-#pragma once
-#endif
-
-/* Forward Declarations */
-
-/* header files for imported files */
-#include "objidl.h"
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-
-/* interface __MIDL_itf_AccessibleRole_0000_0000 */
-/* [local] */
-
-
-enum IA2Role
- { IA2_ROLE_UNKNOWN = 0,
- IA2_ROLE_CANVAS = 0x401,
- IA2_ROLE_CAPTION = ( IA2_ROLE_CANVAS + 1 ) ,
- IA2_ROLE_CHECK_MENU_ITEM = ( IA2_ROLE_CAPTION + 1 ) ,
- IA2_ROLE_COLOR_CHOOSER = ( IA2_ROLE_CHECK_MENU_ITEM + 1 ) ,
- IA2_ROLE_DATE_EDITOR = ( IA2_ROLE_COLOR_CHOOSER + 1 ) ,
- IA2_ROLE_DESKTOP_ICON = ( IA2_ROLE_DATE_EDITOR + 1 ) ,
- IA2_ROLE_DESKTOP_PANE = ( IA2_ROLE_DESKTOP_ICON + 1 ) ,
- IA2_ROLE_DIRECTORY_PANE = ( IA2_ROLE_DESKTOP_PANE + 1 ) ,
- IA2_ROLE_EDITBAR = ( IA2_ROLE_DIRECTORY_PANE + 1 ) ,
- IA2_ROLE_EMBEDDED_OBJECT = ( IA2_ROLE_EDITBAR + 1 ) ,
- IA2_ROLE_ENDNOTE = ( IA2_ROLE_EMBEDDED_OBJECT + 1 ) ,
- IA2_ROLE_FILE_CHOOSER = ( IA2_ROLE_ENDNOTE + 1 ) ,
- IA2_ROLE_FONT_CHOOSER = ( IA2_ROLE_FILE_CHOOSER + 1 ) ,
- IA2_ROLE_FOOTER = ( IA2_ROLE_FONT_CHOOSER + 1 ) ,
- IA2_ROLE_FOOTNOTE = ( IA2_ROLE_FOOTER + 1 ) ,
- IA2_ROLE_FORM = ( IA2_ROLE_FOOTNOTE + 1 ) ,
- IA2_ROLE_FRAME = ( IA2_ROLE_FORM + 1 ) ,
- IA2_ROLE_GLASS_PANE = ( IA2_ROLE_FRAME + 1 ) ,
- IA2_ROLE_HEADER = ( IA2_ROLE_GLASS_PANE + 1 ) ,
- IA2_ROLE_HEADING = ( IA2_ROLE_HEADER + 1 ) ,
- IA2_ROLE_ICON = ( IA2_ROLE_HEADING + 1 ) ,
- IA2_ROLE_IMAGE_MAP = ( IA2_ROLE_ICON + 1 ) ,
- IA2_ROLE_INPUT_METHOD_WINDOW = ( IA2_ROLE_IMAGE_MAP + 1 ) ,
- IA2_ROLE_INTERNAL_FRAME = ( IA2_ROLE_INPUT_METHOD_WINDOW + 1 ) ,
- IA2_ROLE_LABEL = ( IA2_ROLE_INTERNAL_FRAME + 1 ) ,
- IA2_ROLE_LAYERED_PANE = ( IA2_ROLE_LABEL + 1 ) ,
- IA2_ROLE_NOTE = ( IA2_ROLE_LAYERED_PANE + 1 ) ,
- IA2_ROLE_OPTION_PANE = ( IA2_ROLE_NOTE + 1 ) ,
- IA2_ROLE_PAGE = ( IA2_ROLE_OPTION_PANE + 1 ) ,
- IA2_ROLE_PARAGRAPH = ( IA2_ROLE_PAGE + 1 ) ,
- IA2_ROLE_RADIO_MENU_ITEM = ( IA2_ROLE_PARAGRAPH + 1 ) ,
- IA2_ROLE_REDUNDANT_OBJECT = ( IA2_ROLE_RADIO_MENU_ITEM + 1 ) ,
- IA2_ROLE_ROOT_PANE = ( IA2_ROLE_REDUNDANT_OBJECT + 1 ) ,
- IA2_ROLE_RULER = ( IA2_ROLE_ROOT_PANE + 1 ) ,
- IA2_ROLE_SCROLL_PANE = ( IA2_ROLE_RULER + 1 ) ,
- IA2_ROLE_SECTION = ( IA2_ROLE_SCROLL_PANE + 1 ) ,
- IA2_ROLE_SHAPE = ( IA2_ROLE_SECTION + 1 ) ,
- IA2_ROLE_SPLIT_PANE = ( IA2_ROLE_SHAPE + 1 ) ,
- IA2_ROLE_TEAR_OFF_MENU = ( IA2_ROLE_SPLIT_PANE + 1 ) ,
- IA2_ROLE_TERMINAL = ( IA2_ROLE_TEAR_OFF_MENU + 1 ) ,
- IA2_ROLE_TEXT_FRAME = ( IA2_ROLE_TERMINAL + 1 ) ,
- IA2_ROLE_TOGGLE_BUTTON = ( IA2_ROLE_TEXT_FRAME + 1 ) ,
- IA2_ROLE_VIEW_PORT = ( IA2_ROLE_TOGGLE_BUTTON + 1 ) ,
- IA2_ROLE_COMPLEMENTARY_CONTENT = ( IA2_ROLE_VIEW_PORT + 1 )
- } ;
-
-
-extern RPC_IF_HANDLE __MIDL_itf_AccessibleRole_0000_0000_v0_0_c_ifspec;
-extern RPC_IF_HANDLE __MIDL_itf_AccessibleRole_0000_0000_v0_0_s_ifspec;
-
-/* Additional Prototypes for ALL interfaces */
-
-/* end of Additional Prototypes */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleStates.h b/src/3rdparty/iaccessible2/generated/amd64/AccessibleStates.h
deleted file mode 100644
index fbb6ff99b3..0000000000
--- a/src/3rdparty/iaccessible2/generated/amd64/AccessibleStates.h
+++ /dev/null
@@ -1,95 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the definitions for the interfaces */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:59 2012
- */
-/* Compiler settings for AccessibleStates.idl:
- Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-
-
-/* verify that the <rpcndr.h> version is high enough to compile this file*/
-#ifndef __REQUIRED_RPCNDR_H_VERSION__
-#define __REQUIRED_RPCNDR_H_VERSION__ 475
-#endif
-
-#include "rpc.h"
-#include "rpcndr.h"
-
-#ifndef __RPCNDR_H_VERSION__
-#error this stub requires an updated version of <rpcndr.h>
-#endif // __RPCNDR_H_VERSION__
-
-
-#ifndef __AccessibleStates_h__
-#define __AccessibleStates_h__
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-#pragma once
-#endif
-
-/* Forward Declarations */
-
-/* header files for imported files */
-#include "objidl.h"
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-
-/* interface __MIDL_itf_AccessibleStates_0000_0000 */
-/* [local] */
-
-typedef long AccessibleStates;
-
-
-enum IA2States
- { IA2_STATE_ACTIVE = 0x1,
- IA2_STATE_ARMED = 0x2,
- IA2_STATE_DEFUNCT = 0x4,
- IA2_STATE_EDITABLE = 0x8,
- IA2_STATE_HORIZONTAL = 0x10,
- IA2_STATE_ICONIFIED = 0x20,
- IA2_STATE_INVALID_ENTRY = 0x40,
- IA2_STATE_MANAGES_DESCENDANTS = 0x80,
- IA2_STATE_MODAL = 0x100,
- IA2_STATE_MULTI_LINE = 0x200,
- IA2_STATE_OPAQUE = 0x400,
- IA2_STATE_REQUIRED = 0x800,
- IA2_STATE_SELECTABLE_TEXT = 0x1000,
- IA2_STATE_SINGLE_LINE = 0x2000,
- IA2_STATE_STALE = 0x4000,
- IA2_STATE_SUPPORTS_AUTOCOMPLETION = 0x8000,
- IA2_STATE_TRANSIENT = 0x10000,
- IA2_STATE_VERTICAL = 0x20000,
- IA2_STATE_CHECKABLE = 0x40000,
- IA2_STATE_PINNED = 0x80000
- } ;
-
-
-extern RPC_IF_HANDLE __MIDL_itf_AccessibleStates_0000_0000_v0_0_c_ifspec;
-extern RPC_IF_HANDLE __MIDL_itf_AccessibleStates_0000_0000_v0_0_s_ifspec;
-
-/* Additional Prototypes for ALL interfaces */
-
-/* end of Additional Prototypes */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleTable.h b/src/3rdparty/iaccessible2/generated/amd64/AccessibleTable.h
deleted file mode 100644
index fb9c7478a1..0000000000
--- a/src/3rdparty/iaccessible2/generated/amd64/AccessibleTable.h
+++ /dev/null
@@ -1,497 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the definitions for the interfaces */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:59 2012
- */
-/* Compiler settings for AccessibleTable.idl:
- Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-
-
-/* verify that the <rpcndr.h> version is high enough to compile this file*/
-#ifndef __REQUIRED_RPCNDR_H_VERSION__
-#define __REQUIRED_RPCNDR_H_VERSION__ 475
-#endif
-
-#include "rpc.h"
-#include "rpcndr.h"
-
-#ifndef __RPCNDR_H_VERSION__
-#error this stub requires an updated version of <rpcndr.h>
-#endif // __RPCNDR_H_VERSION__
-
-#ifndef COM_NO_WINDOWS_H
-#include "windows.h"
-#include "ole2.h"
-#endif /*COM_NO_WINDOWS_H*/
-
-#ifndef __AccessibleTable_h__
-#define __AccessibleTable_h__
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-#pragma once
-#endif
-
-/* Forward Declarations */
-
-#ifndef __IAccessibleTable_FWD_DEFINED__
-#define __IAccessibleTable_FWD_DEFINED__
-typedef interface IAccessibleTable IAccessibleTable;
-#endif /* __IAccessibleTable_FWD_DEFINED__ */
-
-
-/* header files for imported files */
-#include "objidl.h"
-#include "oaidl.h"
-#include "oleacc.h"
-#include "Accessible2.h"
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-
-#ifndef __IAccessibleTable_INTERFACE_DEFINED__
-#define __IAccessibleTable_INTERFACE_DEFINED__
-
-/* interface IAccessibleTable */
-/* [uuid][object] */
-
-
-EXTERN_C const IID IID_IAccessibleTable;
-
-#if defined(__cplusplus) && !defined(CINTERFACE)
-
- MIDL_INTERFACE("35AD8070-C20C-4fb4-B094-F4F7275DD469")
- IAccessibleTable : public IUnknown
- {
- public:
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_accessibleAt(
- /* [in] */ long row,
- /* [in] */ long column,
- /* [retval][out] */ IUnknown **accessible) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_caption(
- /* [retval][out] */ IUnknown **accessible) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_childIndex(
- /* [in] */ long rowIndex,
- /* [in] */ long columnIndex,
- /* [retval][out] */ long *cellIndex) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnDescription(
- /* [in] */ long column,
- /* [retval][out] */ BSTR *description) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnExtentAt(
- /* [in] */ long row,
- /* [in] */ long column,
- /* [retval][out] */ long *nColumnsSpanned) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnHeader(
- /* [out] */ IAccessibleTable **accessibleTable,
- /* [retval][out] */ long *startingRowIndex) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnIndex(
- /* [in] */ long cellIndex,
- /* [retval][out] */ long *columnIndex) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nColumns(
- /* [retval][out] */ long *columnCount) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nRows(
- /* [retval][out] */ long *rowCount) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nSelectedChildren(
- /* [retval][out] */ long *cellCount) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nSelectedColumns(
- /* [retval][out] */ long *columnCount) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nSelectedRows(
- /* [retval][out] */ long *rowCount) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowDescription(
- /* [in] */ long row,
- /* [retval][out] */ BSTR *description) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowExtentAt(
- /* [in] */ long row,
- /* [in] */ long column,
- /* [retval][out] */ long *nRowsSpanned) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowHeader(
- /* [out] */ IAccessibleTable **accessibleTable,
- /* [retval][out] */ long *startingColumnIndex) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowIndex(
- /* [in] */ long cellIndex,
- /* [retval][out] */ long *rowIndex) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selectedChildren(
- /* [in] */ long maxChildren,
- /* [length_is][length_is][size_is][size_is][out] */ long **children,
- /* [retval][out] */ long *nChildren) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selectedColumns(
- /* [in] */ long maxColumns,
- /* [length_is][length_is][size_is][size_is][out] */ long **columns,
- /* [retval][out] */ long *nColumns) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selectedRows(
- /* [in] */ long maxRows,
- /* [length_is][length_is][size_is][size_is][out] */ long **rows,
- /* [retval][out] */ long *nRows) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_summary(
- /* [retval][out] */ IUnknown **accessible) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_isColumnSelected(
- /* [in] */ long column,
- /* [retval][out] */ boolean *isSelected) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_isRowSelected(
- /* [in] */ long row,
- /* [retval][out] */ boolean *isSelected) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_isSelected(
- /* [in] */ long row,
- /* [in] */ long column,
- /* [retval][out] */ boolean *isSelected) = 0;
-
- virtual HRESULT STDMETHODCALLTYPE selectRow(
- /* [in] */ long row) = 0;
-
- virtual HRESULT STDMETHODCALLTYPE selectColumn(
- /* [in] */ long column) = 0;
-
- virtual HRESULT STDMETHODCALLTYPE unselectRow(
- /* [in] */ long row) = 0;
-
- virtual HRESULT STDMETHODCALLTYPE unselectColumn(
- /* [in] */ long column) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowColumnExtentsAtIndex(
- /* [in] */ long index,
- /* [out] */ long *row,
- /* [out] */ long *column,
- /* [out] */ long *rowExtents,
- /* [out] */ long *columnExtents,
- /* [retval][out] */ boolean *isSelected) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_modelChange(
- /* [retval][out] */ IA2TableModelChange *modelChange) = 0;
-
- };
-
-#else /* C style interface */
-
- typedef struct IAccessibleTableVtbl
- {
- BEGIN_INTERFACE
-
- HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
- IAccessibleTable * This,
- /* [in] */ REFIID riid,
- /* [annotation][iid_is][out] */
- __RPC__deref_out void **ppvObject);
-
- ULONG ( STDMETHODCALLTYPE *AddRef )(
- IAccessibleTable * This);
-
- ULONG ( STDMETHODCALLTYPE *Release )(
- IAccessibleTable * This);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_accessibleAt )(
- IAccessibleTable * This,
- /* [in] */ long row,
- /* [in] */ long column,
- /* [retval][out] */ IUnknown **accessible);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_caption )(
- IAccessibleTable * This,
- /* [retval][out] */ IUnknown **accessible);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_childIndex )(
- IAccessibleTable * This,
- /* [in] */ long rowIndex,
- /* [in] */ long columnIndex,
- /* [retval][out] */ long *cellIndex);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnDescription )(
- IAccessibleTable * This,
- /* [in] */ long column,
- /* [retval][out] */ BSTR *description);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnExtentAt )(
- IAccessibleTable * This,
- /* [in] */ long row,
- /* [in] */ long column,
- /* [retval][out] */ long *nColumnsSpanned);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnHeader )(
- IAccessibleTable * This,
- /* [out] */ IAccessibleTable **accessibleTable,
- /* [retval][out] */ long *startingRowIndex);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnIndex )(
- IAccessibleTable * This,
- /* [in] */ long cellIndex,
- /* [retval][out] */ long *columnIndex);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nColumns )(
- IAccessibleTable * This,
- /* [retval][out] */ long *columnCount);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nRows )(
- IAccessibleTable * This,
- /* [retval][out] */ long *rowCount);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelectedChildren )(
- IAccessibleTable * This,
- /* [retval][out] */ long *cellCount);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelectedColumns )(
- IAccessibleTable * This,
- /* [retval][out] */ long *columnCount);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelectedRows )(
- IAccessibleTable * This,
- /* [retval][out] */ long *rowCount);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowDescription )(
- IAccessibleTable * This,
- /* [in] */ long row,
- /* [retval][out] */ BSTR *description);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowExtentAt )(
- IAccessibleTable * This,
- /* [in] */ long row,
- /* [in] */ long column,
- /* [retval][out] */ long *nRowsSpanned);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowHeader )(
- IAccessibleTable * This,
- /* [out] */ IAccessibleTable **accessibleTable,
- /* [retval][out] */ long *startingColumnIndex);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowIndex )(
- IAccessibleTable * This,
- /* [in] */ long cellIndex,
- /* [retval][out] */ long *rowIndex);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectedChildren )(
- IAccessibleTable * This,
- /* [in] */ long maxChildren,
- /* [length_is][length_is][size_is][size_is][out] */ long **children,
- /* [retval][out] */ long *nChildren);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectedColumns )(
- IAccessibleTable * This,
- /* [in] */ long maxColumns,
- /* [length_is][length_is][size_is][size_is][out] */ long **columns,
- /* [retval][out] */ long *nColumns);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectedRows )(
- IAccessibleTable * This,
- /* [in] */ long maxRows,
- /* [length_is][length_is][size_is][size_is][out] */ long **rows,
- /* [retval][out] */ long *nRows);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_summary )(
- IAccessibleTable * This,
- /* [retval][out] */ IUnknown **accessible);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isColumnSelected )(
- IAccessibleTable * This,
- /* [in] */ long column,
- /* [retval][out] */ boolean *isSelected);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isRowSelected )(
- IAccessibleTable * This,
- /* [in] */ long row,
- /* [retval][out] */ boolean *isSelected);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isSelected )(
- IAccessibleTable * This,
- /* [in] */ long row,
- /* [in] */ long column,
- /* [retval][out] */ boolean *isSelected);
-
- HRESULT ( STDMETHODCALLTYPE *selectRow )(
- IAccessibleTable * This,
- /* [in] */ long row);
-
- HRESULT ( STDMETHODCALLTYPE *selectColumn )(
- IAccessibleTable * This,
- /* [in] */ long column);
-
- HRESULT ( STDMETHODCALLTYPE *unselectRow )(
- IAccessibleTable * This,
- /* [in] */ long row);
-
- HRESULT ( STDMETHODCALLTYPE *unselectColumn )(
- IAccessibleTable * This,
- /* [in] */ long column);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowColumnExtentsAtIndex )(
- IAccessibleTable * This,
- /* [in] */ long index,
- /* [out] */ long *row,
- /* [out] */ long *column,
- /* [out] */ long *rowExtents,
- /* [out] */ long *columnExtents,
- /* [retval][out] */ boolean *isSelected);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_modelChange )(
- IAccessibleTable * This,
- /* [retval][out] */ IA2TableModelChange *modelChange);
-
- END_INTERFACE
- } IAccessibleTableVtbl;
-
- interface IAccessibleTable
- {
- CONST_VTBL struct IAccessibleTableVtbl *lpVtbl;
- };
-
-
-
-#ifdef COBJMACROS
-
-
-#define IAccessibleTable_QueryInterface(This,riid,ppvObject) \
- ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
-
-#define IAccessibleTable_AddRef(This) \
- ( (This)->lpVtbl -> AddRef(This) )
-
-#define IAccessibleTable_Release(This) \
- ( (This)->lpVtbl -> Release(This) )
-
-
-#define IAccessibleTable_get_accessibleAt(This,row,column,accessible) \
- ( (This)->lpVtbl -> get_accessibleAt(This,row,column,accessible) )
-
-#define IAccessibleTable_get_caption(This,accessible) \
- ( (This)->lpVtbl -> get_caption(This,accessible) )
-
-#define IAccessibleTable_get_childIndex(This,rowIndex,columnIndex,cellIndex) \
- ( (This)->lpVtbl -> get_childIndex(This,rowIndex,columnIndex,cellIndex) )
-
-#define IAccessibleTable_get_columnDescription(This,column,description) \
- ( (This)->lpVtbl -> get_columnDescription(This,column,description) )
-
-#define IAccessibleTable_get_columnExtentAt(This,row,column,nColumnsSpanned) \
- ( (This)->lpVtbl -> get_columnExtentAt(This,row,column,nColumnsSpanned) )
-
-#define IAccessibleTable_get_columnHeader(This,accessibleTable,startingRowIndex) \
- ( (This)->lpVtbl -> get_columnHeader(This,accessibleTable,startingRowIndex) )
-
-#define IAccessibleTable_get_columnIndex(This,cellIndex,columnIndex) \
- ( (This)->lpVtbl -> get_columnIndex(This,cellIndex,columnIndex) )
-
-#define IAccessibleTable_get_nColumns(This,columnCount) \
- ( (This)->lpVtbl -> get_nColumns(This,columnCount) )
-
-#define IAccessibleTable_get_nRows(This,rowCount) \
- ( (This)->lpVtbl -> get_nRows(This,rowCount) )
-
-#define IAccessibleTable_get_nSelectedChildren(This,cellCount) \
- ( (This)->lpVtbl -> get_nSelectedChildren(This,cellCount) )
-
-#define IAccessibleTable_get_nSelectedColumns(This,columnCount) \
- ( (This)->lpVtbl -> get_nSelectedColumns(This,columnCount) )
-
-#define IAccessibleTable_get_nSelectedRows(This,rowCount) \
- ( (This)->lpVtbl -> get_nSelectedRows(This,rowCount) )
-
-#define IAccessibleTable_get_rowDescription(This,row,description) \
- ( (This)->lpVtbl -> get_rowDescription(This,row,description) )
-
-#define IAccessibleTable_get_rowExtentAt(This,row,column,nRowsSpanned) \
- ( (This)->lpVtbl -> get_rowExtentAt(This,row,column,nRowsSpanned) )
-
-#define IAccessibleTable_get_rowHeader(This,accessibleTable,startingColumnIndex) \
- ( (This)->lpVtbl -> get_rowHeader(This,accessibleTable,startingColumnIndex) )
-
-#define IAccessibleTable_get_rowIndex(This,cellIndex,rowIndex) \
- ( (This)->lpVtbl -> get_rowIndex(This,cellIndex,rowIndex) )
-
-#define IAccessibleTable_get_selectedChildren(This,maxChildren,children,nChildren) \
- ( (This)->lpVtbl -> get_selectedChildren(This,maxChildren,children,nChildren) )
-
-#define IAccessibleTable_get_selectedColumns(This,maxColumns,columns,nColumns) \
- ( (This)->lpVtbl -> get_selectedColumns(This,maxColumns,columns,nColumns) )
-
-#define IAccessibleTable_get_selectedRows(This,maxRows,rows,nRows) \
- ( (This)->lpVtbl -> get_selectedRows(This,maxRows,rows,nRows) )
-
-#define IAccessibleTable_get_summary(This,accessible) \
- ( (This)->lpVtbl -> get_summary(This,accessible) )
-
-#define IAccessibleTable_get_isColumnSelected(This,column,isSelected) \
- ( (This)->lpVtbl -> get_isColumnSelected(This,column,isSelected) )
-
-#define IAccessibleTable_get_isRowSelected(This,row,isSelected) \
- ( (This)->lpVtbl -> get_isRowSelected(This,row,isSelected) )
-
-#define IAccessibleTable_get_isSelected(This,row,column,isSelected) \
- ( (This)->lpVtbl -> get_isSelected(This,row,column,isSelected) )
-
-#define IAccessibleTable_selectRow(This,row) \
- ( (This)->lpVtbl -> selectRow(This,row) )
-
-#define IAccessibleTable_selectColumn(This,column) \
- ( (This)->lpVtbl -> selectColumn(This,column) )
-
-#define IAccessibleTable_unselectRow(This,row) \
- ( (This)->lpVtbl -> unselectRow(This,row) )
-
-#define IAccessibleTable_unselectColumn(This,column) \
- ( (This)->lpVtbl -> unselectColumn(This,column) )
-
-#define IAccessibleTable_get_rowColumnExtentsAtIndex(This,index,row,column,rowExtents,columnExtents,isSelected) \
- ( (This)->lpVtbl -> get_rowColumnExtentsAtIndex(This,index,row,column,rowExtents,columnExtents,isSelected) )
-
-#define IAccessibleTable_get_modelChange(This,modelChange) \
- ( (This)->lpVtbl -> get_modelChange(This,modelChange) )
-
-#endif /* COBJMACROS */
-
-
-#endif /* C style interface */
-
-
-
-
-#endif /* __IAccessibleTable_INTERFACE_DEFINED__ */
-
-
-/* Additional Prototypes for ALL interfaces */
-
-unsigned long __RPC_USER BSTR_UserSize( unsigned long *, unsigned long , BSTR * );
-unsigned char * __RPC_USER BSTR_UserMarshal( unsigned long *, unsigned char *, BSTR * );
-unsigned char * __RPC_USER BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * );
-void __RPC_USER BSTR_UserFree( unsigned long *, BSTR * );
-
-/* end of Additional Prototypes */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleTable2.h b/src/3rdparty/iaccessible2/generated/amd64/AccessibleTable2.h
deleted file mode 100644
index eeacb21515..0000000000
--- a/src/3rdparty/iaccessible2/generated/amd64/AccessibleTable2.h
+++ /dev/null
@@ -1,367 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the definitions for the interfaces */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:59 2012
- */
-/* Compiler settings for AccessibleTable2.idl:
- Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-
-
-/* verify that the <rpcndr.h> version is high enough to compile this file*/
-#ifndef __REQUIRED_RPCNDR_H_VERSION__
-#define __REQUIRED_RPCNDR_H_VERSION__ 475
-#endif
-
-#include "rpc.h"
-#include "rpcndr.h"
-
-#ifndef __RPCNDR_H_VERSION__
-#error this stub requires an updated version of <rpcndr.h>
-#endif // __RPCNDR_H_VERSION__
-
-#ifndef COM_NO_WINDOWS_H
-#include "windows.h"
-#include "ole2.h"
-#endif /*COM_NO_WINDOWS_H*/
-
-#ifndef __AccessibleTable2_h__
-#define __AccessibleTable2_h__
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-#pragma once
-#endif
-
-/* Forward Declarations */
-
-#ifndef __IAccessibleTable2_FWD_DEFINED__
-#define __IAccessibleTable2_FWD_DEFINED__
-typedef interface IAccessibleTable2 IAccessibleTable2;
-#endif /* __IAccessibleTable2_FWD_DEFINED__ */
-
-
-/* header files for imported files */
-#include "objidl.h"
-#include "oaidl.h"
-#include "oleacc.h"
-#include "Accessible2.h"
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-
-#ifndef __IAccessibleTable2_INTERFACE_DEFINED__
-#define __IAccessibleTable2_INTERFACE_DEFINED__
-
-/* interface IAccessibleTable2 */
-/* [uuid][object] */
-
-
-EXTERN_C const IID IID_IAccessibleTable2;
-
-#if defined(__cplusplus) && !defined(CINTERFACE)
-
- MIDL_INTERFACE("6167f295-06f0-4cdd-a1fa-02e25153d869")
- IAccessibleTable2 : public IUnknown
- {
- public:
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_cellAt(
- /* [in] */ long row,
- /* [in] */ long column,
- /* [retval][out] */ IUnknown **cell) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_caption(
- /* [retval][out] */ IUnknown **accessible) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnDescription(
- /* [in] */ long column,
- /* [retval][out] */ BSTR *description) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nColumns(
- /* [retval][out] */ long *columnCount) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nRows(
- /* [retval][out] */ long *rowCount) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nSelectedCells(
- /* [retval][out] */ long *cellCount) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nSelectedColumns(
- /* [retval][out] */ long *columnCount) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nSelectedRows(
- /* [retval][out] */ long *rowCount) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowDescription(
- /* [in] */ long row,
- /* [retval][out] */ BSTR *description) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selectedCells(
- /* [size_is][size_is][size_is][out] */ IUnknown ***cells,
- /* [retval][out] */ long *nSelectedCells) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selectedColumns(
- /* [size_is][size_is][out] */ long **selectedColumns,
- /* [retval][out] */ long *nColumns) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selectedRows(
- /* [size_is][size_is][out] */ long **selectedRows,
- /* [retval][out] */ long *nRows) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_summary(
- /* [retval][out] */ IUnknown **accessible) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_isColumnSelected(
- /* [in] */ long column,
- /* [retval][out] */ boolean *isSelected) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_isRowSelected(
- /* [in] */ long row,
- /* [retval][out] */ boolean *isSelected) = 0;
-
- virtual HRESULT STDMETHODCALLTYPE selectRow(
- /* [in] */ long row) = 0;
-
- virtual HRESULT STDMETHODCALLTYPE selectColumn(
- /* [in] */ long column) = 0;
-
- virtual HRESULT STDMETHODCALLTYPE unselectRow(
- /* [in] */ long row) = 0;
-
- virtual HRESULT STDMETHODCALLTYPE unselectColumn(
- /* [in] */ long column) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_modelChange(
- /* [retval][out] */ IA2TableModelChange *modelChange) = 0;
-
- };
-
-#else /* C style interface */
-
- typedef struct IAccessibleTable2Vtbl
- {
- BEGIN_INTERFACE
-
- HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
- IAccessibleTable2 * This,
- /* [in] */ REFIID riid,
- /* [annotation][iid_is][out] */
- __RPC__deref_out void **ppvObject);
-
- ULONG ( STDMETHODCALLTYPE *AddRef )(
- IAccessibleTable2 * This);
-
- ULONG ( STDMETHODCALLTYPE *Release )(
- IAccessibleTable2 * This);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_cellAt )(
- IAccessibleTable2 * This,
- /* [in] */ long row,
- /* [in] */ long column,
- /* [retval][out] */ IUnknown **cell);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_caption )(
- IAccessibleTable2 * This,
- /* [retval][out] */ IUnknown **accessible);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnDescription )(
- IAccessibleTable2 * This,
- /* [in] */ long column,
- /* [retval][out] */ BSTR *description);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nColumns )(
- IAccessibleTable2 * This,
- /* [retval][out] */ long *columnCount);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nRows )(
- IAccessibleTable2 * This,
- /* [retval][out] */ long *rowCount);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelectedCells )(
- IAccessibleTable2 * This,
- /* [retval][out] */ long *cellCount);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelectedColumns )(
- IAccessibleTable2 * This,
- /* [retval][out] */ long *columnCount);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelectedRows )(
- IAccessibleTable2 * This,
- /* [retval][out] */ long *rowCount);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowDescription )(
- IAccessibleTable2 * This,
- /* [in] */ long row,
- /* [retval][out] */ BSTR *description);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectedCells )(
- IAccessibleTable2 * This,
- /* [size_is][size_is][size_is][out] */ IUnknown ***cells,
- /* [retval][out] */ long *nSelectedCells);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectedColumns )(
- IAccessibleTable2 * This,
- /* [size_is][size_is][out] */ long **selectedColumns,
- /* [retval][out] */ long *nColumns);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectedRows )(
- IAccessibleTable2 * This,
- /* [size_is][size_is][out] */ long **selectedRows,
- /* [retval][out] */ long *nRows);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_summary )(
- IAccessibleTable2 * This,
- /* [retval][out] */ IUnknown **accessible);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isColumnSelected )(
- IAccessibleTable2 * This,
- /* [in] */ long column,
- /* [retval][out] */ boolean *isSelected);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isRowSelected )(
- IAccessibleTable2 * This,
- /* [in] */ long row,
- /* [retval][out] */ boolean *isSelected);
-
- HRESULT ( STDMETHODCALLTYPE *selectRow )(
- IAccessibleTable2 * This,
- /* [in] */ long row);
-
- HRESULT ( STDMETHODCALLTYPE *selectColumn )(
- IAccessibleTable2 * This,
- /* [in] */ long column);
-
- HRESULT ( STDMETHODCALLTYPE *unselectRow )(
- IAccessibleTable2 * This,
- /* [in] */ long row);
-
- HRESULT ( STDMETHODCALLTYPE *unselectColumn )(
- IAccessibleTable2 * This,
- /* [in] */ long column);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_modelChange )(
- IAccessibleTable2 * This,
- /* [retval][out] */ IA2TableModelChange *modelChange);
-
- END_INTERFACE
- } IAccessibleTable2Vtbl;
-
- interface IAccessibleTable2
- {
- CONST_VTBL struct IAccessibleTable2Vtbl *lpVtbl;
- };
-
-
-
-#ifdef COBJMACROS
-
-
-#define IAccessibleTable2_QueryInterface(This,riid,ppvObject) \
- ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
-
-#define IAccessibleTable2_AddRef(This) \
- ( (This)->lpVtbl -> AddRef(This) )
-
-#define IAccessibleTable2_Release(This) \
- ( (This)->lpVtbl -> Release(This) )
-
-
-#define IAccessibleTable2_get_cellAt(This,row,column,cell) \
- ( (This)->lpVtbl -> get_cellAt(This,row,column,cell) )
-
-#define IAccessibleTable2_get_caption(This,accessible) \
- ( (This)->lpVtbl -> get_caption(This,accessible) )
-
-#define IAccessibleTable2_get_columnDescription(This,column,description) \
- ( (This)->lpVtbl -> get_columnDescription(This,column,description) )
-
-#define IAccessibleTable2_get_nColumns(This,columnCount) \
- ( (This)->lpVtbl -> get_nColumns(This,columnCount) )
-
-#define IAccessibleTable2_get_nRows(This,rowCount) \
- ( (This)->lpVtbl -> get_nRows(This,rowCount) )
-
-#define IAccessibleTable2_get_nSelectedCells(This,cellCount) \
- ( (This)->lpVtbl -> get_nSelectedCells(This,cellCount) )
-
-#define IAccessibleTable2_get_nSelectedColumns(This,columnCount) \
- ( (This)->lpVtbl -> get_nSelectedColumns(This,columnCount) )
-
-#define IAccessibleTable2_get_nSelectedRows(This,rowCount) \
- ( (This)->lpVtbl -> get_nSelectedRows(This,rowCount) )
-
-#define IAccessibleTable2_get_rowDescription(This,row,description) \
- ( (This)->lpVtbl -> get_rowDescription(This,row,description) )
-
-#define IAccessibleTable2_get_selectedCells(This,cells,nSelectedCells) \
- ( (This)->lpVtbl -> get_selectedCells(This,cells,nSelectedCells) )
-
-#define IAccessibleTable2_get_selectedColumns(This,selectedColumns,nColumns) \
- ( (This)->lpVtbl -> get_selectedColumns(This,selectedColumns,nColumns) )
-
-#define IAccessibleTable2_get_selectedRows(This,selectedRows,nRows) \
- ( (This)->lpVtbl -> get_selectedRows(This,selectedRows,nRows) )
-
-#define IAccessibleTable2_get_summary(This,accessible) \
- ( (This)->lpVtbl -> get_summary(This,accessible) )
-
-#define IAccessibleTable2_get_isColumnSelected(This,column,isSelected) \
- ( (This)->lpVtbl -> get_isColumnSelected(This,column,isSelected) )
-
-#define IAccessibleTable2_get_isRowSelected(This,row,isSelected) \
- ( (This)->lpVtbl -> get_isRowSelected(This,row,isSelected) )
-
-#define IAccessibleTable2_selectRow(This,row) \
- ( (This)->lpVtbl -> selectRow(This,row) )
-
-#define IAccessibleTable2_selectColumn(This,column) \
- ( (This)->lpVtbl -> selectColumn(This,column) )
-
-#define IAccessibleTable2_unselectRow(This,row) \
- ( (This)->lpVtbl -> unselectRow(This,row) )
-
-#define IAccessibleTable2_unselectColumn(This,column) \
- ( (This)->lpVtbl -> unselectColumn(This,column) )
-
-#define IAccessibleTable2_get_modelChange(This,modelChange) \
- ( (This)->lpVtbl -> get_modelChange(This,modelChange) )
-
-#endif /* COBJMACROS */
-
-
-#endif /* C style interface */
-
-
-
-
-#endif /* __IAccessibleTable2_INTERFACE_DEFINED__ */
-
-
-/* Additional Prototypes for ALL interfaces */
-
-unsigned long __RPC_USER BSTR_UserSize( unsigned long *, unsigned long , BSTR * );
-unsigned char * __RPC_USER BSTR_UserMarshal( unsigned long *, unsigned char *, BSTR * );
-unsigned char * __RPC_USER BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * );
-void __RPC_USER BSTR_UserFree( unsigned long *, BSTR * );
-
-/* end of Additional Prototypes */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleTable2_i.c b/src/3rdparty/iaccessible2/generated/amd64/AccessibleTable2_i.c
deleted file mode 100644
index 56e5f31fc0..0000000000
--- a/src/3rdparty/iaccessible2/generated/amd64/AccessibleTable2_i.c
+++ /dev/null
@@ -1,79 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
-
-/* link this file in with the server and any clients */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:59 2012
- */
-/* Compiler settings for AccessibleTable2.idl:
- Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-
-#include <rpc.h>
-#include <rpcndr.h>
-
-#ifdef _MIDL_USE_GUIDDEF_
-
-#ifndef INITGUID
-#define INITGUID
-#include <guiddef.h>
-#undef INITGUID
-#else
-#include <guiddef.h>
-#endif
-
-#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
- DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
-
-#else // !_MIDL_USE_GUIDDEF_
-
-#ifndef __IID_DEFINED__
-#define __IID_DEFINED__
-
-typedef struct _IID
-{
- unsigned long x;
- unsigned short s1;
- unsigned short s2;
- unsigned char c[8];
-} IID;
-
-#endif // __IID_DEFINED__
-
-#ifndef CLSID_DEFINED
-#define CLSID_DEFINED
-typedef IID CLSID;
-#endif // CLSID_DEFINED
-
-#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
- const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
-
-#endif !_MIDL_USE_GUIDDEF_
-
-MIDL_DEFINE_GUID(IID, IID_IAccessibleTable2,0x6167f295,0x06f0,0x4cdd,0xa1,0xfa,0x02,0xe2,0x51,0x53,0xd8,0x69);
-
-#undef MIDL_DEFINE_GUID
-
-#ifdef __cplusplus
-}
-#endif
-
-
-
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleTable2_p.c b/src/3rdparty/iaccessible2/generated/amd64/AccessibleTable2_p.c
deleted file mode 100644
index 02c603fde9..0000000000
--- a/src/3rdparty/iaccessible2/generated/amd64/AccessibleTable2_p.c
+++ /dev/null
@@ -1,1099 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the proxy stub code */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:59 2012
- */
-/* Compiler settings for AccessibleTable2.idl:
- Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#if defined(_M_AMD64)
-
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-#if _MSC_VER >= 1200
-#pragma warning(push)
-#endif
-
-#pragma warning( disable: 4211 ) /* redefine extern to static */
-#pragma warning( disable: 4232 ) /* dllimport identity*/
-#pragma warning( disable: 4024 ) /* array to pointer mapping*/
-#pragma warning( disable: 4152 ) /* function/data pointer conversion in expression */
-
-#define USE_STUBLESS_PROXY
-
-
-/* verify that the <rpcproxy.h> version is high enough to compile this file*/
-#ifndef __REDQ_RPCPROXY_H_VERSION__
-#define __REQUIRED_RPCPROXY_H_VERSION__ 475
-#endif
-
-
-#include "rpcproxy.h"
-#ifndef __RPCPROXY_H_VERSION__
-#error this stub requires an updated version of <rpcproxy.h>
-#endif /* __RPCPROXY_H_VERSION__ */
-
-
-#include "AccessibleTable2.h"
-
-#define TYPE_FORMAT_STRING_SIZE 141
-#define PROC_FORMAT_STRING_SIZE 815
-#define EXPR_FORMAT_STRING_SIZE 1
-#define TRANSMIT_AS_TABLE_SIZE 0
-#define WIRE_MARSHAL_TABLE_SIZE 1
-
-typedef struct _AccessibleTable2_MIDL_TYPE_FORMAT_STRING
- {
- short Pad;
- unsigned char Format[ TYPE_FORMAT_STRING_SIZE ];
- } AccessibleTable2_MIDL_TYPE_FORMAT_STRING;
-
-typedef struct _AccessibleTable2_MIDL_PROC_FORMAT_STRING
- {
- short Pad;
- unsigned char Format[ PROC_FORMAT_STRING_SIZE ];
- } AccessibleTable2_MIDL_PROC_FORMAT_STRING;
-
-typedef struct _AccessibleTable2_MIDL_EXPR_FORMAT_STRING
- {
- long Pad;
- unsigned char Format[ EXPR_FORMAT_STRING_SIZE ];
- } AccessibleTable2_MIDL_EXPR_FORMAT_STRING;
-
-
-static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax =
-{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}};
-
-
-extern const AccessibleTable2_MIDL_TYPE_FORMAT_STRING AccessibleTable2__MIDL_TypeFormatString;
-extern const AccessibleTable2_MIDL_PROC_FORMAT_STRING AccessibleTable2__MIDL_ProcFormatString;
-extern const AccessibleTable2_MIDL_EXPR_FORMAT_STRING AccessibleTable2__MIDL_ExprFormatString;
-
-
-extern const MIDL_STUB_DESC Object_StubDesc;
-
-
-extern const MIDL_SERVER_INFO IAccessibleTable2_ServerInfo;
-extern const MIDL_STUBLESS_PROXY_INFO IAccessibleTable2_ProxyInfo;
-
-
-extern const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ];
-
-#if !defined(__RPC_WIN64__)
-#error Invalid build platform for this stub.
-#endif
-
-static const AccessibleTable2_MIDL_PROC_FORMAT_STRING AccessibleTable2__MIDL_ProcFormatString =
- {
- 0,
- {
-
- /* Procedure get_cellAt */
-
- 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 2 */ NdrFcLong( 0x0 ), /* 0 */
-/* 6 */ NdrFcShort( 0x3 ), /* 3 */
-/* 8 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
-/* 10 */ NdrFcShort( 0x10 ), /* 16 */
-/* 12 */ NdrFcShort( 0x8 ), /* 8 */
-/* 14 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x4, /* 4 */
-/* 16 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 18 */ NdrFcShort( 0x0 ), /* 0 */
-/* 20 */ NdrFcShort( 0x0 ), /* 0 */
-/* 22 */ NdrFcShort( 0x0 ), /* 0 */
-/* 24 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter row */
-
-/* 26 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 28 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 30 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter column */
-
-/* 32 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 34 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 36 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter cell */
-
-/* 38 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
-/* 40 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 42 */ NdrFcShort( 0x2 ), /* Type Offset=2 */
-
- /* Return value */
-
-/* 44 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 46 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
-/* 48 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_caption */
-
-/* 50 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 52 */ NdrFcLong( 0x0 ), /* 0 */
-/* 56 */ NdrFcShort( 0x4 ), /* 4 */
-/* 58 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 60 */ NdrFcShort( 0x0 ), /* 0 */
-/* 62 */ NdrFcShort( 0x8 ), /* 8 */
-/* 64 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x2, /* 2 */
-/* 66 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 68 */ NdrFcShort( 0x0 ), /* 0 */
-/* 70 */ NdrFcShort( 0x0 ), /* 0 */
-/* 72 */ NdrFcShort( 0x0 ), /* 0 */
-/* 74 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter accessible */
-
-/* 76 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
-/* 78 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 80 */ NdrFcShort( 0x2 ), /* Type Offset=2 */
-
- /* Return value */
-
-/* 82 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 84 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 86 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_columnDescription */
-
-/* 88 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 90 */ NdrFcLong( 0x0 ), /* 0 */
-/* 94 */ NdrFcShort( 0x5 ), /* 5 */
-/* 96 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
-/* 98 */ NdrFcShort( 0x8 ), /* 8 */
-/* 100 */ NdrFcShort( 0x8 ), /* 8 */
-/* 102 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x3, /* 3 */
-/* 104 */ 0xa, /* 10 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 106 */ NdrFcShort( 0x1 ), /* 1 */
-/* 108 */ NdrFcShort( 0x0 ), /* 0 */
-/* 110 */ NdrFcShort( 0x0 ), /* 0 */
-/* 112 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter column */
-
-/* 114 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 116 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 118 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter description */
-
-/* 120 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
-/* 122 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 124 */ NdrFcShort( 0x36 ), /* Type Offset=54 */
-
- /* Return value */
-
-/* 126 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 128 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 130 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_nColumns */
-
-/* 132 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 134 */ NdrFcLong( 0x0 ), /* 0 */
-/* 138 */ NdrFcShort( 0x6 ), /* 6 */
-/* 140 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 142 */ NdrFcShort( 0x0 ), /* 0 */
-/* 144 */ NdrFcShort( 0x24 ), /* 36 */
-/* 146 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 148 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 150 */ NdrFcShort( 0x0 ), /* 0 */
-/* 152 */ NdrFcShort( 0x0 ), /* 0 */
-/* 154 */ NdrFcShort( 0x0 ), /* 0 */
-/* 156 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter columnCount */
-
-/* 158 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 160 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 162 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 164 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 166 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 168 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_nRows */
-
-/* 170 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 172 */ NdrFcLong( 0x0 ), /* 0 */
-/* 176 */ NdrFcShort( 0x7 ), /* 7 */
-/* 178 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 180 */ NdrFcShort( 0x0 ), /* 0 */
-/* 182 */ NdrFcShort( 0x24 ), /* 36 */
-/* 184 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 186 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 188 */ NdrFcShort( 0x0 ), /* 0 */
-/* 190 */ NdrFcShort( 0x0 ), /* 0 */
-/* 192 */ NdrFcShort( 0x0 ), /* 0 */
-/* 194 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter rowCount */
-
-/* 196 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 198 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 200 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 202 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 204 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 206 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_nSelectedCells */
-
-/* 208 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 210 */ NdrFcLong( 0x0 ), /* 0 */
-/* 214 */ NdrFcShort( 0x8 ), /* 8 */
-/* 216 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 218 */ NdrFcShort( 0x0 ), /* 0 */
-/* 220 */ NdrFcShort( 0x24 ), /* 36 */
-/* 222 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 224 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 226 */ NdrFcShort( 0x0 ), /* 0 */
-/* 228 */ NdrFcShort( 0x0 ), /* 0 */
-/* 230 */ NdrFcShort( 0x0 ), /* 0 */
-/* 232 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter cellCount */
-
-/* 234 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 236 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 238 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 240 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 242 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 244 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_nSelectedColumns */
-
-/* 246 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 248 */ NdrFcLong( 0x0 ), /* 0 */
-/* 252 */ NdrFcShort( 0x9 ), /* 9 */
-/* 254 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 256 */ NdrFcShort( 0x0 ), /* 0 */
-/* 258 */ NdrFcShort( 0x24 ), /* 36 */
-/* 260 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 262 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 264 */ NdrFcShort( 0x0 ), /* 0 */
-/* 266 */ NdrFcShort( 0x0 ), /* 0 */
-/* 268 */ NdrFcShort( 0x0 ), /* 0 */
-/* 270 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter columnCount */
-
-/* 272 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 274 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 276 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 278 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 280 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 282 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_nSelectedRows */
-
-/* 284 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 286 */ NdrFcLong( 0x0 ), /* 0 */
-/* 290 */ NdrFcShort( 0xa ), /* 10 */
-/* 292 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 294 */ NdrFcShort( 0x0 ), /* 0 */
-/* 296 */ NdrFcShort( 0x24 ), /* 36 */
-/* 298 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 300 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 302 */ NdrFcShort( 0x0 ), /* 0 */
-/* 304 */ NdrFcShort( 0x0 ), /* 0 */
-/* 306 */ NdrFcShort( 0x0 ), /* 0 */
-/* 308 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter rowCount */
-
-/* 310 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 312 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 314 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 316 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 318 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 320 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_rowDescription */
-
-/* 322 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 324 */ NdrFcLong( 0x0 ), /* 0 */
-/* 328 */ NdrFcShort( 0xb ), /* 11 */
-/* 330 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
-/* 332 */ NdrFcShort( 0x8 ), /* 8 */
-/* 334 */ NdrFcShort( 0x8 ), /* 8 */
-/* 336 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x3, /* 3 */
-/* 338 */ 0xa, /* 10 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 340 */ NdrFcShort( 0x1 ), /* 1 */
-/* 342 */ NdrFcShort( 0x0 ), /* 0 */
-/* 344 */ NdrFcShort( 0x0 ), /* 0 */
-/* 346 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter row */
-
-/* 348 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 350 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 352 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter description */
-
-/* 354 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
-/* 356 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 358 */ NdrFcShort( 0x36 ), /* Type Offset=54 */
-
- /* Return value */
-
-/* 360 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 362 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 364 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_selectedCells */
-
-/* 366 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 368 */ NdrFcLong( 0x0 ), /* 0 */
-/* 372 */ NdrFcShort( 0xc ), /* 12 */
-/* 374 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
-/* 376 */ NdrFcShort( 0x0 ), /* 0 */
-/* 378 */ NdrFcShort( 0x24 ), /* 36 */
-/* 380 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x3, /* 3 */
-/* 382 */ 0xa, /* 10 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 384 */ NdrFcShort( 0x1 ), /* 1 */
-/* 386 */ NdrFcShort( 0x0 ), /* 0 */
-/* 388 */ NdrFcShort( 0x0 ), /* 0 */
-/* 390 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter cells */
-
-/* 392 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
-/* 394 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 396 */ NdrFcShort( 0x44 ), /* Type Offset=68 */
-
- /* Parameter nSelectedCells */
-
-/* 398 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 400 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 402 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 404 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 406 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 408 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_selectedColumns */
-
-/* 410 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 412 */ NdrFcLong( 0x0 ), /* 0 */
-/* 416 */ NdrFcShort( 0xd ), /* 13 */
-/* 418 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
-/* 420 */ NdrFcShort( 0x0 ), /* 0 */
-/* 422 */ NdrFcShort( 0x24 ), /* 36 */
-/* 424 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x3, /* 3 */
-/* 426 */ 0xa, /* 10 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 428 */ NdrFcShort( 0x1 ), /* 1 */
-/* 430 */ NdrFcShort( 0x0 ), /* 0 */
-/* 432 */ NdrFcShort( 0x0 ), /* 0 */
-/* 434 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter selectedColumns */
-
-/* 436 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
-/* 438 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 440 */ NdrFcShort( 0x62 ), /* Type Offset=98 */
-
- /* Parameter nColumns */
-
-/* 442 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 444 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 446 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 448 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 450 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 452 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_selectedRows */
-
-/* 454 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 456 */ NdrFcLong( 0x0 ), /* 0 */
-/* 460 */ NdrFcShort( 0xe ), /* 14 */
-/* 462 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
-/* 464 */ NdrFcShort( 0x0 ), /* 0 */
-/* 466 */ NdrFcShort( 0x24 ), /* 36 */
-/* 468 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x3, /* 3 */
-/* 470 */ 0xa, /* 10 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 472 */ NdrFcShort( 0x1 ), /* 1 */
-/* 474 */ NdrFcShort( 0x0 ), /* 0 */
-/* 476 */ NdrFcShort( 0x0 ), /* 0 */
-/* 478 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter selectedRows */
-
-/* 480 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
-/* 482 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 484 */ NdrFcShort( 0x62 ), /* Type Offset=98 */
-
- /* Parameter nRows */
-
-/* 486 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 488 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 490 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 492 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 494 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 496 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_summary */
-
-/* 498 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 500 */ NdrFcLong( 0x0 ), /* 0 */
-/* 504 */ NdrFcShort( 0xf ), /* 15 */
-/* 506 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 508 */ NdrFcShort( 0x0 ), /* 0 */
-/* 510 */ NdrFcShort( 0x8 ), /* 8 */
-/* 512 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x2, /* 2 */
-/* 514 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 516 */ NdrFcShort( 0x0 ), /* 0 */
-/* 518 */ NdrFcShort( 0x0 ), /* 0 */
-/* 520 */ NdrFcShort( 0x0 ), /* 0 */
-/* 522 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter accessible */
-
-/* 524 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
-/* 526 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 528 */ NdrFcShort( 0x2 ), /* Type Offset=2 */
-
- /* Return value */
-
-/* 530 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 532 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 534 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_isColumnSelected */
-
-/* 536 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 538 */ NdrFcLong( 0x0 ), /* 0 */
-/* 542 */ NdrFcShort( 0x10 ), /* 16 */
-/* 544 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
-/* 546 */ NdrFcShort( 0x8 ), /* 8 */
-/* 548 */ NdrFcShort( 0x21 ), /* 33 */
-/* 550 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x3, /* 3 */
-/* 552 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 554 */ NdrFcShort( 0x0 ), /* 0 */
-/* 556 */ NdrFcShort( 0x0 ), /* 0 */
-/* 558 */ NdrFcShort( 0x0 ), /* 0 */
-/* 560 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter column */
-
-/* 562 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 564 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 566 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter isSelected */
-
-/* 568 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 570 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 572 */ 0x3, /* FC_SMALL */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 574 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 576 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 578 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_isRowSelected */
-
-/* 580 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 582 */ NdrFcLong( 0x0 ), /* 0 */
-/* 586 */ NdrFcShort( 0x11 ), /* 17 */
-/* 588 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
-/* 590 */ NdrFcShort( 0x8 ), /* 8 */
-/* 592 */ NdrFcShort( 0x21 ), /* 33 */
-/* 594 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x3, /* 3 */
-/* 596 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 598 */ NdrFcShort( 0x0 ), /* 0 */
-/* 600 */ NdrFcShort( 0x0 ), /* 0 */
-/* 602 */ NdrFcShort( 0x0 ), /* 0 */
-/* 604 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter row */
-
-/* 606 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 608 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 610 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter isSelected */
-
-/* 612 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 614 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 616 */ 0x3, /* FC_SMALL */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 618 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 620 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 622 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure selectRow */
-
-/* 624 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 626 */ NdrFcLong( 0x0 ), /* 0 */
-/* 630 */ NdrFcShort( 0x12 ), /* 18 */
-/* 632 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 634 */ NdrFcShort( 0x8 ), /* 8 */
-/* 636 */ NdrFcShort( 0x8 ), /* 8 */
-/* 638 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 640 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 642 */ NdrFcShort( 0x0 ), /* 0 */
-/* 644 */ NdrFcShort( 0x0 ), /* 0 */
-/* 646 */ NdrFcShort( 0x0 ), /* 0 */
-/* 648 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter row */
-
-/* 650 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 652 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 654 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 656 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 658 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 660 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure selectColumn */
-
-/* 662 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 664 */ NdrFcLong( 0x0 ), /* 0 */
-/* 668 */ NdrFcShort( 0x13 ), /* 19 */
-/* 670 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 672 */ NdrFcShort( 0x8 ), /* 8 */
-/* 674 */ NdrFcShort( 0x8 ), /* 8 */
-/* 676 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 678 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 680 */ NdrFcShort( 0x0 ), /* 0 */
-/* 682 */ NdrFcShort( 0x0 ), /* 0 */
-/* 684 */ NdrFcShort( 0x0 ), /* 0 */
-/* 686 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter column */
-
-/* 688 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 690 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 692 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 694 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 696 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 698 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure unselectRow */
-
-/* 700 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 702 */ NdrFcLong( 0x0 ), /* 0 */
-/* 706 */ NdrFcShort( 0x14 ), /* 20 */
-/* 708 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 710 */ NdrFcShort( 0x8 ), /* 8 */
-/* 712 */ NdrFcShort( 0x8 ), /* 8 */
-/* 714 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 716 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 718 */ NdrFcShort( 0x0 ), /* 0 */
-/* 720 */ NdrFcShort( 0x0 ), /* 0 */
-/* 722 */ NdrFcShort( 0x0 ), /* 0 */
-/* 724 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter row */
-
-/* 726 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 728 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 730 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 732 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 734 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 736 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure unselectColumn */
-
-/* 738 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 740 */ NdrFcLong( 0x0 ), /* 0 */
-/* 744 */ NdrFcShort( 0x15 ), /* 21 */
-/* 746 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 748 */ NdrFcShort( 0x8 ), /* 8 */
-/* 750 */ NdrFcShort( 0x8 ), /* 8 */
-/* 752 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 754 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 756 */ NdrFcShort( 0x0 ), /* 0 */
-/* 758 */ NdrFcShort( 0x0 ), /* 0 */
-/* 760 */ NdrFcShort( 0x0 ), /* 0 */
-/* 762 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter column */
-
-/* 764 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 766 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 768 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 770 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 772 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 774 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_modelChange */
-
-/* 776 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 778 */ NdrFcLong( 0x0 ), /* 0 */
-/* 782 */ NdrFcShort( 0x16 ), /* 22 */
-/* 784 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 786 */ NdrFcShort( 0x0 ), /* 0 */
-/* 788 */ NdrFcShort( 0x8 ), /* 8 */
-/* 790 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x2, /* 2 */
-/* 792 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 794 */ NdrFcShort( 0x0 ), /* 0 */
-/* 796 */ NdrFcShort( 0x0 ), /* 0 */
-/* 798 */ NdrFcShort( 0x0 ), /* 0 */
-/* 800 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter modelChange */
-
-/* 802 */ NdrFcShort( 0x6113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=24 */
-/* 804 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 806 */ NdrFcShort( 0x7e ), /* Type Offset=126 */
-
- /* Return value */
-
-/* 808 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 810 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 812 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- 0x0
- }
- };
-
-static const AccessibleTable2_MIDL_TYPE_FORMAT_STRING AccessibleTable2__MIDL_TypeFormatString =
- {
- 0,
- {
- NdrFcShort( 0x0 ), /* 0 */
-/* 2 */
- 0x11, 0x10, /* FC_RP [pointer_deref] */
-/* 4 */ NdrFcShort( 0x2 ), /* Offset= 2 (6) */
-/* 6 */
- 0x2f, /* FC_IP */
- 0x5a, /* FC_CONSTANT_IID */
-/* 8 */ NdrFcLong( 0x0 ), /* 0 */
-/* 12 */ NdrFcShort( 0x0 ), /* 0 */
-/* 14 */ NdrFcShort( 0x0 ), /* 0 */
-/* 16 */ 0xc0, /* 192 */
- 0x0, /* 0 */
-/* 18 */ 0x0, /* 0 */
- 0x0, /* 0 */
-/* 20 */ 0x0, /* 0 */
- 0x0, /* 0 */
-/* 22 */ 0x0, /* 0 */
- 0x46, /* 70 */
-/* 24 */
- 0x11, 0x4, /* FC_RP [alloced_on_stack] */
-/* 26 */ NdrFcShort( 0x1c ), /* Offset= 28 (54) */
-/* 28 */
- 0x13, 0x0, /* FC_OP */
-/* 30 */ NdrFcShort( 0xe ), /* Offset= 14 (44) */
-/* 32 */
- 0x1b, /* FC_CARRAY */
- 0x1, /* 1 */
-/* 34 */ NdrFcShort( 0x2 ), /* 2 */
-/* 36 */ 0x9, /* Corr desc: FC_ULONG */
- 0x0, /* */
-/* 38 */ NdrFcShort( 0xfffc ), /* -4 */
-/* 40 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 42 */ 0x6, /* FC_SHORT */
- 0x5b, /* FC_END */
-/* 44 */
- 0x17, /* FC_CSTRUCT */
- 0x3, /* 3 */
-/* 46 */ NdrFcShort( 0x8 ), /* 8 */
-/* 48 */ NdrFcShort( 0xfff0 ), /* Offset= -16 (32) */
-/* 50 */ 0x8, /* FC_LONG */
- 0x8, /* FC_LONG */
-/* 52 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-/* 54 */ 0xb4, /* FC_USER_MARSHAL */
- 0x83, /* 131 */
-/* 56 */ NdrFcShort( 0x0 ), /* 0 */
-/* 58 */ NdrFcShort( 0x8 ), /* 8 */
-/* 60 */ NdrFcShort( 0x0 ), /* 0 */
-/* 62 */ NdrFcShort( 0xffde ), /* Offset= -34 (28) */
-/* 64 */
- 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
-/* 66 */ 0x8, /* FC_LONG */
- 0x5c, /* FC_PAD */
-/* 68 */
- 0x11, 0x14, /* FC_RP [alloced_on_stack] [pointer_deref] */
-/* 70 */ NdrFcShort( 0x2 ), /* Offset= 2 (72) */
-/* 72 */
- 0x13, 0x0, /* FC_OP */
-/* 74 */ NdrFcShort( 0x2 ), /* Offset= 2 (76) */
-/* 76 */
- 0x21, /* FC_BOGUS_ARRAY */
- 0x3, /* 3 */
-/* 78 */ NdrFcShort( 0x0 ), /* 0 */
-/* 80 */ 0x28, /* Corr desc: parameter, FC_LONG */
- 0x54, /* FC_DEREFERENCE */
-/* 82 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 84 */ NdrFcShort( 0x0 ), /* Corr flags: */
-/* 86 */ NdrFcLong( 0xffffffff ), /* -1 */
-/* 90 */ NdrFcShort( 0x0 ), /* Corr flags: */
-/* 92 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
- 0x0, /* 0 */
-/* 94 */ NdrFcShort( 0xffa8 ), /* Offset= -88 (6) */
-/* 96 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-/* 98 */
- 0x11, 0x14, /* FC_RP [alloced_on_stack] [pointer_deref] */
-/* 100 */ NdrFcShort( 0x2 ), /* Offset= 2 (102) */
-/* 102 */
- 0x13, 0x0, /* FC_OP */
-/* 104 */ NdrFcShort( 0x2 ), /* Offset= 2 (106) */
-/* 106 */
- 0x1b, /* FC_CARRAY */
- 0x3, /* 3 */
-/* 108 */ NdrFcShort( 0x4 ), /* 4 */
-/* 110 */ 0x28, /* Corr desc: parameter, FC_LONG */
- 0x54, /* FC_DEREFERENCE */
-/* 112 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 114 */ NdrFcShort( 0x0 ), /* Corr flags: */
-/* 116 */ 0x8, /* FC_LONG */
- 0x5b, /* FC_END */
-/* 118 */
- 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
-/* 120 */ 0x3, /* FC_SMALL */
- 0x5c, /* FC_PAD */
-/* 122 */
- 0x11, 0x4, /* FC_RP [alloced_on_stack] */
-/* 124 */ NdrFcShort( 0x2 ), /* Offset= 2 (126) */
-/* 126 */
- 0x1a, /* FC_BOGUS_STRUCT */
- 0x3, /* 3 */
-/* 128 */ NdrFcShort( 0x14 ), /* 20 */
-/* 130 */ NdrFcShort( 0x0 ), /* 0 */
-/* 132 */ NdrFcShort( 0x0 ), /* Offset= 0 (132) */
-/* 134 */ 0xd, /* FC_ENUM16 */
- 0x8, /* FC_LONG */
-/* 136 */ 0x8, /* FC_LONG */
- 0x8, /* FC_LONG */
-/* 138 */ 0x8, /* FC_LONG */
- 0x5b, /* FC_END */
-
- 0x0
- }
- };
-
-static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] =
- {
-
- {
- BSTR_UserSize
- ,BSTR_UserMarshal
- ,BSTR_UserUnmarshal
- ,BSTR_UserFree
- }
-
- };
-
-
-
-/* Object interface: IUnknown, ver. 0.0,
- GUID={0x00000000,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
-
-
-/* Object interface: IAccessibleTable2, ver. 0.0,
- GUID={0x6167f295,0x06f0,0x4cdd,{0xa1,0xfa,0x02,0xe2,0x51,0x53,0xd8,0x69}} */
-
-#pragma code_seg(".orpc")
-static const unsigned short IAccessibleTable2_FormatStringOffsetTable[] =
- {
- 0,
- 50,
- 88,
- 132,
- 170,
- 208,
- 246,
- 284,
- 322,
- 366,
- 410,
- 454,
- 498,
- 536,
- 580,
- 624,
- 662,
- 700,
- 738,
- 776
- };
-
-static const MIDL_STUBLESS_PROXY_INFO IAccessibleTable2_ProxyInfo =
- {
- &Object_StubDesc,
- AccessibleTable2__MIDL_ProcFormatString.Format,
- &IAccessibleTable2_FormatStringOffsetTable[-3],
- 0,
- 0,
- 0
- };
-
-
-static const MIDL_SERVER_INFO IAccessibleTable2_ServerInfo =
- {
- &Object_StubDesc,
- 0,
- AccessibleTable2__MIDL_ProcFormatString.Format,
- &IAccessibleTable2_FormatStringOffsetTable[-3],
- 0,
- 0,
- 0,
- 0};
-CINTERFACE_PROXY_VTABLE(23) _IAccessibleTable2ProxyVtbl =
-{
- &IAccessibleTable2_ProxyInfo,
- &IID_IAccessibleTable2,
- IUnknown_QueryInterface_Proxy,
- IUnknown_AddRef_Proxy,
- IUnknown_Release_Proxy ,
- (void *) (INT_PTR) -1 /* IAccessibleTable2::get_cellAt */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable2::get_caption */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable2::get_columnDescription */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable2::get_nColumns */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable2::get_nRows */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable2::get_nSelectedCells */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable2::get_nSelectedColumns */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable2::get_nSelectedRows */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable2::get_rowDescription */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable2::get_selectedCells */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable2::get_selectedColumns */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable2::get_selectedRows */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable2::get_summary */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable2::get_isColumnSelected */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable2::get_isRowSelected */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable2::selectRow */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable2::selectColumn */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable2::unselectRow */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable2::unselectColumn */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable2::get_modelChange */
-};
-
-const CInterfaceStubVtbl _IAccessibleTable2StubVtbl =
-{
- &IID_IAccessibleTable2,
- &IAccessibleTable2_ServerInfo,
- 23,
- 0, /* pure interpreted */
- CStdStubBuffer_METHODS
-};
-
-static const MIDL_STUB_DESC Object_StubDesc =
- {
- 0,
- NdrOleAllocate,
- NdrOleFree,
- 0,
- 0,
- 0,
- 0,
- 0,
- AccessibleTable2__MIDL_TypeFormatString.Format,
- 1, /* -error bounds_check flag */
- 0x50002, /* Ndr library version */
- 0,
- 0x700022b, /* MIDL Version 7.0.555 */
- 0,
- UserMarshalRoutines,
- 0, /* notify & notify_flag routine table */
- 0x1, /* MIDL flag */
- 0, /* cs routines */
- 0, /* proxy/server info */
- 0
- };
-
-const CInterfaceProxyVtbl * const _AccessibleTable2_ProxyVtblList[] =
-{
- ( CInterfaceProxyVtbl *) &_IAccessibleTable2ProxyVtbl,
- 0
-};
-
-const CInterfaceStubVtbl * const _AccessibleTable2_StubVtblList[] =
-{
- ( CInterfaceStubVtbl *) &_IAccessibleTable2StubVtbl,
- 0
-};
-
-PCInterfaceName const _AccessibleTable2_InterfaceNamesList[] =
-{
- "IAccessibleTable2",
- 0
-};
-
-
-#define _AccessibleTable2_CHECK_IID(n) IID_GENERIC_CHECK_IID( _AccessibleTable2, pIID, n)
-
-int __stdcall _AccessibleTable2_IID_Lookup( const IID * pIID, int * pIndex )
-{
-
- if(!_AccessibleTable2_CHECK_IID(0))
- {
- *pIndex = 0;
- return 1;
- }
-
- return 0;
-}
-
-const ExtendedProxyFileInfo AccessibleTable2_ProxyFileInfo =
-{
- (PCInterfaceProxyVtblList *) & _AccessibleTable2_ProxyVtblList,
- (PCInterfaceStubVtblList *) & _AccessibleTable2_StubVtblList,
- (const PCInterfaceName * ) & _AccessibleTable2_InterfaceNamesList,
- 0, /* no delegation */
- & _AccessibleTable2_IID_Lookup,
- 1,
- 2,
- 0, /* table of [async_uuid] interfaces */
- 0, /* Filler1 */
- 0, /* Filler2 */
- 0 /* Filler3 */
-};
-#if _MSC_VER >= 1200
-#pragma warning(pop)
-#endif
-
-
-#endif /* defined(_M_AMD64)*/
-
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleTableCell.h b/src/3rdparty/iaccessible2/generated/amd64/AccessibleTableCell.h
deleted file mode 100644
index 85648fcc7e..0000000000
--- a/src/3rdparty/iaccessible2/generated/amd64/AccessibleTableCell.h
+++ /dev/null
@@ -1,246 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the definitions for the interfaces */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:54:00 2012
- */
-/* Compiler settings for AccessibleTableCell.idl:
- Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-
-
-/* verify that the <rpcndr.h> version is high enough to compile this file*/
-#ifndef __REQUIRED_RPCNDR_H_VERSION__
-#define __REQUIRED_RPCNDR_H_VERSION__ 475
-#endif
-
-#include "rpc.h"
-#include "rpcndr.h"
-
-#ifndef __RPCNDR_H_VERSION__
-#error this stub requires an updated version of <rpcndr.h>
-#endif // __RPCNDR_H_VERSION__
-
-#ifndef COM_NO_WINDOWS_H
-#include "windows.h"
-#include "ole2.h"
-#endif /*COM_NO_WINDOWS_H*/
-
-#ifndef __AccessibleTableCell_h__
-#define __AccessibleTableCell_h__
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-#pragma once
-#endif
-
-/* Forward Declarations */
-
-#ifndef __IAccessibleTableCell_FWD_DEFINED__
-#define __IAccessibleTableCell_FWD_DEFINED__
-typedef interface IAccessibleTableCell IAccessibleTableCell;
-#endif /* __IAccessibleTableCell_FWD_DEFINED__ */
-
-
-/* header files for imported files */
-#include "objidl.h"
-#include "oaidl.h"
-#include "oleacc.h"
-#include "Accessible2.h"
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-
-#ifndef __IAccessibleTableCell_INTERFACE_DEFINED__
-#define __IAccessibleTableCell_INTERFACE_DEFINED__
-
-/* interface IAccessibleTableCell */
-/* [uuid][object] */
-
-
-EXTERN_C const IID IID_IAccessibleTableCell;
-
-#if defined(__cplusplus) && !defined(CINTERFACE)
-
- MIDL_INTERFACE("594116B1-C99F-4847-AD06-0A7A86ECE645")
- IAccessibleTableCell : public IUnknown
- {
- public:
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnExtent(
- /* [retval][out] */ long *nColumnsSpanned) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnHeaderCells(
- /* [size_is][size_is][size_is][out] */ IUnknown ***cellAccessibles,
- /* [retval][out] */ long *nColumnHeaderCells) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnIndex(
- /* [retval][out] */ long *columnIndex) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowExtent(
- /* [retval][out] */ long *nRowsSpanned) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowHeaderCells(
- /* [size_is][size_is][size_is][out] */ IUnknown ***cellAccessibles,
- /* [retval][out] */ long *nRowHeaderCells) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowIndex(
- /* [retval][out] */ long *rowIndex) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_isSelected(
- /* [retval][out] */ boolean *isSelected) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowColumnExtents(
- /* [out] */ long *row,
- /* [out] */ long *column,
- /* [out] */ long *rowExtents,
- /* [out] */ long *columnExtents,
- /* [retval][out] */ boolean *isSelected) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_table(
- /* [retval][out] */ IUnknown **table) = 0;
-
- };
-
-#else /* C style interface */
-
- typedef struct IAccessibleTableCellVtbl
- {
- BEGIN_INTERFACE
-
- HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
- IAccessibleTableCell * This,
- /* [in] */ REFIID riid,
- /* [annotation][iid_is][out] */
- __RPC__deref_out void **ppvObject);
-
- ULONG ( STDMETHODCALLTYPE *AddRef )(
- IAccessibleTableCell * This);
-
- ULONG ( STDMETHODCALLTYPE *Release )(
- IAccessibleTableCell * This);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnExtent )(
- IAccessibleTableCell * This,
- /* [retval][out] */ long *nColumnsSpanned);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnHeaderCells )(
- IAccessibleTableCell * This,
- /* [size_is][size_is][size_is][out] */ IUnknown ***cellAccessibles,
- /* [retval][out] */ long *nColumnHeaderCells);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnIndex )(
- IAccessibleTableCell * This,
- /* [retval][out] */ long *columnIndex);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowExtent )(
- IAccessibleTableCell * This,
- /* [retval][out] */ long *nRowsSpanned);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowHeaderCells )(
- IAccessibleTableCell * This,
- /* [size_is][size_is][size_is][out] */ IUnknown ***cellAccessibles,
- /* [retval][out] */ long *nRowHeaderCells);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowIndex )(
- IAccessibleTableCell * This,
- /* [retval][out] */ long *rowIndex);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isSelected )(
- IAccessibleTableCell * This,
- /* [retval][out] */ boolean *isSelected);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowColumnExtents )(
- IAccessibleTableCell * This,
- /* [out] */ long *row,
- /* [out] */ long *column,
- /* [out] */ long *rowExtents,
- /* [out] */ long *columnExtents,
- /* [retval][out] */ boolean *isSelected);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_table )(
- IAccessibleTableCell * This,
- /* [retval][out] */ IUnknown **table);
-
- END_INTERFACE
- } IAccessibleTableCellVtbl;
-
- interface IAccessibleTableCell
- {
- CONST_VTBL struct IAccessibleTableCellVtbl *lpVtbl;
- };
-
-
-
-#ifdef COBJMACROS
-
-
-#define IAccessibleTableCell_QueryInterface(This,riid,ppvObject) \
- ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
-
-#define IAccessibleTableCell_AddRef(This) \
- ( (This)->lpVtbl -> AddRef(This) )
-
-#define IAccessibleTableCell_Release(This) \
- ( (This)->lpVtbl -> Release(This) )
-
-
-#define IAccessibleTableCell_get_columnExtent(This,nColumnsSpanned) \
- ( (This)->lpVtbl -> get_columnExtent(This,nColumnsSpanned) )
-
-#define IAccessibleTableCell_get_columnHeaderCells(This,cellAccessibles,nColumnHeaderCells) \
- ( (This)->lpVtbl -> get_columnHeaderCells(This,cellAccessibles,nColumnHeaderCells) )
-
-#define IAccessibleTableCell_get_columnIndex(This,columnIndex) \
- ( (This)->lpVtbl -> get_columnIndex(This,columnIndex) )
-
-#define IAccessibleTableCell_get_rowExtent(This,nRowsSpanned) \
- ( (This)->lpVtbl -> get_rowExtent(This,nRowsSpanned) )
-
-#define IAccessibleTableCell_get_rowHeaderCells(This,cellAccessibles,nRowHeaderCells) \
- ( (This)->lpVtbl -> get_rowHeaderCells(This,cellAccessibles,nRowHeaderCells) )
-
-#define IAccessibleTableCell_get_rowIndex(This,rowIndex) \
- ( (This)->lpVtbl -> get_rowIndex(This,rowIndex) )
-
-#define IAccessibleTableCell_get_isSelected(This,isSelected) \
- ( (This)->lpVtbl -> get_isSelected(This,isSelected) )
-
-#define IAccessibleTableCell_get_rowColumnExtents(This,row,column,rowExtents,columnExtents,isSelected) \
- ( (This)->lpVtbl -> get_rowColumnExtents(This,row,column,rowExtents,columnExtents,isSelected) )
-
-#define IAccessibleTableCell_get_table(This,table) \
- ( (This)->lpVtbl -> get_table(This,table) )
-
-#endif /* COBJMACROS */
-
-
-#endif /* C style interface */
-
-
-
-
-#endif /* __IAccessibleTableCell_INTERFACE_DEFINED__ */
-
-
-/* Additional Prototypes for ALL interfaces */
-
-/* end of Additional Prototypes */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleTableCell_i.c b/src/3rdparty/iaccessible2/generated/amd64/AccessibleTableCell_i.c
deleted file mode 100644
index fa94037d95..0000000000
--- a/src/3rdparty/iaccessible2/generated/amd64/AccessibleTableCell_i.c
+++ /dev/null
@@ -1,79 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
-
-/* link this file in with the server and any clients */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:54:00 2012
- */
-/* Compiler settings for AccessibleTableCell.idl:
- Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-
-#include <rpc.h>
-#include <rpcndr.h>
-
-#ifdef _MIDL_USE_GUIDDEF_
-
-#ifndef INITGUID
-#define INITGUID
-#include <guiddef.h>
-#undef INITGUID
-#else
-#include <guiddef.h>
-#endif
-
-#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
- DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
-
-#else // !_MIDL_USE_GUIDDEF_
-
-#ifndef __IID_DEFINED__
-#define __IID_DEFINED__
-
-typedef struct _IID
-{
- unsigned long x;
- unsigned short s1;
- unsigned short s2;
- unsigned char c[8];
-} IID;
-
-#endif // __IID_DEFINED__
-
-#ifndef CLSID_DEFINED
-#define CLSID_DEFINED
-typedef IID CLSID;
-#endif // CLSID_DEFINED
-
-#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
- const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
-
-#endif !_MIDL_USE_GUIDDEF_
-
-MIDL_DEFINE_GUID(IID, IID_IAccessibleTableCell,0x594116B1,0xC99F,0x4847,0xAD,0x06,0x0A,0x7A,0x86,0xEC,0xE6,0x45);
-
-#undef MIDL_DEFINE_GUID
-
-#ifdef __cplusplus
-}
-#endif
-
-
-
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleTableCell_p.c b/src/3rdparty/iaccessible2/generated/amd64/AccessibleTableCell_p.c
deleted file mode 100644
index bf18e659b6..0000000000
--- a/src/3rdparty/iaccessible2/generated/amd64/AccessibleTableCell_p.c
+++ /dev/null
@@ -1,634 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the proxy stub code */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:54:00 2012
- */
-/* Compiler settings for AccessibleTableCell.idl:
- Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#if defined(_M_AMD64)
-
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-#if _MSC_VER >= 1200
-#pragma warning(push)
-#endif
-
-#pragma warning( disable: 4211 ) /* redefine extern to static */
-#pragma warning( disable: 4232 ) /* dllimport identity*/
-#pragma warning( disable: 4024 ) /* array to pointer mapping*/
-#pragma warning( disable: 4152 ) /* function/data pointer conversion in expression */
-
-#define USE_STUBLESS_PROXY
-
-
-/* verify that the <rpcproxy.h> version is high enough to compile this file*/
-#ifndef __REDQ_RPCPROXY_H_VERSION__
-#define __REQUIRED_RPCPROXY_H_VERSION__ 475
-#endif
-
-
-#include "rpcproxy.h"
-#ifndef __RPCPROXY_H_VERSION__
-#error this stub requires an updated version of <rpcproxy.h>
-#endif /* __RPCPROXY_H_VERSION__ */
-
-
-#include "AccessibleTableCell.h"
-
-#define TYPE_FORMAT_STRING_SIZE 63
-#define PROC_FORMAT_STRING_SIZE 379
-#define EXPR_FORMAT_STRING_SIZE 1
-#define TRANSMIT_AS_TABLE_SIZE 0
-#define WIRE_MARSHAL_TABLE_SIZE 0
-
-typedef struct _AccessibleTableCell_MIDL_TYPE_FORMAT_STRING
- {
- short Pad;
- unsigned char Format[ TYPE_FORMAT_STRING_SIZE ];
- } AccessibleTableCell_MIDL_TYPE_FORMAT_STRING;
-
-typedef struct _AccessibleTableCell_MIDL_PROC_FORMAT_STRING
- {
- short Pad;
- unsigned char Format[ PROC_FORMAT_STRING_SIZE ];
- } AccessibleTableCell_MIDL_PROC_FORMAT_STRING;
-
-typedef struct _AccessibleTableCell_MIDL_EXPR_FORMAT_STRING
- {
- long Pad;
- unsigned char Format[ EXPR_FORMAT_STRING_SIZE ];
- } AccessibleTableCell_MIDL_EXPR_FORMAT_STRING;
-
-
-static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax =
-{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}};
-
-
-extern const AccessibleTableCell_MIDL_TYPE_FORMAT_STRING AccessibleTableCell__MIDL_TypeFormatString;
-extern const AccessibleTableCell_MIDL_PROC_FORMAT_STRING AccessibleTableCell__MIDL_ProcFormatString;
-extern const AccessibleTableCell_MIDL_EXPR_FORMAT_STRING AccessibleTableCell__MIDL_ExprFormatString;
-
-
-extern const MIDL_STUB_DESC Object_StubDesc;
-
-
-extern const MIDL_SERVER_INFO IAccessibleTableCell_ServerInfo;
-extern const MIDL_STUBLESS_PROXY_INFO IAccessibleTableCell_ProxyInfo;
-
-
-
-#if !defined(__RPC_WIN64__)
-#error Invalid build platform for this stub.
-#endif
-
-static const AccessibleTableCell_MIDL_PROC_FORMAT_STRING AccessibleTableCell__MIDL_ProcFormatString =
- {
- 0,
- {
-
- /* Procedure get_columnExtent */
-
- 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 2 */ NdrFcLong( 0x0 ), /* 0 */
-/* 6 */ NdrFcShort( 0x3 ), /* 3 */
-/* 8 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 10 */ NdrFcShort( 0x0 ), /* 0 */
-/* 12 */ NdrFcShort( 0x24 ), /* 36 */
-/* 14 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 16 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 18 */ NdrFcShort( 0x0 ), /* 0 */
-/* 20 */ NdrFcShort( 0x0 ), /* 0 */
-/* 22 */ NdrFcShort( 0x0 ), /* 0 */
-/* 24 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter nColumnsSpanned */
-
-/* 26 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 28 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 30 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 32 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 34 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 36 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_columnHeaderCells */
-
-/* 38 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 40 */ NdrFcLong( 0x0 ), /* 0 */
-/* 44 */ NdrFcShort( 0x4 ), /* 4 */
-/* 46 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
-/* 48 */ NdrFcShort( 0x0 ), /* 0 */
-/* 50 */ NdrFcShort( 0x24 ), /* 36 */
-/* 52 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x3, /* 3 */
-/* 54 */ 0xa, /* 10 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 56 */ NdrFcShort( 0x1 ), /* 1 */
-/* 58 */ NdrFcShort( 0x0 ), /* 0 */
-/* 60 */ NdrFcShort( 0x0 ), /* 0 */
-/* 62 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter cellAccessibles */
-
-/* 64 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
-/* 66 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 68 */ NdrFcShort( 0x6 ), /* Type Offset=6 */
-
- /* Parameter nColumnHeaderCells */
-
-/* 70 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 72 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 74 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 76 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 78 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 80 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_columnIndex */
-
-/* 82 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 84 */ NdrFcLong( 0x0 ), /* 0 */
-/* 88 */ NdrFcShort( 0x5 ), /* 5 */
-/* 90 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 92 */ NdrFcShort( 0x0 ), /* 0 */
-/* 94 */ NdrFcShort( 0x24 ), /* 36 */
-/* 96 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 98 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 100 */ NdrFcShort( 0x0 ), /* 0 */
-/* 102 */ NdrFcShort( 0x0 ), /* 0 */
-/* 104 */ NdrFcShort( 0x0 ), /* 0 */
-/* 106 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter columnIndex */
-
-/* 108 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 110 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 112 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 114 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 116 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 118 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_rowExtent */
-
-/* 120 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 122 */ NdrFcLong( 0x0 ), /* 0 */
-/* 126 */ NdrFcShort( 0x6 ), /* 6 */
-/* 128 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 130 */ NdrFcShort( 0x0 ), /* 0 */
-/* 132 */ NdrFcShort( 0x24 ), /* 36 */
-/* 134 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 136 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 138 */ NdrFcShort( 0x0 ), /* 0 */
-/* 140 */ NdrFcShort( 0x0 ), /* 0 */
-/* 142 */ NdrFcShort( 0x0 ), /* 0 */
-/* 144 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter nRowsSpanned */
-
-/* 146 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 148 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 150 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 152 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 154 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 156 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_rowHeaderCells */
-
-/* 158 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 160 */ NdrFcLong( 0x0 ), /* 0 */
-/* 164 */ NdrFcShort( 0x7 ), /* 7 */
-/* 166 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
-/* 168 */ NdrFcShort( 0x0 ), /* 0 */
-/* 170 */ NdrFcShort( 0x24 ), /* 36 */
-/* 172 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x3, /* 3 */
-/* 174 */ 0xa, /* 10 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 176 */ NdrFcShort( 0x1 ), /* 1 */
-/* 178 */ NdrFcShort( 0x0 ), /* 0 */
-/* 180 */ NdrFcShort( 0x0 ), /* 0 */
-/* 182 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter cellAccessibles */
-
-/* 184 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
-/* 186 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 188 */ NdrFcShort( 0x6 ), /* Type Offset=6 */
-
- /* Parameter nRowHeaderCells */
-
-/* 190 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 192 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 194 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 196 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 198 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 200 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_rowIndex */
-
-/* 202 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 204 */ NdrFcLong( 0x0 ), /* 0 */
-/* 208 */ NdrFcShort( 0x8 ), /* 8 */
-/* 210 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 212 */ NdrFcShort( 0x0 ), /* 0 */
-/* 214 */ NdrFcShort( 0x24 ), /* 36 */
-/* 216 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 218 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 220 */ NdrFcShort( 0x0 ), /* 0 */
-/* 222 */ NdrFcShort( 0x0 ), /* 0 */
-/* 224 */ NdrFcShort( 0x0 ), /* 0 */
-/* 226 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter rowIndex */
-
-/* 228 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 230 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 232 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 234 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 236 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 238 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_isSelected */
-
-/* 240 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 242 */ NdrFcLong( 0x0 ), /* 0 */
-/* 246 */ NdrFcShort( 0x9 ), /* 9 */
-/* 248 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 250 */ NdrFcShort( 0x0 ), /* 0 */
-/* 252 */ NdrFcShort( 0x21 ), /* 33 */
-/* 254 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 256 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 258 */ NdrFcShort( 0x0 ), /* 0 */
-/* 260 */ NdrFcShort( 0x0 ), /* 0 */
-/* 262 */ NdrFcShort( 0x0 ), /* 0 */
-/* 264 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter isSelected */
-
-/* 266 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 268 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 270 */ 0x3, /* FC_SMALL */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 272 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 274 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 276 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_rowColumnExtents */
-
-/* 278 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 280 */ NdrFcLong( 0x0 ), /* 0 */
-/* 284 */ NdrFcShort( 0xa ), /* 10 */
-/* 286 */ NdrFcShort( 0x38 ), /* X64 Stack size/offset = 56 */
-/* 288 */ NdrFcShort( 0x0 ), /* 0 */
-/* 290 */ NdrFcShort( 0x91 ), /* 145 */
-/* 292 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x6, /* 6 */
-/* 294 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 296 */ NdrFcShort( 0x0 ), /* 0 */
-/* 298 */ NdrFcShort( 0x0 ), /* 0 */
-/* 300 */ NdrFcShort( 0x0 ), /* 0 */
-/* 302 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter row */
-
-/* 304 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 306 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 308 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter column */
-
-/* 310 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 312 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 314 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter rowExtents */
-
-/* 316 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 318 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 320 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter columnExtents */
-
-/* 322 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 324 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
-/* 326 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter isSelected */
-
-/* 328 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 330 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
-/* 332 */ 0x3, /* FC_SMALL */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 334 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 336 */ NdrFcShort( 0x30 ), /* X64 Stack size/offset = 48 */
-/* 338 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_table */
-
-/* 340 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 342 */ NdrFcLong( 0x0 ), /* 0 */
-/* 346 */ NdrFcShort( 0xb ), /* 11 */
-/* 348 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 350 */ NdrFcShort( 0x0 ), /* 0 */
-/* 352 */ NdrFcShort( 0x8 ), /* 8 */
-/* 354 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x2, /* 2 */
-/* 356 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 358 */ NdrFcShort( 0x0 ), /* 0 */
-/* 360 */ NdrFcShort( 0x0 ), /* 0 */
-/* 362 */ NdrFcShort( 0x0 ), /* 0 */
-/* 364 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter table */
-
-/* 366 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
-/* 368 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 370 */ NdrFcShort( 0x3a ), /* Type Offset=58 */
-
- /* Return value */
-
-/* 372 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 374 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 376 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- 0x0
- }
- };
-
-static const AccessibleTableCell_MIDL_TYPE_FORMAT_STRING AccessibleTableCell__MIDL_TypeFormatString =
- {
- 0,
- {
- NdrFcShort( 0x0 ), /* 0 */
-/* 2 */
- 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
-/* 4 */ 0x8, /* FC_LONG */
- 0x5c, /* FC_PAD */
-/* 6 */
- 0x11, 0x14, /* FC_RP [alloced_on_stack] [pointer_deref] */
-/* 8 */ NdrFcShort( 0x2 ), /* Offset= 2 (10) */
-/* 10 */
- 0x13, 0x0, /* FC_OP */
-/* 12 */ NdrFcShort( 0x14 ), /* Offset= 20 (32) */
-/* 14 */
- 0x2f, /* FC_IP */
- 0x5a, /* FC_CONSTANT_IID */
-/* 16 */ NdrFcLong( 0x0 ), /* 0 */
-/* 20 */ NdrFcShort( 0x0 ), /* 0 */
-/* 22 */ NdrFcShort( 0x0 ), /* 0 */
-/* 24 */ 0xc0, /* 192 */
- 0x0, /* 0 */
-/* 26 */ 0x0, /* 0 */
- 0x0, /* 0 */
-/* 28 */ 0x0, /* 0 */
- 0x0, /* 0 */
-/* 30 */ 0x0, /* 0 */
- 0x46, /* 70 */
-/* 32 */
- 0x21, /* FC_BOGUS_ARRAY */
- 0x3, /* 3 */
-/* 34 */ NdrFcShort( 0x0 ), /* 0 */
-/* 36 */ 0x28, /* Corr desc: parameter, FC_LONG */
- 0x54, /* FC_DEREFERENCE */
-/* 38 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 40 */ NdrFcShort( 0x0 ), /* Corr flags: */
-/* 42 */ NdrFcLong( 0xffffffff ), /* -1 */
-/* 46 */ NdrFcShort( 0x0 ), /* Corr flags: */
-/* 48 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
- 0x0, /* 0 */
-/* 50 */ NdrFcShort( 0xffdc ), /* Offset= -36 (14) */
-/* 52 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-/* 54 */
- 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
-/* 56 */ 0x3, /* FC_SMALL */
- 0x5c, /* FC_PAD */
-/* 58 */
- 0x11, 0x10, /* FC_RP [pointer_deref] */
-/* 60 */ NdrFcShort( 0xffd2 ), /* Offset= -46 (14) */
-
- 0x0
- }
- };
-
-
-/* Object interface: IUnknown, ver. 0.0,
- GUID={0x00000000,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
-
-
-/* Object interface: IAccessibleTableCell, ver. 0.0,
- GUID={0x594116B1,0xC99F,0x4847,{0xAD,0x06,0x0A,0x7A,0x86,0xEC,0xE6,0x45}} */
-
-#pragma code_seg(".orpc")
-static const unsigned short IAccessibleTableCell_FormatStringOffsetTable[] =
- {
- 0,
- 38,
- 82,
- 120,
- 158,
- 202,
- 240,
- 278,
- 340
- };
-
-static const MIDL_STUBLESS_PROXY_INFO IAccessibleTableCell_ProxyInfo =
- {
- &Object_StubDesc,
- AccessibleTableCell__MIDL_ProcFormatString.Format,
- &IAccessibleTableCell_FormatStringOffsetTable[-3],
- 0,
- 0,
- 0
- };
-
-
-static const MIDL_SERVER_INFO IAccessibleTableCell_ServerInfo =
- {
- &Object_StubDesc,
- 0,
- AccessibleTableCell__MIDL_ProcFormatString.Format,
- &IAccessibleTableCell_FormatStringOffsetTable[-3],
- 0,
- 0,
- 0,
- 0};
-CINTERFACE_PROXY_VTABLE(12) _IAccessibleTableCellProxyVtbl =
-{
- &IAccessibleTableCell_ProxyInfo,
- &IID_IAccessibleTableCell,
- IUnknown_QueryInterface_Proxy,
- IUnknown_AddRef_Proxy,
- IUnknown_Release_Proxy ,
- (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_columnExtent */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_columnHeaderCells */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_columnIndex */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_rowExtent */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_rowHeaderCells */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_rowIndex */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_isSelected */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_rowColumnExtents */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_table */
-};
-
-const CInterfaceStubVtbl _IAccessibleTableCellStubVtbl =
-{
- &IID_IAccessibleTableCell,
- &IAccessibleTableCell_ServerInfo,
- 12,
- 0, /* pure interpreted */
- CStdStubBuffer_METHODS
-};
-
-static const MIDL_STUB_DESC Object_StubDesc =
- {
- 0,
- NdrOleAllocate,
- NdrOleFree,
- 0,
- 0,
- 0,
- 0,
- 0,
- AccessibleTableCell__MIDL_TypeFormatString.Format,
- 1, /* -error bounds_check flag */
- 0x50002, /* Ndr library version */
- 0,
- 0x700022b, /* MIDL Version 7.0.555 */
- 0,
- 0,
- 0, /* notify & notify_flag routine table */
- 0x1, /* MIDL flag */
- 0, /* cs routines */
- 0, /* proxy/server info */
- 0
- };
-
-const CInterfaceProxyVtbl * const _AccessibleTableCell_ProxyVtblList[] =
-{
- ( CInterfaceProxyVtbl *) &_IAccessibleTableCellProxyVtbl,
- 0
-};
-
-const CInterfaceStubVtbl * const _AccessibleTableCell_StubVtblList[] =
-{
- ( CInterfaceStubVtbl *) &_IAccessibleTableCellStubVtbl,
- 0
-};
-
-PCInterfaceName const _AccessibleTableCell_InterfaceNamesList[] =
-{
- "IAccessibleTableCell",
- 0
-};
-
-
-#define _AccessibleTableCell_CHECK_IID(n) IID_GENERIC_CHECK_IID( _AccessibleTableCell, pIID, n)
-
-int __stdcall _AccessibleTableCell_IID_Lookup( const IID * pIID, int * pIndex )
-{
-
- if(!_AccessibleTableCell_CHECK_IID(0))
- {
- *pIndex = 0;
- return 1;
- }
-
- return 0;
-}
-
-const ExtendedProxyFileInfo AccessibleTableCell_ProxyFileInfo =
-{
- (PCInterfaceProxyVtblList *) & _AccessibleTableCell_ProxyVtblList,
- (PCInterfaceStubVtblList *) & _AccessibleTableCell_StubVtblList,
- (const PCInterfaceName * ) & _AccessibleTableCell_InterfaceNamesList,
- 0, /* no delegation */
- & _AccessibleTableCell_IID_Lookup,
- 1,
- 2,
- 0, /* table of [async_uuid] interfaces */
- 0, /* Filler1 */
- 0, /* Filler2 */
- 0 /* Filler3 */
-};
-#if _MSC_VER >= 1200
-#pragma warning(pop)
-#endif
-
-
-#endif /* defined(_M_AMD64)*/
-
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleTable_i.c b/src/3rdparty/iaccessible2/generated/amd64/AccessibleTable_i.c
deleted file mode 100644
index dd4e1fe983..0000000000
--- a/src/3rdparty/iaccessible2/generated/amd64/AccessibleTable_i.c
+++ /dev/null
@@ -1,79 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
-
-/* link this file in with the server and any clients */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:59 2012
- */
-/* Compiler settings for AccessibleTable.idl:
- Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-
-#include <rpc.h>
-#include <rpcndr.h>
-
-#ifdef _MIDL_USE_GUIDDEF_
-
-#ifndef INITGUID
-#define INITGUID
-#include <guiddef.h>
-#undef INITGUID
-#else
-#include <guiddef.h>
-#endif
-
-#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
- DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
-
-#else // !_MIDL_USE_GUIDDEF_
-
-#ifndef __IID_DEFINED__
-#define __IID_DEFINED__
-
-typedef struct _IID
-{
- unsigned long x;
- unsigned short s1;
- unsigned short s2;
- unsigned char c[8];
-} IID;
-
-#endif // __IID_DEFINED__
-
-#ifndef CLSID_DEFINED
-#define CLSID_DEFINED
-typedef IID CLSID;
-#endif // CLSID_DEFINED
-
-#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
- const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
-
-#endif !_MIDL_USE_GUIDDEF_
-
-MIDL_DEFINE_GUID(IID, IID_IAccessibleTable,0x35AD8070,0xC20C,0x4fb4,0xB0,0x94,0xF4,0xF7,0x27,0x5D,0xD4,0x69);
-
-#undef MIDL_DEFINE_GUID
-
-#ifdef __cplusplus
-}
-#endif
-
-
-
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleTable_p.c b/src/3rdparty/iaccessible2/generated/amd64/AccessibleTable_p.c
deleted file mode 100644
index cca4e376c8..0000000000
--- a/src/3rdparty/iaccessible2/generated/amd64/AccessibleTable_p.c
+++ /dev/null
@@ -1,1543 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the proxy stub code */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:59 2012
- */
-/* Compiler settings for AccessibleTable.idl:
- Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#if defined(_M_AMD64)
-
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-#if _MSC_VER >= 1200
-#pragma warning(push)
-#endif
-
-#pragma warning( disable: 4211 ) /* redefine extern to static */
-#pragma warning( disable: 4232 ) /* dllimport identity*/
-#pragma warning( disable: 4024 ) /* array to pointer mapping*/
-#pragma warning( disable: 4152 ) /* function/data pointer conversion in expression */
-
-#define USE_STUBLESS_PROXY
-
-
-/* verify that the <rpcproxy.h> version is high enough to compile this file*/
-#ifndef __REDQ_RPCPROXY_H_VERSION__
-#define __REQUIRED_RPCPROXY_H_VERSION__ 475
-#endif
-
-
-#include "rpcproxy.h"
-#ifndef __RPCPROXY_H_VERSION__
-#error this stub requires an updated version of <rpcproxy.h>
-#endif /* __RPCPROXY_H_VERSION__ */
-
-
-#include "AccessibleTable.h"
-
-#define TYPE_FORMAT_STRING_SIZE 139
-#define PROC_FORMAT_STRING_SIZE 1277
-#define EXPR_FORMAT_STRING_SIZE 1
-#define TRANSMIT_AS_TABLE_SIZE 0
-#define WIRE_MARSHAL_TABLE_SIZE 1
-
-typedef struct _AccessibleTable_MIDL_TYPE_FORMAT_STRING
- {
- short Pad;
- unsigned char Format[ TYPE_FORMAT_STRING_SIZE ];
- } AccessibleTable_MIDL_TYPE_FORMAT_STRING;
-
-typedef struct _AccessibleTable_MIDL_PROC_FORMAT_STRING
- {
- short Pad;
- unsigned char Format[ PROC_FORMAT_STRING_SIZE ];
- } AccessibleTable_MIDL_PROC_FORMAT_STRING;
-
-typedef struct _AccessibleTable_MIDL_EXPR_FORMAT_STRING
- {
- long Pad;
- unsigned char Format[ EXPR_FORMAT_STRING_SIZE ];
- } AccessibleTable_MIDL_EXPR_FORMAT_STRING;
-
-
-static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax =
-{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}};
-
-
-extern const AccessibleTable_MIDL_TYPE_FORMAT_STRING AccessibleTable__MIDL_TypeFormatString;
-extern const AccessibleTable_MIDL_PROC_FORMAT_STRING AccessibleTable__MIDL_ProcFormatString;
-extern const AccessibleTable_MIDL_EXPR_FORMAT_STRING AccessibleTable__MIDL_ExprFormatString;
-
-
-extern const MIDL_STUB_DESC Object_StubDesc;
-
-
-extern const MIDL_SERVER_INFO IAccessibleTable_ServerInfo;
-extern const MIDL_STUBLESS_PROXY_INFO IAccessibleTable_ProxyInfo;
-
-
-extern const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ];
-
-#if !defined(__RPC_WIN64__)
-#error Invalid build platform for this stub.
-#endif
-
-static const AccessibleTable_MIDL_PROC_FORMAT_STRING AccessibleTable__MIDL_ProcFormatString =
- {
- 0,
- {
-
- /* Procedure get_accessibleAt */
-
- 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 2 */ NdrFcLong( 0x0 ), /* 0 */
-/* 6 */ NdrFcShort( 0x3 ), /* 3 */
-/* 8 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
-/* 10 */ NdrFcShort( 0x10 ), /* 16 */
-/* 12 */ NdrFcShort( 0x8 ), /* 8 */
-/* 14 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x4, /* 4 */
-/* 16 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 18 */ NdrFcShort( 0x0 ), /* 0 */
-/* 20 */ NdrFcShort( 0x0 ), /* 0 */
-/* 22 */ NdrFcShort( 0x0 ), /* 0 */
-/* 24 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter row */
-
-/* 26 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 28 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 30 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter column */
-
-/* 32 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 34 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 36 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter accessible */
-
-/* 38 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
-/* 40 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 42 */ NdrFcShort( 0x2 ), /* Type Offset=2 */
-
- /* Return value */
-
-/* 44 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 46 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
-/* 48 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_caption */
-
-/* 50 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 52 */ NdrFcLong( 0x0 ), /* 0 */
-/* 56 */ NdrFcShort( 0x4 ), /* 4 */
-/* 58 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 60 */ NdrFcShort( 0x0 ), /* 0 */
-/* 62 */ NdrFcShort( 0x8 ), /* 8 */
-/* 64 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x2, /* 2 */
-/* 66 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 68 */ NdrFcShort( 0x0 ), /* 0 */
-/* 70 */ NdrFcShort( 0x0 ), /* 0 */
-/* 72 */ NdrFcShort( 0x0 ), /* 0 */
-/* 74 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter accessible */
-
-/* 76 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
-/* 78 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 80 */ NdrFcShort( 0x2 ), /* Type Offset=2 */
-
- /* Return value */
-
-/* 82 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 84 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 86 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_childIndex */
-
-/* 88 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 90 */ NdrFcLong( 0x0 ), /* 0 */
-/* 94 */ NdrFcShort( 0x5 ), /* 5 */
-/* 96 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
-/* 98 */ NdrFcShort( 0x10 ), /* 16 */
-/* 100 */ NdrFcShort( 0x24 ), /* 36 */
-/* 102 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x4, /* 4 */
-/* 104 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 106 */ NdrFcShort( 0x0 ), /* 0 */
-/* 108 */ NdrFcShort( 0x0 ), /* 0 */
-/* 110 */ NdrFcShort( 0x0 ), /* 0 */
-/* 112 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter rowIndex */
-
-/* 114 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 116 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 118 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter columnIndex */
-
-/* 120 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 122 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 124 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter cellIndex */
-
-/* 126 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 128 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 130 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 132 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 134 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
-/* 136 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_columnDescription */
-
-/* 138 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 140 */ NdrFcLong( 0x0 ), /* 0 */
-/* 144 */ NdrFcShort( 0x6 ), /* 6 */
-/* 146 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
-/* 148 */ NdrFcShort( 0x8 ), /* 8 */
-/* 150 */ NdrFcShort( 0x8 ), /* 8 */
-/* 152 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x3, /* 3 */
-/* 154 */ 0xa, /* 10 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 156 */ NdrFcShort( 0x1 ), /* 1 */
-/* 158 */ NdrFcShort( 0x0 ), /* 0 */
-/* 160 */ NdrFcShort( 0x0 ), /* 0 */
-/* 162 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter column */
-
-/* 164 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 166 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 168 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter description */
-
-/* 170 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
-/* 172 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 174 */ NdrFcShort( 0x3a ), /* Type Offset=58 */
-
- /* Return value */
-
-/* 176 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 178 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 180 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_columnExtentAt */
-
-/* 182 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 184 */ NdrFcLong( 0x0 ), /* 0 */
-/* 188 */ NdrFcShort( 0x7 ), /* 7 */
-/* 190 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
-/* 192 */ NdrFcShort( 0x10 ), /* 16 */
-/* 194 */ NdrFcShort( 0x24 ), /* 36 */
-/* 196 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x4, /* 4 */
-/* 198 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 200 */ NdrFcShort( 0x0 ), /* 0 */
-/* 202 */ NdrFcShort( 0x0 ), /* 0 */
-/* 204 */ NdrFcShort( 0x0 ), /* 0 */
-/* 206 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter row */
-
-/* 208 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 210 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 212 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter column */
-
-/* 214 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 216 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 218 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter nColumnsSpanned */
-
-/* 220 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 222 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 224 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 226 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 228 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
-/* 230 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_columnHeader */
-
-/* 232 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 234 */ NdrFcLong( 0x0 ), /* 0 */
-/* 238 */ NdrFcShort( 0x8 ), /* 8 */
-/* 240 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
-/* 242 */ NdrFcShort( 0x0 ), /* 0 */
-/* 244 */ NdrFcShort( 0x24 ), /* 36 */
-/* 246 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x3, /* 3 */
-/* 248 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 250 */ NdrFcShort( 0x0 ), /* 0 */
-/* 252 */ NdrFcShort( 0x0 ), /* 0 */
-/* 254 */ NdrFcShort( 0x0 ), /* 0 */
-/* 256 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter accessibleTable */
-
-/* 258 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
-/* 260 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 262 */ NdrFcShort( 0x44 ), /* Type Offset=68 */
-
- /* Parameter startingRowIndex */
-
-/* 264 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 266 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 268 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 270 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 272 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 274 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_columnIndex */
-
-/* 276 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 278 */ NdrFcLong( 0x0 ), /* 0 */
-/* 282 */ NdrFcShort( 0x9 ), /* 9 */
-/* 284 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
-/* 286 */ NdrFcShort( 0x8 ), /* 8 */
-/* 288 */ NdrFcShort( 0x24 ), /* 36 */
-/* 290 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x3, /* 3 */
-/* 292 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 294 */ NdrFcShort( 0x0 ), /* 0 */
-/* 296 */ NdrFcShort( 0x0 ), /* 0 */
-/* 298 */ NdrFcShort( 0x0 ), /* 0 */
-/* 300 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter cellIndex */
-
-/* 302 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 304 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 306 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter columnIndex */
-
-/* 308 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 310 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 312 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 314 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 316 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 318 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_nColumns */
-
-/* 320 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 322 */ NdrFcLong( 0x0 ), /* 0 */
-/* 326 */ NdrFcShort( 0xa ), /* 10 */
-/* 328 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 330 */ NdrFcShort( 0x0 ), /* 0 */
-/* 332 */ NdrFcShort( 0x24 ), /* 36 */
-/* 334 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 336 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 338 */ NdrFcShort( 0x0 ), /* 0 */
-/* 340 */ NdrFcShort( 0x0 ), /* 0 */
-/* 342 */ NdrFcShort( 0x0 ), /* 0 */
-/* 344 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter columnCount */
-
-/* 346 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 348 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 350 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 352 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 354 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 356 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_nRows */
-
-/* 358 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 360 */ NdrFcLong( 0x0 ), /* 0 */
-/* 364 */ NdrFcShort( 0xb ), /* 11 */
-/* 366 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 368 */ NdrFcShort( 0x0 ), /* 0 */
-/* 370 */ NdrFcShort( 0x24 ), /* 36 */
-/* 372 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 374 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 376 */ NdrFcShort( 0x0 ), /* 0 */
-/* 378 */ NdrFcShort( 0x0 ), /* 0 */
-/* 380 */ NdrFcShort( 0x0 ), /* 0 */
-/* 382 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter rowCount */
-
-/* 384 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 386 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 388 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 390 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 392 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 394 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_nSelectedChildren */
-
-/* 396 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 398 */ NdrFcLong( 0x0 ), /* 0 */
-/* 402 */ NdrFcShort( 0xc ), /* 12 */
-/* 404 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 406 */ NdrFcShort( 0x0 ), /* 0 */
-/* 408 */ NdrFcShort( 0x24 ), /* 36 */
-/* 410 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 412 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 414 */ NdrFcShort( 0x0 ), /* 0 */
-/* 416 */ NdrFcShort( 0x0 ), /* 0 */
-/* 418 */ NdrFcShort( 0x0 ), /* 0 */
-/* 420 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter cellCount */
-
-/* 422 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 424 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 426 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 428 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 430 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 432 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_nSelectedColumns */
-
-/* 434 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 436 */ NdrFcLong( 0x0 ), /* 0 */
-/* 440 */ NdrFcShort( 0xd ), /* 13 */
-/* 442 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 444 */ NdrFcShort( 0x0 ), /* 0 */
-/* 446 */ NdrFcShort( 0x24 ), /* 36 */
-/* 448 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 450 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 452 */ NdrFcShort( 0x0 ), /* 0 */
-/* 454 */ NdrFcShort( 0x0 ), /* 0 */
-/* 456 */ NdrFcShort( 0x0 ), /* 0 */
-/* 458 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter columnCount */
-
-/* 460 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 462 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 464 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 466 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 468 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 470 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_nSelectedRows */
-
-/* 472 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 474 */ NdrFcLong( 0x0 ), /* 0 */
-/* 478 */ NdrFcShort( 0xe ), /* 14 */
-/* 480 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 482 */ NdrFcShort( 0x0 ), /* 0 */
-/* 484 */ NdrFcShort( 0x24 ), /* 36 */
-/* 486 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 488 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 490 */ NdrFcShort( 0x0 ), /* 0 */
-/* 492 */ NdrFcShort( 0x0 ), /* 0 */
-/* 494 */ NdrFcShort( 0x0 ), /* 0 */
-/* 496 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter rowCount */
-
-/* 498 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 500 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 502 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 504 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 506 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 508 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_rowDescription */
-
-/* 510 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 512 */ NdrFcLong( 0x0 ), /* 0 */
-/* 516 */ NdrFcShort( 0xf ), /* 15 */
-/* 518 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
-/* 520 */ NdrFcShort( 0x8 ), /* 8 */
-/* 522 */ NdrFcShort( 0x8 ), /* 8 */
-/* 524 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x3, /* 3 */
-/* 526 */ 0xa, /* 10 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 528 */ NdrFcShort( 0x1 ), /* 1 */
-/* 530 */ NdrFcShort( 0x0 ), /* 0 */
-/* 532 */ NdrFcShort( 0x0 ), /* 0 */
-/* 534 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter row */
-
-/* 536 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 538 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 540 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter description */
-
-/* 542 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
-/* 544 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 546 */ NdrFcShort( 0x3a ), /* Type Offset=58 */
-
- /* Return value */
-
-/* 548 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 550 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 552 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_rowExtentAt */
-
-/* 554 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 556 */ NdrFcLong( 0x0 ), /* 0 */
-/* 560 */ NdrFcShort( 0x10 ), /* 16 */
-/* 562 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
-/* 564 */ NdrFcShort( 0x10 ), /* 16 */
-/* 566 */ NdrFcShort( 0x24 ), /* 36 */
-/* 568 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x4, /* 4 */
-/* 570 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 572 */ NdrFcShort( 0x0 ), /* 0 */
-/* 574 */ NdrFcShort( 0x0 ), /* 0 */
-/* 576 */ NdrFcShort( 0x0 ), /* 0 */
-/* 578 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter row */
-
-/* 580 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 582 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 584 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter column */
-
-/* 586 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 588 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 590 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter nRowsSpanned */
-
-/* 592 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 594 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 596 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 598 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 600 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
-/* 602 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_rowHeader */
-
-/* 604 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 606 */ NdrFcLong( 0x0 ), /* 0 */
-/* 610 */ NdrFcShort( 0x11 ), /* 17 */
-/* 612 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
-/* 614 */ NdrFcShort( 0x0 ), /* 0 */
-/* 616 */ NdrFcShort( 0x24 ), /* 36 */
-/* 618 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x3, /* 3 */
-/* 620 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 622 */ NdrFcShort( 0x0 ), /* 0 */
-/* 624 */ NdrFcShort( 0x0 ), /* 0 */
-/* 626 */ NdrFcShort( 0x0 ), /* 0 */
-/* 628 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter accessibleTable */
-
-/* 630 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
-/* 632 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 634 */ NdrFcShort( 0x44 ), /* Type Offset=68 */
-
- /* Parameter startingColumnIndex */
-
-/* 636 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 638 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 640 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 642 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 644 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 646 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_rowIndex */
-
-/* 648 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 650 */ NdrFcLong( 0x0 ), /* 0 */
-/* 654 */ NdrFcShort( 0x12 ), /* 18 */
-/* 656 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
-/* 658 */ NdrFcShort( 0x8 ), /* 8 */
-/* 660 */ NdrFcShort( 0x24 ), /* 36 */
-/* 662 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x3, /* 3 */
-/* 664 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 666 */ NdrFcShort( 0x0 ), /* 0 */
-/* 668 */ NdrFcShort( 0x0 ), /* 0 */
-/* 670 */ NdrFcShort( 0x0 ), /* 0 */
-/* 672 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter cellIndex */
-
-/* 674 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 676 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 678 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter rowIndex */
-
-/* 680 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 682 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 684 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 686 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 688 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 690 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_selectedChildren */
-
-/* 692 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 694 */ NdrFcLong( 0x0 ), /* 0 */
-/* 698 */ NdrFcShort( 0x13 ), /* 19 */
-/* 700 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
-/* 702 */ NdrFcShort( 0x8 ), /* 8 */
-/* 704 */ NdrFcShort( 0x24 ), /* 36 */
-/* 706 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x4, /* 4 */
-/* 708 */ 0xa, /* 10 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 710 */ NdrFcShort( 0x1 ), /* 1 */
-/* 712 */ NdrFcShort( 0x0 ), /* 0 */
-/* 714 */ NdrFcShort( 0x0 ), /* 0 */
-/* 716 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter maxChildren */
-
-/* 718 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 720 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 722 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter children */
-
-/* 724 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
-/* 726 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 728 */ NdrFcShort( 0x5a ), /* Type Offset=90 */
-
- /* Parameter nChildren */
-
-/* 730 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 732 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 734 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 736 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 738 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
-/* 740 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_selectedColumns */
-
-/* 742 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 744 */ NdrFcLong( 0x0 ), /* 0 */
-/* 748 */ NdrFcShort( 0x14 ), /* 20 */
-/* 750 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
-/* 752 */ NdrFcShort( 0x8 ), /* 8 */
-/* 754 */ NdrFcShort( 0x24 ), /* 36 */
-/* 756 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x4, /* 4 */
-/* 758 */ 0xa, /* 10 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 760 */ NdrFcShort( 0x1 ), /* 1 */
-/* 762 */ NdrFcShort( 0x0 ), /* 0 */
-/* 764 */ NdrFcShort( 0x0 ), /* 0 */
-/* 766 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter maxColumns */
-
-/* 768 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 770 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 772 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter columns */
-
-/* 774 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
-/* 776 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 778 */ NdrFcShort( 0x5a ), /* Type Offset=90 */
-
- /* Parameter nColumns */
-
-/* 780 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 782 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 784 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 786 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 788 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
-/* 790 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_selectedRows */
-
-/* 792 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 794 */ NdrFcLong( 0x0 ), /* 0 */
-/* 798 */ NdrFcShort( 0x15 ), /* 21 */
-/* 800 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
-/* 802 */ NdrFcShort( 0x8 ), /* 8 */
-/* 804 */ NdrFcShort( 0x24 ), /* 36 */
-/* 806 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x4, /* 4 */
-/* 808 */ 0xa, /* 10 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 810 */ NdrFcShort( 0x1 ), /* 1 */
-/* 812 */ NdrFcShort( 0x0 ), /* 0 */
-/* 814 */ NdrFcShort( 0x0 ), /* 0 */
-/* 816 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter maxRows */
-
-/* 818 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 820 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 822 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter rows */
-
-/* 824 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
-/* 826 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 828 */ NdrFcShort( 0x5a ), /* Type Offset=90 */
-
- /* Parameter nRows */
-
-/* 830 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 832 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 834 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 836 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 838 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
-/* 840 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_summary */
-
-/* 842 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 844 */ NdrFcLong( 0x0 ), /* 0 */
-/* 848 */ NdrFcShort( 0x16 ), /* 22 */
-/* 850 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 852 */ NdrFcShort( 0x0 ), /* 0 */
-/* 854 */ NdrFcShort( 0x8 ), /* 8 */
-/* 856 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x2, /* 2 */
-/* 858 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 860 */ NdrFcShort( 0x0 ), /* 0 */
-/* 862 */ NdrFcShort( 0x0 ), /* 0 */
-/* 864 */ NdrFcShort( 0x0 ), /* 0 */
-/* 866 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter accessible */
-
-/* 868 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
-/* 870 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 872 */ NdrFcShort( 0x2 ), /* Type Offset=2 */
-
- /* Return value */
-
-/* 874 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 876 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 878 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_isColumnSelected */
-
-/* 880 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 882 */ NdrFcLong( 0x0 ), /* 0 */
-/* 886 */ NdrFcShort( 0x17 ), /* 23 */
-/* 888 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
-/* 890 */ NdrFcShort( 0x8 ), /* 8 */
-/* 892 */ NdrFcShort( 0x21 ), /* 33 */
-/* 894 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x3, /* 3 */
-/* 896 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 898 */ NdrFcShort( 0x0 ), /* 0 */
-/* 900 */ NdrFcShort( 0x0 ), /* 0 */
-/* 902 */ NdrFcShort( 0x0 ), /* 0 */
-/* 904 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter column */
-
-/* 906 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 908 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 910 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter isSelected */
-
-/* 912 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 914 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 916 */ 0x3, /* FC_SMALL */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 918 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 920 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 922 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_isRowSelected */
-
-/* 924 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 926 */ NdrFcLong( 0x0 ), /* 0 */
-/* 930 */ NdrFcShort( 0x18 ), /* 24 */
-/* 932 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
-/* 934 */ NdrFcShort( 0x8 ), /* 8 */
-/* 936 */ NdrFcShort( 0x21 ), /* 33 */
-/* 938 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x3, /* 3 */
-/* 940 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 942 */ NdrFcShort( 0x0 ), /* 0 */
-/* 944 */ NdrFcShort( 0x0 ), /* 0 */
-/* 946 */ NdrFcShort( 0x0 ), /* 0 */
-/* 948 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter row */
-
-/* 950 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 952 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 954 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter isSelected */
-
-/* 956 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 958 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 960 */ 0x3, /* FC_SMALL */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 962 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 964 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 966 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_isSelected */
-
-/* 968 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 970 */ NdrFcLong( 0x0 ), /* 0 */
-/* 974 */ NdrFcShort( 0x19 ), /* 25 */
-/* 976 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
-/* 978 */ NdrFcShort( 0x10 ), /* 16 */
-/* 980 */ NdrFcShort( 0x21 ), /* 33 */
-/* 982 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x4, /* 4 */
-/* 984 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 986 */ NdrFcShort( 0x0 ), /* 0 */
-/* 988 */ NdrFcShort( 0x0 ), /* 0 */
-/* 990 */ NdrFcShort( 0x0 ), /* 0 */
-/* 992 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter row */
-
-/* 994 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 996 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 998 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter column */
-
-/* 1000 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 1002 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 1004 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter isSelected */
-
-/* 1006 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 1008 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 1010 */ 0x3, /* FC_SMALL */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 1012 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 1014 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
-/* 1016 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure selectRow */
-
-/* 1018 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 1020 */ NdrFcLong( 0x0 ), /* 0 */
-/* 1024 */ NdrFcShort( 0x1a ), /* 26 */
-/* 1026 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 1028 */ NdrFcShort( 0x8 ), /* 8 */
-/* 1030 */ NdrFcShort( 0x8 ), /* 8 */
-/* 1032 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 1034 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 1036 */ NdrFcShort( 0x0 ), /* 0 */
-/* 1038 */ NdrFcShort( 0x0 ), /* 0 */
-/* 1040 */ NdrFcShort( 0x0 ), /* 0 */
-/* 1042 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter row */
-
-/* 1044 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 1046 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 1048 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 1050 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 1052 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 1054 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure selectColumn */
-
-/* 1056 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 1058 */ NdrFcLong( 0x0 ), /* 0 */
-/* 1062 */ NdrFcShort( 0x1b ), /* 27 */
-/* 1064 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 1066 */ NdrFcShort( 0x8 ), /* 8 */
-/* 1068 */ NdrFcShort( 0x8 ), /* 8 */
-/* 1070 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 1072 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 1074 */ NdrFcShort( 0x0 ), /* 0 */
-/* 1076 */ NdrFcShort( 0x0 ), /* 0 */
-/* 1078 */ NdrFcShort( 0x0 ), /* 0 */
-/* 1080 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter column */
-
-/* 1082 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 1084 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 1086 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 1088 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 1090 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 1092 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure unselectRow */
-
-/* 1094 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 1096 */ NdrFcLong( 0x0 ), /* 0 */
-/* 1100 */ NdrFcShort( 0x1c ), /* 28 */
-/* 1102 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 1104 */ NdrFcShort( 0x8 ), /* 8 */
-/* 1106 */ NdrFcShort( 0x8 ), /* 8 */
-/* 1108 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 1110 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 1112 */ NdrFcShort( 0x0 ), /* 0 */
-/* 1114 */ NdrFcShort( 0x0 ), /* 0 */
-/* 1116 */ NdrFcShort( 0x0 ), /* 0 */
-/* 1118 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter row */
-
-/* 1120 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 1122 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 1124 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 1126 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 1128 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 1130 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure unselectColumn */
-
-/* 1132 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 1134 */ NdrFcLong( 0x0 ), /* 0 */
-/* 1138 */ NdrFcShort( 0x1d ), /* 29 */
-/* 1140 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 1142 */ NdrFcShort( 0x8 ), /* 8 */
-/* 1144 */ NdrFcShort( 0x8 ), /* 8 */
-/* 1146 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 1148 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 1150 */ NdrFcShort( 0x0 ), /* 0 */
-/* 1152 */ NdrFcShort( 0x0 ), /* 0 */
-/* 1154 */ NdrFcShort( 0x0 ), /* 0 */
-/* 1156 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter column */
-
-/* 1158 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 1160 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 1162 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 1164 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 1166 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 1168 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_rowColumnExtentsAtIndex */
-
-/* 1170 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 1172 */ NdrFcLong( 0x0 ), /* 0 */
-/* 1176 */ NdrFcShort( 0x1e ), /* 30 */
-/* 1178 */ NdrFcShort( 0x40 ), /* X64 Stack size/offset = 64 */
-/* 1180 */ NdrFcShort( 0x8 ), /* 8 */
-/* 1182 */ NdrFcShort( 0x91 ), /* 145 */
-/* 1184 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x7, /* 7 */
-/* 1186 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 1188 */ NdrFcShort( 0x0 ), /* 0 */
-/* 1190 */ NdrFcShort( 0x0 ), /* 0 */
-/* 1192 */ NdrFcShort( 0x0 ), /* 0 */
-/* 1194 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter index */
-
-/* 1196 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 1198 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 1200 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter row */
-
-/* 1202 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 1204 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 1206 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter column */
-
-/* 1208 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 1210 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 1212 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter rowExtents */
-
-/* 1214 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 1216 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
-/* 1218 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter columnExtents */
-
-/* 1220 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 1222 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
-/* 1224 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter isSelected */
-
-/* 1226 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 1228 */ NdrFcShort( 0x30 ), /* X64 Stack size/offset = 48 */
-/* 1230 */ 0x3, /* FC_SMALL */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 1232 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 1234 */ NdrFcShort( 0x38 ), /* X64 Stack size/offset = 56 */
-/* 1236 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_modelChange */
-
-/* 1238 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 1240 */ NdrFcLong( 0x0 ), /* 0 */
-/* 1244 */ NdrFcShort( 0x1f ), /* 31 */
-/* 1246 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 1248 */ NdrFcShort( 0x0 ), /* 0 */
-/* 1250 */ NdrFcShort( 0x8 ), /* 8 */
-/* 1252 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x2, /* 2 */
-/* 1254 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 1256 */ NdrFcShort( 0x0 ), /* 0 */
-/* 1258 */ NdrFcShort( 0x0 ), /* 0 */
-/* 1260 */ NdrFcShort( 0x0 ), /* 0 */
-/* 1262 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter modelChange */
-
-/* 1264 */ NdrFcShort( 0x6113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=24 */
-/* 1266 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 1268 */ NdrFcShort( 0x7c ), /* Type Offset=124 */
-
- /* Return value */
-
-/* 1270 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 1272 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 1274 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- 0x0
- }
- };
-
-static const AccessibleTable_MIDL_TYPE_FORMAT_STRING AccessibleTable__MIDL_TypeFormatString =
- {
- 0,
- {
- NdrFcShort( 0x0 ), /* 0 */
-/* 2 */
- 0x11, 0x10, /* FC_RP [pointer_deref] */
-/* 4 */ NdrFcShort( 0x2 ), /* Offset= 2 (6) */
-/* 6 */
- 0x2f, /* FC_IP */
- 0x5a, /* FC_CONSTANT_IID */
-/* 8 */ NdrFcLong( 0x0 ), /* 0 */
-/* 12 */ NdrFcShort( 0x0 ), /* 0 */
-/* 14 */ NdrFcShort( 0x0 ), /* 0 */
-/* 16 */ 0xc0, /* 192 */
- 0x0, /* 0 */
-/* 18 */ 0x0, /* 0 */
- 0x0, /* 0 */
-/* 20 */ 0x0, /* 0 */
- 0x0, /* 0 */
-/* 22 */ 0x0, /* 0 */
- 0x46, /* 70 */
-/* 24 */
- 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
-/* 26 */ 0x8, /* FC_LONG */
- 0x5c, /* FC_PAD */
-/* 28 */
- 0x11, 0x4, /* FC_RP [alloced_on_stack] */
-/* 30 */ NdrFcShort( 0x1c ), /* Offset= 28 (58) */
-/* 32 */
- 0x13, 0x0, /* FC_OP */
-/* 34 */ NdrFcShort( 0xe ), /* Offset= 14 (48) */
-/* 36 */
- 0x1b, /* FC_CARRAY */
- 0x1, /* 1 */
-/* 38 */ NdrFcShort( 0x2 ), /* 2 */
-/* 40 */ 0x9, /* Corr desc: FC_ULONG */
- 0x0, /* */
-/* 42 */ NdrFcShort( 0xfffc ), /* -4 */
-/* 44 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 46 */ 0x6, /* FC_SHORT */
- 0x5b, /* FC_END */
-/* 48 */
- 0x17, /* FC_CSTRUCT */
- 0x3, /* 3 */
-/* 50 */ NdrFcShort( 0x8 ), /* 8 */
-/* 52 */ NdrFcShort( 0xfff0 ), /* Offset= -16 (36) */
-/* 54 */ 0x8, /* FC_LONG */
- 0x8, /* FC_LONG */
-/* 56 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-/* 58 */ 0xb4, /* FC_USER_MARSHAL */
- 0x83, /* 131 */
-/* 60 */ NdrFcShort( 0x0 ), /* 0 */
-/* 62 */ NdrFcShort( 0x8 ), /* 8 */
-/* 64 */ NdrFcShort( 0x0 ), /* 0 */
-/* 66 */ NdrFcShort( 0xffde ), /* Offset= -34 (32) */
-/* 68 */
- 0x11, 0x10, /* FC_RP [pointer_deref] */
-/* 70 */ NdrFcShort( 0x2 ), /* Offset= 2 (72) */
-/* 72 */
- 0x2f, /* FC_IP */
- 0x5a, /* FC_CONSTANT_IID */
-/* 74 */ NdrFcLong( 0x35ad8070 ), /* 900563056 */
-/* 78 */ NdrFcShort( 0xc20c ), /* -15860 */
-/* 80 */ NdrFcShort( 0x4fb4 ), /* 20404 */
-/* 82 */ 0xb0, /* 176 */
- 0x94, /* 148 */
-/* 84 */ 0xf4, /* 244 */
- 0xf7, /* 247 */
-/* 86 */ 0x27, /* 39 */
- 0x5d, /* 93 */
-/* 88 */ 0xd4, /* 212 */
- 0x69, /* 105 */
-/* 90 */
- 0x11, 0x14, /* FC_RP [alloced_on_stack] [pointer_deref] */
-/* 92 */ NdrFcShort( 0x2 ), /* Offset= 2 (94) */
-/* 94 */
- 0x13, 0x0, /* FC_OP */
-/* 96 */ NdrFcShort( 0x2 ), /* Offset= 2 (98) */
-/* 98 */
- 0x1c, /* FC_CVARRAY */
- 0x3, /* 3 */
-/* 100 */ NdrFcShort( 0x4 ), /* 4 */
-/* 102 */ 0x28, /* Corr desc: parameter, FC_LONG */
- 0x0, /* */
-/* 104 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 106 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 108 */ 0x28, /* Corr desc: parameter, FC_LONG */
- 0x54, /* FC_DEREFERENCE */
-/* 110 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 112 */ NdrFcShort( 0x0 ), /* Corr flags: */
-/* 114 */ 0x8, /* FC_LONG */
- 0x5b, /* FC_END */
-/* 116 */
- 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
-/* 118 */ 0x3, /* FC_SMALL */
- 0x5c, /* FC_PAD */
-/* 120 */
- 0x11, 0x4, /* FC_RP [alloced_on_stack] */
-/* 122 */ NdrFcShort( 0x2 ), /* Offset= 2 (124) */
-/* 124 */
- 0x1a, /* FC_BOGUS_STRUCT */
- 0x3, /* 3 */
-/* 126 */ NdrFcShort( 0x14 ), /* 20 */
-/* 128 */ NdrFcShort( 0x0 ), /* 0 */
-/* 130 */ NdrFcShort( 0x0 ), /* Offset= 0 (130) */
-/* 132 */ 0xd, /* FC_ENUM16 */
- 0x8, /* FC_LONG */
-/* 134 */ 0x8, /* FC_LONG */
- 0x8, /* FC_LONG */
-/* 136 */ 0x8, /* FC_LONG */
- 0x5b, /* FC_END */
-
- 0x0
- }
- };
-
-static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] =
- {
-
- {
- BSTR_UserSize
- ,BSTR_UserMarshal
- ,BSTR_UserUnmarshal
- ,BSTR_UserFree
- }
-
- };
-
-
-
-/* Object interface: IUnknown, ver. 0.0,
- GUID={0x00000000,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
-
-
-/* Object interface: IAccessibleTable, ver. 0.0,
- GUID={0x35AD8070,0xC20C,0x4fb4,{0xB0,0x94,0xF4,0xF7,0x27,0x5D,0xD4,0x69}} */
-
-#pragma code_seg(".orpc")
-static const unsigned short IAccessibleTable_FormatStringOffsetTable[] =
- {
- 0,
- 50,
- 88,
- 138,
- 182,
- 232,
- 276,
- 320,
- 358,
- 396,
- 434,
- 472,
- 510,
- 554,
- 604,
- 648,
- 692,
- 742,
- 792,
- 842,
- 880,
- 924,
- 968,
- 1018,
- 1056,
- 1094,
- 1132,
- 1170,
- 1238
- };
-
-static const MIDL_STUBLESS_PROXY_INFO IAccessibleTable_ProxyInfo =
- {
- &Object_StubDesc,
- AccessibleTable__MIDL_ProcFormatString.Format,
- &IAccessibleTable_FormatStringOffsetTable[-3],
- 0,
- 0,
- 0
- };
-
-
-static const MIDL_SERVER_INFO IAccessibleTable_ServerInfo =
- {
- &Object_StubDesc,
- 0,
- AccessibleTable__MIDL_ProcFormatString.Format,
- &IAccessibleTable_FormatStringOffsetTable[-3],
- 0,
- 0,
- 0,
- 0};
-CINTERFACE_PROXY_VTABLE(32) _IAccessibleTableProxyVtbl =
-{
- &IAccessibleTable_ProxyInfo,
- &IID_IAccessibleTable,
- IUnknown_QueryInterface_Proxy,
- IUnknown_AddRef_Proxy,
- IUnknown_Release_Proxy ,
- (void *) (INT_PTR) -1 /* IAccessibleTable::get_accessibleAt */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable::get_caption */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable::get_childIndex */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable::get_columnDescription */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable::get_columnExtentAt */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable::get_columnHeader */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable::get_columnIndex */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable::get_nColumns */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable::get_nRows */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable::get_nSelectedChildren */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable::get_nSelectedColumns */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable::get_nSelectedRows */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable::get_rowDescription */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable::get_rowExtentAt */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable::get_rowHeader */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable::get_rowIndex */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable::get_selectedChildren */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable::get_selectedColumns */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable::get_selectedRows */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable::get_summary */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable::get_isColumnSelected */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable::get_isRowSelected */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable::get_isSelected */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable::selectRow */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable::selectColumn */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable::unselectRow */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable::unselectColumn */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable::get_rowColumnExtentsAtIndex */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable::get_modelChange */
-};
-
-const CInterfaceStubVtbl _IAccessibleTableStubVtbl =
-{
- &IID_IAccessibleTable,
- &IAccessibleTable_ServerInfo,
- 32,
- 0, /* pure interpreted */
- CStdStubBuffer_METHODS
-};
-
-static const MIDL_STUB_DESC Object_StubDesc =
- {
- 0,
- NdrOleAllocate,
- NdrOleFree,
- 0,
- 0,
- 0,
- 0,
- 0,
- AccessibleTable__MIDL_TypeFormatString.Format,
- 1, /* -error bounds_check flag */
- 0x50002, /* Ndr library version */
- 0,
- 0x700022b, /* MIDL Version 7.0.555 */
- 0,
- UserMarshalRoutines,
- 0, /* notify & notify_flag routine table */
- 0x1, /* MIDL flag */
- 0, /* cs routines */
- 0, /* proxy/server info */
- 0
- };
-
-const CInterfaceProxyVtbl * const _AccessibleTable_ProxyVtblList[] =
-{
- ( CInterfaceProxyVtbl *) &_IAccessibleTableProxyVtbl,
- 0
-};
-
-const CInterfaceStubVtbl * const _AccessibleTable_StubVtblList[] =
-{
- ( CInterfaceStubVtbl *) &_IAccessibleTableStubVtbl,
- 0
-};
-
-PCInterfaceName const _AccessibleTable_InterfaceNamesList[] =
-{
- "IAccessibleTable",
- 0
-};
-
-
-#define _AccessibleTable_CHECK_IID(n) IID_GENERIC_CHECK_IID( _AccessibleTable, pIID, n)
-
-int __stdcall _AccessibleTable_IID_Lookup( const IID * pIID, int * pIndex )
-{
-
- if(!_AccessibleTable_CHECK_IID(0))
- {
- *pIndex = 0;
- return 1;
- }
-
- return 0;
-}
-
-const ExtendedProxyFileInfo AccessibleTable_ProxyFileInfo =
-{
- (PCInterfaceProxyVtblList *) & _AccessibleTable_ProxyVtblList,
- (PCInterfaceStubVtblList *) & _AccessibleTable_StubVtblList,
- (const PCInterfaceName * ) & _AccessibleTable_InterfaceNamesList,
- 0, /* no delegation */
- & _AccessibleTable_IID_Lookup,
- 1,
- 2,
- 0, /* table of [async_uuid] interfaces */
- 0, /* Filler1 */
- 0, /* Filler2 */
- 0 /* Filler3 */
-};
-#if _MSC_VER >= 1200
-#pragma warning(pop)
-#endif
-
-
-#endif /* defined(_M_AMD64)*/
-
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleText.h b/src/3rdparty/iaccessible2/generated/amd64/AccessibleText.h
deleted file mode 100644
index 9b9119629d..0000000000
--- a/src/3rdparty/iaccessible2/generated/amd64/AccessibleText.h
+++ /dev/null
@@ -1,435 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the definitions for the interfaces */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:54:00 2012
- */
-/* Compiler settings for AccessibleText.idl:
- Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-
-
-/* verify that the <rpcndr.h> version is high enough to compile this file*/
-#ifndef __REQUIRED_RPCNDR_H_VERSION__
-#define __REQUIRED_RPCNDR_H_VERSION__ 475
-#endif
-
-#include "rpc.h"
-#include "rpcndr.h"
-
-#ifndef __RPCNDR_H_VERSION__
-#error this stub requires an updated version of <rpcndr.h>
-#endif // __RPCNDR_H_VERSION__
-
-#ifndef COM_NO_WINDOWS_H
-#include "windows.h"
-#include "ole2.h"
-#endif /*COM_NO_WINDOWS_H*/
-
-#ifndef __AccessibleText_h__
-#define __AccessibleText_h__
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-#pragma once
-#endif
-
-/* Forward Declarations */
-
-#ifndef __IAccessibleText_FWD_DEFINED__
-#define __IAccessibleText_FWD_DEFINED__
-typedef interface IAccessibleText IAccessibleText;
-#endif /* __IAccessibleText_FWD_DEFINED__ */
-
-
-/* header files for imported files */
-#include "objidl.h"
-#include "oaidl.h"
-#include "oleacc.h"
-#include "IA2CommonTypes.h"
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-
-/* interface __MIDL_itf_AccessibleText_0000_0000 */
-/* [local] */
-
-typedef struct IA2TextSegment
- {
- BSTR text;
- long start;
- long end;
- } IA2TextSegment;
-
-
-enum IA2TextBoundaryType
- { IA2_TEXT_BOUNDARY_CHAR = 0,
- IA2_TEXT_BOUNDARY_WORD = ( IA2_TEXT_BOUNDARY_CHAR + 1 ) ,
- IA2_TEXT_BOUNDARY_SENTENCE = ( IA2_TEXT_BOUNDARY_WORD + 1 ) ,
- IA2_TEXT_BOUNDARY_PARAGRAPH = ( IA2_TEXT_BOUNDARY_SENTENCE + 1 ) ,
- IA2_TEXT_BOUNDARY_LINE = ( IA2_TEXT_BOUNDARY_PARAGRAPH + 1 ) ,
- IA2_TEXT_BOUNDARY_ALL = ( IA2_TEXT_BOUNDARY_LINE + 1 )
- } ;
-
-
-extern RPC_IF_HANDLE __MIDL_itf_AccessibleText_0000_0000_v0_0_c_ifspec;
-extern RPC_IF_HANDLE __MIDL_itf_AccessibleText_0000_0000_v0_0_s_ifspec;
-
-#ifndef __IAccessibleText_INTERFACE_DEFINED__
-#define __IAccessibleText_INTERFACE_DEFINED__
-
-/* interface IAccessibleText */
-/* [uuid][object] */
-
-
-EXTERN_C const IID IID_IAccessibleText;
-
-#if defined(__cplusplus) && !defined(CINTERFACE)
-
- MIDL_INTERFACE("24FD2FFB-3AAD-4a08-8335-A3AD89C0FB4B")
- IAccessibleText : public IUnknown
- {
- public:
- virtual HRESULT STDMETHODCALLTYPE addSelection(
- /* [in] */ long startOffset,
- /* [in] */ long endOffset) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_attributes(
- /* [in] */ long offset,
- /* [out] */ long *startOffset,
- /* [out] */ long *endOffset,
- /* [retval][out] */ BSTR *textAttributes) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_caretOffset(
- /* [retval][out] */ long *offset) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_characterExtents(
- /* [in] */ long offset,
- /* [in] */ enum IA2CoordinateType coordType,
- /* [out] */ long *x,
- /* [out] */ long *y,
- /* [out] */ long *width,
- /* [retval][out] */ long *height) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nSelections(
- /* [retval][out] */ long *nSelections) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_offsetAtPoint(
- /* [in] */ long x,
- /* [in] */ long y,
- /* [in] */ enum IA2CoordinateType coordType,
- /* [retval][out] */ long *offset) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selection(
- /* [in] */ long selectionIndex,
- /* [out] */ long *startOffset,
- /* [retval][out] */ long *endOffset) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_text(
- /* [in] */ long startOffset,
- /* [in] */ long endOffset,
- /* [retval][out] */ BSTR *text) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_textBeforeOffset(
- /* [in] */ long offset,
- /* [in] */ enum IA2TextBoundaryType boundaryType,
- /* [out] */ long *startOffset,
- /* [out] */ long *endOffset,
- /* [retval][out] */ BSTR *text) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_textAfterOffset(
- /* [in] */ long offset,
- /* [in] */ enum IA2TextBoundaryType boundaryType,
- /* [out] */ long *startOffset,
- /* [out] */ long *endOffset,
- /* [retval][out] */ BSTR *text) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_textAtOffset(
- /* [in] */ long offset,
- /* [in] */ enum IA2TextBoundaryType boundaryType,
- /* [out] */ long *startOffset,
- /* [out] */ long *endOffset,
- /* [retval][out] */ BSTR *text) = 0;
-
- virtual HRESULT STDMETHODCALLTYPE removeSelection(
- /* [in] */ long selectionIndex) = 0;
-
- virtual HRESULT STDMETHODCALLTYPE setCaretOffset(
- /* [in] */ long offset) = 0;
-
- virtual HRESULT STDMETHODCALLTYPE setSelection(
- /* [in] */ long selectionIndex,
- /* [in] */ long startOffset,
- /* [in] */ long endOffset) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nCharacters(
- /* [retval][out] */ long *nCharacters) = 0;
-
- virtual HRESULT STDMETHODCALLTYPE scrollSubstringTo(
- /* [in] */ long startIndex,
- /* [in] */ long endIndex,
- /* [in] */ enum IA2ScrollType scrollType) = 0;
-
- virtual HRESULT STDMETHODCALLTYPE scrollSubstringToPoint(
- /* [in] */ long startIndex,
- /* [in] */ long endIndex,
- /* [in] */ enum IA2CoordinateType coordinateType,
- /* [in] */ long x,
- /* [in] */ long y) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_newText(
- /* [retval][out] */ IA2TextSegment *newText) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_oldText(
- /* [retval][out] */ IA2TextSegment *oldText) = 0;
-
- };
-
-#else /* C style interface */
-
- typedef struct IAccessibleTextVtbl
- {
- BEGIN_INTERFACE
-
- HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
- IAccessibleText * This,
- /* [in] */ REFIID riid,
- /* [annotation][iid_is][out] */
- __RPC__deref_out void **ppvObject);
-
- ULONG ( STDMETHODCALLTYPE *AddRef )(
- IAccessibleText * This);
-
- ULONG ( STDMETHODCALLTYPE *Release )(
- IAccessibleText * This);
-
- HRESULT ( STDMETHODCALLTYPE *addSelection )(
- IAccessibleText * This,
- /* [in] */ long startOffset,
- /* [in] */ long endOffset);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )(
- IAccessibleText * This,
- /* [in] */ long offset,
- /* [out] */ long *startOffset,
- /* [out] */ long *endOffset,
- /* [retval][out] */ BSTR *textAttributes);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_caretOffset )(
- IAccessibleText * This,
- /* [retval][out] */ long *offset);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_characterExtents )(
- IAccessibleText * This,
- /* [in] */ long offset,
- /* [in] */ enum IA2CoordinateType coordType,
- /* [out] */ long *x,
- /* [out] */ long *y,
- /* [out] */ long *width,
- /* [retval][out] */ long *height);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelections )(
- IAccessibleText * This,
- /* [retval][out] */ long *nSelections);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_offsetAtPoint )(
- IAccessibleText * This,
- /* [in] */ long x,
- /* [in] */ long y,
- /* [in] */ enum IA2CoordinateType coordType,
- /* [retval][out] */ long *offset);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selection )(
- IAccessibleText * This,
- /* [in] */ long selectionIndex,
- /* [out] */ long *startOffset,
- /* [retval][out] */ long *endOffset);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_text )(
- IAccessibleText * This,
- /* [in] */ long startOffset,
- /* [in] */ long endOffset,
- /* [retval][out] */ BSTR *text);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textBeforeOffset )(
- IAccessibleText * This,
- /* [in] */ long offset,
- /* [in] */ enum IA2TextBoundaryType boundaryType,
- /* [out] */ long *startOffset,
- /* [out] */ long *endOffset,
- /* [retval][out] */ BSTR *text);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAfterOffset )(
- IAccessibleText * This,
- /* [in] */ long offset,
- /* [in] */ enum IA2TextBoundaryType boundaryType,
- /* [out] */ long *startOffset,
- /* [out] */ long *endOffset,
- /* [retval][out] */ BSTR *text);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAtOffset )(
- IAccessibleText * This,
- /* [in] */ long offset,
- /* [in] */ enum IA2TextBoundaryType boundaryType,
- /* [out] */ long *startOffset,
- /* [out] */ long *endOffset,
- /* [retval][out] */ BSTR *text);
-
- HRESULT ( STDMETHODCALLTYPE *removeSelection )(
- IAccessibleText * This,
- /* [in] */ long selectionIndex);
-
- HRESULT ( STDMETHODCALLTYPE *setCaretOffset )(
- IAccessibleText * This,
- /* [in] */ long offset);
-
- HRESULT ( STDMETHODCALLTYPE *setSelection )(
- IAccessibleText * This,
- /* [in] */ long selectionIndex,
- /* [in] */ long startOffset,
- /* [in] */ long endOffset);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nCharacters )(
- IAccessibleText * This,
- /* [retval][out] */ long *nCharacters);
-
- HRESULT ( STDMETHODCALLTYPE *scrollSubstringTo )(
- IAccessibleText * This,
- /* [in] */ long startIndex,
- /* [in] */ long endIndex,
- /* [in] */ enum IA2ScrollType scrollType);
-
- HRESULT ( STDMETHODCALLTYPE *scrollSubstringToPoint )(
- IAccessibleText * This,
- /* [in] */ long startIndex,
- /* [in] */ long endIndex,
- /* [in] */ enum IA2CoordinateType coordinateType,
- /* [in] */ long x,
- /* [in] */ long y);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_newText )(
- IAccessibleText * This,
- /* [retval][out] */ IA2TextSegment *newText);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_oldText )(
- IAccessibleText * This,
- /* [retval][out] */ IA2TextSegment *oldText);
-
- END_INTERFACE
- } IAccessibleTextVtbl;
-
- interface IAccessibleText
- {
- CONST_VTBL struct IAccessibleTextVtbl *lpVtbl;
- };
-
-
-
-#ifdef COBJMACROS
-
-
-#define IAccessibleText_QueryInterface(This,riid,ppvObject) \
- ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
-
-#define IAccessibleText_AddRef(This) \
- ( (This)->lpVtbl -> AddRef(This) )
-
-#define IAccessibleText_Release(This) \
- ( (This)->lpVtbl -> Release(This) )
-
-
-#define IAccessibleText_addSelection(This,startOffset,endOffset) \
- ( (This)->lpVtbl -> addSelection(This,startOffset,endOffset) )
-
-#define IAccessibleText_get_attributes(This,offset,startOffset,endOffset,textAttributes) \
- ( (This)->lpVtbl -> get_attributes(This,offset,startOffset,endOffset,textAttributes) )
-
-#define IAccessibleText_get_caretOffset(This,offset) \
- ( (This)->lpVtbl -> get_caretOffset(This,offset) )
-
-#define IAccessibleText_get_characterExtents(This,offset,coordType,x,y,width,height) \
- ( (This)->lpVtbl -> get_characterExtents(This,offset,coordType,x,y,width,height) )
-
-#define IAccessibleText_get_nSelections(This,nSelections) \
- ( (This)->lpVtbl -> get_nSelections(This,nSelections) )
-
-#define IAccessibleText_get_offsetAtPoint(This,x,y,coordType,offset) \
- ( (This)->lpVtbl -> get_offsetAtPoint(This,x,y,coordType,offset) )
-
-#define IAccessibleText_get_selection(This,selectionIndex,startOffset,endOffset) \
- ( (This)->lpVtbl -> get_selection(This,selectionIndex,startOffset,endOffset) )
-
-#define IAccessibleText_get_text(This,startOffset,endOffset,text) \
- ( (This)->lpVtbl -> get_text(This,startOffset,endOffset,text) )
-
-#define IAccessibleText_get_textBeforeOffset(This,offset,boundaryType,startOffset,endOffset,text) \
- ( (This)->lpVtbl -> get_textBeforeOffset(This,offset,boundaryType,startOffset,endOffset,text) )
-
-#define IAccessibleText_get_textAfterOffset(This,offset,boundaryType,startOffset,endOffset,text) \
- ( (This)->lpVtbl -> get_textAfterOffset(This,offset,boundaryType,startOffset,endOffset,text) )
-
-#define IAccessibleText_get_textAtOffset(This,offset,boundaryType,startOffset,endOffset,text) \
- ( (This)->lpVtbl -> get_textAtOffset(This,offset,boundaryType,startOffset,endOffset,text) )
-
-#define IAccessibleText_removeSelection(This,selectionIndex) \
- ( (This)->lpVtbl -> removeSelection(This,selectionIndex) )
-
-#define IAccessibleText_setCaretOffset(This,offset) \
- ( (This)->lpVtbl -> setCaretOffset(This,offset) )
-
-#define IAccessibleText_setSelection(This,selectionIndex,startOffset,endOffset) \
- ( (This)->lpVtbl -> setSelection(This,selectionIndex,startOffset,endOffset) )
-
-#define IAccessibleText_get_nCharacters(This,nCharacters) \
- ( (This)->lpVtbl -> get_nCharacters(This,nCharacters) )
-
-#define IAccessibleText_scrollSubstringTo(This,startIndex,endIndex,scrollType) \
- ( (This)->lpVtbl -> scrollSubstringTo(This,startIndex,endIndex,scrollType) )
-
-#define IAccessibleText_scrollSubstringToPoint(This,startIndex,endIndex,coordinateType,x,y) \
- ( (This)->lpVtbl -> scrollSubstringToPoint(This,startIndex,endIndex,coordinateType,x,y) )
-
-#define IAccessibleText_get_newText(This,newText) \
- ( (This)->lpVtbl -> get_newText(This,newText) )
-
-#define IAccessibleText_get_oldText(This,oldText) \
- ( (This)->lpVtbl -> get_oldText(This,oldText) )
-
-#endif /* COBJMACROS */
-
-
-#endif /* C style interface */
-
-
-
-
-#endif /* __IAccessibleText_INTERFACE_DEFINED__ */
-
-
-/* Additional Prototypes for ALL interfaces */
-
-unsigned long __RPC_USER BSTR_UserSize( unsigned long *, unsigned long , BSTR * );
-unsigned char * __RPC_USER BSTR_UserMarshal( unsigned long *, unsigned char *, BSTR * );
-unsigned char * __RPC_USER BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * );
-void __RPC_USER BSTR_UserFree( unsigned long *, BSTR * );
-
-/* end of Additional Prototypes */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleText_i.c b/src/3rdparty/iaccessible2/generated/amd64/AccessibleText_i.c
deleted file mode 100644
index 564c790b78..0000000000
--- a/src/3rdparty/iaccessible2/generated/amd64/AccessibleText_i.c
+++ /dev/null
@@ -1,79 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
-
-/* link this file in with the server and any clients */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:54:00 2012
- */
-/* Compiler settings for AccessibleText.idl:
- Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-
-#include <rpc.h>
-#include <rpcndr.h>
-
-#ifdef _MIDL_USE_GUIDDEF_
-
-#ifndef INITGUID
-#define INITGUID
-#include <guiddef.h>
-#undef INITGUID
-#else
-#include <guiddef.h>
-#endif
-
-#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
- DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
-
-#else // !_MIDL_USE_GUIDDEF_
-
-#ifndef __IID_DEFINED__
-#define __IID_DEFINED__
-
-typedef struct _IID
-{
- unsigned long x;
- unsigned short s1;
- unsigned short s2;
- unsigned char c[8];
-} IID;
-
-#endif // __IID_DEFINED__
-
-#ifndef CLSID_DEFINED
-#define CLSID_DEFINED
-typedef IID CLSID;
-#endif // CLSID_DEFINED
-
-#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
- const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
-
-#endif !_MIDL_USE_GUIDDEF_
-
-MIDL_DEFINE_GUID(IID, IID_IAccessibleText,0x24FD2FFB,0x3AAD,0x4a08,0x83,0x35,0xA3,0xAD,0x89,0xC0,0xFB,0x4B);
-
-#undef MIDL_DEFINE_GUID
-
-#ifdef __cplusplus
-}
-#endif
-
-
-
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleText_p.c b/src/3rdparty/iaccessible2/generated/amd64/AccessibleText_p.c
deleted file mode 100644
index b2512f74ef..0000000000
--- a/src/3rdparty/iaccessible2/generated/amd64/AccessibleText_p.c
+++ /dev/null
@@ -1,1203 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the proxy stub code */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:54:00 2012
- */
-/* Compiler settings for AccessibleText.idl:
- Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#if defined(_M_AMD64)
-
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-#if _MSC_VER >= 1200
-#pragma warning(push)
-#endif
-
-#pragma warning( disable: 4211 ) /* redefine extern to static */
-#pragma warning( disable: 4232 ) /* dllimport identity*/
-#pragma warning( disable: 4024 ) /* array to pointer mapping*/
-#pragma warning( disable: 4152 ) /* function/data pointer conversion in expression */
-
-#define USE_STUBLESS_PROXY
-
-
-/* verify that the <rpcproxy.h> version is high enough to compile this file*/
-#ifndef __REDQ_RPCPROXY_H_VERSION__
-#define __REQUIRED_RPCPROXY_H_VERSION__ 475
-#endif
-
-
-#include "rpcproxy.h"
-#ifndef __RPCPROXY_H_VERSION__
-#error this stub requires an updated version of <rpcproxy.h>
-#endif /* __RPCPROXY_H_VERSION__ */
-
-
-#include "AccessibleText.h"
-
-#define TYPE_FORMAT_STRING_SIZE 67
-#define PROC_FORMAT_STRING_SIZE 939
-#define EXPR_FORMAT_STRING_SIZE 1
-#define TRANSMIT_AS_TABLE_SIZE 0
-#define WIRE_MARSHAL_TABLE_SIZE 1
-
-typedef struct _AccessibleText_MIDL_TYPE_FORMAT_STRING
- {
- short Pad;
- unsigned char Format[ TYPE_FORMAT_STRING_SIZE ];
- } AccessibleText_MIDL_TYPE_FORMAT_STRING;
-
-typedef struct _AccessibleText_MIDL_PROC_FORMAT_STRING
- {
- short Pad;
- unsigned char Format[ PROC_FORMAT_STRING_SIZE ];
- } AccessibleText_MIDL_PROC_FORMAT_STRING;
-
-typedef struct _AccessibleText_MIDL_EXPR_FORMAT_STRING
- {
- long Pad;
- unsigned char Format[ EXPR_FORMAT_STRING_SIZE ];
- } AccessibleText_MIDL_EXPR_FORMAT_STRING;
-
-
-static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax =
-{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}};
-
-
-extern const AccessibleText_MIDL_TYPE_FORMAT_STRING AccessibleText__MIDL_TypeFormatString;
-extern const AccessibleText_MIDL_PROC_FORMAT_STRING AccessibleText__MIDL_ProcFormatString;
-extern const AccessibleText_MIDL_EXPR_FORMAT_STRING AccessibleText__MIDL_ExprFormatString;
-
-
-extern const MIDL_STUB_DESC Object_StubDesc;
-
-
-extern const MIDL_SERVER_INFO IAccessibleText_ServerInfo;
-extern const MIDL_STUBLESS_PROXY_INFO IAccessibleText_ProxyInfo;
-
-
-extern const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ];
-
-#if !defined(__RPC_WIN64__)
-#error Invalid build platform for this stub.
-#endif
-
-static const AccessibleText_MIDL_PROC_FORMAT_STRING AccessibleText__MIDL_ProcFormatString =
- {
- 0,
- {
-
- /* Procedure addSelection */
-
- 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 2 */ NdrFcLong( 0x0 ), /* 0 */
-/* 6 */ NdrFcShort( 0x3 ), /* 3 */
-/* 8 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
-/* 10 */ NdrFcShort( 0x10 ), /* 16 */
-/* 12 */ NdrFcShort( 0x8 ), /* 8 */
-/* 14 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x3, /* 3 */
-/* 16 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 18 */ NdrFcShort( 0x0 ), /* 0 */
-/* 20 */ NdrFcShort( 0x0 ), /* 0 */
-/* 22 */ NdrFcShort( 0x0 ), /* 0 */
-/* 24 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter startOffset */
-
-/* 26 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 28 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 30 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter endOffset */
-
-/* 32 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 34 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 36 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 38 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 40 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 42 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_attributes */
-
-/* 44 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 46 */ NdrFcLong( 0x0 ), /* 0 */
-/* 50 */ NdrFcShort( 0x4 ), /* 4 */
-/* 52 */ NdrFcShort( 0x30 ), /* X64 Stack size/offset = 48 */
-/* 54 */ NdrFcShort( 0x8 ), /* 8 */
-/* 56 */ NdrFcShort( 0x40 ), /* 64 */
-/* 58 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x5, /* 5 */
-/* 60 */ 0xa, /* 10 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 62 */ NdrFcShort( 0x1 ), /* 1 */
-/* 64 */ NdrFcShort( 0x0 ), /* 0 */
-/* 66 */ NdrFcShort( 0x0 ), /* 0 */
-/* 68 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter offset */
-
-/* 70 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 72 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 74 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter startOffset */
-
-/* 76 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 78 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 80 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter endOffset */
-
-/* 82 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 84 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 86 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter textAttributes */
-
-/* 88 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
-/* 90 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
-/* 92 */ NdrFcShort( 0x24 ), /* Type Offset=36 */
-
- /* Return value */
-
-/* 94 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 96 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
-/* 98 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_caretOffset */
-
-/* 100 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 102 */ NdrFcLong( 0x0 ), /* 0 */
-/* 106 */ NdrFcShort( 0x5 ), /* 5 */
-/* 108 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 110 */ NdrFcShort( 0x0 ), /* 0 */
-/* 112 */ NdrFcShort( 0x24 ), /* 36 */
-/* 114 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 116 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 118 */ NdrFcShort( 0x0 ), /* 0 */
-/* 120 */ NdrFcShort( 0x0 ), /* 0 */
-/* 122 */ NdrFcShort( 0x0 ), /* 0 */
-/* 124 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter offset */
-
-/* 126 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 128 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 130 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 132 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 134 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 136 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_characterExtents */
-
-/* 138 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 140 */ NdrFcLong( 0x0 ), /* 0 */
-/* 144 */ NdrFcShort( 0x6 ), /* 6 */
-/* 146 */ NdrFcShort( 0x40 ), /* X64 Stack size/offset = 64 */
-/* 148 */ NdrFcShort( 0xe ), /* 14 */
-/* 150 */ NdrFcShort( 0x78 ), /* 120 */
-/* 152 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x7, /* 7 */
-/* 154 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 156 */ NdrFcShort( 0x0 ), /* 0 */
-/* 158 */ NdrFcShort( 0x0 ), /* 0 */
-/* 160 */ NdrFcShort( 0x0 ), /* 0 */
-/* 162 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter offset */
-
-/* 164 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 166 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 168 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter coordType */
-
-/* 170 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 172 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 174 */ 0xd, /* FC_ENUM16 */
- 0x0, /* 0 */
-
- /* Parameter x */
-
-/* 176 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 178 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 180 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter y */
-
-/* 182 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 184 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
-/* 186 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter width */
-
-/* 188 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 190 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
-/* 192 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter height */
-
-/* 194 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 196 */ NdrFcShort( 0x30 ), /* X64 Stack size/offset = 48 */
-/* 198 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 200 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 202 */ NdrFcShort( 0x38 ), /* X64 Stack size/offset = 56 */
-/* 204 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_nSelections */
-
-/* 206 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 208 */ NdrFcLong( 0x0 ), /* 0 */
-/* 212 */ NdrFcShort( 0x7 ), /* 7 */
-/* 214 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 216 */ NdrFcShort( 0x0 ), /* 0 */
-/* 218 */ NdrFcShort( 0x24 ), /* 36 */
-/* 220 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 222 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 224 */ NdrFcShort( 0x0 ), /* 0 */
-/* 226 */ NdrFcShort( 0x0 ), /* 0 */
-/* 228 */ NdrFcShort( 0x0 ), /* 0 */
-/* 230 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter nSelections */
-
-/* 232 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 234 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 236 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 238 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 240 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 242 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_offsetAtPoint */
-
-/* 244 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 246 */ NdrFcLong( 0x0 ), /* 0 */
-/* 250 */ NdrFcShort( 0x8 ), /* 8 */
-/* 252 */ NdrFcShort( 0x30 ), /* X64 Stack size/offset = 48 */
-/* 254 */ NdrFcShort( 0x16 ), /* 22 */
-/* 256 */ NdrFcShort( 0x24 ), /* 36 */
-/* 258 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x5, /* 5 */
-/* 260 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 262 */ NdrFcShort( 0x0 ), /* 0 */
-/* 264 */ NdrFcShort( 0x0 ), /* 0 */
-/* 266 */ NdrFcShort( 0x0 ), /* 0 */
-/* 268 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter x */
-
-/* 270 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 272 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 274 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter y */
-
-/* 276 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 278 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 280 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter coordType */
-
-/* 282 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 284 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 286 */ 0xd, /* FC_ENUM16 */
- 0x0, /* 0 */
-
- /* Parameter offset */
-
-/* 288 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 290 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
-/* 292 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 294 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 296 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
-/* 298 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_selection */
-
-/* 300 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 302 */ NdrFcLong( 0x0 ), /* 0 */
-/* 306 */ NdrFcShort( 0x9 ), /* 9 */
-/* 308 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
-/* 310 */ NdrFcShort( 0x8 ), /* 8 */
-/* 312 */ NdrFcShort( 0x40 ), /* 64 */
-/* 314 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x4, /* 4 */
-/* 316 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 318 */ NdrFcShort( 0x0 ), /* 0 */
-/* 320 */ NdrFcShort( 0x0 ), /* 0 */
-/* 322 */ NdrFcShort( 0x0 ), /* 0 */
-/* 324 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter selectionIndex */
-
-/* 326 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 328 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 330 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter startOffset */
-
-/* 332 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 334 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 336 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter endOffset */
-
-/* 338 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 340 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 342 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 344 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 346 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
-/* 348 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_text */
-
-/* 350 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 352 */ NdrFcLong( 0x0 ), /* 0 */
-/* 356 */ NdrFcShort( 0xa ), /* 10 */
-/* 358 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
-/* 360 */ NdrFcShort( 0x10 ), /* 16 */
-/* 362 */ NdrFcShort( 0x8 ), /* 8 */
-/* 364 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x4, /* 4 */
-/* 366 */ 0xa, /* 10 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 368 */ NdrFcShort( 0x1 ), /* 1 */
-/* 370 */ NdrFcShort( 0x0 ), /* 0 */
-/* 372 */ NdrFcShort( 0x0 ), /* 0 */
-/* 374 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter startOffset */
-
-/* 376 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 378 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 380 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter endOffset */
-
-/* 382 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 384 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 386 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter text */
-
-/* 388 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
-/* 390 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 392 */ NdrFcShort( 0x24 ), /* Type Offset=36 */
-
- /* Return value */
-
-/* 394 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 396 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
-/* 398 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_textBeforeOffset */
-
-/* 400 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 402 */ NdrFcLong( 0x0 ), /* 0 */
-/* 406 */ NdrFcShort( 0xb ), /* 11 */
-/* 408 */ NdrFcShort( 0x38 ), /* X64 Stack size/offset = 56 */
-/* 410 */ NdrFcShort( 0xe ), /* 14 */
-/* 412 */ NdrFcShort( 0x40 ), /* 64 */
-/* 414 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x6, /* 6 */
-/* 416 */ 0xa, /* 10 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 418 */ NdrFcShort( 0x1 ), /* 1 */
-/* 420 */ NdrFcShort( 0x0 ), /* 0 */
-/* 422 */ NdrFcShort( 0x0 ), /* 0 */
-/* 424 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter offset */
-
-/* 426 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 428 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 430 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter boundaryType */
-
-/* 432 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 434 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 436 */ 0xd, /* FC_ENUM16 */
- 0x0, /* 0 */
-
- /* Parameter startOffset */
-
-/* 438 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 440 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 442 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter endOffset */
-
-/* 444 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 446 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
-/* 448 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter text */
-
-/* 450 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
-/* 452 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
-/* 454 */ NdrFcShort( 0x24 ), /* Type Offset=36 */
-
- /* Return value */
-
-/* 456 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 458 */ NdrFcShort( 0x30 ), /* X64 Stack size/offset = 48 */
-/* 460 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_textAfterOffset */
-
-/* 462 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 464 */ NdrFcLong( 0x0 ), /* 0 */
-/* 468 */ NdrFcShort( 0xc ), /* 12 */
-/* 470 */ NdrFcShort( 0x38 ), /* X64 Stack size/offset = 56 */
-/* 472 */ NdrFcShort( 0xe ), /* 14 */
-/* 474 */ NdrFcShort( 0x40 ), /* 64 */
-/* 476 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x6, /* 6 */
-/* 478 */ 0xa, /* 10 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 480 */ NdrFcShort( 0x1 ), /* 1 */
-/* 482 */ NdrFcShort( 0x0 ), /* 0 */
-/* 484 */ NdrFcShort( 0x0 ), /* 0 */
-/* 486 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter offset */
-
-/* 488 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 490 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 492 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter boundaryType */
-
-/* 494 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 496 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 498 */ 0xd, /* FC_ENUM16 */
- 0x0, /* 0 */
-
- /* Parameter startOffset */
-
-/* 500 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 502 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 504 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter endOffset */
-
-/* 506 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 508 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
-/* 510 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter text */
-
-/* 512 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
-/* 514 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
-/* 516 */ NdrFcShort( 0x24 ), /* Type Offset=36 */
-
- /* Return value */
-
-/* 518 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 520 */ NdrFcShort( 0x30 ), /* X64 Stack size/offset = 48 */
-/* 522 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_textAtOffset */
-
-/* 524 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 526 */ NdrFcLong( 0x0 ), /* 0 */
-/* 530 */ NdrFcShort( 0xd ), /* 13 */
-/* 532 */ NdrFcShort( 0x38 ), /* X64 Stack size/offset = 56 */
-/* 534 */ NdrFcShort( 0xe ), /* 14 */
-/* 536 */ NdrFcShort( 0x40 ), /* 64 */
-/* 538 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x6, /* 6 */
-/* 540 */ 0xa, /* 10 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 542 */ NdrFcShort( 0x1 ), /* 1 */
-/* 544 */ NdrFcShort( 0x0 ), /* 0 */
-/* 546 */ NdrFcShort( 0x0 ), /* 0 */
-/* 548 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter offset */
-
-/* 550 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 552 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 554 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter boundaryType */
-
-/* 556 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 558 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 560 */ 0xd, /* FC_ENUM16 */
- 0x0, /* 0 */
-
- /* Parameter startOffset */
-
-/* 562 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 564 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 566 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter endOffset */
-
-/* 568 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 570 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
-/* 572 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter text */
-
-/* 574 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
-/* 576 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
-/* 578 */ NdrFcShort( 0x24 ), /* Type Offset=36 */
-
- /* Return value */
-
-/* 580 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 582 */ NdrFcShort( 0x30 ), /* X64 Stack size/offset = 48 */
-/* 584 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure removeSelection */
-
-/* 586 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 588 */ NdrFcLong( 0x0 ), /* 0 */
-/* 592 */ NdrFcShort( 0xe ), /* 14 */
-/* 594 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 596 */ NdrFcShort( 0x8 ), /* 8 */
-/* 598 */ NdrFcShort( 0x8 ), /* 8 */
-/* 600 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 602 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 604 */ NdrFcShort( 0x0 ), /* 0 */
-/* 606 */ NdrFcShort( 0x0 ), /* 0 */
-/* 608 */ NdrFcShort( 0x0 ), /* 0 */
-/* 610 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter selectionIndex */
-
-/* 612 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 614 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 616 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 618 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 620 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 622 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure setCaretOffset */
-
-/* 624 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 626 */ NdrFcLong( 0x0 ), /* 0 */
-/* 630 */ NdrFcShort( 0xf ), /* 15 */
-/* 632 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 634 */ NdrFcShort( 0x8 ), /* 8 */
-/* 636 */ NdrFcShort( 0x8 ), /* 8 */
-/* 638 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 640 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 642 */ NdrFcShort( 0x0 ), /* 0 */
-/* 644 */ NdrFcShort( 0x0 ), /* 0 */
-/* 646 */ NdrFcShort( 0x0 ), /* 0 */
-/* 648 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter offset */
-
-/* 650 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 652 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 654 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 656 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 658 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 660 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure setSelection */
-
-/* 662 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 664 */ NdrFcLong( 0x0 ), /* 0 */
-/* 668 */ NdrFcShort( 0x10 ), /* 16 */
-/* 670 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
-/* 672 */ NdrFcShort( 0x18 ), /* 24 */
-/* 674 */ NdrFcShort( 0x8 ), /* 8 */
-/* 676 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x4, /* 4 */
-/* 678 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 680 */ NdrFcShort( 0x0 ), /* 0 */
-/* 682 */ NdrFcShort( 0x0 ), /* 0 */
-/* 684 */ NdrFcShort( 0x0 ), /* 0 */
-/* 686 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter selectionIndex */
-
-/* 688 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 690 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 692 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter startOffset */
-
-/* 694 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 696 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 698 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter endOffset */
-
-/* 700 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 702 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 704 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 706 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 708 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
-/* 710 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_nCharacters */
-
-/* 712 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 714 */ NdrFcLong( 0x0 ), /* 0 */
-/* 718 */ NdrFcShort( 0x11 ), /* 17 */
-/* 720 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 722 */ NdrFcShort( 0x0 ), /* 0 */
-/* 724 */ NdrFcShort( 0x24 ), /* 36 */
-/* 726 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 728 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 730 */ NdrFcShort( 0x0 ), /* 0 */
-/* 732 */ NdrFcShort( 0x0 ), /* 0 */
-/* 734 */ NdrFcShort( 0x0 ), /* 0 */
-/* 736 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter nCharacters */
-
-/* 738 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 740 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 742 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 744 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 746 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 748 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure scrollSubstringTo */
-
-/* 750 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 752 */ NdrFcLong( 0x0 ), /* 0 */
-/* 756 */ NdrFcShort( 0x12 ), /* 18 */
-/* 758 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
-/* 760 */ NdrFcShort( 0x16 ), /* 22 */
-/* 762 */ NdrFcShort( 0x8 ), /* 8 */
-/* 764 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x4, /* 4 */
-/* 766 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 768 */ NdrFcShort( 0x0 ), /* 0 */
-/* 770 */ NdrFcShort( 0x0 ), /* 0 */
-/* 772 */ NdrFcShort( 0x0 ), /* 0 */
-/* 774 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter startIndex */
-
-/* 776 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 778 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 780 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter endIndex */
-
-/* 782 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 784 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 786 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter scrollType */
-
-/* 788 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 790 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 792 */ 0xd, /* FC_ENUM16 */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 794 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 796 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
-/* 798 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure scrollSubstringToPoint */
-
-/* 800 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 802 */ NdrFcLong( 0x0 ), /* 0 */
-/* 806 */ NdrFcShort( 0x13 ), /* 19 */
-/* 808 */ NdrFcShort( 0x38 ), /* X64 Stack size/offset = 56 */
-/* 810 */ NdrFcShort( 0x26 ), /* 38 */
-/* 812 */ NdrFcShort( 0x8 ), /* 8 */
-/* 814 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x6, /* 6 */
-/* 816 */ 0xa, /* 10 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 818 */ NdrFcShort( 0x0 ), /* 0 */
-/* 820 */ NdrFcShort( 0x0 ), /* 0 */
-/* 822 */ NdrFcShort( 0x0 ), /* 0 */
-/* 824 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter startIndex */
-
-/* 826 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 828 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 830 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter endIndex */
-
-/* 832 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 834 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 836 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter coordinateType */
-
-/* 838 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 840 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 842 */ 0xd, /* FC_ENUM16 */
- 0x0, /* 0 */
-
- /* Parameter x */
-
-/* 844 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 846 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
-/* 848 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter y */
-
-/* 850 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 852 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
-/* 854 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 856 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 858 */ NdrFcShort( 0x30 ), /* X64 Stack size/offset = 48 */
-/* 860 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_newText */
-
-/* 862 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 864 */ NdrFcLong( 0x0 ), /* 0 */
-/* 868 */ NdrFcShort( 0x14 ), /* 20 */
-/* 870 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 872 */ NdrFcShort( 0x0 ), /* 0 */
-/* 874 */ NdrFcShort( 0x8 ), /* 8 */
-/* 876 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x2, /* 2 */
-/* 878 */ 0xa, /* 10 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 880 */ NdrFcShort( 0x1 ), /* 1 */
-/* 882 */ NdrFcShort( 0x0 ), /* 0 */
-/* 884 */ NdrFcShort( 0x0 ), /* 0 */
-/* 886 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter newText */
-
-/* 888 */ NdrFcShort( 0x4113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=16 */
-/* 890 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 892 */ NdrFcShort( 0x32 ), /* Type Offset=50 */
-
- /* Return value */
-
-/* 894 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 896 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 898 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_oldText */
-
-/* 900 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 902 */ NdrFcLong( 0x0 ), /* 0 */
-/* 906 */ NdrFcShort( 0x15 ), /* 21 */
-/* 908 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 910 */ NdrFcShort( 0x0 ), /* 0 */
-/* 912 */ NdrFcShort( 0x8 ), /* 8 */
-/* 914 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x2, /* 2 */
-/* 916 */ 0xa, /* 10 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 918 */ NdrFcShort( 0x1 ), /* 1 */
-/* 920 */ NdrFcShort( 0x0 ), /* 0 */
-/* 922 */ NdrFcShort( 0x0 ), /* 0 */
-/* 924 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter oldText */
-
-/* 926 */ NdrFcShort( 0x4113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=16 */
-/* 928 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 930 */ NdrFcShort( 0x32 ), /* Type Offset=50 */
-
- /* Return value */
-
-/* 932 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 934 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 936 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- 0x0
- }
- };
-
-static const AccessibleText_MIDL_TYPE_FORMAT_STRING AccessibleText__MIDL_TypeFormatString =
- {
- 0,
- {
- NdrFcShort( 0x0 ), /* 0 */
-/* 2 */
- 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
-/* 4 */ 0x8, /* FC_LONG */
- 0x5c, /* FC_PAD */
-/* 6 */
- 0x11, 0x4, /* FC_RP [alloced_on_stack] */
-/* 8 */ NdrFcShort( 0x1c ), /* Offset= 28 (36) */
-/* 10 */
- 0x13, 0x0, /* FC_OP */
-/* 12 */ NdrFcShort( 0xe ), /* Offset= 14 (26) */
-/* 14 */
- 0x1b, /* FC_CARRAY */
- 0x1, /* 1 */
-/* 16 */ NdrFcShort( 0x2 ), /* 2 */
-/* 18 */ 0x9, /* Corr desc: FC_ULONG */
- 0x0, /* */
-/* 20 */ NdrFcShort( 0xfffc ), /* -4 */
-/* 22 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 24 */ 0x6, /* FC_SHORT */
- 0x5b, /* FC_END */
-/* 26 */
- 0x17, /* FC_CSTRUCT */
- 0x3, /* 3 */
-/* 28 */ NdrFcShort( 0x8 ), /* 8 */
-/* 30 */ NdrFcShort( 0xfff0 ), /* Offset= -16 (14) */
-/* 32 */ 0x8, /* FC_LONG */
- 0x8, /* FC_LONG */
-/* 34 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-/* 36 */ 0xb4, /* FC_USER_MARSHAL */
- 0x83, /* 131 */
-/* 38 */ NdrFcShort( 0x0 ), /* 0 */
-/* 40 */ NdrFcShort( 0x8 ), /* 8 */
-/* 42 */ NdrFcShort( 0x0 ), /* 0 */
-/* 44 */ NdrFcShort( 0xffde ), /* Offset= -34 (10) */
-/* 46 */
- 0x11, 0x4, /* FC_RP [alloced_on_stack] */
-/* 48 */ NdrFcShort( 0x2 ), /* Offset= 2 (50) */
-/* 50 */
- 0x1a, /* FC_BOGUS_STRUCT */
- 0x3, /* 3 */
-/* 52 */ NdrFcShort( 0x10 ), /* 16 */
-/* 54 */ NdrFcShort( 0x0 ), /* 0 */
-/* 56 */ NdrFcShort( 0x0 ), /* Offset= 0 (56) */
-/* 58 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
- 0x0, /* 0 */
-/* 60 */ NdrFcShort( 0xffe8 ), /* Offset= -24 (36) */
-/* 62 */ 0x8, /* FC_LONG */
- 0x8, /* FC_LONG */
-/* 64 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-
- 0x0
- }
- };
-
-static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] =
- {
-
- {
- BSTR_UserSize
- ,BSTR_UserMarshal
- ,BSTR_UserUnmarshal
- ,BSTR_UserFree
- }
-
- };
-
-
-
-/* Standard interface: __MIDL_itf_AccessibleText_0000_0000, ver. 0.0,
- GUID={0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}} */
-
-
-/* Object interface: IUnknown, ver. 0.0,
- GUID={0x00000000,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
-
-
-/* Object interface: IAccessibleText, ver. 0.0,
- GUID={0x24FD2FFB,0x3AAD,0x4a08,{0x83,0x35,0xA3,0xAD,0x89,0xC0,0xFB,0x4B}} */
-
-#pragma code_seg(".orpc")
-static const unsigned short IAccessibleText_FormatStringOffsetTable[] =
- {
- 0,
- 44,
- 100,
- 138,
- 206,
- 244,
- 300,
- 350,
- 400,
- 462,
- 524,
- 586,
- 624,
- 662,
- 712,
- 750,
- 800,
- 862,
- 900
- };
-
-static const MIDL_STUBLESS_PROXY_INFO IAccessibleText_ProxyInfo =
- {
- &Object_StubDesc,
- AccessibleText__MIDL_ProcFormatString.Format,
- &IAccessibleText_FormatStringOffsetTable[-3],
- 0,
- 0,
- 0
- };
-
-
-static const MIDL_SERVER_INFO IAccessibleText_ServerInfo =
- {
- &Object_StubDesc,
- 0,
- AccessibleText__MIDL_ProcFormatString.Format,
- &IAccessibleText_FormatStringOffsetTable[-3],
- 0,
- 0,
- 0,
- 0};
-CINTERFACE_PROXY_VTABLE(22) _IAccessibleTextProxyVtbl =
-{
- &IAccessibleText_ProxyInfo,
- &IID_IAccessibleText,
- IUnknown_QueryInterface_Proxy,
- IUnknown_AddRef_Proxy,
- IUnknown_Release_Proxy ,
- (void *) (INT_PTR) -1 /* IAccessibleText::addSelection */ ,
- (void *) (INT_PTR) -1 /* IAccessibleText::get_attributes */ ,
- (void *) (INT_PTR) -1 /* IAccessibleText::get_caretOffset */ ,
- (void *) (INT_PTR) -1 /* IAccessibleText::get_characterExtents */ ,
- (void *) (INT_PTR) -1 /* IAccessibleText::get_nSelections */ ,
- (void *) (INT_PTR) -1 /* IAccessibleText::get_offsetAtPoint */ ,
- (void *) (INT_PTR) -1 /* IAccessibleText::get_selection */ ,
- (void *) (INT_PTR) -1 /* IAccessibleText::get_text */ ,
- (void *) (INT_PTR) -1 /* IAccessibleText::get_textBeforeOffset */ ,
- (void *) (INT_PTR) -1 /* IAccessibleText::get_textAfterOffset */ ,
- (void *) (INT_PTR) -1 /* IAccessibleText::get_textAtOffset */ ,
- (void *) (INT_PTR) -1 /* IAccessibleText::removeSelection */ ,
- (void *) (INT_PTR) -1 /* IAccessibleText::setCaretOffset */ ,
- (void *) (INT_PTR) -1 /* IAccessibleText::setSelection */ ,
- (void *) (INT_PTR) -1 /* IAccessibleText::get_nCharacters */ ,
- (void *) (INT_PTR) -1 /* IAccessibleText::scrollSubstringTo */ ,
- (void *) (INT_PTR) -1 /* IAccessibleText::scrollSubstringToPoint */ ,
- (void *) (INT_PTR) -1 /* IAccessibleText::get_newText */ ,
- (void *) (INT_PTR) -1 /* IAccessibleText::get_oldText */
-};
-
-const CInterfaceStubVtbl _IAccessibleTextStubVtbl =
-{
- &IID_IAccessibleText,
- &IAccessibleText_ServerInfo,
- 22,
- 0, /* pure interpreted */
- CStdStubBuffer_METHODS
-};
-
-static const MIDL_STUB_DESC Object_StubDesc =
- {
- 0,
- NdrOleAllocate,
- NdrOleFree,
- 0,
- 0,
- 0,
- 0,
- 0,
- AccessibleText__MIDL_TypeFormatString.Format,
- 1, /* -error bounds_check flag */
- 0x50002, /* Ndr library version */
- 0,
- 0x700022b, /* MIDL Version 7.0.555 */
- 0,
- UserMarshalRoutines,
- 0, /* notify & notify_flag routine table */
- 0x1, /* MIDL flag */
- 0, /* cs routines */
- 0, /* proxy/server info */
- 0
- };
-
-const CInterfaceProxyVtbl * const _AccessibleText_ProxyVtblList[] =
-{
- ( CInterfaceProxyVtbl *) &_IAccessibleTextProxyVtbl,
- 0
-};
-
-const CInterfaceStubVtbl * const _AccessibleText_StubVtblList[] =
-{
- ( CInterfaceStubVtbl *) &_IAccessibleTextStubVtbl,
- 0
-};
-
-PCInterfaceName const _AccessibleText_InterfaceNamesList[] =
-{
- "IAccessibleText",
- 0
-};
-
-
-#define _AccessibleText_CHECK_IID(n) IID_GENERIC_CHECK_IID( _AccessibleText, pIID, n)
-
-int __stdcall _AccessibleText_IID_Lookup( const IID * pIID, int * pIndex )
-{
-
- if(!_AccessibleText_CHECK_IID(0))
- {
- *pIndex = 0;
- return 1;
- }
-
- return 0;
-}
-
-const ExtendedProxyFileInfo AccessibleText_ProxyFileInfo =
-{
- (PCInterfaceProxyVtblList *) & _AccessibleText_ProxyVtblList,
- (PCInterfaceStubVtblList *) & _AccessibleText_StubVtblList,
- (const PCInterfaceName * ) & _AccessibleText_InterfaceNamesList,
- 0, /* no delegation */
- & _AccessibleText_IID_Lookup,
- 1,
- 2,
- 0, /* table of [async_uuid] interfaces */
- 0, /* Filler1 */
- 0, /* Filler2 */
- 0 /* Filler3 */
-};
-#if _MSC_VER >= 1200
-#pragma warning(pop)
-#endif
-
-
-#endif /* defined(_M_AMD64)*/
-
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleValue.h b/src/3rdparty/iaccessible2/generated/amd64/AccessibleValue.h
deleted file mode 100644
index b27f9bb0c2..0000000000
--- a/src/3rdparty/iaccessible2/generated/amd64/AccessibleValue.h
+++ /dev/null
@@ -1,188 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the definitions for the interfaces */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:54:00 2012
- */
-/* Compiler settings for AccessibleValue.idl:
- Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-
-
-/* verify that the <rpcndr.h> version is high enough to compile this file*/
-#ifndef __REQUIRED_RPCNDR_H_VERSION__
-#define __REQUIRED_RPCNDR_H_VERSION__ 475
-#endif
-
-#include "rpc.h"
-#include "rpcndr.h"
-
-#ifndef __RPCNDR_H_VERSION__
-#error this stub requires an updated version of <rpcndr.h>
-#endif // __RPCNDR_H_VERSION__
-
-#ifndef COM_NO_WINDOWS_H
-#include "windows.h"
-#include "ole2.h"
-#endif /*COM_NO_WINDOWS_H*/
-
-#ifndef __AccessibleValue_h__
-#define __AccessibleValue_h__
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-#pragma once
-#endif
-
-/* Forward Declarations */
-
-#ifndef __IAccessibleValue_FWD_DEFINED__
-#define __IAccessibleValue_FWD_DEFINED__
-typedef interface IAccessibleValue IAccessibleValue;
-#endif /* __IAccessibleValue_FWD_DEFINED__ */
-
-
-/* header files for imported files */
-#include "objidl.h"
-#include "oaidl.h"
-#include "oleacc.h"
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-
-#ifndef __IAccessibleValue_INTERFACE_DEFINED__
-#define __IAccessibleValue_INTERFACE_DEFINED__
-
-/* interface IAccessibleValue */
-/* [uuid][object] */
-
-
-EXTERN_C const IID IID_IAccessibleValue;
-
-#if defined(__cplusplus) && !defined(CINTERFACE)
-
- MIDL_INTERFACE("35855B5B-C566-4fd0-A7B1-E65465600394")
- IAccessibleValue : public IUnknown
- {
- public:
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_currentValue(
- /* [retval][out] */ VARIANT *currentValue) = 0;
-
- virtual HRESULT STDMETHODCALLTYPE setCurrentValue(
- /* [in] */ VARIANT value) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_maximumValue(
- /* [retval][out] */ VARIANT *maximumValue) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_minimumValue(
- /* [retval][out] */ VARIANT *minimumValue) = 0;
-
- };
-
-#else /* C style interface */
-
- typedef struct IAccessibleValueVtbl
- {
- BEGIN_INTERFACE
-
- HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
- IAccessibleValue * This,
- /* [in] */ REFIID riid,
- /* [annotation][iid_is][out] */
- __RPC__deref_out void **ppvObject);
-
- ULONG ( STDMETHODCALLTYPE *AddRef )(
- IAccessibleValue * This);
-
- ULONG ( STDMETHODCALLTYPE *Release )(
- IAccessibleValue * This);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_currentValue )(
- IAccessibleValue * This,
- /* [retval][out] */ VARIANT *currentValue);
-
- HRESULT ( STDMETHODCALLTYPE *setCurrentValue )(
- IAccessibleValue * This,
- /* [in] */ VARIANT value);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_maximumValue )(
- IAccessibleValue * This,
- /* [retval][out] */ VARIANT *maximumValue);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_minimumValue )(
- IAccessibleValue * This,
- /* [retval][out] */ VARIANT *minimumValue);
-
- END_INTERFACE
- } IAccessibleValueVtbl;
-
- interface IAccessibleValue
- {
- CONST_VTBL struct IAccessibleValueVtbl *lpVtbl;
- };
-
-
-
-#ifdef COBJMACROS
-
-
-#define IAccessibleValue_QueryInterface(This,riid,ppvObject) \
- ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
-
-#define IAccessibleValue_AddRef(This) \
- ( (This)->lpVtbl -> AddRef(This) )
-
-#define IAccessibleValue_Release(This) \
- ( (This)->lpVtbl -> Release(This) )
-
-
-#define IAccessibleValue_get_currentValue(This,currentValue) \
- ( (This)->lpVtbl -> get_currentValue(This,currentValue) )
-
-#define IAccessibleValue_setCurrentValue(This,value) \
- ( (This)->lpVtbl -> setCurrentValue(This,value) )
-
-#define IAccessibleValue_get_maximumValue(This,maximumValue) \
- ( (This)->lpVtbl -> get_maximumValue(This,maximumValue) )
-
-#define IAccessibleValue_get_minimumValue(This,minimumValue) \
- ( (This)->lpVtbl -> get_minimumValue(This,minimumValue) )
-
-#endif /* COBJMACROS */
-
-
-#endif /* C style interface */
-
-
-
-
-#endif /* __IAccessibleValue_INTERFACE_DEFINED__ */
-
-
-/* Additional Prototypes for ALL interfaces */
-
-unsigned long __RPC_USER VARIANT_UserSize( unsigned long *, unsigned long , VARIANT * );
-unsigned char * __RPC_USER VARIANT_UserMarshal( unsigned long *, unsigned char *, VARIANT * );
-unsigned char * __RPC_USER VARIANT_UserUnmarshal(unsigned long *, unsigned char *, VARIANT * );
-void __RPC_USER VARIANT_UserFree( unsigned long *, VARIANT * );
-
-/* end of Additional Prototypes */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleValue_i.c b/src/3rdparty/iaccessible2/generated/amd64/AccessibleValue_i.c
deleted file mode 100644
index bc757ff1a1..0000000000
--- a/src/3rdparty/iaccessible2/generated/amd64/AccessibleValue_i.c
+++ /dev/null
@@ -1,79 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
-
-/* link this file in with the server and any clients */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:54:00 2012
- */
-/* Compiler settings for AccessibleValue.idl:
- Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-
-#include <rpc.h>
-#include <rpcndr.h>
-
-#ifdef _MIDL_USE_GUIDDEF_
-
-#ifndef INITGUID
-#define INITGUID
-#include <guiddef.h>
-#undef INITGUID
-#else
-#include <guiddef.h>
-#endif
-
-#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
- DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
-
-#else // !_MIDL_USE_GUIDDEF_
-
-#ifndef __IID_DEFINED__
-#define __IID_DEFINED__
-
-typedef struct _IID
-{
- unsigned long x;
- unsigned short s1;
- unsigned short s2;
- unsigned char c[8];
-} IID;
-
-#endif // __IID_DEFINED__
-
-#ifndef CLSID_DEFINED
-#define CLSID_DEFINED
-typedef IID CLSID;
-#endif // CLSID_DEFINED
-
-#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
- const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
-
-#endif !_MIDL_USE_GUIDDEF_
-
-MIDL_DEFINE_GUID(IID, IID_IAccessibleValue,0x35855B5B,0xC566,0x4fd0,0xA7,0xB1,0xE6,0x54,0x65,0x60,0x03,0x94);
-
-#undef MIDL_DEFINE_GUID
-
-#ifdef __cplusplus
-}
-#endif
-
-
-
diff --git a/src/3rdparty/iaccessible2/generated/amd64/AccessibleValue_p.c b/src/3rdparty/iaccessible2/generated/amd64/AccessibleValue_p.c
deleted file mode 100644
index c3fd72ceb2..0000000000
--- a/src/3rdparty/iaccessible2/generated/amd64/AccessibleValue_p.c
+++ /dev/null
@@ -1,1029 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the proxy stub code */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:54:00 2012
- */
-/* Compiler settings for AccessibleValue.idl:
- Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#if defined(_M_AMD64)
-
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-#if _MSC_VER >= 1200
-#pragma warning(push)
-#endif
-
-#pragma warning( disable: 4211 ) /* redefine extern to static */
-#pragma warning( disable: 4232 ) /* dllimport identity*/
-#pragma warning( disable: 4024 ) /* array to pointer mapping*/
-#pragma warning( disable: 4152 ) /* function/data pointer conversion in expression */
-
-#define USE_STUBLESS_PROXY
-
-
-/* verify that the <rpcproxy.h> version is high enough to compile this file*/
-#ifndef __REDQ_RPCPROXY_H_VERSION__
-#define __REQUIRED_RPCPROXY_H_VERSION__ 475
-#endif
-
-
-#include "rpcproxy.h"
-#ifndef __RPCPROXY_H_VERSION__
-#error this stub requires an updated version of <rpcproxy.h>
-#endif /* __RPCPROXY_H_VERSION__ */
-
-
-#include "AccessibleValue.h"
-
-#define TYPE_FORMAT_STRING_SIZE 1007
-#define PROC_FORMAT_STRING_SIZE 153
-#define EXPR_FORMAT_STRING_SIZE 1
-#define TRANSMIT_AS_TABLE_SIZE 0
-#define WIRE_MARSHAL_TABLE_SIZE 1
-
-typedef struct _AccessibleValue_MIDL_TYPE_FORMAT_STRING
- {
- short Pad;
- unsigned char Format[ TYPE_FORMAT_STRING_SIZE ];
- } AccessibleValue_MIDL_TYPE_FORMAT_STRING;
-
-typedef struct _AccessibleValue_MIDL_PROC_FORMAT_STRING
- {
- short Pad;
- unsigned char Format[ PROC_FORMAT_STRING_SIZE ];
- } AccessibleValue_MIDL_PROC_FORMAT_STRING;
-
-typedef struct _AccessibleValue_MIDL_EXPR_FORMAT_STRING
- {
- long Pad;
- unsigned char Format[ EXPR_FORMAT_STRING_SIZE ];
- } AccessibleValue_MIDL_EXPR_FORMAT_STRING;
-
-
-static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax =
-{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}};
-
-
-extern const AccessibleValue_MIDL_TYPE_FORMAT_STRING AccessibleValue__MIDL_TypeFormatString;
-extern const AccessibleValue_MIDL_PROC_FORMAT_STRING AccessibleValue__MIDL_ProcFormatString;
-extern const AccessibleValue_MIDL_EXPR_FORMAT_STRING AccessibleValue__MIDL_ExprFormatString;
-
-
-extern const MIDL_STUB_DESC Object_StubDesc;
-
-
-extern const MIDL_SERVER_INFO IAccessibleValue_ServerInfo;
-extern const MIDL_STUBLESS_PROXY_INFO IAccessibleValue_ProxyInfo;
-
-
-extern const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ];
-
-#if !defined(__RPC_WIN64__)
-#error Invalid build platform for this stub.
-#endif
-
-static const AccessibleValue_MIDL_PROC_FORMAT_STRING AccessibleValue__MIDL_ProcFormatString =
- {
- 0,
- {
-
- /* Procedure get_currentValue */
-
- 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 2 */ NdrFcLong( 0x0 ), /* 0 */
-/* 6 */ NdrFcShort( 0x3 ), /* 3 */
-/* 8 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 10 */ NdrFcShort( 0x0 ), /* 0 */
-/* 12 */ NdrFcShort( 0x8 ), /* 8 */
-/* 14 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x2, /* 2 */
-/* 16 */ 0xa, /* 10 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 18 */ NdrFcShort( 0x1 ), /* 1 */
-/* 20 */ NdrFcShort( 0x0 ), /* 0 */
-/* 22 */ NdrFcShort( 0x0 ), /* 0 */
-/* 24 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter currentValue */
-
-/* 26 */ NdrFcShort( 0x6113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=24 */
-/* 28 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 30 */ NdrFcShort( 0x3d2 ), /* Type Offset=978 */
-
- /* Return value */
-
-/* 32 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 34 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 36 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure setCurrentValue */
-
-/* 38 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 40 */ NdrFcLong( 0x0 ), /* 0 */
-/* 44 */ NdrFcShort( 0x4 ), /* 4 */
-/* 46 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 48 */ NdrFcShort( 0x0 ), /* 0 */
-/* 50 */ NdrFcShort( 0x8 ), /* 8 */
-/* 52 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
- 0x2, /* 2 */
-/* 54 */ 0xa, /* 10 */
- 0x85, /* Ext Flags: new corr desc, srv corr check, has big amd64 byval param */
-/* 56 */ NdrFcShort( 0x0 ), /* 0 */
-/* 58 */ NdrFcShort( 0x1 ), /* 1 */
-/* 60 */ NdrFcShort( 0x0 ), /* 0 */
-/* 62 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter value */
-
-/* 64 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
-/* 66 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 68 */ NdrFcShort( 0x3e4 ), /* Type Offset=996 */
-
- /* Return value */
-
-/* 70 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 72 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 74 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_maximumValue */
-
-/* 76 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 78 */ NdrFcLong( 0x0 ), /* 0 */
-/* 82 */ NdrFcShort( 0x5 ), /* 5 */
-/* 84 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 86 */ NdrFcShort( 0x0 ), /* 0 */
-/* 88 */ NdrFcShort( 0x8 ), /* 8 */
-/* 90 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x2, /* 2 */
-/* 92 */ 0xa, /* 10 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 94 */ NdrFcShort( 0x1 ), /* 1 */
-/* 96 */ NdrFcShort( 0x0 ), /* 0 */
-/* 98 */ NdrFcShort( 0x0 ), /* 0 */
-/* 100 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter maximumValue */
-
-/* 102 */ NdrFcShort( 0x6113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=24 */
-/* 104 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 106 */ NdrFcShort( 0x3d2 ), /* Type Offset=978 */
-
- /* Return value */
-
-/* 108 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 110 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 112 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_minimumValue */
-
-/* 114 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 116 */ NdrFcLong( 0x0 ), /* 0 */
-/* 120 */ NdrFcShort( 0x6 ), /* 6 */
-/* 122 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
-/* 124 */ NdrFcShort( 0x0 ), /* 0 */
-/* 126 */ NdrFcShort( 0x8 ), /* 8 */
-/* 128 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x2, /* 2 */
-/* 130 */ 0xa, /* 10 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 132 */ NdrFcShort( 0x1 ), /* 1 */
-/* 134 */ NdrFcShort( 0x0 ), /* 0 */
-/* 136 */ NdrFcShort( 0x0 ), /* 0 */
-/* 138 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter minimumValue */
-
-/* 140 */ NdrFcShort( 0x6113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=24 */
-/* 142 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
-/* 144 */ NdrFcShort( 0x3d2 ), /* Type Offset=978 */
-
- /* Return value */
-
-/* 146 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 148 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
-/* 150 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- 0x0
- }
- };
-
-static const AccessibleValue_MIDL_TYPE_FORMAT_STRING AccessibleValue__MIDL_TypeFormatString =
- {
- 0,
- {
- NdrFcShort( 0x0 ), /* 0 */
-/* 2 */
- 0x11, 0x4, /* FC_RP [alloced_on_stack] */
-/* 4 */ NdrFcShort( 0x3ce ), /* Offset= 974 (978) */
-/* 6 */
- 0x13, 0x0, /* FC_OP */
-/* 8 */ NdrFcShort( 0x3b6 ), /* Offset= 950 (958) */
-/* 10 */
- 0x2b, /* FC_NON_ENCAPSULATED_UNION */
- 0x9, /* FC_ULONG */
-/* 12 */ 0x7, /* Corr desc: FC_USHORT */
- 0x0, /* */
-/* 14 */ NdrFcShort( 0xfff8 ), /* -8 */
-/* 16 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 18 */ NdrFcShort( 0x2 ), /* Offset= 2 (20) */
-/* 20 */ NdrFcShort( 0x10 ), /* 16 */
-/* 22 */ NdrFcShort( 0x2f ), /* 47 */
-/* 24 */ NdrFcLong( 0x14 ), /* 20 */
-/* 28 */ NdrFcShort( 0x800b ), /* Simple arm type: FC_HYPER */
-/* 30 */ NdrFcLong( 0x3 ), /* 3 */
-/* 34 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
-/* 36 */ NdrFcLong( 0x11 ), /* 17 */
-/* 40 */ NdrFcShort( 0x8001 ), /* Simple arm type: FC_BYTE */
-/* 42 */ NdrFcLong( 0x2 ), /* 2 */
-/* 46 */ NdrFcShort( 0x8006 ), /* Simple arm type: FC_SHORT */
-/* 48 */ NdrFcLong( 0x4 ), /* 4 */
-/* 52 */ NdrFcShort( 0x800a ), /* Simple arm type: FC_FLOAT */
-/* 54 */ NdrFcLong( 0x5 ), /* 5 */
-/* 58 */ NdrFcShort( 0x800c ), /* Simple arm type: FC_DOUBLE */
-/* 60 */ NdrFcLong( 0xb ), /* 11 */
-/* 64 */ NdrFcShort( 0x8006 ), /* Simple arm type: FC_SHORT */
-/* 66 */ NdrFcLong( 0xa ), /* 10 */
-/* 70 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
-/* 72 */ NdrFcLong( 0x6 ), /* 6 */
-/* 76 */ NdrFcShort( 0xe8 ), /* Offset= 232 (308) */
-/* 78 */ NdrFcLong( 0x7 ), /* 7 */
-/* 82 */ NdrFcShort( 0x800c ), /* Simple arm type: FC_DOUBLE */
-/* 84 */ NdrFcLong( 0x8 ), /* 8 */
-/* 88 */ NdrFcShort( 0xe2 ), /* Offset= 226 (314) */
-/* 90 */ NdrFcLong( 0xd ), /* 13 */
-/* 94 */ NdrFcShort( 0xf6 ), /* Offset= 246 (340) */
-/* 96 */ NdrFcLong( 0x9 ), /* 9 */
-/* 100 */ NdrFcShort( 0x102 ), /* Offset= 258 (358) */
-/* 102 */ NdrFcLong( 0x2000 ), /* 8192 */
-/* 106 */ NdrFcShort( 0x10e ), /* Offset= 270 (376) */
-/* 108 */ NdrFcLong( 0x24 ), /* 36 */
-/* 112 */ NdrFcShort( 0x304 ), /* Offset= 772 (884) */
-/* 114 */ NdrFcLong( 0x4024 ), /* 16420 */
-/* 118 */ NdrFcShort( 0x2fe ), /* Offset= 766 (884) */
-/* 120 */ NdrFcLong( 0x4011 ), /* 16401 */
-/* 124 */ NdrFcShort( 0x2fc ), /* Offset= 764 (888) */
-/* 126 */ NdrFcLong( 0x4002 ), /* 16386 */
-/* 130 */ NdrFcShort( 0x2fa ), /* Offset= 762 (892) */
-/* 132 */ NdrFcLong( 0x4003 ), /* 16387 */
-/* 136 */ NdrFcShort( 0x2f8 ), /* Offset= 760 (896) */
-/* 138 */ NdrFcLong( 0x4014 ), /* 16404 */
-/* 142 */ NdrFcShort( 0x2f6 ), /* Offset= 758 (900) */
-/* 144 */ NdrFcLong( 0x4004 ), /* 16388 */
-/* 148 */ NdrFcShort( 0x2f4 ), /* Offset= 756 (904) */
-/* 150 */ NdrFcLong( 0x4005 ), /* 16389 */
-/* 154 */ NdrFcShort( 0x2f2 ), /* Offset= 754 (908) */
-/* 156 */ NdrFcLong( 0x400b ), /* 16395 */
-/* 160 */ NdrFcShort( 0x2dc ), /* Offset= 732 (892) */
-/* 162 */ NdrFcLong( 0x400a ), /* 16394 */
-/* 166 */ NdrFcShort( 0x2da ), /* Offset= 730 (896) */
-/* 168 */ NdrFcLong( 0x4006 ), /* 16390 */
-/* 172 */ NdrFcShort( 0x2e4 ), /* Offset= 740 (912) */
-/* 174 */ NdrFcLong( 0x4007 ), /* 16391 */
-/* 178 */ NdrFcShort( 0x2da ), /* Offset= 730 (908) */
-/* 180 */ NdrFcLong( 0x4008 ), /* 16392 */
-/* 184 */ NdrFcShort( 0x2dc ), /* Offset= 732 (916) */
-/* 186 */ NdrFcLong( 0x400d ), /* 16397 */
-/* 190 */ NdrFcShort( 0x2da ), /* Offset= 730 (920) */
-/* 192 */ NdrFcLong( 0x4009 ), /* 16393 */
-/* 196 */ NdrFcShort( 0x2d8 ), /* Offset= 728 (924) */
-/* 198 */ NdrFcLong( 0x6000 ), /* 24576 */
-/* 202 */ NdrFcShort( 0x2d6 ), /* Offset= 726 (928) */
-/* 204 */ NdrFcLong( 0x400c ), /* 16396 */
-/* 208 */ NdrFcShort( 0x2d4 ), /* Offset= 724 (932) */
-/* 210 */ NdrFcLong( 0x10 ), /* 16 */
-/* 214 */ NdrFcShort( 0x8002 ), /* Simple arm type: FC_CHAR */
-/* 216 */ NdrFcLong( 0x12 ), /* 18 */
-/* 220 */ NdrFcShort( 0x8006 ), /* Simple arm type: FC_SHORT */
-/* 222 */ NdrFcLong( 0x13 ), /* 19 */
-/* 226 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
-/* 228 */ NdrFcLong( 0x15 ), /* 21 */
-/* 232 */ NdrFcShort( 0x800b ), /* Simple arm type: FC_HYPER */
-/* 234 */ NdrFcLong( 0x16 ), /* 22 */
-/* 238 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
-/* 240 */ NdrFcLong( 0x17 ), /* 23 */
-/* 244 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
-/* 246 */ NdrFcLong( 0xe ), /* 14 */
-/* 250 */ NdrFcShort( 0x2b2 ), /* Offset= 690 (940) */
-/* 252 */ NdrFcLong( 0x400e ), /* 16398 */
-/* 256 */ NdrFcShort( 0x2b6 ), /* Offset= 694 (950) */
-/* 258 */ NdrFcLong( 0x4010 ), /* 16400 */
-/* 262 */ NdrFcShort( 0x2b4 ), /* Offset= 692 (954) */
-/* 264 */ NdrFcLong( 0x4012 ), /* 16402 */
-/* 268 */ NdrFcShort( 0x270 ), /* Offset= 624 (892) */
-/* 270 */ NdrFcLong( 0x4013 ), /* 16403 */
-/* 274 */ NdrFcShort( 0x26e ), /* Offset= 622 (896) */
-/* 276 */ NdrFcLong( 0x4015 ), /* 16405 */
-/* 280 */ NdrFcShort( 0x26c ), /* Offset= 620 (900) */
-/* 282 */ NdrFcLong( 0x4016 ), /* 16406 */
-/* 286 */ NdrFcShort( 0x262 ), /* Offset= 610 (896) */
-/* 288 */ NdrFcLong( 0x4017 ), /* 16407 */
-/* 292 */ NdrFcShort( 0x25c ), /* Offset= 604 (896) */
-/* 294 */ NdrFcLong( 0x0 ), /* 0 */
-/* 298 */ NdrFcShort( 0x0 ), /* Offset= 0 (298) */
-/* 300 */ NdrFcLong( 0x1 ), /* 1 */
-/* 304 */ NdrFcShort( 0x0 ), /* Offset= 0 (304) */
-/* 306 */ NdrFcShort( 0xffff ), /* Offset= -1 (305) */
-/* 308 */
- 0x15, /* FC_STRUCT */
- 0x7, /* 7 */
-/* 310 */ NdrFcShort( 0x8 ), /* 8 */
-/* 312 */ 0xb, /* FC_HYPER */
- 0x5b, /* FC_END */
-/* 314 */
- 0x13, 0x0, /* FC_OP */
-/* 316 */ NdrFcShort( 0xe ), /* Offset= 14 (330) */
-/* 318 */
- 0x1b, /* FC_CARRAY */
- 0x1, /* 1 */
-/* 320 */ NdrFcShort( 0x2 ), /* 2 */
-/* 322 */ 0x9, /* Corr desc: FC_ULONG */
- 0x0, /* */
-/* 324 */ NdrFcShort( 0xfffc ), /* -4 */
-/* 326 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 328 */ 0x6, /* FC_SHORT */
- 0x5b, /* FC_END */
-/* 330 */
- 0x17, /* FC_CSTRUCT */
- 0x3, /* 3 */
-/* 332 */ NdrFcShort( 0x8 ), /* 8 */
-/* 334 */ NdrFcShort( 0xfff0 ), /* Offset= -16 (318) */
-/* 336 */ 0x8, /* FC_LONG */
- 0x8, /* FC_LONG */
-/* 338 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-/* 340 */
- 0x2f, /* FC_IP */
- 0x5a, /* FC_CONSTANT_IID */
-/* 342 */ NdrFcLong( 0x0 ), /* 0 */
-/* 346 */ NdrFcShort( 0x0 ), /* 0 */
-/* 348 */ NdrFcShort( 0x0 ), /* 0 */
-/* 350 */ 0xc0, /* 192 */
- 0x0, /* 0 */
-/* 352 */ 0x0, /* 0 */
- 0x0, /* 0 */
-/* 354 */ 0x0, /* 0 */
- 0x0, /* 0 */
-/* 356 */ 0x0, /* 0 */
- 0x46, /* 70 */
-/* 358 */
- 0x2f, /* FC_IP */
- 0x5a, /* FC_CONSTANT_IID */
-/* 360 */ NdrFcLong( 0x20400 ), /* 132096 */
-/* 364 */ NdrFcShort( 0x0 ), /* 0 */
-/* 366 */ NdrFcShort( 0x0 ), /* 0 */
-/* 368 */ 0xc0, /* 192 */
- 0x0, /* 0 */
-/* 370 */ 0x0, /* 0 */
- 0x0, /* 0 */
-/* 372 */ 0x0, /* 0 */
- 0x0, /* 0 */
-/* 374 */ 0x0, /* 0 */
- 0x46, /* 70 */
-/* 376 */
- 0x13, 0x10, /* FC_OP [pointer_deref] */
-/* 378 */ NdrFcShort( 0x2 ), /* Offset= 2 (380) */
-/* 380 */
- 0x13, 0x0, /* FC_OP */
-/* 382 */ NdrFcShort( 0x1e4 ), /* Offset= 484 (866) */
-/* 384 */
- 0x2a, /* FC_ENCAPSULATED_UNION */
- 0x89, /* 137 */
-/* 386 */ NdrFcShort( 0x20 ), /* 32 */
-/* 388 */ NdrFcShort( 0xa ), /* 10 */
-/* 390 */ NdrFcLong( 0x8 ), /* 8 */
-/* 394 */ NdrFcShort( 0x50 ), /* Offset= 80 (474) */
-/* 396 */ NdrFcLong( 0xd ), /* 13 */
-/* 400 */ NdrFcShort( 0x70 ), /* Offset= 112 (512) */
-/* 402 */ NdrFcLong( 0x9 ), /* 9 */
-/* 406 */ NdrFcShort( 0x90 ), /* Offset= 144 (550) */
-/* 408 */ NdrFcLong( 0xc ), /* 12 */
-/* 412 */ NdrFcShort( 0xb0 ), /* Offset= 176 (588) */
-/* 414 */ NdrFcLong( 0x24 ), /* 36 */
-/* 418 */ NdrFcShort( 0x102 ), /* Offset= 258 (676) */
-/* 420 */ NdrFcLong( 0x800d ), /* 32781 */
-/* 424 */ NdrFcShort( 0x11e ), /* Offset= 286 (710) */
-/* 426 */ NdrFcLong( 0x10 ), /* 16 */
-/* 430 */ NdrFcShort( 0x138 ), /* Offset= 312 (742) */
-/* 432 */ NdrFcLong( 0x2 ), /* 2 */
-/* 436 */ NdrFcShort( 0x14e ), /* Offset= 334 (770) */
-/* 438 */ NdrFcLong( 0x3 ), /* 3 */
-/* 442 */ NdrFcShort( 0x164 ), /* Offset= 356 (798) */
-/* 444 */ NdrFcLong( 0x14 ), /* 20 */
-/* 448 */ NdrFcShort( 0x17a ), /* Offset= 378 (826) */
-/* 450 */ NdrFcShort( 0xffff ), /* Offset= -1 (449) */
-/* 452 */
- 0x21, /* FC_BOGUS_ARRAY */
- 0x3, /* 3 */
-/* 454 */ NdrFcShort( 0x0 ), /* 0 */
-/* 456 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
- 0x0, /* */
-/* 458 */ NdrFcShort( 0x0 ), /* 0 */
-/* 460 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 462 */ NdrFcLong( 0xffffffff ), /* -1 */
-/* 466 */ NdrFcShort( 0x0 ), /* Corr flags: */
-/* 468 */
- 0x13, 0x0, /* FC_OP */
-/* 470 */ NdrFcShort( 0xff74 ), /* Offset= -140 (330) */
-/* 472 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-/* 474 */
- 0x1a, /* FC_BOGUS_STRUCT */
- 0x3, /* 3 */
-/* 476 */ NdrFcShort( 0x10 ), /* 16 */
-/* 478 */ NdrFcShort( 0x0 ), /* 0 */
-/* 480 */ NdrFcShort( 0x6 ), /* Offset= 6 (486) */
-/* 482 */ 0x8, /* FC_LONG */
- 0x40, /* FC_STRUCTPAD4 */
-/* 484 */ 0x36, /* FC_POINTER */
- 0x5b, /* FC_END */
-/* 486 */
- 0x11, 0x0, /* FC_RP */
-/* 488 */ NdrFcShort( 0xffdc ), /* Offset= -36 (452) */
-/* 490 */
- 0x21, /* FC_BOGUS_ARRAY */
- 0x3, /* 3 */
-/* 492 */ NdrFcShort( 0x0 ), /* 0 */
-/* 494 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
- 0x0, /* */
-/* 496 */ NdrFcShort( 0x0 ), /* 0 */
-/* 498 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 500 */ NdrFcLong( 0xffffffff ), /* -1 */
-/* 504 */ NdrFcShort( 0x0 ), /* Corr flags: */
-/* 506 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
- 0x0, /* 0 */
-/* 508 */ NdrFcShort( 0xff58 ), /* Offset= -168 (340) */
-/* 510 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-/* 512 */
- 0x1a, /* FC_BOGUS_STRUCT */
- 0x3, /* 3 */
-/* 514 */ NdrFcShort( 0x10 ), /* 16 */
-/* 516 */ NdrFcShort( 0x0 ), /* 0 */
-/* 518 */ NdrFcShort( 0x6 ), /* Offset= 6 (524) */
-/* 520 */ 0x8, /* FC_LONG */
- 0x40, /* FC_STRUCTPAD4 */
-/* 522 */ 0x36, /* FC_POINTER */
- 0x5b, /* FC_END */
-/* 524 */
- 0x11, 0x0, /* FC_RP */
-/* 526 */ NdrFcShort( 0xffdc ), /* Offset= -36 (490) */
-/* 528 */
- 0x21, /* FC_BOGUS_ARRAY */
- 0x3, /* 3 */
-/* 530 */ NdrFcShort( 0x0 ), /* 0 */
-/* 532 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
- 0x0, /* */
-/* 534 */ NdrFcShort( 0x0 ), /* 0 */
-/* 536 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 538 */ NdrFcLong( 0xffffffff ), /* -1 */
-/* 542 */ NdrFcShort( 0x0 ), /* Corr flags: */
-/* 544 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
- 0x0, /* 0 */
-/* 546 */ NdrFcShort( 0xff44 ), /* Offset= -188 (358) */
-/* 548 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-/* 550 */
- 0x1a, /* FC_BOGUS_STRUCT */
- 0x3, /* 3 */
-/* 552 */ NdrFcShort( 0x10 ), /* 16 */
-/* 554 */ NdrFcShort( 0x0 ), /* 0 */
-/* 556 */ NdrFcShort( 0x6 ), /* Offset= 6 (562) */
-/* 558 */ 0x8, /* FC_LONG */
- 0x40, /* FC_STRUCTPAD4 */
-/* 560 */ 0x36, /* FC_POINTER */
- 0x5b, /* FC_END */
-/* 562 */
- 0x11, 0x0, /* FC_RP */
-/* 564 */ NdrFcShort( 0xffdc ), /* Offset= -36 (528) */
-/* 566 */
- 0x21, /* FC_BOGUS_ARRAY */
- 0x3, /* 3 */
-/* 568 */ NdrFcShort( 0x0 ), /* 0 */
-/* 570 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
- 0x0, /* */
-/* 572 */ NdrFcShort( 0x0 ), /* 0 */
-/* 574 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 576 */ NdrFcLong( 0xffffffff ), /* -1 */
-/* 580 */ NdrFcShort( 0x0 ), /* Corr flags: */
-/* 582 */
- 0x13, 0x0, /* FC_OP */
-/* 584 */ NdrFcShort( 0x176 ), /* Offset= 374 (958) */
-/* 586 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-/* 588 */
- 0x1a, /* FC_BOGUS_STRUCT */
- 0x3, /* 3 */
-/* 590 */ NdrFcShort( 0x10 ), /* 16 */
-/* 592 */ NdrFcShort( 0x0 ), /* 0 */
-/* 594 */ NdrFcShort( 0x6 ), /* Offset= 6 (600) */
-/* 596 */ 0x8, /* FC_LONG */
- 0x40, /* FC_STRUCTPAD4 */
-/* 598 */ 0x36, /* FC_POINTER */
- 0x5b, /* FC_END */
-/* 600 */
- 0x11, 0x0, /* FC_RP */
-/* 602 */ NdrFcShort( 0xffdc ), /* Offset= -36 (566) */
-/* 604 */
- 0x2f, /* FC_IP */
- 0x5a, /* FC_CONSTANT_IID */
-/* 606 */ NdrFcLong( 0x2f ), /* 47 */
-/* 610 */ NdrFcShort( 0x0 ), /* 0 */
-/* 612 */ NdrFcShort( 0x0 ), /* 0 */
-/* 614 */ 0xc0, /* 192 */
- 0x0, /* 0 */
-/* 616 */ 0x0, /* 0 */
- 0x0, /* 0 */
-/* 618 */ 0x0, /* 0 */
- 0x0, /* 0 */
-/* 620 */ 0x0, /* 0 */
- 0x46, /* 70 */
-/* 622 */
- 0x1b, /* FC_CARRAY */
- 0x0, /* 0 */
-/* 624 */ NdrFcShort( 0x1 ), /* 1 */
-/* 626 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
- 0x0, /* */
-/* 628 */ NdrFcShort( 0x4 ), /* 4 */
-/* 630 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 632 */ 0x1, /* FC_BYTE */
- 0x5b, /* FC_END */
-/* 634 */
- 0x1a, /* FC_BOGUS_STRUCT */
- 0x3, /* 3 */
-/* 636 */ NdrFcShort( 0x18 ), /* 24 */
-/* 638 */ NdrFcShort( 0x0 ), /* 0 */
-/* 640 */ NdrFcShort( 0xa ), /* Offset= 10 (650) */
-/* 642 */ 0x8, /* FC_LONG */
- 0x8, /* FC_LONG */
-/* 644 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
- 0x0, /* 0 */
-/* 646 */ NdrFcShort( 0xffd6 ), /* Offset= -42 (604) */
-/* 648 */ 0x36, /* FC_POINTER */
- 0x5b, /* FC_END */
-/* 650 */
- 0x13, 0x0, /* FC_OP */
-/* 652 */ NdrFcShort( 0xffe2 ), /* Offset= -30 (622) */
-/* 654 */
- 0x21, /* FC_BOGUS_ARRAY */
- 0x3, /* 3 */
-/* 656 */ NdrFcShort( 0x0 ), /* 0 */
-/* 658 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
- 0x0, /* */
-/* 660 */ NdrFcShort( 0x0 ), /* 0 */
-/* 662 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 664 */ NdrFcLong( 0xffffffff ), /* -1 */
-/* 668 */ NdrFcShort( 0x0 ), /* Corr flags: */
-/* 670 */
- 0x13, 0x0, /* FC_OP */
-/* 672 */ NdrFcShort( 0xffda ), /* Offset= -38 (634) */
-/* 674 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-/* 676 */
- 0x1a, /* FC_BOGUS_STRUCT */
- 0x3, /* 3 */
-/* 678 */ NdrFcShort( 0x10 ), /* 16 */
-/* 680 */ NdrFcShort( 0x0 ), /* 0 */
-/* 682 */ NdrFcShort( 0x6 ), /* Offset= 6 (688) */
-/* 684 */ 0x8, /* FC_LONG */
- 0x40, /* FC_STRUCTPAD4 */
-/* 686 */ 0x36, /* FC_POINTER */
- 0x5b, /* FC_END */
-/* 688 */
- 0x11, 0x0, /* FC_RP */
-/* 690 */ NdrFcShort( 0xffdc ), /* Offset= -36 (654) */
-/* 692 */
- 0x1d, /* FC_SMFARRAY */
- 0x0, /* 0 */
-/* 694 */ NdrFcShort( 0x8 ), /* 8 */
-/* 696 */ 0x1, /* FC_BYTE */
- 0x5b, /* FC_END */
-/* 698 */
- 0x15, /* FC_STRUCT */
- 0x3, /* 3 */
-/* 700 */ NdrFcShort( 0x10 ), /* 16 */
-/* 702 */ 0x8, /* FC_LONG */
- 0x6, /* FC_SHORT */
-/* 704 */ 0x6, /* FC_SHORT */
- 0x4c, /* FC_EMBEDDED_COMPLEX */
-/* 706 */ 0x0, /* 0 */
- NdrFcShort( 0xfff1 ), /* Offset= -15 (692) */
- 0x5b, /* FC_END */
-/* 710 */
- 0x1a, /* FC_BOGUS_STRUCT */
- 0x3, /* 3 */
-/* 712 */ NdrFcShort( 0x20 ), /* 32 */
-/* 714 */ NdrFcShort( 0x0 ), /* 0 */
-/* 716 */ NdrFcShort( 0xa ), /* Offset= 10 (726) */
-/* 718 */ 0x8, /* FC_LONG */
- 0x40, /* FC_STRUCTPAD4 */
-/* 720 */ 0x36, /* FC_POINTER */
- 0x4c, /* FC_EMBEDDED_COMPLEX */
-/* 722 */ 0x0, /* 0 */
- NdrFcShort( 0xffe7 ), /* Offset= -25 (698) */
- 0x5b, /* FC_END */
-/* 726 */
- 0x11, 0x0, /* FC_RP */
-/* 728 */ NdrFcShort( 0xff12 ), /* Offset= -238 (490) */
-/* 730 */
- 0x1b, /* FC_CARRAY */
- 0x0, /* 0 */
-/* 732 */ NdrFcShort( 0x1 ), /* 1 */
-/* 734 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
- 0x0, /* */
-/* 736 */ NdrFcShort( 0x0 ), /* 0 */
-/* 738 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 740 */ 0x1, /* FC_BYTE */
- 0x5b, /* FC_END */
-/* 742 */
- 0x1a, /* FC_BOGUS_STRUCT */
- 0x3, /* 3 */
-/* 744 */ NdrFcShort( 0x10 ), /* 16 */
-/* 746 */ NdrFcShort( 0x0 ), /* 0 */
-/* 748 */ NdrFcShort( 0x6 ), /* Offset= 6 (754) */
-/* 750 */ 0x8, /* FC_LONG */
- 0x40, /* FC_STRUCTPAD4 */
-/* 752 */ 0x36, /* FC_POINTER */
- 0x5b, /* FC_END */
-/* 754 */
- 0x13, 0x0, /* FC_OP */
-/* 756 */ NdrFcShort( 0xffe6 ), /* Offset= -26 (730) */
-/* 758 */
- 0x1b, /* FC_CARRAY */
- 0x1, /* 1 */
-/* 760 */ NdrFcShort( 0x2 ), /* 2 */
-/* 762 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
- 0x0, /* */
-/* 764 */ NdrFcShort( 0x0 ), /* 0 */
-/* 766 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 768 */ 0x6, /* FC_SHORT */
- 0x5b, /* FC_END */
-/* 770 */
- 0x1a, /* FC_BOGUS_STRUCT */
- 0x3, /* 3 */
-/* 772 */ NdrFcShort( 0x10 ), /* 16 */
-/* 774 */ NdrFcShort( 0x0 ), /* 0 */
-/* 776 */ NdrFcShort( 0x6 ), /* Offset= 6 (782) */
-/* 778 */ 0x8, /* FC_LONG */
- 0x40, /* FC_STRUCTPAD4 */
-/* 780 */ 0x36, /* FC_POINTER */
- 0x5b, /* FC_END */
-/* 782 */
- 0x13, 0x0, /* FC_OP */
-/* 784 */ NdrFcShort( 0xffe6 ), /* Offset= -26 (758) */
-/* 786 */
- 0x1b, /* FC_CARRAY */
- 0x3, /* 3 */
-/* 788 */ NdrFcShort( 0x4 ), /* 4 */
-/* 790 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
- 0x0, /* */
-/* 792 */ NdrFcShort( 0x0 ), /* 0 */
-/* 794 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 796 */ 0x8, /* FC_LONG */
- 0x5b, /* FC_END */
-/* 798 */
- 0x1a, /* FC_BOGUS_STRUCT */
- 0x3, /* 3 */
-/* 800 */ NdrFcShort( 0x10 ), /* 16 */
-/* 802 */ NdrFcShort( 0x0 ), /* 0 */
-/* 804 */ NdrFcShort( 0x6 ), /* Offset= 6 (810) */
-/* 806 */ 0x8, /* FC_LONG */
- 0x40, /* FC_STRUCTPAD4 */
-/* 808 */ 0x36, /* FC_POINTER */
- 0x5b, /* FC_END */
-/* 810 */
- 0x13, 0x0, /* FC_OP */
-/* 812 */ NdrFcShort( 0xffe6 ), /* Offset= -26 (786) */
-/* 814 */
- 0x1b, /* FC_CARRAY */
- 0x7, /* 7 */
-/* 816 */ NdrFcShort( 0x8 ), /* 8 */
-/* 818 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
- 0x0, /* */
-/* 820 */ NdrFcShort( 0x0 ), /* 0 */
-/* 822 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 824 */ 0xb, /* FC_HYPER */
- 0x5b, /* FC_END */
-/* 826 */
- 0x1a, /* FC_BOGUS_STRUCT */
- 0x3, /* 3 */
-/* 828 */ NdrFcShort( 0x10 ), /* 16 */
-/* 830 */ NdrFcShort( 0x0 ), /* 0 */
-/* 832 */ NdrFcShort( 0x6 ), /* Offset= 6 (838) */
-/* 834 */ 0x8, /* FC_LONG */
- 0x40, /* FC_STRUCTPAD4 */
-/* 836 */ 0x36, /* FC_POINTER */
- 0x5b, /* FC_END */
-/* 838 */
- 0x13, 0x0, /* FC_OP */
-/* 840 */ NdrFcShort( 0xffe6 ), /* Offset= -26 (814) */
-/* 842 */
- 0x15, /* FC_STRUCT */
- 0x3, /* 3 */
-/* 844 */ NdrFcShort( 0x8 ), /* 8 */
-/* 846 */ 0x8, /* FC_LONG */
- 0x8, /* FC_LONG */
-/* 848 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-/* 850 */
- 0x1b, /* FC_CARRAY */
- 0x3, /* 3 */
-/* 852 */ NdrFcShort( 0x8 ), /* 8 */
-/* 854 */ 0x7, /* Corr desc: FC_USHORT */
- 0x0, /* */
-/* 856 */ NdrFcShort( 0xffc8 ), /* -56 */
-/* 858 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 860 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
- 0x0, /* 0 */
-/* 862 */ NdrFcShort( 0xffec ), /* Offset= -20 (842) */
-/* 864 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-/* 866 */
- 0x1a, /* FC_BOGUS_STRUCT */
- 0x3, /* 3 */
-/* 868 */ NdrFcShort( 0x38 ), /* 56 */
-/* 870 */ NdrFcShort( 0xffec ), /* Offset= -20 (850) */
-/* 872 */ NdrFcShort( 0x0 ), /* Offset= 0 (872) */
-/* 874 */ 0x6, /* FC_SHORT */
- 0x6, /* FC_SHORT */
-/* 876 */ 0x8, /* FC_LONG */
- 0x8, /* FC_LONG */
-/* 878 */ 0x40, /* FC_STRUCTPAD4 */
- 0x4c, /* FC_EMBEDDED_COMPLEX */
-/* 880 */ 0x0, /* 0 */
- NdrFcShort( 0xfe0f ), /* Offset= -497 (384) */
- 0x5b, /* FC_END */
-/* 884 */
- 0x13, 0x0, /* FC_OP */
-/* 886 */ NdrFcShort( 0xff04 ), /* Offset= -252 (634) */
-/* 888 */
- 0x13, 0x8, /* FC_OP [simple_pointer] */
-/* 890 */ 0x1, /* FC_BYTE */
- 0x5c, /* FC_PAD */
-/* 892 */
- 0x13, 0x8, /* FC_OP [simple_pointer] */
-/* 894 */ 0x6, /* FC_SHORT */
- 0x5c, /* FC_PAD */
-/* 896 */
- 0x13, 0x8, /* FC_OP [simple_pointer] */
-/* 898 */ 0x8, /* FC_LONG */
- 0x5c, /* FC_PAD */
-/* 900 */
- 0x13, 0x8, /* FC_OP [simple_pointer] */
-/* 902 */ 0xb, /* FC_HYPER */
- 0x5c, /* FC_PAD */
-/* 904 */
- 0x13, 0x8, /* FC_OP [simple_pointer] */
-/* 906 */ 0xa, /* FC_FLOAT */
- 0x5c, /* FC_PAD */
-/* 908 */
- 0x13, 0x8, /* FC_OP [simple_pointer] */
-/* 910 */ 0xc, /* FC_DOUBLE */
- 0x5c, /* FC_PAD */
-/* 912 */
- 0x13, 0x0, /* FC_OP */
-/* 914 */ NdrFcShort( 0xfda2 ), /* Offset= -606 (308) */
-/* 916 */
- 0x13, 0x10, /* FC_OP [pointer_deref] */
-/* 918 */ NdrFcShort( 0xfda4 ), /* Offset= -604 (314) */
-/* 920 */
- 0x13, 0x10, /* FC_OP [pointer_deref] */
-/* 922 */ NdrFcShort( 0xfdba ), /* Offset= -582 (340) */
-/* 924 */
- 0x13, 0x10, /* FC_OP [pointer_deref] */
-/* 926 */ NdrFcShort( 0xfdc8 ), /* Offset= -568 (358) */
-/* 928 */
- 0x13, 0x10, /* FC_OP [pointer_deref] */
-/* 930 */ NdrFcShort( 0xfdd6 ), /* Offset= -554 (376) */
-/* 932 */
- 0x13, 0x10, /* FC_OP [pointer_deref] */
-/* 934 */ NdrFcShort( 0x2 ), /* Offset= 2 (936) */
-/* 936 */
- 0x13, 0x0, /* FC_OP */
-/* 938 */ NdrFcShort( 0x14 ), /* Offset= 20 (958) */
-/* 940 */
- 0x15, /* FC_STRUCT */
- 0x7, /* 7 */
-/* 942 */ NdrFcShort( 0x10 ), /* 16 */
-/* 944 */ 0x6, /* FC_SHORT */
- 0x1, /* FC_BYTE */
-/* 946 */ 0x1, /* FC_BYTE */
- 0x8, /* FC_LONG */
-/* 948 */ 0xb, /* FC_HYPER */
- 0x5b, /* FC_END */
-/* 950 */
- 0x13, 0x0, /* FC_OP */
-/* 952 */ NdrFcShort( 0xfff4 ), /* Offset= -12 (940) */
-/* 954 */
- 0x13, 0x8, /* FC_OP [simple_pointer] */
-/* 956 */ 0x2, /* FC_CHAR */
- 0x5c, /* FC_PAD */
-/* 958 */
- 0x1a, /* FC_BOGUS_STRUCT */
- 0x7, /* 7 */
-/* 960 */ NdrFcShort( 0x20 ), /* 32 */
-/* 962 */ NdrFcShort( 0x0 ), /* 0 */
-/* 964 */ NdrFcShort( 0x0 ), /* Offset= 0 (964) */
-/* 966 */ 0x8, /* FC_LONG */
- 0x8, /* FC_LONG */
-/* 968 */ 0x6, /* FC_SHORT */
- 0x6, /* FC_SHORT */
-/* 970 */ 0x6, /* FC_SHORT */
- 0x6, /* FC_SHORT */
-/* 972 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
- 0x0, /* 0 */
-/* 974 */ NdrFcShort( 0xfc3c ), /* Offset= -964 (10) */
-/* 976 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-/* 978 */ 0xb4, /* FC_USER_MARSHAL */
- 0x83, /* 131 */
-/* 980 */ NdrFcShort( 0x0 ), /* 0 */
-/* 982 */ NdrFcShort( 0x18 ), /* 24 */
-/* 984 */ NdrFcShort( 0x0 ), /* 0 */
-/* 986 */ NdrFcShort( 0xfc2c ), /* Offset= -980 (6) */
-/* 988 */
- 0x11, 0x0, /* FC_RP */
-/* 990 */ NdrFcShort( 0x6 ), /* Offset= 6 (996) */
-/* 992 */
- 0x12, 0x0, /* FC_UP */
-/* 994 */ NdrFcShort( 0xffdc ), /* Offset= -36 (958) */
-/* 996 */ 0xb4, /* FC_USER_MARSHAL */
- 0x83, /* 131 */
-/* 998 */ NdrFcShort( 0x0 ), /* 0 */
-/* 1000 */ NdrFcShort( 0x18 ), /* 24 */
-/* 1002 */ NdrFcShort( 0x0 ), /* 0 */
-/* 1004 */ NdrFcShort( 0xfff4 ), /* Offset= -12 (992) */
-
- 0x0
- }
- };
-
-static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] =
- {
-
- {
- VARIANT_UserSize
- ,VARIANT_UserMarshal
- ,VARIANT_UserUnmarshal
- ,VARIANT_UserFree
- }
-
- };
-
-
-
-/* Object interface: IUnknown, ver. 0.0,
- GUID={0x00000000,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
-
-
-/* Object interface: IAccessibleValue, ver. 0.0,
- GUID={0x35855B5B,0xC566,0x4fd0,{0xA7,0xB1,0xE6,0x54,0x65,0x60,0x03,0x94}} */
-
-#pragma code_seg(".orpc")
-static const unsigned short IAccessibleValue_FormatStringOffsetTable[] =
- {
- 0,
- 38,
- 76,
- 114
- };
-
-static const MIDL_STUBLESS_PROXY_INFO IAccessibleValue_ProxyInfo =
- {
- &Object_StubDesc,
- AccessibleValue__MIDL_ProcFormatString.Format,
- &IAccessibleValue_FormatStringOffsetTable[-3],
- 0,
- 0,
- 0
- };
-
-
-static const MIDL_SERVER_INFO IAccessibleValue_ServerInfo =
- {
- &Object_StubDesc,
- 0,
- AccessibleValue__MIDL_ProcFormatString.Format,
- &IAccessibleValue_FormatStringOffsetTable[-3],
- 0,
- 0,
- 0,
- 0};
-CINTERFACE_PROXY_VTABLE(7) _IAccessibleValueProxyVtbl =
-{
- &IAccessibleValue_ProxyInfo,
- &IID_IAccessibleValue,
- IUnknown_QueryInterface_Proxy,
- IUnknown_AddRef_Proxy,
- IUnknown_Release_Proxy ,
- (void *) (INT_PTR) -1 /* IAccessibleValue::get_currentValue */ ,
- (void *) (INT_PTR) -1 /* IAccessibleValue::setCurrentValue */ ,
- (void *) (INT_PTR) -1 /* IAccessibleValue::get_maximumValue */ ,
- (void *) (INT_PTR) -1 /* IAccessibleValue::get_minimumValue */
-};
-
-const CInterfaceStubVtbl _IAccessibleValueStubVtbl =
-{
- &IID_IAccessibleValue,
- &IAccessibleValue_ServerInfo,
- 7,
- 0, /* pure interpreted */
- CStdStubBuffer_METHODS
-};
-
-static const MIDL_STUB_DESC Object_StubDesc =
- {
- 0,
- NdrOleAllocate,
- NdrOleFree,
- 0,
- 0,
- 0,
- 0,
- 0,
- AccessibleValue__MIDL_TypeFormatString.Format,
- 1, /* -error bounds_check flag */
- 0x50002, /* Ndr library version */
- 0,
- 0x700022b, /* MIDL Version 7.0.555 */
- 0,
- UserMarshalRoutines,
- 0, /* notify & notify_flag routine table */
- 0x1, /* MIDL flag */
- 0, /* cs routines */
- 0, /* proxy/server info */
- 0
- };
-
-const CInterfaceProxyVtbl * const _AccessibleValue_ProxyVtblList[] =
-{
- ( CInterfaceProxyVtbl *) &_IAccessibleValueProxyVtbl,
- 0
-};
-
-const CInterfaceStubVtbl * const _AccessibleValue_StubVtblList[] =
-{
- ( CInterfaceStubVtbl *) &_IAccessibleValueStubVtbl,
- 0
-};
-
-PCInterfaceName const _AccessibleValue_InterfaceNamesList[] =
-{
- "IAccessibleValue",
- 0
-};
-
-
-#define _AccessibleValue_CHECK_IID(n) IID_GENERIC_CHECK_IID( _AccessibleValue, pIID, n)
-
-int __stdcall _AccessibleValue_IID_Lookup( const IID * pIID, int * pIndex )
-{
-
- if(!_AccessibleValue_CHECK_IID(0))
- {
- *pIndex = 0;
- return 1;
- }
-
- return 0;
-}
-
-const ExtendedProxyFileInfo AccessibleValue_ProxyFileInfo =
-{
- (PCInterfaceProxyVtblList *) & _AccessibleValue_ProxyVtblList,
- (PCInterfaceStubVtblList *) & _AccessibleValue_StubVtblList,
- (const PCInterfaceName * ) & _AccessibleValue_InterfaceNamesList,
- 0, /* no delegation */
- & _AccessibleValue_IID_Lookup,
- 1,
- 2,
- 0, /* table of [async_uuid] interfaces */
- 0, /* Filler1 */
- 0, /* Filler2 */
- 0 /* Filler3 */
-};
-#if _MSC_VER >= 1200
-#pragma warning(pop)
-#endif
-
-
-#endif /* defined(_M_AMD64)*/
-
diff --git a/src/3rdparty/iaccessible2/generated/amd64/IA2CommonTypes.h b/src/3rdparty/iaccessible2/generated/amd64/IA2CommonTypes.h
deleted file mode 100644
index 5b5a313541..0000000000
--- a/src/3rdparty/iaccessible2/generated/amd64/IA2CommonTypes.h
+++ /dev/null
@@ -1,102 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the definitions for the interfaces */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:54:00 2012
- */
-/* Compiler settings for IA2CommonTypes.idl:
- Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-
-
-/* verify that the <rpcndr.h> version is high enough to compile this file*/
-#ifndef __REQUIRED_RPCNDR_H_VERSION__
-#define __REQUIRED_RPCNDR_H_VERSION__ 475
-#endif
-
-#include "rpc.h"
-#include "rpcndr.h"
-
-#ifndef __RPCNDR_H_VERSION__
-#error this stub requires an updated version of <rpcndr.h>
-#endif // __RPCNDR_H_VERSION__
-
-
-#ifndef __IA2CommonTypes_h__
-#define __IA2CommonTypes_h__
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-#pragma once
-#endif
-
-/* Forward Declarations */
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-
-/* interface __MIDL_itf_IA2CommonTypes_0000_0000 */
-/* [local] */
-
-
-enum IA2ScrollType
- { IA2_SCROLL_TYPE_TOP_LEFT = 0,
- IA2_SCROLL_TYPE_BOTTOM_RIGHT = ( IA2_SCROLL_TYPE_TOP_LEFT + 1 ) ,
- IA2_SCROLL_TYPE_TOP_EDGE = ( IA2_SCROLL_TYPE_BOTTOM_RIGHT + 1 ) ,
- IA2_SCROLL_TYPE_BOTTOM_EDGE = ( IA2_SCROLL_TYPE_TOP_EDGE + 1 ) ,
- IA2_SCROLL_TYPE_LEFT_EDGE = ( IA2_SCROLL_TYPE_BOTTOM_EDGE + 1 ) ,
- IA2_SCROLL_TYPE_RIGHT_EDGE = ( IA2_SCROLL_TYPE_LEFT_EDGE + 1 ) ,
- IA2_SCROLL_TYPE_ANYWHERE = ( IA2_SCROLL_TYPE_RIGHT_EDGE + 1 )
- } ;
-
-enum IA2CoordinateType
- { IA2_COORDTYPE_SCREEN_RELATIVE = 0,
- IA2_COORDTYPE_PARENT_RELATIVE = ( IA2_COORDTYPE_SCREEN_RELATIVE + 1 )
- } ;
-
-enum IA2TextSpecialOffsets
- { IA2_TEXT_OFFSET_LENGTH = -1,
- IA2_TEXT_OFFSET_CARET = -2
- } ;
-
-enum IA2TableModelChangeType
- { IA2_TABLE_MODEL_CHANGE_INSERT = 0,
- IA2_TABLE_MODEL_CHANGE_DELETE = ( IA2_TABLE_MODEL_CHANGE_INSERT + 1 ) ,
- IA2_TABLE_MODEL_CHANGE_UPDATE = ( IA2_TABLE_MODEL_CHANGE_DELETE + 1 )
- } ;
-typedef struct IA2TableModelChange
- {
- enum IA2TableModelChangeType type;
- long firstRow;
- long lastRow;
- long firstColumn;
- long lastColumn;
- } IA2TableModelChange;
-
-
-
-extern RPC_IF_HANDLE __MIDL_itf_IA2CommonTypes_0000_0000_v0_0_c_ifspec;
-extern RPC_IF_HANDLE __MIDL_itf_IA2CommonTypes_0000_0000_v0_0_s_ifspec;
-
-/* Additional Prototypes for ALL interfaces */
-
-/* end of Additional Prototypes */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-
diff --git a/src/3rdparty/iaccessible2/generated/amd64/IA2TypeLibrary.h b/src/3rdparty/iaccessible2/generated/amd64/IA2TypeLibrary.h
deleted file mode 100644
index 31142c6b44..0000000000
--- a/src/3rdparty/iaccessible2/generated/amd64/IA2TypeLibrary.h
+++ /dev/null
@@ -1,103 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the definitions for the interfaces */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:54:00 2012
- */
-/* Compiler settings for IA2TypeLibrary.idl:
- Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-
-
-/* verify that the <rpcndr.h> version is high enough to compile this file*/
-#ifndef __REQUIRED_RPCNDR_H_VERSION__
-#define __REQUIRED_RPCNDR_H_VERSION__ 475
-#endif
-
-#include "rpc.h"
-#include "rpcndr.h"
-
-#ifndef __RPCNDR_H_VERSION__
-#error this stub requires an updated version of <rpcndr.h>
-#endif // __RPCNDR_H_VERSION__
-
-
-#ifndef __IA2TypeLibrary_h__
-#define __IA2TypeLibrary_h__
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-#pragma once
-#endif
-
-/* Forward Declarations */
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-
-/* interface __MIDL_itf_IA2TypeLibrary_0000_0000 */
-/* [local] */
-
-
-// Type Library Definitions
-
-
-
-extern RPC_IF_HANDLE __MIDL_itf_IA2TypeLibrary_0000_0000_v0_0_c_ifspec;
-extern RPC_IF_HANDLE __MIDL_itf_IA2TypeLibrary_0000_0000_v0_0_s_ifspec;
-
-
-#ifndef __IAccessible2Lib_LIBRARY_DEFINED__
-#define __IAccessible2Lib_LIBRARY_DEFINED__
-
-/* library IAccessible2Lib */
-/* [hidden][version][helpstring][uuid] */
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-EXTERN_C const IID LIBID_IAccessible2Lib;
-#endif /* __IAccessible2Lib_LIBRARY_DEFINED__ */
-
-/* Additional Prototypes for ALL interfaces */
-
-/* end of Additional Prototypes */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-
diff --git a/src/3rdparty/iaccessible2/generated/amd64/IA2TypeLibrary.tlb b/src/3rdparty/iaccessible2/generated/amd64/IA2TypeLibrary.tlb
deleted file mode 100644
index 44e7cdc173..0000000000
--- a/src/3rdparty/iaccessible2/generated/amd64/IA2TypeLibrary.tlb
+++ /dev/null
Binary files differ
diff --git a/src/3rdparty/iaccessible2/generated/amd64/IA2TypeLibrary_i.c b/src/3rdparty/iaccessible2/generated/amd64/IA2TypeLibrary_i.c
deleted file mode 100644
index f3eabd2c49..0000000000
--- a/src/3rdparty/iaccessible2/generated/amd64/IA2TypeLibrary_i.c
+++ /dev/null
@@ -1,79 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
-
-/* link this file in with the server and any clients */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:54:00 2012
- */
-/* Compiler settings for IA2TypeLibrary.idl:
- Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-
-#include <rpc.h>
-#include <rpcndr.h>
-
-#ifdef _MIDL_USE_GUIDDEF_
-
-#ifndef INITGUID
-#define INITGUID
-#include <guiddef.h>
-#undef INITGUID
-#else
-#include <guiddef.h>
-#endif
-
-#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
- DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
-
-#else // !_MIDL_USE_GUIDDEF_
-
-#ifndef __IID_DEFINED__
-#define __IID_DEFINED__
-
-typedef struct _IID
-{
- unsigned long x;
- unsigned short s1;
- unsigned short s2;
- unsigned char c[8];
-} IID;
-
-#endif // __IID_DEFINED__
-
-#ifndef CLSID_DEFINED
-#define CLSID_DEFINED
-typedef IID CLSID;
-#endif // CLSID_DEFINED
-
-#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
- const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
-
-#endif !_MIDL_USE_GUIDDEF_
-
-MIDL_DEFINE_GUID(IID, LIBID_IAccessible2Lib,0xc974e070,0x3787,0x490a,0x87,0xb0,0xe3,0x33,0xb0,0x6c,0xa1,0xe2);
-
-#undef MIDL_DEFINE_GUID
-
-#ifdef __cplusplus
-}
-#endif
-
-
-
diff --git a/src/3rdparty/iaccessible2/generated/amd64/dlldata.c b/src/3rdparty/iaccessible2/generated/amd64/dlldata.c
index e1e15a1fc0..1685d8340a 100644
--- a/src/3rdparty/iaccessible2/generated/amd64/dlldata.c
+++ b/src/3rdparty/iaccessible2/generated/amd64/dlldata.c
@@ -19,38 +19,12 @@
extern "C" {
#endif
-EXTERN_PROXY_FILE( Accessible2 )
-EXTERN_PROXY_FILE( AccessibleAction )
-EXTERN_PROXY_FILE( AccessibleApplication )
-EXTERN_PROXY_FILE( AccessibleComponent )
-EXTERN_PROXY_FILE( AccessibleEditableText )
-EXTERN_PROXY_FILE( AccessibleHyperlink )
-EXTERN_PROXY_FILE( AccessibleHypertext )
-EXTERN_PROXY_FILE( AccessibleImage )
-EXTERN_PROXY_FILE( AccessibleRelation )
-EXTERN_PROXY_FILE( AccessibleTable )
-EXTERN_PROXY_FILE( AccessibleTable2 )
-EXTERN_PROXY_FILE( AccessibleTableCell )
-EXTERN_PROXY_FILE( AccessibleText )
-EXTERN_PROXY_FILE( AccessibleValue )
+EXTERN_PROXY_FILE( ia2_api_all )
PROXYFILE_LIST_START
/* Start of list */
- REFERENCE_PROXY_FILE( Accessible2 ),
- REFERENCE_PROXY_FILE( AccessibleAction ),
- REFERENCE_PROXY_FILE( AccessibleApplication ),
- REFERENCE_PROXY_FILE( AccessibleComponent ),
- REFERENCE_PROXY_FILE( AccessibleEditableText ),
- REFERENCE_PROXY_FILE( AccessibleHyperlink ),
- REFERENCE_PROXY_FILE( AccessibleHypertext ),
- REFERENCE_PROXY_FILE( AccessibleImage ),
- REFERENCE_PROXY_FILE( AccessibleRelation ),
- REFERENCE_PROXY_FILE( AccessibleTable ),
- REFERENCE_PROXY_FILE( AccessibleTable2 ),
- REFERENCE_PROXY_FILE( AccessibleTableCell ),
- REFERENCE_PROXY_FILE( AccessibleText ),
- REFERENCE_PROXY_FILE( AccessibleValue ),
+ REFERENCE_PROXY_FILE( ia2_api_all ),
/* End of list */
PROXYFILE_LIST_END
diff --git a/src/3rdparty/iaccessible2/generated/amd64/ia2_api_all.h b/src/3rdparty/iaccessible2/generated/amd64/ia2_api_all.h
new file mode 100644
index 0000000000..4f7b7d07d7
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/amd64/ia2_api_all.h
@@ -0,0 +1,4667 @@
+
+
+/* this ALWAYS GENERATED file contains the definitions for the interfaces */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Mon Aug 11 14:34:44 2014
+ */
+/* Compiler settings for ia2_api_all.idl:
+ Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+/* verify that the <rpcndr.h> version is high enough to compile this file*/
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+
+#include "rpc.h"
+#include "rpcndr.h"
+
+#ifndef __RPCNDR_H_VERSION__
+#error this stub requires an updated version of <rpcndr.h>
+#endif // __RPCNDR_H_VERSION__
+
+#ifndef COM_NO_WINDOWS_H
+#include "windows.h"
+#include "ole2.h"
+#endif /*COM_NO_WINDOWS_H*/
+
+#ifndef __ia2_api_all_h__
+#define __ia2_api_all_h__
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+#pragma once
+#endif
+
+/* Forward Declarations */
+
+#ifndef __IAccessibleRelation_FWD_DEFINED__
+#define __IAccessibleRelation_FWD_DEFINED__
+typedef interface IAccessibleRelation IAccessibleRelation;
+#endif /* __IAccessibleRelation_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleAction_FWD_DEFINED__
+#define __IAccessibleAction_FWD_DEFINED__
+typedef interface IAccessibleAction IAccessibleAction;
+#endif /* __IAccessibleAction_FWD_DEFINED__ */
+
+
+#ifndef __IAccessible2_FWD_DEFINED__
+#define __IAccessible2_FWD_DEFINED__
+typedef interface IAccessible2 IAccessible2;
+#endif /* __IAccessible2_FWD_DEFINED__ */
+
+
+#ifndef __IAccessible2_2_FWD_DEFINED__
+#define __IAccessible2_2_FWD_DEFINED__
+typedef interface IAccessible2_2 IAccessible2_2;
+#endif /* __IAccessible2_2_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleComponent_FWD_DEFINED__
+#define __IAccessibleComponent_FWD_DEFINED__
+typedef interface IAccessibleComponent IAccessibleComponent;
+#endif /* __IAccessibleComponent_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleValue_FWD_DEFINED__
+#define __IAccessibleValue_FWD_DEFINED__
+typedef interface IAccessibleValue IAccessibleValue;
+#endif /* __IAccessibleValue_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleText_FWD_DEFINED__
+#define __IAccessibleText_FWD_DEFINED__
+typedef interface IAccessibleText IAccessibleText;
+#endif /* __IAccessibleText_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleText2_FWD_DEFINED__
+#define __IAccessibleText2_FWD_DEFINED__
+typedef interface IAccessibleText2 IAccessibleText2;
+#endif /* __IAccessibleText2_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleEditableText_FWD_DEFINED__
+#define __IAccessibleEditableText_FWD_DEFINED__
+typedef interface IAccessibleEditableText IAccessibleEditableText;
+#endif /* __IAccessibleEditableText_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleHyperlink_FWD_DEFINED__
+#define __IAccessibleHyperlink_FWD_DEFINED__
+typedef interface IAccessibleHyperlink IAccessibleHyperlink;
+#endif /* __IAccessibleHyperlink_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleHypertext_FWD_DEFINED__
+#define __IAccessibleHypertext_FWD_DEFINED__
+typedef interface IAccessibleHypertext IAccessibleHypertext;
+#endif /* __IAccessibleHypertext_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleHypertext2_FWD_DEFINED__
+#define __IAccessibleHypertext2_FWD_DEFINED__
+typedef interface IAccessibleHypertext2 IAccessibleHypertext2;
+#endif /* __IAccessibleHypertext2_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleTable_FWD_DEFINED__
+#define __IAccessibleTable_FWD_DEFINED__
+typedef interface IAccessibleTable IAccessibleTable;
+#endif /* __IAccessibleTable_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleTable2_FWD_DEFINED__
+#define __IAccessibleTable2_FWD_DEFINED__
+typedef interface IAccessibleTable2 IAccessibleTable2;
+#endif /* __IAccessibleTable2_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleTableCell_FWD_DEFINED__
+#define __IAccessibleTableCell_FWD_DEFINED__
+typedef interface IAccessibleTableCell IAccessibleTableCell;
+#endif /* __IAccessibleTableCell_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleImage_FWD_DEFINED__
+#define __IAccessibleImage_FWD_DEFINED__
+typedef interface IAccessibleImage IAccessibleImage;
+#endif /* __IAccessibleImage_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleApplication_FWD_DEFINED__
+#define __IAccessibleApplication_FWD_DEFINED__
+typedef interface IAccessibleApplication IAccessibleApplication;
+#endif /* __IAccessibleApplication_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleDocument_FWD_DEFINED__
+#define __IAccessibleDocument_FWD_DEFINED__
+typedef interface IAccessibleDocument IAccessibleDocument;
+#endif /* __IAccessibleDocument_FWD_DEFINED__ */
+
+
+#ifndef __IAccessible2_FWD_DEFINED__
+#define __IAccessible2_FWD_DEFINED__
+typedef interface IAccessible2 IAccessible2;
+#endif /* __IAccessible2_FWD_DEFINED__ */
+
+
+#ifndef __IAccessible2_2_FWD_DEFINED__
+#define __IAccessible2_2_FWD_DEFINED__
+typedef interface IAccessible2_2 IAccessible2_2;
+#endif /* __IAccessible2_2_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleAction_FWD_DEFINED__
+#define __IAccessibleAction_FWD_DEFINED__
+typedef interface IAccessibleAction IAccessibleAction;
+#endif /* __IAccessibleAction_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleApplication_FWD_DEFINED__
+#define __IAccessibleApplication_FWD_DEFINED__
+typedef interface IAccessibleApplication IAccessibleApplication;
+#endif /* __IAccessibleApplication_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleComponent_FWD_DEFINED__
+#define __IAccessibleComponent_FWD_DEFINED__
+typedef interface IAccessibleComponent IAccessibleComponent;
+#endif /* __IAccessibleComponent_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleDocument_FWD_DEFINED__
+#define __IAccessibleDocument_FWD_DEFINED__
+typedef interface IAccessibleDocument IAccessibleDocument;
+#endif /* __IAccessibleDocument_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleEditableText_FWD_DEFINED__
+#define __IAccessibleEditableText_FWD_DEFINED__
+typedef interface IAccessibleEditableText IAccessibleEditableText;
+#endif /* __IAccessibleEditableText_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleHyperlink_FWD_DEFINED__
+#define __IAccessibleHyperlink_FWD_DEFINED__
+typedef interface IAccessibleHyperlink IAccessibleHyperlink;
+#endif /* __IAccessibleHyperlink_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleText_FWD_DEFINED__
+#define __IAccessibleText_FWD_DEFINED__
+typedef interface IAccessibleText IAccessibleText;
+#endif /* __IAccessibleText_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleHypertext_FWD_DEFINED__
+#define __IAccessibleHypertext_FWD_DEFINED__
+typedef interface IAccessibleHypertext IAccessibleHypertext;
+#endif /* __IAccessibleHypertext_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleHypertext2_FWD_DEFINED__
+#define __IAccessibleHypertext2_FWD_DEFINED__
+typedef interface IAccessibleHypertext2 IAccessibleHypertext2;
+#endif /* __IAccessibleHypertext2_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleImage_FWD_DEFINED__
+#define __IAccessibleImage_FWD_DEFINED__
+typedef interface IAccessibleImage IAccessibleImage;
+#endif /* __IAccessibleImage_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleRelation_FWD_DEFINED__
+#define __IAccessibleRelation_FWD_DEFINED__
+typedef interface IAccessibleRelation IAccessibleRelation;
+#endif /* __IAccessibleRelation_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleTable_FWD_DEFINED__
+#define __IAccessibleTable_FWD_DEFINED__
+typedef interface IAccessibleTable IAccessibleTable;
+#endif /* __IAccessibleTable_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleTable2_FWD_DEFINED__
+#define __IAccessibleTable2_FWD_DEFINED__
+typedef interface IAccessibleTable2 IAccessibleTable2;
+#endif /* __IAccessibleTable2_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleTableCell_FWD_DEFINED__
+#define __IAccessibleTableCell_FWD_DEFINED__
+typedef interface IAccessibleTableCell IAccessibleTableCell;
+#endif /* __IAccessibleTableCell_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleText2_FWD_DEFINED__
+#define __IAccessibleText2_FWD_DEFINED__
+typedef interface IAccessibleText2 IAccessibleText2;
+#endif /* __IAccessibleText2_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleValue_FWD_DEFINED__
+#define __IAccessibleValue_FWD_DEFINED__
+typedef interface IAccessibleValue IAccessibleValue;
+#endif /* __IAccessibleValue_FWD_DEFINED__ */
+
+
+/* header files for imported files */
+#include "objidl.h"
+#include "oaidl.h"
+#include "oleacc.h"
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+/* interface __MIDL_itf_ia2_api_all_0000_0000 */
+/* [local] */
+
+
+enum IA2ScrollType
+ { IA2_SCROLL_TYPE_TOP_LEFT = 0,
+ IA2_SCROLL_TYPE_BOTTOM_RIGHT = ( IA2_SCROLL_TYPE_TOP_LEFT + 1 ) ,
+ IA2_SCROLL_TYPE_TOP_EDGE = ( IA2_SCROLL_TYPE_BOTTOM_RIGHT + 1 ) ,
+ IA2_SCROLL_TYPE_BOTTOM_EDGE = ( IA2_SCROLL_TYPE_TOP_EDGE + 1 ) ,
+ IA2_SCROLL_TYPE_LEFT_EDGE = ( IA2_SCROLL_TYPE_BOTTOM_EDGE + 1 ) ,
+ IA2_SCROLL_TYPE_RIGHT_EDGE = ( IA2_SCROLL_TYPE_LEFT_EDGE + 1 ) ,
+ IA2_SCROLL_TYPE_ANYWHERE = ( IA2_SCROLL_TYPE_RIGHT_EDGE + 1 )
+ } ;
+
+enum IA2CoordinateType
+ { IA2_COORDTYPE_SCREEN_RELATIVE = 0,
+ IA2_COORDTYPE_PARENT_RELATIVE = ( IA2_COORDTYPE_SCREEN_RELATIVE + 1 )
+ } ;
+
+enum IA2TextSpecialOffsets
+ { IA2_TEXT_OFFSET_LENGTH = -1,
+ IA2_TEXT_OFFSET_CARET = -2
+ } ;
+
+enum IA2TableModelChangeType
+ { IA2_TABLE_MODEL_CHANGE_INSERT = 0,
+ IA2_TABLE_MODEL_CHANGE_DELETE = ( IA2_TABLE_MODEL_CHANGE_INSERT + 1 ) ,
+ IA2_TABLE_MODEL_CHANGE_UPDATE = ( IA2_TABLE_MODEL_CHANGE_DELETE + 1 )
+ } ;
+typedef struct IA2TableModelChange
+ {
+ enum IA2TableModelChangeType type;
+ long firstRow;
+ long lastRow;
+ long firstColumn;
+ long lastColumn;
+ } IA2TableModelChange;
+
+#define IA2_RELATION_CONTAINING_APPLICATION ( L"containingApplication" )
+
+#define IA2_RELATION_CONTAINING_DOCUMENT ( L"containingDocument" )
+
+#define IA2_RELATION_CONTAINING_TAB_PANE ( L"containingTabPane" )
+
+#define IA2_RELATION_CONTAINING_WINDOW ( L"containingWindow" )
+
+#define IA2_RELATION_CONTROLLED_BY ( L"controlledBy" )
+
+#define IA2_RELATION_CONTROLLER_FOR ( L"controllerFor" )
+
+#define IA2_RELATION_DESCRIBED_BY ( L"describedBy" )
+
+#define IA2_RELATION_DESCRIPTION_FOR ( L"descriptionFor" )
+
+#define IA2_RELATION_EMBEDDED_BY ( L"embeddedBy" )
+
+#define IA2_RELATION_EMBEDS ( L"embeds" )
+
+#define IA2_RELATION_FLOWS_FROM ( L"flowsFrom" )
+
+#define IA2_RELATION_FLOWS_TO ( L"flowsTo" )
+
+#define IA2_RELATION_LABEL_FOR ( L"labelFor" )
+
+#define IA2_RELATION_LABELED_BY ( L"labelledBy" )
+
+#define IA2_RELATION_LABELLED_BY ( L"labelledBy" )
+
+#define IA2_RELATION_MEMBER_OF ( L"memberOf" )
+
+#define IA2_RELATION_NEXT_TABBABLE ( L"nextTabbable" )
+
+#define IA2_RELATION_NODE_CHILD_OF ( L"nodeChildOf" )
+
+#define IA2_RELATION_NODE_PARENT_OF ( L"nodeParentOf" )
+
+#define IA2_RELATION_PARENT_WINDOW_OF ( L"parentWindowOf" )
+
+#define IA2_RELATION_POPUP_FOR ( L"popupFor" )
+
+#define IA2_RELATION_PREVIOUS_TABBABLE ( L"previousTabbable" )
+
+#define IA2_RELATION_SUBWINDOW_OF ( L"subwindowOf" )
+
+
+
+extern RPC_IF_HANDLE __MIDL_itf_ia2_api_all_0000_0000_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_ia2_api_all_0000_0000_v0_0_s_ifspec;
+
+#ifndef __IAccessibleRelation_INTERFACE_DEFINED__
+#define __IAccessibleRelation_INTERFACE_DEFINED__
+
+/* interface IAccessibleRelation */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleRelation;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("7CDF86EE-C3DA-496a-BDA4-281B336E1FDC")
+ IAccessibleRelation : public IUnknown
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_relationType(
+ /* [retval][out] */ BSTR *relationType) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_localizedRelationType(
+ /* [retval][out] */ BSTR *localizedRelationType) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nTargets(
+ /* [retval][out] */ long *nTargets) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_target(
+ /* [in] */ long targetIndex,
+ /* [retval][out] */ IUnknown **target) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_targets(
+ /* [in] */ long maxTargets,
+ /* [length_is][size_is][out] */ IUnknown **targets,
+ /* [retval][out] */ long *nTargets) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct IAccessibleRelationVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleRelation * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ __RPC__deref_out void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleRelation * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleRelation * This);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relationType )(
+ IAccessibleRelation * This,
+ /* [retval][out] */ BSTR *relationType);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedRelationType )(
+ IAccessibleRelation * This,
+ /* [retval][out] */ BSTR *localizedRelationType);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nTargets )(
+ IAccessibleRelation * This,
+ /* [retval][out] */ long *nTargets);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_target )(
+ IAccessibleRelation * This,
+ /* [in] */ long targetIndex,
+ /* [retval][out] */ IUnknown **target);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_targets )(
+ IAccessibleRelation * This,
+ /* [in] */ long maxTargets,
+ /* [length_is][size_is][out] */ IUnknown **targets,
+ /* [retval][out] */ long *nTargets);
+
+ END_INTERFACE
+ } IAccessibleRelationVtbl;
+
+ interface IAccessibleRelation
+ {
+ CONST_VTBL struct IAccessibleRelationVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleRelation_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleRelation_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleRelation_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleRelation_get_relationType(This,relationType) \
+ ( (This)->lpVtbl -> get_relationType(This,relationType) )
+
+#define IAccessibleRelation_get_localizedRelationType(This,localizedRelationType) \
+ ( (This)->lpVtbl -> get_localizedRelationType(This,localizedRelationType) )
+
+#define IAccessibleRelation_get_nTargets(This,nTargets) \
+ ( (This)->lpVtbl -> get_nTargets(This,nTargets) )
+
+#define IAccessibleRelation_get_target(This,targetIndex,target) \
+ ( (This)->lpVtbl -> get_target(This,targetIndex,target) )
+
+#define IAccessibleRelation_get_targets(This,maxTargets,targets,nTargets) \
+ ( (This)->lpVtbl -> get_targets(This,maxTargets,targets,nTargets) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleRelation_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_ia2_api_all_0000_0001 */
+/* [local] */
+
+
+enum IA2Actions
+ { IA2_ACTION_OPEN = -1,
+ IA2_ACTION_COMPLETE = -2,
+ IA2_ACTION_CLOSE = -3
+ } ;
+
+
+extern RPC_IF_HANDLE __MIDL_itf_ia2_api_all_0000_0001_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_ia2_api_all_0000_0001_v0_0_s_ifspec;
+
+#ifndef __IAccessibleAction_INTERFACE_DEFINED__
+#define __IAccessibleAction_INTERFACE_DEFINED__
+
+/* interface IAccessibleAction */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleAction;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("B70D9F59-3B5A-4dba-AB9E-22012F607DF5")
+ IAccessibleAction : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE nActions(
+ /* [retval][out] */ long *nActions) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE doAction(
+ /* [in] */ long actionIndex) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_description(
+ /* [in] */ long actionIndex,
+ /* [retval][out] */ BSTR *description) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_keyBinding(
+ /* [in] */ long actionIndex,
+ /* [in] */ long nMaxBindings,
+ /* [length_is][length_is][size_is][size_is][out] */ BSTR **keyBindings,
+ /* [retval][out] */ long *nBindings) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_name(
+ /* [in] */ long actionIndex,
+ /* [retval][out] */ BSTR *name) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_localizedName(
+ /* [in] */ long actionIndex,
+ /* [retval][out] */ BSTR *localizedName) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct IAccessibleActionVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleAction * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ __RPC__deref_out void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleAction * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleAction * This);
+
+ HRESULT ( STDMETHODCALLTYPE *nActions )(
+ IAccessibleAction * This,
+ /* [retval][out] */ long *nActions);
+
+ HRESULT ( STDMETHODCALLTYPE *doAction )(
+ IAccessibleAction * This,
+ /* [in] */ long actionIndex);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_description )(
+ IAccessibleAction * This,
+ /* [in] */ long actionIndex,
+ /* [retval][out] */ BSTR *description);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_keyBinding )(
+ IAccessibleAction * This,
+ /* [in] */ long actionIndex,
+ /* [in] */ long nMaxBindings,
+ /* [length_is][length_is][size_is][size_is][out] */ BSTR **keyBindings,
+ /* [retval][out] */ long *nBindings);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_name )(
+ IAccessibleAction * This,
+ /* [in] */ long actionIndex,
+ /* [retval][out] */ BSTR *name);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedName )(
+ IAccessibleAction * This,
+ /* [in] */ long actionIndex,
+ /* [retval][out] */ BSTR *localizedName);
+
+ END_INTERFACE
+ } IAccessibleActionVtbl;
+
+ interface IAccessibleAction
+ {
+ CONST_VTBL struct IAccessibleActionVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleAction_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleAction_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleAction_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleAction_nActions(This,nActions) \
+ ( (This)->lpVtbl -> nActions(This,nActions) )
+
+#define IAccessibleAction_doAction(This,actionIndex) \
+ ( (This)->lpVtbl -> doAction(This,actionIndex) )
+
+#define IAccessibleAction_get_description(This,actionIndex,description) \
+ ( (This)->lpVtbl -> get_description(This,actionIndex,description) )
+
+#define IAccessibleAction_get_keyBinding(This,actionIndex,nMaxBindings,keyBindings,nBindings) \
+ ( (This)->lpVtbl -> get_keyBinding(This,actionIndex,nMaxBindings,keyBindings,nBindings) )
+
+#define IAccessibleAction_get_name(This,actionIndex,name) \
+ ( (This)->lpVtbl -> get_name(This,actionIndex,name) )
+
+#define IAccessibleAction_get_localizedName(This,actionIndex,localizedName) \
+ ( (This)->lpVtbl -> get_localizedName(This,actionIndex,localizedName) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleAction_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_ia2_api_all_0000_0002 */
+/* [local] */
+
+
+enum IA2Role
+ { IA2_ROLE_UNKNOWN = 0,
+ IA2_ROLE_CANVAS = 0x401,
+ IA2_ROLE_CAPTION = ( IA2_ROLE_CANVAS + 1 ) ,
+ IA2_ROLE_CHECK_MENU_ITEM = ( IA2_ROLE_CAPTION + 1 ) ,
+ IA2_ROLE_COLOR_CHOOSER = ( IA2_ROLE_CHECK_MENU_ITEM + 1 ) ,
+ IA2_ROLE_DATE_EDITOR = ( IA2_ROLE_COLOR_CHOOSER + 1 ) ,
+ IA2_ROLE_DESKTOP_ICON = ( IA2_ROLE_DATE_EDITOR + 1 ) ,
+ IA2_ROLE_DESKTOP_PANE = ( IA2_ROLE_DESKTOP_ICON + 1 ) ,
+ IA2_ROLE_DIRECTORY_PANE = ( IA2_ROLE_DESKTOP_PANE + 1 ) ,
+ IA2_ROLE_EDITBAR = ( IA2_ROLE_DIRECTORY_PANE + 1 ) ,
+ IA2_ROLE_EMBEDDED_OBJECT = ( IA2_ROLE_EDITBAR + 1 ) ,
+ IA2_ROLE_ENDNOTE = ( IA2_ROLE_EMBEDDED_OBJECT + 1 ) ,
+ IA2_ROLE_FILE_CHOOSER = ( IA2_ROLE_ENDNOTE + 1 ) ,
+ IA2_ROLE_FONT_CHOOSER = ( IA2_ROLE_FILE_CHOOSER + 1 ) ,
+ IA2_ROLE_FOOTER = ( IA2_ROLE_FONT_CHOOSER + 1 ) ,
+ IA2_ROLE_FOOTNOTE = ( IA2_ROLE_FOOTER + 1 ) ,
+ IA2_ROLE_FORM = ( IA2_ROLE_FOOTNOTE + 1 ) ,
+ IA2_ROLE_FRAME = ( IA2_ROLE_FORM + 1 ) ,
+ IA2_ROLE_GLASS_PANE = ( IA2_ROLE_FRAME + 1 ) ,
+ IA2_ROLE_HEADER = ( IA2_ROLE_GLASS_PANE + 1 ) ,
+ IA2_ROLE_HEADING = ( IA2_ROLE_HEADER + 1 ) ,
+ IA2_ROLE_ICON = ( IA2_ROLE_HEADING + 1 ) ,
+ IA2_ROLE_IMAGE_MAP = ( IA2_ROLE_ICON + 1 ) ,
+ IA2_ROLE_INPUT_METHOD_WINDOW = ( IA2_ROLE_IMAGE_MAP + 1 ) ,
+ IA2_ROLE_INTERNAL_FRAME = ( IA2_ROLE_INPUT_METHOD_WINDOW + 1 ) ,
+ IA2_ROLE_LABEL = ( IA2_ROLE_INTERNAL_FRAME + 1 ) ,
+ IA2_ROLE_LAYERED_PANE = ( IA2_ROLE_LABEL + 1 ) ,
+ IA2_ROLE_NOTE = ( IA2_ROLE_LAYERED_PANE + 1 ) ,
+ IA2_ROLE_OPTION_PANE = ( IA2_ROLE_NOTE + 1 ) ,
+ IA2_ROLE_PAGE = ( IA2_ROLE_OPTION_PANE + 1 ) ,
+ IA2_ROLE_PARAGRAPH = ( IA2_ROLE_PAGE + 1 ) ,
+ IA2_ROLE_RADIO_MENU_ITEM = ( IA2_ROLE_PARAGRAPH + 1 ) ,
+ IA2_ROLE_REDUNDANT_OBJECT = ( IA2_ROLE_RADIO_MENU_ITEM + 1 ) ,
+ IA2_ROLE_ROOT_PANE = ( IA2_ROLE_REDUNDANT_OBJECT + 1 ) ,
+ IA2_ROLE_RULER = ( IA2_ROLE_ROOT_PANE + 1 ) ,
+ IA2_ROLE_SCROLL_PANE = ( IA2_ROLE_RULER + 1 ) ,
+ IA2_ROLE_SECTION = ( IA2_ROLE_SCROLL_PANE + 1 ) ,
+ IA2_ROLE_SHAPE = ( IA2_ROLE_SECTION + 1 ) ,
+ IA2_ROLE_SPLIT_PANE = ( IA2_ROLE_SHAPE + 1 ) ,
+ IA2_ROLE_TEAR_OFF_MENU = ( IA2_ROLE_SPLIT_PANE + 1 ) ,
+ IA2_ROLE_TERMINAL = ( IA2_ROLE_TEAR_OFF_MENU + 1 ) ,
+ IA2_ROLE_TEXT_FRAME = ( IA2_ROLE_TERMINAL + 1 ) ,
+ IA2_ROLE_TOGGLE_BUTTON = ( IA2_ROLE_TEXT_FRAME + 1 ) ,
+ IA2_ROLE_VIEW_PORT = ( IA2_ROLE_TOGGLE_BUTTON + 1 ) ,
+ IA2_ROLE_COMPLEMENTARY_CONTENT = ( IA2_ROLE_VIEW_PORT + 1 )
+ } ;
+typedef long AccessibleStates;
+
+
+enum IA2States
+ { IA2_STATE_ACTIVE = 0x1,
+ IA2_STATE_ARMED = 0x2,
+ IA2_STATE_DEFUNCT = 0x4,
+ IA2_STATE_EDITABLE = 0x8,
+ IA2_STATE_HORIZONTAL = 0x10,
+ IA2_STATE_ICONIFIED = 0x20,
+ IA2_STATE_INVALID_ENTRY = 0x40,
+ IA2_STATE_MANAGES_DESCENDANTS = 0x80,
+ IA2_STATE_MODAL = 0x100,
+ IA2_STATE_MULTI_LINE = 0x200,
+ IA2_STATE_OPAQUE = 0x400,
+ IA2_STATE_REQUIRED = 0x800,
+ IA2_STATE_SELECTABLE_TEXT = 0x1000,
+ IA2_STATE_SINGLE_LINE = 0x2000,
+ IA2_STATE_STALE = 0x4000,
+ IA2_STATE_SUPPORTS_AUTOCOMPLETION = 0x8000,
+ IA2_STATE_TRANSIENT = 0x10000,
+ IA2_STATE_VERTICAL = 0x20000,
+ IA2_STATE_CHECKABLE = 0x40000,
+ IA2_STATE_PINNED = 0x80000
+ } ;
+typedef struct IA2Locale
+ {
+ BSTR language;
+ BSTR country;
+ BSTR variant;
+ } IA2Locale;
+
+
+
+extern RPC_IF_HANDLE __MIDL_itf_ia2_api_all_0000_0002_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_ia2_api_all_0000_0002_v0_0_s_ifspec;
+
+#ifndef __IAccessible2_INTERFACE_DEFINED__
+#define __IAccessible2_INTERFACE_DEFINED__
+
+/* interface IAccessible2 */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessible2;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("E89F726E-C4F4-4c19-BB19-B647D7FA8478")
+ IAccessible2 : public IAccessible
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nRelations(
+ /* [retval][out] */ long *nRelations) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_relation(
+ /* [in] */ long relationIndex,
+ /* [retval][out] */ IAccessibleRelation **relation) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_relations(
+ /* [in] */ long maxRelations,
+ /* [length_is][size_is][out] */ IAccessibleRelation **relations,
+ /* [retval][out] */ long *nRelations) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE role(
+ /* [retval][out] */ long *role) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE scrollTo(
+ /* [in] */ enum IA2ScrollType scrollType) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE scrollToPoint(
+ /* [in] */ enum IA2CoordinateType coordinateType,
+ /* [in] */ long x,
+ /* [in] */ long y) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_groupPosition(
+ /* [out] */ long *groupLevel,
+ /* [out] */ long *similarItemsInGroup,
+ /* [retval][out] */ long *positionInGroup) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_states(
+ /* [retval][out] */ AccessibleStates *states) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_extendedRole(
+ /* [retval][out] */ BSTR *extendedRole) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_localizedExtendedRole(
+ /* [retval][out] */ BSTR *localizedExtendedRole) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nExtendedStates(
+ /* [retval][out] */ long *nExtendedStates) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_extendedStates(
+ /* [in] */ long maxExtendedStates,
+ /* [length_is][length_is][size_is][size_is][out] */ BSTR **extendedStates,
+ /* [retval][out] */ long *nExtendedStates) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_localizedExtendedStates(
+ /* [in] */ long maxLocalizedExtendedStates,
+ /* [length_is][length_is][size_is][size_is][out] */ BSTR **localizedExtendedStates,
+ /* [retval][out] */ long *nLocalizedExtendedStates) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_uniqueID(
+ /* [retval][out] */ long *uniqueID) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_windowHandle(
+ /* [retval][out] */ HWND *windowHandle) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_indexInParent(
+ /* [retval][out] */ long *indexInParent) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_locale(
+ /* [retval][out] */ IA2Locale *locale) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_attributes(
+ /* [retval][out] */ BSTR *attributes) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct IAccessible2Vtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessible2 * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ __RPC__deref_out void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessible2 * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessible2 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ IAccessible2 * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ IAccessible2 * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ IAccessible2 * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [range][in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ IAccessible2 * This,
+ /* [in] */ DISPID dispIdMember,
+ /* [in] */ REFIID riid,
+ /* [in] */ LCID lcid,
+ /* [in] */ WORD wFlags,
+ /* [out][in] */ DISPPARAMS *pDispParams,
+ /* [out] */ VARIANT *pVarResult,
+ /* [out] */ EXCEPINFO *pExcepInfo,
+ /* [out] */ UINT *puArgErr);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accParent )(
+ IAccessible2 * This,
+ /* [retval][out] */ IDispatch **ppdispParent);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accChildCount )(
+ IAccessible2 * This,
+ /* [retval][out] */ long *pcountChildren);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accChild )(
+ IAccessible2 * This,
+ /* [in] */ VARIANT varChild,
+ /* [retval][out] */ IDispatch **ppdispChild);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accName )(
+ IAccessible2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ BSTR *pszName);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accValue )(
+ IAccessible2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ BSTR *pszValue);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accDescription )(
+ IAccessible2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ BSTR *pszDescription);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accRole )(
+ IAccessible2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ VARIANT *pvarRole);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accState )(
+ IAccessible2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ VARIANT *pvarState);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accHelp )(
+ IAccessible2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ BSTR *pszHelp);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accHelpTopic )(
+ IAccessible2 * This,
+ /* [out] */ BSTR *pszHelpFile,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ long *pidTopic);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accKeyboardShortcut )(
+ IAccessible2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ BSTR *pszKeyboardShortcut);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accFocus )(
+ IAccessible2 * This,
+ /* [retval][out] */ VARIANT *pvarChild);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accSelection )(
+ IAccessible2 * This,
+ /* [retval][out] */ VARIANT *pvarChildren);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accDefaultAction )(
+ IAccessible2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ BSTR *pszDefaultAction);
+
+ /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accSelect )(
+ IAccessible2 * This,
+ /* [in] */ long flagsSelect,
+ /* [optional][in] */ VARIANT varChild);
+
+ /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accLocation )(
+ IAccessible2 * This,
+ /* [out] */ long *pxLeft,
+ /* [out] */ long *pyTop,
+ /* [out] */ long *pcxWidth,
+ /* [out] */ long *pcyHeight,
+ /* [optional][in] */ VARIANT varChild);
+
+ /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accNavigate )(
+ IAccessible2 * This,
+ /* [in] */ long navDir,
+ /* [optional][in] */ VARIANT varStart,
+ /* [retval][out] */ VARIANT *pvarEndUpAt);
+
+ /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accHitTest )(
+ IAccessible2 * This,
+ /* [in] */ long xLeft,
+ /* [in] */ long yTop,
+ /* [retval][out] */ VARIANT *pvarChild);
+
+ /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accDoDefaultAction )(
+ IAccessible2 * This,
+ /* [optional][in] */ VARIANT varChild);
+
+ /* [id][propput][hidden] */ HRESULT ( STDMETHODCALLTYPE *put_accName )(
+ IAccessible2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [in] */ BSTR szName);
+
+ /* [id][propput][hidden] */ HRESULT ( STDMETHODCALLTYPE *put_accValue )(
+ IAccessible2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [in] */ BSTR szValue);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nRelations )(
+ IAccessible2 * This,
+ /* [retval][out] */ long *nRelations);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relation )(
+ IAccessible2 * This,
+ /* [in] */ long relationIndex,
+ /* [retval][out] */ IAccessibleRelation **relation);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relations )(
+ IAccessible2 * This,
+ /* [in] */ long maxRelations,
+ /* [length_is][size_is][out] */ IAccessibleRelation **relations,
+ /* [retval][out] */ long *nRelations);
+
+ HRESULT ( STDMETHODCALLTYPE *role )(
+ IAccessible2 * This,
+ /* [retval][out] */ long *role);
+
+ HRESULT ( STDMETHODCALLTYPE *scrollTo )(
+ IAccessible2 * This,
+ /* [in] */ enum IA2ScrollType scrollType);
+
+ HRESULT ( STDMETHODCALLTYPE *scrollToPoint )(
+ IAccessible2 * This,
+ /* [in] */ enum IA2CoordinateType coordinateType,
+ /* [in] */ long x,
+ /* [in] */ long y);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_groupPosition )(
+ IAccessible2 * This,
+ /* [out] */ long *groupLevel,
+ /* [out] */ long *similarItemsInGroup,
+ /* [retval][out] */ long *positionInGroup);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_states )(
+ IAccessible2 * This,
+ /* [retval][out] */ AccessibleStates *states);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_extendedRole )(
+ IAccessible2 * This,
+ /* [retval][out] */ BSTR *extendedRole);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedExtendedRole )(
+ IAccessible2 * This,
+ /* [retval][out] */ BSTR *localizedExtendedRole);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nExtendedStates )(
+ IAccessible2 * This,
+ /* [retval][out] */ long *nExtendedStates);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_extendedStates )(
+ IAccessible2 * This,
+ /* [in] */ long maxExtendedStates,
+ /* [length_is][length_is][size_is][size_is][out] */ BSTR **extendedStates,
+ /* [retval][out] */ long *nExtendedStates);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedExtendedStates )(
+ IAccessible2 * This,
+ /* [in] */ long maxLocalizedExtendedStates,
+ /* [length_is][length_is][size_is][size_is][out] */ BSTR **localizedExtendedStates,
+ /* [retval][out] */ long *nLocalizedExtendedStates);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_uniqueID )(
+ IAccessible2 * This,
+ /* [retval][out] */ long *uniqueID);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_windowHandle )(
+ IAccessible2 * This,
+ /* [retval][out] */ HWND *windowHandle);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_indexInParent )(
+ IAccessible2 * This,
+ /* [retval][out] */ long *indexInParent);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_locale )(
+ IAccessible2 * This,
+ /* [retval][out] */ IA2Locale *locale);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )(
+ IAccessible2 * This,
+ /* [retval][out] */ BSTR *attributes);
+
+ END_INTERFACE
+ } IAccessible2Vtbl;
+
+ interface IAccessible2
+ {
+ CONST_VTBL struct IAccessible2Vtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessible2_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessible2_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessible2_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessible2_GetTypeInfoCount(This,pctinfo) \
+ ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
+
+#define IAccessible2_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
+
+#define IAccessible2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
+
+#define IAccessible2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
+
+
+#define IAccessible2_get_accParent(This,ppdispParent) \
+ ( (This)->lpVtbl -> get_accParent(This,ppdispParent) )
+
+#define IAccessible2_get_accChildCount(This,pcountChildren) \
+ ( (This)->lpVtbl -> get_accChildCount(This,pcountChildren) )
+
+#define IAccessible2_get_accChild(This,varChild,ppdispChild) \
+ ( (This)->lpVtbl -> get_accChild(This,varChild,ppdispChild) )
+
+#define IAccessible2_get_accName(This,varChild,pszName) \
+ ( (This)->lpVtbl -> get_accName(This,varChild,pszName) )
+
+#define IAccessible2_get_accValue(This,varChild,pszValue) \
+ ( (This)->lpVtbl -> get_accValue(This,varChild,pszValue) )
+
+#define IAccessible2_get_accDescription(This,varChild,pszDescription) \
+ ( (This)->lpVtbl -> get_accDescription(This,varChild,pszDescription) )
+
+#define IAccessible2_get_accRole(This,varChild,pvarRole) \
+ ( (This)->lpVtbl -> get_accRole(This,varChild,pvarRole) )
+
+#define IAccessible2_get_accState(This,varChild,pvarState) \
+ ( (This)->lpVtbl -> get_accState(This,varChild,pvarState) )
+
+#define IAccessible2_get_accHelp(This,varChild,pszHelp) \
+ ( (This)->lpVtbl -> get_accHelp(This,varChild,pszHelp) )
+
+#define IAccessible2_get_accHelpTopic(This,pszHelpFile,varChild,pidTopic) \
+ ( (This)->lpVtbl -> get_accHelpTopic(This,pszHelpFile,varChild,pidTopic) )
+
+#define IAccessible2_get_accKeyboardShortcut(This,varChild,pszKeyboardShortcut) \
+ ( (This)->lpVtbl -> get_accKeyboardShortcut(This,varChild,pszKeyboardShortcut) )
+
+#define IAccessible2_get_accFocus(This,pvarChild) \
+ ( (This)->lpVtbl -> get_accFocus(This,pvarChild) )
+
+#define IAccessible2_get_accSelection(This,pvarChildren) \
+ ( (This)->lpVtbl -> get_accSelection(This,pvarChildren) )
+
+#define IAccessible2_get_accDefaultAction(This,varChild,pszDefaultAction) \
+ ( (This)->lpVtbl -> get_accDefaultAction(This,varChild,pszDefaultAction) )
+
+#define IAccessible2_accSelect(This,flagsSelect,varChild) \
+ ( (This)->lpVtbl -> accSelect(This,flagsSelect,varChild) )
+
+#define IAccessible2_accLocation(This,pxLeft,pyTop,pcxWidth,pcyHeight,varChild) \
+ ( (This)->lpVtbl -> accLocation(This,pxLeft,pyTop,pcxWidth,pcyHeight,varChild) )
+
+#define IAccessible2_accNavigate(This,navDir,varStart,pvarEndUpAt) \
+ ( (This)->lpVtbl -> accNavigate(This,navDir,varStart,pvarEndUpAt) )
+
+#define IAccessible2_accHitTest(This,xLeft,yTop,pvarChild) \
+ ( (This)->lpVtbl -> accHitTest(This,xLeft,yTop,pvarChild) )
+
+#define IAccessible2_accDoDefaultAction(This,varChild) \
+ ( (This)->lpVtbl -> accDoDefaultAction(This,varChild) )
+
+#define IAccessible2_put_accName(This,varChild,szName) \
+ ( (This)->lpVtbl -> put_accName(This,varChild,szName) )
+
+#define IAccessible2_put_accValue(This,varChild,szValue) \
+ ( (This)->lpVtbl -> put_accValue(This,varChild,szValue) )
+
+
+#define IAccessible2_get_nRelations(This,nRelations) \
+ ( (This)->lpVtbl -> get_nRelations(This,nRelations) )
+
+#define IAccessible2_get_relation(This,relationIndex,relation) \
+ ( (This)->lpVtbl -> get_relation(This,relationIndex,relation) )
+
+#define IAccessible2_get_relations(This,maxRelations,relations,nRelations) \
+ ( (This)->lpVtbl -> get_relations(This,maxRelations,relations,nRelations) )
+
+#define IAccessible2_role(This,role) \
+ ( (This)->lpVtbl -> role(This,role) )
+
+#define IAccessible2_scrollTo(This,scrollType) \
+ ( (This)->lpVtbl -> scrollTo(This,scrollType) )
+
+#define IAccessible2_scrollToPoint(This,coordinateType,x,y) \
+ ( (This)->lpVtbl -> scrollToPoint(This,coordinateType,x,y) )
+
+#define IAccessible2_get_groupPosition(This,groupLevel,similarItemsInGroup,positionInGroup) \
+ ( (This)->lpVtbl -> get_groupPosition(This,groupLevel,similarItemsInGroup,positionInGroup) )
+
+#define IAccessible2_get_states(This,states) \
+ ( (This)->lpVtbl -> get_states(This,states) )
+
+#define IAccessible2_get_extendedRole(This,extendedRole) \
+ ( (This)->lpVtbl -> get_extendedRole(This,extendedRole) )
+
+#define IAccessible2_get_localizedExtendedRole(This,localizedExtendedRole) \
+ ( (This)->lpVtbl -> get_localizedExtendedRole(This,localizedExtendedRole) )
+
+#define IAccessible2_get_nExtendedStates(This,nExtendedStates) \
+ ( (This)->lpVtbl -> get_nExtendedStates(This,nExtendedStates) )
+
+#define IAccessible2_get_extendedStates(This,maxExtendedStates,extendedStates,nExtendedStates) \
+ ( (This)->lpVtbl -> get_extendedStates(This,maxExtendedStates,extendedStates,nExtendedStates) )
+
+#define IAccessible2_get_localizedExtendedStates(This,maxLocalizedExtendedStates,localizedExtendedStates,nLocalizedExtendedStates) \
+ ( (This)->lpVtbl -> get_localizedExtendedStates(This,maxLocalizedExtendedStates,localizedExtendedStates,nLocalizedExtendedStates) )
+
+#define IAccessible2_get_uniqueID(This,uniqueID) \
+ ( (This)->lpVtbl -> get_uniqueID(This,uniqueID) )
+
+#define IAccessible2_get_windowHandle(This,windowHandle) \
+ ( (This)->lpVtbl -> get_windowHandle(This,windowHandle) )
+
+#define IAccessible2_get_indexInParent(This,indexInParent) \
+ ( (This)->lpVtbl -> get_indexInParent(This,indexInParent) )
+
+#define IAccessible2_get_locale(This,locale) \
+ ( (This)->lpVtbl -> get_locale(This,locale) )
+
+#define IAccessible2_get_attributes(This,attributes) \
+ ( (This)->lpVtbl -> get_attributes(This,attributes) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessible2_INTERFACE_DEFINED__ */
+
+
+#ifndef __IAccessible2_2_INTERFACE_DEFINED__
+#define __IAccessible2_2_INTERFACE_DEFINED__
+
+/* interface IAccessible2_2 */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessible2_2;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("6C9430E9-299D-4E6F-BD01-A82A1E88D3FF")
+ IAccessible2_2 : public IAccessible2
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_attribute(
+ /* [in] */ BSTR name,
+ /* [retval][out] */ VARIANT *attribute) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_accessibleWithCaret(
+ /* [out] */ IUnknown **accessible,
+ /* [retval][out] */ long *caretOffset) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_relationTargetsOfType(
+ /* [in] */ BSTR type,
+ /* [in] */ long maxTargets,
+ /* [size_is][size_is][out] */ IUnknown ***targets,
+ /* [retval][out] */ long *nTargets) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct IAccessible2_2Vtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessible2_2 * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ __RPC__deref_out void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessible2_2 * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessible2_2 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ IAccessible2_2 * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ IAccessible2_2 * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ IAccessible2_2 * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [range][in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ IAccessible2_2 * This,
+ /* [in] */ DISPID dispIdMember,
+ /* [in] */ REFIID riid,
+ /* [in] */ LCID lcid,
+ /* [in] */ WORD wFlags,
+ /* [out][in] */ DISPPARAMS *pDispParams,
+ /* [out] */ VARIANT *pVarResult,
+ /* [out] */ EXCEPINFO *pExcepInfo,
+ /* [out] */ UINT *puArgErr);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accParent )(
+ IAccessible2_2 * This,
+ /* [retval][out] */ IDispatch **ppdispParent);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accChildCount )(
+ IAccessible2_2 * This,
+ /* [retval][out] */ long *pcountChildren);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accChild )(
+ IAccessible2_2 * This,
+ /* [in] */ VARIANT varChild,
+ /* [retval][out] */ IDispatch **ppdispChild);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accName )(
+ IAccessible2_2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ BSTR *pszName);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accValue )(
+ IAccessible2_2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ BSTR *pszValue);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accDescription )(
+ IAccessible2_2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ BSTR *pszDescription);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accRole )(
+ IAccessible2_2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ VARIANT *pvarRole);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accState )(
+ IAccessible2_2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ VARIANT *pvarState);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accHelp )(
+ IAccessible2_2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ BSTR *pszHelp);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accHelpTopic )(
+ IAccessible2_2 * This,
+ /* [out] */ BSTR *pszHelpFile,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ long *pidTopic);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accKeyboardShortcut )(
+ IAccessible2_2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ BSTR *pszKeyboardShortcut);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accFocus )(
+ IAccessible2_2 * This,
+ /* [retval][out] */ VARIANT *pvarChild);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accSelection )(
+ IAccessible2_2 * This,
+ /* [retval][out] */ VARIANT *pvarChildren);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accDefaultAction )(
+ IAccessible2_2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ BSTR *pszDefaultAction);
+
+ /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accSelect )(
+ IAccessible2_2 * This,
+ /* [in] */ long flagsSelect,
+ /* [optional][in] */ VARIANT varChild);
+
+ /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accLocation )(
+ IAccessible2_2 * This,
+ /* [out] */ long *pxLeft,
+ /* [out] */ long *pyTop,
+ /* [out] */ long *pcxWidth,
+ /* [out] */ long *pcyHeight,
+ /* [optional][in] */ VARIANT varChild);
+
+ /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accNavigate )(
+ IAccessible2_2 * This,
+ /* [in] */ long navDir,
+ /* [optional][in] */ VARIANT varStart,
+ /* [retval][out] */ VARIANT *pvarEndUpAt);
+
+ /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accHitTest )(
+ IAccessible2_2 * This,
+ /* [in] */ long xLeft,
+ /* [in] */ long yTop,
+ /* [retval][out] */ VARIANT *pvarChild);
+
+ /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accDoDefaultAction )(
+ IAccessible2_2 * This,
+ /* [optional][in] */ VARIANT varChild);
+
+ /* [id][propput][hidden] */ HRESULT ( STDMETHODCALLTYPE *put_accName )(
+ IAccessible2_2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [in] */ BSTR szName);
+
+ /* [id][propput][hidden] */ HRESULT ( STDMETHODCALLTYPE *put_accValue )(
+ IAccessible2_2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [in] */ BSTR szValue);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nRelations )(
+ IAccessible2_2 * This,
+ /* [retval][out] */ long *nRelations);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relation )(
+ IAccessible2_2 * This,
+ /* [in] */ long relationIndex,
+ /* [retval][out] */ IAccessibleRelation **relation);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relations )(
+ IAccessible2_2 * This,
+ /* [in] */ long maxRelations,
+ /* [length_is][size_is][out] */ IAccessibleRelation **relations,
+ /* [retval][out] */ long *nRelations);
+
+ HRESULT ( STDMETHODCALLTYPE *role )(
+ IAccessible2_2 * This,
+ /* [retval][out] */ long *role);
+
+ HRESULT ( STDMETHODCALLTYPE *scrollTo )(
+ IAccessible2_2 * This,
+ /* [in] */ enum IA2ScrollType scrollType);
+
+ HRESULT ( STDMETHODCALLTYPE *scrollToPoint )(
+ IAccessible2_2 * This,
+ /* [in] */ enum IA2CoordinateType coordinateType,
+ /* [in] */ long x,
+ /* [in] */ long y);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_groupPosition )(
+ IAccessible2_2 * This,
+ /* [out] */ long *groupLevel,
+ /* [out] */ long *similarItemsInGroup,
+ /* [retval][out] */ long *positionInGroup);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_states )(
+ IAccessible2_2 * This,
+ /* [retval][out] */ AccessibleStates *states);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_extendedRole )(
+ IAccessible2_2 * This,
+ /* [retval][out] */ BSTR *extendedRole);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedExtendedRole )(
+ IAccessible2_2 * This,
+ /* [retval][out] */ BSTR *localizedExtendedRole);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nExtendedStates )(
+ IAccessible2_2 * This,
+ /* [retval][out] */ long *nExtendedStates);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_extendedStates )(
+ IAccessible2_2 * This,
+ /* [in] */ long maxExtendedStates,
+ /* [length_is][length_is][size_is][size_is][out] */ BSTR **extendedStates,
+ /* [retval][out] */ long *nExtendedStates);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedExtendedStates )(
+ IAccessible2_2 * This,
+ /* [in] */ long maxLocalizedExtendedStates,
+ /* [length_is][length_is][size_is][size_is][out] */ BSTR **localizedExtendedStates,
+ /* [retval][out] */ long *nLocalizedExtendedStates);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_uniqueID )(
+ IAccessible2_2 * This,
+ /* [retval][out] */ long *uniqueID);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_windowHandle )(
+ IAccessible2_2 * This,
+ /* [retval][out] */ HWND *windowHandle);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_indexInParent )(
+ IAccessible2_2 * This,
+ /* [retval][out] */ long *indexInParent);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_locale )(
+ IAccessible2_2 * This,
+ /* [retval][out] */ IA2Locale *locale);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )(
+ IAccessible2_2 * This,
+ /* [retval][out] */ BSTR *attributes);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attribute )(
+ IAccessible2_2 * This,
+ /* [in] */ BSTR name,
+ /* [retval][out] */ VARIANT *attribute);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_accessibleWithCaret )(
+ IAccessible2_2 * This,
+ /* [out] */ IUnknown **accessible,
+ /* [retval][out] */ long *caretOffset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relationTargetsOfType )(
+ IAccessible2_2 * This,
+ /* [in] */ BSTR type,
+ /* [in] */ long maxTargets,
+ /* [size_is][size_is][out] */ IUnknown ***targets,
+ /* [retval][out] */ long *nTargets);
+
+ END_INTERFACE
+ } IAccessible2_2Vtbl;
+
+ interface IAccessible2_2
+ {
+ CONST_VTBL struct IAccessible2_2Vtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessible2_2_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessible2_2_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessible2_2_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessible2_2_GetTypeInfoCount(This,pctinfo) \
+ ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
+
+#define IAccessible2_2_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
+
+#define IAccessible2_2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
+
+#define IAccessible2_2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
+
+
+#define IAccessible2_2_get_accParent(This,ppdispParent) \
+ ( (This)->lpVtbl -> get_accParent(This,ppdispParent) )
+
+#define IAccessible2_2_get_accChildCount(This,pcountChildren) \
+ ( (This)->lpVtbl -> get_accChildCount(This,pcountChildren) )
+
+#define IAccessible2_2_get_accChild(This,varChild,ppdispChild) \
+ ( (This)->lpVtbl -> get_accChild(This,varChild,ppdispChild) )
+
+#define IAccessible2_2_get_accName(This,varChild,pszName) \
+ ( (This)->lpVtbl -> get_accName(This,varChild,pszName) )
+
+#define IAccessible2_2_get_accValue(This,varChild,pszValue) \
+ ( (This)->lpVtbl -> get_accValue(This,varChild,pszValue) )
+
+#define IAccessible2_2_get_accDescription(This,varChild,pszDescription) \
+ ( (This)->lpVtbl -> get_accDescription(This,varChild,pszDescription) )
+
+#define IAccessible2_2_get_accRole(This,varChild,pvarRole) \
+ ( (This)->lpVtbl -> get_accRole(This,varChild,pvarRole) )
+
+#define IAccessible2_2_get_accState(This,varChild,pvarState) \
+ ( (This)->lpVtbl -> get_accState(This,varChild,pvarState) )
+
+#define IAccessible2_2_get_accHelp(This,varChild,pszHelp) \
+ ( (This)->lpVtbl -> get_accHelp(This,varChild,pszHelp) )
+
+#define IAccessible2_2_get_accHelpTopic(This,pszHelpFile,varChild,pidTopic) \
+ ( (This)->lpVtbl -> get_accHelpTopic(This,pszHelpFile,varChild,pidTopic) )
+
+#define IAccessible2_2_get_accKeyboardShortcut(This,varChild,pszKeyboardShortcut) \
+ ( (This)->lpVtbl -> get_accKeyboardShortcut(This,varChild,pszKeyboardShortcut) )
+
+#define IAccessible2_2_get_accFocus(This,pvarChild) \
+ ( (This)->lpVtbl -> get_accFocus(This,pvarChild) )
+
+#define IAccessible2_2_get_accSelection(This,pvarChildren) \
+ ( (This)->lpVtbl -> get_accSelection(This,pvarChildren) )
+
+#define IAccessible2_2_get_accDefaultAction(This,varChild,pszDefaultAction) \
+ ( (This)->lpVtbl -> get_accDefaultAction(This,varChild,pszDefaultAction) )
+
+#define IAccessible2_2_accSelect(This,flagsSelect,varChild) \
+ ( (This)->lpVtbl -> accSelect(This,flagsSelect,varChild) )
+
+#define IAccessible2_2_accLocation(This,pxLeft,pyTop,pcxWidth,pcyHeight,varChild) \
+ ( (This)->lpVtbl -> accLocation(This,pxLeft,pyTop,pcxWidth,pcyHeight,varChild) )
+
+#define IAccessible2_2_accNavigate(This,navDir,varStart,pvarEndUpAt) \
+ ( (This)->lpVtbl -> accNavigate(This,navDir,varStart,pvarEndUpAt) )
+
+#define IAccessible2_2_accHitTest(This,xLeft,yTop,pvarChild) \
+ ( (This)->lpVtbl -> accHitTest(This,xLeft,yTop,pvarChild) )
+
+#define IAccessible2_2_accDoDefaultAction(This,varChild) \
+ ( (This)->lpVtbl -> accDoDefaultAction(This,varChild) )
+
+#define IAccessible2_2_put_accName(This,varChild,szName) \
+ ( (This)->lpVtbl -> put_accName(This,varChild,szName) )
+
+#define IAccessible2_2_put_accValue(This,varChild,szValue) \
+ ( (This)->lpVtbl -> put_accValue(This,varChild,szValue) )
+
+
+#define IAccessible2_2_get_nRelations(This,nRelations) \
+ ( (This)->lpVtbl -> get_nRelations(This,nRelations) )
+
+#define IAccessible2_2_get_relation(This,relationIndex,relation) \
+ ( (This)->lpVtbl -> get_relation(This,relationIndex,relation) )
+
+#define IAccessible2_2_get_relations(This,maxRelations,relations,nRelations) \
+ ( (This)->lpVtbl -> get_relations(This,maxRelations,relations,nRelations) )
+
+#define IAccessible2_2_role(This,role) \
+ ( (This)->lpVtbl -> role(This,role) )
+
+#define IAccessible2_2_scrollTo(This,scrollType) \
+ ( (This)->lpVtbl -> scrollTo(This,scrollType) )
+
+#define IAccessible2_2_scrollToPoint(This,coordinateType,x,y) \
+ ( (This)->lpVtbl -> scrollToPoint(This,coordinateType,x,y) )
+
+#define IAccessible2_2_get_groupPosition(This,groupLevel,similarItemsInGroup,positionInGroup) \
+ ( (This)->lpVtbl -> get_groupPosition(This,groupLevel,similarItemsInGroup,positionInGroup) )
+
+#define IAccessible2_2_get_states(This,states) \
+ ( (This)->lpVtbl -> get_states(This,states) )
+
+#define IAccessible2_2_get_extendedRole(This,extendedRole) \
+ ( (This)->lpVtbl -> get_extendedRole(This,extendedRole) )
+
+#define IAccessible2_2_get_localizedExtendedRole(This,localizedExtendedRole) \
+ ( (This)->lpVtbl -> get_localizedExtendedRole(This,localizedExtendedRole) )
+
+#define IAccessible2_2_get_nExtendedStates(This,nExtendedStates) \
+ ( (This)->lpVtbl -> get_nExtendedStates(This,nExtendedStates) )
+
+#define IAccessible2_2_get_extendedStates(This,maxExtendedStates,extendedStates,nExtendedStates) \
+ ( (This)->lpVtbl -> get_extendedStates(This,maxExtendedStates,extendedStates,nExtendedStates) )
+
+#define IAccessible2_2_get_localizedExtendedStates(This,maxLocalizedExtendedStates,localizedExtendedStates,nLocalizedExtendedStates) \
+ ( (This)->lpVtbl -> get_localizedExtendedStates(This,maxLocalizedExtendedStates,localizedExtendedStates,nLocalizedExtendedStates) )
+
+#define IAccessible2_2_get_uniqueID(This,uniqueID) \
+ ( (This)->lpVtbl -> get_uniqueID(This,uniqueID) )
+
+#define IAccessible2_2_get_windowHandle(This,windowHandle) \
+ ( (This)->lpVtbl -> get_windowHandle(This,windowHandle) )
+
+#define IAccessible2_2_get_indexInParent(This,indexInParent) \
+ ( (This)->lpVtbl -> get_indexInParent(This,indexInParent) )
+
+#define IAccessible2_2_get_locale(This,locale) \
+ ( (This)->lpVtbl -> get_locale(This,locale) )
+
+#define IAccessible2_2_get_attributes(This,attributes) \
+ ( (This)->lpVtbl -> get_attributes(This,attributes) )
+
+
+#define IAccessible2_2_get_attribute(This,name,attribute) \
+ ( (This)->lpVtbl -> get_attribute(This,name,attribute) )
+
+#define IAccessible2_2_get_accessibleWithCaret(This,accessible,caretOffset) \
+ ( (This)->lpVtbl -> get_accessibleWithCaret(This,accessible,caretOffset) )
+
+#define IAccessible2_2_get_relationTargetsOfType(This,type,maxTargets,targets,nTargets) \
+ ( (This)->lpVtbl -> get_relationTargetsOfType(This,type,maxTargets,targets,nTargets) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessible2_2_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_ia2_api_all_0000_0004 */
+/* [local] */
+
+typedef long IA2Color;
+
+
+
+extern RPC_IF_HANDLE __MIDL_itf_ia2_api_all_0000_0004_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_ia2_api_all_0000_0004_v0_0_s_ifspec;
+
+#ifndef __IAccessibleComponent_INTERFACE_DEFINED__
+#define __IAccessibleComponent_INTERFACE_DEFINED__
+
+/* interface IAccessibleComponent */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleComponent;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("1546D4B0-4C98-4bda-89AE-9A64748BDDE4")
+ IAccessibleComponent : public IUnknown
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_locationInParent(
+ /* [out] */ long *x,
+ /* [retval][out] */ long *y) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_foreground(
+ /* [retval][out] */ IA2Color *foreground) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_background(
+ /* [retval][out] */ IA2Color *background) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct IAccessibleComponentVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleComponent * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ __RPC__deref_out void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleComponent * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleComponent * This);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_locationInParent )(
+ IAccessibleComponent * This,
+ /* [out] */ long *x,
+ /* [retval][out] */ long *y);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_foreground )(
+ IAccessibleComponent * This,
+ /* [retval][out] */ IA2Color *foreground);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_background )(
+ IAccessibleComponent * This,
+ /* [retval][out] */ IA2Color *background);
+
+ END_INTERFACE
+ } IAccessibleComponentVtbl;
+
+ interface IAccessibleComponent
+ {
+ CONST_VTBL struct IAccessibleComponentVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleComponent_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleComponent_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleComponent_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleComponent_get_locationInParent(This,x,y) \
+ ( (This)->lpVtbl -> get_locationInParent(This,x,y) )
+
+#define IAccessibleComponent_get_foreground(This,foreground) \
+ ( (This)->lpVtbl -> get_foreground(This,foreground) )
+
+#define IAccessibleComponent_get_background(This,background) \
+ ( (This)->lpVtbl -> get_background(This,background) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleComponent_INTERFACE_DEFINED__ */
+
+
+#ifndef __IAccessibleValue_INTERFACE_DEFINED__
+#define __IAccessibleValue_INTERFACE_DEFINED__
+
+/* interface IAccessibleValue */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleValue;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("35855B5B-C566-4fd0-A7B1-E65465600394")
+ IAccessibleValue : public IUnknown
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_currentValue(
+ /* [retval][out] */ VARIANT *currentValue) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE setCurrentValue(
+ /* [in] */ VARIANT value) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_maximumValue(
+ /* [retval][out] */ VARIANT *maximumValue) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_minimumValue(
+ /* [retval][out] */ VARIANT *minimumValue) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct IAccessibleValueVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleValue * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ __RPC__deref_out void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleValue * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleValue * This);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_currentValue )(
+ IAccessibleValue * This,
+ /* [retval][out] */ VARIANT *currentValue);
+
+ HRESULT ( STDMETHODCALLTYPE *setCurrentValue )(
+ IAccessibleValue * This,
+ /* [in] */ VARIANT value);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_maximumValue )(
+ IAccessibleValue * This,
+ /* [retval][out] */ VARIANT *maximumValue);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_minimumValue )(
+ IAccessibleValue * This,
+ /* [retval][out] */ VARIANT *minimumValue);
+
+ END_INTERFACE
+ } IAccessibleValueVtbl;
+
+ interface IAccessibleValue
+ {
+ CONST_VTBL struct IAccessibleValueVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleValue_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleValue_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleValue_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleValue_get_currentValue(This,currentValue) \
+ ( (This)->lpVtbl -> get_currentValue(This,currentValue) )
+
+#define IAccessibleValue_setCurrentValue(This,value) \
+ ( (This)->lpVtbl -> setCurrentValue(This,value) )
+
+#define IAccessibleValue_get_maximumValue(This,maximumValue) \
+ ( (This)->lpVtbl -> get_maximumValue(This,maximumValue) )
+
+#define IAccessibleValue_get_minimumValue(This,minimumValue) \
+ ( (This)->lpVtbl -> get_minimumValue(This,minimumValue) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleValue_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_ia2_api_all_0000_0006 */
+/* [local] */
+
+typedef struct IA2TextSegment
+ {
+ BSTR text;
+ long start;
+ long end;
+ } IA2TextSegment;
+
+
+enum IA2TextBoundaryType
+ { IA2_TEXT_BOUNDARY_CHAR = 0,
+ IA2_TEXT_BOUNDARY_WORD = ( IA2_TEXT_BOUNDARY_CHAR + 1 ) ,
+ IA2_TEXT_BOUNDARY_SENTENCE = ( IA2_TEXT_BOUNDARY_WORD + 1 ) ,
+ IA2_TEXT_BOUNDARY_PARAGRAPH = ( IA2_TEXT_BOUNDARY_SENTENCE + 1 ) ,
+ IA2_TEXT_BOUNDARY_LINE = ( IA2_TEXT_BOUNDARY_PARAGRAPH + 1 ) ,
+ IA2_TEXT_BOUNDARY_ALL = ( IA2_TEXT_BOUNDARY_LINE + 1 )
+ } ;
+
+
+extern RPC_IF_HANDLE __MIDL_itf_ia2_api_all_0000_0006_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_ia2_api_all_0000_0006_v0_0_s_ifspec;
+
+#ifndef __IAccessibleText_INTERFACE_DEFINED__
+#define __IAccessibleText_INTERFACE_DEFINED__
+
+/* interface IAccessibleText */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleText;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("24FD2FFB-3AAD-4a08-8335-A3AD89C0FB4B")
+ IAccessibleText : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE addSelection(
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_attributes(
+ /* [in] */ long offset,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *textAttributes) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_caretOffset(
+ /* [retval][out] */ long *offset) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_characterExtents(
+ /* [in] */ long offset,
+ /* [in] */ enum IA2CoordinateType coordType,
+ /* [out] */ long *x,
+ /* [out] */ long *y,
+ /* [out] */ long *width,
+ /* [retval][out] */ long *height) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nSelections(
+ /* [retval][out] */ long *nSelections) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_offsetAtPoint(
+ /* [in] */ long x,
+ /* [in] */ long y,
+ /* [in] */ enum IA2CoordinateType coordType,
+ /* [retval][out] */ long *offset) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selection(
+ /* [in] */ long selectionIndex,
+ /* [out] */ long *startOffset,
+ /* [retval][out] */ long *endOffset) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_text(
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset,
+ /* [retval][out] */ BSTR *text) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_textBeforeOffset(
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_textAfterOffset(
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_textAtOffset(
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE removeSelection(
+ /* [in] */ long selectionIndex) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE setCaretOffset(
+ /* [in] */ long offset) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE setSelection(
+ /* [in] */ long selectionIndex,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nCharacters(
+ /* [retval][out] */ long *nCharacters) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE scrollSubstringTo(
+ /* [in] */ long startIndex,
+ /* [in] */ long endIndex,
+ /* [in] */ enum IA2ScrollType scrollType) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE scrollSubstringToPoint(
+ /* [in] */ long startIndex,
+ /* [in] */ long endIndex,
+ /* [in] */ enum IA2CoordinateType coordinateType,
+ /* [in] */ long x,
+ /* [in] */ long y) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_newText(
+ /* [retval][out] */ IA2TextSegment *newText) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_oldText(
+ /* [retval][out] */ IA2TextSegment *oldText) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct IAccessibleTextVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleText * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ __RPC__deref_out void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleText * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleText * This);
+
+ HRESULT ( STDMETHODCALLTYPE *addSelection )(
+ IAccessibleText * This,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )(
+ IAccessibleText * This,
+ /* [in] */ long offset,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *textAttributes);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_caretOffset )(
+ IAccessibleText * This,
+ /* [retval][out] */ long *offset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_characterExtents )(
+ IAccessibleText * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2CoordinateType coordType,
+ /* [out] */ long *x,
+ /* [out] */ long *y,
+ /* [out] */ long *width,
+ /* [retval][out] */ long *height);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelections )(
+ IAccessibleText * This,
+ /* [retval][out] */ long *nSelections);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_offsetAtPoint )(
+ IAccessibleText * This,
+ /* [in] */ long x,
+ /* [in] */ long y,
+ /* [in] */ enum IA2CoordinateType coordType,
+ /* [retval][out] */ long *offset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selection )(
+ IAccessibleText * This,
+ /* [in] */ long selectionIndex,
+ /* [out] */ long *startOffset,
+ /* [retval][out] */ long *endOffset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_text )(
+ IAccessibleText * This,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textBeforeOffset )(
+ IAccessibleText * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAfterOffset )(
+ IAccessibleText * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAtOffset )(
+ IAccessibleText * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ HRESULT ( STDMETHODCALLTYPE *removeSelection )(
+ IAccessibleText * This,
+ /* [in] */ long selectionIndex);
+
+ HRESULT ( STDMETHODCALLTYPE *setCaretOffset )(
+ IAccessibleText * This,
+ /* [in] */ long offset);
+
+ HRESULT ( STDMETHODCALLTYPE *setSelection )(
+ IAccessibleText * This,
+ /* [in] */ long selectionIndex,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nCharacters )(
+ IAccessibleText * This,
+ /* [retval][out] */ long *nCharacters);
+
+ HRESULT ( STDMETHODCALLTYPE *scrollSubstringTo )(
+ IAccessibleText * This,
+ /* [in] */ long startIndex,
+ /* [in] */ long endIndex,
+ /* [in] */ enum IA2ScrollType scrollType);
+
+ HRESULT ( STDMETHODCALLTYPE *scrollSubstringToPoint )(
+ IAccessibleText * This,
+ /* [in] */ long startIndex,
+ /* [in] */ long endIndex,
+ /* [in] */ enum IA2CoordinateType coordinateType,
+ /* [in] */ long x,
+ /* [in] */ long y);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_newText )(
+ IAccessibleText * This,
+ /* [retval][out] */ IA2TextSegment *newText);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_oldText )(
+ IAccessibleText * This,
+ /* [retval][out] */ IA2TextSegment *oldText);
+
+ END_INTERFACE
+ } IAccessibleTextVtbl;
+
+ interface IAccessibleText
+ {
+ CONST_VTBL struct IAccessibleTextVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleText_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleText_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleText_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleText_addSelection(This,startOffset,endOffset) \
+ ( (This)->lpVtbl -> addSelection(This,startOffset,endOffset) )
+
+#define IAccessibleText_get_attributes(This,offset,startOffset,endOffset,textAttributes) \
+ ( (This)->lpVtbl -> get_attributes(This,offset,startOffset,endOffset,textAttributes) )
+
+#define IAccessibleText_get_caretOffset(This,offset) \
+ ( (This)->lpVtbl -> get_caretOffset(This,offset) )
+
+#define IAccessibleText_get_characterExtents(This,offset,coordType,x,y,width,height) \
+ ( (This)->lpVtbl -> get_characterExtents(This,offset,coordType,x,y,width,height) )
+
+#define IAccessibleText_get_nSelections(This,nSelections) \
+ ( (This)->lpVtbl -> get_nSelections(This,nSelections) )
+
+#define IAccessibleText_get_offsetAtPoint(This,x,y,coordType,offset) \
+ ( (This)->lpVtbl -> get_offsetAtPoint(This,x,y,coordType,offset) )
+
+#define IAccessibleText_get_selection(This,selectionIndex,startOffset,endOffset) \
+ ( (This)->lpVtbl -> get_selection(This,selectionIndex,startOffset,endOffset) )
+
+#define IAccessibleText_get_text(This,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_text(This,startOffset,endOffset,text) )
+
+#define IAccessibleText_get_textBeforeOffset(This,offset,boundaryType,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_textBeforeOffset(This,offset,boundaryType,startOffset,endOffset,text) )
+
+#define IAccessibleText_get_textAfterOffset(This,offset,boundaryType,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_textAfterOffset(This,offset,boundaryType,startOffset,endOffset,text) )
+
+#define IAccessibleText_get_textAtOffset(This,offset,boundaryType,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_textAtOffset(This,offset,boundaryType,startOffset,endOffset,text) )
+
+#define IAccessibleText_removeSelection(This,selectionIndex) \
+ ( (This)->lpVtbl -> removeSelection(This,selectionIndex) )
+
+#define IAccessibleText_setCaretOffset(This,offset) \
+ ( (This)->lpVtbl -> setCaretOffset(This,offset) )
+
+#define IAccessibleText_setSelection(This,selectionIndex,startOffset,endOffset) \
+ ( (This)->lpVtbl -> setSelection(This,selectionIndex,startOffset,endOffset) )
+
+#define IAccessibleText_get_nCharacters(This,nCharacters) \
+ ( (This)->lpVtbl -> get_nCharacters(This,nCharacters) )
+
+#define IAccessibleText_scrollSubstringTo(This,startIndex,endIndex,scrollType) \
+ ( (This)->lpVtbl -> scrollSubstringTo(This,startIndex,endIndex,scrollType) )
+
+#define IAccessibleText_scrollSubstringToPoint(This,startIndex,endIndex,coordinateType,x,y) \
+ ( (This)->lpVtbl -> scrollSubstringToPoint(This,startIndex,endIndex,coordinateType,x,y) )
+
+#define IAccessibleText_get_newText(This,newText) \
+ ( (This)->lpVtbl -> get_newText(This,newText) )
+
+#define IAccessibleText_get_oldText(This,oldText) \
+ ( (This)->lpVtbl -> get_oldText(This,oldText) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleText_INTERFACE_DEFINED__ */
+
+
+#ifndef __IAccessibleText2_INTERFACE_DEFINED__
+#define __IAccessibleText2_INTERFACE_DEFINED__
+
+/* interface IAccessibleText2 */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleText2;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("9690A9CC-5C80-4DF5-852E-2D5AE4189A54")
+ IAccessibleText2 : public IAccessibleText
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_attributeRange(
+ /* [in] */ long offset,
+ /* [in] */ BSTR filter,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *attributeValues) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct IAccessibleText2Vtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleText2 * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ __RPC__deref_out void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleText2 * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleText2 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *addSelection )(
+ IAccessibleText2 * This,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )(
+ IAccessibleText2 * This,
+ /* [in] */ long offset,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *textAttributes);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_caretOffset )(
+ IAccessibleText2 * This,
+ /* [retval][out] */ long *offset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_characterExtents )(
+ IAccessibleText2 * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2CoordinateType coordType,
+ /* [out] */ long *x,
+ /* [out] */ long *y,
+ /* [out] */ long *width,
+ /* [retval][out] */ long *height);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelections )(
+ IAccessibleText2 * This,
+ /* [retval][out] */ long *nSelections);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_offsetAtPoint )(
+ IAccessibleText2 * This,
+ /* [in] */ long x,
+ /* [in] */ long y,
+ /* [in] */ enum IA2CoordinateType coordType,
+ /* [retval][out] */ long *offset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selection )(
+ IAccessibleText2 * This,
+ /* [in] */ long selectionIndex,
+ /* [out] */ long *startOffset,
+ /* [retval][out] */ long *endOffset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_text )(
+ IAccessibleText2 * This,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textBeforeOffset )(
+ IAccessibleText2 * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAfterOffset )(
+ IAccessibleText2 * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAtOffset )(
+ IAccessibleText2 * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ HRESULT ( STDMETHODCALLTYPE *removeSelection )(
+ IAccessibleText2 * This,
+ /* [in] */ long selectionIndex);
+
+ HRESULT ( STDMETHODCALLTYPE *setCaretOffset )(
+ IAccessibleText2 * This,
+ /* [in] */ long offset);
+
+ HRESULT ( STDMETHODCALLTYPE *setSelection )(
+ IAccessibleText2 * This,
+ /* [in] */ long selectionIndex,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nCharacters )(
+ IAccessibleText2 * This,
+ /* [retval][out] */ long *nCharacters);
+
+ HRESULT ( STDMETHODCALLTYPE *scrollSubstringTo )(
+ IAccessibleText2 * This,
+ /* [in] */ long startIndex,
+ /* [in] */ long endIndex,
+ /* [in] */ enum IA2ScrollType scrollType);
+
+ HRESULT ( STDMETHODCALLTYPE *scrollSubstringToPoint )(
+ IAccessibleText2 * This,
+ /* [in] */ long startIndex,
+ /* [in] */ long endIndex,
+ /* [in] */ enum IA2CoordinateType coordinateType,
+ /* [in] */ long x,
+ /* [in] */ long y);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_newText )(
+ IAccessibleText2 * This,
+ /* [retval][out] */ IA2TextSegment *newText);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_oldText )(
+ IAccessibleText2 * This,
+ /* [retval][out] */ IA2TextSegment *oldText);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributeRange )(
+ IAccessibleText2 * This,
+ /* [in] */ long offset,
+ /* [in] */ BSTR filter,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *attributeValues);
+
+ END_INTERFACE
+ } IAccessibleText2Vtbl;
+
+ interface IAccessibleText2
+ {
+ CONST_VTBL struct IAccessibleText2Vtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleText2_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleText2_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleText2_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleText2_addSelection(This,startOffset,endOffset) \
+ ( (This)->lpVtbl -> addSelection(This,startOffset,endOffset) )
+
+#define IAccessibleText2_get_attributes(This,offset,startOffset,endOffset,textAttributes) \
+ ( (This)->lpVtbl -> get_attributes(This,offset,startOffset,endOffset,textAttributes) )
+
+#define IAccessibleText2_get_caretOffset(This,offset) \
+ ( (This)->lpVtbl -> get_caretOffset(This,offset) )
+
+#define IAccessibleText2_get_characterExtents(This,offset,coordType,x,y,width,height) \
+ ( (This)->lpVtbl -> get_characterExtents(This,offset,coordType,x,y,width,height) )
+
+#define IAccessibleText2_get_nSelections(This,nSelections) \
+ ( (This)->lpVtbl -> get_nSelections(This,nSelections) )
+
+#define IAccessibleText2_get_offsetAtPoint(This,x,y,coordType,offset) \
+ ( (This)->lpVtbl -> get_offsetAtPoint(This,x,y,coordType,offset) )
+
+#define IAccessibleText2_get_selection(This,selectionIndex,startOffset,endOffset) \
+ ( (This)->lpVtbl -> get_selection(This,selectionIndex,startOffset,endOffset) )
+
+#define IAccessibleText2_get_text(This,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_text(This,startOffset,endOffset,text) )
+
+#define IAccessibleText2_get_textBeforeOffset(This,offset,boundaryType,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_textBeforeOffset(This,offset,boundaryType,startOffset,endOffset,text) )
+
+#define IAccessibleText2_get_textAfterOffset(This,offset,boundaryType,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_textAfterOffset(This,offset,boundaryType,startOffset,endOffset,text) )
+
+#define IAccessibleText2_get_textAtOffset(This,offset,boundaryType,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_textAtOffset(This,offset,boundaryType,startOffset,endOffset,text) )
+
+#define IAccessibleText2_removeSelection(This,selectionIndex) \
+ ( (This)->lpVtbl -> removeSelection(This,selectionIndex) )
+
+#define IAccessibleText2_setCaretOffset(This,offset) \
+ ( (This)->lpVtbl -> setCaretOffset(This,offset) )
+
+#define IAccessibleText2_setSelection(This,selectionIndex,startOffset,endOffset) \
+ ( (This)->lpVtbl -> setSelection(This,selectionIndex,startOffset,endOffset) )
+
+#define IAccessibleText2_get_nCharacters(This,nCharacters) \
+ ( (This)->lpVtbl -> get_nCharacters(This,nCharacters) )
+
+#define IAccessibleText2_scrollSubstringTo(This,startIndex,endIndex,scrollType) \
+ ( (This)->lpVtbl -> scrollSubstringTo(This,startIndex,endIndex,scrollType) )
+
+#define IAccessibleText2_scrollSubstringToPoint(This,startIndex,endIndex,coordinateType,x,y) \
+ ( (This)->lpVtbl -> scrollSubstringToPoint(This,startIndex,endIndex,coordinateType,x,y) )
+
+#define IAccessibleText2_get_newText(This,newText) \
+ ( (This)->lpVtbl -> get_newText(This,newText) )
+
+#define IAccessibleText2_get_oldText(This,oldText) \
+ ( (This)->lpVtbl -> get_oldText(This,oldText) )
+
+
+#define IAccessibleText2_get_attributeRange(This,offset,filter,startOffset,endOffset,attributeValues) \
+ ( (This)->lpVtbl -> get_attributeRange(This,offset,filter,startOffset,endOffset,attributeValues) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleText2_INTERFACE_DEFINED__ */
+
+
+#ifndef __IAccessibleEditableText_INTERFACE_DEFINED__
+#define __IAccessibleEditableText_INTERFACE_DEFINED__
+
+/* interface IAccessibleEditableText */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleEditableText;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("A59AA09A-7011-4b65-939D-32B1FB5547E3")
+ IAccessibleEditableText : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE copyText(
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE deleteText(
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE insertText(
+ /* [in] */ long offset,
+ /* [in] */ BSTR *text) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE cutText(
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE pasteText(
+ /* [in] */ long offset) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE replaceText(
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset,
+ /* [in] */ BSTR *text) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE setAttributes(
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset,
+ /* [in] */ BSTR *attributes) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct IAccessibleEditableTextVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleEditableText * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ __RPC__deref_out void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleEditableText * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleEditableText * This);
+
+ HRESULT ( STDMETHODCALLTYPE *copyText )(
+ IAccessibleEditableText * This,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset);
+
+ HRESULT ( STDMETHODCALLTYPE *deleteText )(
+ IAccessibleEditableText * This,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset);
+
+ HRESULT ( STDMETHODCALLTYPE *insertText )(
+ IAccessibleEditableText * This,
+ /* [in] */ long offset,
+ /* [in] */ BSTR *text);
+
+ HRESULT ( STDMETHODCALLTYPE *cutText )(
+ IAccessibleEditableText * This,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset);
+
+ HRESULT ( STDMETHODCALLTYPE *pasteText )(
+ IAccessibleEditableText * This,
+ /* [in] */ long offset);
+
+ HRESULT ( STDMETHODCALLTYPE *replaceText )(
+ IAccessibleEditableText * This,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset,
+ /* [in] */ BSTR *text);
+
+ HRESULT ( STDMETHODCALLTYPE *setAttributes )(
+ IAccessibleEditableText * This,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset,
+ /* [in] */ BSTR *attributes);
+
+ END_INTERFACE
+ } IAccessibleEditableTextVtbl;
+
+ interface IAccessibleEditableText
+ {
+ CONST_VTBL struct IAccessibleEditableTextVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleEditableText_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleEditableText_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleEditableText_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleEditableText_copyText(This,startOffset,endOffset) \
+ ( (This)->lpVtbl -> copyText(This,startOffset,endOffset) )
+
+#define IAccessibleEditableText_deleteText(This,startOffset,endOffset) \
+ ( (This)->lpVtbl -> deleteText(This,startOffset,endOffset) )
+
+#define IAccessibleEditableText_insertText(This,offset,text) \
+ ( (This)->lpVtbl -> insertText(This,offset,text) )
+
+#define IAccessibleEditableText_cutText(This,startOffset,endOffset) \
+ ( (This)->lpVtbl -> cutText(This,startOffset,endOffset) )
+
+#define IAccessibleEditableText_pasteText(This,offset) \
+ ( (This)->lpVtbl -> pasteText(This,offset) )
+
+#define IAccessibleEditableText_replaceText(This,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> replaceText(This,startOffset,endOffset,text) )
+
+#define IAccessibleEditableText_setAttributes(This,startOffset,endOffset,attributes) \
+ ( (This)->lpVtbl -> setAttributes(This,startOffset,endOffset,attributes) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleEditableText_INTERFACE_DEFINED__ */
+
+
+#ifndef __IAccessibleHyperlink_INTERFACE_DEFINED__
+#define __IAccessibleHyperlink_INTERFACE_DEFINED__
+
+/* interface IAccessibleHyperlink */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleHyperlink;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("01C20F2B-3DD2-400f-949F-AD00BDAB1D41")
+ IAccessibleHyperlink : public IAccessibleAction
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_anchor(
+ /* [in] */ long index,
+ /* [retval][out] */ VARIANT *anchor) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_anchorTarget(
+ /* [in] */ long index,
+ /* [retval][out] */ VARIANT *anchorTarget) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_startIndex(
+ /* [retval][out] */ long *index) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_endIndex(
+ /* [retval][out] */ long *index) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_valid(
+ /* [retval][out] */ boolean *valid) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct IAccessibleHyperlinkVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleHyperlink * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ __RPC__deref_out void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleHyperlink * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleHyperlink * This);
+
+ HRESULT ( STDMETHODCALLTYPE *nActions )(
+ IAccessibleHyperlink * This,
+ /* [retval][out] */ long *nActions);
+
+ HRESULT ( STDMETHODCALLTYPE *doAction )(
+ IAccessibleHyperlink * This,
+ /* [in] */ long actionIndex);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_description )(
+ IAccessibleHyperlink * This,
+ /* [in] */ long actionIndex,
+ /* [retval][out] */ BSTR *description);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_keyBinding )(
+ IAccessibleHyperlink * This,
+ /* [in] */ long actionIndex,
+ /* [in] */ long nMaxBindings,
+ /* [length_is][length_is][size_is][size_is][out] */ BSTR **keyBindings,
+ /* [retval][out] */ long *nBindings);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_name )(
+ IAccessibleHyperlink * This,
+ /* [in] */ long actionIndex,
+ /* [retval][out] */ BSTR *name);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedName )(
+ IAccessibleHyperlink * This,
+ /* [in] */ long actionIndex,
+ /* [retval][out] */ BSTR *localizedName);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_anchor )(
+ IAccessibleHyperlink * This,
+ /* [in] */ long index,
+ /* [retval][out] */ VARIANT *anchor);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_anchorTarget )(
+ IAccessibleHyperlink * This,
+ /* [in] */ long index,
+ /* [retval][out] */ VARIANT *anchorTarget);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_startIndex )(
+ IAccessibleHyperlink * This,
+ /* [retval][out] */ long *index);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_endIndex )(
+ IAccessibleHyperlink * This,
+ /* [retval][out] */ long *index);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_valid )(
+ IAccessibleHyperlink * This,
+ /* [retval][out] */ boolean *valid);
+
+ END_INTERFACE
+ } IAccessibleHyperlinkVtbl;
+
+ interface IAccessibleHyperlink
+ {
+ CONST_VTBL struct IAccessibleHyperlinkVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleHyperlink_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleHyperlink_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleHyperlink_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleHyperlink_nActions(This,nActions) \
+ ( (This)->lpVtbl -> nActions(This,nActions) )
+
+#define IAccessibleHyperlink_doAction(This,actionIndex) \
+ ( (This)->lpVtbl -> doAction(This,actionIndex) )
+
+#define IAccessibleHyperlink_get_description(This,actionIndex,description) \
+ ( (This)->lpVtbl -> get_description(This,actionIndex,description) )
+
+#define IAccessibleHyperlink_get_keyBinding(This,actionIndex,nMaxBindings,keyBindings,nBindings) \
+ ( (This)->lpVtbl -> get_keyBinding(This,actionIndex,nMaxBindings,keyBindings,nBindings) )
+
+#define IAccessibleHyperlink_get_name(This,actionIndex,name) \
+ ( (This)->lpVtbl -> get_name(This,actionIndex,name) )
+
+#define IAccessibleHyperlink_get_localizedName(This,actionIndex,localizedName) \
+ ( (This)->lpVtbl -> get_localizedName(This,actionIndex,localizedName) )
+
+
+#define IAccessibleHyperlink_get_anchor(This,index,anchor) \
+ ( (This)->lpVtbl -> get_anchor(This,index,anchor) )
+
+#define IAccessibleHyperlink_get_anchorTarget(This,index,anchorTarget) \
+ ( (This)->lpVtbl -> get_anchorTarget(This,index,anchorTarget) )
+
+#define IAccessibleHyperlink_get_startIndex(This,index) \
+ ( (This)->lpVtbl -> get_startIndex(This,index) )
+
+#define IAccessibleHyperlink_get_endIndex(This,index) \
+ ( (This)->lpVtbl -> get_endIndex(This,index) )
+
+#define IAccessibleHyperlink_get_valid(This,valid) \
+ ( (This)->lpVtbl -> get_valid(This,valid) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleHyperlink_INTERFACE_DEFINED__ */
+
+
+#ifndef __IAccessibleHypertext_INTERFACE_DEFINED__
+#define __IAccessibleHypertext_INTERFACE_DEFINED__
+
+/* interface IAccessibleHypertext */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleHypertext;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("6B4F8BBF-F1F2-418a-B35E-A195BC4103B9")
+ IAccessibleHypertext : public IAccessibleText
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nHyperlinks(
+ /* [retval][out] */ long *hyperlinkCount) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_hyperlink(
+ /* [in] */ long index,
+ /* [retval][out] */ IAccessibleHyperlink **hyperlink) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_hyperlinkIndex(
+ /* [in] */ long charIndex,
+ /* [retval][out] */ long *hyperlinkIndex) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct IAccessibleHypertextVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleHypertext * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ __RPC__deref_out void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleHypertext * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleHypertext * This);
+
+ HRESULT ( STDMETHODCALLTYPE *addSelection )(
+ IAccessibleHypertext * This,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )(
+ IAccessibleHypertext * This,
+ /* [in] */ long offset,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *textAttributes);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_caretOffset )(
+ IAccessibleHypertext * This,
+ /* [retval][out] */ long *offset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_characterExtents )(
+ IAccessibleHypertext * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2CoordinateType coordType,
+ /* [out] */ long *x,
+ /* [out] */ long *y,
+ /* [out] */ long *width,
+ /* [retval][out] */ long *height);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelections )(
+ IAccessibleHypertext * This,
+ /* [retval][out] */ long *nSelections);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_offsetAtPoint )(
+ IAccessibleHypertext * This,
+ /* [in] */ long x,
+ /* [in] */ long y,
+ /* [in] */ enum IA2CoordinateType coordType,
+ /* [retval][out] */ long *offset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selection )(
+ IAccessibleHypertext * This,
+ /* [in] */ long selectionIndex,
+ /* [out] */ long *startOffset,
+ /* [retval][out] */ long *endOffset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_text )(
+ IAccessibleHypertext * This,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textBeforeOffset )(
+ IAccessibleHypertext * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAfterOffset )(
+ IAccessibleHypertext * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAtOffset )(
+ IAccessibleHypertext * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ HRESULT ( STDMETHODCALLTYPE *removeSelection )(
+ IAccessibleHypertext * This,
+ /* [in] */ long selectionIndex);
+
+ HRESULT ( STDMETHODCALLTYPE *setCaretOffset )(
+ IAccessibleHypertext * This,
+ /* [in] */ long offset);
+
+ HRESULT ( STDMETHODCALLTYPE *setSelection )(
+ IAccessibleHypertext * This,
+ /* [in] */ long selectionIndex,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nCharacters )(
+ IAccessibleHypertext * This,
+ /* [retval][out] */ long *nCharacters);
+
+ HRESULT ( STDMETHODCALLTYPE *scrollSubstringTo )(
+ IAccessibleHypertext * This,
+ /* [in] */ long startIndex,
+ /* [in] */ long endIndex,
+ /* [in] */ enum IA2ScrollType scrollType);
+
+ HRESULT ( STDMETHODCALLTYPE *scrollSubstringToPoint )(
+ IAccessibleHypertext * This,
+ /* [in] */ long startIndex,
+ /* [in] */ long endIndex,
+ /* [in] */ enum IA2CoordinateType coordinateType,
+ /* [in] */ long x,
+ /* [in] */ long y);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_newText )(
+ IAccessibleHypertext * This,
+ /* [retval][out] */ IA2TextSegment *newText);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_oldText )(
+ IAccessibleHypertext * This,
+ /* [retval][out] */ IA2TextSegment *oldText);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nHyperlinks )(
+ IAccessibleHypertext * This,
+ /* [retval][out] */ long *hyperlinkCount);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_hyperlink )(
+ IAccessibleHypertext * This,
+ /* [in] */ long index,
+ /* [retval][out] */ IAccessibleHyperlink **hyperlink);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_hyperlinkIndex )(
+ IAccessibleHypertext * This,
+ /* [in] */ long charIndex,
+ /* [retval][out] */ long *hyperlinkIndex);
+
+ END_INTERFACE
+ } IAccessibleHypertextVtbl;
+
+ interface IAccessibleHypertext
+ {
+ CONST_VTBL struct IAccessibleHypertextVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleHypertext_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleHypertext_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleHypertext_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleHypertext_addSelection(This,startOffset,endOffset) \
+ ( (This)->lpVtbl -> addSelection(This,startOffset,endOffset) )
+
+#define IAccessibleHypertext_get_attributes(This,offset,startOffset,endOffset,textAttributes) \
+ ( (This)->lpVtbl -> get_attributes(This,offset,startOffset,endOffset,textAttributes) )
+
+#define IAccessibleHypertext_get_caretOffset(This,offset) \
+ ( (This)->lpVtbl -> get_caretOffset(This,offset) )
+
+#define IAccessibleHypertext_get_characterExtents(This,offset,coordType,x,y,width,height) \
+ ( (This)->lpVtbl -> get_characterExtents(This,offset,coordType,x,y,width,height) )
+
+#define IAccessibleHypertext_get_nSelections(This,nSelections) \
+ ( (This)->lpVtbl -> get_nSelections(This,nSelections) )
+
+#define IAccessibleHypertext_get_offsetAtPoint(This,x,y,coordType,offset) \
+ ( (This)->lpVtbl -> get_offsetAtPoint(This,x,y,coordType,offset) )
+
+#define IAccessibleHypertext_get_selection(This,selectionIndex,startOffset,endOffset) \
+ ( (This)->lpVtbl -> get_selection(This,selectionIndex,startOffset,endOffset) )
+
+#define IAccessibleHypertext_get_text(This,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_text(This,startOffset,endOffset,text) )
+
+#define IAccessibleHypertext_get_textBeforeOffset(This,offset,boundaryType,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_textBeforeOffset(This,offset,boundaryType,startOffset,endOffset,text) )
+
+#define IAccessibleHypertext_get_textAfterOffset(This,offset,boundaryType,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_textAfterOffset(This,offset,boundaryType,startOffset,endOffset,text) )
+
+#define IAccessibleHypertext_get_textAtOffset(This,offset,boundaryType,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_textAtOffset(This,offset,boundaryType,startOffset,endOffset,text) )
+
+#define IAccessibleHypertext_removeSelection(This,selectionIndex) \
+ ( (This)->lpVtbl -> removeSelection(This,selectionIndex) )
+
+#define IAccessibleHypertext_setCaretOffset(This,offset) \
+ ( (This)->lpVtbl -> setCaretOffset(This,offset) )
+
+#define IAccessibleHypertext_setSelection(This,selectionIndex,startOffset,endOffset) \
+ ( (This)->lpVtbl -> setSelection(This,selectionIndex,startOffset,endOffset) )
+
+#define IAccessibleHypertext_get_nCharacters(This,nCharacters) \
+ ( (This)->lpVtbl -> get_nCharacters(This,nCharacters) )
+
+#define IAccessibleHypertext_scrollSubstringTo(This,startIndex,endIndex,scrollType) \
+ ( (This)->lpVtbl -> scrollSubstringTo(This,startIndex,endIndex,scrollType) )
+
+#define IAccessibleHypertext_scrollSubstringToPoint(This,startIndex,endIndex,coordinateType,x,y) \
+ ( (This)->lpVtbl -> scrollSubstringToPoint(This,startIndex,endIndex,coordinateType,x,y) )
+
+#define IAccessibleHypertext_get_newText(This,newText) \
+ ( (This)->lpVtbl -> get_newText(This,newText) )
+
+#define IAccessibleHypertext_get_oldText(This,oldText) \
+ ( (This)->lpVtbl -> get_oldText(This,oldText) )
+
+
+#define IAccessibleHypertext_get_nHyperlinks(This,hyperlinkCount) \
+ ( (This)->lpVtbl -> get_nHyperlinks(This,hyperlinkCount) )
+
+#define IAccessibleHypertext_get_hyperlink(This,index,hyperlink) \
+ ( (This)->lpVtbl -> get_hyperlink(This,index,hyperlink) )
+
+#define IAccessibleHypertext_get_hyperlinkIndex(This,charIndex,hyperlinkIndex) \
+ ( (This)->lpVtbl -> get_hyperlinkIndex(This,charIndex,hyperlinkIndex) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleHypertext_INTERFACE_DEFINED__ */
+
+
+#ifndef __IAccessibleHypertext2_INTERFACE_DEFINED__
+#define __IAccessibleHypertext2_INTERFACE_DEFINED__
+
+/* interface IAccessibleHypertext2 */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleHypertext2;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("CF64D89F-8287-4B44-8501-A827453A6077")
+ IAccessibleHypertext2 : public IAccessibleHypertext
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_hyperlinks(
+ /* [size_is][size_is][out] */ IAccessibleHyperlink ***hyperlinks,
+ /* [retval][out] */ long *nHyperlinks) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct IAccessibleHypertext2Vtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleHypertext2 * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ __RPC__deref_out void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleHypertext2 * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleHypertext2 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *addSelection )(
+ IAccessibleHypertext2 * This,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )(
+ IAccessibleHypertext2 * This,
+ /* [in] */ long offset,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *textAttributes);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_caretOffset )(
+ IAccessibleHypertext2 * This,
+ /* [retval][out] */ long *offset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_characterExtents )(
+ IAccessibleHypertext2 * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2CoordinateType coordType,
+ /* [out] */ long *x,
+ /* [out] */ long *y,
+ /* [out] */ long *width,
+ /* [retval][out] */ long *height);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelections )(
+ IAccessibleHypertext2 * This,
+ /* [retval][out] */ long *nSelections);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_offsetAtPoint )(
+ IAccessibleHypertext2 * This,
+ /* [in] */ long x,
+ /* [in] */ long y,
+ /* [in] */ enum IA2CoordinateType coordType,
+ /* [retval][out] */ long *offset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selection )(
+ IAccessibleHypertext2 * This,
+ /* [in] */ long selectionIndex,
+ /* [out] */ long *startOffset,
+ /* [retval][out] */ long *endOffset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_text )(
+ IAccessibleHypertext2 * This,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textBeforeOffset )(
+ IAccessibleHypertext2 * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAfterOffset )(
+ IAccessibleHypertext2 * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAtOffset )(
+ IAccessibleHypertext2 * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ HRESULT ( STDMETHODCALLTYPE *removeSelection )(
+ IAccessibleHypertext2 * This,
+ /* [in] */ long selectionIndex);
+
+ HRESULT ( STDMETHODCALLTYPE *setCaretOffset )(
+ IAccessibleHypertext2 * This,
+ /* [in] */ long offset);
+
+ HRESULT ( STDMETHODCALLTYPE *setSelection )(
+ IAccessibleHypertext2 * This,
+ /* [in] */ long selectionIndex,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nCharacters )(
+ IAccessibleHypertext2 * This,
+ /* [retval][out] */ long *nCharacters);
+
+ HRESULT ( STDMETHODCALLTYPE *scrollSubstringTo )(
+ IAccessibleHypertext2 * This,
+ /* [in] */ long startIndex,
+ /* [in] */ long endIndex,
+ /* [in] */ enum IA2ScrollType scrollType);
+
+ HRESULT ( STDMETHODCALLTYPE *scrollSubstringToPoint )(
+ IAccessibleHypertext2 * This,
+ /* [in] */ long startIndex,
+ /* [in] */ long endIndex,
+ /* [in] */ enum IA2CoordinateType coordinateType,
+ /* [in] */ long x,
+ /* [in] */ long y);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_newText )(
+ IAccessibleHypertext2 * This,
+ /* [retval][out] */ IA2TextSegment *newText);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_oldText )(
+ IAccessibleHypertext2 * This,
+ /* [retval][out] */ IA2TextSegment *oldText);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nHyperlinks )(
+ IAccessibleHypertext2 * This,
+ /* [retval][out] */ long *hyperlinkCount);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_hyperlink )(
+ IAccessibleHypertext2 * This,
+ /* [in] */ long index,
+ /* [retval][out] */ IAccessibleHyperlink **hyperlink);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_hyperlinkIndex )(
+ IAccessibleHypertext2 * This,
+ /* [in] */ long charIndex,
+ /* [retval][out] */ long *hyperlinkIndex);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_hyperlinks )(
+ IAccessibleHypertext2 * This,
+ /* [size_is][size_is][out] */ IAccessibleHyperlink ***hyperlinks,
+ /* [retval][out] */ long *nHyperlinks);
+
+ END_INTERFACE
+ } IAccessibleHypertext2Vtbl;
+
+ interface IAccessibleHypertext2
+ {
+ CONST_VTBL struct IAccessibleHypertext2Vtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleHypertext2_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleHypertext2_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleHypertext2_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleHypertext2_addSelection(This,startOffset,endOffset) \
+ ( (This)->lpVtbl -> addSelection(This,startOffset,endOffset) )
+
+#define IAccessibleHypertext2_get_attributes(This,offset,startOffset,endOffset,textAttributes) \
+ ( (This)->lpVtbl -> get_attributes(This,offset,startOffset,endOffset,textAttributes) )
+
+#define IAccessibleHypertext2_get_caretOffset(This,offset) \
+ ( (This)->lpVtbl -> get_caretOffset(This,offset) )
+
+#define IAccessibleHypertext2_get_characterExtents(This,offset,coordType,x,y,width,height) \
+ ( (This)->lpVtbl -> get_characterExtents(This,offset,coordType,x,y,width,height) )
+
+#define IAccessibleHypertext2_get_nSelections(This,nSelections) \
+ ( (This)->lpVtbl -> get_nSelections(This,nSelections) )
+
+#define IAccessibleHypertext2_get_offsetAtPoint(This,x,y,coordType,offset) \
+ ( (This)->lpVtbl -> get_offsetAtPoint(This,x,y,coordType,offset) )
+
+#define IAccessibleHypertext2_get_selection(This,selectionIndex,startOffset,endOffset) \
+ ( (This)->lpVtbl -> get_selection(This,selectionIndex,startOffset,endOffset) )
+
+#define IAccessibleHypertext2_get_text(This,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_text(This,startOffset,endOffset,text) )
+
+#define IAccessibleHypertext2_get_textBeforeOffset(This,offset,boundaryType,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_textBeforeOffset(This,offset,boundaryType,startOffset,endOffset,text) )
+
+#define IAccessibleHypertext2_get_textAfterOffset(This,offset,boundaryType,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_textAfterOffset(This,offset,boundaryType,startOffset,endOffset,text) )
+
+#define IAccessibleHypertext2_get_textAtOffset(This,offset,boundaryType,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_textAtOffset(This,offset,boundaryType,startOffset,endOffset,text) )
+
+#define IAccessibleHypertext2_removeSelection(This,selectionIndex) \
+ ( (This)->lpVtbl -> removeSelection(This,selectionIndex) )
+
+#define IAccessibleHypertext2_setCaretOffset(This,offset) \
+ ( (This)->lpVtbl -> setCaretOffset(This,offset) )
+
+#define IAccessibleHypertext2_setSelection(This,selectionIndex,startOffset,endOffset) \
+ ( (This)->lpVtbl -> setSelection(This,selectionIndex,startOffset,endOffset) )
+
+#define IAccessibleHypertext2_get_nCharacters(This,nCharacters) \
+ ( (This)->lpVtbl -> get_nCharacters(This,nCharacters) )
+
+#define IAccessibleHypertext2_scrollSubstringTo(This,startIndex,endIndex,scrollType) \
+ ( (This)->lpVtbl -> scrollSubstringTo(This,startIndex,endIndex,scrollType) )
+
+#define IAccessibleHypertext2_scrollSubstringToPoint(This,startIndex,endIndex,coordinateType,x,y) \
+ ( (This)->lpVtbl -> scrollSubstringToPoint(This,startIndex,endIndex,coordinateType,x,y) )
+
+#define IAccessibleHypertext2_get_newText(This,newText) \
+ ( (This)->lpVtbl -> get_newText(This,newText) )
+
+#define IAccessibleHypertext2_get_oldText(This,oldText) \
+ ( (This)->lpVtbl -> get_oldText(This,oldText) )
+
+
+#define IAccessibleHypertext2_get_nHyperlinks(This,hyperlinkCount) \
+ ( (This)->lpVtbl -> get_nHyperlinks(This,hyperlinkCount) )
+
+#define IAccessibleHypertext2_get_hyperlink(This,index,hyperlink) \
+ ( (This)->lpVtbl -> get_hyperlink(This,index,hyperlink) )
+
+#define IAccessibleHypertext2_get_hyperlinkIndex(This,charIndex,hyperlinkIndex) \
+ ( (This)->lpVtbl -> get_hyperlinkIndex(This,charIndex,hyperlinkIndex) )
+
+
+#define IAccessibleHypertext2_get_hyperlinks(This,hyperlinks,nHyperlinks) \
+ ( (This)->lpVtbl -> get_hyperlinks(This,hyperlinks,nHyperlinks) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleHypertext2_INTERFACE_DEFINED__ */
+
+
+#ifndef __IAccessibleTable_INTERFACE_DEFINED__
+#define __IAccessibleTable_INTERFACE_DEFINED__
+
+/* interface IAccessibleTable */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleTable;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("35AD8070-C20C-4fb4-B094-F4F7275DD469")
+ IAccessibleTable : public IUnknown
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_accessibleAt(
+ /* [in] */ long row,
+ /* [in] */ long column,
+ /* [retval][out] */ IUnknown **accessible) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_caption(
+ /* [retval][out] */ IUnknown **accessible) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_childIndex(
+ /* [in] */ long rowIndex,
+ /* [in] */ long columnIndex,
+ /* [retval][out] */ long *cellIndex) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnDescription(
+ /* [in] */ long column,
+ /* [retval][out] */ BSTR *description) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnExtentAt(
+ /* [in] */ long row,
+ /* [in] */ long column,
+ /* [retval][out] */ long *nColumnsSpanned) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnHeader(
+ /* [out] */ IAccessibleTable **accessibleTable,
+ /* [retval][out] */ long *startingRowIndex) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnIndex(
+ /* [in] */ long cellIndex,
+ /* [retval][out] */ long *columnIndex) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nColumns(
+ /* [retval][out] */ long *columnCount) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nRows(
+ /* [retval][out] */ long *rowCount) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nSelectedChildren(
+ /* [retval][out] */ long *cellCount) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nSelectedColumns(
+ /* [retval][out] */ long *columnCount) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nSelectedRows(
+ /* [retval][out] */ long *rowCount) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowDescription(
+ /* [in] */ long row,
+ /* [retval][out] */ BSTR *description) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowExtentAt(
+ /* [in] */ long row,
+ /* [in] */ long column,
+ /* [retval][out] */ long *nRowsSpanned) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowHeader(
+ /* [out] */ IAccessibleTable **accessibleTable,
+ /* [retval][out] */ long *startingColumnIndex) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowIndex(
+ /* [in] */ long cellIndex,
+ /* [retval][out] */ long *rowIndex) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selectedChildren(
+ /* [in] */ long maxChildren,
+ /* [length_is][length_is][size_is][size_is][out] */ long **children,
+ /* [retval][out] */ long *nChildren) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selectedColumns(
+ /* [in] */ long maxColumns,
+ /* [length_is][length_is][size_is][size_is][out] */ long **columns,
+ /* [retval][out] */ long *nColumns) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selectedRows(
+ /* [in] */ long maxRows,
+ /* [length_is][length_is][size_is][size_is][out] */ long **rows,
+ /* [retval][out] */ long *nRows) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_summary(
+ /* [retval][out] */ IUnknown **accessible) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_isColumnSelected(
+ /* [in] */ long column,
+ /* [retval][out] */ boolean *isSelected) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_isRowSelected(
+ /* [in] */ long row,
+ /* [retval][out] */ boolean *isSelected) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_isSelected(
+ /* [in] */ long row,
+ /* [in] */ long column,
+ /* [retval][out] */ boolean *isSelected) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE selectRow(
+ /* [in] */ long row) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE selectColumn(
+ /* [in] */ long column) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE unselectRow(
+ /* [in] */ long row) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE unselectColumn(
+ /* [in] */ long column) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowColumnExtentsAtIndex(
+ /* [in] */ long index,
+ /* [out] */ long *row,
+ /* [out] */ long *column,
+ /* [out] */ long *rowExtents,
+ /* [out] */ long *columnExtents,
+ /* [retval][out] */ boolean *isSelected) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_modelChange(
+ /* [retval][out] */ IA2TableModelChange *modelChange) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct IAccessibleTableVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleTable * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ __RPC__deref_out void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleTable * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleTable * This);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_accessibleAt )(
+ IAccessibleTable * This,
+ /* [in] */ long row,
+ /* [in] */ long column,
+ /* [retval][out] */ IUnknown **accessible);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_caption )(
+ IAccessibleTable * This,
+ /* [retval][out] */ IUnknown **accessible);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_childIndex )(
+ IAccessibleTable * This,
+ /* [in] */ long rowIndex,
+ /* [in] */ long columnIndex,
+ /* [retval][out] */ long *cellIndex);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnDescription )(
+ IAccessibleTable * This,
+ /* [in] */ long column,
+ /* [retval][out] */ BSTR *description);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnExtentAt )(
+ IAccessibleTable * This,
+ /* [in] */ long row,
+ /* [in] */ long column,
+ /* [retval][out] */ long *nColumnsSpanned);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnHeader )(
+ IAccessibleTable * This,
+ /* [out] */ IAccessibleTable **accessibleTable,
+ /* [retval][out] */ long *startingRowIndex);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnIndex )(
+ IAccessibleTable * This,
+ /* [in] */ long cellIndex,
+ /* [retval][out] */ long *columnIndex);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nColumns )(
+ IAccessibleTable * This,
+ /* [retval][out] */ long *columnCount);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nRows )(
+ IAccessibleTable * This,
+ /* [retval][out] */ long *rowCount);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelectedChildren )(
+ IAccessibleTable * This,
+ /* [retval][out] */ long *cellCount);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelectedColumns )(
+ IAccessibleTable * This,
+ /* [retval][out] */ long *columnCount);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelectedRows )(
+ IAccessibleTable * This,
+ /* [retval][out] */ long *rowCount);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowDescription )(
+ IAccessibleTable * This,
+ /* [in] */ long row,
+ /* [retval][out] */ BSTR *description);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowExtentAt )(
+ IAccessibleTable * This,
+ /* [in] */ long row,
+ /* [in] */ long column,
+ /* [retval][out] */ long *nRowsSpanned);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowHeader )(
+ IAccessibleTable * This,
+ /* [out] */ IAccessibleTable **accessibleTable,
+ /* [retval][out] */ long *startingColumnIndex);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowIndex )(
+ IAccessibleTable * This,
+ /* [in] */ long cellIndex,
+ /* [retval][out] */ long *rowIndex);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectedChildren )(
+ IAccessibleTable * This,
+ /* [in] */ long maxChildren,
+ /* [length_is][length_is][size_is][size_is][out] */ long **children,
+ /* [retval][out] */ long *nChildren);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectedColumns )(
+ IAccessibleTable * This,
+ /* [in] */ long maxColumns,
+ /* [length_is][length_is][size_is][size_is][out] */ long **columns,
+ /* [retval][out] */ long *nColumns);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectedRows )(
+ IAccessibleTable * This,
+ /* [in] */ long maxRows,
+ /* [length_is][length_is][size_is][size_is][out] */ long **rows,
+ /* [retval][out] */ long *nRows);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_summary )(
+ IAccessibleTable * This,
+ /* [retval][out] */ IUnknown **accessible);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isColumnSelected )(
+ IAccessibleTable * This,
+ /* [in] */ long column,
+ /* [retval][out] */ boolean *isSelected);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isRowSelected )(
+ IAccessibleTable * This,
+ /* [in] */ long row,
+ /* [retval][out] */ boolean *isSelected);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isSelected )(
+ IAccessibleTable * This,
+ /* [in] */ long row,
+ /* [in] */ long column,
+ /* [retval][out] */ boolean *isSelected);
+
+ HRESULT ( STDMETHODCALLTYPE *selectRow )(
+ IAccessibleTable * This,
+ /* [in] */ long row);
+
+ HRESULT ( STDMETHODCALLTYPE *selectColumn )(
+ IAccessibleTable * This,
+ /* [in] */ long column);
+
+ HRESULT ( STDMETHODCALLTYPE *unselectRow )(
+ IAccessibleTable * This,
+ /* [in] */ long row);
+
+ HRESULT ( STDMETHODCALLTYPE *unselectColumn )(
+ IAccessibleTable * This,
+ /* [in] */ long column);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowColumnExtentsAtIndex )(
+ IAccessibleTable * This,
+ /* [in] */ long index,
+ /* [out] */ long *row,
+ /* [out] */ long *column,
+ /* [out] */ long *rowExtents,
+ /* [out] */ long *columnExtents,
+ /* [retval][out] */ boolean *isSelected);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_modelChange )(
+ IAccessibleTable * This,
+ /* [retval][out] */ IA2TableModelChange *modelChange);
+
+ END_INTERFACE
+ } IAccessibleTableVtbl;
+
+ interface IAccessibleTable
+ {
+ CONST_VTBL struct IAccessibleTableVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleTable_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleTable_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleTable_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleTable_get_accessibleAt(This,row,column,accessible) \
+ ( (This)->lpVtbl -> get_accessibleAt(This,row,column,accessible) )
+
+#define IAccessibleTable_get_caption(This,accessible) \
+ ( (This)->lpVtbl -> get_caption(This,accessible) )
+
+#define IAccessibleTable_get_childIndex(This,rowIndex,columnIndex,cellIndex) \
+ ( (This)->lpVtbl -> get_childIndex(This,rowIndex,columnIndex,cellIndex) )
+
+#define IAccessibleTable_get_columnDescription(This,column,description) \
+ ( (This)->lpVtbl -> get_columnDescription(This,column,description) )
+
+#define IAccessibleTable_get_columnExtentAt(This,row,column,nColumnsSpanned) \
+ ( (This)->lpVtbl -> get_columnExtentAt(This,row,column,nColumnsSpanned) )
+
+#define IAccessibleTable_get_columnHeader(This,accessibleTable,startingRowIndex) \
+ ( (This)->lpVtbl -> get_columnHeader(This,accessibleTable,startingRowIndex) )
+
+#define IAccessibleTable_get_columnIndex(This,cellIndex,columnIndex) \
+ ( (This)->lpVtbl -> get_columnIndex(This,cellIndex,columnIndex) )
+
+#define IAccessibleTable_get_nColumns(This,columnCount) \
+ ( (This)->lpVtbl -> get_nColumns(This,columnCount) )
+
+#define IAccessibleTable_get_nRows(This,rowCount) \
+ ( (This)->lpVtbl -> get_nRows(This,rowCount) )
+
+#define IAccessibleTable_get_nSelectedChildren(This,cellCount) \
+ ( (This)->lpVtbl -> get_nSelectedChildren(This,cellCount) )
+
+#define IAccessibleTable_get_nSelectedColumns(This,columnCount) \
+ ( (This)->lpVtbl -> get_nSelectedColumns(This,columnCount) )
+
+#define IAccessibleTable_get_nSelectedRows(This,rowCount) \
+ ( (This)->lpVtbl -> get_nSelectedRows(This,rowCount) )
+
+#define IAccessibleTable_get_rowDescription(This,row,description) \
+ ( (This)->lpVtbl -> get_rowDescription(This,row,description) )
+
+#define IAccessibleTable_get_rowExtentAt(This,row,column,nRowsSpanned) \
+ ( (This)->lpVtbl -> get_rowExtentAt(This,row,column,nRowsSpanned) )
+
+#define IAccessibleTable_get_rowHeader(This,accessibleTable,startingColumnIndex) \
+ ( (This)->lpVtbl -> get_rowHeader(This,accessibleTable,startingColumnIndex) )
+
+#define IAccessibleTable_get_rowIndex(This,cellIndex,rowIndex) \
+ ( (This)->lpVtbl -> get_rowIndex(This,cellIndex,rowIndex) )
+
+#define IAccessibleTable_get_selectedChildren(This,maxChildren,children,nChildren) \
+ ( (This)->lpVtbl -> get_selectedChildren(This,maxChildren,children,nChildren) )
+
+#define IAccessibleTable_get_selectedColumns(This,maxColumns,columns,nColumns) \
+ ( (This)->lpVtbl -> get_selectedColumns(This,maxColumns,columns,nColumns) )
+
+#define IAccessibleTable_get_selectedRows(This,maxRows,rows,nRows) \
+ ( (This)->lpVtbl -> get_selectedRows(This,maxRows,rows,nRows) )
+
+#define IAccessibleTable_get_summary(This,accessible) \
+ ( (This)->lpVtbl -> get_summary(This,accessible) )
+
+#define IAccessibleTable_get_isColumnSelected(This,column,isSelected) \
+ ( (This)->lpVtbl -> get_isColumnSelected(This,column,isSelected) )
+
+#define IAccessibleTable_get_isRowSelected(This,row,isSelected) \
+ ( (This)->lpVtbl -> get_isRowSelected(This,row,isSelected) )
+
+#define IAccessibleTable_get_isSelected(This,row,column,isSelected) \
+ ( (This)->lpVtbl -> get_isSelected(This,row,column,isSelected) )
+
+#define IAccessibleTable_selectRow(This,row) \
+ ( (This)->lpVtbl -> selectRow(This,row) )
+
+#define IAccessibleTable_selectColumn(This,column) \
+ ( (This)->lpVtbl -> selectColumn(This,column) )
+
+#define IAccessibleTable_unselectRow(This,row) \
+ ( (This)->lpVtbl -> unselectRow(This,row) )
+
+#define IAccessibleTable_unselectColumn(This,column) \
+ ( (This)->lpVtbl -> unselectColumn(This,column) )
+
+#define IAccessibleTable_get_rowColumnExtentsAtIndex(This,index,row,column,rowExtents,columnExtents,isSelected) \
+ ( (This)->lpVtbl -> get_rowColumnExtentsAtIndex(This,index,row,column,rowExtents,columnExtents,isSelected) )
+
+#define IAccessibleTable_get_modelChange(This,modelChange) \
+ ( (This)->lpVtbl -> get_modelChange(This,modelChange) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleTable_INTERFACE_DEFINED__ */
+
+
+#ifndef __IAccessibleTable2_INTERFACE_DEFINED__
+#define __IAccessibleTable2_INTERFACE_DEFINED__
+
+/* interface IAccessibleTable2 */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleTable2;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("6167f295-06f0-4cdd-a1fa-02e25153d869")
+ IAccessibleTable2 : public IUnknown
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_cellAt(
+ /* [in] */ long row,
+ /* [in] */ long column,
+ /* [retval][out] */ IUnknown **cell) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_caption(
+ /* [retval][out] */ IUnknown **accessible) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnDescription(
+ /* [in] */ long column,
+ /* [retval][out] */ BSTR *description) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nColumns(
+ /* [retval][out] */ long *columnCount) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nRows(
+ /* [retval][out] */ long *rowCount) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nSelectedCells(
+ /* [retval][out] */ long *cellCount) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nSelectedColumns(
+ /* [retval][out] */ long *columnCount) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nSelectedRows(
+ /* [retval][out] */ long *rowCount) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowDescription(
+ /* [in] */ long row,
+ /* [retval][out] */ BSTR *description) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selectedCells(
+ /* [size_is][size_is][out] */ IUnknown ***cells,
+ /* [retval][out] */ long *nSelectedCells) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selectedColumns(
+ /* [size_is][size_is][out] */ long **selectedColumns,
+ /* [retval][out] */ long *nColumns) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selectedRows(
+ /* [size_is][size_is][out] */ long **selectedRows,
+ /* [retval][out] */ long *nRows) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_summary(
+ /* [retval][out] */ IUnknown **accessible) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_isColumnSelected(
+ /* [in] */ long column,
+ /* [retval][out] */ boolean *isSelected) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_isRowSelected(
+ /* [in] */ long row,
+ /* [retval][out] */ boolean *isSelected) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE selectRow(
+ /* [in] */ long row) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE selectColumn(
+ /* [in] */ long column) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE unselectRow(
+ /* [in] */ long row) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE unselectColumn(
+ /* [in] */ long column) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_modelChange(
+ /* [retval][out] */ IA2TableModelChange *modelChange) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct IAccessibleTable2Vtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleTable2 * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ __RPC__deref_out void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleTable2 * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleTable2 * This);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_cellAt )(
+ IAccessibleTable2 * This,
+ /* [in] */ long row,
+ /* [in] */ long column,
+ /* [retval][out] */ IUnknown **cell);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_caption )(
+ IAccessibleTable2 * This,
+ /* [retval][out] */ IUnknown **accessible);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnDescription )(
+ IAccessibleTable2 * This,
+ /* [in] */ long column,
+ /* [retval][out] */ BSTR *description);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nColumns )(
+ IAccessibleTable2 * This,
+ /* [retval][out] */ long *columnCount);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nRows )(
+ IAccessibleTable2 * This,
+ /* [retval][out] */ long *rowCount);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelectedCells )(
+ IAccessibleTable2 * This,
+ /* [retval][out] */ long *cellCount);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelectedColumns )(
+ IAccessibleTable2 * This,
+ /* [retval][out] */ long *columnCount);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelectedRows )(
+ IAccessibleTable2 * This,
+ /* [retval][out] */ long *rowCount);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowDescription )(
+ IAccessibleTable2 * This,
+ /* [in] */ long row,
+ /* [retval][out] */ BSTR *description);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectedCells )(
+ IAccessibleTable2 * This,
+ /* [size_is][size_is][out] */ IUnknown ***cells,
+ /* [retval][out] */ long *nSelectedCells);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectedColumns )(
+ IAccessibleTable2 * This,
+ /* [size_is][size_is][out] */ long **selectedColumns,
+ /* [retval][out] */ long *nColumns);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectedRows )(
+ IAccessibleTable2 * This,
+ /* [size_is][size_is][out] */ long **selectedRows,
+ /* [retval][out] */ long *nRows);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_summary )(
+ IAccessibleTable2 * This,
+ /* [retval][out] */ IUnknown **accessible);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isColumnSelected )(
+ IAccessibleTable2 * This,
+ /* [in] */ long column,
+ /* [retval][out] */ boolean *isSelected);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isRowSelected )(
+ IAccessibleTable2 * This,
+ /* [in] */ long row,
+ /* [retval][out] */ boolean *isSelected);
+
+ HRESULT ( STDMETHODCALLTYPE *selectRow )(
+ IAccessibleTable2 * This,
+ /* [in] */ long row);
+
+ HRESULT ( STDMETHODCALLTYPE *selectColumn )(
+ IAccessibleTable2 * This,
+ /* [in] */ long column);
+
+ HRESULT ( STDMETHODCALLTYPE *unselectRow )(
+ IAccessibleTable2 * This,
+ /* [in] */ long row);
+
+ HRESULT ( STDMETHODCALLTYPE *unselectColumn )(
+ IAccessibleTable2 * This,
+ /* [in] */ long column);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_modelChange )(
+ IAccessibleTable2 * This,
+ /* [retval][out] */ IA2TableModelChange *modelChange);
+
+ END_INTERFACE
+ } IAccessibleTable2Vtbl;
+
+ interface IAccessibleTable2
+ {
+ CONST_VTBL struct IAccessibleTable2Vtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleTable2_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleTable2_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleTable2_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleTable2_get_cellAt(This,row,column,cell) \
+ ( (This)->lpVtbl -> get_cellAt(This,row,column,cell) )
+
+#define IAccessibleTable2_get_caption(This,accessible) \
+ ( (This)->lpVtbl -> get_caption(This,accessible) )
+
+#define IAccessibleTable2_get_columnDescription(This,column,description) \
+ ( (This)->lpVtbl -> get_columnDescription(This,column,description) )
+
+#define IAccessibleTable2_get_nColumns(This,columnCount) \
+ ( (This)->lpVtbl -> get_nColumns(This,columnCount) )
+
+#define IAccessibleTable2_get_nRows(This,rowCount) \
+ ( (This)->lpVtbl -> get_nRows(This,rowCount) )
+
+#define IAccessibleTable2_get_nSelectedCells(This,cellCount) \
+ ( (This)->lpVtbl -> get_nSelectedCells(This,cellCount) )
+
+#define IAccessibleTable2_get_nSelectedColumns(This,columnCount) \
+ ( (This)->lpVtbl -> get_nSelectedColumns(This,columnCount) )
+
+#define IAccessibleTable2_get_nSelectedRows(This,rowCount) \
+ ( (This)->lpVtbl -> get_nSelectedRows(This,rowCount) )
+
+#define IAccessibleTable2_get_rowDescription(This,row,description) \
+ ( (This)->lpVtbl -> get_rowDescription(This,row,description) )
+
+#define IAccessibleTable2_get_selectedCells(This,cells,nSelectedCells) \
+ ( (This)->lpVtbl -> get_selectedCells(This,cells,nSelectedCells) )
+
+#define IAccessibleTable2_get_selectedColumns(This,selectedColumns,nColumns) \
+ ( (This)->lpVtbl -> get_selectedColumns(This,selectedColumns,nColumns) )
+
+#define IAccessibleTable2_get_selectedRows(This,selectedRows,nRows) \
+ ( (This)->lpVtbl -> get_selectedRows(This,selectedRows,nRows) )
+
+#define IAccessibleTable2_get_summary(This,accessible) \
+ ( (This)->lpVtbl -> get_summary(This,accessible) )
+
+#define IAccessibleTable2_get_isColumnSelected(This,column,isSelected) \
+ ( (This)->lpVtbl -> get_isColumnSelected(This,column,isSelected) )
+
+#define IAccessibleTable2_get_isRowSelected(This,row,isSelected) \
+ ( (This)->lpVtbl -> get_isRowSelected(This,row,isSelected) )
+
+#define IAccessibleTable2_selectRow(This,row) \
+ ( (This)->lpVtbl -> selectRow(This,row) )
+
+#define IAccessibleTable2_selectColumn(This,column) \
+ ( (This)->lpVtbl -> selectColumn(This,column) )
+
+#define IAccessibleTable2_unselectRow(This,row) \
+ ( (This)->lpVtbl -> unselectRow(This,row) )
+
+#define IAccessibleTable2_unselectColumn(This,column) \
+ ( (This)->lpVtbl -> unselectColumn(This,column) )
+
+#define IAccessibleTable2_get_modelChange(This,modelChange) \
+ ( (This)->lpVtbl -> get_modelChange(This,modelChange) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleTable2_INTERFACE_DEFINED__ */
+
+
+#ifndef __IAccessibleTableCell_INTERFACE_DEFINED__
+#define __IAccessibleTableCell_INTERFACE_DEFINED__
+
+/* interface IAccessibleTableCell */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleTableCell;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("594116B1-C99F-4847-AD06-0A7A86ECE645")
+ IAccessibleTableCell : public IUnknown
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnExtent(
+ /* [retval][out] */ long *nColumnsSpanned) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnHeaderCells(
+ /* [size_is][size_is][out] */ IUnknown ***cellAccessibles,
+ /* [retval][out] */ long *nColumnHeaderCells) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnIndex(
+ /* [retval][out] */ long *columnIndex) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowExtent(
+ /* [retval][out] */ long *nRowsSpanned) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowHeaderCells(
+ /* [size_is][size_is][out] */ IUnknown ***cellAccessibles,
+ /* [retval][out] */ long *nRowHeaderCells) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowIndex(
+ /* [retval][out] */ long *rowIndex) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_isSelected(
+ /* [retval][out] */ boolean *isSelected) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowColumnExtents(
+ /* [out] */ long *row,
+ /* [out] */ long *column,
+ /* [out] */ long *rowExtents,
+ /* [out] */ long *columnExtents,
+ /* [retval][out] */ boolean *isSelected) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_table(
+ /* [retval][out] */ IUnknown **table) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct IAccessibleTableCellVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleTableCell * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ __RPC__deref_out void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleTableCell * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleTableCell * This);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnExtent )(
+ IAccessibleTableCell * This,
+ /* [retval][out] */ long *nColumnsSpanned);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnHeaderCells )(
+ IAccessibleTableCell * This,
+ /* [size_is][size_is][out] */ IUnknown ***cellAccessibles,
+ /* [retval][out] */ long *nColumnHeaderCells);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnIndex )(
+ IAccessibleTableCell * This,
+ /* [retval][out] */ long *columnIndex);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowExtent )(
+ IAccessibleTableCell * This,
+ /* [retval][out] */ long *nRowsSpanned);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowHeaderCells )(
+ IAccessibleTableCell * This,
+ /* [size_is][size_is][out] */ IUnknown ***cellAccessibles,
+ /* [retval][out] */ long *nRowHeaderCells);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowIndex )(
+ IAccessibleTableCell * This,
+ /* [retval][out] */ long *rowIndex);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isSelected )(
+ IAccessibleTableCell * This,
+ /* [retval][out] */ boolean *isSelected);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowColumnExtents )(
+ IAccessibleTableCell * This,
+ /* [out] */ long *row,
+ /* [out] */ long *column,
+ /* [out] */ long *rowExtents,
+ /* [out] */ long *columnExtents,
+ /* [retval][out] */ boolean *isSelected);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_table )(
+ IAccessibleTableCell * This,
+ /* [retval][out] */ IUnknown **table);
+
+ END_INTERFACE
+ } IAccessibleTableCellVtbl;
+
+ interface IAccessibleTableCell
+ {
+ CONST_VTBL struct IAccessibleTableCellVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleTableCell_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleTableCell_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleTableCell_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleTableCell_get_columnExtent(This,nColumnsSpanned) \
+ ( (This)->lpVtbl -> get_columnExtent(This,nColumnsSpanned) )
+
+#define IAccessibleTableCell_get_columnHeaderCells(This,cellAccessibles,nColumnHeaderCells) \
+ ( (This)->lpVtbl -> get_columnHeaderCells(This,cellAccessibles,nColumnHeaderCells) )
+
+#define IAccessibleTableCell_get_columnIndex(This,columnIndex) \
+ ( (This)->lpVtbl -> get_columnIndex(This,columnIndex) )
+
+#define IAccessibleTableCell_get_rowExtent(This,nRowsSpanned) \
+ ( (This)->lpVtbl -> get_rowExtent(This,nRowsSpanned) )
+
+#define IAccessibleTableCell_get_rowHeaderCells(This,cellAccessibles,nRowHeaderCells) \
+ ( (This)->lpVtbl -> get_rowHeaderCells(This,cellAccessibles,nRowHeaderCells) )
+
+#define IAccessibleTableCell_get_rowIndex(This,rowIndex) \
+ ( (This)->lpVtbl -> get_rowIndex(This,rowIndex) )
+
+#define IAccessibleTableCell_get_isSelected(This,isSelected) \
+ ( (This)->lpVtbl -> get_isSelected(This,isSelected) )
+
+#define IAccessibleTableCell_get_rowColumnExtents(This,row,column,rowExtents,columnExtents,isSelected) \
+ ( (This)->lpVtbl -> get_rowColumnExtents(This,row,column,rowExtents,columnExtents,isSelected) )
+
+#define IAccessibleTableCell_get_table(This,table) \
+ ( (This)->lpVtbl -> get_table(This,table) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleTableCell_INTERFACE_DEFINED__ */
+
+
+#ifndef __IAccessibleImage_INTERFACE_DEFINED__
+#define __IAccessibleImage_INTERFACE_DEFINED__
+
+/* interface IAccessibleImage */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleImage;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("FE5ABB3D-615E-4f7b-909F-5F0EDA9E8DDE")
+ IAccessibleImage : public IUnknown
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_description(
+ /* [retval][out] */ BSTR *description) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_imagePosition(
+ /* [in] */ enum IA2CoordinateType coordinateType,
+ /* [out] */ long *x,
+ /* [retval][out] */ long *y) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_imageSize(
+ /* [out] */ long *height,
+ /* [retval][out] */ long *width) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct IAccessibleImageVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleImage * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ __RPC__deref_out void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleImage * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleImage * This);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_description )(
+ IAccessibleImage * This,
+ /* [retval][out] */ BSTR *description);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_imagePosition )(
+ IAccessibleImage * This,
+ /* [in] */ enum IA2CoordinateType coordinateType,
+ /* [out] */ long *x,
+ /* [retval][out] */ long *y);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_imageSize )(
+ IAccessibleImage * This,
+ /* [out] */ long *height,
+ /* [retval][out] */ long *width);
+
+ END_INTERFACE
+ } IAccessibleImageVtbl;
+
+ interface IAccessibleImage
+ {
+ CONST_VTBL struct IAccessibleImageVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleImage_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleImage_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleImage_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleImage_get_description(This,description) \
+ ( (This)->lpVtbl -> get_description(This,description) )
+
+#define IAccessibleImage_get_imagePosition(This,coordinateType,x,y) \
+ ( (This)->lpVtbl -> get_imagePosition(This,coordinateType,x,y) )
+
+#define IAccessibleImage_get_imageSize(This,height,width) \
+ ( (This)->lpVtbl -> get_imageSize(This,height,width) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleImage_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_ia2_api_all_0000_0016 */
+/* [local] */
+
+
+enum IA2EventID
+ { IA2_EVENT_ACTION_CHANGED = 0x101,
+ IA2_EVENT_ACTIVE_DECENDENT_CHANGED = ( IA2_EVENT_ACTION_CHANGED + 1 ) ,
+ IA2_EVENT_ACTIVE_DESCENDANT_CHANGED = IA2_EVENT_ACTIVE_DECENDENT_CHANGED,
+ IA2_EVENT_DOCUMENT_ATTRIBUTE_CHANGED = ( IA2_EVENT_ACTIVE_DESCENDANT_CHANGED + 1 ) ,
+ IA2_EVENT_DOCUMENT_CONTENT_CHANGED = ( IA2_EVENT_DOCUMENT_ATTRIBUTE_CHANGED + 1 ) ,
+ IA2_EVENT_DOCUMENT_LOAD_COMPLETE = ( IA2_EVENT_DOCUMENT_CONTENT_CHANGED + 1 ) ,
+ IA2_EVENT_DOCUMENT_LOAD_STOPPED = ( IA2_EVENT_DOCUMENT_LOAD_COMPLETE + 1 ) ,
+ IA2_EVENT_DOCUMENT_RELOAD = ( IA2_EVENT_DOCUMENT_LOAD_STOPPED + 1 ) ,
+ IA2_EVENT_HYPERLINK_END_INDEX_CHANGED = ( IA2_EVENT_DOCUMENT_RELOAD + 1 ) ,
+ IA2_EVENT_HYPERLINK_NUMBER_OF_ANCHORS_CHANGED = ( IA2_EVENT_HYPERLINK_END_INDEX_CHANGED + 1 ) ,
+ IA2_EVENT_HYPERLINK_SELECTED_LINK_CHANGED = ( IA2_EVENT_HYPERLINK_NUMBER_OF_ANCHORS_CHANGED + 1 ) ,
+ IA2_EVENT_HYPERTEXT_LINK_ACTIVATED = ( IA2_EVENT_HYPERLINK_SELECTED_LINK_CHANGED + 1 ) ,
+ IA2_EVENT_HYPERTEXT_LINK_SELECTED = ( IA2_EVENT_HYPERTEXT_LINK_ACTIVATED + 1 ) ,
+ IA2_EVENT_HYPERLINK_START_INDEX_CHANGED = ( IA2_EVENT_HYPERTEXT_LINK_SELECTED + 1 ) ,
+ IA2_EVENT_HYPERTEXT_CHANGED = ( IA2_EVENT_HYPERLINK_START_INDEX_CHANGED + 1 ) ,
+ IA2_EVENT_HYPERTEXT_NLINKS_CHANGED = ( IA2_EVENT_HYPERTEXT_CHANGED + 1 ) ,
+ IA2_EVENT_OBJECT_ATTRIBUTE_CHANGED = ( IA2_EVENT_HYPERTEXT_NLINKS_CHANGED + 1 ) ,
+ IA2_EVENT_PAGE_CHANGED = ( IA2_EVENT_OBJECT_ATTRIBUTE_CHANGED + 1 ) ,
+ IA2_EVENT_SECTION_CHANGED = ( IA2_EVENT_PAGE_CHANGED + 1 ) ,
+ IA2_EVENT_TABLE_CAPTION_CHANGED = ( IA2_EVENT_SECTION_CHANGED + 1 ) ,
+ IA2_EVENT_TABLE_COLUMN_DESCRIPTION_CHANGED = ( IA2_EVENT_TABLE_CAPTION_CHANGED + 1 ) ,
+ IA2_EVENT_TABLE_COLUMN_HEADER_CHANGED = ( IA2_EVENT_TABLE_COLUMN_DESCRIPTION_CHANGED + 1 ) ,
+ IA2_EVENT_TABLE_MODEL_CHANGED = ( IA2_EVENT_TABLE_COLUMN_HEADER_CHANGED + 1 ) ,
+ IA2_EVENT_TABLE_ROW_DESCRIPTION_CHANGED = ( IA2_EVENT_TABLE_MODEL_CHANGED + 1 ) ,
+ IA2_EVENT_TABLE_ROW_HEADER_CHANGED = ( IA2_EVENT_TABLE_ROW_DESCRIPTION_CHANGED + 1 ) ,
+ IA2_EVENT_TABLE_SUMMARY_CHANGED = ( IA2_EVENT_TABLE_ROW_HEADER_CHANGED + 1 ) ,
+ IA2_EVENT_TEXT_ATTRIBUTE_CHANGED = ( IA2_EVENT_TABLE_SUMMARY_CHANGED + 1 ) ,
+ IA2_EVENT_TEXT_CARET_MOVED = ( IA2_EVENT_TEXT_ATTRIBUTE_CHANGED + 1 ) ,
+ IA2_EVENT_TEXT_CHANGED = ( IA2_EVENT_TEXT_CARET_MOVED + 1 ) ,
+ IA2_EVENT_TEXT_COLUMN_CHANGED = ( IA2_EVENT_TEXT_CHANGED + 1 ) ,
+ IA2_EVENT_TEXT_INSERTED = ( IA2_EVENT_TEXT_COLUMN_CHANGED + 1 ) ,
+ IA2_EVENT_TEXT_REMOVED = ( IA2_EVENT_TEXT_INSERTED + 1 ) ,
+ IA2_EVENT_TEXT_UPDATED = ( IA2_EVENT_TEXT_REMOVED + 1 ) ,
+ IA2_EVENT_TEXT_SELECTION_CHANGED = ( IA2_EVENT_TEXT_UPDATED + 1 ) ,
+ IA2_EVENT_VISIBLE_DATA_CHANGED = ( IA2_EVENT_TEXT_SELECTION_CHANGED + 1 )
+ } ;
+
+
+extern RPC_IF_HANDLE __MIDL_itf_ia2_api_all_0000_0016_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_ia2_api_all_0000_0016_v0_0_s_ifspec;
+
+#ifndef __IAccessibleApplication_INTERFACE_DEFINED__
+#define __IAccessibleApplication_INTERFACE_DEFINED__
+
+/* interface IAccessibleApplication */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleApplication;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("D49DED83-5B25-43F4-9B95-93B44595979E")
+ IAccessibleApplication : public IUnknown
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_appName(
+ /* [retval][out] */ BSTR *name) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_appVersion(
+ /* [retval][out] */ BSTR *version) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_toolkitName(
+ /* [retval][out] */ BSTR *name) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_toolkitVersion(
+ /* [retval][out] */ BSTR *version) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct IAccessibleApplicationVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleApplication * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ __RPC__deref_out void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleApplication * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleApplication * This);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_appName )(
+ IAccessibleApplication * This,
+ /* [retval][out] */ BSTR *name);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_appVersion )(
+ IAccessibleApplication * This,
+ /* [retval][out] */ BSTR *version);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_toolkitName )(
+ IAccessibleApplication * This,
+ /* [retval][out] */ BSTR *name);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_toolkitVersion )(
+ IAccessibleApplication * This,
+ /* [retval][out] */ BSTR *version);
+
+ END_INTERFACE
+ } IAccessibleApplicationVtbl;
+
+ interface IAccessibleApplication
+ {
+ CONST_VTBL struct IAccessibleApplicationVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleApplication_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleApplication_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleApplication_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleApplication_get_appName(This,name) \
+ ( (This)->lpVtbl -> get_appName(This,name) )
+
+#define IAccessibleApplication_get_appVersion(This,version) \
+ ( (This)->lpVtbl -> get_appVersion(This,version) )
+
+#define IAccessibleApplication_get_toolkitName(This,name) \
+ ( (This)->lpVtbl -> get_toolkitName(This,name) )
+
+#define IAccessibleApplication_get_toolkitVersion(This,version) \
+ ( (This)->lpVtbl -> get_toolkitVersion(This,version) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleApplication_INTERFACE_DEFINED__ */
+
+
+#ifndef __IAccessibleDocument_INTERFACE_DEFINED__
+#define __IAccessibleDocument_INTERFACE_DEFINED__
+
+/* interface IAccessibleDocument */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleDocument;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("C48C7FCF-4AB5-4056-AFA6-902D6E1D1149")
+ IAccessibleDocument : public IUnknown
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_anchorTarget(
+ /* [retval][out] */ IUnknown **accessible) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct IAccessibleDocumentVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleDocument * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ __RPC__deref_out void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleDocument * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleDocument * This);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_anchorTarget )(
+ IAccessibleDocument * This,
+ /* [retval][out] */ IUnknown **accessible);
+
+ END_INTERFACE
+ } IAccessibleDocumentVtbl;
+
+ interface IAccessibleDocument
+ {
+ CONST_VTBL struct IAccessibleDocumentVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleDocument_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleDocument_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleDocument_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleDocument_get_anchorTarget(This,accessible) \
+ ( (This)->lpVtbl -> get_anchorTarget(This,accessible) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleDocument_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_ia2_api_all_0000_0018 */
+/* [local] */
+
+
+// Type Library Definitions
+
+
+
+extern RPC_IF_HANDLE __MIDL_itf_ia2_api_all_0000_0018_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_ia2_api_all_0000_0018_v0_0_s_ifspec;
+
+
+#ifndef __IAccessible2Lib_LIBRARY_DEFINED__
+#define __IAccessible2Lib_LIBRARY_DEFINED__
+
+/* library IAccessible2Lib */
+/* [hidden][version][helpstring][uuid] */
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+EXTERN_C const IID LIBID_IAccessible2Lib;
+#endif /* __IAccessible2Lib_LIBRARY_DEFINED__ */
+
+/* Additional Prototypes for ALL interfaces */
+
+unsigned long __RPC_USER BSTR_UserSize( unsigned long *, unsigned long , BSTR * );
+unsigned char * __RPC_USER BSTR_UserMarshal( unsigned long *, unsigned char *, BSTR * );
+unsigned char * __RPC_USER BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * );
+void __RPC_USER BSTR_UserFree( unsigned long *, BSTR * );
+
+unsigned long __RPC_USER HWND_UserSize( unsigned long *, unsigned long , HWND * );
+unsigned char * __RPC_USER HWND_UserMarshal( unsigned long *, unsigned char *, HWND * );
+unsigned char * __RPC_USER HWND_UserUnmarshal(unsigned long *, unsigned char *, HWND * );
+void __RPC_USER HWND_UserFree( unsigned long *, HWND * );
+
+unsigned long __RPC_USER VARIANT_UserSize( unsigned long *, unsigned long , VARIANT * );
+unsigned char * __RPC_USER VARIANT_UserMarshal( unsigned long *, unsigned char *, VARIANT * );
+unsigned char * __RPC_USER VARIANT_UserUnmarshal(unsigned long *, unsigned char *, VARIANT * );
+void __RPC_USER VARIANT_UserFree( unsigned long *, VARIANT * );
+
+/* end of Additional Prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+
diff --git a/src/3rdparty/iaccessible2/generated/amd64/ia2_api_all.tlb b/src/3rdparty/iaccessible2/generated/amd64/ia2_api_all.tlb
new file mode 100644
index 0000000000..7d0b47e312
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/amd64/ia2_api_all.tlb
Binary files differ
diff --git a/src/3rdparty/iaccessible2/generated/amd64/ia2_api_all_i.c b/src/3rdparty/iaccessible2/generated/amd64/ia2_api_all_i.c
new file mode 100644
index 0000000000..e04a5dcb69
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/amd64/ia2_api_all_i.c
@@ -0,0 +1,133 @@
+
+
+/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
+
+/* link this file in with the server and any clients */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Mon Aug 11 14:34:44 2014
+ */
+/* Compiler settings for ia2_api_all.idl:
+ Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+#include <rpc.h>
+#include <rpcndr.h>
+
+#ifdef _MIDL_USE_GUIDDEF_
+
+#ifndef INITGUID
+#define INITGUID
+#include <guiddef.h>
+#undef INITGUID
+#else
+#include <guiddef.h>
+#endif
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
+
+#else // !_MIDL_USE_GUIDDEF_
+
+#ifndef __IID_DEFINED__
+#define __IID_DEFINED__
+
+typedef struct _IID
+{
+ unsigned long x;
+ unsigned short s1;
+ unsigned short s2;
+ unsigned char c[8];
+} IID;
+
+#endif // __IID_DEFINED__
+
+#ifndef CLSID_DEFINED
+#define CLSID_DEFINED
+typedef IID CLSID;
+#endif // CLSID_DEFINED
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
+
+#endif !_MIDL_USE_GUIDDEF_
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleRelation,0x7CDF86EE,0xC3DA,0x496a,0xBD,0xA4,0x28,0x1B,0x33,0x6E,0x1F,0xDC);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleAction,0xB70D9F59,0x3B5A,0x4dba,0xAB,0x9E,0x22,0x01,0x2F,0x60,0x7D,0xF5);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAccessible2,0xE89F726E,0xC4F4,0x4c19,0xBB,0x19,0xB6,0x47,0xD7,0xFA,0x84,0x78);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAccessible2_2,0x6C9430E9,0x299D,0x4E6F,0xBD,0x01,0xA8,0x2A,0x1E,0x88,0xD3,0xFF);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleComponent,0x1546D4B0,0x4C98,0x4bda,0x89,0xAE,0x9A,0x64,0x74,0x8B,0xDD,0xE4);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleValue,0x35855B5B,0xC566,0x4fd0,0xA7,0xB1,0xE6,0x54,0x65,0x60,0x03,0x94);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleText,0x24FD2FFB,0x3AAD,0x4a08,0x83,0x35,0xA3,0xAD,0x89,0xC0,0xFB,0x4B);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleText2,0x9690A9CC,0x5C80,0x4DF5,0x85,0x2E,0x2D,0x5A,0xE4,0x18,0x9A,0x54);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleEditableText,0xA59AA09A,0x7011,0x4b65,0x93,0x9D,0x32,0xB1,0xFB,0x55,0x47,0xE3);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleHyperlink,0x01C20F2B,0x3DD2,0x400f,0x94,0x9F,0xAD,0x00,0xBD,0xAB,0x1D,0x41);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleHypertext,0x6B4F8BBF,0xF1F2,0x418a,0xB3,0x5E,0xA1,0x95,0xBC,0x41,0x03,0xB9);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleHypertext2,0xCF64D89F,0x8287,0x4B44,0x85,0x01,0xA8,0x27,0x45,0x3A,0x60,0x77);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleTable,0x35AD8070,0xC20C,0x4fb4,0xB0,0x94,0xF4,0xF7,0x27,0x5D,0xD4,0x69);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleTable2,0x6167f295,0x06f0,0x4cdd,0xa1,0xfa,0x02,0xe2,0x51,0x53,0xd8,0x69);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleTableCell,0x594116B1,0xC99F,0x4847,0xAD,0x06,0x0A,0x7A,0x86,0xEC,0xE6,0x45);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleImage,0xFE5ABB3D,0x615E,0x4f7b,0x90,0x9F,0x5F,0x0E,0xDA,0x9E,0x8D,0xDE);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleApplication,0xD49DED83,0x5B25,0x43F4,0x9B,0x95,0x93,0xB4,0x45,0x95,0x97,0x9E);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleDocument,0xC48C7FCF,0x4AB5,0x4056,0xAF,0xA6,0x90,0x2D,0x6E,0x1D,0x11,0x49);
+
+
+MIDL_DEFINE_GUID(IID, LIBID_IAccessible2Lib,0xCE3F726E,0xD1D3,0x44FE,0xB9,0x95,0xFF,0x1D,0xB3,0xB4,0x8B,0x2B);
+
+#undef MIDL_DEFINE_GUID
+
+#ifdef __cplusplus
+}
+#endif
+
+
+
diff --git a/src/3rdparty/iaccessible2/generated/amd64/ia2_api_all_p.c b/src/3rdparty/iaccessible2/generated/amd64/ia2_api_all_p.c
new file mode 100644
index 0000000000..f869a631b2
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/amd64/ia2_api_all_p.c
@@ -0,0 +1,7867 @@
+
+
+/* this ALWAYS GENERATED file contains the proxy stub code */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Mon Aug 11 14:34:44 2014
+ */
+/* Compiler settings for ia2_api_all.idl:
+ Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#if defined(_M_AMD64)
+
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+#if _MSC_VER >= 1200
+#pragma warning(push)
+#endif
+
+#pragma warning( disable: 4211 ) /* redefine extern to static */
+#pragma warning( disable: 4232 ) /* dllimport identity*/
+#pragma warning( disable: 4024 ) /* array to pointer mapping*/
+#pragma warning( disable: 4152 ) /* function/data pointer conversion in expression */
+
+#define USE_STUBLESS_PROXY
+
+
+/* verify that the <rpcproxy.h> version is high enough to compile this file*/
+#ifndef __REDQ_RPCPROXY_H_VERSION__
+#define __REQUIRED_RPCPROXY_H_VERSION__ 475
+#endif
+
+
+#include "rpcproxy.h"
+#ifndef __RPCPROXY_H_VERSION__
+#error this stub requires an updated version of <rpcproxy.h>
+#endif /* __RPCPROXY_H_VERSION__ */
+
+
+#include "ia2_api_all.h"
+
+#define TYPE_FORMAT_STRING_SIZE 1467
+#define PROC_FORMAT_STRING_SIZE 5445
+#define EXPR_FORMAT_STRING_SIZE 1
+#define TRANSMIT_AS_TABLE_SIZE 0
+#define WIRE_MARSHAL_TABLE_SIZE 3
+
+typedef struct _ia2_api_all_MIDL_TYPE_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ TYPE_FORMAT_STRING_SIZE ];
+ } ia2_api_all_MIDL_TYPE_FORMAT_STRING;
+
+typedef struct _ia2_api_all_MIDL_PROC_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ PROC_FORMAT_STRING_SIZE ];
+ } ia2_api_all_MIDL_PROC_FORMAT_STRING;
+
+typedef struct _ia2_api_all_MIDL_EXPR_FORMAT_STRING
+ {
+ long Pad;
+ unsigned char Format[ EXPR_FORMAT_STRING_SIZE ];
+ } ia2_api_all_MIDL_EXPR_FORMAT_STRING;
+
+
+static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax =
+{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}};
+
+
+extern const ia2_api_all_MIDL_TYPE_FORMAT_STRING ia2_api_all__MIDL_TypeFormatString;
+extern const ia2_api_all_MIDL_PROC_FORMAT_STRING ia2_api_all__MIDL_ProcFormatString;
+extern const ia2_api_all_MIDL_EXPR_FORMAT_STRING ia2_api_all__MIDL_ExprFormatString;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleRelation_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleRelation_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleAction_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleAction_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessible2_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessible2_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessible2_2_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessible2_2_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleComponent_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleComponent_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleValue_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleValue_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleText_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleText_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleText2_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleText2_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleEditableText_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleEditableText_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleHyperlink_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleHyperlink_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleHypertext_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleHypertext_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleHypertext2_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleHypertext2_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleTable_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleTable_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleTable2_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleTable2_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleTableCell_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleTableCell_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleImage_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleImage_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleApplication_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleApplication_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleDocument_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleDocument_ProxyInfo;
+
+
+extern const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ];
+
+#if !defined(__RPC_WIN64__)
+#error Invalid build platform for this stub.
+#endif
+
+static const ia2_api_all_MIDL_PROC_FORMAT_STRING ia2_api_all__MIDL_ProcFormatString =
+ {
+ 0,
+ {
+
+ /* Procedure get_appName */
+
+
+ /* Procedure get_description */
+
+
+ /* Procedure get_relationType */
+
+ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2 */ NdrFcLong( 0x0 ), /* 0 */
+/* 6 */ NdrFcShort( 0x3 ), /* 3 */
+/* 8 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 10 */ NdrFcShort( 0x0 ), /* 0 */
+/* 12 */ NdrFcShort( 0x8 ), /* 8 */
+/* 14 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 16 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 18 */ NdrFcShort( 0x1 ), /* 1 */
+/* 20 */ NdrFcShort( 0x0 ), /* 0 */
+/* 22 */ NdrFcShort( 0x0 ), /* 0 */
+/* 24 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter name */
+
+
+ /* Parameter description */
+
+
+ /* Parameter relationType */
+
+/* 26 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 28 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 30 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 32 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 34 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 36 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_appVersion */
+
+
+ /* Procedure get_localizedRelationType */
+
+/* 38 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 40 */ NdrFcLong( 0x0 ), /* 0 */
+/* 44 */ NdrFcShort( 0x4 ), /* 4 */
+/* 46 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 48 */ NdrFcShort( 0x0 ), /* 0 */
+/* 50 */ NdrFcShort( 0x8 ), /* 8 */
+/* 52 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 54 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 56 */ NdrFcShort( 0x1 ), /* 1 */
+/* 58 */ NdrFcShort( 0x0 ), /* 0 */
+/* 60 */ NdrFcShort( 0x0 ), /* 0 */
+/* 62 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter version */
+
+
+ /* Parameter localizedRelationType */
+
+/* 64 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 66 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 68 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 70 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 72 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 74 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_columnIndex */
+
+
+ /* Procedure get_caretOffset */
+
+
+ /* Procedure get_background */
+
+
+ /* Procedure get_nTargets */
+
+/* 76 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 78 */ NdrFcLong( 0x0 ), /* 0 */
+/* 82 */ NdrFcShort( 0x5 ), /* 5 */
+/* 84 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 86 */ NdrFcShort( 0x0 ), /* 0 */
+/* 88 */ NdrFcShort( 0x24 ), /* 36 */
+/* 90 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 92 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 94 */ NdrFcShort( 0x0 ), /* 0 */
+/* 96 */ NdrFcShort( 0x0 ), /* 0 */
+/* 98 */ NdrFcShort( 0x0 ), /* 0 */
+/* 100 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter columnIndex */
+
+
+ /* Parameter offset */
+
+
+ /* Parameter background */
+
+
+ /* Parameter nTargets */
+
+/* 102 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 104 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 106 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 108 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 110 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 112 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_target */
+
+/* 114 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 116 */ NdrFcLong( 0x0 ), /* 0 */
+/* 120 */ NdrFcShort( 0x6 ), /* 6 */
+/* 122 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 124 */ NdrFcShort( 0x8 ), /* 8 */
+/* 126 */ NdrFcShort( 0x8 ), /* 8 */
+/* 128 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 130 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 132 */ NdrFcShort( 0x0 ), /* 0 */
+/* 134 */ NdrFcShort( 0x0 ), /* 0 */
+/* 136 */ NdrFcShort( 0x0 ), /* 0 */
+/* 138 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter targetIndex */
+
+/* 140 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 142 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 144 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter target */
+
+/* 146 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 148 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 150 */ NdrFcShort( 0x2e ), /* Type Offset=46 */
+
+ /* Return value */
+
+/* 152 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 154 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 156 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_targets */
+
+/* 158 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 160 */ NdrFcLong( 0x0 ), /* 0 */
+/* 164 */ NdrFcShort( 0x7 ), /* 7 */
+/* 166 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 168 */ NdrFcShort( 0x8 ), /* 8 */
+/* 170 */ NdrFcShort( 0x24 ), /* 36 */
+/* 172 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x4, /* 4 */
+/* 174 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 176 */ NdrFcShort( 0x1 ), /* 1 */
+/* 178 */ NdrFcShort( 0x0 ), /* 0 */
+/* 180 */ NdrFcShort( 0x0 ), /* 0 */
+/* 182 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter maxTargets */
+
+/* 184 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 186 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 188 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter targets */
+
+/* 190 */ NdrFcShort( 0x113 ), /* Flags: must size, must free, out, simple ref, */
+/* 192 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 194 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Parameter nTargets */
+
+/* 196 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 198 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 200 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 202 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 204 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 206 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_columnExtent */
+
+
+ /* Procedure nActions */
+
+/* 208 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 210 */ NdrFcLong( 0x0 ), /* 0 */
+/* 214 */ NdrFcShort( 0x3 ), /* 3 */
+/* 216 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 218 */ NdrFcShort( 0x0 ), /* 0 */
+/* 220 */ NdrFcShort( 0x24 ), /* 36 */
+/* 222 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 224 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 226 */ NdrFcShort( 0x0 ), /* 0 */
+/* 228 */ NdrFcShort( 0x0 ), /* 0 */
+/* 230 */ NdrFcShort( 0x0 ), /* 0 */
+/* 232 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter nColumnsSpanned */
+
+
+ /* Parameter nActions */
+
+/* 234 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 236 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 238 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 240 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 242 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 244 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure doAction */
+
+/* 246 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 248 */ NdrFcLong( 0x0 ), /* 0 */
+/* 252 */ NdrFcShort( 0x4 ), /* 4 */
+/* 254 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 256 */ NdrFcShort( 0x8 ), /* 8 */
+/* 258 */ NdrFcShort( 0x8 ), /* 8 */
+/* 260 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 262 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 264 */ NdrFcShort( 0x0 ), /* 0 */
+/* 266 */ NdrFcShort( 0x0 ), /* 0 */
+/* 268 */ NdrFcShort( 0x0 ), /* 0 */
+/* 270 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter actionIndex */
+
+/* 272 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 274 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 276 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 278 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 280 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 282 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_columnDescription */
+
+
+ /* Procedure get_description */
+
+/* 284 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 286 */ NdrFcLong( 0x0 ), /* 0 */
+/* 290 */ NdrFcShort( 0x5 ), /* 5 */
+/* 292 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 294 */ NdrFcShort( 0x8 ), /* 8 */
+/* 296 */ NdrFcShort( 0x8 ), /* 8 */
+/* 298 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 300 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 302 */ NdrFcShort( 0x1 ), /* 1 */
+/* 304 */ NdrFcShort( 0x0 ), /* 0 */
+/* 306 */ NdrFcShort( 0x0 ), /* 0 */
+/* 308 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter column */
+
+
+ /* Parameter actionIndex */
+
+/* 310 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 312 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 314 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter description */
+
+
+ /* Parameter description */
+
+/* 316 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 318 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 320 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 322 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 324 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 326 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_keyBinding */
+
+/* 328 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 330 */ NdrFcLong( 0x0 ), /* 0 */
+/* 334 */ NdrFcShort( 0x6 ), /* 6 */
+/* 336 */ NdrFcShort( 0x30 ), /* X64 Stack size/offset = 48 */
+/* 338 */ NdrFcShort( 0x10 ), /* 16 */
+/* 340 */ NdrFcShort( 0x24 ), /* 36 */
+/* 342 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x5, /* 5 */
+/* 344 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 346 */ NdrFcShort( 0x1 ), /* 1 */
+/* 348 */ NdrFcShort( 0x0 ), /* 0 */
+/* 350 */ NdrFcShort( 0x0 ), /* 0 */
+/* 352 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter actionIndex */
+
+/* 354 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 356 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 358 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter nMaxBindings */
+
+/* 360 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 362 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 364 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter keyBindings */
+
+/* 366 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
+/* 368 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 370 */ NdrFcShort( 0x5e ), /* Type Offset=94 */
+
+ /* Parameter nBindings */
+
+/* 372 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 374 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 376 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 378 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 380 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 382 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_name */
+
+/* 384 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 386 */ NdrFcLong( 0x0 ), /* 0 */
+/* 390 */ NdrFcShort( 0x7 ), /* 7 */
+/* 392 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 394 */ NdrFcShort( 0x8 ), /* 8 */
+/* 396 */ NdrFcShort( 0x8 ), /* 8 */
+/* 398 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 400 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 402 */ NdrFcShort( 0x1 ), /* 1 */
+/* 404 */ NdrFcShort( 0x0 ), /* 0 */
+/* 406 */ NdrFcShort( 0x0 ), /* 0 */
+/* 408 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter actionIndex */
+
+/* 410 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 412 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 414 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter name */
+
+/* 416 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 418 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 420 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 422 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 424 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 426 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_localizedName */
+
+/* 428 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 430 */ NdrFcLong( 0x0 ), /* 0 */
+/* 434 */ NdrFcShort( 0x8 ), /* 8 */
+/* 436 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 438 */ NdrFcShort( 0x8 ), /* 8 */
+/* 440 */ NdrFcShort( 0x8 ), /* 8 */
+/* 442 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 444 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 446 */ NdrFcShort( 0x1 ), /* 1 */
+/* 448 */ NdrFcShort( 0x0 ), /* 0 */
+/* 450 */ NdrFcShort( 0x0 ), /* 0 */
+/* 452 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter actionIndex */
+
+/* 454 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 456 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 458 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter localizedName */
+
+/* 460 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 462 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 464 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 466 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 468 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 470 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nRelations */
+
+/* 472 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 474 */ NdrFcLong( 0x0 ), /* 0 */
+/* 478 */ NdrFcShort( 0x1c ), /* 28 */
+/* 480 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 482 */ NdrFcShort( 0x0 ), /* 0 */
+/* 484 */ NdrFcShort( 0x24 ), /* 36 */
+/* 486 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 488 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 490 */ NdrFcShort( 0x0 ), /* 0 */
+/* 492 */ NdrFcShort( 0x0 ), /* 0 */
+/* 494 */ NdrFcShort( 0x0 ), /* 0 */
+/* 496 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter nRelations */
+
+/* 498 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 500 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 502 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 504 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 506 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 508 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_relation */
+
+/* 510 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 512 */ NdrFcLong( 0x0 ), /* 0 */
+/* 516 */ NdrFcShort( 0x1d ), /* 29 */
+/* 518 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 520 */ NdrFcShort( 0x8 ), /* 8 */
+/* 522 */ NdrFcShort( 0x8 ), /* 8 */
+/* 524 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 526 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 528 */ NdrFcShort( 0x0 ), /* 0 */
+/* 530 */ NdrFcShort( 0x0 ), /* 0 */
+/* 532 */ NdrFcShort( 0x0 ), /* 0 */
+/* 534 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter relationIndex */
+
+/* 536 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 538 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 540 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter relation */
+
+/* 542 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 544 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 546 */ NdrFcShort( 0x7c ), /* Type Offset=124 */
+
+ /* Return value */
+
+/* 548 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 550 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 552 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_relations */
+
+/* 554 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 556 */ NdrFcLong( 0x0 ), /* 0 */
+/* 560 */ NdrFcShort( 0x1e ), /* 30 */
+/* 562 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 564 */ NdrFcShort( 0x8 ), /* 8 */
+/* 566 */ NdrFcShort( 0x24 ), /* 36 */
+/* 568 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x4, /* 4 */
+/* 570 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 572 */ NdrFcShort( 0x1 ), /* 1 */
+/* 574 */ NdrFcShort( 0x0 ), /* 0 */
+/* 576 */ NdrFcShort( 0x0 ), /* 0 */
+/* 578 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter maxRelations */
+
+/* 580 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 582 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 584 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter relations */
+
+/* 586 */ NdrFcShort( 0x113 ), /* Flags: must size, must free, out, simple ref, */
+/* 588 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 590 */ NdrFcShort( 0x96 ), /* Type Offset=150 */
+
+ /* Parameter nRelations */
+
+/* 592 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 594 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 596 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 598 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 600 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 602 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure role */
+
+/* 604 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 606 */ NdrFcLong( 0x0 ), /* 0 */
+/* 610 */ NdrFcShort( 0x1f ), /* 31 */
+/* 612 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 614 */ NdrFcShort( 0x0 ), /* 0 */
+/* 616 */ NdrFcShort( 0x24 ), /* 36 */
+/* 618 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 620 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 622 */ NdrFcShort( 0x0 ), /* 0 */
+/* 624 */ NdrFcShort( 0x0 ), /* 0 */
+/* 626 */ NdrFcShort( 0x0 ), /* 0 */
+/* 628 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter role */
+
+/* 630 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 632 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 634 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 636 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 638 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 640 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure scrollTo */
+
+/* 642 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 644 */ NdrFcLong( 0x0 ), /* 0 */
+/* 648 */ NdrFcShort( 0x20 ), /* 32 */
+/* 650 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 652 */ NdrFcShort( 0x6 ), /* 6 */
+/* 654 */ NdrFcShort( 0x8 ), /* 8 */
+/* 656 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 658 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 660 */ NdrFcShort( 0x0 ), /* 0 */
+/* 662 */ NdrFcShort( 0x0 ), /* 0 */
+/* 664 */ NdrFcShort( 0x0 ), /* 0 */
+/* 666 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter scrollType */
+
+/* 668 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 670 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 672 */ 0xd, /* FC_ENUM16 */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 674 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 676 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 678 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure scrollToPoint */
+
+/* 680 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 682 */ NdrFcLong( 0x0 ), /* 0 */
+/* 686 */ NdrFcShort( 0x21 ), /* 33 */
+/* 688 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 690 */ NdrFcShort( 0x16 ), /* 22 */
+/* 692 */ NdrFcShort( 0x8 ), /* 8 */
+/* 694 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x4, /* 4 */
+/* 696 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 698 */ NdrFcShort( 0x0 ), /* 0 */
+/* 700 */ NdrFcShort( 0x0 ), /* 0 */
+/* 702 */ NdrFcShort( 0x0 ), /* 0 */
+/* 704 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter coordinateType */
+
+/* 706 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 708 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 710 */ 0xd, /* FC_ENUM16 */
+ 0x0, /* 0 */
+
+ /* Parameter x */
+
+/* 712 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 714 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 716 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter y */
+
+/* 718 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 720 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 722 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 724 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 726 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 728 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_groupPosition */
+
+/* 730 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 732 */ NdrFcLong( 0x0 ), /* 0 */
+/* 736 */ NdrFcShort( 0x22 ), /* 34 */
+/* 738 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 740 */ NdrFcShort( 0x0 ), /* 0 */
+/* 742 */ NdrFcShort( 0x5c ), /* 92 */
+/* 744 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x4, /* 4 */
+/* 746 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 748 */ NdrFcShort( 0x0 ), /* 0 */
+/* 750 */ NdrFcShort( 0x0 ), /* 0 */
+/* 752 */ NdrFcShort( 0x0 ), /* 0 */
+/* 754 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter groupLevel */
+
+/* 756 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 758 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 760 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter similarItemsInGroup */
+
+/* 762 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 764 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 766 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter positionInGroup */
+
+/* 768 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 770 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 772 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 774 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 776 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 778 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_states */
+
+/* 780 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 782 */ NdrFcLong( 0x0 ), /* 0 */
+/* 786 */ NdrFcShort( 0x23 ), /* 35 */
+/* 788 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 790 */ NdrFcShort( 0x0 ), /* 0 */
+/* 792 */ NdrFcShort( 0x24 ), /* 36 */
+/* 794 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 796 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 798 */ NdrFcShort( 0x0 ), /* 0 */
+/* 800 */ NdrFcShort( 0x0 ), /* 0 */
+/* 802 */ NdrFcShort( 0x0 ), /* 0 */
+/* 804 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter states */
+
+/* 806 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 808 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 810 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 812 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 814 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 816 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_extendedRole */
+
+/* 818 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 820 */ NdrFcLong( 0x0 ), /* 0 */
+/* 824 */ NdrFcShort( 0x24 ), /* 36 */
+/* 826 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 828 */ NdrFcShort( 0x0 ), /* 0 */
+/* 830 */ NdrFcShort( 0x8 ), /* 8 */
+/* 832 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 834 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 836 */ NdrFcShort( 0x1 ), /* 1 */
+/* 838 */ NdrFcShort( 0x0 ), /* 0 */
+/* 840 */ NdrFcShort( 0x0 ), /* 0 */
+/* 842 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter extendedRole */
+
+/* 844 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 846 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 848 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 850 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 852 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 854 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_localizedExtendedRole */
+
+/* 856 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 858 */ NdrFcLong( 0x0 ), /* 0 */
+/* 862 */ NdrFcShort( 0x25 ), /* 37 */
+/* 864 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 866 */ NdrFcShort( 0x0 ), /* 0 */
+/* 868 */ NdrFcShort( 0x8 ), /* 8 */
+/* 870 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 872 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 874 */ NdrFcShort( 0x1 ), /* 1 */
+/* 876 */ NdrFcShort( 0x0 ), /* 0 */
+/* 878 */ NdrFcShort( 0x0 ), /* 0 */
+/* 880 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter localizedExtendedRole */
+
+/* 882 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 884 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 886 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 888 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 890 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 892 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nExtendedStates */
+
+/* 894 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 896 */ NdrFcLong( 0x0 ), /* 0 */
+/* 900 */ NdrFcShort( 0x26 ), /* 38 */
+/* 902 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 904 */ NdrFcShort( 0x0 ), /* 0 */
+/* 906 */ NdrFcShort( 0x24 ), /* 36 */
+/* 908 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 910 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 912 */ NdrFcShort( 0x0 ), /* 0 */
+/* 914 */ NdrFcShort( 0x0 ), /* 0 */
+/* 916 */ NdrFcShort( 0x0 ), /* 0 */
+/* 918 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter nExtendedStates */
+
+/* 920 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 922 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 924 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 926 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 928 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 930 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_extendedStates */
+
+/* 932 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 934 */ NdrFcLong( 0x0 ), /* 0 */
+/* 938 */ NdrFcShort( 0x27 ), /* 39 */
+/* 940 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 942 */ NdrFcShort( 0x8 ), /* 8 */
+/* 944 */ NdrFcShort( 0x24 ), /* 36 */
+/* 946 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x4, /* 4 */
+/* 948 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 950 */ NdrFcShort( 0x1 ), /* 1 */
+/* 952 */ NdrFcShort( 0x0 ), /* 0 */
+/* 954 */ NdrFcShort( 0x0 ), /* 0 */
+/* 956 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter maxExtendedStates */
+
+/* 958 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 960 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 962 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter extendedStates */
+
+/* 964 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
+/* 966 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 968 */ NdrFcShort( 0xac ), /* Type Offset=172 */
+
+ /* Parameter nExtendedStates */
+
+/* 970 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 972 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 974 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 976 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 978 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 980 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_localizedExtendedStates */
+
+/* 982 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 984 */ NdrFcLong( 0x0 ), /* 0 */
+/* 988 */ NdrFcShort( 0x28 ), /* 40 */
+/* 990 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 992 */ NdrFcShort( 0x8 ), /* 8 */
+/* 994 */ NdrFcShort( 0x24 ), /* 36 */
+/* 996 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x4, /* 4 */
+/* 998 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 1000 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1002 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1004 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1006 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter maxLocalizedExtendedStates */
+
+/* 1008 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 1010 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1012 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter localizedExtendedStates */
+
+/* 1014 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
+/* 1016 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1018 */ NdrFcShort( 0xac ), /* Type Offset=172 */
+
+ /* Parameter nLocalizedExtendedStates */
+
+/* 1020 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1022 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 1024 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 1026 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1028 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 1030 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_uniqueID */
+
+/* 1032 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1034 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1038 */ NdrFcShort( 0x29 ), /* 41 */
+/* 1040 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 1042 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1044 */ NdrFcShort( 0x24 ), /* 36 */
+/* 1046 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 1048 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 1050 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1052 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1054 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1056 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter uniqueID */
+
+/* 1058 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1060 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1062 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 1064 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1066 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1068 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_windowHandle */
+
+/* 1070 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1072 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1076 */ NdrFcShort( 0x2a ), /* 42 */
+/* 1078 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 1080 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1082 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1084 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 1086 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 1088 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1090 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1092 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1094 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter windowHandle */
+
+/* 1096 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 1098 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1100 */ NdrFcShort( 0xe6 ), /* Type Offset=230 */
+
+ /* Return value */
+
+/* 1102 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1104 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1106 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_indexInParent */
+
+/* 1108 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1110 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1114 */ NdrFcShort( 0x2b ), /* 43 */
+/* 1116 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 1118 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1120 */ NdrFcShort( 0x24 ), /* 36 */
+/* 1122 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 1124 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 1126 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1128 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1130 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1132 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter indexInParent */
+
+/* 1134 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1136 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1138 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 1140 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1142 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1144 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_locale */
+
+/* 1146 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1148 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1152 */ NdrFcShort( 0x2c ), /* 44 */
+/* 1154 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 1156 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1158 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1160 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 1162 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 1164 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1166 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1168 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1170 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter locale */
+
+/* 1172 */ NdrFcShort( 0x6113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=24 */
+/* 1174 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1176 */ NdrFcShort( 0xf4 ), /* Type Offset=244 */
+
+ /* Return value */
+
+/* 1178 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1180 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1182 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_attributes */
+
+/* 1184 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1186 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1190 */ NdrFcShort( 0x2d ), /* 45 */
+/* 1192 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 1194 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1196 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1198 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 1200 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 1202 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1204 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1206 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1208 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter attributes */
+
+/* 1210 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 1212 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1214 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 1216 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1218 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1220 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_attribute */
+
+/* 1222 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1224 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1228 */ NdrFcShort( 0x2e ), /* 46 */
+/* 1230 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 1232 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1234 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1236 */ 0x47, /* Oi2 Flags: srv must size, clt must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 1238 */ 0xa, /* 10 */
+ 0x7, /* Ext Flags: new corr desc, clt corr check, srv corr check, */
+/* 1240 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1242 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1244 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1246 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter name */
+
+/* 1248 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 1250 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1252 */ NdrFcShort( 0x10e ), /* Type Offset=270 */
+
+ /* Parameter attribute */
+
+/* 1254 */ NdrFcShort( 0x6113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=24 */
+/* 1256 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1258 */ NdrFcShort( 0x4bc ), /* Type Offset=1212 */
+
+ /* Return value */
+
+/* 1260 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1262 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 1264 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_accessibleWithCaret */
+
+/* 1266 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1268 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1272 */ NdrFcShort( 0x2f ), /* 47 */
+/* 1274 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 1276 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1278 */ NdrFcShort( 0x24 ), /* 36 */
+/* 1280 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 1282 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 1284 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1286 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1288 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1290 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter accessible */
+
+/* 1292 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 1294 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1296 */ NdrFcShort( 0x2e ), /* Type Offset=46 */
+
+ /* Parameter caretOffset */
+
+/* 1298 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1300 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1302 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 1304 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1306 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 1308 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_relationTargetsOfType */
+
+/* 1310 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1312 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1316 */ NdrFcShort( 0x30 ), /* 48 */
+/* 1318 */ NdrFcShort( 0x30 ), /* X64 Stack size/offset = 48 */
+/* 1320 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1322 */ NdrFcShort( 0x24 ), /* 36 */
+/* 1324 */ 0x47, /* Oi2 Flags: srv must size, clt must size, has return, has ext, */
+ 0x5, /* 5 */
+/* 1326 */ 0xa, /* 10 */
+ 0x7, /* Ext Flags: new corr desc, clt corr check, srv corr check, */
+/* 1328 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1330 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1332 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1334 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter type */
+
+/* 1336 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 1338 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1340 */ NdrFcShort( 0x10e ), /* Type Offset=270 */
+
+ /* Parameter maxTargets */
+
+/* 1342 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 1344 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1346 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter targets */
+
+/* 1348 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
+/* 1350 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 1352 */ NdrFcShort( 0x4c6 ), /* Type Offset=1222 */
+
+ /* Parameter nTargets */
+
+/* 1354 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1356 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 1358 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 1360 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1362 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 1364 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_locationInParent */
+
+/* 1366 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1368 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1372 */ NdrFcShort( 0x3 ), /* 3 */
+/* 1374 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 1376 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1378 */ NdrFcShort( 0x40 ), /* 64 */
+/* 1380 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 1382 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 1384 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1386 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1388 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1390 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter x */
+
+/* 1392 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1394 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1396 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter y */
+
+/* 1398 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1400 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1402 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 1404 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1406 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 1408 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_foreground */
+
+/* 1410 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1412 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1416 */ NdrFcShort( 0x4 ), /* 4 */
+/* 1418 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 1420 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1422 */ NdrFcShort( 0x24 ), /* 36 */
+/* 1424 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 1426 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 1428 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1430 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1432 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1434 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter foreground */
+
+/* 1436 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1438 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1440 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 1442 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1444 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1446 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_currentValue */
+
+/* 1448 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1450 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1454 */ NdrFcShort( 0x3 ), /* 3 */
+/* 1456 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 1458 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1460 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1462 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 1464 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 1466 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1468 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1470 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1472 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter currentValue */
+
+/* 1474 */ NdrFcShort( 0x6113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=24 */
+/* 1476 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1478 */ NdrFcShort( 0x4bc ), /* Type Offset=1212 */
+
+ /* Return value */
+
+/* 1480 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1482 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1484 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure setCurrentValue */
+
+/* 1486 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1488 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1492 */ NdrFcShort( 0x4 ), /* 4 */
+/* 1494 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 1496 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1498 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1500 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 1502 */ 0xa, /* 10 */
+ 0x85, /* Ext Flags: new corr desc, srv corr check, has big amd64 byval param */
+/* 1504 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1506 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1508 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1510 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter value */
+
+/* 1512 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
+/* 1514 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1516 */ NdrFcShort( 0x4ec ), /* Type Offset=1260 */
+
+ /* Return value */
+
+/* 1518 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1520 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1522 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_maximumValue */
+
+/* 1524 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1526 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1530 */ NdrFcShort( 0x5 ), /* 5 */
+/* 1532 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 1534 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1536 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1538 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 1540 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 1542 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1544 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1546 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1548 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter maximumValue */
+
+/* 1550 */ NdrFcShort( 0x6113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=24 */
+/* 1552 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1554 */ NdrFcShort( 0x4bc ), /* Type Offset=1212 */
+
+ /* Return value */
+
+/* 1556 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1558 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1560 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_minimumValue */
+
+/* 1562 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1564 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1568 */ NdrFcShort( 0x6 ), /* 6 */
+/* 1570 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 1572 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1574 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1576 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 1578 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 1580 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1582 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1584 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1586 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter minimumValue */
+
+/* 1588 */ NdrFcShort( 0x6113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=24 */
+/* 1590 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1592 */ NdrFcShort( 0x4bc ), /* Type Offset=1212 */
+
+ /* Return value */
+
+/* 1594 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1596 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1598 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure copyText */
+
+
+ /* Procedure addSelection */
+
+/* 1600 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1602 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1606 */ NdrFcShort( 0x3 ), /* 3 */
+/* 1608 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 1610 */ NdrFcShort( 0x10 ), /* 16 */
+/* 1612 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1614 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 1616 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 1618 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1620 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1622 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1624 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter startOffset */
+
+
+ /* Parameter startOffset */
+
+/* 1626 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 1628 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1630 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+
+ /* Parameter endOffset */
+
+/* 1632 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 1634 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1636 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 1638 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1640 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 1642 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_attributes */
+
+/* 1644 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1646 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1650 */ NdrFcShort( 0x4 ), /* 4 */
+/* 1652 */ NdrFcShort( 0x30 ), /* X64 Stack size/offset = 48 */
+/* 1654 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1656 */ NdrFcShort( 0x40 ), /* 64 */
+/* 1658 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x5, /* 5 */
+/* 1660 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 1662 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1664 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1666 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1668 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter offset */
+
+/* 1670 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 1672 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1674 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter startOffset */
+
+/* 1676 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1678 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1680 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+/* 1682 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1684 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 1686 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter textAttributes */
+
+/* 1688 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 1690 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 1692 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 1694 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1696 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 1698 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_characterExtents */
+
+/* 1700 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1702 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1706 */ NdrFcShort( 0x6 ), /* 6 */
+/* 1708 */ NdrFcShort( 0x40 ), /* X64 Stack size/offset = 64 */
+/* 1710 */ NdrFcShort( 0xe ), /* 14 */
+/* 1712 */ NdrFcShort( 0x78 ), /* 120 */
+/* 1714 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x7, /* 7 */
+/* 1716 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 1718 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1720 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1722 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1724 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter offset */
+
+/* 1726 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 1728 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1730 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter coordType */
+
+/* 1732 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 1734 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1736 */ 0xd, /* FC_ENUM16 */
+ 0x0, /* 0 */
+
+ /* Parameter x */
+
+/* 1738 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1740 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 1742 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter y */
+
+/* 1744 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1746 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 1748 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter width */
+
+/* 1750 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1752 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 1754 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter height */
+
+/* 1756 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1758 */ NdrFcShort( 0x30 ), /* X64 Stack size/offset = 48 */
+/* 1760 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 1762 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1764 */ NdrFcShort( 0x38 ), /* X64 Stack size/offset = 56 */
+/* 1766 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nRows */
+
+
+ /* Procedure get_nSelections */
+
+/* 1768 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1770 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1774 */ NdrFcShort( 0x7 ), /* 7 */
+/* 1776 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 1778 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1780 */ NdrFcShort( 0x24 ), /* 36 */
+/* 1782 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 1784 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 1786 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1788 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1790 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1792 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter rowCount */
+
+
+ /* Parameter nSelections */
+
+/* 1794 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1796 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1798 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 1800 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1802 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1804 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_offsetAtPoint */
+
+/* 1806 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1808 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1812 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1814 */ NdrFcShort( 0x30 ), /* X64 Stack size/offset = 48 */
+/* 1816 */ NdrFcShort( 0x16 ), /* 22 */
+/* 1818 */ NdrFcShort( 0x24 ), /* 36 */
+/* 1820 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x5, /* 5 */
+/* 1822 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 1824 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1826 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1828 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1830 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter x */
+
+/* 1832 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 1834 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1836 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter y */
+
+/* 1838 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 1840 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1842 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter coordType */
+
+/* 1844 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 1846 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 1848 */ 0xd, /* FC_ENUM16 */
+ 0x0, /* 0 */
+
+ /* Parameter offset */
+
+/* 1850 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1852 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 1854 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 1856 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1858 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 1860 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_selection */
+
+/* 1862 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1864 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1868 */ NdrFcShort( 0x9 ), /* 9 */
+/* 1870 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 1872 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1874 */ NdrFcShort( 0x40 ), /* 64 */
+/* 1876 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x4, /* 4 */
+/* 1878 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 1880 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1882 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1884 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1886 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter selectionIndex */
+
+/* 1888 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 1890 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1892 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter startOffset */
+
+/* 1894 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1896 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1898 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+/* 1900 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1902 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 1904 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 1906 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1908 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 1910 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_text */
+
+/* 1912 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1914 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1918 */ NdrFcShort( 0xa ), /* 10 */
+/* 1920 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 1922 */ NdrFcShort( 0x10 ), /* 16 */
+/* 1924 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1926 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x4, /* 4 */
+/* 1928 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 1930 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1932 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1934 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1936 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter startOffset */
+
+/* 1938 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 1940 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1942 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+/* 1944 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 1946 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1948 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter text */
+
+/* 1950 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 1952 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 1954 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 1956 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1958 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 1960 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_textBeforeOffset */
+
+/* 1962 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1964 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1968 */ NdrFcShort( 0xb ), /* 11 */
+/* 1970 */ NdrFcShort( 0x38 ), /* X64 Stack size/offset = 56 */
+/* 1972 */ NdrFcShort( 0xe ), /* 14 */
+/* 1974 */ NdrFcShort( 0x40 ), /* 64 */
+/* 1976 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x6, /* 6 */
+/* 1978 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 1980 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1982 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1984 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1986 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter offset */
+
+/* 1988 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 1990 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1992 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter boundaryType */
+
+/* 1994 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 1996 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1998 */ 0xd, /* FC_ENUM16 */
+ 0x0, /* 0 */
+
+ /* Parameter startOffset */
+
+/* 2000 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 2002 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 2004 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+/* 2006 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 2008 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 2010 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter text */
+
+/* 2012 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 2014 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 2016 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 2018 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2020 */ NdrFcShort( 0x30 ), /* X64 Stack size/offset = 48 */
+/* 2022 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_textAfterOffset */
+
+/* 2024 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2026 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2030 */ NdrFcShort( 0xc ), /* 12 */
+/* 2032 */ NdrFcShort( 0x38 ), /* X64 Stack size/offset = 56 */
+/* 2034 */ NdrFcShort( 0xe ), /* 14 */
+/* 2036 */ NdrFcShort( 0x40 ), /* 64 */
+/* 2038 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x6, /* 6 */
+/* 2040 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 2042 */ NdrFcShort( 0x1 ), /* 1 */
+/* 2044 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2046 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2048 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter offset */
+
+/* 2050 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2052 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 2054 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter boundaryType */
+
+/* 2056 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2058 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 2060 */ 0xd, /* FC_ENUM16 */
+ 0x0, /* 0 */
+
+ /* Parameter startOffset */
+
+/* 2062 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 2064 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 2066 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+/* 2068 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 2070 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 2072 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter text */
+
+/* 2074 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 2076 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 2078 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 2080 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2082 */ NdrFcShort( 0x30 ), /* X64 Stack size/offset = 48 */
+/* 2084 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_textAtOffset */
+
+/* 2086 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2088 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2092 */ NdrFcShort( 0xd ), /* 13 */
+/* 2094 */ NdrFcShort( 0x38 ), /* X64 Stack size/offset = 56 */
+/* 2096 */ NdrFcShort( 0xe ), /* 14 */
+/* 2098 */ NdrFcShort( 0x40 ), /* 64 */
+/* 2100 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x6, /* 6 */
+/* 2102 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 2104 */ NdrFcShort( 0x1 ), /* 1 */
+/* 2106 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2108 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2110 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter offset */
+
+/* 2112 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2114 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 2116 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter boundaryType */
+
+/* 2118 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2120 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 2122 */ 0xd, /* FC_ENUM16 */
+ 0x0, /* 0 */
+
+ /* Parameter startOffset */
+
+/* 2124 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 2126 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 2128 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+/* 2130 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 2132 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 2134 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter text */
+
+/* 2136 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 2138 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 2140 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 2142 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2144 */ NdrFcShort( 0x30 ), /* X64 Stack size/offset = 48 */
+/* 2146 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure removeSelection */
+
+/* 2148 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2150 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2154 */ NdrFcShort( 0xe ), /* 14 */
+/* 2156 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 2158 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2160 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2162 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 2164 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2166 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2168 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2170 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2172 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter selectionIndex */
+
+/* 2174 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2176 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 2178 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 2180 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2182 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 2184 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure setCaretOffset */
+
+/* 2186 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2188 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2192 */ NdrFcShort( 0xf ), /* 15 */
+/* 2194 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 2196 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2198 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2200 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 2202 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2204 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2206 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2208 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2210 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter offset */
+
+/* 2212 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2214 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 2216 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 2218 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2220 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 2222 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure setSelection */
+
+/* 2224 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2226 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2230 */ NdrFcShort( 0x10 ), /* 16 */
+/* 2232 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 2234 */ NdrFcShort( 0x18 ), /* 24 */
+/* 2236 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2238 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x4, /* 4 */
+/* 2240 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2242 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2244 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2246 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2248 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter selectionIndex */
+
+/* 2250 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2252 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 2254 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter startOffset */
+
+/* 2256 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2258 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 2260 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+/* 2262 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2264 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 2266 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 2268 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2270 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 2272 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nCharacters */
+
+/* 2274 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2276 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2280 */ NdrFcShort( 0x11 ), /* 17 */
+/* 2282 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 2284 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2286 */ NdrFcShort( 0x24 ), /* 36 */
+/* 2288 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 2290 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2292 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2294 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2296 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2298 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter nCharacters */
+
+/* 2300 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 2302 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 2304 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 2306 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2308 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 2310 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure scrollSubstringTo */
+
+/* 2312 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2314 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2318 */ NdrFcShort( 0x12 ), /* 18 */
+/* 2320 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 2322 */ NdrFcShort( 0x16 ), /* 22 */
+/* 2324 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2326 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x4, /* 4 */
+/* 2328 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2330 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2332 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2334 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2336 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter startIndex */
+
+/* 2338 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2340 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 2342 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endIndex */
+
+/* 2344 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2346 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 2348 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter scrollType */
+
+/* 2350 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2352 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 2354 */ 0xd, /* FC_ENUM16 */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 2356 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2358 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 2360 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure scrollSubstringToPoint */
+
+/* 2362 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2364 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2368 */ NdrFcShort( 0x13 ), /* 19 */
+/* 2370 */ NdrFcShort( 0x38 ), /* X64 Stack size/offset = 56 */
+/* 2372 */ NdrFcShort( 0x26 ), /* 38 */
+/* 2374 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2376 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x6, /* 6 */
+/* 2378 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2380 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2382 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2384 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2386 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter startIndex */
+
+/* 2388 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2390 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 2392 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endIndex */
+
+/* 2394 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2396 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 2398 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter coordinateType */
+
+/* 2400 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2402 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 2404 */ 0xd, /* FC_ENUM16 */
+ 0x0, /* 0 */
+
+ /* Parameter x */
+
+/* 2406 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2408 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 2410 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter y */
+
+/* 2412 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2414 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 2416 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 2418 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2420 */ NdrFcShort( 0x30 ), /* X64 Stack size/offset = 48 */
+/* 2422 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_newText */
+
+/* 2424 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2426 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2430 */ NdrFcShort( 0x14 ), /* 20 */
+/* 2432 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 2434 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2436 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2438 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 2440 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 2442 */ NdrFcShort( 0x1 ), /* 1 */
+/* 2444 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2446 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2448 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter newText */
+
+/* 2450 */ NdrFcShort( 0x4113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=16 */
+/* 2452 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 2454 */ NdrFcShort( 0x4fa ), /* Type Offset=1274 */
+
+ /* Return value */
+
+/* 2456 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2458 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 2460 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_oldText */
+
+/* 2462 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2464 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2468 */ NdrFcShort( 0x15 ), /* 21 */
+/* 2470 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 2472 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2474 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2476 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 2478 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 2480 */ NdrFcShort( 0x1 ), /* 1 */
+/* 2482 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2484 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2486 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter oldText */
+
+/* 2488 */ NdrFcShort( 0x4113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=16 */
+/* 2490 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 2492 */ NdrFcShort( 0x4fa ), /* Type Offset=1274 */
+
+ /* Return value */
+
+/* 2494 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2496 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 2498 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_attributeRange */
+
+/* 2500 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2502 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2506 */ NdrFcShort( 0x16 ), /* 22 */
+/* 2508 */ NdrFcShort( 0x38 ), /* X64 Stack size/offset = 56 */
+/* 2510 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2512 */ NdrFcShort( 0x40 ), /* 64 */
+/* 2514 */ 0x47, /* Oi2 Flags: srv must size, clt must size, has return, has ext, */
+ 0x6, /* 6 */
+/* 2516 */ 0xa, /* 10 */
+ 0x7, /* Ext Flags: new corr desc, clt corr check, srv corr check, */
+/* 2518 */ NdrFcShort( 0x1 ), /* 1 */
+/* 2520 */ NdrFcShort( 0x1 ), /* 1 */
+/* 2522 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2524 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter offset */
+
+/* 2526 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2528 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 2530 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter filter */
+
+/* 2532 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 2534 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 2536 */ NdrFcShort( 0x10e ), /* Type Offset=270 */
+
+ /* Parameter startOffset */
+
+/* 2538 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 2540 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 2542 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+/* 2544 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 2546 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 2548 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter attributeValues */
+
+/* 2550 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 2552 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 2554 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 2556 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2558 */ NdrFcShort( 0x30 ), /* X64 Stack size/offset = 48 */
+/* 2560 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure deleteText */
+
+/* 2562 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2564 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2568 */ NdrFcShort( 0x4 ), /* 4 */
+/* 2570 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 2572 */ NdrFcShort( 0x10 ), /* 16 */
+/* 2574 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2576 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 2578 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2580 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2582 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2584 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2586 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter startOffset */
+
+/* 2588 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2590 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 2592 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+/* 2594 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2596 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 2598 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 2600 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2602 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 2604 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure insertText */
+
+/* 2606 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2608 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2612 */ NdrFcShort( 0x5 ), /* 5 */
+/* 2614 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 2616 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2618 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2620 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 2622 */ 0xa, /* 10 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 2624 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2626 */ NdrFcShort( 0x1 ), /* 1 */
+/* 2628 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2630 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter offset */
+
+/* 2632 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2634 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 2636 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter text */
+
+/* 2638 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
+/* 2640 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 2642 */ NdrFcShort( 0x10e ), /* Type Offset=270 */
+
+ /* Return value */
+
+/* 2644 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2646 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 2648 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure cutText */
+
+/* 2650 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2652 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2656 */ NdrFcShort( 0x6 ), /* 6 */
+/* 2658 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 2660 */ NdrFcShort( 0x10 ), /* 16 */
+/* 2662 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2664 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 2666 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2668 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2670 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2672 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2674 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter startOffset */
+
+/* 2676 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2678 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 2680 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+/* 2682 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2684 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 2686 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 2688 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2690 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 2692 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure pasteText */
+
+/* 2694 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2696 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2700 */ NdrFcShort( 0x7 ), /* 7 */
+/* 2702 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 2704 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2706 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2708 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 2710 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2712 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2714 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2716 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2718 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter offset */
+
+/* 2720 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2722 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 2724 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 2726 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2728 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 2730 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure replaceText */
+
+/* 2732 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2734 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2738 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2740 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 2742 */ NdrFcShort( 0x10 ), /* 16 */
+/* 2744 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2746 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x4, /* 4 */
+/* 2748 */ 0xa, /* 10 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 2750 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2752 */ NdrFcShort( 0x1 ), /* 1 */
+/* 2754 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2756 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter startOffset */
+
+/* 2758 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2760 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 2762 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+/* 2764 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2766 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 2768 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter text */
+
+/* 2770 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
+/* 2772 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 2774 */ NdrFcShort( 0x10e ), /* Type Offset=270 */
+
+ /* Return value */
+
+/* 2776 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2778 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 2780 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure setAttributes */
+
+/* 2782 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2784 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2788 */ NdrFcShort( 0x9 ), /* 9 */
+/* 2790 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 2792 */ NdrFcShort( 0x10 ), /* 16 */
+/* 2794 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2796 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x4, /* 4 */
+/* 2798 */ 0xa, /* 10 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 2800 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2802 */ NdrFcShort( 0x1 ), /* 1 */
+/* 2804 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2806 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter startOffset */
+
+/* 2808 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2810 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 2812 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+/* 2814 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2816 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 2818 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter attributes */
+
+/* 2820 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
+/* 2822 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 2824 */ NdrFcShort( 0x10e ), /* Type Offset=270 */
+
+ /* Return value */
+
+/* 2826 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2828 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 2830 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_anchor */
+
+/* 2832 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2834 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2838 */ NdrFcShort( 0x9 ), /* 9 */
+/* 2840 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 2842 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2844 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2846 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 2848 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 2850 */ NdrFcShort( 0x1 ), /* 1 */
+/* 2852 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2854 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2856 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter index */
+
+/* 2858 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2860 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 2862 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter anchor */
+
+/* 2864 */ NdrFcShort( 0x6113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=24 */
+/* 2866 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 2868 */ NdrFcShort( 0x4bc ), /* Type Offset=1212 */
+
+ /* Return value */
+
+/* 2870 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2872 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 2874 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_anchorTarget */
+
+/* 2876 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2878 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2882 */ NdrFcShort( 0xa ), /* 10 */
+/* 2884 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 2886 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2888 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2890 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 2892 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 2894 */ NdrFcShort( 0x1 ), /* 1 */
+/* 2896 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2898 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2900 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter index */
+
+/* 2902 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2904 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 2906 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter anchorTarget */
+
+/* 2908 */ NdrFcShort( 0x6113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=24 */
+/* 2910 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 2912 */ NdrFcShort( 0x4bc ), /* Type Offset=1212 */
+
+ /* Return value */
+
+/* 2914 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2916 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 2918 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nRows */
+
+
+ /* Procedure get_startIndex */
+
+/* 2920 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2922 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2926 */ NdrFcShort( 0xb ), /* 11 */
+/* 2928 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 2930 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2932 */ NdrFcShort( 0x24 ), /* 36 */
+/* 2934 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 2936 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2938 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2940 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2942 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2944 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter rowCount */
+
+
+ /* Parameter index */
+
+/* 2946 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 2948 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 2950 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 2952 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2954 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 2956 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nSelectedChildren */
+
+
+ /* Procedure get_endIndex */
+
+/* 2958 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2960 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2964 */ NdrFcShort( 0xc ), /* 12 */
+/* 2966 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 2968 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2970 */ NdrFcShort( 0x24 ), /* 36 */
+/* 2972 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 2974 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2976 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2978 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2980 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2982 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter cellCount */
+
+
+ /* Parameter index */
+
+/* 2984 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 2986 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 2988 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 2990 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2992 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 2994 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_valid */
+
+/* 2996 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2998 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3002 */ NdrFcShort( 0xd ), /* 13 */
+/* 3004 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 3006 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3008 */ NdrFcShort( 0x21 ), /* 33 */
+/* 3010 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 3012 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3014 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3016 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3018 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3020 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter valid */
+
+/* 3022 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3024 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 3026 */ 0x3, /* FC_SMALL */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3028 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3030 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 3032 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nHyperlinks */
+
+/* 3034 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3036 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3040 */ NdrFcShort( 0x16 ), /* 22 */
+/* 3042 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 3044 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3046 */ NdrFcShort( 0x24 ), /* 36 */
+/* 3048 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 3050 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3052 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3054 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3056 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3058 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter hyperlinkCount */
+
+/* 3060 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3062 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 3064 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3066 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3068 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 3070 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_hyperlink */
+
+/* 3072 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3074 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3078 */ NdrFcShort( 0x17 ), /* 23 */
+/* 3080 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 3082 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3084 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3086 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 3088 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3090 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3092 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3094 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3096 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter index */
+
+/* 3098 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3100 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 3102 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter hyperlink */
+
+/* 3104 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 3106 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 3108 */ NdrFcShort( 0x512 ), /* Type Offset=1298 */
+
+ /* Return value */
+
+/* 3110 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3112 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 3114 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_hyperlinkIndex */
+
+/* 3116 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3118 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3122 */ NdrFcShort( 0x18 ), /* 24 */
+/* 3124 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 3126 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3128 */ NdrFcShort( 0x24 ), /* 36 */
+/* 3130 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 3132 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3134 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3136 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3138 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3140 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter charIndex */
+
+/* 3142 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3144 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 3146 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter hyperlinkIndex */
+
+/* 3148 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3150 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 3152 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3154 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3156 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 3158 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_hyperlinks */
+
+/* 3160 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3162 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3166 */ NdrFcShort( 0x19 ), /* 25 */
+/* 3168 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 3170 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3172 */ NdrFcShort( 0x24 ), /* 36 */
+/* 3174 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 3176 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 3178 */ NdrFcShort( 0x1 ), /* 1 */
+/* 3180 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3182 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3184 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter hyperlinks */
+
+/* 3186 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
+/* 3188 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 3190 */ NdrFcShort( 0x528 ), /* Type Offset=1320 */
+
+ /* Parameter nHyperlinks */
+
+/* 3192 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3194 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 3196 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3198 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3200 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 3202 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_cellAt */
+
+
+ /* Procedure get_accessibleAt */
+
+/* 3204 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3206 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3210 */ NdrFcShort( 0x3 ), /* 3 */
+/* 3212 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 3214 */ NdrFcShort( 0x10 ), /* 16 */
+/* 3216 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3218 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x4, /* 4 */
+/* 3220 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3222 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3224 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3226 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3228 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+
+ /* Parameter row */
+
+/* 3230 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3232 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 3234 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter column */
+
+
+ /* Parameter column */
+
+/* 3236 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3238 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 3240 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter cell */
+
+
+ /* Parameter accessible */
+
+/* 3242 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 3244 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 3246 */ NdrFcShort( 0x2e ), /* Type Offset=46 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 3248 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3250 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 3252 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_caption */
+
+
+ /* Procedure get_caption */
+
+/* 3254 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3256 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3260 */ NdrFcShort( 0x4 ), /* 4 */
+/* 3262 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 3264 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3266 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3268 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 3270 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3272 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3274 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3276 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3278 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter accessible */
+
+
+ /* Parameter accessible */
+
+/* 3280 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 3282 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 3284 */ NdrFcShort( 0x2e ), /* Type Offset=46 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 3286 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3288 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 3290 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_childIndex */
+
+/* 3292 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3294 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3298 */ NdrFcShort( 0x5 ), /* 5 */
+/* 3300 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 3302 */ NdrFcShort( 0x10 ), /* 16 */
+/* 3304 */ NdrFcShort( 0x24 ), /* 36 */
+/* 3306 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x4, /* 4 */
+/* 3308 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3310 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3312 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3314 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3316 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter rowIndex */
+
+/* 3318 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3320 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 3322 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter columnIndex */
+
+/* 3324 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3326 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 3328 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter cellIndex */
+
+/* 3330 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3332 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 3334 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3336 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3338 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 3340 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_columnDescription */
+
+/* 3342 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3344 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3348 */ NdrFcShort( 0x6 ), /* 6 */
+/* 3350 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 3352 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3354 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3356 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 3358 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 3360 */ NdrFcShort( 0x1 ), /* 1 */
+/* 3362 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3364 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3366 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter column */
+
+/* 3368 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3370 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 3372 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter description */
+
+/* 3374 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 3376 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 3378 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 3380 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3382 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 3384 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_columnExtentAt */
+
+/* 3386 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3388 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3392 */ NdrFcShort( 0x7 ), /* 7 */
+/* 3394 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 3396 */ NdrFcShort( 0x10 ), /* 16 */
+/* 3398 */ NdrFcShort( 0x24 ), /* 36 */
+/* 3400 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x4, /* 4 */
+/* 3402 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3404 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3406 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3408 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3410 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+/* 3412 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3414 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 3416 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter column */
+
+/* 3418 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3420 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 3422 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter nColumnsSpanned */
+
+/* 3424 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3426 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 3428 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3430 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3432 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 3434 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_columnHeader */
+
+/* 3436 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3438 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3442 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3444 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 3446 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3448 */ NdrFcShort( 0x24 ), /* 36 */
+/* 3450 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 3452 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3454 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3456 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3458 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3460 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter accessibleTable */
+
+/* 3462 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 3464 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 3466 */ NdrFcShort( 0x546 ), /* Type Offset=1350 */
+
+ /* Parameter startingRowIndex */
+
+/* 3468 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3470 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 3472 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3474 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3476 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 3478 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_columnIndex */
+
+/* 3480 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3482 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3486 */ NdrFcShort( 0x9 ), /* 9 */
+/* 3488 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 3490 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3492 */ NdrFcShort( 0x24 ), /* 36 */
+/* 3494 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 3496 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3498 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3500 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3502 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3504 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter cellIndex */
+
+/* 3506 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3508 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 3510 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter columnIndex */
+
+/* 3512 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3514 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 3516 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3518 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3520 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 3522 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nSelectedRows */
+
+
+ /* Procedure get_nColumns */
+
+/* 3524 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3526 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3530 */ NdrFcShort( 0xa ), /* 10 */
+/* 3532 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 3534 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3536 */ NdrFcShort( 0x24 ), /* 36 */
+/* 3538 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 3540 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3542 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3544 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3546 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3548 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter rowCount */
+
+
+ /* Parameter columnCount */
+
+/* 3550 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3552 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 3554 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 3556 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3558 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 3560 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nSelectedColumns */
+
+/* 3562 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3564 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3568 */ NdrFcShort( 0xd ), /* 13 */
+/* 3570 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 3572 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3574 */ NdrFcShort( 0x24 ), /* 36 */
+/* 3576 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 3578 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3580 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3582 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3584 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3586 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter columnCount */
+
+/* 3588 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3590 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 3592 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3594 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3596 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 3598 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nSelectedRows */
+
+/* 3600 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3602 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3606 */ NdrFcShort( 0xe ), /* 14 */
+/* 3608 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 3610 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3612 */ NdrFcShort( 0x24 ), /* 36 */
+/* 3614 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 3616 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3618 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3620 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3622 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3624 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter rowCount */
+
+/* 3626 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3628 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 3630 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3632 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3634 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 3636 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_rowDescription */
+
+/* 3638 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3640 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3644 */ NdrFcShort( 0xf ), /* 15 */
+/* 3646 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 3648 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3650 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3652 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 3654 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 3656 */ NdrFcShort( 0x1 ), /* 1 */
+/* 3658 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3660 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3662 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+/* 3664 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3666 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 3668 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter description */
+
+/* 3670 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 3672 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 3674 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 3676 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3678 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 3680 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_rowExtentAt */
+
+/* 3682 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3684 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3688 */ NdrFcShort( 0x10 ), /* 16 */
+/* 3690 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 3692 */ NdrFcShort( 0x10 ), /* 16 */
+/* 3694 */ NdrFcShort( 0x24 ), /* 36 */
+/* 3696 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x4, /* 4 */
+/* 3698 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3700 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3702 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3704 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3706 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+/* 3708 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3710 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 3712 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter column */
+
+/* 3714 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3716 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 3718 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter nRowsSpanned */
+
+/* 3720 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3722 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 3724 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3726 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3728 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 3730 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_rowHeader */
+
+/* 3732 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3734 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3738 */ NdrFcShort( 0x11 ), /* 17 */
+/* 3740 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 3742 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3744 */ NdrFcShort( 0x24 ), /* 36 */
+/* 3746 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 3748 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3750 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3752 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3754 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3756 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter accessibleTable */
+
+/* 3758 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 3760 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 3762 */ NdrFcShort( 0x546 ), /* Type Offset=1350 */
+
+ /* Parameter startingColumnIndex */
+
+/* 3764 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3766 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 3768 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3770 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3772 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 3774 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_rowIndex */
+
+/* 3776 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3778 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3782 */ NdrFcShort( 0x12 ), /* 18 */
+/* 3784 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 3786 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3788 */ NdrFcShort( 0x24 ), /* 36 */
+/* 3790 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 3792 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3794 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3796 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3798 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3800 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter cellIndex */
+
+/* 3802 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3804 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 3806 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter rowIndex */
+
+/* 3808 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3810 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 3812 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3814 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3816 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 3818 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_selectedChildren */
+
+/* 3820 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3822 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3826 */ NdrFcShort( 0x13 ), /* 19 */
+/* 3828 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 3830 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3832 */ NdrFcShort( 0x24 ), /* 36 */
+/* 3834 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x4, /* 4 */
+/* 3836 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 3838 */ NdrFcShort( 0x1 ), /* 1 */
+/* 3840 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3842 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3844 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter maxChildren */
+
+/* 3846 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3848 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 3850 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter children */
+
+/* 3852 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
+/* 3854 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 3856 */ NdrFcShort( 0x55c ), /* Type Offset=1372 */
+
+ /* Parameter nChildren */
+
+/* 3858 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3860 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 3862 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3864 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3866 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 3868 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_selectedColumns */
+
+/* 3870 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3872 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3876 */ NdrFcShort( 0x14 ), /* 20 */
+/* 3878 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 3880 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3882 */ NdrFcShort( 0x24 ), /* 36 */
+/* 3884 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x4, /* 4 */
+/* 3886 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 3888 */ NdrFcShort( 0x1 ), /* 1 */
+/* 3890 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3892 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3894 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter maxColumns */
+
+/* 3896 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3898 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 3900 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter columns */
+
+/* 3902 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
+/* 3904 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 3906 */ NdrFcShort( 0x55c ), /* Type Offset=1372 */
+
+ /* Parameter nColumns */
+
+/* 3908 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3910 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 3912 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3914 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3916 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 3918 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_selectedRows */
+
+/* 3920 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3922 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3926 */ NdrFcShort( 0x15 ), /* 21 */
+/* 3928 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 3930 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3932 */ NdrFcShort( 0x24 ), /* 36 */
+/* 3934 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x4, /* 4 */
+/* 3936 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 3938 */ NdrFcShort( 0x1 ), /* 1 */
+/* 3940 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3942 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3944 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter maxRows */
+
+/* 3946 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3948 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 3950 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter rows */
+
+/* 3952 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
+/* 3954 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 3956 */ NdrFcShort( 0x55c ), /* Type Offset=1372 */
+
+ /* Parameter nRows */
+
+/* 3958 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3960 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 3962 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3964 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3966 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 3968 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_summary */
+
+/* 3970 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3972 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3976 */ NdrFcShort( 0x16 ), /* 22 */
+/* 3978 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 3980 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3982 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3984 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 3986 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3988 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3990 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3992 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3994 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter accessible */
+
+/* 3996 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 3998 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 4000 */ NdrFcShort( 0x2e ), /* Type Offset=46 */
+
+ /* Return value */
+
+/* 4002 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4004 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 4006 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_isColumnSelected */
+
+/* 4008 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4010 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4014 */ NdrFcShort( 0x17 ), /* 23 */
+/* 4016 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 4018 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4020 */ NdrFcShort( 0x21 ), /* 33 */
+/* 4022 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 4024 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4026 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4028 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4030 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4032 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter column */
+
+/* 4034 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 4036 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 4038 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter isSelected */
+
+/* 4040 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4042 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 4044 */ 0x3, /* FC_SMALL */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4046 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4048 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 4050 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_isRowSelected */
+
+/* 4052 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4054 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4058 */ NdrFcShort( 0x18 ), /* 24 */
+/* 4060 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 4062 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4064 */ NdrFcShort( 0x21 ), /* 33 */
+/* 4066 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 4068 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4070 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4072 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4074 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4076 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+/* 4078 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 4080 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 4082 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter isSelected */
+
+/* 4084 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4086 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 4088 */ 0x3, /* FC_SMALL */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4090 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4092 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 4094 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_isSelected */
+
+/* 4096 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4098 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4102 */ NdrFcShort( 0x19 ), /* 25 */
+/* 4104 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 4106 */ NdrFcShort( 0x10 ), /* 16 */
+/* 4108 */ NdrFcShort( 0x21 ), /* 33 */
+/* 4110 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x4, /* 4 */
+/* 4112 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4114 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4116 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4118 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4120 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+/* 4122 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 4124 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 4126 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter column */
+
+/* 4128 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 4130 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 4132 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter isSelected */
+
+/* 4134 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4136 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 4138 */ 0x3, /* FC_SMALL */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4140 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4142 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 4144 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure selectRow */
+
+/* 4146 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4148 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4152 */ NdrFcShort( 0x1a ), /* 26 */
+/* 4154 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 4156 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4158 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4160 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 4162 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4164 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4166 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4168 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4170 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+/* 4172 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 4174 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 4176 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4178 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4180 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 4182 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure selectColumn */
+
+/* 4184 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4186 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4190 */ NdrFcShort( 0x1b ), /* 27 */
+/* 4192 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 4194 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4196 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4198 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 4200 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4202 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4204 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4206 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4208 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter column */
+
+/* 4210 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 4212 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 4214 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4216 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4218 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 4220 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure unselectRow */
+
+/* 4222 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4224 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4228 */ NdrFcShort( 0x1c ), /* 28 */
+/* 4230 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 4232 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4234 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4236 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 4238 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4240 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4242 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4244 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4246 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+/* 4248 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 4250 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 4252 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4254 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4256 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 4258 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure unselectColumn */
+
+/* 4260 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4262 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4266 */ NdrFcShort( 0x1d ), /* 29 */
+/* 4268 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 4270 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4272 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4274 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 4276 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4278 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4280 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4282 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4284 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter column */
+
+/* 4286 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 4288 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 4290 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4292 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4294 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 4296 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_rowColumnExtentsAtIndex */
+
+/* 4298 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4300 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4304 */ NdrFcShort( 0x1e ), /* 30 */
+/* 4306 */ NdrFcShort( 0x40 ), /* X64 Stack size/offset = 64 */
+/* 4308 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4310 */ NdrFcShort( 0x91 ), /* 145 */
+/* 4312 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x7, /* 7 */
+/* 4314 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4316 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4318 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4320 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4322 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter index */
+
+/* 4324 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 4326 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 4328 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter row */
+
+/* 4330 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4332 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 4334 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter column */
+
+/* 4336 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4338 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 4340 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter rowExtents */
+
+/* 4342 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4344 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 4346 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter columnExtents */
+
+/* 4348 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4350 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 4352 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter isSelected */
+
+/* 4354 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4356 */ NdrFcShort( 0x30 ), /* X64 Stack size/offset = 48 */
+/* 4358 */ 0x3, /* FC_SMALL */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4360 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4362 */ NdrFcShort( 0x38 ), /* X64 Stack size/offset = 56 */
+/* 4364 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_modelChange */
+
+/* 4366 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4368 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4372 */ NdrFcShort( 0x1f ), /* 31 */
+/* 4374 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 4376 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4378 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4380 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 4382 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4384 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4386 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4388 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4390 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter modelChange */
+
+/* 4392 */ NdrFcShort( 0x6113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=24 */
+/* 4394 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 4396 */ NdrFcShort( 0x57a ), /* Type Offset=1402 */
+
+ /* Return value */
+
+/* 4398 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4400 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 4402 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_rowExtent */
+
+
+ /* Procedure get_nColumns */
+
+/* 4404 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4406 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4410 */ NdrFcShort( 0x6 ), /* 6 */
+/* 4412 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 4414 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4416 */ NdrFcShort( 0x24 ), /* 36 */
+/* 4418 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 4420 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4422 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4424 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4426 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4428 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter nRowsSpanned */
+
+
+ /* Parameter columnCount */
+
+/* 4430 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4432 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 4434 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 4436 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4438 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 4440 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_rowIndex */
+
+
+ /* Procedure get_nSelectedCells */
+
+/* 4442 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4444 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4448 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4450 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 4452 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4454 */ NdrFcShort( 0x24 ), /* 36 */
+/* 4456 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 4458 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4460 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4462 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4464 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4466 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter rowIndex */
+
+
+ /* Parameter cellCount */
+
+/* 4468 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4470 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 4472 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 4474 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4476 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 4478 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nSelectedColumns */
+
+/* 4480 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4482 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4486 */ NdrFcShort( 0x9 ), /* 9 */
+/* 4488 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 4490 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4492 */ NdrFcShort( 0x24 ), /* 36 */
+/* 4494 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 4496 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4498 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4500 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4502 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4504 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter columnCount */
+
+/* 4506 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4508 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 4510 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4512 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4514 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 4516 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_rowDescription */
+
+/* 4518 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4520 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4524 */ NdrFcShort( 0xb ), /* 11 */
+/* 4526 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 4528 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4530 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4532 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 4534 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 4536 */ NdrFcShort( 0x1 ), /* 1 */
+/* 4538 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4540 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4542 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+/* 4544 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 4546 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 4548 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter description */
+
+/* 4550 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 4552 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 4554 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 4556 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4558 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 4560 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_selectedCells */
+
+/* 4562 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4564 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4568 */ NdrFcShort( 0xc ), /* 12 */
+/* 4570 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 4572 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4574 */ NdrFcShort( 0x24 ), /* 36 */
+/* 4576 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 4578 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 4580 */ NdrFcShort( 0x1 ), /* 1 */
+/* 4582 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4584 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4586 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter cells */
+
+/* 4588 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
+/* 4590 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 4592 */ NdrFcShort( 0x588 ), /* Type Offset=1416 */
+
+ /* Parameter nSelectedCells */
+
+/* 4594 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4596 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 4598 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4600 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4602 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 4604 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_selectedColumns */
+
+/* 4606 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4608 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4612 */ NdrFcShort( 0xd ), /* 13 */
+/* 4614 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 4616 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4618 */ NdrFcShort( 0x24 ), /* 36 */
+/* 4620 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 4622 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 4624 */ NdrFcShort( 0x1 ), /* 1 */
+/* 4626 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4628 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4630 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter selectedColumns */
+
+/* 4632 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
+/* 4634 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 4636 */ NdrFcShort( 0x5a6 ), /* Type Offset=1446 */
+
+ /* Parameter nColumns */
+
+/* 4638 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4640 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 4642 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4644 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4646 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 4648 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_selectedRows */
+
+/* 4650 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4652 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4656 */ NdrFcShort( 0xe ), /* 14 */
+/* 4658 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 4660 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4662 */ NdrFcShort( 0x24 ), /* 36 */
+/* 4664 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 4666 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 4668 */ NdrFcShort( 0x1 ), /* 1 */
+/* 4670 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4672 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4674 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter selectedRows */
+
+/* 4676 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
+/* 4678 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 4680 */ NdrFcShort( 0x5a6 ), /* Type Offset=1446 */
+
+ /* Parameter nRows */
+
+/* 4682 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4684 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 4686 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4688 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4690 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 4692 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_summary */
+
+/* 4694 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4696 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4700 */ NdrFcShort( 0xf ), /* 15 */
+/* 4702 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 4704 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4706 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4708 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 4710 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4712 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4714 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4716 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4718 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter accessible */
+
+/* 4720 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 4722 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 4724 */ NdrFcShort( 0x2e ), /* Type Offset=46 */
+
+ /* Return value */
+
+/* 4726 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4728 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 4730 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_isColumnSelected */
+
+/* 4732 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4734 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4738 */ NdrFcShort( 0x10 ), /* 16 */
+/* 4740 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 4742 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4744 */ NdrFcShort( 0x21 ), /* 33 */
+/* 4746 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 4748 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4750 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4752 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4754 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4756 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter column */
+
+/* 4758 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 4760 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 4762 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter isSelected */
+
+/* 4764 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4766 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 4768 */ 0x3, /* FC_SMALL */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4770 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4772 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 4774 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_isRowSelected */
+
+/* 4776 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4778 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4782 */ NdrFcShort( 0x11 ), /* 17 */
+/* 4784 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 4786 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4788 */ NdrFcShort( 0x21 ), /* 33 */
+/* 4790 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 4792 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4794 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4796 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4798 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4800 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+/* 4802 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 4804 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 4806 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter isSelected */
+
+/* 4808 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4810 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 4812 */ 0x3, /* FC_SMALL */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4814 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4816 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 4818 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure selectRow */
+
+/* 4820 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4822 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4826 */ NdrFcShort( 0x12 ), /* 18 */
+/* 4828 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 4830 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4832 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4834 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 4836 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4838 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4840 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4842 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4844 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+/* 4846 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 4848 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 4850 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4852 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4854 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 4856 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure selectColumn */
+
+/* 4858 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4860 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4864 */ NdrFcShort( 0x13 ), /* 19 */
+/* 4866 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 4868 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4870 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4872 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 4874 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4876 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4878 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4880 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4882 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter column */
+
+/* 4884 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 4886 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 4888 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4890 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4892 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 4894 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure unselectRow */
+
+/* 4896 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4898 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4902 */ NdrFcShort( 0x14 ), /* 20 */
+/* 4904 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 4906 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4908 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4910 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 4912 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4914 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4916 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4918 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4920 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+/* 4922 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 4924 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 4926 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4928 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4930 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 4932 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure unselectColumn */
+
+/* 4934 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4936 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4940 */ NdrFcShort( 0x15 ), /* 21 */
+/* 4942 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 4944 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4946 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4948 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 4950 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4952 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4954 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4956 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4958 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter column */
+
+/* 4960 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 4962 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 4964 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4966 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4968 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 4970 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_modelChange */
+
+/* 4972 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4974 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4978 */ NdrFcShort( 0x16 ), /* 22 */
+/* 4980 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 4982 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4984 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4986 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 4988 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4990 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4992 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4994 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4996 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter modelChange */
+
+/* 4998 */ NdrFcShort( 0x6113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=24 */
+/* 5000 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 5002 */ NdrFcShort( 0x57a ), /* Type Offset=1402 */
+
+ /* Return value */
+
+/* 5004 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 5006 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 5008 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_columnHeaderCells */
+
+/* 5010 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 5012 */ NdrFcLong( 0x0 ), /* 0 */
+/* 5016 */ NdrFcShort( 0x4 ), /* 4 */
+/* 5018 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 5020 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5022 */ NdrFcShort( 0x24 ), /* 36 */
+/* 5024 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 5026 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 5028 */ NdrFcShort( 0x1 ), /* 1 */
+/* 5030 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5032 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5034 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter cellAccessibles */
+
+/* 5036 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
+/* 5038 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 5040 */ NdrFcShort( 0x588 ), /* Type Offset=1416 */
+
+ /* Parameter nColumnHeaderCells */
+
+/* 5042 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 5044 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 5046 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 5048 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 5050 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 5052 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_rowHeaderCells */
+
+/* 5054 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 5056 */ NdrFcLong( 0x0 ), /* 0 */
+/* 5060 */ NdrFcShort( 0x7 ), /* 7 */
+/* 5062 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 5064 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5066 */ NdrFcShort( 0x24 ), /* 36 */
+/* 5068 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 5070 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 5072 */ NdrFcShort( 0x1 ), /* 1 */
+/* 5074 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5076 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5078 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter cellAccessibles */
+
+/* 5080 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
+/* 5082 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 5084 */ NdrFcShort( 0x588 ), /* Type Offset=1416 */
+
+ /* Parameter nRowHeaderCells */
+
+/* 5086 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 5088 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 5090 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 5092 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 5094 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 5096 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_isSelected */
+
+/* 5098 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 5100 */ NdrFcLong( 0x0 ), /* 0 */
+/* 5104 */ NdrFcShort( 0x9 ), /* 9 */
+/* 5106 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 5108 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5110 */ NdrFcShort( 0x21 ), /* 33 */
+/* 5112 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 5114 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 5116 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5118 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5120 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5122 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter isSelected */
+
+/* 5124 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 5126 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 5128 */ 0x3, /* FC_SMALL */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 5130 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 5132 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 5134 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_rowColumnExtents */
+
+/* 5136 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 5138 */ NdrFcLong( 0x0 ), /* 0 */
+/* 5142 */ NdrFcShort( 0xa ), /* 10 */
+/* 5144 */ NdrFcShort( 0x38 ), /* X64 Stack size/offset = 56 */
+/* 5146 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5148 */ NdrFcShort( 0x91 ), /* 145 */
+/* 5150 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x6, /* 6 */
+/* 5152 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 5154 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5156 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5158 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5160 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+/* 5162 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 5164 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 5166 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter column */
+
+/* 5168 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 5170 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 5172 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter rowExtents */
+
+/* 5174 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 5176 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 5178 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter columnExtents */
+
+/* 5180 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 5182 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 5184 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter isSelected */
+
+/* 5186 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 5188 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 5190 */ 0x3, /* FC_SMALL */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 5192 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 5194 */ NdrFcShort( 0x30 ), /* X64 Stack size/offset = 48 */
+/* 5196 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_table */
+
+/* 5198 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 5200 */ NdrFcLong( 0x0 ), /* 0 */
+/* 5204 */ NdrFcShort( 0xb ), /* 11 */
+/* 5206 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 5208 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5210 */ NdrFcShort( 0x8 ), /* 8 */
+/* 5212 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 5214 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 5216 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5218 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5220 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5222 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter table */
+
+/* 5224 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 5226 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 5228 */ NdrFcShort( 0x2e ), /* Type Offset=46 */
+
+ /* Return value */
+
+/* 5230 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 5232 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 5234 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_imagePosition */
+
+/* 5236 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 5238 */ NdrFcLong( 0x0 ), /* 0 */
+/* 5242 */ NdrFcShort( 0x4 ), /* 4 */
+/* 5244 */ NdrFcShort( 0x28 ), /* X64 Stack size/offset = 40 */
+/* 5246 */ NdrFcShort( 0x6 ), /* 6 */
+/* 5248 */ NdrFcShort( 0x40 ), /* 64 */
+/* 5250 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x4, /* 4 */
+/* 5252 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 5254 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5256 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5258 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5260 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter coordinateType */
+
+/* 5262 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 5264 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 5266 */ 0xd, /* FC_ENUM16 */
+ 0x0, /* 0 */
+
+ /* Parameter x */
+
+/* 5268 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 5270 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 5272 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter y */
+
+/* 5274 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 5276 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 5278 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 5280 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 5282 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 5284 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_imageSize */
+
+/* 5286 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 5288 */ NdrFcLong( 0x0 ), /* 0 */
+/* 5292 */ NdrFcShort( 0x5 ), /* 5 */
+/* 5294 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 5296 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5298 */ NdrFcShort( 0x40 ), /* 64 */
+/* 5300 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 5302 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 5304 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5306 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5308 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5310 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter height */
+
+/* 5312 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 5314 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 5316 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter width */
+
+/* 5318 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 5320 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 5322 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 5324 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 5326 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 5328 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_toolkitName */
+
+/* 5330 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 5332 */ NdrFcLong( 0x0 ), /* 0 */
+/* 5336 */ NdrFcShort( 0x5 ), /* 5 */
+/* 5338 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 5340 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5342 */ NdrFcShort( 0x8 ), /* 8 */
+/* 5344 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 5346 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 5348 */ NdrFcShort( 0x1 ), /* 1 */
+/* 5350 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5352 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5354 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter name */
+
+/* 5356 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 5358 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 5360 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 5362 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 5364 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 5366 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_toolkitVersion */
+
+/* 5368 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 5370 */ NdrFcLong( 0x0 ), /* 0 */
+/* 5374 */ NdrFcShort( 0x6 ), /* 6 */
+/* 5376 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 5378 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5380 */ NdrFcShort( 0x8 ), /* 8 */
+/* 5382 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 5384 */ 0xa, /* 10 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 5386 */ NdrFcShort( 0x1 ), /* 1 */
+/* 5388 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5390 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5392 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter version */
+
+/* 5394 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 5396 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 5398 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 5400 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 5402 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 5404 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_anchorTarget */
+
+/* 5406 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 5408 */ NdrFcLong( 0x0 ), /* 0 */
+/* 5412 */ NdrFcShort( 0x3 ), /* 3 */
+/* 5414 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 5416 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5418 */ NdrFcShort( 0x8 ), /* 8 */
+/* 5420 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 5422 */ 0xa, /* 10 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 5424 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5426 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5428 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5430 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter accessible */
+
+/* 5432 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 5434 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 5436 */ NdrFcShort( 0x2e ), /* Type Offset=46 */
+
+ /* Return value */
+
+/* 5438 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 5440 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 5442 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ 0x0
+ }
+ };
+
+static const ia2_api_all_MIDL_TYPE_FORMAT_STRING ia2_api_all__MIDL_TypeFormatString =
+ {
+ 0,
+ {
+ NdrFcShort( 0x0 ), /* 0 */
+/* 2 */
+ 0x11, 0x4, /* FC_RP [alloced_on_stack] */
+/* 4 */ NdrFcShort( 0x1c ), /* Offset= 28 (32) */
+/* 6 */
+ 0x13, 0x0, /* FC_OP */
+/* 8 */ NdrFcShort( 0xe ), /* Offset= 14 (22) */
+/* 10 */
+ 0x1b, /* FC_CARRAY */
+ 0x1, /* 1 */
+/* 12 */ NdrFcShort( 0x2 ), /* 2 */
+/* 14 */ 0x9, /* Corr desc: FC_ULONG */
+ 0x0, /* */
+/* 16 */ NdrFcShort( 0xfffc ), /* -4 */
+/* 18 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 20 */ 0x6, /* FC_SHORT */
+ 0x5b, /* FC_END */
+/* 22 */
+ 0x17, /* FC_CSTRUCT */
+ 0x3, /* 3 */
+/* 24 */ NdrFcShort( 0x8 ), /* 8 */
+/* 26 */ NdrFcShort( 0xfff0 ), /* Offset= -16 (10) */
+/* 28 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 30 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 32 */ 0xb4, /* FC_USER_MARSHAL */
+ 0x83, /* 131 */
+/* 34 */ NdrFcShort( 0x0 ), /* 0 */
+/* 36 */ NdrFcShort( 0x8 ), /* 8 */
+/* 38 */ NdrFcShort( 0x0 ), /* 0 */
+/* 40 */ NdrFcShort( 0xffde ), /* Offset= -34 (6) */
+/* 42 */
+ 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
+/* 44 */ 0x8, /* FC_LONG */
+ 0x5c, /* FC_PAD */
+/* 46 */
+ 0x11, 0x10, /* FC_RP [pointer_deref] */
+/* 48 */ NdrFcShort( 0x2 ), /* Offset= 2 (50) */
+/* 50 */
+ 0x2f, /* FC_IP */
+ 0x5a, /* FC_CONSTANT_IID */
+/* 52 */ NdrFcLong( 0x0 ), /* 0 */
+/* 56 */ NdrFcShort( 0x0 ), /* 0 */
+/* 58 */ NdrFcShort( 0x0 ), /* 0 */
+/* 60 */ 0xc0, /* 192 */
+ 0x0, /* 0 */
+/* 62 */ 0x0, /* 0 */
+ 0x0, /* 0 */
+/* 64 */ 0x0, /* 0 */
+ 0x0, /* 0 */
+/* 66 */ 0x0, /* 0 */
+ 0x46, /* 70 */
+/* 68 */
+ 0x11, 0x0, /* FC_RP */
+/* 70 */ NdrFcShort( 0x2 ), /* Offset= 2 (72) */
+/* 72 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 74 */ NdrFcShort( 0x0 ), /* 0 */
+/* 76 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x0, /* */
+/* 78 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 80 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 82 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x54, /* FC_DEREFERENCE */
+/* 84 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 86 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 88 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 90 */ NdrFcShort( 0xffd8 ), /* Offset= -40 (50) */
+/* 92 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 94 */
+ 0x11, 0x14, /* FC_RP [alloced_on_stack] [pointer_deref] */
+/* 96 */ NdrFcShort( 0x2 ), /* Offset= 2 (98) */
+/* 98 */
+ 0x13, 0x0, /* FC_OP */
+/* 100 */ NdrFcShort( 0x2 ), /* Offset= 2 (102) */
+/* 102 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 104 */ NdrFcShort( 0x0 ), /* 0 */
+/* 106 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x0, /* */
+/* 108 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 110 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 112 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x54, /* FC_DEREFERENCE */
+/* 114 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 116 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 118 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 120 */ NdrFcShort( 0xffa8 ), /* Offset= -88 (32) */
+/* 122 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 124 */
+ 0x11, 0x10, /* FC_RP [pointer_deref] */
+/* 126 */ NdrFcShort( 0x2 ), /* Offset= 2 (128) */
+/* 128 */
+ 0x2f, /* FC_IP */
+ 0x5a, /* FC_CONSTANT_IID */
+/* 130 */ NdrFcLong( 0x7cdf86ee ), /* 2095023854 */
+/* 134 */ NdrFcShort( 0xc3da ), /* -15398 */
+/* 136 */ NdrFcShort( 0x496a ), /* 18794 */
+/* 138 */ 0xbd, /* 189 */
+ 0xa4, /* 164 */
+/* 140 */ 0x28, /* 40 */
+ 0x1b, /* 27 */
+/* 142 */ 0x33, /* 51 */
+ 0x6e, /* 110 */
+/* 144 */ 0x1f, /* 31 */
+ 0xdc, /* 220 */
+/* 146 */
+ 0x11, 0x0, /* FC_RP */
+/* 148 */ NdrFcShort( 0x2 ), /* Offset= 2 (150) */
+/* 150 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 152 */ NdrFcShort( 0x0 ), /* 0 */
+/* 154 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x0, /* */
+/* 156 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 158 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 160 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x54, /* FC_DEREFERENCE */
+/* 162 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 164 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 166 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 168 */ NdrFcShort( 0xffd8 ), /* Offset= -40 (128) */
+/* 170 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 172 */
+ 0x11, 0x14, /* FC_RP [alloced_on_stack] [pointer_deref] */
+/* 174 */ NdrFcShort( 0x2 ), /* Offset= 2 (176) */
+/* 176 */
+ 0x13, 0x0, /* FC_OP */
+/* 178 */ NdrFcShort( 0x2 ), /* Offset= 2 (180) */
+/* 180 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 182 */ NdrFcShort( 0x0 ), /* 0 */
+/* 184 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x0, /* */
+/* 186 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 188 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 190 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x54, /* FC_DEREFERENCE */
+/* 192 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 194 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 196 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 198 */ NdrFcShort( 0xff5a ), /* Offset= -166 (32) */
+/* 200 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 202 */
+ 0x11, 0x4, /* FC_RP [alloced_on_stack] */
+/* 204 */ NdrFcShort( 0x1a ), /* Offset= 26 (230) */
+/* 206 */
+ 0x13, 0x0, /* FC_OP */
+/* 208 */ NdrFcShort( 0x2 ), /* Offset= 2 (210) */
+/* 210 */
+ 0x2a, /* FC_ENCAPSULATED_UNION */
+ 0x48, /* 72 */
+/* 212 */ NdrFcShort( 0x4 ), /* 4 */
+/* 214 */ NdrFcShort( 0x2 ), /* 2 */
+/* 216 */ NdrFcLong( 0x48746457 ), /* 1215587415 */
+/* 220 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
+/* 222 */ NdrFcLong( 0x52746457 ), /* 1383359575 */
+/* 226 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
+/* 228 */ NdrFcShort( 0xffff ), /* Offset= -1 (227) */
+/* 230 */ 0xb4, /* FC_USER_MARSHAL */
+ 0x83, /* 131 */
+/* 232 */ NdrFcShort( 0x1 ), /* 1 */
+/* 234 */ NdrFcShort( 0x8 ), /* 8 */
+/* 236 */ NdrFcShort( 0x0 ), /* 0 */
+/* 238 */ NdrFcShort( 0xffe0 ), /* Offset= -32 (206) */
+/* 240 */
+ 0x11, 0x4, /* FC_RP [alloced_on_stack] */
+/* 242 */ NdrFcShort( 0x2 ), /* Offset= 2 (244) */
+/* 244 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 246 */ NdrFcShort( 0x18 ), /* 24 */
+/* 248 */ NdrFcShort( 0x0 ), /* 0 */
+/* 250 */ NdrFcShort( 0x0 ), /* Offset= 0 (250) */
+/* 252 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 254 */ NdrFcShort( 0xff22 ), /* Offset= -222 (32) */
+/* 256 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 258 */ NdrFcShort( 0xff1e ), /* Offset= -226 (32) */
+/* 260 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 262 */ NdrFcShort( 0xff1a ), /* Offset= -230 (32) */
+/* 264 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 266 */
+ 0x12, 0x0, /* FC_UP */
+/* 268 */ NdrFcShort( 0xff0a ), /* Offset= -246 (22) */
+/* 270 */ 0xb4, /* FC_USER_MARSHAL */
+ 0x83, /* 131 */
+/* 272 */ NdrFcShort( 0x0 ), /* 0 */
+/* 274 */ NdrFcShort( 0x8 ), /* 8 */
+/* 276 */ NdrFcShort( 0x0 ), /* 0 */
+/* 278 */ NdrFcShort( 0xfff4 ), /* Offset= -12 (266) */
+/* 280 */
+ 0x11, 0x4, /* FC_RP [alloced_on_stack] */
+/* 282 */ NdrFcShort( 0x3a2 ), /* Offset= 930 (1212) */
+/* 284 */
+ 0x13, 0x0, /* FC_OP */
+/* 286 */ NdrFcShort( 0x38a ), /* Offset= 906 (1192) */
+/* 288 */
+ 0x2b, /* FC_NON_ENCAPSULATED_UNION */
+ 0x9, /* FC_ULONG */
+/* 290 */ 0x7, /* Corr desc: FC_USHORT */
+ 0x0, /* */
+/* 292 */ NdrFcShort( 0xfff8 ), /* -8 */
+/* 294 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 296 */ NdrFcShort( 0x2 ), /* Offset= 2 (298) */
+/* 298 */ NdrFcShort( 0x10 ), /* 16 */
+/* 300 */ NdrFcShort( 0x2f ), /* 47 */
+/* 302 */ NdrFcLong( 0x14 ), /* 20 */
+/* 306 */ NdrFcShort( 0x800b ), /* Simple arm type: FC_HYPER */
+/* 308 */ NdrFcLong( 0x3 ), /* 3 */
+/* 312 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
+/* 314 */ NdrFcLong( 0x11 ), /* 17 */
+/* 318 */ NdrFcShort( 0x8001 ), /* Simple arm type: FC_BYTE */
+/* 320 */ NdrFcLong( 0x2 ), /* 2 */
+/* 324 */ NdrFcShort( 0x8006 ), /* Simple arm type: FC_SHORT */
+/* 326 */ NdrFcLong( 0x4 ), /* 4 */
+/* 330 */ NdrFcShort( 0x800a ), /* Simple arm type: FC_FLOAT */
+/* 332 */ NdrFcLong( 0x5 ), /* 5 */
+/* 336 */ NdrFcShort( 0x800c ), /* Simple arm type: FC_DOUBLE */
+/* 338 */ NdrFcLong( 0xb ), /* 11 */
+/* 342 */ NdrFcShort( 0x8006 ), /* Simple arm type: FC_SHORT */
+/* 344 */ NdrFcLong( 0xa ), /* 10 */
+/* 348 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
+/* 350 */ NdrFcLong( 0x6 ), /* 6 */
+/* 354 */ NdrFcShort( 0xe8 ), /* Offset= 232 (586) */
+/* 356 */ NdrFcLong( 0x7 ), /* 7 */
+/* 360 */ NdrFcShort( 0x800c ), /* Simple arm type: FC_DOUBLE */
+/* 362 */ NdrFcLong( 0x8 ), /* 8 */
+/* 366 */ NdrFcShort( 0xfe98 ), /* Offset= -360 (6) */
+/* 368 */ NdrFcLong( 0xd ), /* 13 */
+/* 372 */ NdrFcShort( 0xfebe ), /* Offset= -322 (50) */
+/* 374 */ NdrFcLong( 0x9 ), /* 9 */
+/* 378 */ NdrFcShort( 0xd6 ), /* Offset= 214 (592) */
+/* 380 */ NdrFcLong( 0x2000 ), /* 8192 */
+/* 384 */ NdrFcShort( 0xe2 ), /* Offset= 226 (610) */
+/* 386 */ NdrFcLong( 0x24 ), /* 36 */
+/* 390 */ NdrFcShort( 0x2d8 ), /* Offset= 728 (1118) */
+/* 392 */ NdrFcLong( 0x4024 ), /* 16420 */
+/* 396 */ NdrFcShort( 0x2d2 ), /* Offset= 722 (1118) */
+/* 398 */ NdrFcLong( 0x4011 ), /* 16401 */
+/* 402 */ NdrFcShort( 0x2d0 ), /* Offset= 720 (1122) */
+/* 404 */ NdrFcLong( 0x4002 ), /* 16386 */
+/* 408 */ NdrFcShort( 0x2ce ), /* Offset= 718 (1126) */
+/* 410 */ NdrFcLong( 0x4003 ), /* 16387 */
+/* 414 */ NdrFcShort( 0x2cc ), /* Offset= 716 (1130) */
+/* 416 */ NdrFcLong( 0x4014 ), /* 16404 */
+/* 420 */ NdrFcShort( 0x2ca ), /* Offset= 714 (1134) */
+/* 422 */ NdrFcLong( 0x4004 ), /* 16388 */
+/* 426 */ NdrFcShort( 0x2c8 ), /* Offset= 712 (1138) */
+/* 428 */ NdrFcLong( 0x4005 ), /* 16389 */
+/* 432 */ NdrFcShort( 0x2c6 ), /* Offset= 710 (1142) */
+/* 434 */ NdrFcLong( 0x400b ), /* 16395 */
+/* 438 */ NdrFcShort( 0x2b0 ), /* Offset= 688 (1126) */
+/* 440 */ NdrFcLong( 0x400a ), /* 16394 */
+/* 444 */ NdrFcShort( 0x2ae ), /* Offset= 686 (1130) */
+/* 446 */ NdrFcLong( 0x4006 ), /* 16390 */
+/* 450 */ NdrFcShort( 0x2b8 ), /* Offset= 696 (1146) */
+/* 452 */ NdrFcLong( 0x4007 ), /* 16391 */
+/* 456 */ NdrFcShort( 0x2ae ), /* Offset= 686 (1142) */
+/* 458 */ NdrFcLong( 0x4008 ), /* 16392 */
+/* 462 */ NdrFcShort( 0x2b0 ), /* Offset= 688 (1150) */
+/* 464 */ NdrFcLong( 0x400d ), /* 16397 */
+/* 468 */ NdrFcShort( 0x2ae ), /* Offset= 686 (1154) */
+/* 470 */ NdrFcLong( 0x4009 ), /* 16393 */
+/* 474 */ NdrFcShort( 0x2ac ), /* Offset= 684 (1158) */
+/* 476 */ NdrFcLong( 0x6000 ), /* 24576 */
+/* 480 */ NdrFcShort( 0x2aa ), /* Offset= 682 (1162) */
+/* 482 */ NdrFcLong( 0x400c ), /* 16396 */
+/* 486 */ NdrFcShort( 0x2a8 ), /* Offset= 680 (1166) */
+/* 488 */ NdrFcLong( 0x10 ), /* 16 */
+/* 492 */ NdrFcShort( 0x8002 ), /* Simple arm type: FC_CHAR */
+/* 494 */ NdrFcLong( 0x12 ), /* 18 */
+/* 498 */ NdrFcShort( 0x8006 ), /* Simple arm type: FC_SHORT */
+/* 500 */ NdrFcLong( 0x13 ), /* 19 */
+/* 504 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
+/* 506 */ NdrFcLong( 0x15 ), /* 21 */
+/* 510 */ NdrFcShort( 0x800b ), /* Simple arm type: FC_HYPER */
+/* 512 */ NdrFcLong( 0x16 ), /* 22 */
+/* 516 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
+/* 518 */ NdrFcLong( 0x17 ), /* 23 */
+/* 522 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
+/* 524 */ NdrFcLong( 0xe ), /* 14 */
+/* 528 */ NdrFcShort( 0x286 ), /* Offset= 646 (1174) */
+/* 530 */ NdrFcLong( 0x400e ), /* 16398 */
+/* 534 */ NdrFcShort( 0x28a ), /* Offset= 650 (1184) */
+/* 536 */ NdrFcLong( 0x4010 ), /* 16400 */
+/* 540 */ NdrFcShort( 0x288 ), /* Offset= 648 (1188) */
+/* 542 */ NdrFcLong( 0x4012 ), /* 16402 */
+/* 546 */ NdrFcShort( 0x244 ), /* Offset= 580 (1126) */
+/* 548 */ NdrFcLong( 0x4013 ), /* 16403 */
+/* 552 */ NdrFcShort( 0x242 ), /* Offset= 578 (1130) */
+/* 554 */ NdrFcLong( 0x4015 ), /* 16405 */
+/* 558 */ NdrFcShort( 0x240 ), /* Offset= 576 (1134) */
+/* 560 */ NdrFcLong( 0x4016 ), /* 16406 */
+/* 564 */ NdrFcShort( 0x236 ), /* Offset= 566 (1130) */
+/* 566 */ NdrFcLong( 0x4017 ), /* 16407 */
+/* 570 */ NdrFcShort( 0x230 ), /* Offset= 560 (1130) */
+/* 572 */ NdrFcLong( 0x0 ), /* 0 */
+/* 576 */ NdrFcShort( 0x0 ), /* Offset= 0 (576) */
+/* 578 */ NdrFcLong( 0x1 ), /* 1 */
+/* 582 */ NdrFcShort( 0x0 ), /* Offset= 0 (582) */
+/* 584 */ NdrFcShort( 0xffff ), /* Offset= -1 (583) */
+/* 586 */
+ 0x15, /* FC_STRUCT */
+ 0x7, /* 7 */
+/* 588 */ NdrFcShort( 0x8 ), /* 8 */
+/* 590 */ 0xb, /* FC_HYPER */
+ 0x5b, /* FC_END */
+/* 592 */
+ 0x2f, /* FC_IP */
+ 0x5a, /* FC_CONSTANT_IID */
+/* 594 */ NdrFcLong( 0x20400 ), /* 132096 */
+/* 598 */ NdrFcShort( 0x0 ), /* 0 */
+/* 600 */ NdrFcShort( 0x0 ), /* 0 */
+/* 602 */ 0xc0, /* 192 */
+ 0x0, /* 0 */
+/* 604 */ 0x0, /* 0 */
+ 0x0, /* 0 */
+/* 606 */ 0x0, /* 0 */
+ 0x0, /* 0 */
+/* 608 */ 0x0, /* 0 */
+ 0x46, /* 70 */
+/* 610 */
+ 0x13, 0x10, /* FC_OP [pointer_deref] */
+/* 612 */ NdrFcShort( 0x2 ), /* Offset= 2 (614) */
+/* 614 */
+ 0x13, 0x0, /* FC_OP */
+/* 616 */ NdrFcShort( 0x1e4 ), /* Offset= 484 (1100) */
+/* 618 */
+ 0x2a, /* FC_ENCAPSULATED_UNION */
+ 0x89, /* 137 */
+/* 620 */ NdrFcShort( 0x20 ), /* 32 */
+/* 622 */ NdrFcShort( 0xa ), /* 10 */
+/* 624 */ NdrFcLong( 0x8 ), /* 8 */
+/* 628 */ NdrFcShort( 0x50 ), /* Offset= 80 (708) */
+/* 630 */ NdrFcLong( 0xd ), /* 13 */
+/* 634 */ NdrFcShort( 0x70 ), /* Offset= 112 (746) */
+/* 636 */ NdrFcLong( 0x9 ), /* 9 */
+/* 640 */ NdrFcShort( 0x90 ), /* Offset= 144 (784) */
+/* 642 */ NdrFcLong( 0xc ), /* 12 */
+/* 646 */ NdrFcShort( 0xb0 ), /* Offset= 176 (822) */
+/* 648 */ NdrFcLong( 0x24 ), /* 36 */
+/* 652 */ NdrFcShort( 0x102 ), /* Offset= 258 (910) */
+/* 654 */ NdrFcLong( 0x800d ), /* 32781 */
+/* 658 */ NdrFcShort( 0x11e ), /* Offset= 286 (944) */
+/* 660 */ NdrFcLong( 0x10 ), /* 16 */
+/* 664 */ NdrFcShort( 0x138 ), /* Offset= 312 (976) */
+/* 666 */ NdrFcLong( 0x2 ), /* 2 */
+/* 670 */ NdrFcShort( 0x14e ), /* Offset= 334 (1004) */
+/* 672 */ NdrFcLong( 0x3 ), /* 3 */
+/* 676 */ NdrFcShort( 0x164 ), /* Offset= 356 (1032) */
+/* 678 */ NdrFcLong( 0x14 ), /* 20 */
+/* 682 */ NdrFcShort( 0x17a ), /* Offset= 378 (1060) */
+/* 684 */ NdrFcShort( 0xffff ), /* Offset= -1 (683) */
+/* 686 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 688 */ NdrFcShort( 0x0 ), /* 0 */
+/* 690 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 692 */ NdrFcShort( 0x0 ), /* 0 */
+/* 694 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 696 */ NdrFcLong( 0xffffffff ), /* -1 */
+/* 700 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 702 */
+ 0x13, 0x0, /* FC_OP */
+/* 704 */ NdrFcShort( 0xfd56 ), /* Offset= -682 (22) */
+/* 706 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 708 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 710 */ NdrFcShort( 0x10 ), /* 16 */
+/* 712 */ NdrFcShort( 0x0 ), /* 0 */
+/* 714 */ NdrFcShort( 0x6 ), /* Offset= 6 (720) */
+/* 716 */ 0x8, /* FC_LONG */
+ 0x40, /* FC_STRUCTPAD4 */
+/* 718 */ 0x36, /* FC_POINTER */
+ 0x5b, /* FC_END */
+/* 720 */
+ 0x11, 0x0, /* FC_RP */
+/* 722 */ NdrFcShort( 0xffdc ), /* Offset= -36 (686) */
+/* 724 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 726 */ NdrFcShort( 0x0 ), /* 0 */
+/* 728 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 730 */ NdrFcShort( 0x0 ), /* 0 */
+/* 732 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 734 */ NdrFcLong( 0xffffffff ), /* -1 */
+/* 738 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 740 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 742 */ NdrFcShort( 0xfd4c ), /* Offset= -692 (50) */
+/* 744 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 746 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 748 */ NdrFcShort( 0x10 ), /* 16 */
+/* 750 */ NdrFcShort( 0x0 ), /* 0 */
+/* 752 */ NdrFcShort( 0x6 ), /* Offset= 6 (758) */
+/* 754 */ 0x8, /* FC_LONG */
+ 0x40, /* FC_STRUCTPAD4 */
+/* 756 */ 0x36, /* FC_POINTER */
+ 0x5b, /* FC_END */
+/* 758 */
+ 0x11, 0x0, /* FC_RP */
+/* 760 */ NdrFcShort( 0xffdc ), /* Offset= -36 (724) */
+/* 762 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 764 */ NdrFcShort( 0x0 ), /* 0 */
+/* 766 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 768 */ NdrFcShort( 0x0 ), /* 0 */
+/* 770 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 772 */ NdrFcLong( 0xffffffff ), /* -1 */
+/* 776 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 778 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 780 */ NdrFcShort( 0xff44 ), /* Offset= -188 (592) */
+/* 782 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 784 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 786 */ NdrFcShort( 0x10 ), /* 16 */
+/* 788 */ NdrFcShort( 0x0 ), /* 0 */
+/* 790 */ NdrFcShort( 0x6 ), /* Offset= 6 (796) */
+/* 792 */ 0x8, /* FC_LONG */
+ 0x40, /* FC_STRUCTPAD4 */
+/* 794 */ 0x36, /* FC_POINTER */
+ 0x5b, /* FC_END */
+/* 796 */
+ 0x11, 0x0, /* FC_RP */
+/* 798 */ NdrFcShort( 0xffdc ), /* Offset= -36 (762) */
+/* 800 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 802 */ NdrFcShort( 0x0 ), /* 0 */
+/* 804 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 806 */ NdrFcShort( 0x0 ), /* 0 */
+/* 808 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 810 */ NdrFcLong( 0xffffffff ), /* -1 */
+/* 814 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 816 */
+ 0x13, 0x0, /* FC_OP */
+/* 818 */ NdrFcShort( 0x176 ), /* Offset= 374 (1192) */
+/* 820 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 822 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 824 */ NdrFcShort( 0x10 ), /* 16 */
+/* 826 */ NdrFcShort( 0x0 ), /* 0 */
+/* 828 */ NdrFcShort( 0x6 ), /* Offset= 6 (834) */
+/* 830 */ 0x8, /* FC_LONG */
+ 0x40, /* FC_STRUCTPAD4 */
+/* 832 */ 0x36, /* FC_POINTER */
+ 0x5b, /* FC_END */
+/* 834 */
+ 0x11, 0x0, /* FC_RP */
+/* 836 */ NdrFcShort( 0xffdc ), /* Offset= -36 (800) */
+/* 838 */
+ 0x2f, /* FC_IP */
+ 0x5a, /* FC_CONSTANT_IID */
+/* 840 */ NdrFcLong( 0x2f ), /* 47 */
+/* 844 */ NdrFcShort( 0x0 ), /* 0 */
+/* 846 */ NdrFcShort( 0x0 ), /* 0 */
+/* 848 */ 0xc0, /* 192 */
+ 0x0, /* 0 */
+/* 850 */ 0x0, /* 0 */
+ 0x0, /* 0 */
+/* 852 */ 0x0, /* 0 */
+ 0x0, /* 0 */
+/* 854 */ 0x0, /* 0 */
+ 0x46, /* 70 */
+/* 856 */
+ 0x1b, /* FC_CARRAY */
+ 0x0, /* 0 */
+/* 858 */ NdrFcShort( 0x1 ), /* 1 */
+/* 860 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 862 */ NdrFcShort( 0x4 ), /* 4 */
+/* 864 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 866 */ 0x1, /* FC_BYTE */
+ 0x5b, /* FC_END */
+/* 868 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 870 */ NdrFcShort( 0x18 ), /* 24 */
+/* 872 */ NdrFcShort( 0x0 ), /* 0 */
+/* 874 */ NdrFcShort( 0xa ), /* Offset= 10 (884) */
+/* 876 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 878 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 880 */ NdrFcShort( 0xffd6 ), /* Offset= -42 (838) */
+/* 882 */ 0x36, /* FC_POINTER */
+ 0x5b, /* FC_END */
+/* 884 */
+ 0x13, 0x0, /* FC_OP */
+/* 886 */ NdrFcShort( 0xffe2 ), /* Offset= -30 (856) */
+/* 888 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 890 */ NdrFcShort( 0x0 ), /* 0 */
+/* 892 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 894 */ NdrFcShort( 0x0 ), /* 0 */
+/* 896 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 898 */ NdrFcLong( 0xffffffff ), /* -1 */
+/* 902 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 904 */
+ 0x13, 0x0, /* FC_OP */
+/* 906 */ NdrFcShort( 0xffda ), /* Offset= -38 (868) */
+/* 908 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 910 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 912 */ NdrFcShort( 0x10 ), /* 16 */
+/* 914 */ NdrFcShort( 0x0 ), /* 0 */
+/* 916 */ NdrFcShort( 0x6 ), /* Offset= 6 (922) */
+/* 918 */ 0x8, /* FC_LONG */
+ 0x40, /* FC_STRUCTPAD4 */
+/* 920 */ 0x36, /* FC_POINTER */
+ 0x5b, /* FC_END */
+/* 922 */
+ 0x11, 0x0, /* FC_RP */
+/* 924 */ NdrFcShort( 0xffdc ), /* Offset= -36 (888) */
+/* 926 */
+ 0x1d, /* FC_SMFARRAY */
+ 0x0, /* 0 */
+/* 928 */ NdrFcShort( 0x8 ), /* 8 */
+/* 930 */ 0x1, /* FC_BYTE */
+ 0x5b, /* FC_END */
+/* 932 */
+ 0x15, /* FC_STRUCT */
+ 0x3, /* 3 */
+/* 934 */ NdrFcShort( 0x10 ), /* 16 */
+/* 936 */ 0x8, /* FC_LONG */
+ 0x6, /* FC_SHORT */
+/* 938 */ 0x6, /* FC_SHORT */
+ 0x4c, /* FC_EMBEDDED_COMPLEX */
+/* 940 */ 0x0, /* 0 */
+ NdrFcShort( 0xfff1 ), /* Offset= -15 (926) */
+ 0x5b, /* FC_END */
+/* 944 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 946 */ NdrFcShort( 0x20 ), /* 32 */
+/* 948 */ NdrFcShort( 0x0 ), /* 0 */
+/* 950 */ NdrFcShort( 0xa ), /* Offset= 10 (960) */
+/* 952 */ 0x8, /* FC_LONG */
+ 0x40, /* FC_STRUCTPAD4 */
+/* 954 */ 0x36, /* FC_POINTER */
+ 0x4c, /* FC_EMBEDDED_COMPLEX */
+/* 956 */ 0x0, /* 0 */
+ NdrFcShort( 0xffe7 ), /* Offset= -25 (932) */
+ 0x5b, /* FC_END */
+/* 960 */
+ 0x11, 0x0, /* FC_RP */
+/* 962 */ NdrFcShort( 0xff12 ), /* Offset= -238 (724) */
+/* 964 */
+ 0x1b, /* FC_CARRAY */
+ 0x0, /* 0 */
+/* 966 */ NdrFcShort( 0x1 ), /* 1 */
+/* 968 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 970 */ NdrFcShort( 0x0 ), /* 0 */
+/* 972 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 974 */ 0x1, /* FC_BYTE */
+ 0x5b, /* FC_END */
+/* 976 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 978 */ NdrFcShort( 0x10 ), /* 16 */
+/* 980 */ NdrFcShort( 0x0 ), /* 0 */
+/* 982 */ NdrFcShort( 0x6 ), /* Offset= 6 (988) */
+/* 984 */ 0x8, /* FC_LONG */
+ 0x40, /* FC_STRUCTPAD4 */
+/* 986 */ 0x36, /* FC_POINTER */
+ 0x5b, /* FC_END */
+/* 988 */
+ 0x13, 0x0, /* FC_OP */
+/* 990 */ NdrFcShort( 0xffe6 ), /* Offset= -26 (964) */
+/* 992 */
+ 0x1b, /* FC_CARRAY */
+ 0x1, /* 1 */
+/* 994 */ NdrFcShort( 0x2 ), /* 2 */
+/* 996 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 998 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1000 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 1002 */ 0x6, /* FC_SHORT */
+ 0x5b, /* FC_END */
+/* 1004 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 1006 */ NdrFcShort( 0x10 ), /* 16 */
+/* 1008 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1010 */ NdrFcShort( 0x6 ), /* Offset= 6 (1016) */
+/* 1012 */ 0x8, /* FC_LONG */
+ 0x40, /* FC_STRUCTPAD4 */
+/* 1014 */ 0x36, /* FC_POINTER */
+ 0x5b, /* FC_END */
+/* 1016 */
+ 0x13, 0x0, /* FC_OP */
+/* 1018 */ NdrFcShort( 0xffe6 ), /* Offset= -26 (992) */
+/* 1020 */
+ 0x1b, /* FC_CARRAY */
+ 0x3, /* 3 */
+/* 1022 */ NdrFcShort( 0x4 ), /* 4 */
+/* 1024 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 1026 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1028 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 1030 */ 0x8, /* FC_LONG */
+ 0x5b, /* FC_END */
+/* 1032 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 1034 */ NdrFcShort( 0x10 ), /* 16 */
+/* 1036 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1038 */ NdrFcShort( 0x6 ), /* Offset= 6 (1044) */
+/* 1040 */ 0x8, /* FC_LONG */
+ 0x40, /* FC_STRUCTPAD4 */
+/* 1042 */ 0x36, /* FC_POINTER */
+ 0x5b, /* FC_END */
+/* 1044 */
+ 0x13, 0x0, /* FC_OP */
+/* 1046 */ NdrFcShort( 0xffe6 ), /* Offset= -26 (1020) */
+/* 1048 */
+ 0x1b, /* FC_CARRAY */
+ 0x7, /* 7 */
+/* 1050 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1052 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 1054 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1056 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 1058 */ 0xb, /* FC_HYPER */
+ 0x5b, /* FC_END */
+/* 1060 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 1062 */ NdrFcShort( 0x10 ), /* 16 */
+/* 1064 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1066 */ NdrFcShort( 0x6 ), /* Offset= 6 (1072) */
+/* 1068 */ 0x8, /* FC_LONG */
+ 0x40, /* FC_STRUCTPAD4 */
+/* 1070 */ 0x36, /* FC_POINTER */
+ 0x5b, /* FC_END */
+/* 1072 */
+ 0x13, 0x0, /* FC_OP */
+/* 1074 */ NdrFcShort( 0xffe6 ), /* Offset= -26 (1048) */
+/* 1076 */
+ 0x15, /* FC_STRUCT */
+ 0x3, /* 3 */
+/* 1078 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1080 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 1082 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 1084 */
+ 0x1b, /* FC_CARRAY */
+ 0x3, /* 3 */
+/* 1086 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1088 */ 0x7, /* Corr desc: FC_USHORT */
+ 0x0, /* */
+/* 1090 */ NdrFcShort( 0xffc8 ), /* -56 */
+/* 1092 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 1094 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 1096 */ NdrFcShort( 0xffec ), /* Offset= -20 (1076) */
+/* 1098 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 1100 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 1102 */ NdrFcShort( 0x38 ), /* 56 */
+/* 1104 */ NdrFcShort( 0xffec ), /* Offset= -20 (1084) */
+/* 1106 */ NdrFcShort( 0x0 ), /* Offset= 0 (1106) */
+/* 1108 */ 0x6, /* FC_SHORT */
+ 0x6, /* FC_SHORT */
+/* 1110 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 1112 */ 0x40, /* FC_STRUCTPAD4 */
+ 0x4c, /* FC_EMBEDDED_COMPLEX */
+/* 1114 */ 0x0, /* 0 */
+ NdrFcShort( 0xfe0f ), /* Offset= -497 (618) */
+ 0x5b, /* FC_END */
+/* 1118 */
+ 0x13, 0x0, /* FC_OP */
+/* 1120 */ NdrFcShort( 0xff04 ), /* Offset= -252 (868) */
+/* 1122 */
+ 0x13, 0x8, /* FC_OP [simple_pointer] */
+/* 1124 */ 0x1, /* FC_BYTE */
+ 0x5c, /* FC_PAD */
+/* 1126 */
+ 0x13, 0x8, /* FC_OP [simple_pointer] */
+/* 1128 */ 0x6, /* FC_SHORT */
+ 0x5c, /* FC_PAD */
+/* 1130 */
+ 0x13, 0x8, /* FC_OP [simple_pointer] */
+/* 1132 */ 0x8, /* FC_LONG */
+ 0x5c, /* FC_PAD */
+/* 1134 */
+ 0x13, 0x8, /* FC_OP [simple_pointer] */
+/* 1136 */ 0xb, /* FC_HYPER */
+ 0x5c, /* FC_PAD */
+/* 1138 */
+ 0x13, 0x8, /* FC_OP [simple_pointer] */
+/* 1140 */ 0xa, /* FC_FLOAT */
+ 0x5c, /* FC_PAD */
+/* 1142 */
+ 0x13, 0x8, /* FC_OP [simple_pointer] */
+/* 1144 */ 0xc, /* FC_DOUBLE */
+ 0x5c, /* FC_PAD */
+/* 1146 */
+ 0x13, 0x0, /* FC_OP */
+/* 1148 */ NdrFcShort( 0xfdce ), /* Offset= -562 (586) */
+/* 1150 */
+ 0x13, 0x10, /* FC_OP [pointer_deref] */
+/* 1152 */ NdrFcShort( 0xfb86 ), /* Offset= -1146 (6) */
+/* 1154 */
+ 0x13, 0x10, /* FC_OP [pointer_deref] */
+/* 1156 */ NdrFcShort( 0xfbae ), /* Offset= -1106 (50) */
+/* 1158 */
+ 0x13, 0x10, /* FC_OP [pointer_deref] */
+/* 1160 */ NdrFcShort( 0xfdc8 ), /* Offset= -568 (592) */
+/* 1162 */
+ 0x13, 0x10, /* FC_OP [pointer_deref] */
+/* 1164 */ NdrFcShort( 0xfdd6 ), /* Offset= -554 (610) */
+/* 1166 */
+ 0x13, 0x10, /* FC_OP [pointer_deref] */
+/* 1168 */ NdrFcShort( 0x2 ), /* Offset= 2 (1170) */
+/* 1170 */
+ 0x13, 0x0, /* FC_OP */
+/* 1172 */ NdrFcShort( 0x14 ), /* Offset= 20 (1192) */
+/* 1174 */
+ 0x15, /* FC_STRUCT */
+ 0x7, /* 7 */
+/* 1176 */ NdrFcShort( 0x10 ), /* 16 */
+/* 1178 */ 0x6, /* FC_SHORT */
+ 0x1, /* FC_BYTE */
+/* 1180 */ 0x1, /* FC_BYTE */
+ 0x8, /* FC_LONG */
+/* 1182 */ 0xb, /* FC_HYPER */
+ 0x5b, /* FC_END */
+/* 1184 */
+ 0x13, 0x0, /* FC_OP */
+/* 1186 */ NdrFcShort( 0xfff4 ), /* Offset= -12 (1174) */
+/* 1188 */
+ 0x13, 0x8, /* FC_OP [simple_pointer] */
+/* 1190 */ 0x2, /* FC_CHAR */
+ 0x5c, /* FC_PAD */
+/* 1192 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x7, /* 7 */
+/* 1194 */ NdrFcShort( 0x20 ), /* 32 */
+/* 1196 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1198 */ NdrFcShort( 0x0 ), /* Offset= 0 (1198) */
+/* 1200 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 1202 */ 0x6, /* FC_SHORT */
+ 0x6, /* FC_SHORT */
+/* 1204 */ 0x6, /* FC_SHORT */
+ 0x6, /* FC_SHORT */
+/* 1206 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 1208 */ NdrFcShort( 0xfc68 ), /* Offset= -920 (288) */
+/* 1210 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 1212 */ 0xb4, /* FC_USER_MARSHAL */
+ 0x83, /* 131 */
+/* 1214 */ NdrFcShort( 0x2 ), /* 2 */
+/* 1216 */ NdrFcShort( 0x18 ), /* 24 */
+/* 1218 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1220 */ NdrFcShort( 0xfc58 ), /* Offset= -936 (284) */
+/* 1222 */
+ 0x11, 0x14, /* FC_RP [alloced_on_stack] [pointer_deref] */
+/* 1224 */ NdrFcShort( 0x2 ), /* Offset= 2 (1226) */
+/* 1226 */
+ 0x13, 0x0, /* FC_OP */
+/* 1228 */ NdrFcShort( 0x2 ), /* Offset= 2 (1230) */
+/* 1230 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 1232 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1234 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x54, /* FC_DEREFERENCE */
+/* 1236 */ NdrFcShort( 0x20 ), /* X64 Stack size/offset = 32 */
+/* 1238 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 1240 */ NdrFcLong( 0xffffffff ), /* -1 */
+/* 1244 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 1246 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 1248 */ NdrFcShort( 0xfb52 ), /* Offset= -1198 (50) */
+/* 1250 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 1252 */
+ 0x11, 0x0, /* FC_RP */
+/* 1254 */ NdrFcShort( 0x6 ), /* Offset= 6 (1260) */
+/* 1256 */
+ 0x12, 0x0, /* FC_UP */
+/* 1258 */ NdrFcShort( 0xffbe ), /* Offset= -66 (1192) */
+/* 1260 */ 0xb4, /* FC_USER_MARSHAL */
+ 0x83, /* 131 */
+/* 1262 */ NdrFcShort( 0x2 ), /* 2 */
+/* 1264 */ NdrFcShort( 0x18 ), /* 24 */
+/* 1266 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1268 */ NdrFcShort( 0xfff4 ), /* Offset= -12 (1256) */
+/* 1270 */
+ 0x11, 0x4, /* FC_RP [alloced_on_stack] */
+/* 1272 */ NdrFcShort( 0x2 ), /* Offset= 2 (1274) */
+/* 1274 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 1276 */ NdrFcShort( 0x10 ), /* 16 */
+/* 1278 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1280 */ NdrFcShort( 0x0 ), /* Offset= 0 (1280) */
+/* 1282 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 1284 */ NdrFcShort( 0xfb1c ), /* Offset= -1252 (32) */
+/* 1286 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 1288 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 1290 */
+ 0x11, 0x0, /* FC_RP */
+/* 1292 */ NdrFcShort( 0xfc02 ), /* Offset= -1022 (270) */
+/* 1294 */
+ 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
+/* 1296 */ 0x3, /* FC_SMALL */
+ 0x5c, /* FC_PAD */
+/* 1298 */
+ 0x11, 0x10, /* FC_RP [pointer_deref] */
+/* 1300 */ NdrFcShort( 0x2 ), /* Offset= 2 (1302) */
+/* 1302 */
+ 0x2f, /* FC_IP */
+ 0x5a, /* FC_CONSTANT_IID */
+/* 1304 */ NdrFcLong( 0x1c20f2b ), /* 29495083 */
+/* 1308 */ NdrFcShort( 0x3dd2 ), /* 15826 */
+/* 1310 */ NdrFcShort( 0x400f ), /* 16399 */
+/* 1312 */ 0x94, /* 148 */
+ 0x9f, /* 159 */
+/* 1314 */ 0xad, /* 173 */
+ 0x0, /* 0 */
+/* 1316 */ 0xbd, /* 189 */
+ 0xab, /* 171 */
+/* 1318 */ 0x1d, /* 29 */
+ 0x41, /* 65 */
+/* 1320 */
+ 0x11, 0x14, /* FC_RP [alloced_on_stack] [pointer_deref] */
+/* 1322 */ NdrFcShort( 0x2 ), /* Offset= 2 (1324) */
+/* 1324 */
+ 0x13, 0x0, /* FC_OP */
+/* 1326 */ NdrFcShort( 0x2 ), /* Offset= 2 (1328) */
+/* 1328 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 1330 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1332 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x54, /* FC_DEREFERENCE */
+/* 1334 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1336 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 1338 */ NdrFcLong( 0xffffffff ), /* -1 */
+/* 1342 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 1344 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 1346 */ NdrFcShort( 0xffd4 ), /* Offset= -44 (1302) */
+/* 1348 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 1350 */
+ 0x11, 0x10, /* FC_RP [pointer_deref] */
+/* 1352 */ NdrFcShort( 0x2 ), /* Offset= 2 (1354) */
+/* 1354 */
+ 0x2f, /* FC_IP */
+ 0x5a, /* FC_CONSTANT_IID */
+/* 1356 */ NdrFcLong( 0x35ad8070 ), /* 900563056 */
+/* 1360 */ NdrFcShort( 0xc20c ), /* -15860 */
+/* 1362 */ NdrFcShort( 0x4fb4 ), /* 20404 */
+/* 1364 */ 0xb0, /* 176 */
+ 0x94, /* 148 */
+/* 1366 */ 0xf4, /* 244 */
+ 0xf7, /* 247 */
+/* 1368 */ 0x27, /* 39 */
+ 0x5d, /* 93 */
+/* 1370 */ 0xd4, /* 212 */
+ 0x69, /* 105 */
+/* 1372 */
+ 0x11, 0x14, /* FC_RP [alloced_on_stack] [pointer_deref] */
+/* 1374 */ NdrFcShort( 0x2 ), /* Offset= 2 (1376) */
+/* 1376 */
+ 0x13, 0x0, /* FC_OP */
+/* 1378 */ NdrFcShort( 0x2 ), /* Offset= 2 (1380) */
+/* 1380 */
+ 0x1c, /* FC_CVARRAY */
+ 0x3, /* 3 */
+/* 1382 */ NdrFcShort( 0x4 ), /* 4 */
+/* 1384 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x0, /* */
+/* 1386 */ NdrFcShort( 0x8 ), /* X64 Stack size/offset = 8 */
+/* 1388 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 1390 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x54, /* FC_DEREFERENCE */
+/* 1392 */ NdrFcShort( 0x18 ), /* X64 Stack size/offset = 24 */
+/* 1394 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 1396 */ 0x8, /* FC_LONG */
+ 0x5b, /* FC_END */
+/* 1398 */
+ 0x11, 0x4, /* FC_RP [alloced_on_stack] */
+/* 1400 */ NdrFcShort( 0x2 ), /* Offset= 2 (1402) */
+/* 1402 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 1404 */ NdrFcShort( 0x14 ), /* 20 */
+/* 1406 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1408 */ NdrFcShort( 0x0 ), /* Offset= 0 (1408) */
+/* 1410 */ 0xd, /* FC_ENUM16 */
+ 0x8, /* FC_LONG */
+/* 1412 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 1414 */ 0x8, /* FC_LONG */
+ 0x5b, /* FC_END */
+/* 1416 */
+ 0x11, 0x14, /* FC_RP [alloced_on_stack] [pointer_deref] */
+/* 1418 */ NdrFcShort( 0x2 ), /* Offset= 2 (1420) */
+/* 1420 */
+ 0x13, 0x0, /* FC_OP */
+/* 1422 */ NdrFcShort( 0x2 ), /* Offset= 2 (1424) */
+/* 1424 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 1426 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1428 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x54, /* FC_DEREFERENCE */
+/* 1430 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1432 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 1434 */ NdrFcLong( 0xffffffff ), /* -1 */
+/* 1438 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 1440 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 1442 */ NdrFcShort( 0xfa90 ), /* Offset= -1392 (50) */
+/* 1444 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 1446 */
+ 0x11, 0x14, /* FC_RP [alloced_on_stack] [pointer_deref] */
+/* 1448 */ NdrFcShort( 0x2 ), /* Offset= 2 (1450) */
+/* 1450 */
+ 0x13, 0x0, /* FC_OP */
+/* 1452 */ NdrFcShort( 0x2 ), /* Offset= 2 (1454) */
+/* 1454 */
+ 0x1b, /* FC_CARRAY */
+ 0x3, /* 3 */
+/* 1456 */ NdrFcShort( 0x4 ), /* 4 */
+/* 1458 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x54, /* FC_DEREFERENCE */
+/* 1460 */ NdrFcShort( 0x10 ), /* X64 Stack size/offset = 16 */
+/* 1462 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 1464 */ 0x8, /* FC_LONG */
+ 0x5b, /* FC_END */
+
+ 0x0
+ }
+ };
+
+static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] =
+ {
+
+ {
+ BSTR_UserSize
+ ,BSTR_UserMarshal
+ ,BSTR_UserUnmarshal
+ ,BSTR_UserFree
+ },
+ {
+ HWND_UserSize
+ ,HWND_UserMarshal
+ ,HWND_UserUnmarshal
+ ,HWND_UserFree
+ },
+ {
+ VARIANT_UserSize
+ ,VARIANT_UserMarshal
+ ,VARIANT_UserUnmarshal
+ ,VARIANT_UserFree
+ }
+
+ };
+
+
+
+/* Standard interface: __MIDL_itf_ia2_api_all_0000_0000, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}} */
+
+
+/* Object interface: IUnknown, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
+
+
+/* Object interface: IAccessibleRelation, ver. 0.0,
+ GUID={0x7CDF86EE,0xC3DA,0x496a,{0xBD,0xA4,0x28,0x1B,0x33,0x6E,0x1F,0xDC}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleRelation_FormatStringOffsetTable[] =
+ {
+ 0,
+ 38,
+ 76,
+ 114,
+ 158
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleRelation_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleRelation_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleRelation_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleRelation_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(8) _IAccessibleRelationProxyVtbl =
+{
+ &IAccessibleRelation_ProxyInfo,
+ &IID_IAccessibleRelation,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleRelation::get_relationType */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleRelation::get_localizedRelationType */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleRelation::get_nTargets */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleRelation::get_target */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleRelation::get_targets */
+};
+
+const CInterfaceStubVtbl _IAccessibleRelationStubVtbl =
+{
+ &IID_IAccessibleRelation,
+ &IAccessibleRelation_ServerInfo,
+ 8,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Standard interface: __MIDL_itf_ia2_api_all_0000_0001, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}} */
+
+
+/* Object interface: IAccessibleAction, ver. 0.0,
+ GUID={0xB70D9F59,0x3B5A,0x4dba,{0xAB,0x9E,0x22,0x01,0x2F,0x60,0x7D,0xF5}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleAction_FormatStringOffsetTable[] =
+ {
+ 208,
+ 246,
+ 284,
+ 328,
+ 384,
+ 428
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleAction_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleAction_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleAction_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleAction_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(9) _IAccessibleActionProxyVtbl =
+{
+ &IAccessibleAction_ProxyInfo,
+ &IID_IAccessibleAction,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleAction::nActions */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleAction::doAction */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleAction::get_description */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleAction::get_keyBinding */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleAction::get_name */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleAction::get_localizedName */
+};
+
+const CInterfaceStubVtbl _IAccessibleActionStubVtbl =
+{
+ &IID_IAccessibleAction,
+ &IAccessibleAction_ServerInfo,
+ 9,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Standard interface: __MIDL_itf_ia2_api_all_0000_0002, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}} */
+
+
+/* Object interface: IDispatch, ver. 0.0,
+ GUID={0x00020400,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
+
+
+/* Object interface: IAccessible, ver. 0.0,
+ GUID={0x618736e0,0x3c3d,0x11cf,{0x81,0x0c,0x00,0xaa,0x00,0x38,0x9b,0x71}} */
+
+
+/* Object interface: IAccessible2, ver. 0.0,
+ GUID={0xE89F726E,0xC4F4,0x4c19,{0xBB,0x19,0xB6,0x47,0xD7,0xFA,0x84,0x78}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessible2_FormatStringOffsetTable[] =
+ {
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ 472,
+ 510,
+ 554,
+ 604,
+ 642,
+ 680,
+ 730,
+ 780,
+ 818,
+ 856,
+ 894,
+ 932,
+ 982,
+ 1032,
+ 1070,
+ 1108,
+ 1146,
+ 1184
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessible2_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessible2_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessible2_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessible2_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(46) _IAccessible2ProxyVtbl =
+{
+ &IAccessible2_ProxyInfo,
+ &IID_IAccessible2,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ 0 /* IDispatch::GetTypeInfoCount */ ,
+ 0 /* IDispatch::GetTypeInfo */ ,
+ 0 /* IDispatch::GetIDsOfNames */ ,
+ 0 /* IDispatch_Invoke_Proxy */ ,
+ 0 /* IAccessible::get_accParent */ ,
+ 0 /* IAccessible::get_accChildCount */ ,
+ 0 /* IAccessible::get_accChild */ ,
+ 0 /* IAccessible::get_accName */ ,
+ 0 /* IAccessible::get_accValue */ ,
+ 0 /* IAccessible::get_accDescription */ ,
+ 0 /* IAccessible::get_accRole */ ,
+ 0 /* IAccessible::get_accState */ ,
+ 0 /* IAccessible::get_accHelp */ ,
+ 0 /* IAccessible::get_accHelpTopic */ ,
+ 0 /* IAccessible::get_accKeyboardShortcut */ ,
+ 0 /* IAccessible::get_accFocus */ ,
+ 0 /* IAccessible::get_accSelection */ ,
+ 0 /* IAccessible::get_accDefaultAction */ ,
+ 0 /* IAccessible::accSelect */ ,
+ 0 /* IAccessible::accLocation */ ,
+ 0 /* IAccessible::accNavigate */ ,
+ 0 /* IAccessible::accHitTest */ ,
+ 0 /* IAccessible::accDoDefaultAction */ ,
+ 0 /* IAccessible::put_accName */ ,
+ 0 /* IAccessible::put_accValue */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_nRelations */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_relation */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_relations */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::role */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::scrollTo */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::scrollToPoint */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_groupPosition */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_states */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_extendedRole */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_localizedExtendedRole */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_nExtendedStates */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_extendedStates */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_localizedExtendedStates */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_uniqueID */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_windowHandle */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_indexInParent */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_locale */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_attributes */
+};
+
+
+static const PRPC_STUB_FUNCTION IAccessible2_table[] =
+{
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2
+};
+
+CInterfaceStubVtbl _IAccessible2StubVtbl =
+{
+ &IID_IAccessible2,
+ &IAccessible2_ServerInfo,
+ 46,
+ &IAccessible2_table[-3],
+ CStdStubBuffer_DELEGATING_METHODS
+};
+
+
+/* Object interface: IAccessible2_2, ver. 0.0,
+ GUID={0x6C9430E9,0x299D,0x4E6F,{0xBD,0x01,0xA8,0x2A,0x1E,0x88,0xD3,0xFF}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessible2_2_FormatStringOffsetTable[] =
+ {
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ 472,
+ 510,
+ 554,
+ 604,
+ 642,
+ 680,
+ 730,
+ 780,
+ 818,
+ 856,
+ 894,
+ 932,
+ 982,
+ 1032,
+ 1070,
+ 1108,
+ 1146,
+ 1184,
+ 1222,
+ 1266,
+ 1310
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessible2_2_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessible2_2_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessible2_2_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessible2_2_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(49) _IAccessible2_2ProxyVtbl =
+{
+ &IAccessible2_2_ProxyInfo,
+ &IID_IAccessible2_2,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ 0 /* IDispatch::GetTypeInfoCount */ ,
+ 0 /* IDispatch::GetTypeInfo */ ,
+ 0 /* IDispatch::GetIDsOfNames */ ,
+ 0 /* IDispatch_Invoke_Proxy */ ,
+ 0 /* IAccessible::get_accParent */ ,
+ 0 /* IAccessible::get_accChildCount */ ,
+ 0 /* IAccessible::get_accChild */ ,
+ 0 /* IAccessible::get_accName */ ,
+ 0 /* IAccessible::get_accValue */ ,
+ 0 /* IAccessible::get_accDescription */ ,
+ 0 /* IAccessible::get_accRole */ ,
+ 0 /* IAccessible::get_accState */ ,
+ 0 /* IAccessible::get_accHelp */ ,
+ 0 /* IAccessible::get_accHelpTopic */ ,
+ 0 /* IAccessible::get_accKeyboardShortcut */ ,
+ 0 /* IAccessible::get_accFocus */ ,
+ 0 /* IAccessible::get_accSelection */ ,
+ 0 /* IAccessible::get_accDefaultAction */ ,
+ 0 /* IAccessible::accSelect */ ,
+ 0 /* IAccessible::accLocation */ ,
+ 0 /* IAccessible::accNavigate */ ,
+ 0 /* IAccessible::accHitTest */ ,
+ 0 /* IAccessible::accDoDefaultAction */ ,
+ 0 /* IAccessible::put_accName */ ,
+ 0 /* IAccessible::put_accValue */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_nRelations */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_relation */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_relations */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::role */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::scrollTo */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::scrollToPoint */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_groupPosition */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_states */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_extendedRole */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_localizedExtendedRole */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_nExtendedStates */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_extendedStates */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_localizedExtendedStates */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_uniqueID */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_windowHandle */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_indexInParent */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_locale */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_attributes */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2_2::get_attribute */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2_2::get_accessibleWithCaret */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2_2::get_relationTargetsOfType */
+};
+
+
+static const PRPC_STUB_FUNCTION IAccessible2_2_table[] =
+{
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2
+};
+
+CInterfaceStubVtbl _IAccessible2_2StubVtbl =
+{
+ &IID_IAccessible2_2,
+ &IAccessible2_2_ServerInfo,
+ 49,
+ &IAccessible2_2_table[-3],
+ CStdStubBuffer_DELEGATING_METHODS
+};
+
+
+/* Standard interface: __MIDL_itf_ia2_api_all_0000_0004, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}} */
+
+
+/* Object interface: IAccessibleComponent, ver. 0.0,
+ GUID={0x1546D4B0,0x4C98,0x4bda,{0x89,0xAE,0x9A,0x64,0x74,0x8B,0xDD,0xE4}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleComponent_FormatStringOffsetTable[] =
+ {
+ 1366,
+ 1410,
+ 76
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleComponent_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleComponent_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleComponent_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleComponent_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(6) _IAccessibleComponentProxyVtbl =
+{
+ &IAccessibleComponent_ProxyInfo,
+ &IID_IAccessibleComponent,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleComponent::get_locationInParent */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleComponent::get_foreground */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleComponent::get_background */
+};
+
+const CInterfaceStubVtbl _IAccessibleComponentStubVtbl =
+{
+ &IID_IAccessibleComponent,
+ &IAccessibleComponent_ServerInfo,
+ 6,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Object interface: IAccessibleValue, ver. 0.0,
+ GUID={0x35855B5B,0xC566,0x4fd0,{0xA7,0xB1,0xE6,0x54,0x65,0x60,0x03,0x94}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleValue_FormatStringOffsetTable[] =
+ {
+ 1448,
+ 1486,
+ 1524,
+ 1562
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleValue_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleValue_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleValue_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleValue_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(7) _IAccessibleValueProxyVtbl =
+{
+ &IAccessibleValue_ProxyInfo,
+ &IID_IAccessibleValue,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleValue::get_currentValue */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleValue::setCurrentValue */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleValue::get_maximumValue */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleValue::get_minimumValue */
+};
+
+const CInterfaceStubVtbl _IAccessibleValueStubVtbl =
+{
+ &IID_IAccessibleValue,
+ &IAccessibleValue_ServerInfo,
+ 7,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Standard interface: __MIDL_itf_ia2_api_all_0000_0006, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}} */
+
+
+/* Object interface: IAccessibleText, ver. 0.0,
+ GUID={0x24FD2FFB,0x3AAD,0x4a08,{0x83,0x35,0xA3,0xAD,0x89,0xC0,0xFB,0x4B}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleText_FormatStringOffsetTable[] =
+ {
+ 1600,
+ 1644,
+ 76,
+ 1700,
+ 1768,
+ 1806,
+ 1862,
+ 1912,
+ 1962,
+ 2024,
+ 2086,
+ 2148,
+ 2186,
+ 2224,
+ 2274,
+ 2312,
+ 2362,
+ 2424,
+ 2462
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleText_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleText_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleText_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleText_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(22) _IAccessibleTextProxyVtbl =
+{
+ &IAccessibleText_ProxyInfo,
+ &IID_IAccessibleText,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::addSelection */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_attributes */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_caretOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_characterExtents */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_nSelections */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_offsetAtPoint */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_selection */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_text */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_textBeforeOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_textAfterOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_textAtOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::removeSelection */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::setCaretOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::setSelection */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_nCharacters */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::scrollSubstringTo */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::scrollSubstringToPoint */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_newText */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_oldText */
+};
+
+const CInterfaceStubVtbl _IAccessibleTextStubVtbl =
+{
+ &IID_IAccessibleText,
+ &IAccessibleText_ServerInfo,
+ 22,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Object interface: IAccessibleText2, ver. 0.0,
+ GUID={0x9690A9CC,0x5C80,0x4DF5,{0x85,0x2E,0x2D,0x5A,0xE4,0x18,0x9A,0x54}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleText2_FormatStringOffsetTable[] =
+ {
+ 1600,
+ 1644,
+ 76,
+ 1700,
+ 1768,
+ 1806,
+ 1862,
+ 1912,
+ 1962,
+ 2024,
+ 2086,
+ 2148,
+ 2186,
+ 2224,
+ 2274,
+ 2312,
+ 2362,
+ 2424,
+ 2462,
+ 2500
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleText2_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleText2_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleText2_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleText2_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(23) _IAccessibleText2ProxyVtbl =
+{
+ &IAccessibleText2_ProxyInfo,
+ &IID_IAccessibleText2,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::addSelection */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_attributes */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_caretOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_characterExtents */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_nSelections */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_offsetAtPoint */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_selection */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_text */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_textBeforeOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_textAfterOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_textAtOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::removeSelection */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::setCaretOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::setSelection */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_nCharacters */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::scrollSubstringTo */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::scrollSubstringToPoint */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_newText */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_oldText */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText2::get_attributeRange */
+};
+
+const CInterfaceStubVtbl _IAccessibleText2StubVtbl =
+{
+ &IID_IAccessibleText2,
+ &IAccessibleText2_ServerInfo,
+ 23,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Object interface: IAccessibleEditableText, ver. 0.0,
+ GUID={0xA59AA09A,0x7011,0x4b65,{0x93,0x9D,0x32,0xB1,0xFB,0x55,0x47,0xE3}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleEditableText_FormatStringOffsetTable[] =
+ {
+ 1600,
+ 2562,
+ 2606,
+ 2650,
+ 2694,
+ 2732,
+ 2782
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleEditableText_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleEditableText_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleEditableText_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleEditableText_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(10) _IAccessibleEditableTextProxyVtbl =
+{
+ &IAccessibleEditableText_ProxyInfo,
+ &IID_IAccessibleEditableText,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleEditableText::copyText */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleEditableText::deleteText */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleEditableText::insertText */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleEditableText::cutText */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleEditableText::pasteText */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleEditableText::replaceText */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleEditableText::setAttributes */
+};
+
+const CInterfaceStubVtbl _IAccessibleEditableTextStubVtbl =
+{
+ &IID_IAccessibleEditableText,
+ &IAccessibleEditableText_ServerInfo,
+ 10,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Object interface: IAccessibleHyperlink, ver. 0.0,
+ GUID={0x01C20F2B,0x3DD2,0x400f,{0x94,0x9F,0xAD,0x00,0xBD,0xAB,0x1D,0x41}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleHyperlink_FormatStringOffsetTable[] =
+ {
+ 208,
+ 246,
+ 284,
+ 328,
+ 384,
+ 428,
+ 2832,
+ 2876,
+ 2920,
+ 2958,
+ 2996
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleHyperlink_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleHyperlink_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleHyperlink_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleHyperlink_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(14) _IAccessibleHyperlinkProxyVtbl =
+{
+ &IAccessibleHyperlink_ProxyInfo,
+ &IID_IAccessibleHyperlink,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleAction::nActions */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleAction::doAction */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleAction::get_description */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleAction::get_keyBinding */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleAction::get_name */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleAction::get_localizedName */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleHyperlink::get_anchor */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleHyperlink::get_anchorTarget */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleHyperlink::get_startIndex */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleHyperlink::get_endIndex */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleHyperlink::get_valid */
+};
+
+const CInterfaceStubVtbl _IAccessibleHyperlinkStubVtbl =
+{
+ &IID_IAccessibleHyperlink,
+ &IAccessibleHyperlink_ServerInfo,
+ 14,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Object interface: IAccessibleHypertext, ver. 0.0,
+ GUID={0x6B4F8BBF,0xF1F2,0x418a,{0xB3,0x5E,0xA1,0x95,0xBC,0x41,0x03,0xB9}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleHypertext_FormatStringOffsetTable[] =
+ {
+ 1600,
+ 1644,
+ 76,
+ 1700,
+ 1768,
+ 1806,
+ 1862,
+ 1912,
+ 1962,
+ 2024,
+ 2086,
+ 2148,
+ 2186,
+ 2224,
+ 2274,
+ 2312,
+ 2362,
+ 2424,
+ 2462,
+ 3034,
+ 3072,
+ 3116
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleHypertext_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleHypertext_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleHypertext_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleHypertext_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(25) _IAccessibleHypertextProxyVtbl =
+{
+ &IAccessibleHypertext_ProxyInfo,
+ &IID_IAccessibleHypertext,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::addSelection */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_attributes */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_caretOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_characterExtents */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_nSelections */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_offsetAtPoint */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_selection */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_text */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_textBeforeOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_textAfterOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_textAtOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::removeSelection */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::setCaretOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::setSelection */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_nCharacters */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::scrollSubstringTo */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::scrollSubstringToPoint */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_newText */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_oldText */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleHypertext::get_nHyperlinks */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleHypertext::get_hyperlink */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleHypertext::get_hyperlinkIndex */
+};
+
+const CInterfaceStubVtbl _IAccessibleHypertextStubVtbl =
+{
+ &IID_IAccessibleHypertext,
+ &IAccessibleHypertext_ServerInfo,
+ 25,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Object interface: IAccessibleHypertext2, ver. 0.0,
+ GUID={0xCF64D89F,0x8287,0x4B44,{0x85,0x01,0xA8,0x27,0x45,0x3A,0x60,0x77}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleHypertext2_FormatStringOffsetTable[] =
+ {
+ 1600,
+ 1644,
+ 76,
+ 1700,
+ 1768,
+ 1806,
+ 1862,
+ 1912,
+ 1962,
+ 2024,
+ 2086,
+ 2148,
+ 2186,
+ 2224,
+ 2274,
+ 2312,
+ 2362,
+ 2424,
+ 2462,
+ 3034,
+ 3072,
+ 3116,
+ 3160
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleHypertext2_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleHypertext2_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleHypertext2_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleHypertext2_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(26) _IAccessibleHypertext2ProxyVtbl =
+{
+ &IAccessibleHypertext2_ProxyInfo,
+ &IID_IAccessibleHypertext2,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::addSelection */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_attributes */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_caretOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_characterExtents */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_nSelections */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_offsetAtPoint */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_selection */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_text */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_textBeforeOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_textAfterOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_textAtOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::removeSelection */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::setCaretOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::setSelection */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_nCharacters */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::scrollSubstringTo */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::scrollSubstringToPoint */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_newText */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_oldText */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleHypertext::get_nHyperlinks */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleHypertext::get_hyperlink */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleHypertext::get_hyperlinkIndex */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleHypertext2::get_hyperlinks */
+};
+
+const CInterfaceStubVtbl _IAccessibleHypertext2StubVtbl =
+{
+ &IID_IAccessibleHypertext2,
+ &IAccessibleHypertext2_ServerInfo,
+ 26,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Object interface: IAccessibleTable, ver. 0.0,
+ GUID={0x35AD8070,0xC20C,0x4fb4,{0xB0,0x94,0xF4,0xF7,0x27,0x5D,0xD4,0x69}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleTable_FormatStringOffsetTable[] =
+ {
+ 3204,
+ 3254,
+ 3292,
+ 3342,
+ 3386,
+ 3436,
+ 3480,
+ 3524,
+ 2920,
+ 2958,
+ 3562,
+ 3600,
+ 3638,
+ 3682,
+ 3732,
+ 3776,
+ 3820,
+ 3870,
+ 3920,
+ 3970,
+ 4008,
+ 4052,
+ 4096,
+ 4146,
+ 4184,
+ 4222,
+ 4260,
+ 4298,
+ 4366
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleTable_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleTable_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleTable_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleTable_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(32) _IAccessibleTableProxyVtbl =
+{
+ &IAccessibleTable_ProxyInfo,
+ &IID_IAccessibleTable,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_accessibleAt */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_caption */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_childIndex */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_columnDescription */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_columnExtentAt */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_columnHeader */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_columnIndex */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_nColumns */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_nRows */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_nSelectedChildren */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_nSelectedColumns */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_nSelectedRows */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_rowDescription */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_rowExtentAt */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_rowHeader */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_rowIndex */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_selectedChildren */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_selectedColumns */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_selectedRows */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_summary */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_isColumnSelected */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_isRowSelected */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_isSelected */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::selectRow */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::selectColumn */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::unselectRow */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::unselectColumn */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_rowColumnExtentsAtIndex */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_modelChange */
+};
+
+const CInterfaceStubVtbl _IAccessibleTableStubVtbl =
+{
+ &IID_IAccessibleTable,
+ &IAccessibleTable_ServerInfo,
+ 32,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Object interface: IAccessibleTable2, ver. 0.0,
+ GUID={0x6167f295,0x06f0,0x4cdd,{0xa1,0xfa,0x02,0xe2,0x51,0x53,0xd8,0x69}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleTable2_FormatStringOffsetTable[] =
+ {
+ 3204,
+ 3254,
+ 284,
+ 4404,
+ 1768,
+ 4442,
+ 4480,
+ 3524,
+ 4518,
+ 4562,
+ 4606,
+ 4650,
+ 4694,
+ 4732,
+ 4776,
+ 4820,
+ 4858,
+ 4896,
+ 4934,
+ 4972
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleTable2_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleTable2_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleTable2_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleTable2_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(23) _IAccessibleTable2ProxyVtbl =
+{
+ &IAccessibleTable2_ProxyInfo,
+ &IID_IAccessibleTable2,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_cellAt */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_caption */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_columnDescription */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_nColumns */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_nRows */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_nSelectedCells */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_nSelectedColumns */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_nSelectedRows */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_rowDescription */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_selectedCells */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_selectedColumns */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_selectedRows */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_summary */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_isColumnSelected */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_isRowSelected */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::selectRow */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::selectColumn */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::unselectRow */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::unselectColumn */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_modelChange */
+};
+
+const CInterfaceStubVtbl _IAccessibleTable2StubVtbl =
+{
+ &IID_IAccessibleTable2,
+ &IAccessibleTable2_ServerInfo,
+ 23,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Object interface: IAccessibleTableCell, ver. 0.0,
+ GUID={0x594116B1,0xC99F,0x4847,{0xAD,0x06,0x0A,0x7A,0x86,0xEC,0xE6,0x45}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleTableCell_FormatStringOffsetTable[] =
+ {
+ 208,
+ 5010,
+ 76,
+ 4404,
+ 5054,
+ 4442,
+ 5098,
+ 5136,
+ 5198
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleTableCell_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleTableCell_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleTableCell_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleTableCell_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(12) _IAccessibleTableCellProxyVtbl =
+{
+ &IAccessibleTableCell_ProxyInfo,
+ &IID_IAccessibleTableCell,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_columnExtent */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_columnHeaderCells */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_columnIndex */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_rowExtent */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_rowHeaderCells */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_rowIndex */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_isSelected */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_rowColumnExtents */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_table */
+};
+
+const CInterfaceStubVtbl _IAccessibleTableCellStubVtbl =
+{
+ &IID_IAccessibleTableCell,
+ &IAccessibleTableCell_ServerInfo,
+ 12,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Object interface: IAccessibleImage, ver. 0.0,
+ GUID={0xFE5ABB3D,0x615E,0x4f7b,{0x90,0x9F,0x5F,0x0E,0xDA,0x9E,0x8D,0xDE}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleImage_FormatStringOffsetTable[] =
+ {
+ 0,
+ 5236,
+ 5286
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleImage_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleImage_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleImage_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleImage_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(6) _IAccessibleImageProxyVtbl =
+{
+ &IAccessibleImage_ProxyInfo,
+ &IID_IAccessibleImage,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleImage::get_description */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleImage::get_imagePosition */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleImage::get_imageSize */
+};
+
+const CInterfaceStubVtbl _IAccessibleImageStubVtbl =
+{
+ &IID_IAccessibleImage,
+ &IAccessibleImage_ServerInfo,
+ 6,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Standard interface: __MIDL_itf_ia2_api_all_0000_0016, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}} */
+
+
+/* Object interface: IAccessibleApplication, ver. 0.0,
+ GUID={0xD49DED83,0x5B25,0x43F4,{0x9B,0x95,0x93,0xB4,0x45,0x95,0x97,0x9E}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleApplication_FormatStringOffsetTable[] =
+ {
+ 0,
+ 38,
+ 5330,
+ 5368
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleApplication_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleApplication_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleApplication_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleApplication_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(7) _IAccessibleApplicationProxyVtbl =
+{
+ &IAccessibleApplication_ProxyInfo,
+ &IID_IAccessibleApplication,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleApplication::get_appName */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleApplication::get_appVersion */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleApplication::get_toolkitName */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleApplication::get_toolkitVersion */
+};
+
+const CInterfaceStubVtbl _IAccessibleApplicationStubVtbl =
+{
+ &IID_IAccessibleApplication,
+ &IAccessibleApplication_ServerInfo,
+ 7,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Object interface: IAccessibleDocument, ver. 0.0,
+ GUID={0xC48C7FCF,0x4AB5,0x4056,{0xAF,0xA6,0x90,0x2D,0x6E,0x1D,0x11,0x49}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleDocument_FormatStringOffsetTable[] =
+ {
+ 5406
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleDocument_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleDocument_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleDocument_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleDocument_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(4) _IAccessibleDocumentProxyVtbl =
+{
+ &IAccessibleDocument_ProxyInfo,
+ &IID_IAccessibleDocument,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleDocument::get_anchorTarget */
+};
+
+const CInterfaceStubVtbl _IAccessibleDocumentStubVtbl =
+{
+ &IID_IAccessibleDocument,
+ &IAccessibleDocument_ServerInfo,
+ 4,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Standard interface: __MIDL_itf_ia2_api_all_0000_0018, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}} */
+
+static const MIDL_STUB_DESC Object_StubDesc =
+ {
+ 0,
+ NdrOleAllocate,
+ NdrOleFree,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ ia2_api_all__MIDL_TypeFormatString.Format,
+ 1, /* -error bounds_check flag */
+ 0x50002, /* Ndr library version */
+ 0,
+ 0x700022b, /* MIDL Version 7.0.555 */
+ 0,
+ UserMarshalRoutines,
+ 0, /* notify & notify_flag routine table */
+ 0x1, /* MIDL flag */
+ 0, /* cs routines */
+ 0, /* proxy/server info */
+ 0
+ };
+
+const CInterfaceProxyVtbl * const _ia2_api_all_ProxyVtblList[] =
+{
+ ( CInterfaceProxyVtbl *) &_IAccessibleHyperlinkProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAccessibleImageProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAccessibleActionProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAccessibleValueProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAccessible2ProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAccessibleTableProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAccessibleApplicationProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAccessibleTable2ProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAccessibleEditableTextProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAccessibleHypertext2ProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAccessibleComponentProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAccessibleTableCellProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAccessibleHypertextProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAccessibleText2ProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAccessibleDocumentProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAccessible2_2ProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAccessibleRelationProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAccessibleTextProxyVtbl,
+ 0
+};
+
+const CInterfaceStubVtbl * const _ia2_api_all_StubVtblList[] =
+{
+ ( CInterfaceStubVtbl *) &_IAccessibleHyperlinkStubVtbl,
+ ( CInterfaceStubVtbl *) &_IAccessibleImageStubVtbl,
+ ( CInterfaceStubVtbl *) &_IAccessibleActionStubVtbl,
+ ( CInterfaceStubVtbl *) &_IAccessibleValueStubVtbl,
+ ( CInterfaceStubVtbl *) &_IAccessible2StubVtbl,
+ ( CInterfaceStubVtbl *) &_IAccessibleTableStubVtbl,
+ ( CInterfaceStubVtbl *) &_IAccessibleApplicationStubVtbl,
+ ( CInterfaceStubVtbl *) &_IAccessibleTable2StubVtbl,
+ ( CInterfaceStubVtbl *) &_IAccessibleEditableTextStubVtbl,
+ ( CInterfaceStubVtbl *) &_IAccessibleHypertext2StubVtbl,
+ ( CInterfaceStubVtbl *) &_IAccessibleComponentStubVtbl,
+ ( CInterfaceStubVtbl *) &_IAccessibleTableCellStubVtbl,
+ ( CInterfaceStubVtbl *) &_IAccessibleHypertextStubVtbl,
+ ( CInterfaceStubVtbl *) &_IAccessibleText2StubVtbl,
+ ( CInterfaceStubVtbl *) &_IAccessibleDocumentStubVtbl,
+ ( CInterfaceStubVtbl *) &_IAccessible2_2StubVtbl,
+ ( CInterfaceStubVtbl *) &_IAccessibleRelationStubVtbl,
+ ( CInterfaceStubVtbl *) &_IAccessibleTextStubVtbl,
+ 0
+};
+
+PCInterfaceName const _ia2_api_all_InterfaceNamesList[] =
+{
+ "IAccessibleHyperlink",
+ "IAccessibleImage",
+ "IAccessibleAction",
+ "IAccessibleValue",
+ "IAccessible2",
+ "IAccessibleTable",
+ "IAccessibleApplication",
+ "IAccessibleTable2",
+ "IAccessibleEditableText",
+ "IAccessibleHypertext2",
+ "IAccessibleComponent",
+ "IAccessibleTableCell",
+ "IAccessibleHypertext",
+ "IAccessibleText2",
+ "IAccessibleDocument",
+ "IAccessible2_2",
+ "IAccessibleRelation",
+ "IAccessibleText",
+ 0
+};
+
+const IID * const _ia2_api_all_BaseIIDList[] =
+{
+ 0,
+ 0,
+ 0,
+ 0,
+ &IID_IAccessible,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ &IID_IAccessible,
+ 0,
+ 0,
+ 0
+};
+
+
+#define _ia2_api_all_CHECK_IID(n) IID_GENERIC_CHECK_IID( _ia2_api_all, pIID, n)
+
+int __stdcall _ia2_api_all_IID_Lookup( const IID * pIID, int * pIndex )
+{
+ IID_BS_LOOKUP_SETUP
+
+ IID_BS_LOOKUP_INITIAL_TEST( _ia2_api_all, 18, 16 )
+ IID_BS_LOOKUP_NEXT_TEST( _ia2_api_all, 8 )
+ IID_BS_LOOKUP_NEXT_TEST( _ia2_api_all, 4 )
+ IID_BS_LOOKUP_NEXT_TEST( _ia2_api_all, 2 )
+ IID_BS_LOOKUP_NEXT_TEST( _ia2_api_all, 1 )
+ IID_BS_LOOKUP_RETURN_RESULT( _ia2_api_all, 18, *pIndex )
+
+}
+
+const ExtendedProxyFileInfo ia2_api_all_ProxyFileInfo =
+{
+ (PCInterfaceProxyVtblList *) & _ia2_api_all_ProxyVtblList,
+ (PCInterfaceStubVtblList *) & _ia2_api_all_StubVtblList,
+ (const PCInterfaceName * ) & _ia2_api_all_InterfaceNamesList,
+ (const IID ** ) & _ia2_api_all_BaseIIDList,
+ & _ia2_api_all_IID_Lookup,
+ 18,
+ 2,
+ 0, /* table of [async_uuid] interfaces */
+ 0, /* Filler1 */
+ 0, /* Filler2 */
+ 0 /* Filler3 */
+};
+#if _MSC_VER >= 1200
+#pragma warning(pop)
+#endif
+
+
+#endif /* defined(_M_AMD64)*/
+
diff --git a/src/3rdparty/iaccessible2/generated/x86/Accessible2.h b/src/3rdparty/iaccessible2/generated/x86/Accessible2.h
deleted file mode 100644
index dcf13c0d32..0000000000
--- a/src/3rdparty/iaccessible2/generated/x86/Accessible2.h
+++ /dev/null
@@ -1,585 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the definitions for the interfaces */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:51 2012
- */
-/* Compiler settings for Accessible2.idl:
- Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-
-
-/* verify that the <rpcndr.h> version is high enough to compile this file*/
-#ifndef __REQUIRED_RPCNDR_H_VERSION__
-#define __REQUIRED_RPCNDR_H_VERSION__ 475
-#endif
-
-#include "rpc.h"
-#include "rpcndr.h"
-
-#ifndef __RPCNDR_H_VERSION__
-#error this stub requires an updated version of <rpcndr.h>
-#endif // __RPCNDR_H_VERSION__
-
-#ifndef COM_NO_WINDOWS_H
-#include "windows.h"
-#include "ole2.h"
-#endif /*COM_NO_WINDOWS_H*/
-
-#ifndef __Accessible2_h__
-#define __Accessible2_h__
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-#pragma once
-#endif
-
-/* Forward Declarations */
-
-#ifndef __IAccessible2_FWD_DEFINED__
-#define __IAccessible2_FWD_DEFINED__
-typedef interface IAccessible2 IAccessible2;
-#endif /* __IAccessible2_FWD_DEFINED__ */
-
-
-/* header files for imported files */
-#include "objidl.h"
-#include "oaidl.h"
-#include "oleacc.h"
-#include "AccessibleRelation.h"
-#include "AccessibleStates.h"
-#include "IA2CommonTypes.h"
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-
-/* interface __MIDL_itf_Accessible2_0000_0000 */
-/* [local] */
-
-typedef struct IA2Locale
- {
- BSTR language;
- BSTR country;
- BSTR variant;
- } IA2Locale;
-
-
-
-extern RPC_IF_HANDLE __MIDL_itf_Accessible2_0000_0000_v0_0_c_ifspec;
-extern RPC_IF_HANDLE __MIDL_itf_Accessible2_0000_0000_v0_0_s_ifspec;
-
-#ifndef __IAccessible2_INTERFACE_DEFINED__
-#define __IAccessible2_INTERFACE_DEFINED__
-
-/* interface IAccessible2 */
-/* [uuid][object] */
-
-
-EXTERN_C const IID IID_IAccessible2;
-
-#if defined(__cplusplus) && !defined(CINTERFACE)
-
- MIDL_INTERFACE("E89F726E-C4F4-4c19-BB19-B647D7FA8478")
- IAccessible2 : public IAccessible
- {
- public:
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nRelations(
- /* [retval][out] */ long *nRelations) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_relation(
- /* [in] */ long relationIndex,
- /* [retval][out] */ IAccessibleRelation **relation) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_relations(
- /* [in] */ long maxRelations,
- /* [length_is][size_is][out] */ IAccessibleRelation **relations,
- /* [retval][out] */ long *nRelations) = 0;
-
- virtual HRESULT STDMETHODCALLTYPE role(
- /* [retval][out] */ long *role) = 0;
-
- virtual HRESULT STDMETHODCALLTYPE scrollTo(
- /* [in] */ enum IA2ScrollType scrollType) = 0;
-
- virtual HRESULT STDMETHODCALLTYPE scrollToPoint(
- /* [in] */ enum IA2CoordinateType coordinateType,
- /* [in] */ long x,
- /* [in] */ long y) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_groupPosition(
- /* [out] */ long *groupLevel,
- /* [out] */ long *similarItemsInGroup,
- /* [retval][out] */ long *positionInGroup) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_states(
- /* [retval][out] */ AccessibleStates *states) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_extendedRole(
- /* [retval][out] */ BSTR *extendedRole) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_localizedExtendedRole(
- /* [retval][out] */ BSTR *localizedExtendedRole) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nExtendedStates(
- /* [retval][out] */ long *nExtendedStates) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_extendedStates(
- /* [in] */ long maxExtendedStates,
- /* [length_is][length_is][size_is][size_is][out] */ BSTR **extendedStates,
- /* [retval][out] */ long *nExtendedStates) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_localizedExtendedStates(
- /* [in] */ long maxLocalizedExtendedStates,
- /* [length_is][length_is][size_is][size_is][out] */ BSTR **localizedExtendedStates,
- /* [retval][out] */ long *nLocalizedExtendedStates) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_uniqueID(
- /* [retval][out] */ long *uniqueID) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_windowHandle(
- /* [retval][out] */ HWND *windowHandle) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_indexInParent(
- /* [retval][out] */ long *indexInParent) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_locale(
- /* [retval][out] */ IA2Locale *locale) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_attributes(
- /* [retval][out] */ BSTR *attributes) = 0;
-
- };
-
-#else /* C style interface */
-
- typedef struct IAccessible2Vtbl
- {
- BEGIN_INTERFACE
-
- HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
- IAccessible2 * This,
- /* [in] */ REFIID riid,
- /* [annotation][iid_is][out] */
- __RPC__deref_out void **ppvObject);
-
- ULONG ( STDMETHODCALLTYPE *AddRef )(
- IAccessible2 * This);
-
- ULONG ( STDMETHODCALLTYPE *Release )(
- IAccessible2 * This);
-
- HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
- IAccessible2 * This,
- /* [out] */ UINT *pctinfo);
-
- HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
- IAccessible2 * This,
- /* [in] */ UINT iTInfo,
- /* [in] */ LCID lcid,
- /* [out] */ ITypeInfo **ppTInfo);
-
- HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
- IAccessible2 * This,
- /* [in] */ REFIID riid,
- /* [size_is][in] */ LPOLESTR *rgszNames,
- /* [range][in] */ UINT cNames,
- /* [in] */ LCID lcid,
- /* [size_is][out] */ DISPID *rgDispId);
-
- /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
- IAccessible2 * This,
- /* [in] */ DISPID dispIdMember,
- /* [in] */ REFIID riid,
- /* [in] */ LCID lcid,
- /* [in] */ WORD wFlags,
- /* [out][in] */ DISPPARAMS *pDispParams,
- /* [out] */ VARIANT *pVarResult,
- /* [out] */ EXCEPINFO *pExcepInfo,
- /* [out] */ UINT *puArgErr);
-
- /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accParent )(
- IAccessible2 * This,
- /* [retval][out] */ IDispatch **ppdispParent);
-
- /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accChildCount )(
- IAccessible2 * This,
- /* [retval][out] */ long *pcountChildren);
-
- /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accChild )(
- IAccessible2 * This,
- /* [in] */ VARIANT varChild,
- /* [retval][out] */ IDispatch **ppdispChild);
-
- /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accName )(
- IAccessible2 * This,
- /* [optional][in] */ VARIANT varChild,
- /* [retval][out] */ BSTR *pszName);
-
- /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accValue )(
- IAccessible2 * This,
- /* [optional][in] */ VARIANT varChild,
- /* [retval][out] */ BSTR *pszValue);
-
- /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accDescription )(
- IAccessible2 * This,
- /* [optional][in] */ VARIANT varChild,
- /* [retval][out] */ BSTR *pszDescription);
-
- /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accRole )(
- IAccessible2 * This,
- /* [optional][in] */ VARIANT varChild,
- /* [retval][out] */ VARIANT *pvarRole);
-
- /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accState )(
- IAccessible2 * This,
- /* [optional][in] */ VARIANT varChild,
- /* [retval][out] */ VARIANT *pvarState);
-
- /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accHelp )(
- IAccessible2 * This,
- /* [optional][in] */ VARIANT varChild,
- /* [retval][out] */ BSTR *pszHelp);
-
- /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accHelpTopic )(
- IAccessible2 * This,
- /* [out] */ BSTR *pszHelpFile,
- /* [optional][in] */ VARIANT varChild,
- /* [retval][out] */ long *pidTopic);
-
- /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accKeyboardShortcut )(
- IAccessible2 * This,
- /* [optional][in] */ VARIANT varChild,
- /* [retval][out] */ BSTR *pszKeyboardShortcut);
-
- /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accFocus )(
- IAccessible2 * This,
- /* [retval][out] */ VARIANT *pvarChild);
-
- /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accSelection )(
- IAccessible2 * This,
- /* [retval][out] */ VARIANT *pvarChildren);
-
- /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accDefaultAction )(
- IAccessible2 * This,
- /* [optional][in] */ VARIANT varChild,
- /* [retval][out] */ BSTR *pszDefaultAction);
-
- /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accSelect )(
- IAccessible2 * This,
- /* [in] */ long flagsSelect,
- /* [optional][in] */ VARIANT varChild);
-
- /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accLocation )(
- IAccessible2 * This,
- /* [out] */ long *pxLeft,
- /* [out] */ long *pyTop,
- /* [out] */ long *pcxWidth,
- /* [out] */ long *pcyHeight,
- /* [optional][in] */ VARIANT varChild);
-
- /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accNavigate )(
- IAccessible2 * This,
- /* [in] */ long navDir,
- /* [optional][in] */ VARIANT varStart,
- /* [retval][out] */ VARIANT *pvarEndUpAt);
-
- /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accHitTest )(
- IAccessible2 * This,
- /* [in] */ long xLeft,
- /* [in] */ long yTop,
- /* [retval][out] */ VARIANT *pvarChild);
-
- /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accDoDefaultAction )(
- IAccessible2 * This,
- /* [optional][in] */ VARIANT varChild);
-
- /* [id][propput][hidden] */ HRESULT ( STDMETHODCALLTYPE *put_accName )(
- IAccessible2 * This,
- /* [optional][in] */ VARIANT varChild,
- /* [in] */ BSTR szName);
-
- /* [id][propput][hidden] */ HRESULT ( STDMETHODCALLTYPE *put_accValue )(
- IAccessible2 * This,
- /* [optional][in] */ VARIANT varChild,
- /* [in] */ BSTR szValue);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nRelations )(
- IAccessible2 * This,
- /* [retval][out] */ long *nRelations);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relation )(
- IAccessible2 * This,
- /* [in] */ long relationIndex,
- /* [retval][out] */ IAccessibleRelation **relation);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relations )(
- IAccessible2 * This,
- /* [in] */ long maxRelations,
- /* [length_is][size_is][out] */ IAccessibleRelation **relations,
- /* [retval][out] */ long *nRelations);
-
- HRESULT ( STDMETHODCALLTYPE *role )(
- IAccessible2 * This,
- /* [retval][out] */ long *role);
-
- HRESULT ( STDMETHODCALLTYPE *scrollTo )(
- IAccessible2 * This,
- /* [in] */ enum IA2ScrollType scrollType);
-
- HRESULT ( STDMETHODCALLTYPE *scrollToPoint )(
- IAccessible2 * This,
- /* [in] */ enum IA2CoordinateType coordinateType,
- /* [in] */ long x,
- /* [in] */ long y);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_groupPosition )(
- IAccessible2 * This,
- /* [out] */ long *groupLevel,
- /* [out] */ long *similarItemsInGroup,
- /* [retval][out] */ long *positionInGroup);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_states )(
- IAccessible2 * This,
- /* [retval][out] */ AccessibleStates *states);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_extendedRole )(
- IAccessible2 * This,
- /* [retval][out] */ BSTR *extendedRole);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedExtendedRole )(
- IAccessible2 * This,
- /* [retval][out] */ BSTR *localizedExtendedRole);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nExtendedStates )(
- IAccessible2 * This,
- /* [retval][out] */ long *nExtendedStates);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_extendedStates )(
- IAccessible2 * This,
- /* [in] */ long maxExtendedStates,
- /* [length_is][length_is][size_is][size_is][out] */ BSTR **extendedStates,
- /* [retval][out] */ long *nExtendedStates);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedExtendedStates )(
- IAccessible2 * This,
- /* [in] */ long maxLocalizedExtendedStates,
- /* [length_is][length_is][size_is][size_is][out] */ BSTR **localizedExtendedStates,
- /* [retval][out] */ long *nLocalizedExtendedStates);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_uniqueID )(
- IAccessible2 * This,
- /* [retval][out] */ long *uniqueID);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_windowHandle )(
- IAccessible2 * This,
- /* [retval][out] */ HWND *windowHandle);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_indexInParent )(
- IAccessible2 * This,
- /* [retval][out] */ long *indexInParent);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_locale )(
- IAccessible2 * This,
- /* [retval][out] */ IA2Locale *locale);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )(
- IAccessible2 * This,
- /* [retval][out] */ BSTR *attributes);
-
- END_INTERFACE
- } IAccessible2Vtbl;
-
- interface IAccessible2
- {
- CONST_VTBL struct IAccessible2Vtbl *lpVtbl;
- };
-
-
-
-#ifdef COBJMACROS
-
-
-#define IAccessible2_QueryInterface(This,riid,ppvObject) \
- ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
-
-#define IAccessible2_AddRef(This) \
- ( (This)->lpVtbl -> AddRef(This) )
-
-#define IAccessible2_Release(This) \
- ( (This)->lpVtbl -> Release(This) )
-
-
-#define IAccessible2_GetTypeInfoCount(This,pctinfo) \
- ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
-
-#define IAccessible2_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
- ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
-
-#define IAccessible2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
- ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
-
-#define IAccessible2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
- ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
-
-
-#define IAccessible2_get_accParent(This,ppdispParent) \
- ( (This)->lpVtbl -> get_accParent(This,ppdispParent) )
-
-#define IAccessible2_get_accChildCount(This,pcountChildren) \
- ( (This)->lpVtbl -> get_accChildCount(This,pcountChildren) )
-
-#define IAccessible2_get_accChild(This,varChild,ppdispChild) \
- ( (This)->lpVtbl -> get_accChild(This,varChild,ppdispChild) )
-
-#define IAccessible2_get_accName(This,varChild,pszName) \
- ( (This)->lpVtbl -> get_accName(This,varChild,pszName) )
-
-#define IAccessible2_get_accValue(This,varChild,pszValue) \
- ( (This)->lpVtbl -> get_accValue(This,varChild,pszValue) )
-
-#define IAccessible2_get_accDescription(This,varChild,pszDescription) \
- ( (This)->lpVtbl -> get_accDescription(This,varChild,pszDescription) )
-
-#define IAccessible2_get_accRole(This,varChild,pvarRole) \
- ( (This)->lpVtbl -> get_accRole(This,varChild,pvarRole) )
-
-#define IAccessible2_get_accState(This,varChild,pvarState) \
- ( (This)->lpVtbl -> get_accState(This,varChild,pvarState) )
-
-#define IAccessible2_get_accHelp(This,varChild,pszHelp) \
- ( (This)->lpVtbl -> get_accHelp(This,varChild,pszHelp) )
-
-#define IAccessible2_get_accHelpTopic(This,pszHelpFile,varChild,pidTopic) \
- ( (This)->lpVtbl -> get_accHelpTopic(This,pszHelpFile,varChild,pidTopic) )
-
-#define IAccessible2_get_accKeyboardShortcut(This,varChild,pszKeyboardShortcut) \
- ( (This)->lpVtbl -> get_accKeyboardShortcut(This,varChild,pszKeyboardShortcut) )
-
-#define IAccessible2_get_accFocus(This,pvarChild) \
- ( (This)->lpVtbl -> get_accFocus(This,pvarChild) )
-
-#define IAccessible2_get_accSelection(This,pvarChildren) \
- ( (This)->lpVtbl -> get_accSelection(This,pvarChildren) )
-
-#define IAccessible2_get_accDefaultAction(This,varChild,pszDefaultAction) \
- ( (This)->lpVtbl -> get_accDefaultAction(This,varChild,pszDefaultAction) )
-
-#define IAccessible2_accSelect(This,flagsSelect,varChild) \
- ( (This)->lpVtbl -> accSelect(This,flagsSelect,varChild) )
-
-#define IAccessible2_accLocation(This,pxLeft,pyTop,pcxWidth,pcyHeight,varChild) \
- ( (This)->lpVtbl -> accLocation(This,pxLeft,pyTop,pcxWidth,pcyHeight,varChild) )
-
-#define IAccessible2_accNavigate(This,navDir,varStart,pvarEndUpAt) \
- ( (This)->lpVtbl -> accNavigate(This,navDir,varStart,pvarEndUpAt) )
-
-#define IAccessible2_accHitTest(This,xLeft,yTop,pvarChild) \
- ( (This)->lpVtbl -> accHitTest(This,xLeft,yTop,pvarChild) )
-
-#define IAccessible2_accDoDefaultAction(This,varChild) \
- ( (This)->lpVtbl -> accDoDefaultAction(This,varChild) )
-
-#define IAccessible2_put_accName(This,varChild,szName) \
- ( (This)->lpVtbl -> put_accName(This,varChild,szName) )
-
-#define IAccessible2_put_accValue(This,varChild,szValue) \
- ( (This)->lpVtbl -> put_accValue(This,varChild,szValue) )
-
-
-#define IAccessible2_get_nRelations(This,nRelations) \
- ( (This)->lpVtbl -> get_nRelations(This,nRelations) )
-
-#define IAccessible2_get_relation(This,relationIndex,relation) \
- ( (This)->lpVtbl -> get_relation(This,relationIndex,relation) )
-
-#define IAccessible2_get_relations(This,maxRelations,relations,nRelations) \
- ( (This)->lpVtbl -> get_relations(This,maxRelations,relations,nRelations) )
-
-#define IAccessible2_role(This,role) \
- ( (This)->lpVtbl -> role(This,role) )
-
-#define IAccessible2_scrollTo(This,scrollType) \
- ( (This)->lpVtbl -> scrollTo(This,scrollType) )
-
-#define IAccessible2_scrollToPoint(This,coordinateType,x,y) \
- ( (This)->lpVtbl -> scrollToPoint(This,coordinateType,x,y) )
-
-#define IAccessible2_get_groupPosition(This,groupLevel,similarItemsInGroup,positionInGroup) \
- ( (This)->lpVtbl -> get_groupPosition(This,groupLevel,similarItemsInGroup,positionInGroup) )
-
-#define IAccessible2_get_states(This,states) \
- ( (This)->lpVtbl -> get_states(This,states) )
-
-#define IAccessible2_get_extendedRole(This,extendedRole) \
- ( (This)->lpVtbl -> get_extendedRole(This,extendedRole) )
-
-#define IAccessible2_get_localizedExtendedRole(This,localizedExtendedRole) \
- ( (This)->lpVtbl -> get_localizedExtendedRole(This,localizedExtendedRole) )
-
-#define IAccessible2_get_nExtendedStates(This,nExtendedStates) \
- ( (This)->lpVtbl -> get_nExtendedStates(This,nExtendedStates) )
-
-#define IAccessible2_get_extendedStates(This,maxExtendedStates,extendedStates,nExtendedStates) \
- ( (This)->lpVtbl -> get_extendedStates(This,maxExtendedStates,extendedStates,nExtendedStates) )
-
-#define IAccessible2_get_localizedExtendedStates(This,maxLocalizedExtendedStates,localizedExtendedStates,nLocalizedExtendedStates) \
- ( (This)->lpVtbl -> get_localizedExtendedStates(This,maxLocalizedExtendedStates,localizedExtendedStates,nLocalizedExtendedStates) )
-
-#define IAccessible2_get_uniqueID(This,uniqueID) \
- ( (This)->lpVtbl -> get_uniqueID(This,uniqueID) )
-
-#define IAccessible2_get_windowHandle(This,windowHandle) \
- ( (This)->lpVtbl -> get_windowHandle(This,windowHandle) )
-
-#define IAccessible2_get_indexInParent(This,indexInParent) \
- ( (This)->lpVtbl -> get_indexInParent(This,indexInParent) )
-
-#define IAccessible2_get_locale(This,locale) \
- ( (This)->lpVtbl -> get_locale(This,locale) )
-
-#define IAccessible2_get_attributes(This,attributes) \
- ( (This)->lpVtbl -> get_attributes(This,attributes) )
-
-#endif /* COBJMACROS */
-
-
-#endif /* C style interface */
-
-
-
-
-#endif /* __IAccessible2_INTERFACE_DEFINED__ */
-
-
-/* Additional Prototypes for ALL interfaces */
-
-unsigned long __RPC_USER BSTR_UserSize( unsigned long *, unsigned long , BSTR * );
-unsigned char * __RPC_USER BSTR_UserMarshal( unsigned long *, unsigned char *, BSTR * );
-unsigned char * __RPC_USER BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * );
-void __RPC_USER BSTR_UserFree( unsigned long *, BSTR * );
-
-unsigned long __RPC_USER HWND_UserSize( unsigned long *, unsigned long , HWND * );
-unsigned char * __RPC_USER HWND_UserMarshal( unsigned long *, unsigned char *, HWND * );
-unsigned char * __RPC_USER HWND_UserUnmarshal(unsigned long *, unsigned char *, HWND * );
-void __RPC_USER HWND_UserFree( unsigned long *, HWND * );
-
-/* end of Additional Prototypes */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-
diff --git a/src/3rdparty/iaccessible2/generated/x86/Accessible2_i.c b/src/3rdparty/iaccessible2/generated/x86/Accessible2_i.c
deleted file mode 100644
index df0f94063e..0000000000
--- a/src/3rdparty/iaccessible2/generated/x86/Accessible2_i.c
+++ /dev/null
@@ -1,79 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
-
-/* link this file in with the server and any clients */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:51 2012
- */
-/* Compiler settings for Accessible2.idl:
- Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-
-#include <rpc.h>
-#include <rpcndr.h>
-
-#ifdef _MIDL_USE_GUIDDEF_
-
-#ifndef INITGUID
-#define INITGUID
-#include <guiddef.h>
-#undef INITGUID
-#else
-#include <guiddef.h>
-#endif
-
-#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
- DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
-
-#else // !_MIDL_USE_GUIDDEF_
-
-#ifndef __IID_DEFINED__
-#define __IID_DEFINED__
-
-typedef struct _IID
-{
- unsigned long x;
- unsigned short s1;
- unsigned short s2;
- unsigned char c[8];
-} IID;
-
-#endif // __IID_DEFINED__
-
-#ifndef CLSID_DEFINED
-#define CLSID_DEFINED
-typedef IID CLSID;
-#endif // CLSID_DEFINED
-
-#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
- const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
-
-#endif !_MIDL_USE_GUIDDEF_
-
-MIDL_DEFINE_GUID(IID, IID_IAccessible2,0xE89F726E,0xC4F4,0x4c19,0xBB,0x19,0xB6,0x47,0xD7,0xFA,0x84,0x78);
-
-#undef MIDL_DEFINE_GUID
-
-#ifdef __cplusplus
-}
-#endif
-
-
-
diff --git a/src/3rdparty/iaccessible2/generated/x86/Accessible2_p.c b/src/3rdparty/iaccessible2/generated/x86/Accessible2_p.c
deleted file mode 100644
index abb5883868..0000000000
--- a/src/3rdparty/iaccessible2/generated/x86/Accessible2_p.c
+++ /dev/null
@@ -1,1190 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the proxy stub code */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:51 2012
- */
-/* Compiler settings for Accessible2.idl:
- Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#if !defined(_M_IA64) && !defined(_M_AMD64)
-
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-#if _MSC_VER >= 1200
-#pragma warning(push)
-#endif
-
-#pragma warning( disable: 4211 ) /* redefine extern to static */
-#pragma warning( disable: 4232 ) /* dllimport identity*/
-#pragma warning( disable: 4024 ) /* array to pointer mapping*/
-#pragma warning( disable: 4152 ) /* function/data pointer conversion in expression */
-#pragma warning( disable: 4100 ) /* unreferenced arguments in x86 call */
-
-#pragma optimize("", off )
-
-#define USE_STUBLESS_PROXY
-
-
-/* verify that the <rpcproxy.h> version is high enough to compile this file*/
-#ifndef __REDQ_RPCPROXY_H_VERSION__
-#define __REQUIRED_RPCPROXY_H_VERSION__ 475
-#endif
-
-
-#include "rpcproxy.h"
-#ifndef __RPCPROXY_H_VERSION__
-#error this stub requires an updated version of <rpcproxy.h>
-#endif /* __RPCPROXY_H_VERSION__ */
-
-
-#include "Accessible2.h"
-
-#define TYPE_FORMAT_STRING_SIZE 189
-#define PROC_FORMAT_STRING_SIZE 715
-#define EXPR_FORMAT_STRING_SIZE 1
-#define TRANSMIT_AS_TABLE_SIZE 0
-#define WIRE_MARSHAL_TABLE_SIZE 2
-
-typedef struct _Accessible2_MIDL_TYPE_FORMAT_STRING
- {
- short Pad;
- unsigned char Format[ TYPE_FORMAT_STRING_SIZE ];
- } Accessible2_MIDL_TYPE_FORMAT_STRING;
-
-typedef struct _Accessible2_MIDL_PROC_FORMAT_STRING
- {
- short Pad;
- unsigned char Format[ PROC_FORMAT_STRING_SIZE ];
- } Accessible2_MIDL_PROC_FORMAT_STRING;
-
-typedef struct _Accessible2_MIDL_EXPR_FORMAT_STRING
- {
- long Pad;
- unsigned char Format[ EXPR_FORMAT_STRING_SIZE ];
- } Accessible2_MIDL_EXPR_FORMAT_STRING;
-
-
-static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax =
-{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}};
-
-
-extern const Accessible2_MIDL_TYPE_FORMAT_STRING Accessible2__MIDL_TypeFormatString;
-extern const Accessible2_MIDL_PROC_FORMAT_STRING Accessible2__MIDL_ProcFormatString;
-extern const Accessible2_MIDL_EXPR_FORMAT_STRING Accessible2__MIDL_ExprFormatString;
-
-
-extern const MIDL_STUB_DESC Object_StubDesc;
-
-
-extern const MIDL_SERVER_INFO IAccessible2_ServerInfo;
-extern const MIDL_STUBLESS_PROXY_INFO IAccessible2_ProxyInfo;
-
-
-extern const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ];
-
-#if !defined(__RPC_WIN32__)
-#error Invalid build platform for this stub.
-#endif
-
-#if !(TARGET_IS_NT50_OR_LATER)
-#error You need Windows 2000 or later to run this stub because it uses these features:
-#error /robust command line switch.
-#error However, your C/C++ compilation flags indicate you intend to run this app on earlier systems.
-#error This app will fail with the RPC_X_WRONG_STUB_VERSION error.
-#endif
-
-
-static const Accessible2_MIDL_PROC_FORMAT_STRING Accessible2__MIDL_ProcFormatString =
- {
- 0,
- {
-
- /* Procedure get_nRelations */
-
- 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 2 */ NdrFcLong( 0x0 ), /* 0 */
-/* 6 */ NdrFcShort( 0x1c ), /* 28 */
-/* 8 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 10 */ NdrFcShort( 0x0 ), /* 0 */
-/* 12 */ NdrFcShort( 0x24 ), /* 36 */
-/* 14 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 16 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 18 */ NdrFcShort( 0x0 ), /* 0 */
-/* 20 */ NdrFcShort( 0x0 ), /* 0 */
-/* 22 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter nRelations */
-
-/* 24 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 26 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 28 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 30 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 32 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 34 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_relation */
-
-/* 36 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 38 */ NdrFcLong( 0x0 ), /* 0 */
-/* 42 */ NdrFcShort( 0x1d ), /* 29 */
-/* 44 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
-/* 46 */ NdrFcShort( 0x8 ), /* 8 */
-/* 48 */ NdrFcShort( 0x8 ), /* 8 */
-/* 50 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x3, /* 3 */
-/* 52 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 54 */ NdrFcShort( 0x0 ), /* 0 */
-/* 56 */ NdrFcShort( 0x0 ), /* 0 */
-/* 58 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter relationIndex */
-
-/* 60 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 62 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 64 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter relation */
-
-/* 66 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
-/* 68 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 70 */ NdrFcShort( 0x6 ), /* Type Offset=6 */
-
- /* Return value */
-
-/* 72 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 74 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 76 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_relations */
-
-/* 78 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 80 */ NdrFcLong( 0x0 ), /* 0 */
-/* 84 */ NdrFcShort( 0x1e ), /* 30 */
-/* 86 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
-/* 88 */ NdrFcShort( 0x8 ), /* 8 */
-/* 90 */ NdrFcShort( 0x24 ), /* 36 */
-/* 92 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x4, /* 4 */
-/* 94 */ 0x8, /* 8 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 96 */ NdrFcShort( 0x1 ), /* 1 */
-/* 98 */ NdrFcShort( 0x0 ), /* 0 */
-/* 100 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter maxRelations */
-
-/* 102 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 104 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 106 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter relations */
-
-/* 108 */ NdrFcShort( 0x113 ), /* Flags: must size, must free, out, simple ref, */
-/* 110 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 112 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
-
- /* Parameter nRelations */
-
-/* 114 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 116 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 118 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 120 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 122 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
-/* 124 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure role */
-
-/* 126 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 128 */ NdrFcLong( 0x0 ), /* 0 */
-/* 132 */ NdrFcShort( 0x1f ), /* 31 */
-/* 134 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 136 */ NdrFcShort( 0x0 ), /* 0 */
-/* 138 */ NdrFcShort( 0x24 ), /* 36 */
-/* 140 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 142 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 144 */ NdrFcShort( 0x0 ), /* 0 */
-/* 146 */ NdrFcShort( 0x0 ), /* 0 */
-/* 148 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter role */
-
-/* 150 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 152 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 154 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 156 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 158 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 160 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure scrollTo */
-
-/* 162 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 164 */ NdrFcLong( 0x0 ), /* 0 */
-/* 168 */ NdrFcShort( 0x20 ), /* 32 */
-/* 170 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 172 */ NdrFcShort( 0x6 ), /* 6 */
-/* 174 */ NdrFcShort( 0x8 ), /* 8 */
-/* 176 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 178 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 180 */ NdrFcShort( 0x0 ), /* 0 */
-/* 182 */ NdrFcShort( 0x0 ), /* 0 */
-/* 184 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter scrollType */
-
-/* 186 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 188 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 190 */ 0xd, /* FC_ENUM16 */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 192 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 194 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 196 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure scrollToPoint */
-
-/* 198 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 200 */ NdrFcLong( 0x0 ), /* 0 */
-/* 204 */ NdrFcShort( 0x21 ), /* 33 */
-/* 206 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
-/* 208 */ NdrFcShort( 0x16 ), /* 22 */
-/* 210 */ NdrFcShort( 0x8 ), /* 8 */
-/* 212 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x4, /* 4 */
-/* 214 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 216 */ NdrFcShort( 0x0 ), /* 0 */
-/* 218 */ NdrFcShort( 0x0 ), /* 0 */
-/* 220 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter coordinateType */
-
-/* 222 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 224 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 226 */ 0xd, /* FC_ENUM16 */
- 0x0, /* 0 */
-
- /* Parameter x */
-
-/* 228 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 230 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 232 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter y */
-
-/* 234 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 236 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 238 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 240 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 242 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
-/* 244 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_groupPosition */
-
-/* 246 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 248 */ NdrFcLong( 0x0 ), /* 0 */
-/* 252 */ NdrFcShort( 0x22 ), /* 34 */
-/* 254 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
-/* 256 */ NdrFcShort( 0x0 ), /* 0 */
-/* 258 */ NdrFcShort( 0x5c ), /* 92 */
-/* 260 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x4, /* 4 */
-/* 262 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 264 */ NdrFcShort( 0x0 ), /* 0 */
-/* 266 */ NdrFcShort( 0x0 ), /* 0 */
-/* 268 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter groupLevel */
-
-/* 270 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 272 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 274 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter similarItemsInGroup */
-
-/* 276 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 278 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 280 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter positionInGroup */
-
-/* 282 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 284 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 286 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 288 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 290 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
-/* 292 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_states */
-
-/* 294 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 296 */ NdrFcLong( 0x0 ), /* 0 */
-/* 300 */ NdrFcShort( 0x23 ), /* 35 */
-/* 302 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 304 */ NdrFcShort( 0x0 ), /* 0 */
-/* 306 */ NdrFcShort( 0x24 ), /* 36 */
-/* 308 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 310 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 312 */ NdrFcShort( 0x0 ), /* 0 */
-/* 314 */ NdrFcShort( 0x0 ), /* 0 */
-/* 316 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter states */
-
-/* 318 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 320 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 322 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 324 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 326 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 328 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_extendedRole */
-
-/* 330 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 332 */ NdrFcLong( 0x0 ), /* 0 */
-/* 336 */ NdrFcShort( 0x24 ), /* 36 */
-/* 338 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 340 */ NdrFcShort( 0x0 ), /* 0 */
-/* 342 */ NdrFcShort( 0x8 ), /* 8 */
-/* 344 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x2, /* 2 */
-/* 346 */ 0x8, /* 8 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 348 */ NdrFcShort( 0x1 ), /* 1 */
-/* 350 */ NdrFcShort( 0x0 ), /* 0 */
-/* 352 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter extendedRole */
-
-/* 354 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
-/* 356 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 358 */ NdrFcShort( 0x54 ), /* Type Offset=84 */
-
- /* Return value */
-
-/* 360 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 362 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 364 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_localizedExtendedRole */
-
-/* 366 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 368 */ NdrFcLong( 0x0 ), /* 0 */
-/* 372 */ NdrFcShort( 0x25 ), /* 37 */
-/* 374 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 376 */ NdrFcShort( 0x0 ), /* 0 */
-/* 378 */ NdrFcShort( 0x8 ), /* 8 */
-/* 380 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x2, /* 2 */
-/* 382 */ 0x8, /* 8 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 384 */ NdrFcShort( 0x1 ), /* 1 */
-/* 386 */ NdrFcShort( 0x0 ), /* 0 */
-/* 388 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter localizedExtendedRole */
-
-/* 390 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
-/* 392 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 394 */ NdrFcShort( 0x54 ), /* Type Offset=84 */
-
- /* Return value */
-
-/* 396 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 398 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 400 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_nExtendedStates */
-
-/* 402 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 404 */ NdrFcLong( 0x0 ), /* 0 */
-/* 408 */ NdrFcShort( 0x26 ), /* 38 */
-/* 410 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 412 */ NdrFcShort( 0x0 ), /* 0 */
-/* 414 */ NdrFcShort( 0x24 ), /* 36 */
-/* 416 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 418 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 420 */ NdrFcShort( 0x0 ), /* 0 */
-/* 422 */ NdrFcShort( 0x0 ), /* 0 */
-/* 424 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter nExtendedStates */
-
-/* 426 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 428 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 430 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 432 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 434 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 436 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_extendedStates */
-
-/* 438 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 440 */ NdrFcLong( 0x0 ), /* 0 */
-/* 444 */ NdrFcShort( 0x27 ), /* 39 */
-/* 446 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
-/* 448 */ NdrFcShort( 0x8 ), /* 8 */
-/* 450 */ NdrFcShort( 0x24 ), /* 36 */
-/* 452 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x4, /* 4 */
-/* 454 */ 0x8, /* 8 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 456 */ NdrFcShort( 0x1 ), /* 1 */
-/* 458 */ NdrFcShort( 0x0 ), /* 0 */
-/* 460 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter maxExtendedStates */
-
-/* 462 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 464 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 466 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter extendedStates */
-
-/* 468 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
-/* 470 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 472 */ NdrFcShort( 0x5e ), /* Type Offset=94 */
-
- /* Parameter nExtendedStates */
-
-/* 474 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 476 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 478 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 480 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 482 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
-/* 484 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_localizedExtendedStates */
-
-/* 486 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 488 */ NdrFcLong( 0x0 ), /* 0 */
-/* 492 */ NdrFcShort( 0x28 ), /* 40 */
-/* 494 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
-/* 496 */ NdrFcShort( 0x8 ), /* 8 */
-/* 498 */ NdrFcShort( 0x24 ), /* 36 */
-/* 500 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x4, /* 4 */
-/* 502 */ 0x8, /* 8 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 504 */ NdrFcShort( 0x1 ), /* 1 */
-/* 506 */ NdrFcShort( 0x0 ), /* 0 */
-/* 508 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter maxLocalizedExtendedStates */
-
-/* 510 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 512 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 514 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter localizedExtendedStates */
-
-/* 516 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
-/* 518 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 520 */ NdrFcShort( 0x5e ), /* Type Offset=94 */
-
- /* Parameter nLocalizedExtendedStates */
-
-/* 522 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 524 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 526 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 528 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 530 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
-/* 532 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_uniqueID */
-
-/* 534 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 536 */ NdrFcLong( 0x0 ), /* 0 */
-/* 540 */ NdrFcShort( 0x29 ), /* 41 */
-/* 542 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 544 */ NdrFcShort( 0x0 ), /* 0 */
-/* 546 */ NdrFcShort( 0x24 ), /* 36 */
-/* 548 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 550 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 552 */ NdrFcShort( 0x0 ), /* 0 */
-/* 554 */ NdrFcShort( 0x0 ), /* 0 */
-/* 556 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter uniqueID */
-
-/* 558 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 560 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 562 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 564 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 566 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 568 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_windowHandle */
-
-/* 570 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 572 */ NdrFcLong( 0x0 ), /* 0 */
-/* 576 */ NdrFcShort( 0x2a ), /* 42 */
-/* 578 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 580 */ NdrFcShort( 0x0 ), /* 0 */
-/* 582 */ NdrFcShort( 0x8 ), /* 8 */
-/* 584 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x2, /* 2 */
-/* 586 */ 0x8, /* 8 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 588 */ NdrFcShort( 0x1 ), /* 1 */
-/* 590 */ NdrFcShort( 0x0 ), /* 0 */
-/* 592 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter windowHandle */
-
-/* 594 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
-/* 596 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 598 */ NdrFcShort( 0x98 ), /* Type Offset=152 */
-
- /* Return value */
-
-/* 600 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 602 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 604 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_indexInParent */
-
-/* 606 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 608 */ NdrFcLong( 0x0 ), /* 0 */
-/* 612 */ NdrFcShort( 0x2b ), /* 43 */
-/* 614 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 616 */ NdrFcShort( 0x0 ), /* 0 */
-/* 618 */ NdrFcShort( 0x24 ), /* 36 */
-/* 620 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 622 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 624 */ NdrFcShort( 0x0 ), /* 0 */
-/* 626 */ NdrFcShort( 0x0 ), /* 0 */
-/* 628 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter indexInParent */
-
-/* 630 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 632 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 634 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 636 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 638 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 640 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_locale */
-
-/* 642 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 644 */ NdrFcLong( 0x0 ), /* 0 */
-/* 648 */ NdrFcShort( 0x2c ), /* 44 */
-/* 650 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 652 */ NdrFcShort( 0x0 ), /* 0 */
-/* 654 */ NdrFcShort( 0x8 ), /* 8 */
-/* 656 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x2, /* 2 */
-/* 658 */ 0x8, /* 8 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 660 */ NdrFcShort( 0x1 ), /* 1 */
-/* 662 */ NdrFcShort( 0x0 ), /* 0 */
-/* 664 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter locale */
-
-/* 666 */ NdrFcShort( 0x4113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=16 */
-/* 668 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 670 */ NdrFcShort( 0xa6 ), /* Type Offset=166 */
-
- /* Return value */
-
-/* 672 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 674 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 676 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_attributes */
-
-/* 678 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 680 */ NdrFcLong( 0x0 ), /* 0 */
-/* 684 */ NdrFcShort( 0x2d ), /* 45 */
-/* 686 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 688 */ NdrFcShort( 0x0 ), /* 0 */
-/* 690 */ NdrFcShort( 0x8 ), /* 8 */
-/* 692 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x2, /* 2 */
-/* 694 */ 0x8, /* 8 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 696 */ NdrFcShort( 0x1 ), /* 1 */
-/* 698 */ NdrFcShort( 0x0 ), /* 0 */
-/* 700 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter attributes */
-
-/* 702 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
-/* 704 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 706 */ NdrFcShort( 0x54 ), /* Type Offset=84 */
-
- /* Return value */
-
-/* 708 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 710 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 712 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- 0x0
- }
- };
-
-static const Accessible2_MIDL_TYPE_FORMAT_STRING Accessible2__MIDL_TypeFormatString =
- {
- 0,
- {
- NdrFcShort( 0x0 ), /* 0 */
-/* 2 */
- 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
-/* 4 */ 0x8, /* FC_LONG */
- 0x5c, /* FC_PAD */
-/* 6 */
- 0x11, 0x10, /* FC_RP [pointer_deref] */
-/* 8 */ NdrFcShort( 0x2 ), /* Offset= 2 (10) */
-/* 10 */
- 0x2f, /* FC_IP */
- 0x5a, /* FC_CONSTANT_IID */
-/* 12 */ NdrFcLong( 0x7cdf86ee ), /* 2095023854 */
-/* 16 */ NdrFcShort( 0xc3da ), /* -15398 */
-/* 18 */ NdrFcShort( 0x496a ), /* 18794 */
-/* 20 */ 0xbd, /* 189 */
- 0xa4, /* 164 */
-/* 22 */ 0x28, /* 40 */
- 0x1b, /* 27 */
-/* 24 */ 0x33, /* 51 */
- 0x6e, /* 110 */
-/* 26 */ 0x1f, /* 31 */
- 0xdc, /* 220 */
-/* 28 */
- 0x11, 0x0, /* FC_RP */
-/* 30 */ NdrFcShort( 0x2 ), /* Offset= 2 (32) */
-/* 32 */
- 0x21, /* FC_BOGUS_ARRAY */
- 0x3, /* 3 */
-/* 34 */ NdrFcShort( 0x0 ), /* 0 */
-/* 36 */ 0x28, /* Corr desc: parameter, FC_LONG */
- 0x0, /* */
-/* 38 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 40 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 42 */ 0x28, /* Corr desc: parameter, FC_LONG */
- 0x54, /* FC_DEREFERENCE */
-/* 44 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 46 */ NdrFcShort( 0x0 ), /* Corr flags: */
-/* 48 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
- 0x0, /* 0 */
-/* 50 */ NdrFcShort( 0xffd8 ), /* Offset= -40 (10) */
-/* 52 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-/* 54 */
- 0x11, 0x4, /* FC_RP [alloced_on_stack] */
-/* 56 */ NdrFcShort( 0x1c ), /* Offset= 28 (84) */
-/* 58 */
- 0x13, 0x0, /* FC_OP */
-/* 60 */ NdrFcShort( 0xe ), /* Offset= 14 (74) */
-/* 62 */
- 0x1b, /* FC_CARRAY */
- 0x1, /* 1 */
-/* 64 */ NdrFcShort( 0x2 ), /* 2 */
-/* 66 */ 0x9, /* Corr desc: FC_ULONG */
- 0x0, /* */
-/* 68 */ NdrFcShort( 0xfffc ), /* -4 */
-/* 70 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 72 */ 0x6, /* FC_SHORT */
- 0x5b, /* FC_END */
-/* 74 */
- 0x17, /* FC_CSTRUCT */
- 0x3, /* 3 */
-/* 76 */ NdrFcShort( 0x8 ), /* 8 */
-/* 78 */ NdrFcShort( 0xfff0 ), /* Offset= -16 (62) */
-/* 80 */ 0x8, /* FC_LONG */
- 0x8, /* FC_LONG */
-/* 82 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-/* 84 */ 0xb4, /* FC_USER_MARSHAL */
- 0x83, /* 131 */
-/* 86 */ NdrFcShort( 0x0 ), /* 0 */
-/* 88 */ NdrFcShort( 0x4 ), /* 4 */
-/* 90 */ NdrFcShort( 0x0 ), /* 0 */
-/* 92 */ NdrFcShort( 0xffde ), /* Offset= -34 (58) */
-/* 94 */
- 0x11, 0x14, /* FC_RP [alloced_on_stack] [pointer_deref] */
-/* 96 */ NdrFcShort( 0x2 ), /* Offset= 2 (98) */
-/* 98 */
- 0x13, 0x0, /* FC_OP */
-/* 100 */ NdrFcShort( 0x2 ), /* Offset= 2 (102) */
-/* 102 */
- 0x21, /* FC_BOGUS_ARRAY */
- 0x3, /* 3 */
-/* 104 */ NdrFcShort( 0x0 ), /* 0 */
-/* 106 */ 0x28, /* Corr desc: parameter, FC_LONG */
- 0x0, /* */
-/* 108 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 110 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 112 */ 0x28, /* Corr desc: parameter, FC_LONG */
- 0x54, /* FC_DEREFERENCE */
-/* 114 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 116 */ NdrFcShort( 0x0 ), /* Corr flags: */
-/* 118 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
- 0x0, /* 0 */
-/* 120 */ NdrFcShort( 0xffdc ), /* Offset= -36 (84) */
-/* 122 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-/* 124 */
- 0x11, 0x4, /* FC_RP [alloced_on_stack] */
-/* 126 */ NdrFcShort( 0x1a ), /* Offset= 26 (152) */
-/* 128 */
- 0x13, 0x0, /* FC_OP */
-/* 130 */ NdrFcShort( 0x2 ), /* Offset= 2 (132) */
-/* 132 */
- 0x2a, /* FC_ENCAPSULATED_UNION */
- 0x48, /* 72 */
-/* 134 */ NdrFcShort( 0x4 ), /* 4 */
-/* 136 */ NdrFcShort( 0x2 ), /* 2 */
-/* 138 */ NdrFcLong( 0x48746457 ), /* 1215587415 */
-/* 142 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
-/* 144 */ NdrFcLong( 0x52746457 ), /* 1383359575 */
-/* 148 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
-/* 150 */ NdrFcShort( 0xffff ), /* Offset= -1 (149) */
-/* 152 */ 0xb4, /* FC_USER_MARSHAL */
- 0x83, /* 131 */
-/* 154 */ NdrFcShort( 0x1 ), /* 1 */
-/* 156 */ NdrFcShort( 0x4 ), /* 4 */
-/* 158 */ NdrFcShort( 0x0 ), /* 0 */
-/* 160 */ NdrFcShort( 0xffe0 ), /* Offset= -32 (128) */
-/* 162 */
- 0x11, 0x4, /* FC_RP [alloced_on_stack] */
-/* 164 */ NdrFcShort( 0x2 ), /* Offset= 2 (166) */
-/* 166 */
- 0x1a, /* FC_BOGUS_STRUCT */
- 0x3, /* 3 */
-/* 168 */ NdrFcShort( 0xc ), /* 12 */
-/* 170 */ NdrFcShort( 0x0 ), /* 0 */
-/* 172 */ NdrFcShort( 0x0 ), /* Offset= 0 (172) */
-/* 174 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
- 0x0, /* 0 */
-/* 176 */ NdrFcShort( 0xffa4 ), /* Offset= -92 (84) */
-/* 178 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
- 0x0, /* 0 */
-/* 180 */ NdrFcShort( 0xffa0 ), /* Offset= -96 (84) */
-/* 182 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
- 0x0, /* 0 */
-/* 184 */ NdrFcShort( 0xff9c ), /* Offset= -100 (84) */
-/* 186 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-
- 0x0
- }
- };
-
-static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] =
- {
-
- {
- BSTR_UserSize
- ,BSTR_UserMarshal
- ,BSTR_UserUnmarshal
- ,BSTR_UserFree
- },
- {
- HWND_UserSize
- ,HWND_UserMarshal
- ,HWND_UserUnmarshal
- ,HWND_UserFree
- }
-
- };
-
-
-
-/* Standard interface: __MIDL_itf_Accessible2_0000_0000, ver. 0.0,
- GUID={0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}} */
-
-
-/* Object interface: IUnknown, ver. 0.0,
- GUID={0x00000000,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
-
-
-/* Object interface: IDispatch, ver. 0.0,
- GUID={0x00020400,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
-
-
-/* Object interface: IAccessible, ver. 0.0,
- GUID={0x618736e0,0x3c3d,0x11cf,{0x81,0x0c,0x00,0xaa,0x00,0x38,0x9b,0x71}} */
-
-
-/* Object interface: IAccessible2, ver. 0.0,
- GUID={0xE89F726E,0xC4F4,0x4c19,{0xBB,0x19,0xB6,0x47,0xD7,0xFA,0x84,0x78}} */
-
-#pragma code_seg(".orpc")
-static const unsigned short IAccessible2_FormatStringOffsetTable[] =
- {
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- 0,
- 36,
- 78,
- 126,
- 162,
- 198,
- 246,
- 294,
- 330,
- 366,
- 402,
- 438,
- 486,
- 534,
- 570,
- 606,
- 642,
- 678
- };
-
-static const MIDL_STUBLESS_PROXY_INFO IAccessible2_ProxyInfo =
- {
- &Object_StubDesc,
- Accessible2__MIDL_ProcFormatString.Format,
- &IAccessible2_FormatStringOffsetTable[-3],
- 0,
- 0,
- 0
- };
-
-
-static const MIDL_SERVER_INFO IAccessible2_ServerInfo =
- {
- &Object_StubDesc,
- 0,
- Accessible2__MIDL_ProcFormatString.Format,
- &IAccessible2_FormatStringOffsetTable[-3],
- 0,
- 0,
- 0,
- 0};
-CINTERFACE_PROXY_VTABLE(46) _IAccessible2ProxyVtbl =
-{
- &IAccessible2_ProxyInfo,
- &IID_IAccessible2,
- IUnknown_QueryInterface_Proxy,
- IUnknown_AddRef_Proxy,
- IUnknown_Release_Proxy ,
- 0 /* IDispatch::GetTypeInfoCount */ ,
- 0 /* IDispatch::GetTypeInfo */ ,
- 0 /* IDispatch::GetIDsOfNames */ ,
- 0 /* IDispatch_Invoke_Proxy */ ,
- 0 /* IAccessible::get_accParent */ ,
- 0 /* IAccessible::get_accChildCount */ ,
- 0 /* IAccessible::get_accChild */ ,
- 0 /* IAccessible::get_accName */ ,
- 0 /* IAccessible::get_accValue */ ,
- 0 /* IAccessible::get_accDescription */ ,
- 0 /* IAccessible::get_accRole */ ,
- 0 /* IAccessible::get_accState */ ,
- 0 /* IAccessible::get_accHelp */ ,
- 0 /* IAccessible::get_accHelpTopic */ ,
- 0 /* IAccessible::get_accKeyboardShortcut */ ,
- 0 /* IAccessible::get_accFocus */ ,
- 0 /* IAccessible::get_accSelection */ ,
- 0 /* IAccessible::get_accDefaultAction */ ,
- 0 /* IAccessible::accSelect */ ,
- 0 /* IAccessible::accLocation */ ,
- 0 /* IAccessible::accNavigate */ ,
- 0 /* IAccessible::accHitTest */ ,
- 0 /* IAccessible::accDoDefaultAction */ ,
- 0 /* IAccessible::put_accName */ ,
- 0 /* IAccessible::put_accValue */ ,
- (void *) (INT_PTR) -1 /* IAccessible2::get_nRelations */ ,
- (void *) (INT_PTR) -1 /* IAccessible2::get_relation */ ,
- (void *) (INT_PTR) -1 /* IAccessible2::get_relations */ ,
- (void *) (INT_PTR) -1 /* IAccessible2::role */ ,
- (void *) (INT_PTR) -1 /* IAccessible2::scrollTo */ ,
- (void *) (INT_PTR) -1 /* IAccessible2::scrollToPoint */ ,
- (void *) (INT_PTR) -1 /* IAccessible2::get_groupPosition */ ,
- (void *) (INT_PTR) -1 /* IAccessible2::get_states */ ,
- (void *) (INT_PTR) -1 /* IAccessible2::get_extendedRole */ ,
- (void *) (INT_PTR) -1 /* IAccessible2::get_localizedExtendedRole */ ,
- (void *) (INT_PTR) -1 /* IAccessible2::get_nExtendedStates */ ,
- (void *) (INT_PTR) -1 /* IAccessible2::get_extendedStates */ ,
- (void *) (INT_PTR) -1 /* IAccessible2::get_localizedExtendedStates */ ,
- (void *) (INT_PTR) -1 /* IAccessible2::get_uniqueID */ ,
- (void *) (INT_PTR) -1 /* IAccessible2::get_windowHandle */ ,
- (void *) (INT_PTR) -1 /* IAccessible2::get_indexInParent */ ,
- (void *) (INT_PTR) -1 /* IAccessible2::get_locale */ ,
- (void *) (INT_PTR) -1 /* IAccessible2::get_attributes */
-};
-
-
-static const PRPC_STUB_FUNCTION IAccessible2_table[] =
-{
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- NdrStubCall2,
- NdrStubCall2,
- NdrStubCall2,
- NdrStubCall2,
- NdrStubCall2,
- NdrStubCall2,
- NdrStubCall2,
- NdrStubCall2,
- NdrStubCall2,
- NdrStubCall2,
- NdrStubCall2,
- NdrStubCall2,
- NdrStubCall2,
- NdrStubCall2,
- NdrStubCall2,
- NdrStubCall2,
- NdrStubCall2,
- NdrStubCall2
-};
-
-CInterfaceStubVtbl _IAccessible2StubVtbl =
-{
- &IID_IAccessible2,
- &IAccessible2_ServerInfo,
- 46,
- &IAccessible2_table[-3],
- CStdStubBuffer_DELEGATING_METHODS
-};
-
-static const MIDL_STUB_DESC Object_StubDesc =
- {
- 0,
- NdrOleAllocate,
- NdrOleFree,
- 0,
- 0,
- 0,
- 0,
- 0,
- Accessible2__MIDL_TypeFormatString.Format,
- 1, /* -error bounds_check flag */
- 0x50002, /* Ndr library version */
- 0,
- 0x700022b, /* MIDL Version 7.0.555 */
- 0,
- UserMarshalRoutines,
- 0, /* notify & notify_flag routine table */
- 0x1, /* MIDL flag */
- 0, /* cs routines */
- 0, /* proxy/server info */
- 0
- };
-
-const CInterfaceProxyVtbl * const _Accessible2_ProxyVtblList[] =
-{
- ( CInterfaceProxyVtbl *) &_IAccessible2ProxyVtbl,
- 0
-};
-
-const CInterfaceStubVtbl * const _Accessible2_StubVtblList[] =
-{
- ( CInterfaceStubVtbl *) &_IAccessible2StubVtbl,
- 0
-};
-
-PCInterfaceName const _Accessible2_InterfaceNamesList[] =
-{
- "IAccessible2",
- 0
-};
-
-const IID * const _Accessible2_BaseIIDList[] =
-{
- &IID_IAccessible,
- 0
-};
-
-
-#define _Accessible2_CHECK_IID(n) IID_GENERIC_CHECK_IID( _Accessible2, pIID, n)
-
-int __stdcall _Accessible2_IID_Lookup( const IID * pIID, int * pIndex )
-{
-
- if(!_Accessible2_CHECK_IID(0))
- {
- *pIndex = 0;
- return 1;
- }
-
- return 0;
-}
-
-const ExtendedProxyFileInfo Accessible2_ProxyFileInfo =
-{
- (PCInterfaceProxyVtblList *) & _Accessible2_ProxyVtblList,
- (PCInterfaceStubVtblList *) & _Accessible2_StubVtblList,
- (const PCInterfaceName * ) & _Accessible2_InterfaceNamesList,
- (const IID ** ) & _Accessible2_BaseIIDList,
- & _Accessible2_IID_Lookup,
- 1,
- 2,
- 0, /* table of [async_uuid] interfaces */
- 0, /* Filler1 */
- 0, /* Filler2 */
- 0 /* Filler3 */
-};
-#pragma optimize("", on )
-#if _MSC_VER >= 1200
-#pragma warning(pop)
-#endif
-
-
-#endif /* !defined(_M_IA64) && !defined(_M_AMD64)*/
-
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleAction.h b/src/3rdparty/iaccessible2/generated/x86/AccessibleAction.h
deleted file mode 100644
index c1ebabb899..0000000000
--- a/src/3rdparty/iaccessible2/generated/x86/AccessibleAction.h
+++ /dev/null
@@ -1,220 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the definitions for the interfaces */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:51 2012
- */
-/* Compiler settings for AccessibleAction.idl:
- Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-
-
-/* verify that the <rpcndr.h> version is high enough to compile this file*/
-#ifndef __REQUIRED_RPCNDR_H_VERSION__
-#define __REQUIRED_RPCNDR_H_VERSION__ 475
-#endif
-
-#include "rpc.h"
-#include "rpcndr.h"
-
-#ifndef __RPCNDR_H_VERSION__
-#error this stub requires an updated version of <rpcndr.h>
-#endif // __RPCNDR_H_VERSION__
-
-#ifndef COM_NO_WINDOWS_H
-#include "windows.h"
-#include "ole2.h"
-#endif /*COM_NO_WINDOWS_H*/
-
-#ifndef __AccessibleAction_h__
-#define __AccessibleAction_h__
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-#pragma once
-#endif
-
-/* Forward Declarations */
-
-#ifndef __IAccessibleAction_FWD_DEFINED__
-#define __IAccessibleAction_FWD_DEFINED__
-typedef interface IAccessibleAction IAccessibleAction;
-#endif /* __IAccessibleAction_FWD_DEFINED__ */
-
-
-/* header files for imported files */
-#include "objidl.h"
-#include "oaidl.h"
-#include "oleacc.h"
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-
-#ifndef __IAccessibleAction_INTERFACE_DEFINED__
-#define __IAccessibleAction_INTERFACE_DEFINED__
-
-/* interface IAccessibleAction */
-/* [uuid][object] */
-
-
-EXTERN_C const IID IID_IAccessibleAction;
-
-#if defined(__cplusplus) && !defined(CINTERFACE)
-
- MIDL_INTERFACE("B70D9F59-3B5A-4dba-AB9E-22012F607DF5")
- IAccessibleAction : public IUnknown
- {
- public:
- virtual HRESULT STDMETHODCALLTYPE nActions(
- /* [retval][out] */ long *nActions) = 0;
-
- virtual HRESULT STDMETHODCALLTYPE doAction(
- /* [in] */ long actionIndex) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_description(
- /* [in] */ long actionIndex,
- /* [retval][out] */ BSTR *description) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_keyBinding(
- /* [in] */ long actionIndex,
- /* [in] */ long nMaxBindings,
- /* [length_is][length_is][size_is][size_is][out] */ BSTR **keyBindings,
- /* [retval][out] */ long *nBindings) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_name(
- /* [in] */ long actionIndex,
- /* [retval][out] */ BSTR *name) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_localizedName(
- /* [in] */ long actionIndex,
- /* [retval][out] */ BSTR *localizedName) = 0;
-
- };
-
-#else /* C style interface */
-
- typedef struct IAccessibleActionVtbl
- {
- BEGIN_INTERFACE
-
- HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
- IAccessibleAction * This,
- /* [in] */ REFIID riid,
- /* [annotation][iid_is][out] */
- __RPC__deref_out void **ppvObject);
-
- ULONG ( STDMETHODCALLTYPE *AddRef )(
- IAccessibleAction * This);
-
- ULONG ( STDMETHODCALLTYPE *Release )(
- IAccessibleAction * This);
-
- HRESULT ( STDMETHODCALLTYPE *nActions )(
- IAccessibleAction * This,
- /* [retval][out] */ long *nActions);
-
- HRESULT ( STDMETHODCALLTYPE *doAction )(
- IAccessibleAction * This,
- /* [in] */ long actionIndex);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_description )(
- IAccessibleAction * This,
- /* [in] */ long actionIndex,
- /* [retval][out] */ BSTR *description);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_keyBinding )(
- IAccessibleAction * This,
- /* [in] */ long actionIndex,
- /* [in] */ long nMaxBindings,
- /* [length_is][length_is][size_is][size_is][out] */ BSTR **keyBindings,
- /* [retval][out] */ long *nBindings);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_name )(
- IAccessibleAction * This,
- /* [in] */ long actionIndex,
- /* [retval][out] */ BSTR *name);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedName )(
- IAccessibleAction * This,
- /* [in] */ long actionIndex,
- /* [retval][out] */ BSTR *localizedName);
-
- END_INTERFACE
- } IAccessibleActionVtbl;
-
- interface IAccessibleAction
- {
- CONST_VTBL struct IAccessibleActionVtbl *lpVtbl;
- };
-
-
-
-#ifdef COBJMACROS
-
-
-#define IAccessibleAction_QueryInterface(This,riid,ppvObject) \
- ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
-
-#define IAccessibleAction_AddRef(This) \
- ( (This)->lpVtbl -> AddRef(This) )
-
-#define IAccessibleAction_Release(This) \
- ( (This)->lpVtbl -> Release(This) )
-
-
-#define IAccessibleAction_nActions(This,nActions) \
- ( (This)->lpVtbl -> nActions(This,nActions) )
-
-#define IAccessibleAction_doAction(This,actionIndex) \
- ( (This)->lpVtbl -> doAction(This,actionIndex) )
-
-#define IAccessibleAction_get_description(This,actionIndex,description) \
- ( (This)->lpVtbl -> get_description(This,actionIndex,description) )
-
-#define IAccessibleAction_get_keyBinding(This,actionIndex,nMaxBindings,keyBindings,nBindings) \
- ( (This)->lpVtbl -> get_keyBinding(This,actionIndex,nMaxBindings,keyBindings,nBindings) )
-
-#define IAccessibleAction_get_name(This,actionIndex,name) \
- ( (This)->lpVtbl -> get_name(This,actionIndex,name) )
-
-#define IAccessibleAction_get_localizedName(This,actionIndex,localizedName) \
- ( (This)->lpVtbl -> get_localizedName(This,actionIndex,localizedName) )
-
-#endif /* COBJMACROS */
-
-
-#endif /* C style interface */
-
-
-
-
-#endif /* __IAccessibleAction_INTERFACE_DEFINED__ */
-
-
-/* Additional Prototypes for ALL interfaces */
-
-unsigned long __RPC_USER BSTR_UserSize( unsigned long *, unsigned long , BSTR * );
-unsigned char * __RPC_USER BSTR_UserMarshal( unsigned long *, unsigned char *, BSTR * );
-unsigned char * __RPC_USER BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * );
-void __RPC_USER BSTR_UserFree( unsigned long *, BSTR * );
-
-/* end of Additional Prototypes */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleAction_i.c b/src/3rdparty/iaccessible2/generated/x86/AccessibleAction_i.c
deleted file mode 100644
index ea097ef5d6..0000000000
--- a/src/3rdparty/iaccessible2/generated/x86/AccessibleAction_i.c
+++ /dev/null
@@ -1,79 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
-
-/* link this file in with the server and any clients */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:51 2012
- */
-/* Compiler settings for AccessibleAction.idl:
- Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-
-#include <rpc.h>
-#include <rpcndr.h>
-
-#ifdef _MIDL_USE_GUIDDEF_
-
-#ifndef INITGUID
-#define INITGUID
-#include <guiddef.h>
-#undef INITGUID
-#else
-#include <guiddef.h>
-#endif
-
-#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
- DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
-
-#else // !_MIDL_USE_GUIDDEF_
-
-#ifndef __IID_DEFINED__
-#define __IID_DEFINED__
-
-typedef struct _IID
-{
- unsigned long x;
- unsigned short s1;
- unsigned short s2;
- unsigned char c[8];
-} IID;
-
-#endif // __IID_DEFINED__
-
-#ifndef CLSID_DEFINED
-#define CLSID_DEFINED
-typedef IID CLSID;
-#endif // CLSID_DEFINED
-
-#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
- const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
-
-#endif !_MIDL_USE_GUIDDEF_
-
-MIDL_DEFINE_GUID(IID, IID_IAccessibleAction,0xB70D9F59,0x3B5A,0x4dba,0xAB,0x9E,0x22,0x01,0x2F,0x60,0x7D,0xF5);
-
-#undef MIDL_DEFINE_GUID
-
-#ifdef __cplusplus
-}
-#endif
-
-
-
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleAction_p.c b/src/3rdparty/iaccessible2/generated/x86/AccessibleAction_p.c
deleted file mode 100644
index 41854575bd..0000000000
--- a/src/3rdparty/iaccessible2/generated/x86/AccessibleAction_p.c
+++ /dev/null
@@ -1,563 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the proxy stub code */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:51 2012
- */
-/* Compiler settings for AccessibleAction.idl:
- Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#if !defined(_M_IA64) && !defined(_M_AMD64)
-
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-#if _MSC_VER >= 1200
-#pragma warning(push)
-#endif
-
-#pragma warning( disable: 4211 ) /* redefine extern to static */
-#pragma warning( disable: 4232 ) /* dllimport identity*/
-#pragma warning( disable: 4024 ) /* array to pointer mapping*/
-#pragma warning( disable: 4152 ) /* function/data pointer conversion in expression */
-#pragma warning( disable: 4100 ) /* unreferenced arguments in x86 call */
-
-#pragma optimize("", off )
-
-#define USE_STUBLESS_PROXY
-
-
-/* verify that the <rpcproxy.h> version is high enough to compile this file*/
-#ifndef __REDQ_RPCPROXY_H_VERSION__
-#define __REQUIRED_RPCPROXY_H_VERSION__ 475
-#endif
-
-
-#include "rpcproxy.h"
-#ifndef __RPCPROXY_H_VERSION__
-#error this stub requires an updated version of <rpcproxy.h>
-#endif /* __RPCPROXY_H_VERSION__ */
-
-
-#include "AccessibleAction.h"
-
-#define TYPE_FORMAT_STRING_SIZE 77
-#define PROC_FORMAT_STRING_SIZE 253
-#define EXPR_FORMAT_STRING_SIZE 1
-#define TRANSMIT_AS_TABLE_SIZE 0
-#define WIRE_MARSHAL_TABLE_SIZE 1
-
-typedef struct _AccessibleAction_MIDL_TYPE_FORMAT_STRING
- {
- short Pad;
- unsigned char Format[ TYPE_FORMAT_STRING_SIZE ];
- } AccessibleAction_MIDL_TYPE_FORMAT_STRING;
-
-typedef struct _AccessibleAction_MIDL_PROC_FORMAT_STRING
- {
- short Pad;
- unsigned char Format[ PROC_FORMAT_STRING_SIZE ];
- } AccessibleAction_MIDL_PROC_FORMAT_STRING;
-
-typedef struct _AccessibleAction_MIDL_EXPR_FORMAT_STRING
- {
- long Pad;
- unsigned char Format[ EXPR_FORMAT_STRING_SIZE ];
- } AccessibleAction_MIDL_EXPR_FORMAT_STRING;
-
-
-static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax =
-{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}};
-
-
-extern const AccessibleAction_MIDL_TYPE_FORMAT_STRING AccessibleAction__MIDL_TypeFormatString;
-extern const AccessibleAction_MIDL_PROC_FORMAT_STRING AccessibleAction__MIDL_ProcFormatString;
-extern const AccessibleAction_MIDL_EXPR_FORMAT_STRING AccessibleAction__MIDL_ExprFormatString;
-
-
-extern const MIDL_STUB_DESC Object_StubDesc;
-
-
-extern const MIDL_SERVER_INFO IAccessibleAction_ServerInfo;
-extern const MIDL_STUBLESS_PROXY_INFO IAccessibleAction_ProxyInfo;
-
-
-extern const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ];
-
-#if !defined(__RPC_WIN32__)
-#error Invalid build platform for this stub.
-#endif
-
-#if !(TARGET_IS_NT50_OR_LATER)
-#error You need Windows 2000 or later to run this stub because it uses these features:
-#error /robust command line switch.
-#error However, your C/C++ compilation flags indicate you intend to run this app on earlier systems.
-#error This app will fail with the RPC_X_WRONG_STUB_VERSION error.
-#endif
-
-
-static const AccessibleAction_MIDL_PROC_FORMAT_STRING AccessibleAction__MIDL_ProcFormatString =
- {
- 0,
- {
-
- /* Procedure nActions */
-
- 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 2 */ NdrFcLong( 0x0 ), /* 0 */
-/* 6 */ NdrFcShort( 0x3 ), /* 3 */
-/* 8 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 10 */ NdrFcShort( 0x0 ), /* 0 */
-/* 12 */ NdrFcShort( 0x24 ), /* 36 */
-/* 14 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 16 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 18 */ NdrFcShort( 0x0 ), /* 0 */
-/* 20 */ NdrFcShort( 0x0 ), /* 0 */
-/* 22 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter nActions */
-
-/* 24 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 26 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 28 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 30 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 32 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 34 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure doAction */
-
-/* 36 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 38 */ NdrFcLong( 0x0 ), /* 0 */
-/* 42 */ NdrFcShort( 0x4 ), /* 4 */
-/* 44 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 46 */ NdrFcShort( 0x8 ), /* 8 */
-/* 48 */ NdrFcShort( 0x8 ), /* 8 */
-/* 50 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 52 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 54 */ NdrFcShort( 0x0 ), /* 0 */
-/* 56 */ NdrFcShort( 0x0 ), /* 0 */
-/* 58 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter actionIndex */
-
-/* 60 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 62 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 64 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 66 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 68 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 70 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_description */
-
-/* 72 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 74 */ NdrFcLong( 0x0 ), /* 0 */
-/* 78 */ NdrFcShort( 0x5 ), /* 5 */
-/* 80 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
-/* 82 */ NdrFcShort( 0x8 ), /* 8 */
-/* 84 */ NdrFcShort( 0x8 ), /* 8 */
-/* 86 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x3, /* 3 */
-/* 88 */ 0x8, /* 8 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 90 */ NdrFcShort( 0x1 ), /* 1 */
-/* 92 */ NdrFcShort( 0x0 ), /* 0 */
-/* 94 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter actionIndex */
-
-/* 96 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 98 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 100 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter description */
-
-/* 102 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
-/* 104 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 106 */ NdrFcShort( 0x24 ), /* Type Offset=36 */
-
- /* Return value */
-
-/* 108 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 110 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 112 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_keyBinding */
-
-/* 114 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 116 */ NdrFcLong( 0x0 ), /* 0 */
-/* 120 */ NdrFcShort( 0x6 ), /* 6 */
-/* 122 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */
-/* 124 */ NdrFcShort( 0x10 ), /* 16 */
-/* 126 */ NdrFcShort( 0x24 ), /* 36 */
-/* 128 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x5, /* 5 */
-/* 130 */ 0x8, /* 8 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 132 */ NdrFcShort( 0x1 ), /* 1 */
-/* 134 */ NdrFcShort( 0x0 ), /* 0 */
-/* 136 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter actionIndex */
-
-/* 138 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 140 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 142 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter nMaxBindings */
-
-/* 144 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 146 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 148 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter keyBindings */
-
-/* 150 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
-/* 152 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 154 */ NdrFcShort( 0x2e ), /* Type Offset=46 */
-
- /* Parameter nBindings */
-
-/* 156 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 158 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
-/* 160 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 162 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 164 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
-/* 166 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_name */
-
-/* 168 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 170 */ NdrFcLong( 0x0 ), /* 0 */
-/* 174 */ NdrFcShort( 0x7 ), /* 7 */
-/* 176 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
-/* 178 */ NdrFcShort( 0x8 ), /* 8 */
-/* 180 */ NdrFcShort( 0x8 ), /* 8 */
-/* 182 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x3, /* 3 */
-/* 184 */ 0x8, /* 8 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 186 */ NdrFcShort( 0x1 ), /* 1 */
-/* 188 */ NdrFcShort( 0x0 ), /* 0 */
-/* 190 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter actionIndex */
-
-/* 192 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 194 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 196 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter name */
-
-/* 198 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
-/* 200 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 202 */ NdrFcShort( 0x24 ), /* Type Offset=36 */
-
- /* Return value */
-
-/* 204 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 206 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 208 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_localizedName */
-
-/* 210 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 212 */ NdrFcLong( 0x0 ), /* 0 */
-/* 216 */ NdrFcShort( 0x8 ), /* 8 */
-/* 218 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
-/* 220 */ NdrFcShort( 0x8 ), /* 8 */
-/* 222 */ NdrFcShort( 0x8 ), /* 8 */
-/* 224 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x3, /* 3 */
-/* 226 */ 0x8, /* 8 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 228 */ NdrFcShort( 0x1 ), /* 1 */
-/* 230 */ NdrFcShort( 0x0 ), /* 0 */
-/* 232 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter actionIndex */
-
-/* 234 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 236 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 238 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter localizedName */
-
-/* 240 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
-/* 242 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 244 */ NdrFcShort( 0x24 ), /* Type Offset=36 */
-
- /* Return value */
-
-/* 246 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 248 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 250 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- 0x0
- }
- };
-
-static const AccessibleAction_MIDL_TYPE_FORMAT_STRING AccessibleAction__MIDL_TypeFormatString =
- {
- 0,
- {
- NdrFcShort( 0x0 ), /* 0 */
-/* 2 */
- 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
-/* 4 */ 0x8, /* FC_LONG */
- 0x5c, /* FC_PAD */
-/* 6 */
- 0x11, 0x4, /* FC_RP [alloced_on_stack] */
-/* 8 */ NdrFcShort( 0x1c ), /* Offset= 28 (36) */
-/* 10 */
- 0x13, 0x0, /* FC_OP */
-/* 12 */ NdrFcShort( 0xe ), /* Offset= 14 (26) */
-/* 14 */
- 0x1b, /* FC_CARRAY */
- 0x1, /* 1 */
-/* 16 */ NdrFcShort( 0x2 ), /* 2 */
-/* 18 */ 0x9, /* Corr desc: FC_ULONG */
- 0x0, /* */
-/* 20 */ NdrFcShort( 0xfffc ), /* -4 */
-/* 22 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 24 */ 0x6, /* FC_SHORT */
- 0x5b, /* FC_END */
-/* 26 */
- 0x17, /* FC_CSTRUCT */
- 0x3, /* 3 */
-/* 28 */ NdrFcShort( 0x8 ), /* 8 */
-/* 30 */ NdrFcShort( 0xfff0 ), /* Offset= -16 (14) */
-/* 32 */ 0x8, /* FC_LONG */
- 0x8, /* FC_LONG */
-/* 34 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-/* 36 */ 0xb4, /* FC_USER_MARSHAL */
- 0x83, /* 131 */
-/* 38 */ NdrFcShort( 0x0 ), /* 0 */
-/* 40 */ NdrFcShort( 0x4 ), /* 4 */
-/* 42 */ NdrFcShort( 0x0 ), /* 0 */
-/* 44 */ NdrFcShort( 0xffde ), /* Offset= -34 (10) */
-/* 46 */
- 0x11, 0x14, /* FC_RP [alloced_on_stack] [pointer_deref] */
-/* 48 */ NdrFcShort( 0x2 ), /* Offset= 2 (50) */
-/* 50 */
- 0x13, 0x0, /* FC_OP */
-/* 52 */ NdrFcShort( 0x2 ), /* Offset= 2 (54) */
-/* 54 */
- 0x21, /* FC_BOGUS_ARRAY */
- 0x3, /* 3 */
-/* 56 */ NdrFcShort( 0x0 ), /* 0 */
-/* 58 */ 0x28, /* Corr desc: parameter, FC_LONG */
- 0x0, /* */
-/* 60 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 62 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 64 */ 0x28, /* Corr desc: parameter, FC_LONG */
- 0x54, /* FC_DEREFERENCE */
-/* 66 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
-/* 68 */ NdrFcShort( 0x0 ), /* Corr flags: */
-/* 70 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
- 0x0, /* 0 */
-/* 72 */ NdrFcShort( 0xffdc ), /* Offset= -36 (36) */
-/* 74 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-
- 0x0
- }
- };
-
-static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] =
- {
-
- {
- BSTR_UserSize
- ,BSTR_UserMarshal
- ,BSTR_UserUnmarshal
- ,BSTR_UserFree
- }
-
- };
-
-
-
-/* Object interface: IUnknown, ver. 0.0,
- GUID={0x00000000,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
-
-
-/* Object interface: IAccessibleAction, ver. 0.0,
- GUID={0xB70D9F59,0x3B5A,0x4dba,{0xAB,0x9E,0x22,0x01,0x2F,0x60,0x7D,0xF5}} */
-
-#pragma code_seg(".orpc")
-static const unsigned short IAccessibleAction_FormatStringOffsetTable[] =
- {
- 0,
- 36,
- 72,
- 114,
- 168,
- 210
- };
-
-static const MIDL_STUBLESS_PROXY_INFO IAccessibleAction_ProxyInfo =
- {
- &Object_StubDesc,
- AccessibleAction__MIDL_ProcFormatString.Format,
- &IAccessibleAction_FormatStringOffsetTable[-3],
- 0,
- 0,
- 0
- };
-
-
-static const MIDL_SERVER_INFO IAccessibleAction_ServerInfo =
- {
- &Object_StubDesc,
- 0,
- AccessibleAction__MIDL_ProcFormatString.Format,
- &IAccessibleAction_FormatStringOffsetTable[-3],
- 0,
- 0,
- 0,
- 0};
-CINTERFACE_PROXY_VTABLE(9) _IAccessibleActionProxyVtbl =
-{
- &IAccessibleAction_ProxyInfo,
- &IID_IAccessibleAction,
- IUnknown_QueryInterface_Proxy,
- IUnknown_AddRef_Proxy,
- IUnknown_Release_Proxy ,
- (void *) (INT_PTR) -1 /* IAccessibleAction::nActions */ ,
- (void *) (INT_PTR) -1 /* IAccessibleAction::doAction */ ,
- (void *) (INT_PTR) -1 /* IAccessibleAction::get_description */ ,
- (void *) (INT_PTR) -1 /* IAccessibleAction::get_keyBinding */ ,
- (void *) (INT_PTR) -1 /* IAccessibleAction::get_name */ ,
- (void *) (INT_PTR) -1 /* IAccessibleAction::get_localizedName */
-};
-
-const CInterfaceStubVtbl _IAccessibleActionStubVtbl =
-{
- &IID_IAccessibleAction,
- &IAccessibleAction_ServerInfo,
- 9,
- 0, /* pure interpreted */
- CStdStubBuffer_METHODS
-};
-
-static const MIDL_STUB_DESC Object_StubDesc =
- {
- 0,
- NdrOleAllocate,
- NdrOleFree,
- 0,
- 0,
- 0,
- 0,
- 0,
- AccessibleAction__MIDL_TypeFormatString.Format,
- 1, /* -error bounds_check flag */
- 0x50002, /* Ndr library version */
- 0,
- 0x700022b, /* MIDL Version 7.0.555 */
- 0,
- UserMarshalRoutines,
- 0, /* notify & notify_flag routine table */
- 0x1, /* MIDL flag */
- 0, /* cs routines */
- 0, /* proxy/server info */
- 0
- };
-
-const CInterfaceProxyVtbl * const _AccessibleAction_ProxyVtblList[] =
-{
- ( CInterfaceProxyVtbl *) &_IAccessibleActionProxyVtbl,
- 0
-};
-
-const CInterfaceStubVtbl * const _AccessibleAction_StubVtblList[] =
-{
- ( CInterfaceStubVtbl *) &_IAccessibleActionStubVtbl,
- 0
-};
-
-PCInterfaceName const _AccessibleAction_InterfaceNamesList[] =
-{
- "IAccessibleAction",
- 0
-};
-
-
-#define _AccessibleAction_CHECK_IID(n) IID_GENERIC_CHECK_IID( _AccessibleAction, pIID, n)
-
-int __stdcall _AccessibleAction_IID_Lookup( const IID * pIID, int * pIndex )
-{
-
- if(!_AccessibleAction_CHECK_IID(0))
- {
- *pIndex = 0;
- return 1;
- }
-
- return 0;
-}
-
-const ExtendedProxyFileInfo AccessibleAction_ProxyFileInfo =
-{
- (PCInterfaceProxyVtblList *) & _AccessibleAction_ProxyVtblList,
- (PCInterfaceStubVtblList *) & _AccessibleAction_StubVtblList,
- (const PCInterfaceName * ) & _AccessibleAction_InterfaceNamesList,
- 0, /* no delegation */
- & _AccessibleAction_IID_Lookup,
- 1,
- 2,
- 0, /* table of [async_uuid] interfaces */
- 0, /* Filler1 */
- 0, /* Filler2 */
- 0 /* Filler3 */
-};
-#pragma optimize("", on )
-#if _MSC_VER >= 1200
-#pragma warning(pop)
-#endif
-
-
-#endif /* !defined(_M_IA64) && !defined(_M_AMD64)*/
-
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleApplication.h b/src/3rdparty/iaccessible2/generated/x86/AccessibleApplication.h
deleted file mode 100644
index e14096869c..0000000000
--- a/src/3rdparty/iaccessible2/generated/x86/AccessibleApplication.h
+++ /dev/null
@@ -1,188 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the definitions for the interfaces */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:52 2012
- */
-/* Compiler settings for AccessibleApplication.idl:
- Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-
-
-/* verify that the <rpcndr.h> version is high enough to compile this file*/
-#ifndef __REQUIRED_RPCNDR_H_VERSION__
-#define __REQUIRED_RPCNDR_H_VERSION__ 475
-#endif
-
-#include "rpc.h"
-#include "rpcndr.h"
-
-#ifndef __RPCNDR_H_VERSION__
-#error this stub requires an updated version of <rpcndr.h>
-#endif // __RPCNDR_H_VERSION__
-
-#ifndef COM_NO_WINDOWS_H
-#include "windows.h"
-#include "ole2.h"
-#endif /*COM_NO_WINDOWS_H*/
-
-#ifndef __AccessibleApplication_h__
-#define __AccessibleApplication_h__
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-#pragma once
-#endif
-
-/* Forward Declarations */
-
-#ifndef __IAccessibleApplication_FWD_DEFINED__
-#define __IAccessibleApplication_FWD_DEFINED__
-typedef interface IAccessibleApplication IAccessibleApplication;
-#endif /* __IAccessibleApplication_FWD_DEFINED__ */
-
-
-/* header files for imported files */
-#include "objidl.h"
-#include "oaidl.h"
-#include "oleacc.h"
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-
-#ifndef __IAccessibleApplication_INTERFACE_DEFINED__
-#define __IAccessibleApplication_INTERFACE_DEFINED__
-
-/* interface IAccessibleApplication */
-/* [uuid][object] */
-
-
-EXTERN_C const IID IID_IAccessibleApplication;
-
-#if defined(__cplusplus) && !defined(CINTERFACE)
-
- MIDL_INTERFACE("D49DED83-5B25-43F4-9B95-93B44595979E")
- IAccessibleApplication : public IUnknown
- {
- public:
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_appName(
- /* [retval][out] */ BSTR *name) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_appVersion(
- /* [retval][out] */ BSTR *version) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_toolkitName(
- /* [retval][out] */ BSTR *name) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_toolkitVersion(
- /* [retval][out] */ BSTR *version) = 0;
-
- };
-
-#else /* C style interface */
-
- typedef struct IAccessibleApplicationVtbl
- {
- BEGIN_INTERFACE
-
- HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
- IAccessibleApplication * This,
- /* [in] */ REFIID riid,
- /* [annotation][iid_is][out] */
- __RPC__deref_out void **ppvObject);
-
- ULONG ( STDMETHODCALLTYPE *AddRef )(
- IAccessibleApplication * This);
-
- ULONG ( STDMETHODCALLTYPE *Release )(
- IAccessibleApplication * This);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_appName )(
- IAccessibleApplication * This,
- /* [retval][out] */ BSTR *name);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_appVersion )(
- IAccessibleApplication * This,
- /* [retval][out] */ BSTR *version);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_toolkitName )(
- IAccessibleApplication * This,
- /* [retval][out] */ BSTR *name);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_toolkitVersion )(
- IAccessibleApplication * This,
- /* [retval][out] */ BSTR *version);
-
- END_INTERFACE
- } IAccessibleApplicationVtbl;
-
- interface IAccessibleApplication
- {
- CONST_VTBL struct IAccessibleApplicationVtbl *lpVtbl;
- };
-
-
-
-#ifdef COBJMACROS
-
-
-#define IAccessibleApplication_QueryInterface(This,riid,ppvObject) \
- ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
-
-#define IAccessibleApplication_AddRef(This) \
- ( (This)->lpVtbl -> AddRef(This) )
-
-#define IAccessibleApplication_Release(This) \
- ( (This)->lpVtbl -> Release(This) )
-
-
-#define IAccessibleApplication_get_appName(This,name) \
- ( (This)->lpVtbl -> get_appName(This,name) )
-
-#define IAccessibleApplication_get_appVersion(This,version) \
- ( (This)->lpVtbl -> get_appVersion(This,version) )
-
-#define IAccessibleApplication_get_toolkitName(This,name) \
- ( (This)->lpVtbl -> get_toolkitName(This,name) )
-
-#define IAccessibleApplication_get_toolkitVersion(This,version) \
- ( (This)->lpVtbl -> get_toolkitVersion(This,version) )
-
-#endif /* COBJMACROS */
-
-
-#endif /* C style interface */
-
-
-
-
-#endif /* __IAccessibleApplication_INTERFACE_DEFINED__ */
-
-
-/* Additional Prototypes for ALL interfaces */
-
-unsigned long __RPC_USER BSTR_UserSize( unsigned long *, unsigned long , BSTR * );
-unsigned char * __RPC_USER BSTR_UserMarshal( unsigned long *, unsigned char *, BSTR * );
-unsigned char * __RPC_USER BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * );
-void __RPC_USER BSTR_UserFree( unsigned long *, BSTR * );
-
-/* end of Additional Prototypes */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleApplication_i.c b/src/3rdparty/iaccessible2/generated/x86/AccessibleApplication_i.c
deleted file mode 100644
index daa0c1f7d3..0000000000
--- a/src/3rdparty/iaccessible2/generated/x86/AccessibleApplication_i.c
+++ /dev/null
@@ -1,79 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
-
-/* link this file in with the server and any clients */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:52 2012
- */
-/* Compiler settings for AccessibleApplication.idl:
- Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-
-#include <rpc.h>
-#include <rpcndr.h>
-
-#ifdef _MIDL_USE_GUIDDEF_
-
-#ifndef INITGUID
-#define INITGUID
-#include <guiddef.h>
-#undef INITGUID
-#else
-#include <guiddef.h>
-#endif
-
-#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
- DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
-
-#else // !_MIDL_USE_GUIDDEF_
-
-#ifndef __IID_DEFINED__
-#define __IID_DEFINED__
-
-typedef struct _IID
-{
- unsigned long x;
- unsigned short s1;
- unsigned short s2;
- unsigned char c[8];
-} IID;
-
-#endif // __IID_DEFINED__
-
-#ifndef CLSID_DEFINED
-#define CLSID_DEFINED
-typedef IID CLSID;
-#endif // CLSID_DEFINED
-
-#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
- const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
-
-#endif !_MIDL_USE_GUIDDEF_
-
-MIDL_DEFINE_GUID(IID, IID_IAccessibleApplication,0xD49DED83,0x5B25,0x43F4,0x9B,0x95,0x93,0xB4,0x45,0x95,0x97,0x9E);
-
-#undef MIDL_DEFINE_GUID
-
-#ifdef __cplusplus
-}
-#endif
-
-
-
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleApplication_p.c b/src/3rdparty/iaccessible2/generated/x86/AccessibleApplication_p.c
deleted file mode 100644
index 4e51a63fff..0000000000
--- a/src/3rdparty/iaccessible2/generated/x86/AccessibleApplication_p.c
+++ /dev/null
@@ -1,428 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the proxy stub code */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:52 2012
- */
-/* Compiler settings for AccessibleApplication.idl:
- Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#if !defined(_M_IA64) && !defined(_M_AMD64)
-
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-#if _MSC_VER >= 1200
-#pragma warning(push)
-#endif
-
-#pragma warning( disable: 4211 ) /* redefine extern to static */
-#pragma warning( disable: 4232 ) /* dllimport identity*/
-#pragma warning( disable: 4024 ) /* array to pointer mapping*/
-#pragma warning( disable: 4152 ) /* function/data pointer conversion in expression */
-#pragma warning( disable: 4100 ) /* unreferenced arguments in x86 call */
-
-#pragma optimize("", off )
-
-#define USE_STUBLESS_PROXY
-
-
-/* verify that the <rpcproxy.h> version is high enough to compile this file*/
-#ifndef __REDQ_RPCPROXY_H_VERSION__
-#define __REQUIRED_RPCPROXY_H_VERSION__ 475
-#endif
-
-
-#include "rpcproxy.h"
-#ifndef __RPCPROXY_H_VERSION__
-#error this stub requires an updated version of <rpcproxy.h>
-#endif /* __RPCPROXY_H_VERSION__ */
-
-
-#include "AccessibleApplication.h"
-
-#define TYPE_FORMAT_STRING_SIZE 43
-#define PROC_FORMAT_STRING_SIZE 145
-#define EXPR_FORMAT_STRING_SIZE 1
-#define TRANSMIT_AS_TABLE_SIZE 0
-#define WIRE_MARSHAL_TABLE_SIZE 1
-
-typedef struct _AccessibleApplication_MIDL_TYPE_FORMAT_STRING
- {
- short Pad;
- unsigned char Format[ TYPE_FORMAT_STRING_SIZE ];
- } AccessibleApplication_MIDL_TYPE_FORMAT_STRING;
-
-typedef struct _AccessibleApplication_MIDL_PROC_FORMAT_STRING
- {
- short Pad;
- unsigned char Format[ PROC_FORMAT_STRING_SIZE ];
- } AccessibleApplication_MIDL_PROC_FORMAT_STRING;
-
-typedef struct _AccessibleApplication_MIDL_EXPR_FORMAT_STRING
- {
- long Pad;
- unsigned char Format[ EXPR_FORMAT_STRING_SIZE ];
- } AccessibleApplication_MIDL_EXPR_FORMAT_STRING;
-
-
-static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax =
-{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}};
-
-
-extern const AccessibleApplication_MIDL_TYPE_FORMAT_STRING AccessibleApplication__MIDL_TypeFormatString;
-extern const AccessibleApplication_MIDL_PROC_FORMAT_STRING AccessibleApplication__MIDL_ProcFormatString;
-extern const AccessibleApplication_MIDL_EXPR_FORMAT_STRING AccessibleApplication__MIDL_ExprFormatString;
-
-
-extern const MIDL_STUB_DESC Object_StubDesc;
-
-
-extern const MIDL_SERVER_INFO IAccessibleApplication_ServerInfo;
-extern const MIDL_STUBLESS_PROXY_INFO IAccessibleApplication_ProxyInfo;
-
-
-extern const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ];
-
-#if !defined(__RPC_WIN32__)
-#error Invalid build platform for this stub.
-#endif
-
-#if !(TARGET_IS_NT50_OR_LATER)
-#error You need Windows 2000 or later to run this stub because it uses these features:
-#error /robust command line switch.
-#error However, your C/C++ compilation flags indicate you intend to run this app on earlier systems.
-#error This app will fail with the RPC_X_WRONG_STUB_VERSION error.
-#endif
-
-
-static const AccessibleApplication_MIDL_PROC_FORMAT_STRING AccessibleApplication__MIDL_ProcFormatString =
- {
- 0,
- {
-
- /* Procedure get_appName */
-
- 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 2 */ NdrFcLong( 0x0 ), /* 0 */
-/* 6 */ NdrFcShort( 0x3 ), /* 3 */
-/* 8 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 10 */ NdrFcShort( 0x0 ), /* 0 */
-/* 12 */ NdrFcShort( 0x8 ), /* 8 */
-/* 14 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x2, /* 2 */
-/* 16 */ 0x8, /* 8 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 18 */ NdrFcShort( 0x1 ), /* 1 */
-/* 20 */ NdrFcShort( 0x0 ), /* 0 */
-/* 22 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter name */
-
-/* 24 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
-/* 26 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 28 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
-
- /* Return value */
-
-/* 30 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 32 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 34 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_appVersion */
-
-/* 36 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 38 */ NdrFcLong( 0x0 ), /* 0 */
-/* 42 */ NdrFcShort( 0x4 ), /* 4 */
-/* 44 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 46 */ NdrFcShort( 0x0 ), /* 0 */
-/* 48 */ NdrFcShort( 0x8 ), /* 8 */
-/* 50 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x2, /* 2 */
-/* 52 */ 0x8, /* 8 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 54 */ NdrFcShort( 0x1 ), /* 1 */
-/* 56 */ NdrFcShort( 0x0 ), /* 0 */
-/* 58 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter version */
-
-/* 60 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
-/* 62 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 64 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
-
- /* Return value */
-
-/* 66 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 68 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 70 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_toolkitName */
-
-/* 72 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 74 */ NdrFcLong( 0x0 ), /* 0 */
-/* 78 */ NdrFcShort( 0x5 ), /* 5 */
-/* 80 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 82 */ NdrFcShort( 0x0 ), /* 0 */
-/* 84 */ NdrFcShort( 0x8 ), /* 8 */
-/* 86 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x2, /* 2 */
-/* 88 */ 0x8, /* 8 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 90 */ NdrFcShort( 0x1 ), /* 1 */
-/* 92 */ NdrFcShort( 0x0 ), /* 0 */
-/* 94 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter name */
-
-/* 96 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
-/* 98 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 100 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
-
- /* Return value */
-
-/* 102 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 104 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 106 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_toolkitVersion */
-
-/* 108 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 110 */ NdrFcLong( 0x0 ), /* 0 */
-/* 114 */ NdrFcShort( 0x6 ), /* 6 */
-/* 116 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 118 */ NdrFcShort( 0x0 ), /* 0 */
-/* 120 */ NdrFcShort( 0x8 ), /* 8 */
-/* 122 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x2, /* 2 */
-/* 124 */ 0x8, /* 8 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 126 */ NdrFcShort( 0x1 ), /* 1 */
-/* 128 */ NdrFcShort( 0x0 ), /* 0 */
-/* 130 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter version */
-
-/* 132 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
-/* 134 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 136 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
-
- /* Return value */
-
-/* 138 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 140 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 142 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- 0x0
- }
- };
-
-static const AccessibleApplication_MIDL_TYPE_FORMAT_STRING AccessibleApplication__MIDL_TypeFormatString =
- {
- 0,
- {
- NdrFcShort( 0x0 ), /* 0 */
-/* 2 */
- 0x11, 0x4, /* FC_RP [alloced_on_stack] */
-/* 4 */ NdrFcShort( 0x1c ), /* Offset= 28 (32) */
-/* 6 */
- 0x13, 0x0, /* FC_OP */
-/* 8 */ NdrFcShort( 0xe ), /* Offset= 14 (22) */
-/* 10 */
- 0x1b, /* FC_CARRAY */
- 0x1, /* 1 */
-/* 12 */ NdrFcShort( 0x2 ), /* 2 */
-/* 14 */ 0x9, /* Corr desc: FC_ULONG */
- 0x0, /* */
-/* 16 */ NdrFcShort( 0xfffc ), /* -4 */
-/* 18 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 20 */ 0x6, /* FC_SHORT */
- 0x5b, /* FC_END */
-/* 22 */
- 0x17, /* FC_CSTRUCT */
- 0x3, /* 3 */
-/* 24 */ NdrFcShort( 0x8 ), /* 8 */
-/* 26 */ NdrFcShort( 0xfff0 ), /* Offset= -16 (10) */
-/* 28 */ 0x8, /* FC_LONG */
- 0x8, /* FC_LONG */
-/* 30 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-/* 32 */ 0xb4, /* FC_USER_MARSHAL */
- 0x83, /* 131 */
-/* 34 */ NdrFcShort( 0x0 ), /* 0 */
-/* 36 */ NdrFcShort( 0x4 ), /* 4 */
-/* 38 */ NdrFcShort( 0x0 ), /* 0 */
-/* 40 */ NdrFcShort( 0xffde ), /* Offset= -34 (6) */
-
- 0x0
- }
- };
-
-static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] =
- {
-
- {
- BSTR_UserSize
- ,BSTR_UserMarshal
- ,BSTR_UserUnmarshal
- ,BSTR_UserFree
- }
-
- };
-
-
-
-/* Object interface: IUnknown, ver. 0.0,
- GUID={0x00000000,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
-
-
-/* Object interface: IAccessibleApplication, ver. 0.0,
- GUID={0xD49DED83,0x5B25,0x43F4,{0x9B,0x95,0x93,0xB4,0x45,0x95,0x97,0x9E}} */
-
-#pragma code_seg(".orpc")
-static const unsigned short IAccessibleApplication_FormatStringOffsetTable[] =
- {
- 0,
- 36,
- 72,
- 108
- };
-
-static const MIDL_STUBLESS_PROXY_INFO IAccessibleApplication_ProxyInfo =
- {
- &Object_StubDesc,
- AccessibleApplication__MIDL_ProcFormatString.Format,
- &IAccessibleApplication_FormatStringOffsetTable[-3],
- 0,
- 0,
- 0
- };
-
-
-static const MIDL_SERVER_INFO IAccessibleApplication_ServerInfo =
- {
- &Object_StubDesc,
- 0,
- AccessibleApplication__MIDL_ProcFormatString.Format,
- &IAccessibleApplication_FormatStringOffsetTable[-3],
- 0,
- 0,
- 0,
- 0};
-CINTERFACE_PROXY_VTABLE(7) _IAccessibleApplicationProxyVtbl =
-{
- &IAccessibleApplication_ProxyInfo,
- &IID_IAccessibleApplication,
- IUnknown_QueryInterface_Proxy,
- IUnknown_AddRef_Proxy,
- IUnknown_Release_Proxy ,
- (void *) (INT_PTR) -1 /* IAccessibleApplication::get_appName */ ,
- (void *) (INT_PTR) -1 /* IAccessibleApplication::get_appVersion */ ,
- (void *) (INT_PTR) -1 /* IAccessibleApplication::get_toolkitName */ ,
- (void *) (INT_PTR) -1 /* IAccessibleApplication::get_toolkitVersion */
-};
-
-const CInterfaceStubVtbl _IAccessibleApplicationStubVtbl =
-{
- &IID_IAccessibleApplication,
- &IAccessibleApplication_ServerInfo,
- 7,
- 0, /* pure interpreted */
- CStdStubBuffer_METHODS
-};
-
-static const MIDL_STUB_DESC Object_StubDesc =
- {
- 0,
- NdrOleAllocate,
- NdrOleFree,
- 0,
- 0,
- 0,
- 0,
- 0,
- AccessibleApplication__MIDL_TypeFormatString.Format,
- 1, /* -error bounds_check flag */
- 0x50002, /* Ndr library version */
- 0,
- 0x700022b, /* MIDL Version 7.0.555 */
- 0,
- UserMarshalRoutines,
- 0, /* notify & notify_flag routine table */
- 0x1, /* MIDL flag */
- 0, /* cs routines */
- 0, /* proxy/server info */
- 0
- };
-
-const CInterfaceProxyVtbl * const _AccessibleApplication_ProxyVtblList[] =
-{
- ( CInterfaceProxyVtbl *) &_IAccessibleApplicationProxyVtbl,
- 0
-};
-
-const CInterfaceStubVtbl * const _AccessibleApplication_StubVtblList[] =
-{
- ( CInterfaceStubVtbl *) &_IAccessibleApplicationStubVtbl,
- 0
-};
-
-PCInterfaceName const _AccessibleApplication_InterfaceNamesList[] =
-{
- "IAccessibleApplication",
- 0
-};
-
-
-#define _AccessibleApplication_CHECK_IID(n) IID_GENERIC_CHECK_IID( _AccessibleApplication, pIID, n)
-
-int __stdcall _AccessibleApplication_IID_Lookup( const IID * pIID, int * pIndex )
-{
-
- if(!_AccessibleApplication_CHECK_IID(0))
- {
- *pIndex = 0;
- return 1;
- }
-
- return 0;
-}
-
-const ExtendedProxyFileInfo AccessibleApplication_ProxyFileInfo =
-{
- (PCInterfaceProxyVtblList *) & _AccessibleApplication_ProxyVtblList,
- (PCInterfaceStubVtblList *) & _AccessibleApplication_StubVtblList,
- (const PCInterfaceName * ) & _AccessibleApplication_InterfaceNamesList,
- 0, /* no delegation */
- & _AccessibleApplication_IID_Lookup,
- 1,
- 2,
- 0, /* table of [async_uuid] interfaces */
- 0, /* Filler1 */
- 0, /* Filler2 */
- 0 /* Filler3 */
-};
-#pragma optimize("", on )
-#if _MSC_VER >= 1200
-#pragma warning(pop)
-#endif
-
-
-#endif /* !defined(_M_IA64) && !defined(_M_AMD64)*/
-
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleComponent.h b/src/3rdparty/iaccessible2/generated/x86/AccessibleComponent.h
deleted file mode 100644
index a5d6fa625b..0000000000
--- a/src/3rdparty/iaccessible2/generated/x86/AccessibleComponent.h
+++ /dev/null
@@ -1,185 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the definitions for the interfaces */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:52 2012
- */
-/* Compiler settings for AccessibleComponent.idl:
- Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-
-
-/* verify that the <rpcndr.h> version is high enough to compile this file*/
-#ifndef __REQUIRED_RPCNDR_H_VERSION__
-#define __REQUIRED_RPCNDR_H_VERSION__ 475
-#endif
-
-#include "rpc.h"
-#include "rpcndr.h"
-
-#ifndef __RPCNDR_H_VERSION__
-#error this stub requires an updated version of <rpcndr.h>
-#endif // __RPCNDR_H_VERSION__
-
-#ifndef COM_NO_WINDOWS_H
-#include "windows.h"
-#include "ole2.h"
-#endif /*COM_NO_WINDOWS_H*/
-
-#ifndef __AccessibleComponent_h__
-#define __AccessibleComponent_h__
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-#pragma once
-#endif
-
-/* Forward Declarations */
-
-#ifndef __IAccessibleComponent_FWD_DEFINED__
-#define __IAccessibleComponent_FWD_DEFINED__
-typedef interface IAccessibleComponent IAccessibleComponent;
-#endif /* __IAccessibleComponent_FWD_DEFINED__ */
-
-
-/* header files for imported files */
-#include "objidl.h"
-#include "oaidl.h"
-#include "oleacc.h"
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-
-/* interface __MIDL_itf_AccessibleComponent_0000_0000 */
-/* [local] */
-
-typedef long IA2Color;
-
-
-
-extern RPC_IF_HANDLE __MIDL_itf_AccessibleComponent_0000_0000_v0_0_c_ifspec;
-extern RPC_IF_HANDLE __MIDL_itf_AccessibleComponent_0000_0000_v0_0_s_ifspec;
-
-#ifndef __IAccessibleComponent_INTERFACE_DEFINED__
-#define __IAccessibleComponent_INTERFACE_DEFINED__
-
-/* interface IAccessibleComponent */
-/* [uuid][object] */
-
-
-EXTERN_C const IID IID_IAccessibleComponent;
-
-#if defined(__cplusplus) && !defined(CINTERFACE)
-
- MIDL_INTERFACE("1546D4B0-4C98-4bda-89AE-9A64748BDDE4")
- IAccessibleComponent : public IUnknown
- {
- public:
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_locationInParent(
- /* [out] */ long *x,
- /* [retval][out] */ long *y) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_foreground(
- /* [retval][out] */ IA2Color *foreground) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_background(
- /* [retval][out] */ IA2Color *background) = 0;
-
- };
-
-#else /* C style interface */
-
- typedef struct IAccessibleComponentVtbl
- {
- BEGIN_INTERFACE
-
- HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
- IAccessibleComponent * This,
- /* [in] */ REFIID riid,
- /* [annotation][iid_is][out] */
- __RPC__deref_out void **ppvObject);
-
- ULONG ( STDMETHODCALLTYPE *AddRef )(
- IAccessibleComponent * This);
-
- ULONG ( STDMETHODCALLTYPE *Release )(
- IAccessibleComponent * This);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_locationInParent )(
- IAccessibleComponent * This,
- /* [out] */ long *x,
- /* [retval][out] */ long *y);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_foreground )(
- IAccessibleComponent * This,
- /* [retval][out] */ IA2Color *foreground);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_background )(
- IAccessibleComponent * This,
- /* [retval][out] */ IA2Color *background);
-
- END_INTERFACE
- } IAccessibleComponentVtbl;
-
- interface IAccessibleComponent
- {
- CONST_VTBL struct IAccessibleComponentVtbl *lpVtbl;
- };
-
-
-
-#ifdef COBJMACROS
-
-
-#define IAccessibleComponent_QueryInterface(This,riid,ppvObject) \
- ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
-
-#define IAccessibleComponent_AddRef(This) \
- ( (This)->lpVtbl -> AddRef(This) )
-
-#define IAccessibleComponent_Release(This) \
- ( (This)->lpVtbl -> Release(This) )
-
-
-#define IAccessibleComponent_get_locationInParent(This,x,y) \
- ( (This)->lpVtbl -> get_locationInParent(This,x,y) )
-
-#define IAccessibleComponent_get_foreground(This,foreground) \
- ( (This)->lpVtbl -> get_foreground(This,foreground) )
-
-#define IAccessibleComponent_get_background(This,background) \
- ( (This)->lpVtbl -> get_background(This,background) )
-
-#endif /* COBJMACROS */
-
-
-#endif /* C style interface */
-
-
-
-
-#endif /* __IAccessibleComponent_INTERFACE_DEFINED__ */
-
-
-/* Additional Prototypes for ALL interfaces */
-
-/* end of Additional Prototypes */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleComponent_i.c b/src/3rdparty/iaccessible2/generated/x86/AccessibleComponent_i.c
deleted file mode 100644
index b48fee274b..0000000000
--- a/src/3rdparty/iaccessible2/generated/x86/AccessibleComponent_i.c
+++ /dev/null
@@ -1,79 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
-
-/* link this file in with the server and any clients */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:52 2012
- */
-/* Compiler settings for AccessibleComponent.idl:
- Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-
-#include <rpc.h>
-#include <rpcndr.h>
-
-#ifdef _MIDL_USE_GUIDDEF_
-
-#ifndef INITGUID
-#define INITGUID
-#include <guiddef.h>
-#undef INITGUID
-#else
-#include <guiddef.h>
-#endif
-
-#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
- DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
-
-#else // !_MIDL_USE_GUIDDEF_
-
-#ifndef __IID_DEFINED__
-#define __IID_DEFINED__
-
-typedef struct _IID
-{
- unsigned long x;
- unsigned short s1;
- unsigned short s2;
- unsigned char c[8];
-} IID;
-
-#endif // __IID_DEFINED__
-
-#ifndef CLSID_DEFINED
-#define CLSID_DEFINED
-typedef IID CLSID;
-#endif // CLSID_DEFINED
-
-#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
- const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
-
-#endif !_MIDL_USE_GUIDDEF_
-
-MIDL_DEFINE_GUID(IID, IID_IAccessibleComponent,0x1546D4B0,0x4C98,0x4bda,0x89,0xAE,0x9A,0x64,0x74,0x8B,0xDD,0xE4);
-
-#undef MIDL_DEFINE_GUID
-
-#ifdef __cplusplus
-}
-#endif
-
-
-
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleComponent_p.c b/src/3rdparty/iaccessible2/generated/x86/AccessibleComponent_p.c
deleted file mode 100644
index 23230ff0ac..0000000000
--- a/src/3rdparty/iaccessible2/generated/x86/AccessibleComponent_p.c
+++ /dev/null
@@ -1,369 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the proxy stub code */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:52 2012
- */
-/* Compiler settings for AccessibleComponent.idl:
- Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#if !defined(_M_IA64) && !defined(_M_AMD64)
-
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-#if _MSC_VER >= 1200
-#pragma warning(push)
-#endif
-
-#pragma warning( disable: 4211 ) /* redefine extern to static */
-#pragma warning( disable: 4232 ) /* dllimport identity*/
-#pragma warning( disable: 4024 ) /* array to pointer mapping*/
-#pragma warning( disable: 4152 ) /* function/data pointer conversion in expression */
-#pragma warning( disable: 4100 ) /* unreferenced arguments in x86 call */
-
-#pragma optimize("", off )
-
-#define USE_STUBLESS_PROXY
-
-
-/* verify that the <rpcproxy.h> version is high enough to compile this file*/
-#ifndef __REDQ_RPCPROXY_H_VERSION__
-#define __REQUIRED_RPCPROXY_H_VERSION__ 475
-#endif
-
-
-#include "rpcproxy.h"
-#ifndef __RPCPROXY_H_VERSION__
-#error this stub requires an updated version of <rpcproxy.h>
-#endif /* __RPCPROXY_H_VERSION__ */
-
-
-#include "AccessibleComponent.h"
-
-#define TYPE_FORMAT_STRING_SIZE 7
-#define PROC_FORMAT_STRING_SIZE 115
-#define EXPR_FORMAT_STRING_SIZE 1
-#define TRANSMIT_AS_TABLE_SIZE 0
-#define WIRE_MARSHAL_TABLE_SIZE 0
-
-typedef struct _AccessibleComponent_MIDL_TYPE_FORMAT_STRING
- {
- short Pad;
- unsigned char Format[ TYPE_FORMAT_STRING_SIZE ];
- } AccessibleComponent_MIDL_TYPE_FORMAT_STRING;
-
-typedef struct _AccessibleComponent_MIDL_PROC_FORMAT_STRING
- {
- short Pad;
- unsigned char Format[ PROC_FORMAT_STRING_SIZE ];
- } AccessibleComponent_MIDL_PROC_FORMAT_STRING;
-
-typedef struct _AccessibleComponent_MIDL_EXPR_FORMAT_STRING
- {
- long Pad;
- unsigned char Format[ EXPR_FORMAT_STRING_SIZE ];
- } AccessibleComponent_MIDL_EXPR_FORMAT_STRING;
-
-
-static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax =
-{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}};
-
-
-extern const AccessibleComponent_MIDL_TYPE_FORMAT_STRING AccessibleComponent__MIDL_TypeFormatString;
-extern const AccessibleComponent_MIDL_PROC_FORMAT_STRING AccessibleComponent__MIDL_ProcFormatString;
-extern const AccessibleComponent_MIDL_EXPR_FORMAT_STRING AccessibleComponent__MIDL_ExprFormatString;
-
-
-extern const MIDL_STUB_DESC Object_StubDesc;
-
-
-extern const MIDL_SERVER_INFO IAccessibleComponent_ServerInfo;
-extern const MIDL_STUBLESS_PROXY_INFO IAccessibleComponent_ProxyInfo;
-
-
-
-#if !defined(__RPC_WIN32__)
-#error Invalid build platform for this stub.
-#endif
-
-#if !(TARGET_IS_NT50_OR_LATER)
-#error You need Windows 2000 or later to run this stub because it uses these features:
-#error /robust command line switch.
-#error However, your C/C++ compilation flags indicate you intend to run this app on earlier systems.
-#error This app will fail with the RPC_X_WRONG_STUB_VERSION error.
-#endif
-
-
-static const AccessibleComponent_MIDL_PROC_FORMAT_STRING AccessibleComponent__MIDL_ProcFormatString =
- {
- 0,
- {
-
- /* Procedure get_locationInParent */
-
- 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 2 */ NdrFcLong( 0x0 ), /* 0 */
-/* 6 */ NdrFcShort( 0x3 ), /* 3 */
-/* 8 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
-/* 10 */ NdrFcShort( 0x0 ), /* 0 */
-/* 12 */ NdrFcShort( 0x40 ), /* 64 */
-/* 14 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x3, /* 3 */
-/* 16 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 18 */ NdrFcShort( 0x0 ), /* 0 */
-/* 20 */ NdrFcShort( 0x0 ), /* 0 */
-/* 22 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter x */
-
-/* 24 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 26 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 28 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter y */
-
-/* 30 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 32 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 34 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 36 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 38 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 40 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_foreground */
-
-/* 42 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 44 */ NdrFcLong( 0x0 ), /* 0 */
-/* 48 */ NdrFcShort( 0x4 ), /* 4 */
-/* 50 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 52 */ NdrFcShort( 0x0 ), /* 0 */
-/* 54 */ NdrFcShort( 0x24 ), /* 36 */
-/* 56 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 58 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 60 */ NdrFcShort( 0x0 ), /* 0 */
-/* 62 */ NdrFcShort( 0x0 ), /* 0 */
-/* 64 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter foreground */
-
-/* 66 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 68 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 70 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 72 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 74 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 76 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_background */
-
-/* 78 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 80 */ NdrFcLong( 0x0 ), /* 0 */
-/* 84 */ NdrFcShort( 0x5 ), /* 5 */
-/* 86 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 88 */ NdrFcShort( 0x0 ), /* 0 */
-/* 90 */ NdrFcShort( 0x24 ), /* 36 */
-/* 92 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 94 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 96 */ NdrFcShort( 0x0 ), /* 0 */
-/* 98 */ NdrFcShort( 0x0 ), /* 0 */
-/* 100 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter background */
-
-/* 102 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 104 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 106 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 108 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 110 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 112 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- 0x0
- }
- };
-
-static const AccessibleComponent_MIDL_TYPE_FORMAT_STRING AccessibleComponent__MIDL_TypeFormatString =
- {
- 0,
- {
- NdrFcShort( 0x0 ), /* 0 */
-/* 2 */
- 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
-/* 4 */ 0x8, /* FC_LONG */
- 0x5c, /* FC_PAD */
-
- 0x0
- }
- };
-
-
-/* Standard interface: __MIDL_itf_AccessibleComponent_0000_0000, ver. 0.0,
- GUID={0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}} */
-
-
-/* Object interface: IUnknown, ver. 0.0,
- GUID={0x00000000,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
-
-
-/* Object interface: IAccessibleComponent, ver. 0.0,
- GUID={0x1546D4B0,0x4C98,0x4bda,{0x89,0xAE,0x9A,0x64,0x74,0x8B,0xDD,0xE4}} */
-
-#pragma code_seg(".orpc")
-static const unsigned short IAccessibleComponent_FormatStringOffsetTable[] =
- {
- 0,
- 42,
- 78
- };
-
-static const MIDL_STUBLESS_PROXY_INFO IAccessibleComponent_ProxyInfo =
- {
- &Object_StubDesc,
- AccessibleComponent__MIDL_ProcFormatString.Format,
- &IAccessibleComponent_FormatStringOffsetTable[-3],
- 0,
- 0,
- 0
- };
-
-
-static const MIDL_SERVER_INFO IAccessibleComponent_ServerInfo =
- {
- &Object_StubDesc,
- 0,
- AccessibleComponent__MIDL_ProcFormatString.Format,
- &IAccessibleComponent_FormatStringOffsetTable[-3],
- 0,
- 0,
- 0,
- 0};
-CINTERFACE_PROXY_VTABLE(6) _IAccessibleComponentProxyVtbl =
-{
- &IAccessibleComponent_ProxyInfo,
- &IID_IAccessibleComponent,
- IUnknown_QueryInterface_Proxy,
- IUnknown_AddRef_Proxy,
- IUnknown_Release_Proxy ,
- (void *) (INT_PTR) -1 /* IAccessibleComponent::get_locationInParent */ ,
- (void *) (INT_PTR) -1 /* IAccessibleComponent::get_foreground */ ,
- (void *) (INT_PTR) -1 /* IAccessibleComponent::get_background */
-};
-
-const CInterfaceStubVtbl _IAccessibleComponentStubVtbl =
-{
- &IID_IAccessibleComponent,
- &IAccessibleComponent_ServerInfo,
- 6,
- 0, /* pure interpreted */
- CStdStubBuffer_METHODS
-};
-
-static const MIDL_STUB_DESC Object_StubDesc =
- {
- 0,
- NdrOleAllocate,
- NdrOleFree,
- 0,
- 0,
- 0,
- 0,
- 0,
- AccessibleComponent__MIDL_TypeFormatString.Format,
- 1, /* -error bounds_check flag */
- 0x50002, /* Ndr library version */
- 0,
- 0x700022b, /* MIDL Version 7.0.555 */
- 0,
- 0,
- 0, /* notify & notify_flag routine table */
- 0x1, /* MIDL flag */
- 0, /* cs routines */
- 0, /* proxy/server info */
- 0
- };
-
-const CInterfaceProxyVtbl * const _AccessibleComponent_ProxyVtblList[] =
-{
- ( CInterfaceProxyVtbl *) &_IAccessibleComponentProxyVtbl,
- 0
-};
-
-const CInterfaceStubVtbl * const _AccessibleComponent_StubVtblList[] =
-{
- ( CInterfaceStubVtbl *) &_IAccessibleComponentStubVtbl,
- 0
-};
-
-PCInterfaceName const _AccessibleComponent_InterfaceNamesList[] =
-{
- "IAccessibleComponent",
- 0
-};
-
-
-#define _AccessibleComponent_CHECK_IID(n) IID_GENERIC_CHECK_IID( _AccessibleComponent, pIID, n)
-
-int __stdcall _AccessibleComponent_IID_Lookup( const IID * pIID, int * pIndex )
-{
-
- if(!_AccessibleComponent_CHECK_IID(0))
- {
- *pIndex = 0;
- return 1;
- }
-
- return 0;
-}
-
-const ExtendedProxyFileInfo AccessibleComponent_ProxyFileInfo =
-{
- (PCInterfaceProxyVtblList *) & _AccessibleComponent_ProxyVtblList,
- (PCInterfaceStubVtblList *) & _AccessibleComponent_StubVtblList,
- (const PCInterfaceName * ) & _AccessibleComponent_InterfaceNamesList,
- 0, /* no delegation */
- & _AccessibleComponent_IID_Lookup,
- 1,
- 2,
- 0, /* table of [async_uuid] interfaces */
- 0, /* Filler1 */
- 0, /* Filler2 */
- 0 /* Filler3 */
-};
-#pragma optimize("", on )
-#if _MSC_VER >= 1200
-#pragma warning(pop)
-#endif
-
-
-#endif /* !defined(_M_IA64) && !defined(_M_AMD64)*/
-
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleEditableText.h b/src/3rdparty/iaccessible2/generated/x86/AccessibleEditableText.h
deleted file mode 100644
index 3afeefbac0..0000000000
--- a/src/3rdparty/iaccessible2/generated/x86/AccessibleEditableText.h
+++ /dev/null
@@ -1,235 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the definitions for the interfaces */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:53 2012
- */
-/* Compiler settings for AccessibleEditableText.idl:
- Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-
-
-/* verify that the <rpcndr.h> version is high enough to compile this file*/
-#ifndef __REQUIRED_RPCNDR_H_VERSION__
-#define __REQUIRED_RPCNDR_H_VERSION__ 475
-#endif
-
-#include "rpc.h"
-#include "rpcndr.h"
-
-#ifndef __RPCNDR_H_VERSION__
-#error this stub requires an updated version of <rpcndr.h>
-#endif // __RPCNDR_H_VERSION__
-
-#ifndef COM_NO_WINDOWS_H
-#include "windows.h"
-#include "ole2.h"
-#endif /*COM_NO_WINDOWS_H*/
-
-#ifndef __AccessibleEditableText_h__
-#define __AccessibleEditableText_h__
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-#pragma once
-#endif
-
-/* Forward Declarations */
-
-#ifndef __IAccessibleEditableText_FWD_DEFINED__
-#define __IAccessibleEditableText_FWD_DEFINED__
-typedef interface IAccessibleEditableText IAccessibleEditableText;
-#endif /* __IAccessibleEditableText_FWD_DEFINED__ */
-
-
-/* header files for imported files */
-#include "objidl.h"
-#include "oaidl.h"
-#include "oleacc.h"
-#include "IA2CommonTypes.h"
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-
-#ifndef __IAccessibleEditableText_INTERFACE_DEFINED__
-#define __IAccessibleEditableText_INTERFACE_DEFINED__
-
-/* interface IAccessibleEditableText */
-/* [uuid][object] */
-
-
-EXTERN_C const IID IID_IAccessibleEditableText;
-
-#if defined(__cplusplus) && !defined(CINTERFACE)
-
- MIDL_INTERFACE("A59AA09A-7011-4b65-939D-32B1FB5547E3")
- IAccessibleEditableText : public IUnknown
- {
- public:
- virtual HRESULT STDMETHODCALLTYPE copyText(
- /* [in] */ long startOffset,
- /* [in] */ long endOffset) = 0;
-
- virtual HRESULT STDMETHODCALLTYPE deleteText(
- /* [in] */ long startOffset,
- /* [in] */ long endOffset) = 0;
-
- virtual HRESULT STDMETHODCALLTYPE insertText(
- /* [in] */ long offset,
- /* [in] */ BSTR *text) = 0;
-
- virtual HRESULT STDMETHODCALLTYPE cutText(
- /* [in] */ long startOffset,
- /* [in] */ long endOffset) = 0;
-
- virtual HRESULT STDMETHODCALLTYPE pasteText(
- /* [in] */ long offset) = 0;
-
- virtual HRESULT STDMETHODCALLTYPE replaceText(
- /* [in] */ long startOffset,
- /* [in] */ long endOffset,
- /* [in] */ BSTR *text) = 0;
-
- virtual HRESULT STDMETHODCALLTYPE setAttributes(
- /* [in] */ long startOffset,
- /* [in] */ long endOffset,
- /* [in] */ BSTR *attributes) = 0;
-
- };
-
-#else /* C style interface */
-
- typedef struct IAccessibleEditableTextVtbl
- {
- BEGIN_INTERFACE
-
- HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
- IAccessibleEditableText * This,
- /* [in] */ REFIID riid,
- /* [annotation][iid_is][out] */
- __RPC__deref_out void **ppvObject);
-
- ULONG ( STDMETHODCALLTYPE *AddRef )(
- IAccessibleEditableText * This);
-
- ULONG ( STDMETHODCALLTYPE *Release )(
- IAccessibleEditableText * This);
-
- HRESULT ( STDMETHODCALLTYPE *copyText )(
- IAccessibleEditableText * This,
- /* [in] */ long startOffset,
- /* [in] */ long endOffset);
-
- HRESULT ( STDMETHODCALLTYPE *deleteText )(
- IAccessibleEditableText * This,
- /* [in] */ long startOffset,
- /* [in] */ long endOffset);
-
- HRESULT ( STDMETHODCALLTYPE *insertText )(
- IAccessibleEditableText * This,
- /* [in] */ long offset,
- /* [in] */ BSTR *text);
-
- HRESULT ( STDMETHODCALLTYPE *cutText )(
- IAccessibleEditableText * This,
- /* [in] */ long startOffset,
- /* [in] */ long endOffset);
-
- HRESULT ( STDMETHODCALLTYPE *pasteText )(
- IAccessibleEditableText * This,
- /* [in] */ long offset);
-
- HRESULT ( STDMETHODCALLTYPE *replaceText )(
- IAccessibleEditableText * This,
- /* [in] */ long startOffset,
- /* [in] */ long endOffset,
- /* [in] */ BSTR *text);
-
- HRESULT ( STDMETHODCALLTYPE *setAttributes )(
- IAccessibleEditableText * This,
- /* [in] */ long startOffset,
- /* [in] */ long endOffset,
- /* [in] */ BSTR *attributes);
-
- END_INTERFACE
- } IAccessibleEditableTextVtbl;
-
- interface IAccessibleEditableText
- {
- CONST_VTBL struct IAccessibleEditableTextVtbl *lpVtbl;
- };
-
-
-
-#ifdef COBJMACROS
-
-
-#define IAccessibleEditableText_QueryInterface(This,riid,ppvObject) \
- ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
-
-#define IAccessibleEditableText_AddRef(This) \
- ( (This)->lpVtbl -> AddRef(This) )
-
-#define IAccessibleEditableText_Release(This) \
- ( (This)->lpVtbl -> Release(This) )
-
-
-#define IAccessibleEditableText_copyText(This,startOffset,endOffset) \
- ( (This)->lpVtbl -> copyText(This,startOffset,endOffset) )
-
-#define IAccessibleEditableText_deleteText(This,startOffset,endOffset) \
- ( (This)->lpVtbl -> deleteText(This,startOffset,endOffset) )
-
-#define IAccessibleEditableText_insertText(This,offset,text) \
- ( (This)->lpVtbl -> insertText(This,offset,text) )
-
-#define IAccessibleEditableText_cutText(This,startOffset,endOffset) \
- ( (This)->lpVtbl -> cutText(This,startOffset,endOffset) )
-
-#define IAccessibleEditableText_pasteText(This,offset) \
- ( (This)->lpVtbl -> pasteText(This,offset) )
-
-#define IAccessibleEditableText_replaceText(This,startOffset,endOffset,text) \
- ( (This)->lpVtbl -> replaceText(This,startOffset,endOffset,text) )
-
-#define IAccessibleEditableText_setAttributes(This,startOffset,endOffset,attributes) \
- ( (This)->lpVtbl -> setAttributes(This,startOffset,endOffset,attributes) )
-
-#endif /* COBJMACROS */
-
-
-#endif /* C style interface */
-
-
-
-
-#endif /* __IAccessibleEditableText_INTERFACE_DEFINED__ */
-
-
-/* Additional Prototypes for ALL interfaces */
-
-unsigned long __RPC_USER BSTR_UserSize( unsigned long *, unsigned long , BSTR * );
-unsigned char * __RPC_USER BSTR_UserMarshal( unsigned long *, unsigned char *, BSTR * );
-unsigned char * __RPC_USER BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * );
-void __RPC_USER BSTR_UserFree( unsigned long *, BSTR * );
-
-/* end of Additional Prototypes */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleEditableText_i.c b/src/3rdparty/iaccessible2/generated/x86/AccessibleEditableText_i.c
deleted file mode 100644
index c578bf5078..0000000000
--- a/src/3rdparty/iaccessible2/generated/x86/AccessibleEditableText_i.c
+++ /dev/null
@@ -1,79 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
-
-/* link this file in with the server and any clients */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:53 2012
- */
-/* Compiler settings for AccessibleEditableText.idl:
- Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-
-#include <rpc.h>
-#include <rpcndr.h>
-
-#ifdef _MIDL_USE_GUIDDEF_
-
-#ifndef INITGUID
-#define INITGUID
-#include <guiddef.h>
-#undef INITGUID
-#else
-#include <guiddef.h>
-#endif
-
-#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
- DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
-
-#else // !_MIDL_USE_GUIDDEF_
-
-#ifndef __IID_DEFINED__
-#define __IID_DEFINED__
-
-typedef struct _IID
-{
- unsigned long x;
- unsigned short s1;
- unsigned short s2;
- unsigned char c[8];
-} IID;
-
-#endif // __IID_DEFINED__
-
-#ifndef CLSID_DEFINED
-#define CLSID_DEFINED
-typedef IID CLSID;
-#endif // CLSID_DEFINED
-
-#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
- const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
-
-#endif !_MIDL_USE_GUIDDEF_
-
-MIDL_DEFINE_GUID(IID, IID_IAccessibleEditableText,0xA59AA09A,0x7011,0x4b65,0x93,0x9D,0x32,0xB1,0xFB,0x55,0x47,0xE3);
-
-#undef MIDL_DEFINE_GUID
-
-#ifdef __cplusplus
-}
-#endif
-
-
-
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleEditableText_p.c b/src/3rdparty/iaccessible2/generated/x86/AccessibleEditableText_p.c
deleted file mode 100644
index 28d1e4b333..0000000000
--- a/src/3rdparty/iaccessible2/generated/x86/AccessibleEditableText_p.c
+++ /dev/null
@@ -1,584 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the proxy stub code */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:53 2012
- */
-/* Compiler settings for AccessibleEditableText.idl:
- Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#if !defined(_M_IA64) && !defined(_M_AMD64)
-
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-#if _MSC_VER >= 1200
-#pragma warning(push)
-#endif
-
-#pragma warning( disable: 4211 ) /* redefine extern to static */
-#pragma warning( disable: 4232 ) /* dllimport identity*/
-#pragma warning( disable: 4024 ) /* array to pointer mapping*/
-#pragma warning( disable: 4152 ) /* function/data pointer conversion in expression */
-#pragma warning( disable: 4100 ) /* unreferenced arguments in x86 call */
-
-#pragma optimize("", off )
-
-#define USE_STUBLESS_PROXY
-
-
-/* verify that the <rpcproxy.h> version is high enough to compile this file*/
-#ifndef __REDQ_RPCPROXY_H_VERSION__
-#define __REQUIRED_RPCPROXY_H_VERSION__ 475
-#endif
-
-
-#include "rpcproxy.h"
-#ifndef __RPCPROXY_H_VERSION__
-#error this stub requires an updated version of <rpcproxy.h>
-#endif /* __RPCPROXY_H_VERSION__ */
-
-
-#include "AccessibleEditableText.h"
-
-#define TYPE_FORMAT_STRING_SIZE 43
-#define PROC_FORMAT_STRING_SIZE 301
-#define EXPR_FORMAT_STRING_SIZE 1
-#define TRANSMIT_AS_TABLE_SIZE 0
-#define WIRE_MARSHAL_TABLE_SIZE 1
-
-typedef struct _AccessibleEditableText_MIDL_TYPE_FORMAT_STRING
- {
- short Pad;
- unsigned char Format[ TYPE_FORMAT_STRING_SIZE ];
- } AccessibleEditableText_MIDL_TYPE_FORMAT_STRING;
-
-typedef struct _AccessibleEditableText_MIDL_PROC_FORMAT_STRING
- {
- short Pad;
- unsigned char Format[ PROC_FORMAT_STRING_SIZE ];
- } AccessibleEditableText_MIDL_PROC_FORMAT_STRING;
-
-typedef struct _AccessibleEditableText_MIDL_EXPR_FORMAT_STRING
- {
- long Pad;
- unsigned char Format[ EXPR_FORMAT_STRING_SIZE ];
- } AccessibleEditableText_MIDL_EXPR_FORMAT_STRING;
-
-
-static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax =
-{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}};
-
-
-extern const AccessibleEditableText_MIDL_TYPE_FORMAT_STRING AccessibleEditableText__MIDL_TypeFormatString;
-extern const AccessibleEditableText_MIDL_PROC_FORMAT_STRING AccessibleEditableText__MIDL_ProcFormatString;
-extern const AccessibleEditableText_MIDL_EXPR_FORMAT_STRING AccessibleEditableText__MIDL_ExprFormatString;
-
-
-extern const MIDL_STUB_DESC Object_StubDesc;
-
-
-extern const MIDL_SERVER_INFO IAccessibleEditableText_ServerInfo;
-extern const MIDL_STUBLESS_PROXY_INFO IAccessibleEditableText_ProxyInfo;
-
-
-extern const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ];
-
-#if !defined(__RPC_WIN32__)
-#error Invalid build platform for this stub.
-#endif
-
-#if !(TARGET_IS_NT50_OR_LATER)
-#error You need Windows 2000 or later to run this stub because it uses these features:
-#error /robust command line switch.
-#error However, your C/C++ compilation flags indicate you intend to run this app on earlier systems.
-#error This app will fail with the RPC_X_WRONG_STUB_VERSION error.
-#endif
-
-
-static const AccessibleEditableText_MIDL_PROC_FORMAT_STRING AccessibleEditableText__MIDL_ProcFormatString =
- {
- 0,
- {
-
- /* Procedure copyText */
-
- 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 2 */ NdrFcLong( 0x0 ), /* 0 */
-/* 6 */ NdrFcShort( 0x3 ), /* 3 */
-/* 8 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
-/* 10 */ NdrFcShort( 0x10 ), /* 16 */
-/* 12 */ NdrFcShort( 0x8 ), /* 8 */
-/* 14 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x3, /* 3 */
-/* 16 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 18 */ NdrFcShort( 0x0 ), /* 0 */
-/* 20 */ NdrFcShort( 0x0 ), /* 0 */
-/* 22 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter startOffset */
-
-/* 24 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 26 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 28 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter endOffset */
-
-/* 30 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 32 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 34 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 36 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 38 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 40 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure deleteText */
-
-/* 42 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 44 */ NdrFcLong( 0x0 ), /* 0 */
-/* 48 */ NdrFcShort( 0x4 ), /* 4 */
-/* 50 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
-/* 52 */ NdrFcShort( 0x10 ), /* 16 */
-/* 54 */ NdrFcShort( 0x8 ), /* 8 */
-/* 56 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x3, /* 3 */
-/* 58 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 60 */ NdrFcShort( 0x0 ), /* 0 */
-/* 62 */ NdrFcShort( 0x0 ), /* 0 */
-/* 64 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter startOffset */
-
-/* 66 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 68 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 70 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter endOffset */
-
-/* 72 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 74 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 76 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 78 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 80 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 82 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure insertText */
-
-/* 84 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 86 */ NdrFcLong( 0x0 ), /* 0 */
-/* 90 */ NdrFcShort( 0x5 ), /* 5 */
-/* 92 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
-/* 94 */ NdrFcShort( 0x8 ), /* 8 */
-/* 96 */ NdrFcShort( 0x8 ), /* 8 */
-/* 98 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
- 0x3, /* 3 */
-/* 100 */ 0x8, /* 8 */
- 0x5, /* Ext Flags: new corr desc, srv corr check, */
-/* 102 */ NdrFcShort( 0x0 ), /* 0 */
-/* 104 */ NdrFcShort( 0x1 ), /* 1 */
-/* 106 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter offset */
-
-/* 108 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 110 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 112 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter text */
-
-/* 114 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
-/* 116 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 118 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
-
- /* Return value */
-
-/* 120 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 122 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 124 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure cutText */
-
-/* 126 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 128 */ NdrFcLong( 0x0 ), /* 0 */
-/* 132 */ NdrFcShort( 0x6 ), /* 6 */
-/* 134 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
-/* 136 */ NdrFcShort( 0x10 ), /* 16 */
-/* 138 */ NdrFcShort( 0x8 ), /* 8 */
-/* 140 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x3, /* 3 */
-/* 142 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 144 */ NdrFcShort( 0x0 ), /* 0 */
-/* 146 */ NdrFcShort( 0x0 ), /* 0 */
-/* 148 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter startOffset */
-
-/* 150 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 152 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 154 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter endOffset */
-
-/* 156 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 158 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 160 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 162 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 164 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 166 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure pasteText */
-
-/* 168 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 170 */ NdrFcLong( 0x0 ), /* 0 */
-/* 174 */ NdrFcShort( 0x7 ), /* 7 */
-/* 176 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 178 */ NdrFcShort( 0x8 ), /* 8 */
-/* 180 */ NdrFcShort( 0x8 ), /* 8 */
-/* 182 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 184 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 186 */ NdrFcShort( 0x0 ), /* 0 */
-/* 188 */ NdrFcShort( 0x0 ), /* 0 */
-/* 190 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter offset */
-
-/* 192 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 194 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 196 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 198 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 200 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 202 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure replaceText */
-
-/* 204 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 206 */ NdrFcLong( 0x0 ), /* 0 */
-/* 210 */ NdrFcShort( 0x8 ), /* 8 */
-/* 212 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
-/* 214 */ NdrFcShort( 0x10 ), /* 16 */
-/* 216 */ NdrFcShort( 0x8 ), /* 8 */
-/* 218 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
- 0x4, /* 4 */
-/* 220 */ 0x8, /* 8 */
- 0x5, /* Ext Flags: new corr desc, srv corr check, */
-/* 222 */ NdrFcShort( 0x0 ), /* 0 */
-/* 224 */ NdrFcShort( 0x1 ), /* 1 */
-/* 226 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter startOffset */
-
-/* 228 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 230 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 232 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter endOffset */
-
-/* 234 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 236 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 238 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter text */
-
-/* 240 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
-/* 242 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 244 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
-
- /* Return value */
-
-/* 246 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 248 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
-/* 250 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure setAttributes */
-
-/* 252 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 254 */ NdrFcLong( 0x0 ), /* 0 */
-/* 258 */ NdrFcShort( 0x9 ), /* 9 */
-/* 260 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
-/* 262 */ NdrFcShort( 0x10 ), /* 16 */
-/* 264 */ NdrFcShort( 0x8 ), /* 8 */
-/* 266 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
- 0x4, /* 4 */
-/* 268 */ 0x8, /* 8 */
- 0x5, /* Ext Flags: new corr desc, srv corr check, */
-/* 270 */ NdrFcShort( 0x0 ), /* 0 */
-/* 272 */ NdrFcShort( 0x1 ), /* 1 */
-/* 274 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter startOffset */
-
-/* 276 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 278 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 280 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter endOffset */
-
-/* 282 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 284 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 286 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter attributes */
-
-/* 288 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
-/* 290 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 292 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
-
- /* Return value */
-
-/* 294 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 296 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
-/* 298 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- 0x0
- }
- };
-
-static const AccessibleEditableText_MIDL_TYPE_FORMAT_STRING AccessibleEditableText__MIDL_TypeFormatString =
- {
- 0,
- {
- NdrFcShort( 0x0 ), /* 0 */
-/* 2 */
- 0x11, 0x0, /* FC_RP */
-/* 4 */ NdrFcShort( 0x1c ), /* Offset= 28 (32) */
-/* 6 */
- 0x12, 0x0, /* FC_UP */
-/* 8 */ NdrFcShort( 0xe ), /* Offset= 14 (22) */
-/* 10 */
- 0x1b, /* FC_CARRAY */
- 0x1, /* 1 */
-/* 12 */ NdrFcShort( 0x2 ), /* 2 */
-/* 14 */ 0x9, /* Corr desc: FC_ULONG */
- 0x0, /* */
-/* 16 */ NdrFcShort( 0xfffc ), /* -4 */
-/* 18 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 20 */ 0x6, /* FC_SHORT */
- 0x5b, /* FC_END */
-/* 22 */
- 0x17, /* FC_CSTRUCT */
- 0x3, /* 3 */
-/* 24 */ NdrFcShort( 0x8 ), /* 8 */
-/* 26 */ NdrFcShort( 0xfff0 ), /* Offset= -16 (10) */
-/* 28 */ 0x8, /* FC_LONG */
- 0x8, /* FC_LONG */
-/* 30 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-/* 32 */ 0xb4, /* FC_USER_MARSHAL */
- 0x83, /* 131 */
-/* 34 */ NdrFcShort( 0x0 ), /* 0 */
-/* 36 */ NdrFcShort( 0x4 ), /* 4 */
-/* 38 */ NdrFcShort( 0x0 ), /* 0 */
-/* 40 */ NdrFcShort( 0xffde ), /* Offset= -34 (6) */
-
- 0x0
- }
- };
-
-static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] =
- {
-
- {
- BSTR_UserSize
- ,BSTR_UserMarshal
- ,BSTR_UserUnmarshal
- ,BSTR_UserFree
- }
-
- };
-
-
-
-/* Object interface: IUnknown, ver. 0.0,
- GUID={0x00000000,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
-
-
-/* Object interface: IAccessibleEditableText, ver. 0.0,
- GUID={0xA59AA09A,0x7011,0x4b65,{0x93,0x9D,0x32,0xB1,0xFB,0x55,0x47,0xE3}} */
-
-#pragma code_seg(".orpc")
-static const unsigned short IAccessibleEditableText_FormatStringOffsetTable[] =
- {
- 0,
- 42,
- 84,
- 126,
- 168,
- 204,
- 252
- };
-
-static const MIDL_STUBLESS_PROXY_INFO IAccessibleEditableText_ProxyInfo =
- {
- &Object_StubDesc,
- AccessibleEditableText__MIDL_ProcFormatString.Format,
- &IAccessibleEditableText_FormatStringOffsetTable[-3],
- 0,
- 0,
- 0
- };
-
-
-static const MIDL_SERVER_INFO IAccessibleEditableText_ServerInfo =
- {
- &Object_StubDesc,
- 0,
- AccessibleEditableText__MIDL_ProcFormatString.Format,
- &IAccessibleEditableText_FormatStringOffsetTable[-3],
- 0,
- 0,
- 0,
- 0};
-CINTERFACE_PROXY_VTABLE(10) _IAccessibleEditableTextProxyVtbl =
-{
- &IAccessibleEditableText_ProxyInfo,
- &IID_IAccessibleEditableText,
- IUnknown_QueryInterface_Proxy,
- IUnknown_AddRef_Proxy,
- IUnknown_Release_Proxy ,
- (void *) (INT_PTR) -1 /* IAccessibleEditableText::copyText */ ,
- (void *) (INT_PTR) -1 /* IAccessibleEditableText::deleteText */ ,
- (void *) (INT_PTR) -1 /* IAccessibleEditableText::insertText */ ,
- (void *) (INT_PTR) -1 /* IAccessibleEditableText::cutText */ ,
- (void *) (INT_PTR) -1 /* IAccessibleEditableText::pasteText */ ,
- (void *) (INT_PTR) -1 /* IAccessibleEditableText::replaceText */ ,
- (void *) (INT_PTR) -1 /* IAccessibleEditableText::setAttributes */
-};
-
-const CInterfaceStubVtbl _IAccessibleEditableTextStubVtbl =
-{
- &IID_IAccessibleEditableText,
- &IAccessibleEditableText_ServerInfo,
- 10,
- 0, /* pure interpreted */
- CStdStubBuffer_METHODS
-};
-
-static const MIDL_STUB_DESC Object_StubDesc =
- {
- 0,
- NdrOleAllocate,
- NdrOleFree,
- 0,
- 0,
- 0,
- 0,
- 0,
- AccessibleEditableText__MIDL_TypeFormatString.Format,
- 1, /* -error bounds_check flag */
- 0x50002, /* Ndr library version */
- 0,
- 0x700022b, /* MIDL Version 7.0.555 */
- 0,
- UserMarshalRoutines,
- 0, /* notify & notify_flag routine table */
- 0x1, /* MIDL flag */
- 0, /* cs routines */
- 0, /* proxy/server info */
- 0
- };
-
-const CInterfaceProxyVtbl * const _AccessibleEditableText_ProxyVtblList[] =
-{
- ( CInterfaceProxyVtbl *) &_IAccessibleEditableTextProxyVtbl,
- 0
-};
-
-const CInterfaceStubVtbl * const _AccessibleEditableText_StubVtblList[] =
-{
- ( CInterfaceStubVtbl *) &_IAccessibleEditableTextStubVtbl,
- 0
-};
-
-PCInterfaceName const _AccessibleEditableText_InterfaceNamesList[] =
-{
- "IAccessibleEditableText",
- 0
-};
-
-
-#define _AccessibleEditableText_CHECK_IID(n) IID_GENERIC_CHECK_IID( _AccessibleEditableText, pIID, n)
-
-int __stdcall _AccessibleEditableText_IID_Lookup( const IID * pIID, int * pIndex )
-{
-
- if(!_AccessibleEditableText_CHECK_IID(0))
- {
- *pIndex = 0;
- return 1;
- }
-
- return 0;
-}
-
-const ExtendedProxyFileInfo AccessibleEditableText_ProxyFileInfo =
-{
- (PCInterfaceProxyVtblList *) & _AccessibleEditableText_ProxyVtblList,
- (PCInterfaceStubVtblList *) & _AccessibleEditableText_StubVtblList,
- (const PCInterfaceName * ) & _AccessibleEditableText_InterfaceNamesList,
- 0, /* no delegation */
- & _AccessibleEditableText_IID_Lookup,
- 1,
- 2,
- 0, /* table of [async_uuid] interfaces */
- 0, /* Filler1 */
- 0, /* Filler2 */
- 0 /* Filler3 */
-};
-#pragma optimize("", on )
-#if _MSC_VER >= 1200
-#pragma warning(pop)
-#endif
-
-
-#endif /* !defined(_M_IA64) && !defined(_M_AMD64)*/
-
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleEventID.h b/src/3rdparty/iaccessible2/generated/x86/AccessibleEventID.h
deleted file mode 100644
index 252375d0c6..0000000000
--- a/src/3rdparty/iaccessible2/generated/x86/AccessibleEventID.h
+++ /dev/null
@@ -1,105 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the definitions for the interfaces */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:53 2012
- */
-/* Compiler settings for AccessibleEventID.idl:
- Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-
-
-/* verify that the <rpcndr.h> version is high enough to compile this file*/
-#ifndef __REQUIRED_RPCNDR_H_VERSION__
-#define __REQUIRED_RPCNDR_H_VERSION__ 475
-#endif
-
-#include "rpc.h"
-#include "rpcndr.h"
-
-#ifndef __RPCNDR_H_VERSION__
-#error this stub requires an updated version of <rpcndr.h>
-#endif // __RPCNDR_H_VERSION__
-
-
-#ifndef __AccessibleEventID_h__
-#define __AccessibleEventID_h__
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-#pragma once
-#endif
-
-/* Forward Declarations */
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-
-/* interface __MIDL_itf_AccessibleEventID_0000_0000 */
-/* [local] */
-
-
-enum IA2EventID
- { IA2_EVENT_ACTION_CHANGED = 0x101,
- IA2_EVENT_ACTIVE_DECENDENT_CHANGED = ( IA2_EVENT_ACTION_CHANGED + 1 ) ,
- IA2_EVENT_ACTIVE_DESCENDANT_CHANGED = IA2_EVENT_ACTIVE_DECENDENT_CHANGED,
- IA2_EVENT_DOCUMENT_ATTRIBUTE_CHANGED = ( IA2_EVENT_ACTIVE_DESCENDANT_CHANGED + 1 ) ,
- IA2_EVENT_DOCUMENT_CONTENT_CHANGED = ( IA2_EVENT_DOCUMENT_ATTRIBUTE_CHANGED + 1 ) ,
- IA2_EVENT_DOCUMENT_LOAD_COMPLETE = ( IA2_EVENT_DOCUMENT_CONTENT_CHANGED + 1 ) ,
- IA2_EVENT_DOCUMENT_LOAD_STOPPED = ( IA2_EVENT_DOCUMENT_LOAD_COMPLETE + 1 ) ,
- IA2_EVENT_DOCUMENT_RELOAD = ( IA2_EVENT_DOCUMENT_LOAD_STOPPED + 1 ) ,
- IA2_EVENT_HYPERLINK_END_INDEX_CHANGED = ( IA2_EVENT_DOCUMENT_RELOAD + 1 ) ,
- IA2_EVENT_HYPERLINK_NUMBER_OF_ANCHORS_CHANGED = ( IA2_EVENT_HYPERLINK_END_INDEX_CHANGED + 1 ) ,
- IA2_EVENT_HYPERLINK_SELECTED_LINK_CHANGED = ( IA2_EVENT_HYPERLINK_NUMBER_OF_ANCHORS_CHANGED + 1 ) ,
- IA2_EVENT_HYPERTEXT_LINK_ACTIVATED = ( IA2_EVENT_HYPERLINK_SELECTED_LINK_CHANGED + 1 ) ,
- IA2_EVENT_HYPERTEXT_LINK_SELECTED = ( IA2_EVENT_HYPERTEXT_LINK_ACTIVATED + 1 ) ,
- IA2_EVENT_HYPERLINK_START_INDEX_CHANGED = ( IA2_EVENT_HYPERTEXT_LINK_SELECTED + 1 ) ,
- IA2_EVENT_HYPERTEXT_CHANGED = ( IA2_EVENT_HYPERLINK_START_INDEX_CHANGED + 1 ) ,
- IA2_EVENT_HYPERTEXT_NLINKS_CHANGED = ( IA2_EVENT_HYPERTEXT_CHANGED + 1 ) ,
- IA2_EVENT_OBJECT_ATTRIBUTE_CHANGED = ( IA2_EVENT_HYPERTEXT_NLINKS_CHANGED + 1 ) ,
- IA2_EVENT_PAGE_CHANGED = ( IA2_EVENT_OBJECT_ATTRIBUTE_CHANGED + 1 ) ,
- IA2_EVENT_SECTION_CHANGED = ( IA2_EVENT_PAGE_CHANGED + 1 ) ,
- IA2_EVENT_TABLE_CAPTION_CHANGED = ( IA2_EVENT_SECTION_CHANGED + 1 ) ,
- IA2_EVENT_TABLE_COLUMN_DESCRIPTION_CHANGED = ( IA2_EVENT_TABLE_CAPTION_CHANGED + 1 ) ,
- IA2_EVENT_TABLE_COLUMN_HEADER_CHANGED = ( IA2_EVENT_TABLE_COLUMN_DESCRIPTION_CHANGED + 1 ) ,
- IA2_EVENT_TABLE_MODEL_CHANGED = ( IA2_EVENT_TABLE_COLUMN_HEADER_CHANGED + 1 ) ,
- IA2_EVENT_TABLE_ROW_DESCRIPTION_CHANGED = ( IA2_EVENT_TABLE_MODEL_CHANGED + 1 ) ,
- IA2_EVENT_TABLE_ROW_HEADER_CHANGED = ( IA2_EVENT_TABLE_ROW_DESCRIPTION_CHANGED + 1 ) ,
- IA2_EVENT_TABLE_SUMMARY_CHANGED = ( IA2_EVENT_TABLE_ROW_HEADER_CHANGED + 1 ) ,
- IA2_EVENT_TEXT_ATTRIBUTE_CHANGED = ( IA2_EVENT_TABLE_SUMMARY_CHANGED + 1 ) ,
- IA2_EVENT_TEXT_CARET_MOVED = ( IA2_EVENT_TEXT_ATTRIBUTE_CHANGED + 1 ) ,
- IA2_EVENT_TEXT_CHANGED = ( IA2_EVENT_TEXT_CARET_MOVED + 1 ) ,
- IA2_EVENT_TEXT_COLUMN_CHANGED = ( IA2_EVENT_TEXT_CHANGED + 1 ) ,
- IA2_EVENT_TEXT_INSERTED = ( IA2_EVENT_TEXT_COLUMN_CHANGED + 1 ) ,
- IA2_EVENT_TEXT_REMOVED = ( IA2_EVENT_TEXT_INSERTED + 1 ) ,
- IA2_EVENT_TEXT_UPDATED = ( IA2_EVENT_TEXT_REMOVED + 1 ) ,
- IA2_EVENT_TEXT_SELECTION_CHANGED = ( IA2_EVENT_TEXT_UPDATED + 1 ) ,
- IA2_EVENT_VISIBLE_DATA_CHANGED = ( IA2_EVENT_TEXT_SELECTION_CHANGED + 1 )
- } ;
-
-
-extern RPC_IF_HANDLE __MIDL_itf_AccessibleEventID_0000_0000_v0_0_c_ifspec;
-extern RPC_IF_HANDLE __MIDL_itf_AccessibleEventID_0000_0000_v0_0_s_ifspec;
-
-/* Additional Prototypes for ALL interfaces */
-
-/* end of Additional Prototypes */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleHyperlink.h b/src/3rdparty/iaccessible2/generated/x86/AccessibleHyperlink.h
deleted file mode 100644
index 858e6bbd9a..0000000000
--- a/src/3rdparty/iaccessible2/generated/x86/AccessibleHyperlink.h
+++ /dev/null
@@ -1,252 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the definitions for the interfaces */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:53 2012
- */
-/* Compiler settings for AccessibleHyperlink.idl:
- Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-
-
-/* verify that the <rpcndr.h> version is high enough to compile this file*/
-#ifndef __REQUIRED_RPCNDR_H_VERSION__
-#define __REQUIRED_RPCNDR_H_VERSION__ 475
-#endif
-
-#include "rpc.h"
-#include "rpcndr.h"
-
-#ifndef __RPCNDR_H_VERSION__
-#error this stub requires an updated version of <rpcndr.h>
-#endif // __RPCNDR_H_VERSION__
-
-#ifndef COM_NO_WINDOWS_H
-#include "windows.h"
-#include "ole2.h"
-#endif /*COM_NO_WINDOWS_H*/
-
-#ifndef __AccessibleHyperlink_h__
-#define __AccessibleHyperlink_h__
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-#pragma once
-#endif
-
-/* Forward Declarations */
-
-#ifndef __IAccessibleHyperlink_FWD_DEFINED__
-#define __IAccessibleHyperlink_FWD_DEFINED__
-typedef interface IAccessibleHyperlink IAccessibleHyperlink;
-#endif /* __IAccessibleHyperlink_FWD_DEFINED__ */
-
-
-/* header files for imported files */
-#include "objidl.h"
-#include "oaidl.h"
-#include "oleacc.h"
-#include "AccessibleAction.h"
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-
-#ifndef __IAccessibleHyperlink_INTERFACE_DEFINED__
-#define __IAccessibleHyperlink_INTERFACE_DEFINED__
-
-/* interface IAccessibleHyperlink */
-/* [uuid][object] */
-
-
-EXTERN_C const IID IID_IAccessibleHyperlink;
-
-#if defined(__cplusplus) && !defined(CINTERFACE)
-
- MIDL_INTERFACE("01C20F2B-3DD2-400f-949F-AD00BDAB1D41")
- IAccessibleHyperlink : public IAccessibleAction
- {
- public:
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_anchor(
- /* [in] */ long index,
- /* [retval][out] */ VARIANT *anchor) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_anchorTarget(
- /* [in] */ long index,
- /* [retval][out] */ VARIANT *anchorTarget) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_startIndex(
- /* [retval][out] */ long *index) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_endIndex(
- /* [retval][out] */ long *index) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_valid(
- /* [retval][out] */ boolean *valid) = 0;
-
- };
-
-#else /* C style interface */
-
- typedef struct IAccessibleHyperlinkVtbl
- {
- BEGIN_INTERFACE
-
- HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
- IAccessibleHyperlink * This,
- /* [in] */ REFIID riid,
- /* [annotation][iid_is][out] */
- __RPC__deref_out void **ppvObject);
-
- ULONG ( STDMETHODCALLTYPE *AddRef )(
- IAccessibleHyperlink * This);
-
- ULONG ( STDMETHODCALLTYPE *Release )(
- IAccessibleHyperlink * This);
-
- HRESULT ( STDMETHODCALLTYPE *nActions )(
- IAccessibleHyperlink * This,
- /* [retval][out] */ long *nActions);
-
- HRESULT ( STDMETHODCALLTYPE *doAction )(
- IAccessibleHyperlink * This,
- /* [in] */ long actionIndex);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_description )(
- IAccessibleHyperlink * This,
- /* [in] */ long actionIndex,
- /* [retval][out] */ BSTR *description);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_keyBinding )(
- IAccessibleHyperlink * This,
- /* [in] */ long actionIndex,
- /* [in] */ long nMaxBindings,
- /* [length_is][length_is][size_is][size_is][out] */ BSTR **keyBindings,
- /* [retval][out] */ long *nBindings);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_name )(
- IAccessibleHyperlink * This,
- /* [in] */ long actionIndex,
- /* [retval][out] */ BSTR *name);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedName )(
- IAccessibleHyperlink * This,
- /* [in] */ long actionIndex,
- /* [retval][out] */ BSTR *localizedName);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_anchor )(
- IAccessibleHyperlink * This,
- /* [in] */ long index,
- /* [retval][out] */ VARIANT *anchor);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_anchorTarget )(
- IAccessibleHyperlink * This,
- /* [in] */ long index,
- /* [retval][out] */ VARIANT *anchorTarget);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_startIndex )(
- IAccessibleHyperlink * This,
- /* [retval][out] */ long *index);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_endIndex )(
- IAccessibleHyperlink * This,
- /* [retval][out] */ long *index);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_valid )(
- IAccessibleHyperlink * This,
- /* [retval][out] */ boolean *valid);
-
- END_INTERFACE
- } IAccessibleHyperlinkVtbl;
-
- interface IAccessibleHyperlink
- {
- CONST_VTBL struct IAccessibleHyperlinkVtbl *lpVtbl;
- };
-
-
-
-#ifdef COBJMACROS
-
-
-#define IAccessibleHyperlink_QueryInterface(This,riid,ppvObject) \
- ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
-
-#define IAccessibleHyperlink_AddRef(This) \
- ( (This)->lpVtbl -> AddRef(This) )
-
-#define IAccessibleHyperlink_Release(This) \
- ( (This)->lpVtbl -> Release(This) )
-
-
-#define IAccessibleHyperlink_nActions(This,nActions) \
- ( (This)->lpVtbl -> nActions(This,nActions) )
-
-#define IAccessibleHyperlink_doAction(This,actionIndex) \
- ( (This)->lpVtbl -> doAction(This,actionIndex) )
-
-#define IAccessibleHyperlink_get_description(This,actionIndex,description) \
- ( (This)->lpVtbl -> get_description(This,actionIndex,description) )
-
-#define IAccessibleHyperlink_get_keyBinding(This,actionIndex,nMaxBindings,keyBindings,nBindings) \
- ( (This)->lpVtbl -> get_keyBinding(This,actionIndex,nMaxBindings,keyBindings,nBindings) )
-
-#define IAccessibleHyperlink_get_name(This,actionIndex,name) \
- ( (This)->lpVtbl -> get_name(This,actionIndex,name) )
-
-#define IAccessibleHyperlink_get_localizedName(This,actionIndex,localizedName) \
- ( (This)->lpVtbl -> get_localizedName(This,actionIndex,localizedName) )
-
-
-#define IAccessibleHyperlink_get_anchor(This,index,anchor) \
- ( (This)->lpVtbl -> get_anchor(This,index,anchor) )
-
-#define IAccessibleHyperlink_get_anchorTarget(This,index,anchorTarget) \
- ( (This)->lpVtbl -> get_anchorTarget(This,index,anchorTarget) )
-
-#define IAccessibleHyperlink_get_startIndex(This,index) \
- ( (This)->lpVtbl -> get_startIndex(This,index) )
-
-#define IAccessibleHyperlink_get_endIndex(This,index) \
- ( (This)->lpVtbl -> get_endIndex(This,index) )
-
-#define IAccessibleHyperlink_get_valid(This,valid) \
- ( (This)->lpVtbl -> get_valid(This,valid) )
-
-#endif /* COBJMACROS */
-
-
-#endif /* C style interface */
-
-
-
-
-#endif /* __IAccessibleHyperlink_INTERFACE_DEFINED__ */
-
-
-/* Additional Prototypes for ALL interfaces */
-
-unsigned long __RPC_USER VARIANT_UserSize( unsigned long *, unsigned long , VARIANT * );
-unsigned char * __RPC_USER VARIANT_UserMarshal( unsigned long *, unsigned char *, VARIANT * );
-unsigned char * __RPC_USER VARIANT_UserUnmarshal(unsigned long *, unsigned char *, VARIANT * );
-void __RPC_USER VARIANT_UserFree( unsigned long *, VARIANT * );
-
-/* end of Additional Prototypes */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleHyperlink_i.c b/src/3rdparty/iaccessible2/generated/x86/AccessibleHyperlink_i.c
deleted file mode 100644
index ef0921fe4c..0000000000
--- a/src/3rdparty/iaccessible2/generated/x86/AccessibleHyperlink_i.c
+++ /dev/null
@@ -1,79 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
-
-/* link this file in with the server and any clients */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:53 2012
- */
-/* Compiler settings for AccessibleHyperlink.idl:
- Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-
-#include <rpc.h>
-#include <rpcndr.h>
-
-#ifdef _MIDL_USE_GUIDDEF_
-
-#ifndef INITGUID
-#define INITGUID
-#include <guiddef.h>
-#undef INITGUID
-#else
-#include <guiddef.h>
-#endif
-
-#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
- DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
-
-#else // !_MIDL_USE_GUIDDEF_
-
-#ifndef __IID_DEFINED__
-#define __IID_DEFINED__
-
-typedef struct _IID
-{
- unsigned long x;
- unsigned short s1;
- unsigned short s2;
- unsigned char c[8];
-} IID;
-
-#endif // __IID_DEFINED__
-
-#ifndef CLSID_DEFINED
-#define CLSID_DEFINED
-typedef IID CLSID;
-#endif // CLSID_DEFINED
-
-#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
- const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
-
-#endif !_MIDL_USE_GUIDDEF_
-
-MIDL_DEFINE_GUID(IID, IID_IAccessibleHyperlink,0x01C20F2B,0x3DD2,0x400f,0x94,0x9F,0xAD,0x00,0xBD,0xAB,0x1D,0x41);
-
-#undef MIDL_DEFINE_GUID
-
-#ifdef __cplusplus
-}
-#endif
-
-
-
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleHyperlink_p.c b/src/3rdparty/iaccessible2/generated/x86/AccessibleHyperlink_p.c
deleted file mode 100644
index c608123261..0000000000
--- a/src/3rdparty/iaccessible2/generated/x86/AccessibleHyperlink_p.c
+++ /dev/null
@@ -1,1191 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the proxy stub code */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:53 2012
- */
-/* Compiler settings for AccessibleHyperlink.idl:
- Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#if !defined(_M_IA64) && !defined(_M_AMD64)
-
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-#if _MSC_VER >= 1200
-#pragma warning(push)
-#endif
-
-#pragma warning( disable: 4211 ) /* redefine extern to static */
-#pragma warning( disable: 4232 ) /* dllimport identity*/
-#pragma warning( disable: 4024 ) /* array to pointer mapping*/
-#pragma warning( disable: 4152 ) /* function/data pointer conversion in expression */
-#pragma warning( disable: 4100 ) /* unreferenced arguments in x86 call */
-
-#pragma optimize("", off )
-
-#define USE_STUBLESS_PROXY
-
-
-/* verify that the <rpcproxy.h> version is high enough to compile this file*/
-#ifndef __REDQ_RPCPROXY_H_VERSION__
-#define __REQUIRED_RPCPROXY_H_VERSION__ 475
-#endif
-
-
-#include "rpcproxy.h"
-#ifndef __RPCPROXY_H_VERSION__
-#error this stub requires an updated version of <rpcproxy.h>
-#endif /* __RPCPROXY_H_VERSION__ */
-
-
-#include "AccessibleHyperlink.h"
-
-#define TYPE_FORMAT_STRING_SIZE 1047
-#define PROC_FORMAT_STRING_SIZE 193
-#define EXPR_FORMAT_STRING_SIZE 1
-#define TRANSMIT_AS_TABLE_SIZE 0
-#define WIRE_MARSHAL_TABLE_SIZE 1
-
-typedef struct _AccessibleHyperlink_MIDL_TYPE_FORMAT_STRING
- {
- short Pad;
- unsigned char Format[ TYPE_FORMAT_STRING_SIZE ];
- } AccessibleHyperlink_MIDL_TYPE_FORMAT_STRING;
-
-typedef struct _AccessibleHyperlink_MIDL_PROC_FORMAT_STRING
- {
- short Pad;
- unsigned char Format[ PROC_FORMAT_STRING_SIZE ];
- } AccessibleHyperlink_MIDL_PROC_FORMAT_STRING;
-
-typedef struct _AccessibleHyperlink_MIDL_EXPR_FORMAT_STRING
- {
- long Pad;
- unsigned char Format[ EXPR_FORMAT_STRING_SIZE ];
- } AccessibleHyperlink_MIDL_EXPR_FORMAT_STRING;
-
-
-static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax =
-{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}};
-
-
-extern const AccessibleHyperlink_MIDL_TYPE_FORMAT_STRING AccessibleHyperlink__MIDL_TypeFormatString;
-extern const AccessibleHyperlink_MIDL_PROC_FORMAT_STRING AccessibleHyperlink__MIDL_ProcFormatString;
-extern const AccessibleHyperlink_MIDL_EXPR_FORMAT_STRING AccessibleHyperlink__MIDL_ExprFormatString;
-
-
-extern const MIDL_STUB_DESC Object_StubDesc;
-
-
-extern const MIDL_SERVER_INFO IAccessibleHyperlink_ServerInfo;
-extern const MIDL_STUBLESS_PROXY_INFO IAccessibleHyperlink_ProxyInfo;
-
-
-extern const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ];
-
-#if !defined(__RPC_WIN32__)
-#error Invalid build platform for this stub.
-#endif
-
-#if !(TARGET_IS_NT50_OR_LATER)
-#error You need Windows 2000 or later to run this stub because it uses these features:
-#error /robust command line switch.
-#error However, your C/C++ compilation flags indicate you intend to run this app on earlier systems.
-#error This app will fail with the RPC_X_WRONG_STUB_VERSION error.
-#endif
-
-
-static const AccessibleHyperlink_MIDL_PROC_FORMAT_STRING AccessibleHyperlink__MIDL_ProcFormatString =
- {
- 0,
- {
-
- /* Procedure get_anchor */
-
- 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 2 */ NdrFcLong( 0x0 ), /* 0 */
-/* 6 */ NdrFcShort( 0x9 ), /* 9 */
-/* 8 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
-/* 10 */ NdrFcShort( 0x8 ), /* 8 */
-/* 12 */ NdrFcShort( 0x8 ), /* 8 */
-/* 14 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x3, /* 3 */
-/* 16 */ 0x8, /* 8 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 18 */ NdrFcShort( 0x1 ), /* 1 */
-/* 20 */ NdrFcShort( 0x0 ), /* 0 */
-/* 22 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter index */
-
-/* 24 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 26 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 28 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter anchor */
-
-/* 30 */ NdrFcShort( 0x4113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=16 */
-/* 32 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 34 */ NdrFcShort( 0x404 ), /* Type Offset=1028 */
-
- /* Return value */
-
-/* 36 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 38 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 40 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_anchorTarget */
-
-/* 42 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 44 */ NdrFcLong( 0x0 ), /* 0 */
-/* 48 */ NdrFcShort( 0xa ), /* 10 */
-/* 50 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
-/* 52 */ NdrFcShort( 0x8 ), /* 8 */
-/* 54 */ NdrFcShort( 0x8 ), /* 8 */
-/* 56 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x3, /* 3 */
-/* 58 */ 0x8, /* 8 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 60 */ NdrFcShort( 0x1 ), /* 1 */
-/* 62 */ NdrFcShort( 0x0 ), /* 0 */
-/* 64 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter index */
-
-/* 66 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 68 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 70 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter anchorTarget */
-
-/* 72 */ NdrFcShort( 0x4113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=16 */
-/* 74 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 76 */ NdrFcShort( 0x404 ), /* Type Offset=1028 */
-
- /* Return value */
-
-/* 78 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 80 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 82 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_startIndex */
-
-/* 84 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 86 */ NdrFcLong( 0x0 ), /* 0 */
-/* 90 */ NdrFcShort( 0xb ), /* 11 */
-/* 92 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 94 */ NdrFcShort( 0x0 ), /* 0 */
-/* 96 */ NdrFcShort( 0x24 ), /* 36 */
-/* 98 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 100 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 102 */ NdrFcShort( 0x0 ), /* 0 */
-/* 104 */ NdrFcShort( 0x0 ), /* 0 */
-/* 106 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter index */
-
-/* 108 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 110 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 112 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 114 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 116 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 118 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_endIndex */
-
-/* 120 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 122 */ NdrFcLong( 0x0 ), /* 0 */
-/* 126 */ NdrFcShort( 0xc ), /* 12 */
-/* 128 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 130 */ NdrFcShort( 0x0 ), /* 0 */
-/* 132 */ NdrFcShort( 0x24 ), /* 36 */
-/* 134 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 136 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 138 */ NdrFcShort( 0x0 ), /* 0 */
-/* 140 */ NdrFcShort( 0x0 ), /* 0 */
-/* 142 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter index */
-
-/* 144 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 146 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 148 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 150 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 152 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 154 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_valid */
-
-/* 156 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 158 */ NdrFcLong( 0x0 ), /* 0 */
-/* 162 */ NdrFcShort( 0xd ), /* 13 */
-/* 164 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 166 */ NdrFcShort( 0x0 ), /* 0 */
-/* 168 */ NdrFcShort( 0x21 ), /* 33 */
-/* 170 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 172 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 174 */ NdrFcShort( 0x0 ), /* 0 */
-/* 176 */ NdrFcShort( 0x0 ), /* 0 */
-/* 178 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter valid */
-
-/* 180 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 182 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 184 */ 0x3, /* FC_SMALL */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 186 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 188 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 190 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- 0x0
- }
- };
-
-static const AccessibleHyperlink_MIDL_TYPE_FORMAT_STRING AccessibleHyperlink__MIDL_TypeFormatString =
- {
- 0,
- {
- NdrFcShort( 0x0 ), /* 0 */
-/* 2 */
- 0x11, 0x4, /* FC_RP [alloced_on_stack] */
-/* 4 */ NdrFcShort( 0x400 ), /* Offset= 1024 (1028) */
-/* 6 */
- 0x13, 0x0, /* FC_OP */
-/* 8 */ NdrFcShort( 0x3e8 ), /* Offset= 1000 (1008) */
-/* 10 */
- 0x2b, /* FC_NON_ENCAPSULATED_UNION */
- 0x9, /* FC_ULONG */
-/* 12 */ 0x7, /* Corr desc: FC_USHORT */
- 0x0, /* */
-/* 14 */ NdrFcShort( 0xfff8 ), /* -8 */
-/* 16 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 18 */ NdrFcShort( 0x2 ), /* Offset= 2 (20) */
-/* 20 */ NdrFcShort( 0x10 ), /* 16 */
-/* 22 */ NdrFcShort( 0x2f ), /* 47 */
-/* 24 */ NdrFcLong( 0x14 ), /* 20 */
-/* 28 */ NdrFcShort( 0x800b ), /* Simple arm type: FC_HYPER */
-/* 30 */ NdrFcLong( 0x3 ), /* 3 */
-/* 34 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
-/* 36 */ NdrFcLong( 0x11 ), /* 17 */
-/* 40 */ NdrFcShort( 0x8001 ), /* Simple arm type: FC_BYTE */
-/* 42 */ NdrFcLong( 0x2 ), /* 2 */
-/* 46 */ NdrFcShort( 0x8006 ), /* Simple arm type: FC_SHORT */
-/* 48 */ NdrFcLong( 0x4 ), /* 4 */
-/* 52 */ NdrFcShort( 0x800a ), /* Simple arm type: FC_FLOAT */
-/* 54 */ NdrFcLong( 0x5 ), /* 5 */
-/* 58 */ NdrFcShort( 0x800c ), /* Simple arm type: FC_DOUBLE */
-/* 60 */ NdrFcLong( 0xb ), /* 11 */
-/* 64 */ NdrFcShort( 0x8006 ), /* Simple arm type: FC_SHORT */
-/* 66 */ NdrFcLong( 0xa ), /* 10 */
-/* 70 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
-/* 72 */ NdrFcLong( 0x6 ), /* 6 */
-/* 76 */ NdrFcShort( 0xe8 ), /* Offset= 232 (308) */
-/* 78 */ NdrFcLong( 0x7 ), /* 7 */
-/* 82 */ NdrFcShort( 0x800c ), /* Simple arm type: FC_DOUBLE */
-/* 84 */ NdrFcLong( 0x8 ), /* 8 */
-/* 88 */ NdrFcShort( 0xe2 ), /* Offset= 226 (314) */
-/* 90 */ NdrFcLong( 0xd ), /* 13 */
-/* 94 */ NdrFcShort( 0xf6 ), /* Offset= 246 (340) */
-/* 96 */ NdrFcLong( 0x9 ), /* 9 */
-/* 100 */ NdrFcShort( 0x102 ), /* Offset= 258 (358) */
-/* 102 */ NdrFcLong( 0x2000 ), /* 8192 */
-/* 106 */ NdrFcShort( 0x10e ), /* Offset= 270 (376) */
-/* 108 */ NdrFcLong( 0x24 ), /* 36 */
-/* 112 */ NdrFcShort( 0x336 ), /* Offset= 822 (934) */
-/* 114 */ NdrFcLong( 0x4024 ), /* 16420 */
-/* 118 */ NdrFcShort( 0x330 ), /* Offset= 816 (934) */
-/* 120 */ NdrFcLong( 0x4011 ), /* 16401 */
-/* 124 */ NdrFcShort( 0x32e ), /* Offset= 814 (938) */
-/* 126 */ NdrFcLong( 0x4002 ), /* 16386 */
-/* 130 */ NdrFcShort( 0x32c ), /* Offset= 812 (942) */
-/* 132 */ NdrFcLong( 0x4003 ), /* 16387 */
-/* 136 */ NdrFcShort( 0x32a ), /* Offset= 810 (946) */
-/* 138 */ NdrFcLong( 0x4014 ), /* 16404 */
-/* 142 */ NdrFcShort( 0x328 ), /* Offset= 808 (950) */
-/* 144 */ NdrFcLong( 0x4004 ), /* 16388 */
-/* 148 */ NdrFcShort( 0x326 ), /* Offset= 806 (954) */
-/* 150 */ NdrFcLong( 0x4005 ), /* 16389 */
-/* 154 */ NdrFcShort( 0x324 ), /* Offset= 804 (958) */
-/* 156 */ NdrFcLong( 0x400b ), /* 16395 */
-/* 160 */ NdrFcShort( 0x30e ), /* Offset= 782 (942) */
-/* 162 */ NdrFcLong( 0x400a ), /* 16394 */
-/* 166 */ NdrFcShort( 0x30c ), /* Offset= 780 (946) */
-/* 168 */ NdrFcLong( 0x4006 ), /* 16390 */
-/* 172 */ NdrFcShort( 0x316 ), /* Offset= 790 (962) */
-/* 174 */ NdrFcLong( 0x4007 ), /* 16391 */
-/* 178 */ NdrFcShort( 0x30c ), /* Offset= 780 (958) */
-/* 180 */ NdrFcLong( 0x4008 ), /* 16392 */
-/* 184 */ NdrFcShort( 0x30e ), /* Offset= 782 (966) */
-/* 186 */ NdrFcLong( 0x400d ), /* 16397 */
-/* 190 */ NdrFcShort( 0x30c ), /* Offset= 780 (970) */
-/* 192 */ NdrFcLong( 0x4009 ), /* 16393 */
-/* 196 */ NdrFcShort( 0x30a ), /* Offset= 778 (974) */
-/* 198 */ NdrFcLong( 0x6000 ), /* 24576 */
-/* 202 */ NdrFcShort( 0x308 ), /* Offset= 776 (978) */
-/* 204 */ NdrFcLong( 0x400c ), /* 16396 */
-/* 208 */ NdrFcShort( 0x306 ), /* Offset= 774 (982) */
-/* 210 */ NdrFcLong( 0x10 ), /* 16 */
-/* 214 */ NdrFcShort( 0x8002 ), /* Simple arm type: FC_CHAR */
-/* 216 */ NdrFcLong( 0x12 ), /* 18 */
-/* 220 */ NdrFcShort( 0x8006 ), /* Simple arm type: FC_SHORT */
-/* 222 */ NdrFcLong( 0x13 ), /* 19 */
-/* 226 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
-/* 228 */ NdrFcLong( 0x15 ), /* 21 */
-/* 232 */ NdrFcShort( 0x800b ), /* Simple arm type: FC_HYPER */
-/* 234 */ NdrFcLong( 0x16 ), /* 22 */
-/* 238 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
-/* 240 */ NdrFcLong( 0x17 ), /* 23 */
-/* 244 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
-/* 246 */ NdrFcLong( 0xe ), /* 14 */
-/* 250 */ NdrFcShort( 0x2e4 ), /* Offset= 740 (990) */
-/* 252 */ NdrFcLong( 0x400e ), /* 16398 */
-/* 256 */ NdrFcShort( 0x2e8 ), /* Offset= 744 (1000) */
-/* 258 */ NdrFcLong( 0x4010 ), /* 16400 */
-/* 262 */ NdrFcShort( 0x2e6 ), /* Offset= 742 (1004) */
-/* 264 */ NdrFcLong( 0x4012 ), /* 16402 */
-/* 268 */ NdrFcShort( 0x2a2 ), /* Offset= 674 (942) */
-/* 270 */ NdrFcLong( 0x4013 ), /* 16403 */
-/* 274 */ NdrFcShort( 0x2a0 ), /* Offset= 672 (946) */
-/* 276 */ NdrFcLong( 0x4015 ), /* 16405 */
-/* 280 */ NdrFcShort( 0x29e ), /* Offset= 670 (950) */
-/* 282 */ NdrFcLong( 0x4016 ), /* 16406 */
-/* 286 */ NdrFcShort( 0x294 ), /* Offset= 660 (946) */
-/* 288 */ NdrFcLong( 0x4017 ), /* 16407 */
-/* 292 */ NdrFcShort( 0x28e ), /* Offset= 654 (946) */
-/* 294 */ NdrFcLong( 0x0 ), /* 0 */
-/* 298 */ NdrFcShort( 0x0 ), /* Offset= 0 (298) */
-/* 300 */ NdrFcLong( 0x1 ), /* 1 */
-/* 304 */ NdrFcShort( 0x0 ), /* Offset= 0 (304) */
-/* 306 */ NdrFcShort( 0xffff ), /* Offset= -1 (305) */
-/* 308 */
- 0x15, /* FC_STRUCT */
- 0x7, /* 7 */
-/* 310 */ NdrFcShort( 0x8 ), /* 8 */
-/* 312 */ 0xb, /* FC_HYPER */
- 0x5b, /* FC_END */
-/* 314 */
- 0x13, 0x0, /* FC_OP */
-/* 316 */ NdrFcShort( 0xe ), /* Offset= 14 (330) */
-/* 318 */
- 0x1b, /* FC_CARRAY */
- 0x1, /* 1 */
-/* 320 */ NdrFcShort( 0x2 ), /* 2 */
-/* 322 */ 0x9, /* Corr desc: FC_ULONG */
- 0x0, /* */
-/* 324 */ NdrFcShort( 0xfffc ), /* -4 */
-/* 326 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 328 */ 0x6, /* FC_SHORT */
- 0x5b, /* FC_END */
-/* 330 */
- 0x17, /* FC_CSTRUCT */
- 0x3, /* 3 */
-/* 332 */ NdrFcShort( 0x8 ), /* 8 */
-/* 334 */ NdrFcShort( 0xfff0 ), /* Offset= -16 (318) */
-/* 336 */ 0x8, /* FC_LONG */
- 0x8, /* FC_LONG */
-/* 338 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-/* 340 */
- 0x2f, /* FC_IP */
- 0x5a, /* FC_CONSTANT_IID */
-/* 342 */ NdrFcLong( 0x0 ), /* 0 */
-/* 346 */ NdrFcShort( 0x0 ), /* 0 */
-/* 348 */ NdrFcShort( 0x0 ), /* 0 */
-/* 350 */ 0xc0, /* 192 */
- 0x0, /* 0 */
-/* 352 */ 0x0, /* 0 */
- 0x0, /* 0 */
-/* 354 */ 0x0, /* 0 */
- 0x0, /* 0 */
-/* 356 */ 0x0, /* 0 */
- 0x46, /* 70 */
-/* 358 */
- 0x2f, /* FC_IP */
- 0x5a, /* FC_CONSTANT_IID */
-/* 360 */ NdrFcLong( 0x20400 ), /* 132096 */
-/* 364 */ NdrFcShort( 0x0 ), /* 0 */
-/* 366 */ NdrFcShort( 0x0 ), /* 0 */
-/* 368 */ 0xc0, /* 192 */
- 0x0, /* 0 */
-/* 370 */ 0x0, /* 0 */
- 0x0, /* 0 */
-/* 372 */ 0x0, /* 0 */
- 0x0, /* 0 */
-/* 374 */ 0x0, /* 0 */
- 0x46, /* 70 */
-/* 376 */
- 0x13, 0x10, /* FC_OP [pointer_deref] */
-/* 378 */ NdrFcShort( 0x2 ), /* Offset= 2 (380) */
-/* 380 */
- 0x13, 0x0, /* FC_OP */
-/* 382 */ NdrFcShort( 0x216 ), /* Offset= 534 (916) */
-/* 384 */
- 0x2a, /* FC_ENCAPSULATED_UNION */
- 0x49, /* 73 */
-/* 386 */ NdrFcShort( 0x18 ), /* 24 */
-/* 388 */ NdrFcShort( 0xa ), /* 10 */
-/* 390 */ NdrFcLong( 0x8 ), /* 8 */
-/* 394 */ NdrFcShort( 0x5a ), /* Offset= 90 (484) */
-/* 396 */ NdrFcLong( 0xd ), /* 13 */
-/* 400 */ NdrFcShort( 0x7e ), /* Offset= 126 (526) */
-/* 402 */ NdrFcLong( 0x9 ), /* 9 */
-/* 406 */ NdrFcShort( 0x9e ), /* Offset= 158 (564) */
-/* 408 */ NdrFcLong( 0xc ), /* 12 */
-/* 412 */ NdrFcShort( 0xc8 ), /* Offset= 200 (612) */
-/* 414 */ NdrFcLong( 0x24 ), /* 36 */
-/* 418 */ NdrFcShort( 0x124 ), /* Offset= 292 (710) */
-/* 420 */ NdrFcLong( 0x800d ), /* 32781 */
-/* 424 */ NdrFcShort( 0x140 ), /* Offset= 320 (744) */
-/* 426 */ NdrFcLong( 0x10 ), /* 16 */
-/* 430 */ NdrFcShort( 0x15a ), /* Offset= 346 (776) */
-/* 432 */ NdrFcLong( 0x2 ), /* 2 */
-/* 436 */ NdrFcShort( 0x174 ), /* Offset= 372 (808) */
-/* 438 */ NdrFcLong( 0x3 ), /* 3 */
-/* 442 */ NdrFcShort( 0x18e ), /* Offset= 398 (840) */
-/* 444 */ NdrFcLong( 0x14 ), /* 20 */
-/* 448 */ NdrFcShort( 0x1a8 ), /* Offset= 424 (872) */
-/* 450 */ NdrFcShort( 0xffff ), /* Offset= -1 (449) */
-/* 452 */
- 0x1b, /* FC_CARRAY */
- 0x3, /* 3 */
-/* 454 */ NdrFcShort( 0x4 ), /* 4 */
-/* 456 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
- 0x0, /* */
-/* 458 */ NdrFcShort( 0x0 ), /* 0 */
-/* 460 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 462 */
- 0x4b, /* FC_PP */
- 0x5c, /* FC_PAD */
-/* 464 */
- 0x48, /* FC_VARIABLE_REPEAT */
- 0x49, /* FC_FIXED_OFFSET */
-/* 466 */ NdrFcShort( 0x4 ), /* 4 */
-/* 468 */ NdrFcShort( 0x0 ), /* 0 */
-/* 470 */ NdrFcShort( 0x1 ), /* 1 */
-/* 472 */ NdrFcShort( 0x0 ), /* 0 */
-/* 474 */ NdrFcShort( 0x0 ), /* 0 */
-/* 476 */ 0x13, 0x0, /* FC_OP */
-/* 478 */ NdrFcShort( 0xff6c ), /* Offset= -148 (330) */
-/* 480 */
- 0x5b, /* FC_END */
-
- 0x8, /* FC_LONG */
-/* 482 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-/* 484 */
- 0x16, /* FC_PSTRUCT */
- 0x3, /* 3 */
-/* 486 */ NdrFcShort( 0x8 ), /* 8 */
-/* 488 */
- 0x4b, /* FC_PP */
- 0x5c, /* FC_PAD */
-/* 490 */
- 0x46, /* FC_NO_REPEAT */
- 0x5c, /* FC_PAD */
-/* 492 */ NdrFcShort( 0x4 ), /* 4 */
-/* 494 */ NdrFcShort( 0x4 ), /* 4 */
-/* 496 */ 0x11, 0x0, /* FC_RP */
-/* 498 */ NdrFcShort( 0xffd2 ), /* Offset= -46 (452) */
-/* 500 */
- 0x5b, /* FC_END */
-
- 0x8, /* FC_LONG */
-/* 502 */ 0x8, /* FC_LONG */
- 0x5b, /* FC_END */
-/* 504 */
- 0x21, /* FC_BOGUS_ARRAY */
- 0x3, /* 3 */
-/* 506 */ NdrFcShort( 0x0 ), /* 0 */
-/* 508 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
- 0x0, /* */
-/* 510 */ NdrFcShort( 0x0 ), /* 0 */
-/* 512 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 514 */ NdrFcLong( 0xffffffff ), /* -1 */
-/* 518 */ NdrFcShort( 0x0 ), /* Corr flags: */
-/* 520 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
- 0x0, /* 0 */
-/* 522 */ NdrFcShort( 0xff4a ), /* Offset= -182 (340) */
-/* 524 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-/* 526 */
- 0x1a, /* FC_BOGUS_STRUCT */
- 0x3, /* 3 */
-/* 528 */ NdrFcShort( 0x8 ), /* 8 */
-/* 530 */ NdrFcShort( 0x0 ), /* 0 */
-/* 532 */ NdrFcShort( 0x6 ), /* Offset= 6 (538) */
-/* 534 */ 0x8, /* FC_LONG */
- 0x36, /* FC_POINTER */
-/* 536 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-/* 538 */
- 0x11, 0x0, /* FC_RP */
-/* 540 */ NdrFcShort( 0xffdc ), /* Offset= -36 (504) */
-/* 542 */
- 0x21, /* FC_BOGUS_ARRAY */
- 0x3, /* 3 */
-/* 544 */ NdrFcShort( 0x0 ), /* 0 */
-/* 546 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
- 0x0, /* */
-/* 548 */ NdrFcShort( 0x0 ), /* 0 */
-/* 550 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 552 */ NdrFcLong( 0xffffffff ), /* -1 */
-/* 556 */ NdrFcShort( 0x0 ), /* Corr flags: */
-/* 558 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
- 0x0, /* 0 */
-/* 560 */ NdrFcShort( 0xff36 ), /* Offset= -202 (358) */
-/* 562 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-/* 564 */
- 0x1a, /* FC_BOGUS_STRUCT */
- 0x3, /* 3 */
-/* 566 */ NdrFcShort( 0x8 ), /* 8 */
-/* 568 */ NdrFcShort( 0x0 ), /* 0 */
-/* 570 */ NdrFcShort( 0x6 ), /* Offset= 6 (576) */
-/* 572 */ 0x8, /* FC_LONG */
- 0x36, /* FC_POINTER */
-/* 574 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-/* 576 */
- 0x11, 0x0, /* FC_RP */
-/* 578 */ NdrFcShort( 0xffdc ), /* Offset= -36 (542) */
-/* 580 */
- 0x1b, /* FC_CARRAY */
- 0x3, /* 3 */
-/* 582 */ NdrFcShort( 0x4 ), /* 4 */
-/* 584 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
- 0x0, /* */
-/* 586 */ NdrFcShort( 0x0 ), /* 0 */
-/* 588 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 590 */
- 0x4b, /* FC_PP */
- 0x5c, /* FC_PAD */
-/* 592 */
- 0x48, /* FC_VARIABLE_REPEAT */
- 0x49, /* FC_FIXED_OFFSET */
-/* 594 */ NdrFcShort( 0x4 ), /* 4 */
-/* 596 */ NdrFcShort( 0x0 ), /* 0 */
-/* 598 */ NdrFcShort( 0x1 ), /* 1 */
-/* 600 */ NdrFcShort( 0x0 ), /* 0 */
-/* 602 */ NdrFcShort( 0x0 ), /* 0 */
-/* 604 */ 0x13, 0x0, /* FC_OP */
-/* 606 */ NdrFcShort( 0x192 ), /* Offset= 402 (1008) */
-/* 608 */
- 0x5b, /* FC_END */
-
- 0x8, /* FC_LONG */
-/* 610 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-/* 612 */
- 0x1a, /* FC_BOGUS_STRUCT */
- 0x3, /* 3 */
-/* 614 */ NdrFcShort( 0x8 ), /* 8 */
-/* 616 */ NdrFcShort( 0x0 ), /* 0 */
-/* 618 */ NdrFcShort( 0x6 ), /* Offset= 6 (624) */
-/* 620 */ 0x8, /* FC_LONG */
- 0x36, /* FC_POINTER */
-/* 622 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-/* 624 */
- 0x11, 0x0, /* FC_RP */
-/* 626 */ NdrFcShort( 0xffd2 ), /* Offset= -46 (580) */
-/* 628 */
- 0x2f, /* FC_IP */
- 0x5a, /* FC_CONSTANT_IID */
-/* 630 */ NdrFcLong( 0x2f ), /* 47 */
-/* 634 */ NdrFcShort( 0x0 ), /* 0 */
-/* 636 */ NdrFcShort( 0x0 ), /* 0 */
-/* 638 */ 0xc0, /* 192 */
- 0x0, /* 0 */
-/* 640 */ 0x0, /* 0 */
- 0x0, /* 0 */
-/* 642 */ 0x0, /* 0 */
- 0x0, /* 0 */
-/* 644 */ 0x0, /* 0 */
- 0x46, /* 70 */
-/* 646 */
- 0x1b, /* FC_CARRAY */
- 0x0, /* 0 */
-/* 648 */ NdrFcShort( 0x1 ), /* 1 */
-/* 650 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
- 0x0, /* */
-/* 652 */ NdrFcShort( 0x4 ), /* 4 */
-/* 654 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 656 */ 0x1, /* FC_BYTE */
- 0x5b, /* FC_END */
-/* 658 */
- 0x1a, /* FC_BOGUS_STRUCT */
- 0x3, /* 3 */
-/* 660 */ NdrFcShort( 0x10 ), /* 16 */
-/* 662 */ NdrFcShort( 0x0 ), /* 0 */
-/* 664 */ NdrFcShort( 0xa ), /* Offset= 10 (674) */
-/* 666 */ 0x8, /* FC_LONG */
- 0x8, /* FC_LONG */
-/* 668 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
- 0x0, /* 0 */
-/* 670 */ NdrFcShort( 0xffd6 ), /* Offset= -42 (628) */
-/* 672 */ 0x36, /* FC_POINTER */
- 0x5b, /* FC_END */
-/* 674 */
- 0x13, 0x0, /* FC_OP */
-/* 676 */ NdrFcShort( 0xffe2 ), /* Offset= -30 (646) */
-/* 678 */
- 0x1b, /* FC_CARRAY */
- 0x3, /* 3 */
-/* 680 */ NdrFcShort( 0x4 ), /* 4 */
-/* 682 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
- 0x0, /* */
-/* 684 */ NdrFcShort( 0x0 ), /* 0 */
-/* 686 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 688 */
- 0x4b, /* FC_PP */
- 0x5c, /* FC_PAD */
-/* 690 */
- 0x48, /* FC_VARIABLE_REPEAT */
- 0x49, /* FC_FIXED_OFFSET */
-/* 692 */ NdrFcShort( 0x4 ), /* 4 */
-/* 694 */ NdrFcShort( 0x0 ), /* 0 */
-/* 696 */ NdrFcShort( 0x1 ), /* 1 */
-/* 698 */ NdrFcShort( 0x0 ), /* 0 */
-/* 700 */ NdrFcShort( 0x0 ), /* 0 */
-/* 702 */ 0x13, 0x0, /* FC_OP */
-/* 704 */ NdrFcShort( 0xffd2 ), /* Offset= -46 (658) */
-/* 706 */
- 0x5b, /* FC_END */
-
- 0x8, /* FC_LONG */
-/* 708 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-/* 710 */
- 0x1a, /* FC_BOGUS_STRUCT */
- 0x3, /* 3 */
-/* 712 */ NdrFcShort( 0x8 ), /* 8 */
-/* 714 */ NdrFcShort( 0x0 ), /* 0 */
-/* 716 */ NdrFcShort( 0x6 ), /* Offset= 6 (722) */
-/* 718 */ 0x8, /* FC_LONG */
- 0x36, /* FC_POINTER */
-/* 720 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-/* 722 */
- 0x11, 0x0, /* FC_RP */
-/* 724 */ NdrFcShort( 0xffd2 ), /* Offset= -46 (678) */
-/* 726 */
- 0x1d, /* FC_SMFARRAY */
- 0x0, /* 0 */
-/* 728 */ NdrFcShort( 0x8 ), /* 8 */
-/* 730 */ 0x1, /* FC_BYTE */
- 0x5b, /* FC_END */
-/* 732 */
- 0x15, /* FC_STRUCT */
- 0x3, /* 3 */
-/* 734 */ NdrFcShort( 0x10 ), /* 16 */
-/* 736 */ 0x8, /* FC_LONG */
- 0x6, /* FC_SHORT */
-/* 738 */ 0x6, /* FC_SHORT */
- 0x4c, /* FC_EMBEDDED_COMPLEX */
-/* 740 */ 0x0, /* 0 */
- NdrFcShort( 0xfff1 ), /* Offset= -15 (726) */
- 0x5b, /* FC_END */
-/* 744 */
- 0x1a, /* FC_BOGUS_STRUCT */
- 0x3, /* 3 */
-/* 746 */ NdrFcShort( 0x18 ), /* 24 */
-/* 748 */ NdrFcShort( 0x0 ), /* 0 */
-/* 750 */ NdrFcShort( 0xa ), /* Offset= 10 (760) */
-/* 752 */ 0x8, /* FC_LONG */
- 0x36, /* FC_POINTER */
-/* 754 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
- 0x0, /* 0 */
-/* 756 */ NdrFcShort( 0xffe8 ), /* Offset= -24 (732) */
-/* 758 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-/* 760 */
- 0x11, 0x0, /* FC_RP */
-/* 762 */ NdrFcShort( 0xfefe ), /* Offset= -258 (504) */
-/* 764 */
- 0x1b, /* FC_CARRAY */
- 0x0, /* 0 */
-/* 766 */ NdrFcShort( 0x1 ), /* 1 */
-/* 768 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
- 0x0, /* */
-/* 770 */ NdrFcShort( 0x0 ), /* 0 */
-/* 772 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 774 */ 0x1, /* FC_BYTE */
- 0x5b, /* FC_END */
-/* 776 */
- 0x16, /* FC_PSTRUCT */
- 0x3, /* 3 */
-/* 778 */ NdrFcShort( 0x8 ), /* 8 */
-/* 780 */
- 0x4b, /* FC_PP */
- 0x5c, /* FC_PAD */
-/* 782 */
- 0x46, /* FC_NO_REPEAT */
- 0x5c, /* FC_PAD */
-/* 784 */ NdrFcShort( 0x4 ), /* 4 */
-/* 786 */ NdrFcShort( 0x4 ), /* 4 */
-/* 788 */ 0x13, 0x0, /* FC_OP */
-/* 790 */ NdrFcShort( 0xffe6 ), /* Offset= -26 (764) */
-/* 792 */
- 0x5b, /* FC_END */
-
- 0x8, /* FC_LONG */
-/* 794 */ 0x8, /* FC_LONG */
- 0x5b, /* FC_END */
-/* 796 */
- 0x1b, /* FC_CARRAY */
- 0x1, /* 1 */
-/* 798 */ NdrFcShort( 0x2 ), /* 2 */
-/* 800 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
- 0x0, /* */
-/* 802 */ NdrFcShort( 0x0 ), /* 0 */
-/* 804 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 806 */ 0x6, /* FC_SHORT */
- 0x5b, /* FC_END */
-/* 808 */
- 0x16, /* FC_PSTRUCT */
- 0x3, /* 3 */
-/* 810 */ NdrFcShort( 0x8 ), /* 8 */
-/* 812 */
- 0x4b, /* FC_PP */
- 0x5c, /* FC_PAD */
-/* 814 */
- 0x46, /* FC_NO_REPEAT */
- 0x5c, /* FC_PAD */
-/* 816 */ NdrFcShort( 0x4 ), /* 4 */
-/* 818 */ NdrFcShort( 0x4 ), /* 4 */
-/* 820 */ 0x13, 0x0, /* FC_OP */
-/* 822 */ NdrFcShort( 0xffe6 ), /* Offset= -26 (796) */
-/* 824 */
- 0x5b, /* FC_END */
-
- 0x8, /* FC_LONG */
-/* 826 */ 0x8, /* FC_LONG */
- 0x5b, /* FC_END */
-/* 828 */
- 0x1b, /* FC_CARRAY */
- 0x3, /* 3 */
-/* 830 */ NdrFcShort( 0x4 ), /* 4 */
-/* 832 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
- 0x0, /* */
-/* 834 */ NdrFcShort( 0x0 ), /* 0 */
-/* 836 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 838 */ 0x8, /* FC_LONG */
- 0x5b, /* FC_END */
-/* 840 */
- 0x16, /* FC_PSTRUCT */
- 0x3, /* 3 */
-/* 842 */ NdrFcShort( 0x8 ), /* 8 */
-/* 844 */
- 0x4b, /* FC_PP */
- 0x5c, /* FC_PAD */
-/* 846 */
- 0x46, /* FC_NO_REPEAT */
- 0x5c, /* FC_PAD */
-/* 848 */ NdrFcShort( 0x4 ), /* 4 */
-/* 850 */ NdrFcShort( 0x4 ), /* 4 */
-/* 852 */ 0x13, 0x0, /* FC_OP */
-/* 854 */ NdrFcShort( 0xffe6 ), /* Offset= -26 (828) */
-/* 856 */
- 0x5b, /* FC_END */
-
- 0x8, /* FC_LONG */
-/* 858 */ 0x8, /* FC_LONG */
- 0x5b, /* FC_END */
-/* 860 */
- 0x1b, /* FC_CARRAY */
- 0x7, /* 7 */
-/* 862 */ NdrFcShort( 0x8 ), /* 8 */
-/* 864 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
- 0x0, /* */
-/* 866 */ NdrFcShort( 0x0 ), /* 0 */
-/* 868 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 870 */ 0xb, /* FC_HYPER */
- 0x5b, /* FC_END */
-/* 872 */
- 0x16, /* FC_PSTRUCT */
- 0x3, /* 3 */
-/* 874 */ NdrFcShort( 0x8 ), /* 8 */
-/* 876 */
- 0x4b, /* FC_PP */
- 0x5c, /* FC_PAD */
-/* 878 */
- 0x46, /* FC_NO_REPEAT */
- 0x5c, /* FC_PAD */
-/* 880 */ NdrFcShort( 0x4 ), /* 4 */
-/* 882 */ NdrFcShort( 0x4 ), /* 4 */
-/* 884 */ 0x13, 0x0, /* FC_OP */
-/* 886 */ NdrFcShort( 0xffe6 ), /* Offset= -26 (860) */
-/* 888 */
- 0x5b, /* FC_END */
-
- 0x8, /* FC_LONG */
-/* 890 */ 0x8, /* FC_LONG */
- 0x5b, /* FC_END */
-/* 892 */
- 0x15, /* FC_STRUCT */
- 0x3, /* 3 */
-/* 894 */ NdrFcShort( 0x8 ), /* 8 */
-/* 896 */ 0x8, /* FC_LONG */
- 0x8, /* FC_LONG */
-/* 898 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-/* 900 */
- 0x1b, /* FC_CARRAY */
- 0x3, /* 3 */
-/* 902 */ NdrFcShort( 0x8 ), /* 8 */
-/* 904 */ 0x7, /* Corr desc: FC_USHORT */
- 0x0, /* */
-/* 906 */ NdrFcShort( 0xffd8 ), /* -40 */
-/* 908 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 910 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
- 0x0, /* 0 */
-/* 912 */ NdrFcShort( 0xffec ), /* Offset= -20 (892) */
-/* 914 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-/* 916 */
- 0x1a, /* FC_BOGUS_STRUCT */
- 0x3, /* 3 */
-/* 918 */ NdrFcShort( 0x28 ), /* 40 */
-/* 920 */ NdrFcShort( 0xffec ), /* Offset= -20 (900) */
-/* 922 */ NdrFcShort( 0x0 ), /* Offset= 0 (922) */
-/* 924 */ 0x6, /* FC_SHORT */
- 0x6, /* FC_SHORT */
-/* 926 */ 0x8, /* FC_LONG */
- 0x8, /* FC_LONG */
-/* 928 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
- 0x0, /* 0 */
-/* 930 */ NdrFcShort( 0xfdde ), /* Offset= -546 (384) */
-/* 932 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-/* 934 */
- 0x13, 0x0, /* FC_OP */
-/* 936 */ NdrFcShort( 0xfeea ), /* Offset= -278 (658) */
-/* 938 */
- 0x13, 0x8, /* FC_OP [simple_pointer] */
-/* 940 */ 0x1, /* FC_BYTE */
- 0x5c, /* FC_PAD */
-/* 942 */
- 0x13, 0x8, /* FC_OP [simple_pointer] */
-/* 944 */ 0x6, /* FC_SHORT */
- 0x5c, /* FC_PAD */
-/* 946 */
- 0x13, 0x8, /* FC_OP [simple_pointer] */
-/* 948 */ 0x8, /* FC_LONG */
- 0x5c, /* FC_PAD */
-/* 950 */
- 0x13, 0x8, /* FC_OP [simple_pointer] */
-/* 952 */ 0xb, /* FC_HYPER */
- 0x5c, /* FC_PAD */
-/* 954 */
- 0x13, 0x8, /* FC_OP [simple_pointer] */
-/* 956 */ 0xa, /* FC_FLOAT */
- 0x5c, /* FC_PAD */
-/* 958 */
- 0x13, 0x8, /* FC_OP [simple_pointer] */
-/* 960 */ 0xc, /* FC_DOUBLE */
- 0x5c, /* FC_PAD */
-/* 962 */
- 0x13, 0x0, /* FC_OP */
-/* 964 */ NdrFcShort( 0xfd70 ), /* Offset= -656 (308) */
-/* 966 */
- 0x13, 0x10, /* FC_OP [pointer_deref] */
-/* 968 */ NdrFcShort( 0xfd72 ), /* Offset= -654 (314) */
-/* 970 */
- 0x13, 0x10, /* FC_OP [pointer_deref] */
-/* 972 */ NdrFcShort( 0xfd88 ), /* Offset= -632 (340) */
-/* 974 */
- 0x13, 0x10, /* FC_OP [pointer_deref] */
-/* 976 */ NdrFcShort( 0xfd96 ), /* Offset= -618 (358) */
-/* 978 */
- 0x13, 0x10, /* FC_OP [pointer_deref] */
-/* 980 */ NdrFcShort( 0xfda4 ), /* Offset= -604 (376) */
-/* 982 */
- 0x13, 0x10, /* FC_OP [pointer_deref] */
-/* 984 */ NdrFcShort( 0x2 ), /* Offset= 2 (986) */
-/* 986 */
- 0x13, 0x0, /* FC_OP */
-/* 988 */ NdrFcShort( 0x14 ), /* Offset= 20 (1008) */
-/* 990 */
- 0x15, /* FC_STRUCT */
- 0x7, /* 7 */
-/* 992 */ NdrFcShort( 0x10 ), /* 16 */
-/* 994 */ 0x6, /* FC_SHORT */
- 0x1, /* FC_BYTE */
-/* 996 */ 0x1, /* FC_BYTE */
- 0x8, /* FC_LONG */
-/* 998 */ 0xb, /* FC_HYPER */
- 0x5b, /* FC_END */
-/* 1000 */
- 0x13, 0x0, /* FC_OP */
-/* 1002 */ NdrFcShort( 0xfff4 ), /* Offset= -12 (990) */
-/* 1004 */
- 0x13, 0x8, /* FC_OP [simple_pointer] */
-/* 1006 */ 0x2, /* FC_CHAR */
- 0x5c, /* FC_PAD */
-/* 1008 */
- 0x1a, /* FC_BOGUS_STRUCT */
- 0x7, /* 7 */
-/* 1010 */ NdrFcShort( 0x20 ), /* 32 */
-/* 1012 */ NdrFcShort( 0x0 ), /* 0 */
-/* 1014 */ NdrFcShort( 0x0 ), /* Offset= 0 (1014) */
-/* 1016 */ 0x8, /* FC_LONG */
- 0x8, /* FC_LONG */
-/* 1018 */ 0x6, /* FC_SHORT */
- 0x6, /* FC_SHORT */
-/* 1020 */ 0x6, /* FC_SHORT */
- 0x6, /* FC_SHORT */
-/* 1022 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
- 0x0, /* 0 */
-/* 1024 */ NdrFcShort( 0xfc0a ), /* Offset= -1014 (10) */
-/* 1026 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-/* 1028 */ 0xb4, /* FC_USER_MARSHAL */
- 0x83, /* 131 */
-/* 1030 */ NdrFcShort( 0x0 ), /* 0 */
-/* 1032 */ NdrFcShort( 0x10 ), /* 16 */
-/* 1034 */ NdrFcShort( 0x0 ), /* 0 */
-/* 1036 */ NdrFcShort( 0xfbfa ), /* Offset= -1030 (6) */
-/* 1038 */
- 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
-/* 1040 */ 0x8, /* FC_LONG */
- 0x5c, /* FC_PAD */
-/* 1042 */
- 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
-/* 1044 */ 0x3, /* FC_SMALL */
- 0x5c, /* FC_PAD */
-
- 0x0
- }
- };
-
-static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] =
- {
-
- {
- VARIANT_UserSize
- ,VARIANT_UserMarshal
- ,VARIANT_UserUnmarshal
- ,VARIANT_UserFree
- }
-
- };
-
-
-
-/* Object interface: IUnknown, ver. 0.0,
- GUID={0x00000000,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
-
-
-/* Object interface: IAccessibleAction, ver. 0.0,
- GUID={0xB70D9F59,0x3B5A,0x4dba,{0xAB,0x9E,0x22,0x01,0x2F,0x60,0x7D,0xF5}} */
-
-
-/* Object interface: IAccessibleHyperlink, ver. 0.0,
- GUID={0x01C20F2B,0x3DD2,0x400f,{0x94,0x9F,0xAD,0x00,0xBD,0xAB,0x1D,0x41}} */
-
-#pragma code_seg(".orpc")
-static const unsigned short IAccessibleHyperlink_FormatStringOffsetTable[] =
- {
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- 0,
- 42,
- 84,
- 120,
- 156
- };
-
-static const MIDL_STUBLESS_PROXY_INFO IAccessibleHyperlink_ProxyInfo =
- {
- &Object_StubDesc,
- AccessibleHyperlink__MIDL_ProcFormatString.Format,
- &IAccessibleHyperlink_FormatStringOffsetTable[-3],
- 0,
- 0,
- 0
- };
-
-
-static const MIDL_SERVER_INFO IAccessibleHyperlink_ServerInfo =
- {
- &Object_StubDesc,
- 0,
- AccessibleHyperlink__MIDL_ProcFormatString.Format,
- &IAccessibleHyperlink_FormatStringOffsetTable[-3],
- 0,
- 0,
- 0,
- 0};
-CINTERFACE_PROXY_VTABLE(14) _IAccessibleHyperlinkProxyVtbl =
-{
- &IAccessibleHyperlink_ProxyInfo,
- &IID_IAccessibleHyperlink,
- IUnknown_QueryInterface_Proxy,
- IUnknown_AddRef_Proxy,
- IUnknown_Release_Proxy ,
- 0 /* IAccessibleAction::nActions */ ,
- 0 /* IAccessibleAction::doAction */ ,
- 0 /* IAccessibleAction::get_description */ ,
- 0 /* IAccessibleAction::get_keyBinding */ ,
- 0 /* IAccessibleAction::get_name */ ,
- 0 /* IAccessibleAction::get_localizedName */ ,
- (void *) (INT_PTR) -1 /* IAccessibleHyperlink::get_anchor */ ,
- (void *) (INT_PTR) -1 /* IAccessibleHyperlink::get_anchorTarget */ ,
- (void *) (INT_PTR) -1 /* IAccessibleHyperlink::get_startIndex */ ,
- (void *) (INT_PTR) -1 /* IAccessibleHyperlink::get_endIndex */ ,
- (void *) (INT_PTR) -1 /* IAccessibleHyperlink::get_valid */
-};
-
-
-static const PRPC_STUB_FUNCTION IAccessibleHyperlink_table[] =
-{
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- NdrStubCall2,
- NdrStubCall2,
- NdrStubCall2,
- NdrStubCall2,
- NdrStubCall2
-};
-
-CInterfaceStubVtbl _IAccessibleHyperlinkStubVtbl =
-{
- &IID_IAccessibleHyperlink,
- &IAccessibleHyperlink_ServerInfo,
- 14,
- &IAccessibleHyperlink_table[-3],
- CStdStubBuffer_DELEGATING_METHODS
-};
-
-static const MIDL_STUB_DESC Object_StubDesc =
- {
- 0,
- NdrOleAllocate,
- NdrOleFree,
- 0,
- 0,
- 0,
- 0,
- 0,
- AccessibleHyperlink__MIDL_TypeFormatString.Format,
- 1, /* -error bounds_check flag */
- 0x50002, /* Ndr library version */
- 0,
- 0x700022b, /* MIDL Version 7.0.555 */
- 0,
- UserMarshalRoutines,
- 0, /* notify & notify_flag routine table */
- 0x1, /* MIDL flag */
- 0, /* cs routines */
- 0, /* proxy/server info */
- 0
- };
-
-const CInterfaceProxyVtbl * const _AccessibleHyperlink_ProxyVtblList[] =
-{
- ( CInterfaceProxyVtbl *) &_IAccessibleHyperlinkProxyVtbl,
- 0
-};
-
-const CInterfaceStubVtbl * const _AccessibleHyperlink_StubVtblList[] =
-{
- ( CInterfaceStubVtbl *) &_IAccessibleHyperlinkStubVtbl,
- 0
-};
-
-PCInterfaceName const _AccessibleHyperlink_InterfaceNamesList[] =
-{
- "IAccessibleHyperlink",
- 0
-};
-
-const IID * const _AccessibleHyperlink_BaseIIDList[] =
-{
- &IID_IAccessibleAction,
- 0
-};
-
-
-#define _AccessibleHyperlink_CHECK_IID(n) IID_GENERIC_CHECK_IID( _AccessibleHyperlink, pIID, n)
-
-int __stdcall _AccessibleHyperlink_IID_Lookup( const IID * pIID, int * pIndex )
-{
-
- if(!_AccessibleHyperlink_CHECK_IID(0))
- {
- *pIndex = 0;
- return 1;
- }
-
- return 0;
-}
-
-const ExtendedProxyFileInfo AccessibleHyperlink_ProxyFileInfo =
-{
- (PCInterfaceProxyVtblList *) & _AccessibleHyperlink_ProxyVtblList,
- (PCInterfaceStubVtblList *) & _AccessibleHyperlink_StubVtblList,
- (const PCInterfaceName * ) & _AccessibleHyperlink_InterfaceNamesList,
- (const IID ** ) & _AccessibleHyperlink_BaseIIDList,
- & _AccessibleHyperlink_IID_Lookup,
- 1,
- 2,
- 0, /* table of [async_uuid] interfaces */
- 0, /* Filler1 */
- 0, /* Filler2 */
- 0 /* Filler3 */
-};
-#pragma optimize("", on )
-#if _MSC_VER >= 1200
-#pragma warning(pop)
-#endif
-
-
-#endif /* !defined(_M_IA64) && !defined(_M_AMD64)*/
-
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleHypertext.h b/src/3rdparty/iaccessible2/generated/x86/AccessibleHypertext.h
deleted file mode 100644
index 180fb394b6..0000000000
--- a/src/3rdparty/iaccessible2/generated/x86/AccessibleHypertext.h
+++ /dev/null
@@ -1,349 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the definitions for the interfaces */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:53 2012
- */
-/* Compiler settings for AccessibleHypertext.idl:
- Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-
-
-/* verify that the <rpcndr.h> version is high enough to compile this file*/
-#ifndef __REQUIRED_RPCNDR_H_VERSION__
-#define __REQUIRED_RPCNDR_H_VERSION__ 475
-#endif
-
-#include "rpc.h"
-#include "rpcndr.h"
-
-#ifndef __RPCNDR_H_VERSION__
-#error this stub requires an updated version of <rpcndr.h>
-#endif // __RPCNDR_H_VERSION__
-
-#ifndef COM_NO_WINDOWS_H
-#include "windows.h"
-#include "ole2.h"
-#endif /*COM_NO_WINDOWS_H*/
-
-#ifndef __AccessibleHypertext_h__
-#define __AccessibleHypertext_h__
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-#pragma once
-#endif
-
-/* Forward Declarations */
-
-#ifndef __IAccessibleHypertext_FWD_DEFINED__
-#define __IAccessibleHypertext_FWD_DEFINED__
-typedef interface IAccessibleHypertext IAccessibleHypertext;
-#endif /* __IAccessibleHypertext_FWD_DEFINED__ */
-
-
-/* header files for imported files */
-#include "objidl.h"
-#include "oaidl.h"
-#include "oleacc.h"
-#include "AccessibleText.h"
-#include "AccessibleHyperlink.h"
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-
-#ifndef __IAccessibleHypertext_INTERFACE_DEFINED__
-#define __IAccessibleHypertext_INTERFACE_DEFINED__
-
-/* interface IAccessibleHypertext */
-/* [uuid][object] */
-
-
-EXTERN_C const IID IID_IAccessibleHypertext;
-
-#if defined(__cplusplus) && !defined(CINTERFACE)
-
- MIDL_INTERFACE("6B4F8BBF-F1F2-418a-B35E-A195BC4103B9")
- IAccessibleHypertext : public IAccessibleText
- {
- public:
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nHyperlinks(
- /* [retval][out] */ long *hyperlinkCount) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_hyperlink(
- /* [in] */ long index,
- /* [retval][out] */ IAccessibleHyperlink **hyperlink) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_hyperlinkIndex(
- /* [in] */ long charIndex,
- /* [retval][out] */ long *hyperlinkIndex) = 0;
-
- };
-
-#else /* C style interface */
-
- typedef struct IAccessibleHypertextVtbl
- {
- BEGIN_INTERFACE
-
- HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
- IAccessibleHypertext * This,
- /* [in] */ REFIID riid,
- /* [annotation][iid_is][out] */
- __RPC__deref_out void **ppvObject);
-
- ULONG ( STDMETHODCALLTYPE *AddRef )(
- IAccessibleHypertext * This);
-
- ULONG ( STDMETHODCALLTYPE *Release )(
- IAccessibleHypertext * This);
-
- HRESULT ( STDMETHODCALLTYPE *addSelection )(
- IAccessibleHypertext * This,
- /* [in] */ long startOffset,
- /* [in] */ long endOffset);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )(
- IAccessibleHypertext * This,
- /* [in] */ long offset,
- /* [out] */ long *startOffset,
- /* [out] */ long *endOffset,
- /* [retval][out] */ BSTR *textAttributes);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_caretOffset )(
- IAccessibleHypertext * This,
- /* [retval][out] */ long *offset);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_characterExtents )(
- IAccessibleHypertext * This,
- /* [in] */ long offset,
- /* [in] */ enum IA2CoordinateType coordType,
- /* [out] */ long *x,
- /* [out] */ long *y,
- /* [out] */ long *width,
- /* [retval][out] */ long *height);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelections )(
- IAccessibleHypertext * This,
- /* [retval][out] */ long *nSelections);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_offsetAtPoint )(
- IAccessibleHypertext * This,
- /* [in] */ long x,
- /* [in] */ long y,
- /* [in] */ enum IA2CoordinateType coordType,
- /* [retval][out] */ long *offset);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selection )(
- IAccessibleHypertext * This,
- /* [in] */ long selectionIndex,
- /* [out] */ long *startOffset,
- /* [retval][out] */ long *endOffset);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_text )(
- IAccessibleHypertext * This,
- /* [in] */ long startOffset,
- /* [in] */ long endOffset,
- /* [retval][out] */ BSTR *text);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textBeforeOffset )(
- IAccessibleHypertext * This,
- /* [in] */ long offset,
- /* [in] */ enum IA2TextBoundaryType boundaryType,
- /* [out] */ long *startOffset,
- /* [out] */ long *endOffset,
- /* [retval][out] */ BSTR *text);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAfterOffset )(
- IAccessibleHypertext * This,
- /* [in] */ long offset,
- /* [in] */ enum IA2TextBoundaryType boundaryType,
- /* [out] */ long *startOffset,
- /* [out] */ long *endOffset,
- /* [retval][out] */ BSTR *text);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAtOffset )(
- IAccessibleHypertext * This,
- /* [in] */ long offset,
- /* [in] */ enum IA2TextBoundaryType boundaryType,
- /* [out] */ long *startOffset,
- /* [out] */ long *endOffset,
- /* [retval][out] */ BSTR *text);
-
- HRESULT ( STDMETHODCALLTYPE *removeSelection )(
- IAccessibleHypertext * This,
- /* [in] */ long selectionIndex);
-
- HRESULT ( STDMETHODCALLTYPE *setCaretOffset )(
- IAccessibleHypertext * This,
- /* [in] */ long offset);
-
- HRESULT ( STDMETHODCALLTYPE *setSelection )(
- IAccessibleHypertext * This,
- /* [in] */ long selectionIndex,
- /* [in] */ long startOffset,
- /* [in] */ long endOffset);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nCharacters )(
- IAccessibleHypertext * This,
- /* [retval][out] */ long *nCharacters);
-
- HRESULT ( STDMETHODCALLTYPE *scrollSubstringTo )(
- IAccessibleHypertext * This,
- /* [in] */ long startIndex,
- /* [in] */ long endIndex,
- /* [in] */ enum IA2ScrollType scrollType);
-
- HRESULT ( STDMETHODCALLTYPE *scrollSubstringToPoint )(
- IAccessibleHypertext * This,
- /* [in] */ long startIndex,
- /* [in] */ long endIndex,
- /* [in] */ enum IA2CoordinateType coordinateType,
- /* [in] */ long x,
- /* [in] */ long y);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_newText )(
- IAccessibleHypertext * This,
- /* [retval][out] */ IA2TextSegment *newText);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_oldText )(
- IAccessibleHypertext * This,
- /* [retval][out] */ IA2TextSegment *oldText);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nHyperlinks )(
- IAccessibleHypertext * This,
- /* [retval][out] */ long *hyperlinkCount);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_hyperlink )(
- IAccessibleHypertext * This,
- /* [in] */ long index,
- /* [retval][out] */ IAccessibleHyperlink **hyperlink);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_hyperlinkIndex )(
- IAccessibleHypertext * This,
- /* [in] */ long charIndex,
- /* [retval][out] */ long *hyperlinkIndex);
-
- END_INTERFACE
- } IAccessibleHypertextVtbl;
-
- interface IAccessibleHypertext
- {
- CONST_VTBL struct IAccessibleHypertextVtbl *lpVtbl;
- };
-
-
-
-#ifdef COBJMACROS
-
-
-#define IAccessibleHypertext_QueryInterface(This,riid,ppvObject) \
- ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
-
-#define IAccessibleHypertext_AddRef(This) \
- ( (This)->lpVtbl -> AddRef(This) )
-
-#define IAccessibleHypertext_Release(This) \
- ( (This)->lpVtbl -> Release(This) )
-
-
-#define IAccessibleHypertext_addSelection(This,startOffset,endOffset) \
- ( (This)->lpVtbl -> addSelection(This,startOffset,endOffset) )
-
-#define IAccessibleHypertext_get_attributes(This,offset,startOffset,endOffset,textAttributes) \
- ( (This)->lpVtbl -> get_attributes(This,offset,startOffset,endOffset,textAttributes) )
-
-#define IAccessibleHypertext_get_caretOffset(This,offset) \
- ( (This)->lpVtbl -> get_caretOffset(This,offset) )
-
-#define IAccessibleHypertext_get_characterExtents(This,offset,coordType,x,y,width,height) \
- ( (This)->lpVtbl -> get_characterExtents(This,offset,coordType,x,y,width,height) )
-
-#define IAccessibleHypertext_get_nSelections(This,nSelections) \
- ( (This)->lpVtbl -> get_nSelections(This,nSelections) )
-
-#define IAccessibleHypertext_get_offsetAtPoint(This,x,y,coordType,offset) \
- ( (This)->lpVtbl -> get_offsetAtPoint(This,x,y,coordType,offset) )
-
-#define IAccessibleHypertext_get_selection(This,selectionIndex,startOffset,endOffset) \
- ( (This)->lpVtbl -> get_selection(This,selectionIndex,startOffset,endOffset) )
-
-#define IAccessibleHypertext_get_text(This,startOffset,endOffset,text) \
- ( (This)->lpVtbl -> get_text(This,startOffset,endOffset,text) )
-
-#define IAccessibleHypertext_get_textBeforeOffset(This,offset,boundaryType,startOffset,endOffset,text) \
- ( (This)->lpVtbl -> get_textBeforeOffset(This,offset,boundaryType,startOffset,endOffset,text) )
-
-#define IAccessibleHypertext_get_textAfterOffset(This,offset,boundaryType,startOffset,endOffset,text) \
- ( (This)->lpVtbl -> get_textAfterOffset(This,offset,boundaryType,startOffset,endOffset,text) )
-
-#define IAccessibleHypertext_get_textAtOffset(This,offset,boundaryType,startOffset,endOffset,text) \
- ( (This)->lpVtbl -> get_textAtOffset(This,offset,boundaryType,startOffset,endOffset,text) )
-
-#define IAccessibleHypertext_removeSelection(This,selectionIndex) \
- ( (This)->lpVtbl -> removeSelection(This,selectionIndex) )
-
-#define IAccessibleHypertext_setCaretOffset(This,offset) \
- ( (This)->lpVtbl -> setCaretOffset(This,offset) )
-
-#define IAccessibleHypertext_setSelection(This,selectionIndex,startOffset,endOffset) \
- ( (This)->lpVtbl -> setSelection(This,selectionIndex,startOffset,endOffset) )
-
-#define IAccessibleHypertext_get_nCharacters(This,nCharacters) \
- ( (This)->lpVtbl -> get_nCharacters(This,nCharacters) )
-
-#define IAccessibleHypertext_scrollSubstringTo(This,startIndex,endIndex,scrollType) \
- ( (This)->lpVtbl -> scrollSubstringTo(This,startIndex,endIndex,scrollType) )
-
-#define IAccessibleHypertext_scrollSubstringToPoint(This,startIndex,endIndex,coordinateType,x,y) \
- ( (This)->lpVtbl -> scrollSubstringToPoint(This,startIndex,endIndex,coordinateType,x,y) )
-
-#define IAccessibleHypertext_get_newText(This,newText) \
- ( (This)->lpVtbl -> get_newText(This,newText) )
-
-#define IAccessibleHypertext_get_oldText(This,oldText) \
- ( (This)->lpVtbl -> get_oldText(This,oldText) )
-
-
-#define IAccessibleHypertext_get_nHyperlinks(This,hyperlinkCount) \
- ( (This)->lpVtbl -> get_nHyperlinks(This,hyperlinkCount) )
-
-#define IAccessibleHypertext_get_hyperlink(This,index,hyperlink) \
- ( (This)->lpVtbl -> get_hyperlink(This,index,hyperlink) )
-
-#define IAccessibleHypertext_get_hyperlinkIndex(This,charIndex,hyperlinkIndex) \
- ( (This)->lpVtbl -> get_hyperlinkIndex(This,charIndex,hyperlinkIndex) )
-
-#endif /* COBJMACROS */
-
-
-#endif /* C style interface */
-
-
-
-
-#endif /* __IAccessibleHypertext_INTERFACE_DEFINED__ */
-
-
-/* Additional Prototypes for ALL interfaces */
-
-/* end of Additional Prototypes */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleHypertext_i.c b/src/3rdparty/iaccessible2/generated/x86/AccessibleHypertext_i.c
deleted file mode 100644
index e6edec9fe7..0000000000
--- a/src/3rdparty/iaccessible2/generated/x86/AccessibleHypertext_i.c
+++ /dev/null
@@ -1,79 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
-
-/* link this file in with the server and any clients */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:53 2012
- */
-/* Compiler settings for AccessibleHypertext.idl:
- Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-
-#include <rpc.h>
-#include <rpcndr.h>
-
-#ifdef _MIDL_USE_GUIDDEF_
-
-#ifndef INITGUID
-#define INITGUID
-#include <guiddef.h>
-#undef INITGUID
-#else
-#include <guiddef.h>
-#endif
-
-#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
- DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
-
-#else // !_MIDL_USE_GUIDDEF_
-
-#ifndef __IID_DEFINED__
-#define __IID_DEFINED__
-
-typedef struct _IID
-{
- unsigned long x;
- unsigned short s1;
- unsigned short s2;
- unsigned char c[8];
-} IID;
-
-#endif // __IID_DEFINED__
-
-#ifndef CLSID_DEFINED
-#define CLSID_DEFINED
-typedef IID CLSID;
-#endif // CLSID_DEFINED
-
-#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
- const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
-
-#endif !_MIDL_USE_GUIDDEF_
-
-MIDL_DEFINE_GUID(IID, IID_IAccessibleHypertext,0x6B4F8BBF,0xF1F2,0x418a,0xB3,0x5E,0xA1,0x95,0xBC,0x41,0x03,0xB9);
-
-#undef MIDL_DEFINE_GUID
-
-#ifdef __cplusplus
-}
-#endif
-
-
-
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleHypertext_p.c b/src/3rdparty/iaccessible2/generated/x86/AccessibleHypertext_p.c
deleted file mode 100644
index 40eddde608..0000000000
--- a/src/3rdparty/iaccessible2/generated/x86/AccessibleHypertext_p.c
+++ /dev/null
@@ -1,463 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the proxy stub code */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:53 2012
- */
-/* Compiler settings for AccessibleHypertext.idl:
- Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#if !defined(_M_IA64) && !defined(_M_AMD64)
-
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-#if _MSC_VER >= 1200
-#pragma warning(push)
-#endif
-
-#pragma warning( disable: 4211 ) /* redefine extern to static */
-#pragma warning( disable: 4232 ) /* dllimport identity*/
-#pragma warning( disable: 4024 ) /* array to pointer mapping*/
-#pragma warning( disable: 4152 ) /* function/data pointer conversion in expression */
-#pragma warning( disable: 4100 ) /* unreferenced arguments in x86 call */
-
-#pragma optimize("", off )
-
-#define USE_STUBLESS_PROXY
-
-
-/* verify that the <rpcproxy.h> version is high enough to compile this file*/
-#ifndef __REDQ_RPCPROXY_H_VERSION__
-#define __REQUIRED_RPCPROXY_H_VERSION__ 475
-#endif
-
-
-#include "rpcproxy.h"
-#ifndef __RPCPROXY_H_VERSION__
-#error this stub requires an updated version of <rpcproxy.h>
-#endif /* __RPCPROXY_H_VERSION__ */
-
-
-#include "AccessibleHypertext.h"
-
-#define TYPE_FORMAT_STRING_SIZE 29
-#define PROC_FORMAT_STRING_SIZE 121
-#define EXPR_FORMAT_STRING_SIZE 1
-#define TRANSMIT_AS_TABLE_SIZE 0
-#define WIRE_MARSHAL_TABLE_SIZE 0
-
-typedef struct _AccessibleHypertext_MIDL_TYPE_FORMAT_STRING
- {
- short Pad;
- unsigned char Format[ TYPE_FORMAT_STRING_SIZE ];
- } AccessibleHypertext_MIDL_TYPE_FORMAT_STRING;
-
-typedef struct _AccessibleHypertext_MIDL_PROC_FORMAT_STRING
- {
- short Pad;
- unsigned char Format[ PROC_FORMAT_STRING_SIZE ];
- } AccessibleHypertext_MIDL_PROC_FORMAT_STRING;
-
-typedef struct _AccessibleHypertext_MIDL_EXPR_FORMAT_STRING
- {
- long Pad;
- unsigned char Format[ EXPR_FORMAT_STRING_SIZE ];
- } AccessibleHypertext_MIDL_EXPR_FORMAT_STRING;
-
-
-static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax =
-{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}};
-
-
-extern const AccessibleHypertext_MIDL_TYPE_FORMAT_STRING AccessibleHypertext__MIDL_TypeFormatString;
-extern const AccessibleHypertext_MIDL_PROC_FORMAT_STRING AccessibleHypertext__MIDL_ProcFormatString;
-extern const AccessibleHypertext_MIDL_EXPR_FORMAT_STRING AccessibleHypertext__MIDL_ExprFormatString;
-
-
-extern const MIDL_STUB_DESC Object_StubDesc;
-
-
-extern const MIDL_SERVER_INFO IAccessibleHypertext_ServerInfo;
-extern const MIDL_STUBLESS_PROXY_INFO IAccessibleHypertext_ProxyInfo;
-
-
-
-#if !defined(__RPC_WIN32__)
-#error Invalid build platform for this stub.
-#endif
-
-#if !(TARGET_IS_NT50_OR_LATER)
-#error You need Windows 2000 or later to run this stub because it uses these features:
-#error /robust command line switch.
-#error However, your C/C++ compilation flags indicate you intend to run this app on earlier systems.
-#error This app will fail with the RPC_X_WRONG_STUB_VERSION error.
-#endif
-
-
-static const AccessibleHypertext_MIDL_PROC_FORMAT_STRING AccessibleHypertext__MIDL_ProcFormatString =
- {
- 0,
- {
-
- /* Procedure get_nHyperlinks */
-
- 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 2 */ NdrFcLong( 0x0 ), /* 0 */
-/* 6 */ NdrFcShort( 0x16 ), /* 22 */
-/* 8 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 10 */ NdrFcShort( 0x0 ), /* 0 */
-/* 12 */ NdrFcShort( 0x24 ), /* 36 */
-/* 14 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 16 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 18 */ NdrFcShort( 0x0 ), /* 0 */
-/* 20 */ NdrFcShort( 0x0 ), /* 0 */
-/* 22 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter hyperlinkCount */
-
-/* 24 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 26 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 28 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 30 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 32 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 34 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_hyperlink */
-
-/* 36 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 38 */ NdrFcLong( 0x0 ), /* 0 */
-/* 42 */ NdrFcShort( 0x17 ), /* 23 */
-/* 44 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
-/* 46 */ NdrFcShort( 0x8 ), /* 8 */
-/* 48 */ NdrFcShort( 0x8 ), /* 8 */
-/* 50 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x3, /* 3 */
-/* 52 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 54 */ NdrFcShort( 0x0 ), /* 0 */
-/* 56 */ NdrFcShort( 0x0 ), /* 0 */
-/* 58 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter index */
-
-/* 60 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 62 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 64 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter hyperlink */
-
-/* 66 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
-/* 68 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 70 */ NdrFcShort( 0x6 ), /* Type Offset=6 */
-
- /* Return value */
-
-/* 72 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 74 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 76 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_hyperlinkIndex */
-
-/* 78 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 80 */ NdrFcLong( 0x0 ), /* 0 */
-/* 84 */ NdrFcShort( 0x18 ), /* 24 */
-/* 86 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
-/* 88 */ NdrFcShort( 0x8 ), /* 8 */
-/* 90 */ NdrFcShort( 0x24 ), /* 36 */
-/* 92 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x3, /* 3 */
-/* 94 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 96 */ NdrFcShort( 0x0 ), /* 0 */
-/* 98 */ NdrFcShort( 0x0 ), /* 0 */
-/* 100 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter charIndex */
-
-/* 102 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 104 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 106 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter hyperlinkIndex */
-
-/* 108 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 110 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 112 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 114 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 116 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 118 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- 0x0
- }
- };
-
-static const AccessibleHypertext_MIDL_TYPE_FORMAT_STRING AccessibleHypertext__MIDL_TypeFormatString =
- {
- 0,
- {
- NdrFcShort( 0x0 ), /* 0 */
-/* 2 */
- 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
-/* 4 */ 0x8, /* FC_LONG */
- 0x5c, /* FC_PAD */
-/* 6 */
- 0x11, 0x10, /* FC_RP [pointer_deref] */
-/* 8 */ NdrFcShort( 0x2 ), /* Offset= 2 (10) */
-/* 10 */
- 0x2f, /* FC_IP */
- 0x5a, /* FC_CONSTANT_IID */
-/* 12 */ NdrFcLong( 0x1c20f2b ), /* 29495083 */
-/* 16 */ NdrFcShort( 0x3dd2 ), /* 15826 */
-/* 18 */ NdrFcShort( 0x400f ), /* 16399 */
-/* 20 */ 0x94, /* 148 */
- 0x9f, /* 159 */
-/* 22 */ 0xad, /* 173 */
- 0x0, /* 0 */
-/* 24 */ 0xbd, /* 189 */
- 0xab, /* 171 */
-/* 26 */ 0x1d, /* 29 */
- 0x41, /* 65 */
-
- 0x0
- }
- };
-
-
-/* Object interface: IUnknown, ver. 0.0,
- GUID={0x00000000,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
-
-
-/* Object interface: IAccessibleText, ver. 0.0,
- GUID={0x24FD2FFB,0x3AAD,0x4a08,{0x83,0x35,0xA3,0xAD,0x89,0xC0,0xFB,0x4B}} */
-
-
-/* Object interface: IAccessibleHypertext, ver. 0.0,
- GUID={0x6B4F8BBF,0xF1F2,0x418a,{0xB3,0x5E,0xA1,0x95,0xBC,0x41,0x03,0xB9}} */
-
-#pragma code_seg(".orpc")
-static const unsigned short IAccessibleHypertext_FormatStringOffsetTable[] =
- {
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- (unsigned short) -1,
- 0,
- 36,
- 78
- };
-
-static const MIDL_STUBLESS_PROXY_INFO IAccessibleHypertext_ProxyInfo =
- {
- &Object_StubDesc,
- AccessibleHypertext__MIDL_ProcFormatString.Format,
- &IAccessibleHypertext_FormatStringOffsetTable[-3],
- 0,
- 0,
- 0
- };
-
-
-static const MIDL_SERVER_INFO IAccessibleHypertext_ServerInfo =
- {
- &Object_StubDesc,
- 0,
- AccessibleHypertext__MIDL_ProcFormatString.Format,
- &IAccessibleHypertext_FormatStringOffsetTable[-3],
- 0,
- 0,
- 0,
- 0};
-CINTERFACE_PROXY_VTABLE(25) _IAccessibleHypertextProxyVtbl =
-{
- &IAccessibleHypertext_ProxyInfo,
- &IID_IAccessibleHypertext,
- IUnknown_QueryInterface_Proxy,
- IUnknown_AddRef_Proxy,
- IUnknown_Release_Proxy ,
- 0 /* IAccessibleText::addSelection */ ,
- 0 /* IAccessibleText::get_attributes */ ,
- 0 /* IAccessibleText::get_caretOffset */ ,
- 0 /* IAccessibleText::get_characterExtents */ ,
- 0 /* IAccessibleText::get_nSelections */ ,
- 0 /* IAccessibleText::get_offsetAtPoint */ ,
- 0 /* IAccessibleText::get_selection */ ,
- 0 /* IAccessibleText::get_text */ ,
- 0 /* IAccessibleText::get_textBeforeOffset */ ,
- 0 /* IAccessibleText::get_textAfterOffset */ ,
- 0 /* IAccessibleText::get_textAtOffset */ ,
- 0 /* IAccessibleText::removeSelection */ ,
- 0 /* IAccessibleText::setCaretOffset */ ,
- 0 /* IAccessibleText::setSelection */ ,
- 0 /* IAccessibleText::get_nCharacters */ ,
- 0 /* IAccessibleText::scrollSubstringTo */ ,
- 0 /* IAccessibleText::scrollSubstringToPoint */ ,
- 0 /* IAccessibleText::get_newText */ ,
- 0 /* IAccessibleText::get_oldText */ ,
- (void *) (INT_PTR) -1 /* IAccessibleHypertext::get_nHyperlinks */ ,
- (void *) (INT_PTR) -1 /* IAccessibleHypertext::get_hyperlink */ ,
- (void *) (INT_PTR) -1 /* IAccessibleHypertext::get_hyperlinkIndex */
-};
-
-
-static const PRPC_STUB_FUNCTION IAccessibleHypertext_table[] =
-{
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- STUB_FORWARDING_FUNCTION,
- NdrStubCall2,
- NdrStubCall2,
- NdrStubCall2
-};
-
-CInterfaceStubVtbl _IAccessibleHypertextStubVtbl =
-{
- &IID_IAccessibleHypertext,
- &IAccessibleHypertext_ServerInfo,
- 25,
- &IAccessibleHypertext_table[-3],
- CStdStubBuffer_DELEGATING_METHODS
-};
-
-static const MIDL_STUB_DESC Object_StubDesc =
- {
- 0,
- NdrOleAllocate,
- NdrOleFree,
- 0,
- 0,
- 0,
- 0,
- 0,
- AccessibleHypertext__MIDL_TypeFormatString.Format,
- 1, /* -error bounds_check flag */
- 0x50002, /* Ndr library version */
- 0,
- 0x700022b, /* MIDL Version 7.0.555 */
- 0,
- 0,
- 0, /* notify & notify_flag routine table */
- 0x1, /* MIDL flag */
- 0, /* cs routines */
- 0, /* proxy/server info */
- 0
- };
-
-const CInterfaceProxyVtbl * const _AccessibleHypertext_ProxyVtblList[] =
-{
- ( CInterfaceProxyVtbl *) &_IAccessibleHypertextProxyVtbl,
- 0
-};
-
-const CInterfaceStubVtbl * const _AccessibleHypertext_StubVtblList[] =
-{
- ( CInterfaceStubVtbl *) &_IAccessibleHypertextStubVtbl,
- 0
-};
-
-PCInterfaceName const _AccessibleHypertext_InterfaceNamesList[] =
-{
- "IAccessibleHypertext",
- 0
-};
-
-const IID * const _AccessibleHypertext_BaseIIDList[] =
-{
- &IID_IAccessibleText,
- 0
-};
-
-
-#define _AccessibleHypertext_CHECK_IID(n) IID_GENERIC_CHECK_IID( _AccessibleHypertext, pIID, n)
-
-int __stdcall _AccessibleHypertext_IID_Lookup( const IID * pIID, int * pIndex )
-{
-
- if(!_AccessibleHypertext_CHECK_IID(0))
- {
- *pIndex = 0;
- return 1;
- }
-
- return 0;
-}
-
-const ExtendedProxyFileInfo AccessibleHypertext_ProxyFileInfo =
-{
- (PCInterfaceProxyVtblList *) & _AccessibleHypertext_ProxyVtblList,
- (PCInterfaceStubVtblList *) & _AccessibleHypertext_StubVtblList,
- (const PCInterfaceName * ) & _AccessibleHypertext_InterfaceNamesList,
- (const IID ** ) & _AccessibleHypertext_BaseIIDList,
- & _AccessibleHypertext_IID_Lookup,
- 1,
- 2,
- 0, /* table of [async_uuid] interfaces */
- 0, /* Filler1 */
- 0, /* Filler2 */
- 0 /* Filler3 */
-};
-#pragma optimize("", on )
-#if _MSC_VER >= 1200
-#pragma warning(pop)
-#endif
-
-
-#endif /* !defined(_M_IA64) && !defined(_M_AMD64)*/
-
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleImage.h b/src/3rdparty/iaccessible2/generated/x86/AccessibleImage.h
deleted file mode 100644
index d240bb6156..0000000000
--- a/src/3rdparty/iaccessible2/generated/x86/AccessibleImage.h
+++ /dev/null
@@ -1,185 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the definitions for the interfaces */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:53 2012
- */
-/* Compiler settings for AccessibleImage.idl:
- Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-
-
-/* verify that the <rpcndr.h> version is high enough to compile this file*/
-#ifndef __REQUIRED_RPCNDR_H_VERSION__
-#define __REQUIRED_RPCNDR_H_VERSION__ 475
-#endif
-
-#include "rpc.h"
-#include "rpcndr.h"
-
-#ifndef __RPCNDR_H_VERSION__
-#error this stub requires an updated version of <rpcndr.h>
-#endif // __RPCNDR_H_VERSION__
-
-#ifndef COM_NO_WINDOWS_H
-#include "windows.h"
-#include "ole2.h"
-#endif /*COM_NO_WINDOWS_H*/
-
-#ifndef __AccessibleImage_h__
-#define __AccessibleImage_h__
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-#pragma once
-#endif
-
-/* Forward Declarations */
-
-#ifndef __IAccessibleImage_FWD_DEFINED__
-#define __IAccessibleImage_FWD_DEFINED__
-typedef interface IAccessibleImage IAccessibleImage;
-#endif /* __IAccessibleImage_FWD_DEFINED__ */
-
-
-/* header files for imported files */
-#include "objidl.h"
-#include "oaidl.h"
-#include "oleacc.h"
-#include "IA2CommonTypes.h"
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-
-#ifndef __IAccessibleImage_INTERFACE_DEFINED__
-#define __IAccessibleImage_INTERFACE_DEFINED__
-
-/* interface IAccessibleImage */
-/* [uuid][object] */
-
-
-EXTERN_C const IID IID_IAccessibleImage;
-
-#if defined(__cplusplus) && !defined(CINTERFACE)
-
- MIDL_INTERFACE("FE5ABB3D-615E-4f7b-909F-5F0EDA9E8DDE")
- IAccessibleImage : public IUnknown
- {
- public:
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_description(
- /* [retval][out] */ BSTR *description) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_imagePosition(
- /* [in] */ enum IA2CoordinateType coordinateType,
- /* [out] */ long *x,
- /* [retval][out] */ long *y) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_imageSize(
- /* [out] */ long *height,
- /* [retval][out] */ long *width) = 0;
-
- };
-
-#else /* C style interface */
-
- typedef struct IAccessibleImageVtbl
- {
- BEGIN_INTERFACE
-
- HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
- IAccessibleImage * This,
- /* [in] */ REFIID riid,
- /* [annotation][iid_is][out] */
- __RPC__deref_out void **ppvObject);
-
- ULONG ( STDMETHODCALLTYPE *AddRef )(
- IAccessibleImage * This);
-
- ULONG ( STDMETHODCALLTYPE *Release )(
- IAccessibleImage * This);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_description )(
- IAccessibleImage * This,
- /* [retval][out] */ BSTR *description);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_imagePosition )(
- IAccessibleImage * This,
- /* [in] */ enum IA2CoordinateType coordinateType,
- /* [out] */ long *x,
- /* [retval][out] */ long *y);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_imageSize )(
- IAccessibleImage * This,
- /* [out] */ long *height,
- /* [retval][out] */ long *width);
-
- END_INTERFACE
- } IAccessibleImageVtbl;
-
- interface IAccessibleImage
- {
- CONST_VTBL struct IAccessibleImageVtbl *lpVtbl;
- };
-
-
-
-#ifdef COBJMACROS
-
-
-#define IAccessibleImage_QueryInterface(This,riid,ppvObject) \
- ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
-
-#define IAccessibleImage_AddRef(This) \
- ( (This)->lpVtbl -> AddRef(This) )
-
-#define IAccessibleImage_Release(This) \
- ( (This)->lpVtbl -> Release(This) )
-
-
-#define IAccessibleImage_get_description(This,description) \
- ( (This)->lpVtbl -> get_description(This,description) )
-
-#define IAccessibleImage_get_imagePosition(This,coordinateType,x,y) \
- ( (This)->lpVtbl -> get_imagePosition(This,coordinateType,x,y) )
-
-#define IAccessibleImage_get_imageSize(This,height,width) \
- ( (This)->lpVtbl -> get_imageSize(This,height,width) )
-
-#endif /* COBJMACROS */
-
-
-#endif /* C style interface */
-
-
-
-
-#endif /* __IAccessibleImage_INTERFACE_DEFINED__ */
-
-
-/* Additional Prototypes for ALL interfaces */
-
-unsigned long __RPC_USER BSTR_UserSize( unsigned long *, unsigned long , BSTR * );
-unsigned char * __RPC_USER BSTR_UserMarshal( unsigned long *, unsigned char *, BSTR * );
-unsigned char * __RPC_USER BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * );
-void __RPC_USER BSTR_UserFree( unsigned long *, BSTR * );
-
-/* end of Additional Prototypes */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleImage_i.c b/src/3rdparty/iaccessible2/generated/x86/AccessibleImage_i.c
deleted file mode 100644
index 37fa8696d1..0000000000
--- a/src/3rdparty/iaccessible2/generated/x86/AccessibleImage_i.c
+++ /dev/null
@@ -1,79 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
-
-/* link this file in with the server and any clients */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:53 2012
- */
-/* Compiler settings for AccessibleImage.idl:
- Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-
-#include <rpc.h>
-#include <rpcndr.h>
-
-#ifdef _MIDL_USE_GUIDDEF_
-
-#ifndef INITGUID
-#define INITGUID
-#include <guiddef.h>
-#undef INITGUID
-#else
-#include <guiddef.h>
-#endif
-
-#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
- DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
-
-#else // !_MIDL_USE_GUIDDEF_
-
-#ifndef __IID_DEFINED__
-#define __IID_DEFINED__
-
-typedef struct _IID
-{
- unsigned long x;
- unsigned short s1;
- unsigned short s2;
- unsigned char c[8];
-} IID;
-
-#endif // __IID_DEFINED__
-
-#ifndef CLSID_DEFINED
-#define CLSID_DEFINED
-typedef IID CLSID;
-#endif // CLSID_DEFINED
-
-#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
- const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
-
-#endif !_MIDL_USE_GUIDDEF_
-
-MIDL_DEFINE_GUID(IID, IID_IAccessibleImage,0xFE5ABB3D,0x615E,0x4f7b,0x90,0x9F,0x5F,0x0E,0xDA,0x9E,0x8D,0xDE);
-
-#undef MIDL_DEFINE_GUID
-
-#ifdef __cplusplus
-}
-#endif
-
-
-
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleImage_p.c b/src/3rdparty/iaccessible2/generated/x86/AccessibleImage_p.c
deleted file mode 100644
index daa8af2e29..0000000000
--- a/src/3rdparty/iaccessible2/generated/x86/AccessibleImage_p.c
+++ /dev/null
@@ -1,423 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the proxy stub code */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:53 2012
- */
-/* Compiler settings for AccessibleImage.idl:
- Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#if !defined(_M_IA64) && !defined(_M_AMD64)
-
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-#if _MSC_VER >= 1200
-#pragma warning(push)
-#endif
-
-#pragma warning( disable: 4211 ) /* redefine extern to static */
-#pragma warning( disable: 4232 ) /* dllimport identity*/
-#pragma warning( disable: 4024 ) /* array to pointer mapping*/
-#pragma warning( disable: 4152 ) /* function/data pointer conversion in expression */
-#pragma warning( disable: 4100 ) /* unreferenced arguments in x86 call */
-
-#pragma optimize("", off )
-
-#define USE_STUBLESS_PROXY
-
-
-/* verify that the <rpcproxy.h> version is high enough to compile this file*/
-#ifndef __REDQ_RPCPROXY_H_VERSION__
-#define __REQUIRED_RPCPROXY_H_VERSION__ 475
-#endif
-
-
-#include "rpcproxy.h"
-#ifndef __RPCPROXY_H_VERSION__
-#error this stub requires an updated version of <rpcproxy.h>
-#endif /* __RPCPROXY_H_VERSION__ */
-
-
-#include "AccessibleImage.h"
-
-#define TYPE_FORMAT_STRING_SIZE 47
-#define PROC_FORMAT_STRING_SIZE 127
-#define EXPR_FORMAT_STRING_SIZE 1
-#define TRANSMIT_AS_TABLE_SIZE 0
-#define WIRE_MARSHAL_TABLE_SIZE 1
-
-typedef struct _AccessibleImage_MIDL_TYPE_FORMAT_STRING
- {
- short Pad;
- unsigned char Format[ TYPE_FORMAT_STRING_SIZE ];
- } AccessibleImage_MIDL_TYPE_FORMAT_STRING;
-
-typedef struct _AccessibleImage_MIDL_PROC_FORMAT_STRING
- {
- short Pad;
- unsigned char Format[ PROC_FORMAT_STRING_SIZE ];
- } AccessibleImage_MIDL_PROC_FORMAT_STRING;
-
-typedef struct _AccessibleImage_MIDL_EXPR_FORMAT_STRING
- {
- long Pad;
- unsigned char Format[ EXPR_FORMAT_STRING_SIZE ];
- } AccessibleImage_MIDL_EXPR_FORMAT_STRING;
-
-
-static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax =
-{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}};
-
-
-extern const AccessibleImage_MIDL_TYPE_FORMAT_STRING AccessibleImage__MIDL_TypeFormatString;
-extern const AccessibleImage_MIDL_PROC_FORMAT_STRING AccessibleImage__MIDL_ProcFormatString;
-extern const AccessibleImage_MIDL_EXPR_FORMAT_STRING AccessibleImage__MIDL_ExprFormatString;
-
-
-extern const MIDL_STUB_DESC Object_StubDesc;
-
-
-extern const MIDL_SERVER_INFO IAccessibleImage_ServerInfo;
-extern const MIDL_STUBLESS_PROXY_INFO IAccessibleImage_ProxyInfo;
-
-
-extern const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ];
-
-#if !defined(__RPC_WIN32__)
-#error Invalid build platform for this stub.
-#endif
-
-#if !(TARGET_IS_NT50_OR_LATER)
-#error You need Windows 2000 or later to run this stub because it uses these features:
-#error /robust command line switch.
-#error However, your C/C++ compilation flags indicate you intend to run this app on earlier systems.
-#error This app will fail with the RPC_X_WRONG_STUB_VERSION error.
-#endif
-
-
-static const AccessibleImage_MIDL_PROC_FORMAT_STRING AccessibleImage__MIDL_ProcFormatString =
- {
- 0,
- {
-
- /* Procedure get_description */
-
- 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 2 */ NdrFcLong( 0x0 ), /* 0 */
-/* 6 */ NdrFcShort( 0x3 ), /* 3 */
-/* 8 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 10 */ NdrFcShort( 0x0 ), /* 0 */
-/* 12 */ NdrFcShort( 0x8 ), /* 8 */
-/* 14 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x2, /* 2 */
-/* 16 */ 0x8, /* 8 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 18 */ NdrFcShort( 0x1 ), /* 1 */
-/* 20 */ NdrFcShort( 0x0 ), /* 0 */
-/* 22 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter description */
-
-/* 24 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
-/* 26 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 28 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
-
- /* Return value */
-
-/* 30 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 32 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 34 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_imagePosition */
-
-/* 36 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 38 */ NdrFcLong( 0x0 ), /* 0 */
-/* 42 */ NdrFcShort( 0x4 ), /* 4 */
-/* 44 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
-/* 46 */ NdrFcShort( 0x6 ), /* 6 */
-/* 48 */ NdrFcShort( 0x40 ), /* 64 */
-/* 50 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x4, /* 4 */
-/* 52 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 54 */ NdrFcShort( 0x0 ), /* 0 */
-/* 56 */ NdrFcShort( 0x0 ), /* 0 */
-/* 58 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter coordinateType */
-
-/* 60 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 62 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 64 */ 0xd, /* FC_ENUM16 */
- 0x0, /* 0 */
-
- /* Parameter x */
-
-/* 66 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 68 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 70 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter y */
-
-/* 72 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 74 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 76 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 78 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 80 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
-/* 82 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_imageSize */
-
-/* 84 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 86 */ NdrFcLong( 0x0 ), /* 0 */
-/* 90 */ NdrFcShort( 0x5 ), /* 5 */
-/* 92 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
-/* 94 */ NdrFcShort( 0x0 ), /* 0 */
-/* 96 */ NdrFcShort( 0x40 ), /* 64 */
-/* 98 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x3, /* 3 */
-/* 100 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 102 */ NdrFcShort( 0x0 ), /* 0 */
-/* 104 */ NdrFcShort( 0x0 ), /* 0 */
-/* 106 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter height */
-
-/* 108 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 110 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 112 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter width */
-
-/* 114 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 116 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 118 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 120 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 122 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 124 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- 0x0
- }
- };
-
-static const AccessibleImage_MIDL_TYPE_FORMAT_STRING AccessibleImage__MIDL_TypeFormatString =
- {
- 0,
- {
- NdrFcShort( 0x0 ), /* 0 */
-/* 2 */
- 0x11, 0x4, /* FC_RP [alloced_on_stack] */
-/* 4 */ NdrFcShort( 0x1c ), /* Offset= 28 (32) */
-/* 6 */
- 0x13, 0x0, /* FC_OP */
-/* 8 */ NdrFcShort( 0xe ), /* Offset= 14 (22) */
-/* 10 */
- 0x1b, /* FC_CARRAY */
- 0x1, /* 1 */
-/* 12 */ NdrFcShort( 0x2 ), /* 2 */
-/* 14 */ 0x9, /* Corr desc: FC_ULONG */
- 0x0, /* */
-/* 16 */ NdrFcShort( 0xfffc ), /* -4 */
-/* 18 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 20 */ 0x6, /* FC_SHORT */
- 0x5b, /* FC_END */
-/* 22 */
- 0x17, /* FC_CSTRUCT */
- 0x3, /* 3 */
-/* 24 */ NdrFcShort( 0x8 ), /* 8 */
-/* 26 */ NdrFcShort( 0xfff0 ), /* Offset= -16 (10) */
-/* 28 */ 0x8, /* FC_LONG */
- 0x8, /* FC_LONG */
-/* 30 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-/* 32 */ 0xb4, /* FC_USER_MARSHAL */
- 0x83, /* 131 */
-/* 34 */ NdrFcShort( 0x0 ), /* 0 */
-/* 36 */ NdrFcShort( 0x4 ), /* 4 */
-/* 38 */ NdrFcShort( 0x0 ), /* 0 */
-/* 40 */ NdrFcShort( 0xffde ), /* Offset= -34 (6) */
-/* 42 */
- 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
-/* 44 */ 0x8, /* FC_LONG */
- 0x5c, /* FC_PAD */
-
- 0x0
- }
- };
-
-static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] =
- {
-
- {
- BSTR_UserSize
- ,BSTR_UserMarshal
- ,BSTR_UserUnmarshal
- ,BSTR_UserFree
- }
-
- };
-
-
-
-/* Object interface: IUnknown, ver. 0.0,
- GUID={0x00000000,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
-
-
-/* Object interface: IAccessibleImage, ver. 0.0,
- GUID={0xFE5ABB3D,0x615E,0x4f7b,{0x90,0x9F,0x5F,0x0E,0xDA,0x9E,0x8D,0xDE}} */
-
-#pragma code_seg(".orpc")
-static const unsigned short IAccessibleImage_FormatStringOffsetTable[] =
- {
- 0,
- 36,
- 84
- };
-
-static const MIDL_STUBLESS_PROXY_INFO IAccessibleImage_ProxyInfo =
- {
- &Object_StubDesc,
- AccessibleImage__MIDL_ProcFormatString.Format,
- &IAccessibleImage_FormatStringOffsetTable[-3],
- 0,
- 0,
- 0
- };
-
-
-static const MIDL_SERVER_INFO IAccessibleImage_ServerInfo =
- {
- &Object_StubDesc,
- 0,
- AccessibleImage__MIDL_ProcFormatString.Format,
- &IAccessibleImage_FormatStringOffsetTable[-3],
- 0,
- 0,
- 0,
- 0};
-CINTERFACE_PROXY_VTABLE(6) _IAccessibleImageProxyVtbl =
-{
- &IAccessibleImage_ProxyInfo,
- &IID_IAccessibleImage,
- IUnknown_QueryInterface_Proxy,
- IUnknown_AddRef_Proxy,
- IUnknown_Release_Proxy ,
- (void *) (INT_PTR) -1 /* IAccessibleImage::get_description */ ,
- (void *) (INT_PTR) -1 /* IAccessibleImage::get_imagePosition */ ,
- (void *) (INT_PTR) -1 /* IAccessibleImage::get_imageSize */
-};
-
-const CInterfaceStubVtbl _IAccessibleImageStubVtbl =
-{
- &IID_IAccessibleImage,
- &IAccessibleImage_ServerInfo,
- 6,
- 0, /* pure interpreted */
- CStdStubBuffer_METHODS
-};
-
-static const MIDL_STUB_DESC Object_StubDesc =
- {
- 0,
- NdrOleAllocate,
- NdrOleFree,
- 0,
- 0,
- 0,
- 0,
- 0,
- AccessibleImage__MIDL_TypeFormatString.Format,
- 1, /* -error bounds_check flag */
- 0x50002, /* Ndr library version */
- 0,
- 0x700022b, /* MIDL Version 7.0.555 */
- 0,
- UserMarshalRoutines,
- 0, /* notify & notify_flag routine table */
- 0x1, /* MIDL flag */
- 0, /* cs routines */
- 0, /* proxy/server info */
- 0
- };
-
-const CInterfaceProxyVtbl * const _AccessibleImage_ProxyVtblList[] =
-{
- ( CInterfaceProxyVtbl *) &_IAccessibleImageProxyVtbl,
- 0
-};
-
-const CInterfaceStubVtbl * const _AccessibleImage_StubVtblList[] =
-{
- ( CInterfaceStubVtbl *) &_IAccessibleImageStubVtbl,
- 0
-};
-
-PCInterfaceName const _AccessibleImage_InterfaceNamesList[] =
-{
- "IAccessibleImage",
- 0
-};
-
-
-#define _AccessibleImage_CHECK_IID(n) IID_GENERIC_CHECK_IID( _AccessibleImage, pIID, n)
-
-int __stdcall _AccessibleImage_IID_Lookup( const IID * pIID, int * pIndex )
-{
-
- if(!_AccessibleImage_CHECK_IID(0))
- {
- *pIndex = 0;
- return 1;
- }
-
- return 0;
-}
-
-const ExtendedProxyFileInfo AccessibleImage_ProxyFileInfo =
-{
- (PCInterfaceProxyVtblList *) & _AccessibleImage_ProxyVtblList,
- (PCInterfaceStubVtblList *) & _AccessibleImage_StubVtblList,
- (const PCInterfaceName * ) & _AccessibleImage_InterfaceNamesList,
- 0, /* no delegation */
- & _AccessibleImage_IID_Lookup,
- 1,
- 2,
- 0, /* table of [async_uuid] interfaces */
- 0, /* Filler1 */
- 0, /* Filler2 */
- 0 /* Filler3 */
-};
-#pragma optimize("", on )
-#if _MSC_VER >= 1200
-#pragma warning(pop)
-#endif
-
-
-#endif /* !defined(_M_IA64) && !defined(_M_AMD64)*/
-
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleRelation.h b/src/3rdparty/iaccessible2/generated/x86/AccessibleRelation.h
deleted file mode 100644
index b24908a421..0000000000
--- a/src/3rdparty/iaccessible2/generated/x86/AccessibleRelation.h
+++ /dev/null
@@ -1,244 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the definitions for the interfaces */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:54 2012
- */
-/* Compiler settings for AccessibleRelation.idl:
- Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-
-
-/* verify that the <rpcndr.h> version is high enough to compile this file*/
-#ifndef __REQUIRED_RPCNDR_H_VERSION__
-#define __REQUIRED_RPCNDR_H_VERSION__ 475
-#endif
-
-#include "rpc.h"
-#include "rpcndr.h"
-
-#ifndef __RPCNDR_H_VERSION__
-#error this stub requires an updated version of <rpcndr.h>
-#endif // __RPCNDR_H_VERSION__
-
-#ifndef COM_NO_WINDOWS_H
-#include "windows.h"
-#include "ole2.h"
-#endif /*COM_NO_WINDOWS_H*/
-
-#ifndef __AccessibleRelation_h__
-#define __AccessibleRelation_h__
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-#pragma once
-#endif
-
-/* Forward Declarations */
-
-#ifndef __IAccessibleRelation_FWD_DEFINED__
-#define __IAccessibleRelation_FWD_DEFINED__
-typedef interface IAccessibleRelation IAccessibleRelation;
-#endif /* __IAccessibleRelation_FWD_DEFINED__ */
-
-
-/* header files for imported files */
-#include "objidl.h"
-#include "oaidl.h"
-#include "oleacc.h"
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-
-/* interface __MIDL_itf_AccessibleRelation_0000_0000 */
-/* [local] */
-
-#define IA2_RELATION_CONTROLLED_BY ( L"controlledBy" )
-
-#define IA2_RELATION_CONTROLLER_FOR ( L"controllerFor" )
-
-#define IA2_RELATION_DESCRIBED_BY ( L"describedBy" )
-
-#define IA2_RELATION_DESCRIPTION_FOR ( L"descriptionFor" )
-
-#define IA2_RELATION_EMBEDDED_BY ( L"embeddedBy" )
-
-#define IA2_RELATION_EMBEDS ( L"embeds" )
-
-#define IA2_RELATION_FLOWS_FROM ( L"flowsFrom" )
-
-#define IA2_RELATION_FLOWS_TO ( L"flowsTo" )
-
-#define IA2_RELATION_LABEL_FOR ( L"labelFor" )
-
-#define IA2_RELATION_LABELED_BY ( L"labelledBy" )
-
-#define IA2_RELATION_LABELLED_BY ( L"labelledBy" )
-
-#define IA2_RELATION_MEMBER_OF ( L"memberOf" )
-
-#define IA2_RELATION_NODE_CHILD_OF ( L"nodeChildOf" )
-
-#define IA2_RELATION_PARENT_WINDOW_OF ( L"parentWindowOf" )
-
-#define IA2_RELATION_POPUP_FOR ( L"popupFor" )
-
-#define IA2_RELATION_SUBWINDOW_OF ( L"subwindowOf" )
-
-
-
-extern RPC_IF_HANDLE __MIDL_itf_AccessibleRelation_0000_0000_v0_0_c_ifspec;
-extern RPC_IF_HANDLE __MIDL_itf_AccessibleRelation_0000_0000_v0_0_s_ifspec;
-
-#ifndef __IAccessibleRelation_INTERFACE_DEFINED__
-#define __IAccessibleRelation_INTERFACE_DEFINED__
-
-/* interface IAccessibleRelation */
-/* [uuid][object] */
-
-
-EXTERN_C const IID IID_IAccessibleRelation;
-
-#if defined(__cplusplus) && !defined(CINTERFACE)
-
- MIDL_INTERFACE("7CDF86EE-C3DA-496a-BDA4-281B336E1FDC")
- IAccessibleRelation : public IUnknown
- {
- public:
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_relationType(
- /* [retval][out] */ BSTR *relationType) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_localizedRelationType(
- /* [retval][out] */ BSTR *localizedRelationType) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nTargets(
- /* [retval][out] */ long *nTargets) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_target(
- /* [in] */ long targetIndex,
- /* [retval][out] */ IUnknown **target) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_targets(
- /* [in] */ long maxTargets,
- /* [length_is][size_is][out] */ IUnknown **targets,
- /* [retval][out] */ long *nTargets) = 0;
-
- };
-
-#else /* C style interface */
-
- typedef struct IAccessibleRelationVtbl
- {
- BEGIN_INTERFACE
-
- HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
- IAccessibleRelation * This,
- /* [in] */ REFIID riid,
- /* [annotation][iid_is][out] */
- __RPC__deref_out void **ppvObject);
-
- ULONG ( STDMETHODCALLTYPE *AddRef )(
- IAccessibleRelation * This);
-
- ULONG ( STDMETHODCALLTYPE *Release )(
- IAccessibleRelation * This);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relationType )(
- IAccessibleRelation * This,
- /* [retval][out] */ BSTR *relationType);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedRelationType )(
- IAccessibleRelation * This,
- /* [retval][out] */ BSTR *localizedRelationType);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nTargets )(
- IAccessibleRelation * This,
- /* [retval][out] */ long *nTargets);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_target )(
- IAccessibleRelation * This,
- /* [in] */ long targetIndex,
- /* [retval][out] */ IUnknown **target);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_targets )(
- IAccessibleRelation * This,
- /* [in] */ long maxTargets,
- /* [length_is][size_is][out] */ IUnknown **targets,
- /* [retval][out] */ long *nTargets);
-
- END_INTERFACE
- } IAccessibleRelationVtbl;
-
- interface IAccessibleRelation
- {
- CONST_VTBL struct IAccessibleRelationVtbl *lpVtbl;
- };
-
-
-
-#ifdef COBJMACROS
-
-
-#define IAccessibleRelation_QueryInterface(This,riid,ppvObject) \
- ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
-
-#define IAccessibleRelation_AddRef(This) \
- ( (This)->lpVtbl -> AddRef(This) )
-
-#define IAccessibleRelation_Release(This) \
- ( (This)->lpVtbl -> Release(This) )
-
-
-#define IAccessibleRelation_get_relationType(This,relationType) \
- ( (This)->lpVtbl -> get_relationType(This,relationType) )
-
-#define IAccessibleRelation_get_localizedRelationType(This,localizedRelationType) \
- ( (This)->lpVtbl -> get_localizedRelationType(This,localizedRelationType) )
-
-#define IAccessibleRelation_get_nTargets(This,nTargets) \
- ( (This)->lpVtbl -> get_nTargets(This,nTargets) )
-
-#define IAccessibleRelation_get_target(This,targetIndex,target) \
- ( (This)->lpVtbl -> get_target(This,targetIndex,target) )
-
-#define IAccessibleRelation_get_targets(This,maxTargets,targets,nTargets) \
- ( (This)->lpVtbl -> get_targets(This,maxTargets,targets,nTargets) )
-
-#endif /* COBJMACROS */
-
-
-#endif /* C style interface */
-
-
-
-
-#endif /* __IAccessibleRelation_INTERFACE_DEFINED__ */
-
-
-/* Additional Prototypes for ALL interfaces */
-
-unsigned long __RPC_USER BSTR_UserSize( unsigned long *, unsigned long , BSTR * );
-unsigned char * __RPC_USER BSTR_UserMarshal( unsigned long *, unsigned char *, BSTR * );
-unsigned char * __RPC_USER BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * );
-void __RPC_USER BSTR_UserFree( unsigned long *, BSTR * );
-
-/* end of Additional Prototypes */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleRelation_i.c b/src/3rdparty/iaccessible2/generated/x86/AccessibleRelation_i.c
deleted file mode 100644
index 58c8b78be7..0000000000
--- a/src/3rdparty/iaccessible2/generated/x86/AccessibleRelation_i.c
+++ /dev/null
@@ -1,79 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
-
-/* link this file in with the server and any clients */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:54 2012
- */
-/* Compiler settings for AccessibleRelation.idl:
- Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-
-#include <rpc.h>
-#include <rpcndr.h>
-
-#ifdef _MIDL_USE_GUIDDEF_
-
-#ifndef INITGUID
-#define INITGUID
-#include <guiddef.h>
-#undef INITGUID
-#else
-#include <guiddef.h>
-#endif
-
-#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
- DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
-
-#else // !_MIDL_USE_GUIDDEF_
-
-#ifndef __IID_DEFINED__
-#define __IID_DEFINED__
-
-typedef struct _IID
-{
- unsigned long x;
- unsigned short s1;
- unsigned short s2;
- unsigned char c[8];
-} IID;
-
-#endif // __IID_DEFINED__
-
-#ifndef CLSID_DEFINED
-#define CLSID_DEFINED
-typedef IID CLSID;
-#endif // CLSID_DEFINED
-
-#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
- const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
-
-#endif !_MIDL_USE_GUIDDEF_
-
-MIDL_DEFINE_GUID(IID, IID_IAccessibleRelation,0x7CDF86EE,0xC3DA,0x496a,0xBD,0xA4,0x28,0x1B,0x33,0x6E,0x1F,0xDC);
-
-#undef MIDL_DEFINE_GUID
-
-#ifdef __cplusplus
-}
-#endif
-
-
-
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleRelation_p.c b/src/3rdparty/iaccessible2/generated/x86/AccessibleRelation_p.c
deleted file mode 100644
index a3a6cbd632..0000000000
--- a/src/3rdparty/iaccessible2/generated/x86/AccessibleRelation_p.c
+++ /dev/null
@@ -1,527 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the proxy stub code */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:54 2012
- */
-/* Compiler settings for AccessibleRelation.idl:
- Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#if !defined(_M_IA64) && !defined(_M_AMD64)
-
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-#if _MSC_VER >= 1200
-#pragma warning(push)
-#endif
-
-#pragma warning( disable: 4211 ) /* redefine extern to static */
-#pragma warning( disable: 4232 ) /* dllimport identity*/
-#pragma warning( disable: 4024 ) /* array to pointer mapping*/
-#pragma warning( disable: 4152 ) /* function/data pointer conversion in expression */
-#pragma warning( disable: 4100 ) /* unreferenced arguments in x86 call */
-
-#pragma optimize("", off )
-
-#define USE_STUBLESS_PROXY
-
-
-/* verify that the <rpcproxy.h> version is high enough to compile this file*/
-#ifndef __REDQ_RPCPROXY_H_VERSION__
-#define __REQUIRED_RPCPROXY_H_VERSION__ 475
-#endif
-
-
-#include "rpcproxy.h"
-#ifndef __RPCPROXY_H_VERSION__
-#error this stub requires an updated version of <rpcproxy.h>
-#endif /* __RPCPROXY_H_VERSION__ */
-
-
-#include "AccessibleRelation.h"
-
-#define TYPE_FORMAT_STRING_SIZE 95
-#define PROC_FORMAT_STRING_SIZE 199
-#define EXPR_FORMAT_STRING_SIZE 1
-#define TRANSMIT_AS_TABLE_SIZE 0
-#define WIRE_MARSHAL_TABLE_SIZE 1
-
-typedef struct _AccessibleRelation_MIDL_TYPE_FORMAT_STRING
- {
- short Pad;
- unsigned char Format[ TYPE_FORMAT_STRING_SIZE ];
- } AccessibleRelation_MIDL_TYPE_FORMAT_STRING;
-
-typedef struct _AccessibleRelation_MIDL_PROC_FORMAT_STRING
- {
- short Pad;
- unsigned char Format[ PROC_FORMAT_STRING_SIZE ];
- } AccessibleRelation_MIDL_PROC_FORMAT_STRING;
-
-typedef struct _AccessibleRelation_MIDL_EXPR_FORMAT_STRING
- {
- long Pad;
- unsigned char Format[ EXPR_FORMAT_STRING_SIZE ];
- } AccessibleRelation_MIDL_EXPR_FORMAT_STRING;
-
-
-static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax =
-{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}};
-
-
-extern const AccessibleRelation_MIDL_TYPE_FORMAT_STRING AccessibleRelation__MIDL_TypeFormatString;
-extern const AccessibleRelation_MIDL_PROC_FORMAT_STRING AccessibleRelation__MIDL_ProcFormatString;
-extern const AccessibleRelation_MIDL_EXPR_FORMAT_STRING AccessibleRelation__MIDL_ExprFormatString;
-
-
-extern const MIDL_STUB_DESC Object_StubDesc;
-
-
-extern const MIDL_SERVER_INFO IAccessibleRelation_ServerInfo;
-extern const MIDL_STUBLESS_PROXY_INFO IAccessibleRelation_ProxyInfo;
-
-
-extern const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ];
-
-#if !defined(__RPC_WIN32__)
-#error Invalid build platform for this stub.
-#endif
-
-#if !(TARGET_IS_NT50_OR_LATER)
-#error You need Windows 2000 or later to run this stub because it uses these features:
-#error /robust command line switch.
-#error However, your C/C++ compilation flags indicate you intend to run this app on earlier systems.
-#error This app will fail with the RPC_X_WRONG_STUB_VERSION error.
-#endif
-
-
-static const AccessibleRelation_MIDL_PROC_FORMAT_STRING AccessibleRelation__MIDL_ProcFormatString =
- {
- 0,
- {
-
- /* Procedure get_relationType */
-
- 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 2 */ NdrFcLong( 0x0 ), /* 0 */
-/* 6 */ NdrFcShort( 0x3 ), /* 3 */
-/* 8 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 10 */ NdrFcShort( 0x0 ), /* 0 */
-/* 12 */ NdrFcShort( 0x8 ), /* 8 */
-/* 14 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x2, /* 2 */
-/* 16 */ 0x8, /* 8 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 18 */ NdrFcShort( 0x1 ), /* 1 */
-/* 20 */ NdrFcShort( 0x0 ), /* 0 */
-/* 22 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter relationType */
-
-/* 24 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
-/* 26 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 28 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
-
- /* Return value */
-
-/* 30 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 32 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 34 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_localizedRelationType */
-
-/* 36 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 38 */ NdrFcLong( 0x0 ), /* 0 */
-/* 42 */ NdrFcShort( 0x4 ), /* 4 */
-/* 44 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 46 */ NdrFcShort( 0x0 ), /* 0 */
-/* 48 */ NdrFcShort( 0x8 ), /* 8 */
-/* 50 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x2, /* 2 */
-/* 52 */ 0x8, /* 8 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 54 */ NdrFcShort( 0x1 ), /* 1 */
-/* 56 */ NdrFcShort( 0x0 ), /* 0 */
-/* 58 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter localizedRelationType */
-
-/* 60 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
-/* 62 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 64 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
-
- /* Return value */
-
-/* 66 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 68 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 70 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_nTargets */
-
-/* 72 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 74 */ NdrFcLong( 0x0 ), /* 0 */
-/* 78 */ NdrFcShort( 0x5 ), /* 5 */
-/* 80 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 82 */ NdrFcShort( 0x0 ), /* 0 */
-/* 84 */ NdrFcShort( 0x24 ), /* 36 */
-/* 86 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 88 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 90 */ NdrFcShort( 0x0 ), /* 0 */
-/* 92 */ NdrFcShort( 0x0 ), /* 0 */
-/* 94 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter nTargets */
-
-/* 96 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 98 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 100 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 102 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 104 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 106 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_target */
-
-/* 108 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 110 */ NdrFcLong( 0x0 ), /* 0 */
-/* 114 */ NdrFcShort( 0x6 ), /* 6 */
-/* 116 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
-/* 118 */ NdrFcShort( 0x8 ), /* 8 */
-/* 120 */ NdrFcShort( 0x8 ), /* 8 */
-/* 122 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x3, /* 3 */
-/* 124 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 126 */ NdrFcShort( 0x0 ), /* 0 */
-/* 128 */ NdrFcShort( 0x0 ), /* 0 */
-/* 130 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter targetIndex */
-
-/* 132 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 134 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 136 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter target */
-
-/* 138 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
-/* 140 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 142 */ NdrFcShort( 0x2e ), /* Type Offset=46 */
-
- /* Return value */
-
-/* 144 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 146 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 148 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_targets */
-
-/* 150 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 152 */ NdrFcLong( 0x0 ), /* 0 */
-/* 156 */ NdrFcShort( 0x7 ), /* 7 */
-/* 158 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
-/* 160 */ NdrFcShort( 0x8 ), /* 8 */
-/* 162 */ NdrFcShort( 0x24 ), /* 36 */
-/* 164 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x4, /* 4 */
-/* 166 */ 0x8, /* 8 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 168 */ NdrFcShort( 0x1 ), /* 1 */
-/* 170 */ NdrFcShort( 0x0 ), /* 0 */
-/* 172 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter maxTargets */
-
-/* 174 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 176 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 178 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter targets */
-
-/* 180 */ NdrFcShort( 0x113 ), /* Flags: must size, must free, out, simple ref, */
-/* 182 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 184 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
-
- /* Parameter nTargets */
-
-/* 186 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 188 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 190 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 192 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 194 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
-/* 196 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- 0x0
- }
- };
-
-static const AccessibleRelation_MIDL_TYPE_FORMAT_STRING AccessibleRelation__MIDL_TypeFormatString =
- {
- 0,
- {
- NdrFcShort( 0x0 ), /* 0 */
-/* 2 */
- 0x11, 0x4, /* FC_RP [alloced_on_stack] */
-/* 4 */ NdrFcShort( 0x1c ), /* Offset= 28 (32) */
-/* 6 */
- 0x13, 0x0, /* FC_OP */
-/* 8 */ NdrFcShort( 0xe ), /* Offset= 14 (22) */
-/* 10 */
- 0x1b, /* FC_CARRAY */
- 0x1, /* 1 */
-/* 12 */ NdrFcShort( 0x2 ), /* 2 */
-/* 14 */ 0x9, /* Corr desc: FC_ULONG */
- 0x0, /* */
-/* 16 */ NdrFcShort( 0xfffc ), /* -4 */
-/* 18 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 20 */ 0x6, /* FC_SHORT */
- 0x5b, /* FC_END */
-/* 22 */
- 0x17, /* FC_CSTRUCT */
- 0x3, /* 3 */
-/* 24 */ NdrFcShort( 0x8 ), /* 8 */
-/* 26 */ NdrFcShort( 0xfff0 ), /* Offset= -16 (10) */
-/* 28 */ 0x8, /* FC_LONG */
- 0x8, /* FC_LONG */
-/* 30 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-/* 32 */ 0xb4, /* FC_USER_MARSHAL */
- 0x83, /* 131 */
-/* 34 */ NdrFcShort( 0x0 ), /* 0 */
-/* 36 */ NdrFcShort( 0x4 ), /* 4 */
-/* 38 */ NdrFcShort( 0x0 ), /* 0 */
-/* 40 */ NdrFcShort( 0xffde ), /* Offset= -34 (6) */
-/* 42 */
- 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
-/* 44 */ 0x8, /* FC_LONG */
- 0x5c, /* FC_PAD */
-/* 46 */
- 0x11, 0x10, /* FC_RP [pointer_deref] */
-/* 48 */ NdrFcShort( 0x2 ), /* Offset= 2 (50) */
-/* 50 */
- 0x2f, /* FC_IP */
- 0x5a, /* FC_CONSTANT_IID */
-/* 52 */ NdrFcLong( 0x0 ), /* 0 */
-/* 56 */ NdrFcShort( 0x0 ), /* 0 */
-/* 58 */ NdrFcShort( 0x0 ), /* 0 */
-/* 60 */ 0xc0, /* 192 */
- 0x0, /* 0 */
-/* 62 */ 0x0, /* 0 */
- 0x0, /* 0 */
-/* 64 */ 0x0, /* 0 */
- 0x0, /* 0 */
-/* 66 */ 0x0, /* 0 */
- 0x46, /* 70 */
-/* 68 */
- 0x11, 0x0, /* FC_RP */
-/* 70 */ NdrFcShort( 0x2 ), /* Offset= 2 (72) */
-/* 72 */
- 0x21, /* FC_BOGUS_ARRAY */
- 0x3, /* 3 */
-/* 74 */ NdrFcShort( 0x0 ), /* 0 */
-/* 76 */ 0x28, /* Corr desc: parameter, FC_LONG */
- 0x0, /* */
-/* 78 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 80 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 82 */ 0x28, /* Corr desc: parameter, FC_LONG */
- 0x54, /* FC_DEREFERENCE */
-/* 84 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 86 */ NdrFcShort( 0x0 ), /* Corr flags: */
-/* 88 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
- 0x0, /* 0 */
-/* 90 */ NdrFcShort( 0xffd8 ), /* Offset= -40 (50) */
-/* 92 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-
- 0x0
- }
- };
-
-static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] =
- {
-
- {
- BSTR_UserSize
- ,BSTR_UserMarshal
- ,BSTR_UserUnmarshal
- ,BSTR_UserFree
- }
-
- };
-
-
-
-/* Standard interface: __MIDL_itf_AccessibleRelation_0000_0000, ver. 0.0,
- GUID={0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}} */
-
-
-/* Object interface: IUnknown, ver. 0.0,
- GUID={0x00000000,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
-
-
-/* Object interface: IAccessibleRelation, ver. 0.0,
- GUID={0x7CDF86EE,0xC3DA,0x496a,{0xBD,0xA4,0x28,0x1B,0x33,0x6E,0x1F,0xDC}} */
-
-#pragma code_seg(".orpc")
-static const unsigned short IAccessibleRelation_FormatStringOffsetTable[] =
- {
- 0,
- 36,
- 72,
- 108,
- 150
- };
-
-static const MIDL_STUBLESS_PROXY_INFO IAccessibleRelation_ProxyInfo =
- {
- &Object_StubDesc,
- AccessibleRelation__MIDL_ProcFormatString.Format,
- &IAccessibleRelation_FormatStringOffsetTable[-3],
- 0,
- 0,
- 0
- };
-
-
-static const MIDL_SERVER_INFO IAccessibleRelation_ServerInfo =
- {
- &Object_StubDesc,
- 0,
- AccessibleRelation__MIDL_ProcFormatString.Format,
- &IAccessibleRelation_FormatStringOffsetTable[-3],
- 0,
- 0,
- 0,
- 0};
-CINTERFACE_PROXY_VTABLE(8) _IAccessibleRelationProxyVtbl =
-{
- &IAccessibleRelation_ProxyInfo,
- &IID_IAccessibleRelation,
- IUnknown_QueryInterface_Proxy,
- IUnknown_AddRef_Proxy,
- IUnknown_Release_Proxy ,
- (void *) (INT_PTR) -1 /* IAccessibleRelation::get_relationType */ ,
- (void *) (INT_PTR) -1 /* IAccessibleRelation::get_localizedRelationType */ ,
- (void *) (INT_PTR) -1 /* IAccessibleRelation::get_nTargets */ ,
- (void *) (INT_PTR) -1 /* IAccessibleRelation::get_target */ ,
- (void *) (INT_PTR) -1 /* IAccessibleRelation::get_targets */
-};
-
-const CInterfaceStubVtbl _IAccessibleRelationStubVtbl =
-{
- &IID_IAccessibleRelation,
- &IAccessibleRelation_ServerInfo,
- 8,
- 0, /* pure interpreted */
- CStdStubBuffer_METHODS
-};
-
-static const MIDL_STUB_DESC Object_StubDesc =
- {
- 0,
- NdrOleAllocate,
- NdrOleFree,
- 0,
- 0,
- 0,
- 0,
- 0,
- AccessibleRelation__MIDL_TypeFormatString.Format,
- 1, /* -error bounds_check flag */
- 0x50002, /* Ndr library version */
- 0,
- 0x700022b, /* MIDL Version 7.0.555 */
- 0,
- UserMarshalRoutines,
- 0, /* notify & notify_flag routine table */
- 0x1, /* MIDL flag */
- 0, /* cs routines */
- 0, /* proxy/server info */
- 0
- };
-
-const CInterfaceProxyVtbl * const _AccessibleRelation_ProxyVtblList[] =
-{
- ( CInterfaceProxyVtbl *) &_IAccessibleRelationProxyVtbl,
- 0
-};
-
-const CInterfaceStubVtbl * const _AccessibleRelation_StubVtblList[] =
-{
- ( CInterfaceStubVtbl *) &_IAccessibleRelationStubVtbl,
- 0
-};
-
-PCInterfaceName const _AccessibleRelation_InterfaceNamesList[] =
-{
- "IAccessibleRelation",
- 0
-};
-
-
-#define _AccessibleRelation_CHECK_IID(n) IID_GENERIC_CHECK_IID( _AccessibleRelation, pIID, n)
-
-int __stdcall _AccessibleRelation_IID_Lookup( const IID * pIID, int * pIndex )
-{
-
- if(!_AccessibleRelation_CHECK_IID(0))
- {
- *pIndex = 0;
- return 1;
- }
-
- return 0;
-}
-
-const ExtendedProxyFileInfo AccessibleRelation_ProxyFileInfo =
-{
- (PCInterfaceProxyVtblList *) & _AccessibleRelation_ProxyVtblList,
- (PCInterfaceStubVtblList *) & _AccessibleRelation_StubVtblList,
- (const PCInterfaceName * ) & _AccessibleRelation_InterfaceNamesList,
- 0, /* no delegation */
- & _AccessibleRelation_IID_Lookup,
- 1,
- 2,
- 0, /* table of [async_uuid] interfaces */
- 0, /* Filler1 */
- 0, /* Filler2 */
- 0 /* Filler3 */
-};
-#pragma optimize("", on )
-#if _MSC_VER >= 1200
-#pragma warning(pop)
-#endif
-
-
-#endif /* !defined(_M_IA64) && !defined(_M_AMD64)*/
-
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleRole.h b/src/3rdparty/iaccessible2/generated/x86/AccessibleRole.h
deleted file mode 100644
index 221d1d00f6..0000000000
--- a/src/3rdparty/iaccessible2/generated/x86/AccessibleRole.h
+++ /dev/null
@@ -1,118 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the definitions for the interfaces */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:54 2012
- */
-/* Compiler settings for AccessibleRole.idl:
- Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-
-
-/* verify that the <rpcndr.h> version is high enough to compile this file*/
-#ifndef __REQUIRED_RPCNDR_H_VERSION__
-#define __REQUIRED_RPCNDR_H_VERSION__ 475
-#endif
-
-#include "rpc.h"
-#include "rpcndr.h"
-
-#ifndef __RPCNDR_H_VERSION__
-#error this stub requires an updated version of <rpcndr.h>
-#endif // __RPCNDR_H_VERSION__
-
-
-#ifndef __AccessibleRole_h__
-#define __AccessibleRole_h__
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-#pragma once
-#endif
-
-/* Forward Declarations */
-
-/* header files for imported files */
-#include "objidl.h"
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-
-/* interface __MIDL_itf_AccessibleRole_0000_0000 */
-/* [local] */
-
-
-enum IA2Role
- { IA2_ROLE_UNKNOWN = 0,
- IA2_ROLE_CANVAS = 0x401,
- IA2_ROLE_CAPTION = ( IA2_ROLE_CANVAS + 1 ) ,
- IA2_ROLE_CHECK_MENU_ITEM = ( IA2_ROLE_CAPTION + 1 ) ,
- IA2_ROLE_COLOR_CHOOSER = ( IA2_ROLE_CHECK_MENU_ITEM + 1 ) ,
- IA2_ROLE_DATE_EDITOR = ( IA2_ROLE_COLOR_CHOOSER + 1 ) ,
- IA2_ROLE_DESKTOP_ICON = ( IA2_ROLE_DATE_EDITOR + 1 ) ,
- IA2_ROLE_DESKTOP_PANE = ( IA2_ROLE_DESKTOP_ICON + 1 ) ,
- IA2_ROLE_DIRECTORY_PANE = ( IA2_ROLE_DESKTOP_PANE + 1 ) ,
- IA2_ROLE_EDITBAR = ( IA2_ROLE_DIRECTORY_PANE + 1 ) ,
- IA2_ROLE_EMBEDDED_OBJECT = ( IA2_ROLE_EDITBAR + 1 ) ,
- IA2_ROLE_ENDNOTE = ( IA2_ROLE_EMBEDDED_OBJECT + 1 ) ,
- IA2_ROLE_FILE_CHOOSER = ( IA2_ROLE_ENDNOTE + 1 ) ,
- IA2_ROLE_FONT_CHOOSER = ( IA2_ROLE_FILE_CHOOSER + 1 ) ,
- IA2_ROLE_FOOTER = ( IA2_ROLE_FONT_CHOOSER + 1 ) ,
- IA2_ROLE_FOOTNOTE = ( IA2_ROLE_FOOTER + 1 ) ,
- IA2_ROLE_FORM = ( IA2_ROLE_FOOTNOTE + 1 ) ,
- IA2_ROLE_FRAME = ( IA2_ROLE_FORM + 1 ) ,
- IA2_ROLE_GLASS_PANE = ( IA2_ROLE_FRAME + 1 ) ,
- IA2_ROLE_HEADER = ( IA2_ROLE_GLASS_PANE + 1 ) ,
- IA2_ROLE_HEADING = ( IA2_ROLE_HEADER + 1 ) ,
- IA2_ROLE_ICON = ( IA2_ROLE_HEADING + 1 ) ,
- IA2_ROLE_IMAGE_MAP = ( IA2_ROLE_ICON + 1 ) ,
- IA2_ROLE_INPUT_METHOD_WINDOW = ( IA2_ROLE_IMAGE_MAP + 1 ) ,
- IA2_ROLE_INTERNAL_FRAME = ( IA2_ROLE_INPUT_METHOD_WINDOW + 1 ) ,
- IA2_ROLE_LABEL = ( IA2_ROLE_INTERNAL_FRAME + 1 ) ,
- IA2_ROLE_LAYERED_PANE = ( IA2_ROLE_LABEL + 1 ) ,
- IA2_ROLE_NOTE = ( IA2_ROLE_LAYERED_PANE + 1 ) ,
- IA2_ROLE_OPTION_PANE = ( IA2_ROLE_NOTE + 1 ) ,
- IA2_ROLE_PAGE = ( IA2_ROLE_OPTION_PANE + 1 ) ,
- IA2_ROLE_PARAGRAPH = ( IA2_ROLE_PAGE + 1 ) ,
- IA2_ROLE_RADIO_MENU_ITEM = ( IA2_ROLE_PARAGRAPH + 1 ) ,
- IA2_ROLE_REDUNDANT_OBJECT = ( IA2_ROLE_RADIO_MENU_ITEM + 1 ) ,
- IA2_ROLE_ROOT_PANE = ( IA2_ROLE_REDUNDANT_OBJECT + 1 ) ,
- IA2_ROLE_RULER = ( IA2_ROLE_ROOT_PANE + 1 ) ,
- IA2_ROLE_SCROLL_PANE = ( IA2_ROLE_RULER + 1 ) ,
- IA2_ROLE_SECTION = ( IA2_ROLE_SCROLL_PANE + 1 ) ,
- IA2_ROLE_SHAPE = ( IA2_ROLE_SECTION + 1 ) ,
- IA2_ROLE_SPLIT_PANE = ( IA2_ROLE_SHAPE + 1 ) ,
- IA2_ROLE_TEAR_OFF_MENU = ( IA2_ROLE_SPLIT_PANE + 1 ) ,
- IA2_ROLE_TERMINAL = ( IA2_ROLE_TEAR_OFF_MENU + 1 ) ,
- IA2_ROLE_TEXT_FRAME = ( IA2_ROLE_TERMINAL + 1 ) ,
- IA2_ROLE_TOGGLE_BUTTON = ( IA2_ROLE_TEXT_FRAME + 1 ) ,
- IA2_ROLE_VIEW_PORT = ( IA2_ROLE_TOGGLE_BUTTON + 1 ) ,
- IA2_ROLE_COMPLEMENTARY_CONTENT = ( IA2_ROLE_VIEW_PORT + 1 )
- } ;
-
-
-extern RPC_IF_HANDLE __MIDL_itf_AccessibleRole_0000_0000_v0_0_c_ifspec;
-extern RPC_IF_HANDLE __MIDL_itf_AccessibleRole_0000_0000_v0_0_s_ifspec;
-
-/* Additional Prototypes for ALL interfaces */
-
-/* end of Additional Prototypes */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleStates.h b/src/3rdparty/iaccessible2/generated/x86/AccessibleStates.h
deleted file mode 100644
index 058d2e548e..0000000000
--- a/src/3rdparty/iaccessible2/generated/x86/AccessibleStates.h
+++ /dev/null
@@ -1,95 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the definitions for the interfaces */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:54 2012
- */
-/* Compiler settings for AccessibleStates.idl:
- Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-
-
-/* verify that the <rpcndr.h> version is high enough to compile this file*/
-#ifndef __REQUIRED_RPCNDR_H_VERSION__
-#define __REQUIRED_RPCNDR_H_VERSION__ 475
-#endif
-
-#include "rpc.h"
-#include "rpcndr.h"
-
-#ifndef __RPCNDR_H_VERSION__
-#error this stub requires an updated version of <rpcndr.h>
-#endif // __RPCNDR_H_VERSION__
-
-
-#ifndef __AccessibleStates_h__
-#define __AccessibleStates_h__
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-#pragma once
-#endif
-
-/* Forward Declarations */
-
-/* header files for imported files */
-#include "objidl.h"
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-
-/* interface __MIDL_itf_AccessibleStates_0000_0000 */
-/* [local] */
-
-typedef long AccessibleStates;
-
-
-enum IA2States
- { IA2_STATE_ACTIVE = 0x1,
- IA2_STATE_ARMED = 0x2,
- IA2_STATE_DEFUNCT = 0x4,
- IA2_STATE_EDITABLE = 0x8,
- IA2_STATE_HORIZONTAL = 0x10,
- IA2_STATE_ICONIFIED = 0x20,
- IA2_STATE_INVALID_ENTRY = 0x40,
- IA2_STATE_MANAGES_DESCENDANTS = 0x80,
- IA2_STATE_MODAL = 0x100,
- IA2_STATE_MULTI_LINE = 0x200,
- IA2_STATE_OPAQUE = 0x400,
- IA2_STATE_REQUIRED = 0x800,
- IA2_STATE_SELECTABLE_TEXT = 0x1000,
- IA2_STATE_SINGLE_LINE = 0x2000,
- IA2_STATE_STALE = 0x4000,
- IA2_STATE_SUPPORTS_AUTOCOMPLETION = 0x8000,
- IA2_STATE_TRANSIENT = 0x10000,
- IA2_STATE_VERTICAL = 0x20000,
- IA2_STATE_CHECKABLE = 0x40000,
- IA2_STATE_PINNED = 0x80000
- } ;
-
-
-extern RPC_IF_HANDLE __MIDL_itf_AccessibleStates_0000_0000_v0_0_c_ifspec;
-extern RPC_IF_HANDLE __MIDL_itf_AccessibleStates_0000_0000_v0_0_s_ifspec;
-
-/* Additional Prototypes for ALL interfaces */
-
-/* end of Additional Prototypes */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleTable.h b/src/3rdparty/iaccessible2/generated/x86/AccessibleTable.h
deleted file mode 100644
index 0f7dd49efc..0000000000
--- a/src/3rdparty/iaccessible2/generated/x86/AccessibleTable.h
+++ /dev/null
@@ -1,497 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the definitions for the interfaces */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:54 2012
- */
-/* Compiler settings for AccessibleTable.idl:
- Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-
-
-/* verify that the <rpcndr.h> version is high enough to compile this file*/
-#ifndef __REQUIRED_RPCNDR_H_VERSION__
-#define __REQUIRED_RPCNDR_H_VERSION__ 475
-#endif
-
-#include "rpc.h"
-#include "rpcndr.h"
-
-#ifndef __RPCNDR_H_VERSION__
-#error this stub requires an updated version of <rpcndr.h>
-#endif // __RPCNDR_H_VERSION__
-
-#ifndef COM_NO_WINDOWS_H
-#include "windows.h"
-#include "ole2.h"
-#endif /*COM_NO_WINDOWS_H*/
-
-#ifndef __AccessibleTable_h__
-#define __AccessibleTable_h__
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-#pragma once
-#endif
-
-/* Forward Declarations */
-
-#ifndef __IAccessibleTable_FWD_DEFINED__
-#define __IAccessibleTable_FWD_DEFINED__
-typedef interface IAccessibleTable IAccessibleTable;
-#endif /* __IAccessibleTable_FWD_DEFINED__ */
-
-
-/* header files for imported files */
-#include "objidl.h"
-#include "oaidl.h"
-#include "oleacc.h"
-#include "Accessible2.h"
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-
-#ifndef __IAccessibleTable_INTERFACE_DEFINED__
-#define __IAccessibleTable_INTERFACE_DEFINED__
-
-/* interface IAccessibleTable */
-/* [uuid][object] */
-
-
-EXTERN_C const IID IID_IAccessibleTable;
-
-#if defined(__cplusplus) && !defined(CINTERFACE)
-
- MIDL_INTERFACE("35AD8070-C20C-4fb4-B094-F4F7275DD469")
- IAccessibleTable : public IUnknown
- {
- public:
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_accessibleAt(
- /* [in] */ long row,
- /* [in] */ long column,
- /* [retval][out] */ IUnknown **accessible) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_caption(
- /* [retval][out] */ IUnknown **accessible) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_childIndex(
- /* [in] */ long rowIndex,
- /* [in] */ long columnIndex,
- /* [retval][out] */ long *cellIndex) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnDescription(
- /* [in] */ long column,
- /* [retval][out] */ BSTR *description) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnExtentAt(
- /* [in] */ long row,
- /* [in] */ long column,
- /* [retval][out] */ long *nColumnsSpanned) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnHeader(
- /* [out] */ IAccessibleTable **accessibleTable,
- /* [retval][out] */ long *startingRowIndex) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnIndex(
- /* [in] */ long cellIndex,
- /* [retval][out] */ long *columnIndex) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nColumns(
- /* [retval][out] */ long *columnCount) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nRows(
- /* [retval][out] */ long *rowCount) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nSelectedChildren(
- /* [retval][out] */ long *cellCount) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nSelectedColumns(
- /* [retval][out] */ long *columnCount) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nSelectedRows(
- /* [retval][out] */ long *rowCount) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowDescription(
- /* [in] */ long row,
- /* [retval][out] */ BSTR *description) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowExtentAt(
- /* [in] */ long row,
- /* [in] */ long column,
- /* [retval][out] */ long *nRowsSpanned) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowHeader(
- /* [out] */ IAccessibleTable **accessibleTable,
- /* [retval][out] */ long *startingColumnIndex) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowIndex(
- /* [in] */ long cellIndex,
- /* [retval][out] */ long *rowIndex) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selectedChildren(
- /* [in] */ long maxChildren,
- /* [length_is][length_is][size_is][size_is][out] */ long **children,
- /* [retval][out] */ long *nChildren) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selectedColumns(
- /* [in] */ long maxColumns,
- /* [length_is][length_is][size_is][size_is][out] */ long **columns,
- /* [retval][out] */ long *nColumns) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selectedRows(
- /* [in] */ long maxRows,
- /* [length_is][length_is][size_is][size_is][out] */ long **rows,
- /* [retval][out] */ long *nRows) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_summary(
- /* [retval][out] */ IUnknown **accessible) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_isColumnSelected(
- /* [in] */ long column,
- /* [retval][out] */ boolean *isSelected) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_isRowSelected(
- /* [in] */ long row,
- /* [retval][out] */ boolean *isSelected) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_isSelected(
- /* [in] */ long row,
- /* [in] */ long column,
- /* [retval][out] */ boolean *isSelected) = 0;
-
- virtual HRESULT STDMETHODCALLTYPE selectRow(
- /* [in] */ long row) = 0;
-
- virtual HRESULT STDMETHODCALLTYPE selectColumn(
- /* [in] */ long column) = 0;
-
- virtual HRESULT STDMETHODCALLTYPE unselectRow(
- /* [in] */ long row) = 0;
-
- virtual HRESULT STDMETHODCALLTYPE unselectColumn(
- /* [in] */ long column) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowColumnExtentsAtIndex(
- /* [in] */ long index,
- /* [out] */ long *row,
- /* [out] */ long *column,
- /* [out] */ long *rowExtents,
- /* [out] */ long *columnExtents,
- /* [retval][out] */ boolean *isSelected) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_modelChange(
- /* [retval][out] */ IA2TableModelChange *modelChange) = 0;
-
- };
-
-#else /* C style interface */
-
- typedef struct IAccessibleTableVtbl
- {
- BEGIN_INTERFACE
-
- HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
- IAccessibleTable * This,
- /* [in] */ REFIID riid,
- /* [annotation][iid_is][out] */
- __RPC__deref_out void **ppvObject);
-
- ULONG ( STDMETHODCALLTYPE *AddRef )(
- IAccessibleTable * This);
-
- ULONG ( STDMETHODCALLTYPE *Release )(
- IAccessibleTable * This);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_accessibleAt )(
- IAccessibleTable * This,
- /* [in] */ long row,
- /* [in] */ long column,
- /* [retval][out] */ IUnknown **accessible);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_caption )(
- IAccessibleTable * This,
- /* [retval][out] */ IUnknown **accessible);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_childIndex )(
- IAccessibleTable * This,
- /* [in] */ long rowIndex,
- /* [in] */ long columnIndex,
- /* [retval][out] */ long *cellIndex);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnDescription )(
- IAccessibleTable * This,
- /* [in] */ long column,
- /* [retval][out] */ BSTR *description);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnExtentAt )(
- IAccessibleTable * This,
- /* [in] */ long row,
- /* [in] */ long column,
- /* [retval][out] */ long *nColumnsSpanned);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnHeader )(
- IAccessibleTable * This,
- /* [out] */ IAccessibleTable **accessibleTable,
- /* [retval][out] */ long *startingRowIndex);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnIndex )(
- IAccessibleTable * This,
- /* [in] */ long cellIndex,
- /* [retval][out] */ long *columnIndex);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nColumns )(
- IAccessibleTable * This,
- /* [retval][out] */ long *columnCount);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nRows )(
- IAccessibleTable * This,
- /* [retval][out] */ long *rowCount);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelectedChildren )(
- IAccessibleTable * This,
- /* [retval][out] */ long *cellCount);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelectedColumns )(
- IAccessibleTable * This,
- /* [retval][out] */ long *columnCount);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelectedRows )(
- IAccessibleTable * This,
- /* [retval][out] */ long *rowCount);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowDescription )(
- IAccessibleTable * This,
- /* [in] */ long row,
- /* [retval][out] */ BSTR *description);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowExtentAt )(
- IAccessibleTable * This,
- /* [in] */ long row,
- /* [in] */ long column,
- /* [retval][out] */ long *nRowsSpanned);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowHeader )(
- IAccessibleTable * This,
- /* [out] */ IAccessibleTable **accessibleTable,
- /* [retval][out] */ long *startingColumnIndex);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowIndex )(
- IAccessibleTable * This,
- /* [in] */ long cellIndex,
- /* [retval][out] */ long *rowIndex);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectedChildren )(
- IAccessibleTable * This,
- /* [in] */ long maxChildren,
- /* [length_is][length_is][size_is][size_is][out] */ long **children,
- /* [retval][out] */ long *nChildren);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectedColumns )(
- IAccessibleTable * This,
- /* [in] */ long maxColumns,
- /* [length_is][length_is][size_is][size_is][out] */ long **columns,
- /* [retval][out] */ long *nColumns);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectedRows )(
- IAccessibleTable * This,
- /* [in] */ long maxRows,
- /* [length_is][length_is][size_is][size_is][out] */ long **rows,
- /* [retval][out] */ long *nRows);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_summary )(
- IAccessibleTable * This,
- /* [retval][out] */ IUnknown **accessible);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isColumnSelected )(
- IAccessibleTable * This,
- /* [in] */ long column,
- /* [retval][out] */ boolean *isSelected);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isRowSelected )(
- IAccessibleTable * This,
- /* [in] */ long row,
- /* [retval][out] */ boolean *isSelected);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isSelected )(
- IAccessibleTable * This,
- /* [in] */ long row,
- /* [in] */ long column,
- /* [retval][out] */ boolean *isSelected);
-
- HRESULT ( STDMETHODCALLTYPE *selectRow )(
- IAccessibleTable * This,
- /* [in] */ long row);
-
- HRESULT ( STDMETHODCALLTYPE *selectColumn )(
- IAccessibleTable * This,
- /* [in] */ long column);
-
- HRESULT ( STDMETHODCALLTYPE *unselectRow )(
- IAccessibleTable * This,
- /* [in] */ long row);
-
- HRESULT ( STDMETHODCALLTYPE *unselectColumn )(
- IAccessibleTable * This,
- /* [in] */ long column);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowColumnExtentsAtIndex )(
- IAccessibleTable * This,
- /* [in] */ long index,
- /* [out] */ long *row,
- /* [out] */ long *column,
- /* [out] */ long *rowExtents,
- /* [out] */ long *columnExtents,
- /* [retval][out] */ boolean *isSelected);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_modelChange )(
- IAccessibleTable * This,
- /* [retval][out] */ IA2TableModelChange *modelChange);
-
- END_INTERFACE
- } IAccessibleTableVtbl;
-
- interface IAccessibleTable
- {
- CONST_VTBL struct IAccessibleTableVtbl *lpVtbl;
- };
-
-
-
-#ifdef COBJMACROS
-
-
-#define IAccessibleTable_QueryInterface(This,riid,ppvObject) \
- ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
-
-#define IAccessibleTable_AddRef(This) \
- ( (This)->lpVtbl -> AddRef(This) )
-
-#define IAccessibleTable_Release(This) \
- ( (This)->lpVtbl -> Release(This) )
-
-
-#define IAccessibleTable_get_accessibleAt(This,row,column,accessible) \
- ( (This)->lpVtbl -> get_accessibleAt(This,row,column,accessible) )
-
-#define IAccessibleTable_get_caption(This,accessible) \
- ( (This)->lpVtbl -> get_caption(This,accessible) )
-
-#define IAccessibleTable_get_childIndex(This,rowIndex,columnIndex,cellIndex) \
- ( (This)->lpVtbl -> get_childIndex(This,rowIndex,columnIndex,cellIndex) )
-
-#define IAccessibleTable_get_columnDescription(This,column,description) \
- ( (This)->lpVtbl -> get_columnDescription(This,column,description) )
-
-#define IAccessibleTable_get_columnExtentAt(This,row,column,nColumnsSpanned) \
- ( (This)->lpVtbl -> get_columnExtentAt(This,row,column,nColumnsSpanned) )
-
-#define IAccessibleTable_get_columnHeader(This,accessibleTable,startingRowIndex) \
- ( (This)->lpVtbl -> get_columnHeader(This,accessibleTable,startingRowIndex) )
-
-#define IAccessibleTable_get_columnIndex(This,cellIndex,columnIndex) \
- ( (This)->lpVtbl -> get_columnIndex(This,cellIndex,columnIndex) )
-
-#define IAccessibleTable_get_nColumns(This,columnCount) \
- ( (This)->lpVtbl -> get_nColumns(This,columnCount) )
-
-#define IAccessibleTable_get_nRows(This,rowCount) \
- ( (This)->lpVtbl -> get_nRows(This,rowCount) )
-
-#define IAccessibleTable_get_nSelectedChildren(This,cellCount) \
- ( (This)->lpVtbl -> get_nSelectedChildren(This,cellCount) )
-
-#define IAccessibleTable_get_nSelectedColumns(This,columnCount) \
- ( (This)->lpVtbl -> get_nSelectedColumns(This,columnCount) )
-
-#define IAccessibleTable_get_nSelectedRows(This,rowCount) \
- ( (This)->lpVtbl -> get_nSelectedRows(This,rowCount) )
-
-#define IAccessibleTable_get_rowDescription(This,row,description) \
- ( (This)->lpVtbl -> get_rowDescription(This,row,description) )
-
-#define IAccessibleTable_get_rowExtentAt(This,row,column,nRowsSpanned) \
- ( (This)->lpVtbl -> get_rowExtentAt(This,row,column,nRowsSpanned) )
-
-#define IAccessibleTable_get_rowHeader(This,accessibleTable,startingColumnIndex) \
- ( (This)->lpVtbl -> get_rowHeader(This,accessibleTable,startingColumnIndex) )
-
-#define IAccessibleTable_get_rowIndex(This,cellIndex,rowIndex) \
- ( (This)->lpVtbl -> get_rowIndex(This,cellIndex,rowIndex) )
-
-#define IAccessibleTable_get_selectedChildren(This,maxChildren,children,nChildren) \
- ( (This)->lpVtbl -> get_selectedChildren(This,maxChildren,children,nChildren) )
-
-#define IAccessibleTable_get_selectedColumns(This,maxColumns,columns,nColumns) \
- ( (This)->lpVtbl -> get_selectedColumns(This,maxColumns,columns,nColumns) )
-
-#define IAccessibleTable_get_selectedRows(This,maxRows,rows,nRows) \
- ( (This)->lpVtbl -> get_selectedRows(This,maxRows,rows,nRows) )
-
-#define IAccessibleTable_get_summary(This,accessible) \
- ( (This)->lpVtbl -> get_summary(This,accessible) )
-
-#define IAccessibleTable_get_isColumnSelected(This,column,isSelected) \
- ( (This)->lpVtbl -> get_isColumnSelected(This,column,isSelected) )
-
-#define IAccessibleTable_get_isRowSelected(This,row,isSelected) \
- ( (This)->lpVtbl -> get_isRowSelected(This,row,isSelected) )
-
-#define IAccessibleTable_get_isSelected(This,row,column,isSelected) \
- ( (This)->lpVtbl -> get_isSelected(This,row,column,isSelected) )
-
-#define IAccessibleTable_selectRow(This,row) \
- ( (This)->lpVtbl -> selectRow(This,row) )
-
-#define IAccessibleTable_selectColumn(This,column) \
- ( (This)->lpVtbl -> selectColumn(This,column) )
-
-#define IAccessibleTable_unselectRow(This,row) \
- ( (This)->lpVtbl -> unselectRow(This,row) )
-
-#define IAccessibleTable_unselectColumn(This,column) \
- ( (This)->lpVtbl -> unselectColumn(This,column) )
-
-#define IAccessibleTable_get_rowColumnExtentsAtIndex(This,index,row,column,rowExtents,columnExtents,isSelected) \
- ( (This)->lpVtbl -> get_rowColumnExtentsAtIndex(This,index,row,column,rowExtents,columnExtents,isSelected) )
-
-#define IAccessibleTable_get_modelChange(This,modelChange) \
- ( (This)->lpVtbl -> get_modelChange(This,modelChange) )
-
-#endif /* COBJMACROS */
-
-
-#endif /* C style interface */
-
-
-
-
-#endif /* __IAccessibleTable_INTERFACE_DEFINED__ */
-
-
-/* Additional Prototypes for ALL interfaces */
-
-unsigned long __RPC_USER BSTR_UserSize( unsigned long *, unsigned long , BSTR * );
-unsigned char * __RPC_USER BSTR_UserMarshal( unsigned long *, unsigned char *, BSTR * );
-unsigned char * __RPC_USER BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * );
-void __RPC_USER BSTR_UserFree( unsigned long *, BSTR * );
-
-/* end of Additional Prototypes */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleTable2.h b/src/3rdparty/iaccessible2/generated/x86/AccessibleTable2.h
deleted file mode 100644
index d511869de4..0000000000
--- a/src/3rdparty/iaccessible2/generated/x86/AccessibleTable2.h
+++ /dev/null
@@ -1,367 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the definitions for the interfaces */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:55 2012
- */
-/* Compiler settings for AccessibleTable2.idl:
- Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-
-
-/* verify that the <rpcndr.h> version is high enough to compile this file*/
-#ifndef __REQUIRED_RPCNDR_H_VERSION__
-#define __REQUIRED_RPCNDR_H_VERSION__ 475
-#endif
-
-#include "rpc.h"
-#include "rpcndr.h"
-
-#ifndef __RPCNDR_H_VERSION__
-#error this stub requires an updated version of <rpcndr.h>
-#endif // __RPCNDR_H_VERSION__
-
-#ifndef COM_NO_WINDOWS_H
-#include "windows.h"
-#include "ole2.h"
-#endif /*COM_NO_WINDOWS_H*/
-
-#ifndef __AccessibleTable2_h__
-#define __AccessibleTable2_h__
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-#pragma once
-#endif
-
-/* Forward Declarations */
-
-#ifndef __IAccessibleTable2_FWD_DEFINED__
-#define __IAccessibleTable2_FWD_DEFINED__
-typedef interface IAccessibleTable2 IAccessibleTable2;
-#endif /* __IAccessibleTable2_FWD_DEFINED__ */
-
-
-/* header files for imported files */
-#include "objidl.h"
-#include "oaidl.h"
-#include "oleacc.h"
-#include "Accessible2.h"
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-
-#ifndef __IAccessibleTable2_INTERFACE_DEFINED__
-#define __IAccessibleTable2_INTERFACE_DEFINED__
-
-/* interface IAccessibleTable2 */
-/* [uuid][object] */
-
-
-EXTERN_C const IID IID_IAccessibleTable2;
-
-#if defined(__cplusplus) && !defined(CINTERFACE)
-
- MIDL_INTERFACE("6167f295-06f0-4cdd-a1fa-02e25153d869")
- IAccessibleTable2 : public IUnknown
- {
- public:
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_cellAt(
- /* [in] */ long row,
- /* [in] */ long column,
- /* [retval][out] */ IUnknown **cell) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_caption(
- /* [retval][out] */ IUnknown **accessible) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnDescription(
- /* [in] */ long column,
- /* [retval][out] */ BSTR *description) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nColumns(
- /* [retval][out] */ long *columnCount) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nRows(
- /* [retval][out] */ long *rowCount) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nSelectedCells(
- /* [retval][out] */ long *cellCount) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nSelectedColumns(
- /* [retval][out] */ long *columnCount) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nSelectedRows(
- /* [retval][out] */ long *rowCount) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowDescription(
- /* [in] */ long row,
- /* [retval][out] */ BSTR *description) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selectedCells(
- /* [size_is][size_is][size_is][out] */ IUnknown ***cells,
- /* [retval][out] */ long *nSelectedCells) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selectedColumns(
- /* [size_is][size_is][out] */ long **selectedColumns,
- /* [retval][out] */ long *nColumns) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selectedRows(
- /* [size_is][size_is][out] */ long **selectedRows,
- /* [retval][out] */ long *nRows) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_summary(
- /* [retval][out] */ IUnknown **accessible) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_isColumnSelected(
- /* [in] */ long column,
- /* [retval][out] */ boolean *isSelected) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_isRowSelected(
- /* [in] */ long row,
- /* [retval][out] */ boolean *isSelected) = 0;
-
- virtual HRESULT STDMETHODCALLTYPE selectRow(
- /* [in] */ long row) = 0;
-
- virtual HRESULT STDMETHODCALLTYPE selectColumn(
- /* [in] */ long column) = 0;
-
- virtual HRESULT STDMETHODCALLTYPE unselectRow(
- /* [in] */ long row) = 0;
-
- virtual HRESULT STDMETHODCALLTYPE unselectColumn(
- /* [in] */ long column) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_modelChange(
- /* [retval][out] */ IA2TableModelChange *modelChange) = 0;
-
- };
-
-#else /* C style interface */
-
- typedef struct IAccessibleTable2Vtbl
- {
- BEGIN_INTERFACE
-
- HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
- IAccessibleTable2 * This,
- /* [in] */ REFIID riid,
- /* [annotation][iid_is][out] */
- __RPC__deref_out void **ppvObject);
-
- ULONG ( STDMETHODCALLTYPE *AddRef )(
- IAccessibleTable2 * This);
-
- ULONG ( STDMETHODCALLTYPE *Release )(
- IAccessibleTable2 * This);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_cellAt )(
- IAccessibleTable2 * This,
- /* [in] */ long row,
- /* [in] */ long column,
- /* [retval][out] */ IUnknown **cell);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_caption )(
- IAccessibleTable2 * This,
- /* [retval][out] */ IUnknown **accessible);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnDescription )(
- IAccessibleTable2 * This,
- /* [in] */ long column,
- /* [retval][out] */ BSTR *description);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nColumns )(
- IAccessibleTable2 * This,
- /* [retval][out] */ long *columnCount);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nRows )(
- IAccessibleTable2 * This,
- /* [retval][out] */ long *rowCount);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelectedCells )(
- IAccessibleTable2 * This,
- /* [retval][out] */ long *cellCount);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelectedColumns )(
- IAccessibleTable2 * This,
- /* [retval][out] */ long *columnCount);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelectedRows )(
- IAccessibleTable2 * This,
- /* [retval][out] */ long *rowCount);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowDescription )(
- IAccessibleTable2 * This,
- /* [in] */ long row,
- /* [retval][out] */ BSTR *description);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectedCells )(
- IAccessibleTable2 * This,
- /* [size_is][size_is][size_is][out] */ IUnknown ***cells,
- /* [retval][out] */ long *nSelectedCells);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectedColumns )(
- IAccessibleTable2 * This,
- /* [size_is][size_is][out] */ long **selectedColumns,
- /* [retval][out] */ long *nColumns);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectedRows )(
- IAccessibleTable2 * This,
- /* [size_is][size_is][out] */ long **selectedRows,
- /* [retval][out] */ long *nRows);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_summary )(
- IAccessibleTable2 * This,
- /* [retval][out] */ IUnknown **accessible);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isColumnSelected )(
- IAccessibleTable2 * This,
- /* [in] */ long column,
- /* [retval][out] */ boolean *isSelected);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isRowSelected )(
- IAccessibleTable2 * This,
- /* [in] */ long row,
- /* [retval][out] */ boolean *isSelected);
-
- HRESULT ( STDMETHODCALLTYPE *selectRow )(
- IAccessibleTable2 * This,
- /* [in] */ long row);
-
- HRESULT ( STDMETHODCALLTYPE *selectColumn )(
- IAccessibleTable2 * This,
- /* [in] */ long column);
-
- HRESULT ( STDMETHODCALLTYPE *unselectRow )(
- IAccessibleTable2 * This,
- /* [in] */ long row);
-
- HRESULT ( STDMETHODCALLTYPE *unselectColumn )(
- IAccessibleTable2 * This,
- /* [in] */ long column);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_modelChange )(
- IAccessibleTable2 * This,
- /* [retval][out] */ IA2TableModelChange *modelChange);
-
- END_INTERFACE
- } IAccessibleTable2Vtbl;
-
- interface IAccessibleTable2
- {
- CONST_VTBL struct IAccessibleTable2Vtbl *lpVtbl;
- };
-
-
-
-#ifdef COBJMACROS
-
-
-#define IAccessibleTable2_QueryInterface(This,riid,ppvObject) \
- ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
-
-#define IAccessibleTable2_AddRef(This) \
- ( (This)->lpVtbl -> AddRef(This) )
-
-#define IAccessibleTable2_Release(This) \
- ( (This)->lpVtbl -> Release(This) )
-
-
-#define IAccessibleTable2_get_cellAt(This,row,column,cell) \
- ( (This)->lpVtbl -> get_cellAt(This,row,column,cell) )
-
-#define IAccessibleTable2_get_caption(This,accessible) \
- ( (This)->lpVtbl -> get_caption(This,accessible) )
-
-#define IAccessibleTable2_get_columnDescription(This,column,description) \
- ( (This)->lpVtbl -> get_columnDescription(This,column,description) )
-
-#define IAccessibleTable2_get_nColumns(This,columnCount) \
- ( (This)->lpVtbl -> get_nColumns(This,columnCount) )
-
-#define IAccessibleTable2_get_nRows(This,rowCount) \
- ( (This)->lpVtbl -> get_nRows(This,rowCount) )
-
-#define IAccessibleTable2_get_nSelectedCells(This,cellCount) \
- ( (This)->lpVtbl -> get_nSelectedCells(This,cellCount) )
-
-#define IAccessibleTable2_get_nSelectedColumns(This,columnCount) \
- ( (This)->lpVtbl -> get_nSelectedColumns(This,columnCount) )
-
-#define IAccessibleTable2_get_nSelectedRows(This,rowCount) \
- ( (This)->lpVtbl -> get_nSelectedRows(This,rowCount) )
-
-#define IAccessibleTable2_get_rowDescription(This,row,description) \
- ( (This)->lpVtbl -> get_rowDescription(This,row,description) )
-
-#define IAccessibleTable2_get_selectedCells(This,cells,nSelectedCells) \
- ( (This)->lpVtbl -> get_selectedCells(This,cells,nSelectedCells) )
-
-#define IAccessibleTable2_get_selectedColumns(This,selectedColumns,nColumns) \
- ( (This)->lpVtbl -> get_selectedColumns(This,selectedColumns,nColumns) )
-
-#define IAccessibleTable2_get_selectedRows(This,selectedRows,nRows) \
- ( (This)->lpVtbl -> get_selectedRows(This,selectedRows,nRows) )
-
-#define IAccessibleTable2_get_summary(This,accessible) \
- ( (This)->lpVtbl -> get_summary(This,accessible) )
-
-#define IAccessibleTable2_get_isColumnSelected(This,column,isSelected) \
- ( (This)->lpVtbl -> get_isColumnSelected(This,column,isSelected) )
-
-#define IAccessibleTable2_get_isRowSelected(This,row,isSelected) \
- ( (This)->lpVtbl -> get_isRowSelected(This,row,isSelected) )
-
-#define IAccessibleTable2_selectRow(This,row) \
- ( (This)->lpVtbl -> selectRow(This,row) )
-
-#define IAccessibleTable2_selectColumn(This,column) \
- ( (This)->lpVtbl -> selectColumn(This,column) )
-
-#define IAccessibleTable2_unselectRow(This,row) \
- ( (This)->lpVtbl -> unselectRow(This,row) )
-
-#define IAccessibleTable2_unselectColumn(This,column) \
- ( (This)->lpVtbl -> unselectColumn(This,column) )
-
-#define IAccessibleTable2_get_modelChange(This,modelChange) \
- ( (This)->lpVtbl -> get_modelChange(This,modelChange) )
-
-#endif /* COBJMACROS */
-
-
-#endif /* C style interface */
-
-
-
-
-#endif /* __IAccessibleTable2_INTERFACE_DEFINED__ */
-
-
-/* Additional Prototypes for ALL interfaces */
-
-unsigned long __RPC_USER BSTR_UserSize( unsigned long *, unsigned long , BSTR * );
-unsigned char * __RPC_USER BSTR_UserMarshal( unsigned long *, unsigned char *, BSTR * );
-unsigned char * __RPC_USER BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * );
-void __RPC_USER BSTR_UserFree( unsigned long *, BSTR * );
-
-/* end of Additional Prototypes */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleTable2_i.c b/src/3rdparty/iaccessible2/generated/x86/AccessibleTable2_i.c
deleted file mode 100644
index f5444155ad..0000000000
--- a/src/3rdparty/iaccessible2/generated/x86/AccessibleTable2_i.c
+++ /dev/null
@@ -1,79 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
-
-/* link this file in with the server and any clients */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:55 2012
- */
-/* Compiler settings for AccessibleTable2.idl:
- Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-
-#include <rpc.h>
-#include <rpcndr.h>
-
-#ifdef _MIDL_USE_GUIDDEF_
-
-#ifndef INITGUID
-#define INITGUID
-#include <guiddef.h>
-#undef INITGUID
-#else
-#include <guiddef.h>
-#endif
-
-#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
- DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
-
-#else // !_MIDL_USE_GUIDDEF_
-
-#ifndef __IID_DEFINED__
-#define __IID_DEFINED__
-
-typedef struct _IID
-{
- unsigned long x;
- unsigned short s1;
- unsigned short s2;
- unsigned char c[8];
-} IID;
-
-#endif // __IID_DEFINED__
-
-#ifndef CLSID_DEFINED
-#define CLSID_DEFINED
-typedef IID CLSID;
-#endif // CLSID_DEFINED
-
-#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
- const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
-
-#endif !_MIDL_USE_GUIDDEF_
-
-MIDL_DEFINE_GUID(IID, IID_IAccessibleTable2,0x6167f295,0x06f0,0x4cdd,0xa1,0xfa,0x02,0xe2,0x51,0x53,0xd8,0x69);
-
-#undef MIDL_DEFINE_GUID
-
-#ifdef __cplusplus
-}
-#endif
-
-
-
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleTable2_p.c b/src/3rdparty/iaccessible2/generated/x86/AccessibleTable2_p.c
deleted file mode 100644
index f4b782f9dc..0000000000
--- a/src/3rdparty/iaccessible2/generated/x86/AccessibleTable2_p.c
+++ /dev/null
@@ -1,1091 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the proxy stub code */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:55 2012
- */
-/* Compiler settings for AccessibleTable2.idl:
- Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#if !defined(_M_IA64) && !defined(_M_AMD64)
-
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-#if _MSC_VER >= 1200
-#pragma warning(push)
-#endif
-
-#pragma warning( disable: 4211 ) /* redefine extern to static */
-#pragma warning( disable: 4232 ) /* dllimport identity*/
-#pragma warning( disable: 4024 ) /* array to pointer mapping*/
-#pragma warning( disable: 4152 ) /* function/data pointer conversion in expression */
-#pragma warning( disable: 4100 ) /* unreferenced arguments in x86 call */
-
-#pragma optimize("", off )
-
-#define USE_STUBLESS_PROXY
-
-
-/* verify that the <rpcproxy.h> version is high enough to compile this file*/
-#ifndef __REDQ_RPCPROXY_H_VERSION__
-#define __REQUIRED_RPCPROXY_H_VERSION__ 475
-#endif
-
-
-#include "rpcproxy.h"
-#ifndef __RPCPROXY_H_VERSION__
-#error this stub requires an updated version of <rpcproxy.h>
-#endif /* __RPCPROXY_H_VERSION__ */
-
-
-#include "AccessibleTable2.h"
-
-#define TYPE_FORMAT_STRING_SIZE 141
-#define PROC_FORMAT_STRING_SIZE 775
-#define EXPR_FORMAT_STRING_SIZE 1
-#define TRANSMIT_AS_TABLE_SIZE 0
-#define WIRE_MARSHAL_TABLE_SIZE 1
-
-typedef struct _AccessibleTable2_MIDL_TYPE_FORMAT_STRING
- {
- short Pad;
- unsigned char Format[ TYPE_FORMAT_STRING_SIZE ];
- } AccessibleTable2_MIDL_TYPE_FORMAT_STRING;
-
-typedef struct _AccessibleTable2_MIDL_PROC_FORMAT_STRING
- {
- short Pad;
- unsigned char Format[ PROC_FORMAT_STRING_SIZE ];
- } AccessibleTable2_MIDL_PROC_FORMAT_STRING;
-
-typedef struct _AccessibleTable2_MIDL_EXPR_FORMAT_STRING
- {
- long Pad;
- unsigned char Format[ EXPR_FORMAT_STRING_SIZE ];
- } AccessibleTable2_MIDL_EXPR_FORMAT_STRING;
-
-
-static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax =
-{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}};
-
-
-extern const AccessibleTable2_MIDL_TYPE_FORMAT_STRING AccessibleTable2__MIDL_TypeFormatString;
-extern const AccessibleTable2_MIDL_PROC_FORMAT_STRING AccessibleTable2__MIDL_ProcFormatString;
-extern const AccessibleTable2_MIDL_EXPR_FORMAT_STRING AccessibleTable2__MIDL_ExprFormatString;
-
-
-extern const MIDL_STUB_DESC Object_StubDesc;
-
-
-extern const MIDL_SERVER_INFO IAccessibleTable2_ServerInfo;
-extern const MIDL_STUBLESS_PROXY_INFO IAccessibleTable2_ProxyInfo;
-
-
-extern const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ];
-
-#if !defined(__RPC_WIN32__)
-#error Invalid build platform for this stub.
-#endif
-
-#if !(TARGET_IS_NT50_OR_LATER)
-#error You need Windows 2000 or later to run this stub because it uses these features:
-#error /robust command line switch.
-#error However, your C/C++ compilation flags indicate you intend to run this app on earlier systems.
-#error This app will fail with the RPC_X_WRONG_STUB_VERSION error.
-#endif
-
-
-static const AccessibleTable2_MIDL_PROC_FORMAT_STRING AccessibleTable2__MIDL_ProcFormatString =
- {
- 0,
- {
-
- /* Procedure get_cellAt */
-
- 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 2 */ NdrFcLong( 0x0 ), /* 0 */
-/* 6 */ NdrFcShort( 0x3 ), /* 3 */
-/* 8 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
-/* 10 */ NdrFcShort( 0x10 ), /* 16 */
-/* 12 */ NdrFcShort( 0x8 ), /* 8 */
-/* 14 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x4, /* 4 */
-/* 16 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 18 */ NdrFcShort( 0x0 ), /* 0 */
-/* 20 */ NdrFcShort( 0x0 ), /* 0 */
-/* 22 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter row */
-
-/* 24 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 26 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 28 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter column */
-
-/* 30 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 32 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 34 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter cell */
-
-/* 36 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
-/* 38 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 40 */ NdrFcShort( 0x2 ), /* Type Offset=2 */
-
- /* Return value */
-
-/* 42 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 44 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
-/* 46 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_caption */
-
-/* 48 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 50 */ NdrFcLong( 0x0 ), /* 0 */
-/* 54 */ NdrFcShort( 0x4 ), /* 4 */
-/* 56 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 58 */ NdrFcShort( 0x0 ), /* 0 */
-/* 60 */ NdrFcShort( 0x8 ), /* 8 */
-/* 62 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x2, /* 2 */
-/* 64 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 66 */ NdrFcShort( 0x0 ), /* 0 */
-/* 68 */ NdrFcShort( 0x0 ), /* 0 */
-/* 70 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter accessible */
-
-/* 72 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
-/* 74 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 76 */ NdrFcShort( 0x2 ), /* Type Offset=2 */
-
- /* Return value */
-
-/* 78 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 80 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 82 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_columnDescription */
-
-/* 84 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 86 */ NdrFcLong( 0x0 ), /* 0 */
-/* 90 */ NdrFcShort( 0x5 ), /* 5 */
-/* 92 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
-/* 94 */ NdrFcShort( 0x8 ), /* 8 */
-/* 96 */ NdrFcShort( 0x8 ), /* 8 */
-/* 98 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x3, /* 3 */
-/* 100 */ 0x8, /* 8 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 102 */ NdrFcShort( 0x1 ), /* 1 */
-/* 104 */ NdrFcShort( 0x0 ), /* 0 */
-/* 106 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter column */
-
-/* 108 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 110 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 112 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter description */
-
-/* 114 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
-/* 116 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 118 */ NdrFcShort( 0x36 ), /* Type Offset=54 */
-
- /* Return value */
-
-/* 120 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 122 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 124 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_nColumns */
-
-/* 126 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 128 */ NdrFcLong( 0x0 ), /* 0 */
-/* 132 */ NdrFcShort( 0x6 ), /* 6 */
-/* 134 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 136 */ NdrFcShort( 0x0 ), /* 0 */
-/* 138 */ NdrFcShort( 0x24 ), /* 36 */
-/* 140 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 142 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 144 */ NdrFcShort( 0x0 ), /* 0 */
-/* 146 */ NdrFcShort( 0x0 ), /* 0 */
-/* 148 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter columnCount */
-
-/* 150 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 152 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 154 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 156 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 158 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 160 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_nRows */
-
-/* 162 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 164 */ NdrFcLong( 0x0 ), /* 0 */
-/* 168 */ NdrFcShort( 0x7 ), /* 7 */
-/* 170 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 172 */ NdrFcShort( 0x0 ), /* 0 */
-/* 174 */ NdrFcShort( 0x24 ), /* 36 */
-/* 176 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 178 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 180 */ NdrFcShort( 0x0 ), /* 0 */
-/* 182 */ NdrFcShort( 0x0 ), /* 0 */
-/* 184 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter rowCount */
-
-/* 186 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 188 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 190 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 192 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 194 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 196 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_nSelectedCells */
-
-/* 198 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 200 */ NdrFcLong( 0x0 ), /* 0 */
-/* 204 */ NdrFcShort( 0x8 ), /* 8 */
-/* 206 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 208 */ NdrFcShort( 0x0 ), /* 0 */
-/* 210 */ NdrFcShort( 0x24 ), /* 36 */
-/* 212 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 214 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 216 */ NdrFcShort( 0x0 ), /* 0 */
-/* 218 */ NdrFcShort( 0x0 ), /* 0 */
-/* 220 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter cellCount */
-
-/* 222 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 224 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 226 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 228 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 230 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 232 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_nSelectedColumns */
-
-/* 234 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 236 */ NdrFcLong( 0x0 ), /* 0 */
-/* 240 */ NdrFcShort( 0x9 ), /* 9 */
-/* 242 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 244 */ NdrFcShort( 0x0 ), /* 0 */
-/* 246 */ NdrFcShort( 0x24 ), /* 36 */
-/* 248 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 250 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 252 */ NdrFcShort( 0x0 ), /* 0 */
-/* 254 */ NdrFcShort( 0x0 ), /* 0 */
-/* 256 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter columnCount */
-
-/* 258 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 260 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 262 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 264 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 266 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 268 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_nSelectedRows */
-
-/* 270 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 272 */ NdrFcLong( 0x0 ), /* 0 */
-/* 276 */ NdrFcShort( 0xa ), /* 10 */
-/* 278 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 280 */ NdrFcShort( 0x0 ), /* 0 */
-/* 282 */ NdrFcShort( 0x24 ), /* 36 */
-/* 284 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 286 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 288 */ NdrFcShort( 0x0 ), /* 0 */
-/* 290 */ NdrFcShort( 0x0 ), /* 0 */
-/* 292 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter rowCount */
-
-/* 294 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 296 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 298 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 300 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 302 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 304 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_rowDescription */
-
-/* 306 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 308 */ NdrFcLong( 0x0 ), /* 0 */
-/* 312 */ NdrFcShort( 0xb ), /* 11 */
-/* 314 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
-/* 316 */ NdrFcShort( 0x8 ), /* 8 */
-/* 318 */ NdrFcShort( 0x8 ), /* 8 */
-/* 320 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x3, /* 3 */
-/* 322 */ 0x8, /* 8 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 324 */ NdrFcShort( 0x1 ), /* 1 */
-/* 326 */ NdrFcShort( 0x0 ), /* 0 */
-/* 328 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter row */
-
-/* 330 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 332 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 334 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter description */
-
-/* 336 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
-/* 338 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 340 */ NdrFcShort( 0x36 ), /* Type Offset=54 */
-
- /* Return value */
-
-/* 342 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 344 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 346 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_selectedCells */
-
-/* 348 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 350 */ NdrFcLong( 0x0 ), /* 0 */
-/* 354 */ NdrFcShort( 0xc ), /* 12 */
-/* 356 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
-/* 358 */ NdrFcShort( 0x0 ), /* 0 */
-/* 360 */ NdrFcShort( 0x24 ), /* 36 */
-/* 362 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x3, /* 3 */
-/* 364 */ 0x8, /* 8 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 366 */ NdrFcShort( 0x1 ), /* 1 */
-/* 368 */ NdrFcShort( 0x0 ), /* 0 */
-/* 370 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter cells */
-
-/* 372 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
-/* 374 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 376 */ NdrFcShort( 0x44 ), /* Type Offset=68 */
-
- /* Parameter nSelectedCells */
-
-/* 378 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 380 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 382 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 384 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 386 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 388 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_selectedColumns */
-
-/* 390 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 392 */ NdrFcLong( 0x0 ), /* 0 */
-/* 396 */ NdrFcShort( 0xd ), /* 13 */
-/* 398 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
-/* 400 */ NdrFcShort( 0x0 ), /* 0 */
-/* 402 */ NdrFcShort( 0x24 ), /* 36 */
-/* 404 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x3, /* 3 */
-/* 406 */ 0x8, /* 8 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 408 */ NdrFcShort( 0x1 ), /* 1 */
-/* 410 */ NdrFcShort( 0x0 ), /* 0 */
-/* 412 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter selectedColumns */
-
-/* 414 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
-/* 416 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 418 */ NdrFcShort( 0x62 ), /* Type Offset=98 */
-
- /* Parameter nColumns */
-
-/* 420 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 422 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 424 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 426 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 428 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 430 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_selectedRows */
-
-/* 432 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 434 */ NdrFcLong( 0x0 ), /* 0 */
-/* 438 */ NdrFcShort( 0xe ), /* 14 */
-/* 440 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
-/* 442 */ NdrFcShort( 0x0 ), /* 0 */
-/* 444 */ NdrFcShort( 0x24 ), /* 36 */
-/* 446 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x3, /* 3 */
-/* 448 */ 0x8, /* 8 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 450 */ NdrFcShort( 0x1 ), /* 1 */
-/* 452 */ NdrFcShort( 0x0 ), /* 0 */
-/* 454 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter selectedRows */
-
-/* 456 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
-/* 458 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 460 */ NdrFcShort( 0x62 ), /* Type Offset=98 */
-
- /* Parameter nRows */
-
-/* 462 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 464 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 466 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 468 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 470 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 472 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_summary */
-
-/* 474 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 476 */ NdrFcLong( 0x0 ), /* 0 */
-/* 480 */ NdrFcShort( 0xf ), /* 15 */
-/* 482 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 484 */ NdrFcShort( 0x0 ), /* 0 */
-/* 486 */ NdrFcShort( 0x8 ), /* 8 */
-/* 488 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x2, /* 2 */
-/* 490 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 492 */ NdrFcShort( 0x0 ), /* 0 */
-/* 494 */ NdrFcShort( 0x0 ), /* 0 */
-/* 496 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter accessible */
-
-/* 498 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
-/* 500 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 502 */ NdrFcShort( 0x2 ), /* Type Offset=2 */
-
- /* Return value */
-
-/* 504 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 506 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 508 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_isColumnSelected */
-
-/* 510 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 512 */ NdrFcLong( 0x0 ), /* 0 */
-/* 516 */ NdrFcShort( 0x10 ), /* 16 */
-/* 518 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
-/* 520 */ NdrFcShort( 0x8 ), /* 8 */
-/* 522 */ NdrFcShort( 0x21 ), /* 33 */
-/* 524 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x3, /* 3 */
-/* 526 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 528 */ NdrFcShort( 0x0 ), /* 0 */
-/* 530 */ NdrFcShort( 0x0 ), /* 0 */
-/* 532 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter column */
-
-/* 534 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 536 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 538 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter isSelected */
-
-/* 540 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 542 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 544 */ 0x3, /* FC_SMALL */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 546 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 548 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 550 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_isRowSelected */
-
-/* 552 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 554 */ NdrFcLong( 0x0 ), /* 0 */
-/* 558 */ NdrFcShort( 0x11 ), /* 17 */
-/* 560 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
-/* 562 */ NdrFcShort( 0x8 ), /* 8 */
-/* 564 */ NdrFcShort( 0x21 ), /* 33 */
-/* 566 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x3, /* 3 */
-/* 568 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 570 */ NdrFcShort( 0x0 ), /* 0 */
-/* 572 */ NdrFcShort( 0x0 ), /* 0 */
-/* 574 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter row */
-
-/* 576 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 578 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 580 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter isSelected */
-
-/* 582 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 584 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 586 */ 0x3, /* FC_SMALL */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 588 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 590 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 592 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure selectRow */
-
-/* 594 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 596 */ NdrFcLong( 0x0 ), /* 0 */
-/* 600 */ NdrFcShort( 0x12 ), /* 18 */
-/* 602 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 604 */ NdrFcShort( 0x8 ), /* 8 */
-/* 606 */ NdrFcShort( 0x8 ), /* 8 */
-/* 608 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 610 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 612 */ NdrFcShort( 0x0 ), /* 0 */
-/* 614 */ NdrFcShort( 0x0 ), /* 0 */
-/* 616 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter row */
-
-/* 618 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 620 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 622 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 624 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 626 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 628 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure selectColumn */
-
-/* 630 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 632 */ NdrFcLong( 0x0 ), /* 0 */
-/* 636 */ NdrFcShort( 0x13 ), /* 19 */
-/* 638 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 640 */ NdrFcShort( 0x8 ), /* 8 */
-/* 642 */ NdrFcShort( 0x8 ), /* 8 */
-/* 644 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 646 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 648 */ NdrFcShort( 0x0 ), /* 0 */
-/* 650 */ NdrFcShort( 0x0 ), /* 0 */
-/* 652 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter column */
-
-/* 654 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 656 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 658 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 660 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 662 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 664 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure unselectRow */
-
-/* 666 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 668 */ NdrFcLong( 0x0 ), /* 0 */
-/* 672 */ NdrFcShort( 0x14 ), /* 20 */
-/* 674 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 676 */ NdrFcShort( 0x8 ), /* 8 */
-/* 678 */ NdrFcShort( 0x8 ), /* 8 */
-/* 680 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 682 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 684 */ NdrFcShort( 0x0 ), /* 0 */
-/* 686 */ NdrFcShort( 0x0 ), /* 0 */
-/* 688 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter row */
-
-/* 690 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 692 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 694 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 696 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 698 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 700 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure unselectColumn */
-
-/* 702 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 704 */ NdrFcLong( 0x0 ), /* 0 */
-/* 708 */ NdrFcShort( 0x15 ), /* 21 */
-/* 710 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 712 */ NdrFcShort( 0x8 ), /* 8 */
-/* 714 */ NdrFcShort( 0x8 ), /* 8 */
-/* 716 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 718 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 720 */ NdrFcShort( 0x0 ), /* 0 */
-/* 722 */ NdrFcShort( 0x0 ), /* 0 */
-/* 724 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter column */
-
-/* 726 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 728 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 730 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 732 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 734 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 736 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_modelChange */
-
-/* 738 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 740 */ NdrFcLong( 0x0 ), /* 0 */
-/* 744 */ NdrFcShort( 0x16 ), /* 22 */
-/* 746 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 748 */ NdrFcShort( 0x0 ), /* 0 */
-/* 750 */ NdrFcShort( 0x8 ), /* 8 */
-/* 752 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x2, /* 2 */
-/* 754 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 756 */ NdrFcShort( 0x0 ), /* 0 */
-/* 758 */ NdrFcShort( 0x0 ), /* 0 */
-/* 760 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter modelChange */
-
-/* 762 */ NdrFcShort( 0x6113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=24 */
-/* 764 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 766 */ NdrFcShort( 0x7e ), /* Type Offset=126 */
-
- /* Return value */
-
-/* 768 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 770 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 772 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- 0x0
- }
- };
-
-static const AccessibleTable2_MIDL_TYPE_FORMAT_STRING AccessibleTable2__MIDL_TypeFormatString =
- {
- 0,
- {
- NdrFcShort( 0x0 ), /* 0 */
-/* 2 */
- 0x11, 0x10, /* FC_RP [pointer_deref] */
-/* 4 */ NdrFcShort( 0x2 ), /* Offset= 2 (6) */
-/* 6 */
- 0x2f, /* FC_IP */
- 0x5a, /* FC_CONSTANT_IID */
-/* 8 */ NdrFcLong( 0x0 ), /* 0 */
-/* 12 */ NdrFcShort( 0x0 ), /* 0 */
-/* 14 */ NdrFcShort( 0x0 ), /* 0 */
-/* 16 */ 0xc0, /* 192 */
- 0x0, /* 0 */
-/* 18 */ 0x0, /* 0 */
- 0x0, /* 0 */
-/* 20 */ 0x0, /* 0 */
- 0x0, /* 0 */
-/* 22 */ 0x0, /* 0 */
- 0x46, /* 70 */
-/* 24 */
- 0x11, 0x4, /* FC_RP [alloced_on_stack] */
-/* 26 */ NdrFcShort( 0x1c ), /* Offset= 28 (54) */
-/* 28 */
- 0x13, 0x0, /* FC_OP */
-/* 30 */ NdrFcShort( 0xe ), /* Offset= 14 (44) */
-/* 32 */
- 0x1b, /* FC_CARRAY */
- 0x1, /* 1 */
-/* 34 */ NdrFcShort( 0x2 ), /* 2 */
-/* 36 */ 0x9, /* Corr desc: FC_ULONG */
- 0x0, /* */
-/* 38 */ NdrFcShort( 0xfffc ), /* -4 */
-/* 40 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 42 */ 0x6, /* FC_SHORT */
- 0x5b, /* FC_END */
-/* 44 */
- 0x17, /* FC_CSTRUCT */
- 0x3, /* 3 */
-/* 46 */ NdrFcShort( 0x8 ), /* 8 */
-/* 48 */ NdrFcShort( 0xfff0 ), /* Offset= -16 (32) */
-/* 50 */ 0x8, /* FC_LONG */
- 0x8, /* FC_LONG */
-/* 52 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-/* 54 */ 0xb4, /* FC_USER_MARSHAL */
- 0x83, /* 131 */
-/* 56 */ NdrFcShort( 0x0 ), /* 0 */
-/* 58 */ NdrFcShort( 0x4 ), /* 4 */
-/* 60 */ NdrFcShort( 0x0 ), /* 0 */
-/* 62 */ NdrFcShort( 0xffde ), /* Offset= -34 (28) */
-/* 64 */
- 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
-/* 66 */ 0x8, /* FC_LONG */
- 0x5c, /* FC_PAD */
-/* 68 */
- 0x11, 0x14, /* FC_RP [alloced_on_stack] [pointer_deref] */
-/* 70 */ NdrFcShort( 0x2 ), /* Offset= 2 (72) */
-/* 72 */
- 0x13, 0x0, /* FC_OP */
-/* 74 */ NdrFcShort( 0x2 ), /* Offset= 2 (76) */
-/* 76 */
- 0x21, /* FC_BOGUS_ARRAY */
- 0x3, /* 3 */
-/* 78 */ NdrFcShort( 0x0 ), /* 0 */
-/* 80 */ 0x28, /* Corr desc: parameter, FC_LONG */
- 0x54, /* FC_DEREFERENCE */
-/* 82 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 84 */ NdrFcShort( 0x0 ), /* Corr flags: */
-/* 86 */ NdrFcLong( 0xffffffff ), /* -1 */
-/* 90 */ NdrFcShort( 0x0 ), /* Corr flags: */
-/* 92 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
- 0x0, /* 0 */
-/* 94 */ NdrFcShort( 0xffa8 ), /* Offset= -88 (6) */
-/* 96 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-/* 98 */
- 0x11, 0x14, /* FC_RP [alloced_on_stack] [pointer_deref] */
-/* 100 */ NdrFcShort( 0x2 ), /* Offset= 2 (102) */
-/* 102 */
- 0x13, 0x0, /* FC_OP */
-/* 104 */ NdrFcShort( 0x2 ), /* Offset= 2 (106) */
-/* 106 */
- 0x1b, /* FC_CARRAY */
- 0x3, /* 3 */
-/* 108 */ NdrFcShort( 0x4 ), /* 4 */
-/* 110 */ 0x28, /* Corr desc: parameter, FC_LONG */
- 0x54, /* FC_DEREFERENCE */
-/* 112 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 114 */ NdrFcShort( 0x0 ), /* Corr flags: */
-/* 116 */ 0x8, /* FC_LONG */
- 0x5b, /* FC_END */
-/* 118 */
- 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
-/* 120 */ 0x3, /* FC_SMALL */
- 0x5c, /* FC_PAD */
-/* 122 */
- 0x11, 0x4, /* FC_RP [alloced_on_stack] */
-/* 124 */ NdrFcShort( 0x2 ), /* Offset= 2 (126) */
-/* 126 */
- 0x1a, /* FC_BOGUS_STRUCT */
- 0x3, /* 3 */
-/* 128 */ NdrFcShort( 0x14 ), /* 20 */
-/* 130 */ NdrFcShort( 0x0 ), /* 0 */
-/* 132 */ NdrFcShort( 0x0 ), /* Offset= 0 (132) */
-/* 134 */ 0xd, /* FC_ENUM16 */
- 0x8, /* FC_LONG */
-/* 136 */ 0x8, /* FC_LONG */
- 0x8, /* FC_LONG */
-/* 138 */ 0x8, /* FC_LONG */
- 0x5b, /* FC_END */
-
- 0x0
- }
- };
-
-static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] =
- {
-
- {
- BSTR_UserSize
- ,BSTR_UserMarshal
- ,BSTR_UserUnmarshal
- ,BSTR_UserFree
- }
-
- };
-
-
-
-/* Object interface: IUnknown, ver. 0.0,
- GUID={0x00000000,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
-
-
-/* Object interface: IAccessibleTable2, ver. 0.0,
- GUID={0x6167f295,0x06f0,0x4cdd,{0xa1,0xfa,0x02,0xe2,0x51,0x53,0xd8,0x69}} */
-
-#pragma code_seg(".orpc")
-static const unsigned short IAccessibleTable2_FormatStringOffsetTable[] =
- {
- 0,
- 48,
- 84,
- 126,
- 162,
- 198,
- 234,
- 270,
- 306,
- 348,
- 390,
- 432,
- 474,
- 510,
- 552,
- 594,
- 630,
- 666,
- 702,
- 738
- };
-
-static const MIDL_STUBLESS_PROXY_INFO IAccessibleTable2_ProxyInfo =
- {
- &Object_StubDesc,
- AccessibleTable2__MIDL_ProcFormatString.Format,
- &IAccessibleTable2_FormatStringOffsetTable[-3],
- 0,
- 0,
- 0
- };
-
-
-static const MIDL_SERVER_INFO IAccessibleTable2_ServerInfo =
- {
- &Object_StubDesc,
- 0,
- AccessibleTable2__MIDL_ProcFormatString.Format,
- &IAccessibleTable2_FormatStringOffsetTable[-3],
- 0,
- 0,
- 0,
- 0};
-CINTERFACE_PROXY_VTABLE(23) _IAccessibleTable2ProxyVtbl =
-{
- &IAccessibleTable2_ProxyInfo,
- &IID_IAccessibleTable2,
- IUnknown_QueryInterface_Proxy,
- IUnknown_AddRef_Proxy,
- IUnknown_Release_Proxy ,
- (void *) (INT_PTR) -1 /* IAccessibleTable2::get_cellAt */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable2::get_caption */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable2::get_columnDescription */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable2::get_nColumns */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable2::get_nRows */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable2::get_nSelectedCells */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable2::get_nSelectedColumns */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable2::get_nSelectedRows */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable2::get_rowDescription */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable2::get_selectedCells */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable2::get_selectedColumns */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable2::get_selectedRows */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable2::get_summary */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable2::get_isColumnSelected */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable2::get_isRowSelected */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable2::selectRow */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable2::selectColumn */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable2::unselectRow */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable2::unselectColumn */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable2::get_modelChange */
-};
-
-const CInterfaceStubVtbl _IAccessibleTable2StubVtbl =
-{
- &IID_IAccessibleTable2,
- &IAccessibleTable2_ServerInfo,
- 23,
- 0, /* pure interpreted */
- CStdStubBuffer_METHODS
-};
-
-static const MIDL_STUB_DESC Object_StubDesc =
- {
- 0,
- NdrOleAllocate,
- NdrOleFree,
- 0,
- 0,
- 0,
- 0,
- 0,
- AccessibleTable2__MIDL_TypeFormatString.Format,
- 1, /* -error bounds_check flag */
- 0x50002, /* Ndr library version */
- 0,
- 0x700022b, /* MIDL Version 7.0.555 */
- 0,
- UserMarshalRoutines,
- 0, /* notify & notify_flag routine table */
- 0x1, /* MIDL flag */
- 0, /* cs routines */
- 0, /* proxy/server info */
- 0
- };
-
-const CInterfaceProxyVtbl * const _AccessibleTable2_ProxyVtblList[] =
-{
- ( CInterfaceProxyVtbl *) &_IAccessibleTable2ProxyVtbl,
- 0
-};
-
-const CInterfaceStubVtbl * const _AccessibleTable2_StubVtblList[] =
-{
- ( CInterfaceStubVtbl *) &_IAccessibleTable2StubVtbl,
- 0
-};
-
-PCInterfaceName const _AccessibleTable2_InterfaceNamesList[] =
-{
- "IAccessibleTable2",
- 0
-};
-
-
-#define _AccessibleTable2_CHECK_IID(n) IID_GENERIC_CHECK_IID( _AccessibleTable2, pIID, n)
-
-int __stdcall _AccessibleTable2_IID_Lookup( const IID * pIID, int * pIndex )
-{
-
- if(!_AccessibleTable2_CHECK_IID(0))
- {
- *pIndex = 0;
- return 1;
- }
-
- return 0;
-}
-
-const ExtendedProxyFileInfo AccessibleTable2_ProxyFileInfo =
-{
- (PCInterfaceProxyVtblList *) & _AccessibleTable2_ProxyVtblList,
- (PCInterfaceStubVtblList *) & _AccessibleTable2_StubVtblList,
- (const PCInterfaceName * ) & _AccessibleTable2_InterfaceNamesList,
- 0, /* no delegation */
- & _AccessibleTable2_IID_Lookup,
- 1,
- 2,
- 0, /* table of [async_uuid] interfaces */
- 0, /* Filler1 */
- 0, /* Filler2 */
- 0 /* Filler3 */
-};
-#pragma optimize("", on )
-#if _MSC_VER >= 1200
-#pragma warning(pop)
-#endif
-
-
-#endif /* !defined(_M_IA64) && !defined(_M_AMD64)*/
-
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleTableCell.h b/src/3rdparty/iaccessible2/generated/x86/AccessibleTableCell.h
deleted file mode 100644
index 621768e149..0000000000
--- a/src/3rdparty/iaccessible2/generated/x86/AccessibleTableCell.h
+++ /dev/null
@@ -1,246 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the definitions for the interfaces */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:55 2012
- */
-/* Compiler settings for AccessibleTableCell.idl:
- Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-
-
-/* verify that the <rpcndr.h> version is high enough to compile this file*/
-#ifndef __REQUIRED_RPCNDR_H_VERSION__
-#define __REQUIRED_RPCNDR_H_VERSION__ 475
-#endif
-
-#include "rpc.h"
-#include "rpcndr.h"
-
-#ifndef __RPCNDR_H_VERSION__
-#error this stub requires an updated version of <rpcndr.h>
-#endif // __RPCNDR_H_VERSION__
-
-#ifndef COM_NO_WINDOWS_H
-#include "windows.h"
-#include "ole2.h"
-#endif /*COM_NO_WINDOWS_H*/
-
-#ifndef __AccessibleTableCell_h__
-#define __AccessibleTableCell_h__
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-#pragma once
-#endif
-
-/* Forward Declarations */
-
-#ifndef __IAccessibleTableCell_FWD_DEFINED__
-#define __IAccessibleTableCell_FWD_DEFINED__
-typedef interface IAccessibleTableCell IAccessibleTableCell;
-#endif /* __IAccessibleTableCell_FWD_DEFINED__ */
-
-
-/* header files for imported files */
-#include "objidl.h"
-#include "oaidl.h"
-#include "oleacc.h"
-#include "Accessible2.h"
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-
-#ifndef __IAccessibleTableCell_INTERFACE_DEFINED__
-#define __IAccessibleTableCell_INTERFACE_DEFINED__
-
-/* interface IAccessibleTableCell */
-/* [uuid][object] */
-
-
-EXTERN_C const IID IID_IAccessibleTableCell;
-
-#if defined(__cplusplus) && !defined(CINTERFACE)
-
- MIDL_INTERFACE("594116B1-C99F-4847-AD06-0A7A86ECE645")
- IAccessibleTableCell : public IUnknown
- {
- public:
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnExtent(
- /* [retval][out] */ long *nColumnsSpanned) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnHeaderCells(
- /* [size_is][size_is][size_is][out] */ IUnknown ***cellAccessibles,
- /* [retval][out] */ long *nColumnHeaderCells) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnIndex(
- /* [retval][out] */ long *columnIndex) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowExtent(
- /* [retval][out] */ long *nRowsSpanned) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowHeaderCells(
- /* [size_is][size_is][size_is][out] */ IUnknown ***cellAccessibles,
- /* [retval][out] */ long *nRowHeaderCells) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowIndex(
- /* [retval][out] */ long *rowIndex) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_isSelected(
- /* [retval][out] */ boolean *isSelected) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowColumnExtents(
- /* [out] */ long *row,
- /* [out] */ long *column,
- /* [out] */ long *rowExtents,
- /* [out] */ long *columnExtents,
- /* [retval][out] */ boolean *isSelected) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_table(
- /* [retval][out] */ IUnknown **table) = 0;
-
- };
-
-#else /* C style interface */
-
- typedef struct IAccessibleTableCellVtbl
- {
- BEGIN_INTERFACE
-
- HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
- IAccessibleTableCell * This,
- /* [in] */ REFIID riid,
- /* [annotation][iid_is][out] */
- __RPC__deref_out void **ppvObject);
-
- ULONG ( STDMETHODCALLTYPE *AddRef )(
- IAccessibleTableCell * This);
-
- ULONG ( STDMETHODCALLTYPE *Release )(
- IAccessibleTableCell * This);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnExtent )(
- IAccessibleTableCell * This,
- /* [retval][out] */ long *nColumnsSpanned);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnHeaderCells )(
- IAccessibleTableCell * This,
- /* [size_is][size_is][size_is][out] */ IUnknown ***cellAccessibles,
- /* [retval][out] */ long *nColumnHeaderCells);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnIndex )(
- IAccessibleTableCell * This,
- /* [retval][out] */ long *columnIndex);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowExtent )(
- IAccessibleTableCell * This,
- /* [retval][out] */ long *nRowsSpanned);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowHeaderCells )(
- IAccessibleTableCell * This,
- /* [size_is][size_is][size_is][out] */ IUnknown ***cellAccessibles,
- /* [retval][out] */ long *nRowHeaderCells);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowIndex )(
- IAccessibleTableCell * This,
- /* [retval][out] */ long *rowIndex);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isSelected )(
- IAccessibleTableCell * This,
- /* [retval][out] */ boolean *isSelected);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowColumnExtents )(
- IAccessibleTableCell * This,
- /* [out] */ long *row,
- /* [out] */ long *column,
- /* [out] */ long *rowExtents,
- /* [out] */ long *columnExtents,
- /* [retval][out] */ boolean *isSelected);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_table )(
- IAccessibleTableCell * This,
- /* [retval][out] */ IUnknown **table);
-
- END_INTERFACE
- } IAccessibleTableCellVtbl;
-
- interface IAccessibleTableCell
- {
- CONST_VTBL struct IAccessibleTableCellVtbl *lpVtbl;
- };
-
-
-
-#ifdef COBJMACROS
-
-
-#define IAccessibleTableCell_QueryInterface(This,riid,ppvObject) \
- ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
-
-#define IAccessibleTableCell_AddRef(This) \
- ( (This)->lpVtbl -> AddRef(This) )
-
-#define IAccessibleTableCell_Release(This) \
- ( (This)->lpVtbl -> Release(This) )
-
-
-#define IAccessibleTableCell_get_columnExtent(This,nColumnsSpanned) \
- ( (This)->lpVtbl -> get_columnExtent(This,nColumnsSpanned) )
-
-#define IAccessibleTableCell_get_columnHeaderCells(This,cellAccessibles,nColumnHeaderCells) \
- ( (This)->lpVtbl -> get_columnHeaderCells(This,cellAccessibles,nColumnHeaderCells) )
-
-#define IAccessibleTableCell_get_columnIndex(This,columnIndex) \
- ( (This)->lpVtbl -> get_columnIndex(This,columnIndex) )
-
-#define IAccessibleTableCell_get_rowExtent(This,nRowsSpanned) \
- ( (This)->lpVtbl -> get_rowExtent(This,nRowsSpanned) )
-
-#define IAccessibleTableCell_get_rowHeaderCells(This,cellAccessibles,nRowHeaderCells) \
- ( (This)->lpVtbl -> get_rowHeaderCells(This,cellAccessibles,nRowHeaderCells) )
-
-#define IAccessibleTableCell_get_rowIndex(This,rowIndex) \
- ( (This)->lpVtbl -> get_rowIndex(This,rowIndex) )
-
-#define IAccessibleTableCell_get_isSelected(This,isSelected) \
- ( (This)->lpVtbl -> get_isSelected(This,isSelected) )
-
-#define IAccessibleTableCell_get_rowColumnExtents(This,row,column,rowExtents,columnExtents,isSelected) \
- ( (This)->lpVtbl -> get_rowColumnExtents(This,row,column,rowExtents,columnExtents,isSelected) )
-
-#define IAccessibleTableCell_get_table(This,table) \
- ( (This)->lpVtbl -> get_table(This,table) )
-
-#endif /* COBJMACROS */
-
-
-#endif /* C style interface */
-
-
-
-
-#endif /* __IAccessibleTableCell_INTERFACE_DEFINED__ */
-
-
-/* Additional Prototypes for ALL interfaces */
-
-/* end of Additional Prototypes */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleTableCell_i.c b/src/3rdparty/iaccessible2/generated/x86/AccessibleTableCell_i.c
deleted file mode 100644
index 4ea10e057d..0000000000
--- a/src/3rdparty/iaccessible2/generated/x86/AccessibleTableCell_i.c
+++ /dev/null
@@ -1,79 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
-
-/* link this file in with the server and any clients */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:55 2012
- */
-/* Compiler settings for AccessibleTableCell.idl:
- Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-
-#include <rpc.h>
-#include <rpcndr.h>
-
-#ifdef _MIDL_USE_GUIDDEF_
-
-#ifndef INITGUID
-#define INITGUID
-#include <guiddef.h>
-#undef INITGUID
-#else
-#include <guiddef.h>
-#endif
-
-#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
- DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
-
-#else // !_MIDL_USE_GUIDDEF_
-
-#ifndef __IID_DEFINED__
-#define __IID_DEFINED__
-
-typedef struct _IID
-{
- unsigned long x;
- unsigned short s1;
- unsigned short s2;
- unsigned char c[8];
-} IID;
-
-#endif // __IID_DEFINED__
-
-#ifndef CLSID_DEFINED
-#define CLSID_DEFINED
-typedef IID CLSID;
-#endif // CLSID_DEFINED
-
-#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
- const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
-
-#endif !_MIDL_USE_GUIDDEF_
-
-MIDL_DEFINE_GUID(IID, IID_IAccessibleTableCell,0x594116B1,0xC99F,0x4847,0xAD,0x06,0x0A,0x7A,0x86,0xEC,0xE6,0x45);
-
-#undef MIDL_DEFINE_GUID
-
-#ifdef __cplusplus
-}
-#endif
-
-
-
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleTableCell_p.c b/src/3rdparty/iaccessible2/generated/x86/AccessibleTableCell_p.c
deleted file mode 100644
index 2627caaef9..0000000000
--- a/src/3rdparty/iaccessible2/generated/x86/AccessibleTableCell_p.c
+++ /dev/null
@@ -1,637 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the proxy stub code */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:55 2012
- */
-/* Compiler settings for AccessibleTableCell.idl:
- Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#if !defined(_M_IA64) && !defined(_M_AMD64)
-
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-#if _MSC_VER >= 1200
-#pragma warning(push)
-#endif
-
-#pragma warning( disable: 4211 ) /* redefine extern to static */
-#pragma warning( disable: 4232 ) /* dllimport identity*/
-#pragma warning( disable: 4024 ) /* array to pointer mapping*/
-#pragma warning( disable: 4152 ) /* function/data pointer conversion in expression */
-#pragma warning( disable: 4100 ) /* unreferenced arguments in x86 call */
-
-#pragma optimize("", off )
-
-#define USE_STUBLESS_PROXY
-
-
-/* verify that the <rpcproxy.h> version is high enough to compile this file*/
-#ifndef __REDQ_RPCPROXY_H_VERSION__
-#define __REQUIRED_RPCPROXY_H_VERSION__ 475
-#endif
-
-
-#include "rpcproxy.h"
-#ifndef __RPCPROXY_H_VERSION__
-#error this stub requires an updated version of <rpcproxy.h>
-#endif /* __RPCPROXY_H_VERSION__ */
-
-
-#include "AccessibleTableCell.h"
-
-#define TYPE_FORMAT_STRING_SIZE 63
-#define PROC_FORMAT_STRING_SIZE 361
-#define EXPR_FORMAT_STRING_SIZE 1
-#define TRANSMIT_AS_TABLE_SIZE 0
-#define WIRE_MARSHAL_TABLE_SIZE 0
-
-typedef struct _AccessibleTableCell_MIDL_TYPE_FORMAT_STRING
- {
- short Pad;
- unsigned char Format[ TYPE_FORMAT_STRING_SIZE ];
- } AccessibleTableCell_MIDL_TYPE_FORMAT_STRING;
-
-typedef struct _AccessibleTableCell_MIDL_PROC_FORMAT_STRING
- {
- short Pad;
- unsigned char Format[ PROC_FORMAT_STRING_SIZE ];
- } AccessibleTableCell_MIDL_PROC_FORMAT_STRING;
-
-typedef struct _AccessibleTableCell_MIDL_EXPR_FORMAT_STRING
- {
- long Pad;
- unsigned char Format[ EXPR_FORMAT_STRING_SIZE ];
- } AccessibleTableCell_MIDL_EXPR_FORMAT_STRING;
-
-
-static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax =
-{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}};
-
-
-extern const AccessibleTableCell_MIDL_TYPE_FORMAT_STRING AccessibleTableCell__MIDL_TypeFormatString;
-extern const AccessibleTableCell_MIDL_PROC_FORMAT_STRING AccessibleTableCell__MIDL_ProcFormatString;
-extern const AccessibleTableCell_MIDL_EXPR_FORMAT_STRING AccessibleTableCell__MIDL_ExprFormatString;
-
-
-extern const MIDL_STUB_DESC Object_StubDesc;
-
-
-extern const MIDL_SERVER_INFO IAccessibleTableCell_ServerInfo;
-extern const MIDL_STUBLESS_PROXY_INFO IAccessibleTableCell_ProxyInfo;
-
-
-
-#if !defined(__RPC_WIN32__)
-#error Invalid build platform for this stub.
-#endif
-
-#if !(TARGET_IS_NT50_OR_LATER)
-#error You need Windows 2000 or later to run this stub because it uses these features:
-#error /robust command line switch.
-#error However, your C/C++ compilation flags indicate you intend to run this app on earlier systems.
-#error This app will fail with the RPC_X_WRONG_STUB_VERSION error.
-#endif
-
-
-static const AccessibleTableCell_MIDL_PROC_FORMAT_STRING AccessibleTableCell__MIDL_ProcFormatString =
- {
- 0,
- {
-
- /* Procedure get_columnExtent */
-
- 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 2 */ NdrFcLong( 0x0 ), /* 0 */
-/* 6 */ NdrFcShort( 0x3 ), /* 3 */
-/* 8 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 10 */ NdrFcShort( 0x0 ), /* 0 */
-/* 12 */ NdrFcShort( 0x24 ), /* 36 */
-/* 14 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 16 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 18 */ NdrFcShort( 0x0 ), /* 0 */
-/* 20 */ NdrFcShort( 0x0 ), /* 0 */
-/* 22 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter nColumnsSpanned */
-
-/* 24 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 26 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 28 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 30 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 32 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 34 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_columnHeaderCells */
-
-/* 36 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 38 */ NdrFcLong( 0x0 ), /* 0 */
-/* 42 */ NdrFcShort( 0x4 ), /* 4 */
-/* 44 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
-/* 46 */ NdrFcShort( 0x0 ), /* 0 */
-/* 48 */ NdrFcShort( 0x24 ), /* 36 */
-/* 50 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x3, /* 3 */
-/* 52 */ 0x8, /* 8 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 54 */ NdrFcShort( 0x1 ), /* 1 */
-/* 56 */ NdrFcShort( 0x0 ), /* 0 */
-/* 58 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter cellAccessibles */
-
-/* 60 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
-/* 62 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 64 */ NdrFcShort( 0x6 ), /* Type Offset=6 */
-
- /* Parameter nColumnHeaderCells */
-
-/* 66 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 68 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 70 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 72 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 74 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 76 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_columnIndex */
-
-/* 78 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 80 */ NdrFcLong( 0x0 ), /* 0 */
-/* 84 */ NdrFcShort( 0x5 ), /* 5 */
-/* 86 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 88 */ NdrFcShort( 0x0 ), /* 0 */
-/* 90 */ NdrFcShort( 0x24 ), /* 36 */
-/* 92 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 94 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 96 */ NdrFcShort( 0x0 ), /* 0 */
-/* 98 */ NdrFcShort( 0x0 ), /* 0 */
-/* 100 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter columnIndex */
-
-/* 102 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 104 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 106 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 108 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 110 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 112 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_rowExtent */
-
-/* 114 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 116 */ NdrFcLong( 0x0 ), /* 0 */
-/* 120 */ NdrFcShort( 0x6 ), /* 6 */
-/* 122 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 124 */ NdrFcShort( 0x0 ), /* 0 */
-/* 126 */ NdrFcShort( 0x24 ), /* 36 */
-/* 128 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 130 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 132 */ NdrFcShort( 0x0 ), /* 0 */
-/* 134 */ NdrFcShort( 0x0 ), /* 0 */
-/* 136 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter nRowsSpanned */
-
-/* 138 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 140 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 142 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 144 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 146 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 148 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_rowHeaderCells */
-
-/* 150 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 152 */ NdrFcLong( 0x0 ), /* 0 */
-/* 156 */ NdrFcShort( 0x7 ), /* 7 */
-/* 158 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
-/* 160 */ NdrFcShort( 0x0 ), /* 0 */
-/* 162 */ NdrFcShort( 0x24 ), /* 36 */
-/* 164 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x3, /* 3 */
-/* 166 */ 0x8, /* 8 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 168 */ NdrFcShort( 0x1 ), /* 1 */
-/* 170 */ NdrFcShort( 0x0 ), /* 0 */
-/* 172 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter cellAccessibles */
-
-/* 174 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
-/* 176 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 178 */ NdrFcShort( 0x6 ), /* Type Offset=6 */
-
- /* Parameter nRowHeaderCells */
-
-/* 180 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 182 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 184 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 186 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 188 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 190 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_rowIndex */
-
-/* 192 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 194 */ NdrFcLong( 0x0 ), /* 0 */
-/* 198 */ NdrFcShort( 0x8 ), /* 8 */
-/* 200 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 202 */ NdrFcShort( 0x0 ), /* 0 */
-/* 204 */ NdrFcShort( 0x24 ), /* 36 */
-/* 206 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 208 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 210 */ NdrFcShort( 0x0 ), /* 0 */
-/* 212 */ NdrFcShort( 0x0 ), /* 0 */
-/* 214 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter rowIndex */
-
-/* 216 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 218 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 220 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 222 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 224 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 226 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_isSelected */
-
-/* 228 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 230 */ NdrFcLong( 0x0 ), /* 0 */
-/* 234 */ NdrFcShort( 0x9 ), /* 9 */
-/* 236 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 238 */ NdrFcShort( 0x0 ), /* 0 */
-/* 240 */ NdrFcShort( 0x21 ), /* 33 */
-/* 242 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 244 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 246 */ NdrFcShort( 0x0 ), /* 0 */
-/* 248 */ NdrFcShort( 0x0 ), /* 0 */
-/* 250 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter isSelected */
-
-/* 252 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 254 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 256 */ 0x3, /* FC_SMALL */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 258 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 260 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 262 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_rowColumnExtents */
-
-/* 264 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 266 */ NdrFcLong( 0x0 ), /* 0 */
-/* 270 */ NdrFcShort( 0xa ), /* 10 */
-/* 272 */ NdrFcShort( 0x1c ), /* x86 Stack size/offset = 28 */
-/* 274 */ NdrFcShort( 0x0 ), /* 0 */
-/* 276 */ NdrFcShort( 0x91 ), /* 145 */
-/* 278 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x6, /* 6 */
-/* 280 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 282 */ NdrFcShort( 0x0 ), /* 0 */
-/* 284 */ NdrFcShort( 0x0 ), /* 0 */
-/* 286 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter row */
-
-/* 288 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 290 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 292 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter column */
-
-/* 294 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 296 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 298 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter rowExtents */
-
-/* 300 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 302 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 304 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter columnExtents */
-
-/* 306 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 308 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
-/* 310 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter isSelected */
-
-/* 312 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 314 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
-/* 316 */ 0x3, /* FC_SMALL */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 318 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 320 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */
-/* 322 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_table */
-
-/* 324 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 326 */ NdrFcLong( 0x0 ), /* 0 */
-/* 330 */ NdrFcShort( 0xb ), /* 11 */
-/* 332 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 334 */ NdrFcShort( 0x0 ), /* 0 */
-/* 336 */ NdrFcShort( 0x8 ), /* 8 */
-/* 338 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x2, /* 2 */
-/* 340 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 342 */ NdrFcShort( 0x0 ), /* 0 */
-/* 344 */ NdrFcShort( 0x0 ), /* 0 */
-/* 346 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter table */
-
-/* 348 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
-/* 350 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 352 */ NdrFcShort( 0x3a ), /* Type Offset=58 */
-
- /* Return value */
-
-/* 354 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 356 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 358 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- 0x0
- }
- };
-
-static const AccessibleTableCell_MIDL_TYPE_FORMAT_STRING AccessibleTableCell__MIDL_TypeFormatString =
- {
- 0,
- {
- NdrFcShort( 0x0 ), /* 0 */
-/* 2 */
- 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
-/* 4 */ 0x8, /* FC_LONG */
- 0x5c, /* FC_PAD */
-/* 6 */
- 0x11, 0x14, /* FC_RP [alloced_on_stack] [pointer_deref] */
-/* 8 */ NdrFcShort( 0x2 ), /* Offset= 2 (10) */
-/* 10 */
- 0x13, 0x0, /* FC_OP */
-/* 12 */ NdrFcShort( 0x14 ), /* Offset= 20 (32) */
-/* 14 */
- 0x2f, /* FC_IP */
- 0x5a, /* FC_CONSTANT_IID */
-/* 16 */ NdrFcLong( 0x0 ), /* 0 */
-/* 20 */ NdrFcShort( 0x0 ), /* 0 */
-/* 22 */ NdrFcShort( 0x0 ), /* 0 */
-/* 24 */ 0xc0, /* 192 */
- 0x0, /* 0 */
-/* 26 */ 0x0, /* 0 */
- 0x0, /* 0 */
-/* 28 */ 0x0, /* 0 */
- 0x0, /* 0 */
-/* 30 */ 0x0, /* 0 */
- 0x46, /* 70 */
-/* 32 */
- 0x21, /* FC_BOGUS_ARRAY */
- 0x3, /* 3 */
-/* 34 */ NdrFcShort( 0x0 ), /* 0 */
-/* 36 */ 0x28, /* Corr desc: parameter, FC_LONG */
- 0x54, /* FC_DEREFERENCE */
-/* 38 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 40 */ NdrFcShort( 0x0 ), /* Corr flags: */
-/* 42 */ NdrFcLong( 0xffffffff ), /* -1 */
-/* 46 */ NdrFcShort( 0x0 ), /* Corr flags: */
-/* 48 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
- 0x0, /* 0 */
-/* 50 */ NdrFcShort( 0xffdc ), /* Offset= -36 (14) */
-/* 52 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-/* 54 */
- 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
-/* 56 */ 0x3, /* FC_SMALL */
- 0x5c, /* FC_PAD */
-/* 58 */
- 0x11, 0x10, /* FC_RP [pointer_deref] */
-/* 60 */ NdrFcShort( 0xffd2 ), /* Offset= -46 (14) */
-
- 0x0
- }
- };
-
-
-/* Object interface: IUnknown, ver. 0.0,
- GUID={0x00000000,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
-
-
-/* Object interface: IAccessibleTableCell, ver. 0.0,
- GUID={0x594116B1,0xC99F,0x4847,{0xAD,0x06,0x0A,0x7A,0x86,0xEC,0xE6,0x45}} */
-
-#pragma code_seg(".orpc")
-static const unsigned short IAccessibleTableCell_FormatStringOffsetTable[] =
- {
- 0,
- 36,
- 78,
- 114,
- 150,
- 192,
- 228,
- 264,
- 324
- };
-
-static const MIDL_STUBLESS_PROXY_INFO IAccessibleTableCell_ProxyInfo =
- {
- &Object_StubDesc,
- AccessibleTableCell__MIDL_ProcFormatString.Format,
- &IAccessibleTableCell_FormatStringOffsetTable[-3],
- 0,
- 0,
- 0
- };
-
-
-static const MIDL_SERVER_INFO IAccessibleTableCell_ServerInfo =
- {
- &Object_StubDesc,
- 0,
- AccessibleTableCell__MIDL_ProcFormatString.Format,
- &IAccessibleTableCell_FormatStringOffsetTable[-3],
- 0,
- 0,
- 0,
- 0};
-CINTERFACE_PROXY_VTABLE(12) _IAccessibleTableCellProxyVtbl =
-{
- &IAccessibleTableCell_ProxyInfo,
- &IID_IAccessibleTableCell,
- IUnknown_QueryInterface_Proxy,
- IUnknown_AddRef_Proxy,
- IUnknown_Release_Proxy ,
- (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_columnExtent */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_columnHeaderCells */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_columnIndex */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_rowExtent */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_rowHeaderCells */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_rowIndex */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_isSelected */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_rowColumnExtents */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_table */
-};
-
-const CInterfaceStubVtbl _IAccessibleTableCellStubVtbl =
-{
- &IID_IAccessibleTableCell,
- &IAccessibleTableCell_ServerInfo,
- 12,
- 0, /* pure interpreted */
- CStdStubBuffer_METHODS
-};
-
-static const MIDL_STUB_DESC Object_StubDesc =
- {
- 0,
- NdrOleAllocate,
- NdrOleFree,
- 0,
- 0,
- 0,
- 0,
- 0,
- AccessibleTableCell__MIDL_TypeFormatString.Format,
- 1, /* -error bounds_check flag */
- 0x50002, /* Ndr library version */
- 0,
- 0x700022b, /* MIDL Version 7.0.555 */
- 0,
- 0,
- 0, /* notify & notify_flag routine table */
- 0x1, /* MIDL flag */
- 0, /* cs routines */
- 0, /* proxy/server info */
- 0
- };
-
-const CInterfaceProxyVtbl * const _AccessibleTableCell_ProxyVtblList[] =
-{
- ( CInterfaceProxyVtbl *) &_IAccessibleTableCellProxyVtbl,
- 0
-};
-
-const CInterfaceStubVtbl * const _AccessibleTableCell_StubVtblList[] =
-{
- ( CInterfaceStubVtbl *) &_IAccessibleTableCellStubVtbl,
- 0
-};
-
-PCInterfaceName const _AccessibleTableCell_InterfaceNamesList[] =
-{
- "IAccessibleTableCell",
- 0
-};
-
-
-#define _AccessibleTableCell_CHECK_IID(n) IID_GENERIC_CHECK_IID( _AccessibleTableCell, pIID, n)
-
-int __stdcall _AccessibleTableCell_IID_Lookup( const IID * pIID, int * pIndex )
-{
-
- if(!_AccessibleTableCell_CHECK_IID(0))
- {
- *pIndex = 0;
- return 1;
- }
-
- return 0;
-}
-
-const ExtendedProxyFileInfo AccessibleTableCell_ProxyFileInfo =
-{
- (PCInterfaceProxyVtblList *) & _AccessibleTableCell_ProxyVtblList,
- (PCInterfaceStubVtblList *) & _AccessibleTableCell_StubVtblList,
- (const PCInterfaceName * ) & _AccessibleTableCell_InterfaceNamesList,
- 0, /* no delegation */
- & _AccessibleTableCell_IID_Lookup,
- 1,
- 2,
- 0, /* table of [async_uuid] interfaces */
- 0, /* Filler1 */
- 0, /* Filler2 */
- 0 /* Filler3 */
-};
-#pragma optimize("", on )
-#if _MSC_VER >= 1200
-#pragma warning(pop)
-#endif
-
-
-#endif /* !defined(_M_IA64) && !defined(_M_AMD64)*/
-
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleTable_i.c b/src/3rdparty/iaccessible2/generated/x86/AccessibleTable_i.c
deleted file mode 100644
index 0fa33967ac..0000000000
--- a/src/3rdparty/iaccessible2/generated/x86/AccessibleTable_i.c
+++ /dev/null
@@ -1,79 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
-
-/* link this file in with the server and any clients */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:54 2012
- */
-/* Compiler settings for AccessibleTable.idl:
- Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-
-#include <rpc.h>
-#include <rpcndr.h>
-
-#ifdef _MIDL_USE_GUIDDEF_
-
-#ifndef INITGUID
-#define INITGUID
-#include <guiddef.h>
-#undef INITGUID
-#else
-#include <guiddef.h>
-#endif
-
-#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
- DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
-
-#else // !_MIDL_USE_GUIDDEF_
-
-#ifndef __IID_DEFINED__
-#define __IID_DEFINED__
-
-typedef struct _IID
-{
- unsigned long x;
- unsigned short s1;
- unsigned short s2;
- unsigned char c[8];
-} IID;
-
-#endif // __IID_DEFINED__
-
-#ifndef CLSID_DEFINED
-#define CLSID_DEFINED
-typedef IID CLSID;
-#endif // CLSID_DEFINED
-
-#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
- const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
-
-#endif !_MIDL_USE_GUIDDEF_
-
-MIDL_DEFINE_GUID(IID, IID_IAccessibleTable,0x35AD8070,0xC20C,0x4fb4,0xB0,0x94,0xF4,0xF7,0x27,0x5D,0xD4,0x69);
-
-#undef MIDL_DEFINE_GUID
-
-#ifdef __cplusplus
-}
-#endif
-
-
-
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleTable_p.c b/src/3rdparty/iaccessible2/generated/x86/AccessibleTable_p.c
deleted file mode 100644
index 9ec9ffdb46..0000000000
--- a/src/3rdparty/iaccessible2/generated/x86/AccessibleTable_p.c
+++ /dev/null
@@ -1,1526 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the proxy stub code */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:54 2012
- */
-/* Compiler settings for AccessibleTable.idl:
- Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#if !defined(_M_IA64) && !defined(_M_AMD64)
-
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-#if _MSC_VER >= 1200
-#pragma warning(push)
-#endif
-
-#pragma warning( disable: 4211 ) /* redefine extern to static */
-#pragma warning( disable: 4232 ) /* dllimport identity*/
-#pragma warning( disable: 4024 ) /* array to pointer mapping*/
-#pragma warning( disable: 4152 ) /* function/data pointer conversion in expression */
-#pragma warning( disable: 4100 ) /* unreferenced arguments in x86 call */
-
-#pragma optimize("", off )
-
-#define USE_STUBLESS_PROXY
-
-
-/* verify that the <rpcproxy.h> version is high enough to compile this file*/
-#ifndef __REDQ_RPCPROXY_H_VERSION__
-#define __REQUIRED_RPCPROXY_H_VERSION__ 475
-#endif
-
-
-#include "rpcproxy.h"
-#ifndef __RPCPROXY_H_VERSION__
-#error this stub requires an updated version of <rpcproxy.h>
-#endif /* __RPCPROXY_H_VERSION__ */
-
-
-#include "AccessibleTable.h"
-
-#define TYPE_FORMAT_STRING_SIZE 139
-#define PROC_FORMAT_STRING_SIZE 1219
-#define EXPR_FORMAT_STRING_SIZE 1
-#define TRANSMIT_AS_TABLE_SIZE 0
-#define WIRE_MARSHAL_TABLE_SIZE 1
-
-typedef struct _AccessibleTable_MIDL_TYPE_FORMAT_STRING
- {
- short Pad;
- unsigned char Format[ TYPE_FORMAT_STRING_SIZE ];
- } AccessibleTable_MIDL_TYPE_FORMAT_STRING;
-
-typedef struct _AccessibleTable_MIDL_PROC_FORMAT_STRING
- {
- short Pad;
- unsigned char Format[ PROC_FORMAT_STRING_SIZE ];
- } AccessibleTable_MIDL_PROC_FORMAT_STRING;
-
-typedef struct _AccessibleTable_MIDL_EXPR_FORMAT_STRING
- {
- long Pad;
- unsigned char Format[ EXPR_FORMAT_STRING_SIZE ];
- } AccessibleTable_MIDL_EXPR_FORMAT_STRING;
-
-
-static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax =
-{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}};
-
-
-extern const AccessibleTable_MIDL_TYPE_FORMAT_STRING AccessibleTable__MIDL_TypeFormatString;
-extern const AccessibleTable_MIDL_PROC_FORMAT_STRING AccessibleTable__MIDL_ProcFormatString;
-extern const AccessibleTable_MIDL_EXPR_FORMAT_STRING AccessibleTable__MIDL_ExprFormatString;
-
-
-extern const MIDL_STUB_DESC Object_StubDesc;
-
-
-extern const MIDL_SERVER_INFO IAccessibleTable_ServerInfo;
-extern const MIDL_STUBLESS_PROXY_INFO IAccessibleTable_ProxyInfo;
-
-
-extern const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ];
-
-#if !defined(__RPC_WIN32__)
-#error Invalid build platform for this stub.
-#endif
-
-#if !(TARGET_IS_NT50_OR_LATER)
-#error You need Windows 2000 or later to run this stub because it uses these features:
-#error /robust command line switch.
-#error However, your C/C++ compilation flags indicate you intend to run this app on earlier systems.
-#error This app will fail with the RPC_X_WRONG_STUB_VERSION error.
-#endif
-
-
-static const AccessibleTable_MIDL_PROC_FORMAT_STRING AccessibleTable__MIDL_ProcFormatString =
- {
- 0,
- {
-
- /* Procedure get_accessibleAt */
-
- 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 2 */ NdrFcLong( 0x0 ), /* 0 */
-/* 6 */ NdrFcShort( 0x3 ), /* 3 */
-/* 8 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
-/* 10 */ NdrFcShort( 0x10 ), /* 16 */
-/* 12 */ NdrFcShort( 0x8 ), /* 8 */
-/* 14 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x4, /* 4 */
-/* 16 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 18 */ NdrFcShort( 0x0 ), /* 0 */
-/* 20 */ NdrFcShort( 0x0 ), /* 0 */
-/* 22 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter row */
-
-/* 24 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 26 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 28 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter column */
-
-/* 30 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 32 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 34 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter accessible */
-
-/* 36 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
-/* 38 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 40 */ NdrFcShort( 0x2 ), /* Type Offset=2 */
-
- /* Return value */
-
-/* 42 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 44 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
-/* 46 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_caption */
-
-/* 48 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 50 */ NdrFcLong( 0x0 ), /* 0 */
-/* 54 */ NdrFcShort( 0x4 ), /* 4 */
-/* 56 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 58 */ NdrFcShort( 0x0 ), /* 0 */
-/* 60 */ NdrFcShort( 0x8 ), /* 8 */
-/* 62 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x2, /* 2 */
-/* 64 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 66 */ NdrFcShort( 0x0 ), /* 0 */
-/* 68 */ NdrFcShort( 0x0 ), /* 0 */
-/* 70 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter accessible */
-
-/* 72 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
-/* 74 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 76 */ NdrFcShort( 0x2 ), /* Type Offset=2 */
-
- /* Return value */
-
-/* 78 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 80 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 82 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_childIndex */
-
-/* 84 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 86 */ NdrFcLong( 0x0 ), /* 0 */
-/* 90 */ NdrFcShort( 0x5 ), /* 5 */
-/* 92 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
-/* 94 */ NdrFcShort( 0x10 ), /* 16 */
-/* 96 */ NdrFcShort( 0x24 ), /* 36 */
-/* 98 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x4, /* 4 */
-/* 100 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 102 */ NdrFcShort( 0x0 ), /* 0 */
-/* 104 */ NdrFcShort( 0x0 ), /* 0 */
-/* 106 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter rowIndex */
-
-/* 108 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 110 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 112 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter columnIndex */
-
-/* 114 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 116 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 118 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter cellIndex */
-
-/* 120 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 122 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 124 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 126 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 128 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
-/* 130 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_columnDescription */
-
-/* 132 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 134 */ NdrFcLong( 0x0 ), /* 0 */
-/* 138 */ NdrFcShort( 0x6 ), /* 6 */
-/* 140 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
-/* 142 */ NdrFcShort( 0x8 ), /* 8 */
-/* 144 */ NdrFcShort( 0x8 ), /* 8 */
-/* 146 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x3, /* 3 */
-/* 148 */ 0x8, /* 8 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 150 */ NdrFcShort( 0x1 ), /* 1 */
-/* 152 */ NdrFcShort( 0x0 ), /* 0 */
-/* 154 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter column */
-
-/* 156 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 158 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 160 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter description */
-
-/* 162 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
-/* 164 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 166 */ NdrFcShort( 0x3a ), /* Type Offset=58 */
-
- /* Return value */
-
-/* 168 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 170 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 172 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_columnExtentAt */
-
-/* 174 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 176 */ NdrFcLong( 0x0 ), /* 0 */
-/* 180 */ NdrFcShort( 0x7 ), /* 7 */
-/* 182 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
-/* 184 */ NdrFcShort( 0x10 ), /* 16 */
-/* 186 */ NdrFcShort( 0x24 ), /* 36 */
-/* 188 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x4, /* 4 */
-/* 190 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 192 */ NdrFcShort( 0x0 ), /* 0 */
-/* 194 */ NdrFcShort( 0x0 ), /* 0 */
-/* 196 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter row */
-
-/* 198 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 200 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 202 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter column */
-
-/* 204 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 206 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 208 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter nColumnsSpanned */
-
-/* 210 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 212 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 214 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 216 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 218 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
-/* 220 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_columnHeader */
-
-/* 222 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 224 */ NdrFcLong( 0x0 ), /* 0 */
-/* 228 */ NdrFcShort( 0x8 ), /* 8 */
-/* 230 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
-/* 232 */ NdrFcShort( 0x0 ), /* 0 */
-/* 234 */ NdrFcShort( 0x24 ), /* 36 */
-/* 236 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x3, /* 3 */
-/* 238 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 240 */ NdrFcShort( 0x0 ), /* 0 */
-/* 242 */ NdrFcShort( 0x0 ), /* 0 */
-/* 244 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter accessibleTable */
-
-/* 246 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
-/* 248 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 250 */ NdrFcShort( 0x44 ), /* Type Offset=68 */
-
- /* Parameter startingRowIndex */
-
-/* 252 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 254 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 256 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 258 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 260 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 262 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_columnIndex */
-
-/* 264 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 266 */ NdrFcLong( 0x0 ), /* 0 */
-/* 270 */ NdrFcShort( 0x9 ), /* 9 */
-/* 272 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
-/* 274 */ NdrFcShort( 0x8 ), /* 8 */
-/* 276 */ NdrFcShort( 0x24 ), /* 36 */
-/* 278 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x3, /* 3 */
-/* 280 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 282 */ NdrFcShort( 0x0 ), /* 0 */
-/* 284 */ NdrFcShort( 0x0 ), /* 0 */
-/* 286 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter cellIndex */
-
-/* 288 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 290 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 292 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter columnIndex */
-
-/* 294 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 296 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 298 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 300 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 302 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 304 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_nColumns */
-
-/* 306 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 308 */ NdrFcLong( 0x0 ), /* 0 */
-/* 312 */ NdrFcShort( 0xa ), /* 10 */
-/* 314 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 316 */ NdrFcShort( 0x0 ), /* 0 */
-/* 318 */ NdrFcShort( 0x24 ), /* 36 */
-/* 320 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 322 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 324 */ NdrFcShort( 0x0 ), /* 0 */
-/* 326 */ NdrFcShort( 0x0 ), /* 0 */
-/* 328 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter columnCount */
-
-/* 330 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 332 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 334 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 336 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 338 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 340 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_nRows */
-
-/* 342 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 344 */ NdrFcLong( 0x0 ), /* 0 */
-/* 348 */ NdrFcShort( 0xb ), /* 11 */
-/* 350 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 352 */ NdrFcShort( 0x0 ), /* 0 */
-/* 354 */ NdrFcShort( 0x24 ), /* 36 */
-/* 356 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 358 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 360 */ NdrFcShort( 0x0 ), /* 0 */
-/* 362 */ NdrFcShort( 0x0 ), /* 0 */
-/* 364 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter rowCount */
-
-/* 366 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 368 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 370 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 372 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 374 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 376 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_nSelectedChildren */
-
-/* 378 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 380 */ NdrFcLong( 0x0 ), /* 0 */
-/* 384 */ NdrFcShort( 0xc ), /* 12 */
-/* 386 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 388 */ NdrFcShort( 0x0 ), /* 0 */
-/* 390 */ NdrFcShort( 0x24 ), /* 36 */
-/* 392 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 394 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 396 */ NdrFcShort( 0x0 ), /* 0 */
-/* 398 */ NdrFcShort( 0x0 ), /* 0 */
-/* 400 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter cellCount */
-
-/* 402 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 404 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 406 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 408 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 410 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 412 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_nSelectedColumns */
-
-/* 414 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 416 */ NdrFcLong( 0x0 ), /* 0 */
-/* 420 */ NdrFcShort( 0xd ), /* 13 */
-/* 422 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 424 */ NdrFcShort( 0x0 ), /* 0 */
-/* 426 */ NdrFcShort( 0x24 ), /* 36 */
-/* 428 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 430 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 432 */ NdrFcShort( 0x0 ), /* 0 */
-/* 434 */ NdrFcShort( 0x0 ), /* 0 */
-/* 436 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter columnCount */
-
-/* 438 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 440 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 442 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 444 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 446 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 448 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_nSelectedRows */
-
-/* 450 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 452 */ NdrFcLong( 0x0 ), /* 0 */
-/* 456 */ NdrFcShort( 0xe ), /* 14 */
-/* 458 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 460 */ NdrFcShort( 0x0 ), /* 0 */
-/* 462 */ NdrFcShort( 0x24 ), /* 36 */
-/* 464 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 466 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 468 */ NdrFcShort( 0x0 ), /* 0 */
-/* 470 */ NdrFcShort( 0x0 ), /* 0 */
-/* 472 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter rowCount */
-
-/* 474 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 476 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 478 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 480 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 482 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 484 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_rowDescription */
-
-/* 486 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 488 */ NdrFcLong( 0x0 ), /* 0 */
-/* 492 */ NdrFcShort( 0xf ), /* 15 */
-/* 494 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
-/* 496 */ NdrFcShort( 0x8 ), /* 8 */
-/* 498 */ NdrFcShort( 0x8 ), /* 8 */
-/* 500 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x3, /* 3 */
-/* 502 */ 0x8, /* 8 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 504 */ NdrFcShort( 0x1 ), /* 1 */
-/* 506 */ NdrFcShort( 0x0 ), /* 0 */
-/* 508 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter row */
-
-/* 510 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 512 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 514 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter description */
-
-/* 516 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
-/* 518 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 520 */ NdrFcShort( 0x3a ), /* Type Offset=58 */
-
- /* Return value */
-
-/* 522 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 524 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 526 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_rowExtentAt */
-
-/* 528 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 530 */ NdrFcLong( 0x0 ), /* 0 */
-/* 534 */ NdrFcShort( 0x10 ), /* 16 */
-/* 536 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
-/* 538 */ NdrFcShort( 0x10 ), /* 16 */
-/* 540 */ NdrFcShort( 0x24 ), /* 36 */
-/* 542 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x4, /* 4 */
-/* 544 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 546 */ NdrFcShort( 0x0 ), /* 0 */
-/* 548 */ NdrFcShort( 0x0 ), /* 0 */
-/* 550 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter row */
-
-/* 552 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 554 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 556 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter column */
-
-/* 558 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 560 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 562 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter nRowsSpanned */
-
-/* 564 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 566 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 568 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 570 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 572 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
-/* 574 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_rowHeader */
-
-/* 576 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 578 */ NdrFcLong( 0x0 ), /* 0 */
-/* 582 */ NdrFcShort( 0x11 ), /* 17 */
-/* 584 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
-/* 586 */ NdrFcShort( 0x0 ), /* 0 */
-/* 588 */ NdrFcShort( 0x24 ), /* 36 */
-/* 590 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x3, /* 3 */
-/* 592 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 594 */ NdrFcShort( 0x0 ), /* 0 */
-/* 596 */ NdrFcShort( 0x0 ), /* 0 */
-/* 598 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter accessibleTable */
-
-/* 600 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
-/* 602 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 604 */ NdrFcShort( 0x44 ), /* Type Offset=68 */
-
- /* Parameter startingColumnIndex */
-
-/* 606 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 608 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 610 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 612 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 614 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 616 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_rowIndex */
-
-/* 618 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 620 */ NdrFcLong( 0x0 ), /* 0 */
-/* 624 */ NdrFcShort( 0x12 ), /* 18 */
-/* 626 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
-/* 628 */ NdrFcShort( 0x8 ), /* 8 */
-/* 630 */ NdrFcShort( 0x24 ), /* 36 */
-/* 632 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x3, /* 3 */
-/* 634 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 636 */ NdrFcShort( 0x0 ), /* 0 */
-/* 638 */ NdrFcShort( 0x0 ), /* 0 */
-/* 640 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter cellIndex */
-
-/* 642 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 644 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 646 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter rowIndex */
-
-/* 648 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 650 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 652 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 654 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 656 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 658 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_selectedChildren */
-
-/* 660 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 662 */ NdrFcLong( 0x0 ), /* 0 */
-/* 666 */ NdrFcShort( 0x13 ), /* 19 */
-/* 668 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
-/* 670 */ NdrFcShort( 0x8 ), /* 8 */
-/* 672 */ NdrFcShort( 0x24 ), /* 36 */
-/* 674 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x4, /* 4 */
-/* 676 */ 0x8, /* 8 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 678 */ NdrFcShort( 0x1 ), /* 1 */
-/* 680 */ NdrFcShort( 0x0 ), /* 0 */
-/* 682 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter maxChildren */
-
-/* 684 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 686 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 688 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter children */
-
-/* 690 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
-/* 692 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 694 */ NdrFcShort( 0x5a ), /* Type Offset=90 */
-
- /* Parameter nChildren */
-
-/* 696 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 698 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 700 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 702 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 704 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
-/* 706 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_selectedColumns */
-
-/* 708 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 710 */ NdrFcLong( 0x0 ), /* 0 */
-/* 714 */ NdrFcShort( 0x14 ), /* 20 */
-/* 716 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
-/* 718 */ NdrFcShort( 0x8 ), /* 8 */
-/* 720 */ NdrFcShort( 0x24 ), /* 36 */
-/* 722 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x4, /* 4 */
-/* 724 */ 0x8, /* 8 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 726 */ NdrFcShort( 0x1 ), /* 1 */
-/* 728 */ NdrFcShort( 0x0 ), /* 0 */
-/* 730 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter maxColumns */
-
-/* 732 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 734 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 736 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter columns */
-
-/* 738 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
-/* 740 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 742 */ NdrFcShort( 0x5a ), /* Type Offset=90 */
-
- /* Parameter nColumns */
-
-/* 744 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 746 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 748 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 750 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 752 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
-/* 754 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_selectedRows */
-
-/* 756 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 758 */ NdrFcLong( 0x0 ), /* 0 */
-/* 762 */ NdrFcShort( 0x15 ), /* 21 */
-/* 764 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
-/* 766 */ NdrFcShort( 0x8 ), /* 8 */
-/* 768 */ NdrFcShort( 0x24 ), /* 36 */
-/* 770 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x4, /* 4 */
-/* 772 */ 0x8, /* 8 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 774 */ NdrFcShort( 0x1 ), /* 1 */
-/* 776 */ NdrFcShort( 0x0 ), /* 0 */
-/* 778 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter maxRows */
-
-/* 780 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 782 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 784 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter rows */
-
-/* 786 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
-/* 788 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 790 */ NdrFcShort( 0x5a ), /* Type Offset=90 */
-
- /* Parameter nRows */
-
-/* 792 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 794 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 796 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 798 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 800 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
-/* 802 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_summary */
-
-/* 804 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 806 */ NdrFcLong( 0x0 ), /* 0 */
-/* 810 */ NdrFcShort( 0x16 ), /* 22 */
-/* 812 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 814 */ NdrFcShort( 0x0 ), /* 0 */
-/* 816 */ NdrFcShort( 0x8 ), /* 8 */
-/* 818 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x2, /* 2 */
-/* 820 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 822 */ NdrFcShort( 0x0 ), /* 0 */
-/* 824 */ NdrFcShort( 0x0 ), /* 0 */
-/* 826 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter accessible */
-
-/* 828 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
-/* 830 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 832 */ NdrFcShort( 0x2 ), /* Type Offset=2 */
-
- /* Return value */
-
-/* 834 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 836 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 838 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_isColumnSelected */
-
-/* 840 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 842 */ NdrFcLong( 0x0 ), /* 0 */
-/* 846 */ NdrFcShort( 0x17 ), /* 23 */
-/* 848 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
-/* 850 */ NdrFcShort( 0x8 ), /* 8 */
-/* 852 */ NdrFcShort( 0x21 ), /* 33 */
-/* 854 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x3, /* 3 */
-/* 856 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 858 */ NdrFcShort( 0x0 ), /* 0 */
-/* 860 */ NdrFcShort( 0x0 ), /* 0 */
-/* 862 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter column */
-
-/* 864 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 866 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 868 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter isSelected */
-
-/* 870 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 872 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 874 */ 0x3, /* FC_SMALL */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 876 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 878 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 880 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_isRowSelected */
-
-/* 882 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 884 */ NdrFcLong( 0x0 ), /* 0 */
-/* 888 */ NdrFcShort( 0x18 ), /* 24 */
-/* 890 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
-/* 892 */ NdrFcShort( 0x8 ), /* 8 */
-/* 894 */ NdrFcShort( 0x21 ), /* 33 */
-/* 896 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x3, /* 3 */
-/* 898 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 900 */ NdrFcShort( 0x0 ), /* 0 */
-/* 902 */ NdrFcShort( 0x0 ), /* 0 */
-/* 904 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter row */
-
-/* 906 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 908 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 910 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter isSelected */
-
-/* 912 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 914 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 916 */ 0x3, /* FC_SMALL */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 918 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 920 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 922 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_isSelected */
-
-/* 924 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 926 */ NdrFcLong( 0x0 ), /* 0 */
-/* 930 */ NdrFcShort( 0x19 ), /* 25 */
-/* 932 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
-/* 934 */ NdrFcShort( 0x10 ), /* 16 */
-/* 936 */ NdrFcShort( 0x21 ), /* 33 */
-/* 938 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x4, /* 4 */
-/* 940 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 942 */ NdrFcShort( 0x0 ), /* 0 */
-/* 944 */ NdrFcShort( 0x0 ), /* 0 */
-/* 946 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter row */
-
-/* 948 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 950 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 952 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter column */
-
-/* 954 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 956 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 958 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter isSelected */
-
-/* 960 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 962 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 964 */ 0x3, /* FC_SMALL */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 966 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 968 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
-/* 970 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure selectRow */
-
-/* 972 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 974 */ NdrFcLong( 0x0 ), /* 0 */
-/* 978 */ NdrFcShort( 0x1a ), /* 26 */
-/* 980 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 982 */ NdrFcShort( 0x8 ), /* 8 */
-/* 984 */ NdrFcShort( 0x8 ), /* 8 */
-/* 986 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 988 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 990 */ NdrFcShort( 0x0 ), /* 0 */
-/* 992 */ NdrFcShort( 0x0 ), /* 0 */
-/* 994 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter row */
-
-/* 996 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 998 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 1000 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 1002 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 1004 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 1006 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure selectColumn */
-
-/* 1008 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 1010 */ NdrFcLong( 0x0 ), /* 0 */
-/* 1014 */ NdrFcShort( 0x1b ), /* 27 */
-/* 1016 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 1018 */ NdrFcShort( 0x8 ), /* 8 */
-/* 1020 */ NdrFcShort( 0x8 ), /* 8 */
-/* 1022 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 1024 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 1026 */ NdrFcShort( 0x0 ), /* 0 */
-/* 1028 */ NdrFcShort( 0x0 ), /* 0 */
-/* 1030 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter column */
-
-/* 1032 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 1034 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 1036 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 1038 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 1040 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 1042 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure unselectRow */
-
-/* 1044 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 1046 */ NdrFcLong( 0x0 ), /* 0 */
-/* 1050 */ NdrFcShort( 0x1c ), /* 28 */
-/* 1052 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 1054 */ NdrFcShort( 0x8 ), /* 8 */
-/* 1056 */ NdrFcShort( 0x8 ), /* 8 */
-/* 1058 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 1060 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 1062 */ NdrFcShort( 0x0 ), /* 0 */
-/* 1064 */ NdrFcShort( 0x0 ), /* 0 */
-/* 1066 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter row */
-
-/* 1068 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 1070 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 1072 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 1074 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 1076 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 1078 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure unselectColumn */
-
-/* 1080 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 1082 */ NdrFcLong( 0x0 ), /* 0 */
-/* 1086 */ NdrFcShort( 0x1d ), /* 29 */
-/* 1088 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 1090 */ NdrFcShort( 0x8 ), /* 8 */
-/* 1092 */ NdrFcShort( 0x8 ), /* 8 */
-/* 1094 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 1096 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 1098 */ NdrFcShort( 0x0 ), /* 0 */
-/* 1100 */ NdrFcShort( 0x0 ), /* 0 */
-/* 1102 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter column */
-
-/* 1104 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 1106 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 1108 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 1110 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 1112 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 1114 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_rowColumnExtentsAtIndex */
-
-/* 1116 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 1118 */ NdrFcLong( 0x0 ), /* 0 */
-/* 1122 */ NdrFcShort( 0x1e ), /* 30 */
-/* 1124 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */
-/* 1126 */ NdrFcShort( 0x8 ), /* 8 */
-/* 1128 */ NdrFcShort( 0x91 ), /* 145 */
-/* 1130 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x7, /* 7 */
-/* 1132 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 1134 */ NdrFcShort( 0x0 ), /* 0 */
-/* 1136 */ NdrFcShort( 0x0 ), /* 0 */
-/* 1138 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter index */
-
-/* 1140 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 1142 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 1144 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter row */
-
-/* 1146 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 1148 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 1150 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter column */
-
-/* 1152 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 1154 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 1156 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter rowExtents */
-
-/* 1158 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 1160 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
-/* 1162 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter columnExtents */
-
-/* 1164 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 1166 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
-/* 1168 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter isSelected */
-
-/* 1170 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 1172 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */
-/* 1174 */ 0x3, /* FC_SMALL */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 1176 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 1178 */ NdrFcShort( 0x1c ), /* x86 Stack size/offset = 28 */
-/* 1180 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_modelChange */
-
-/* 1182 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 1184 */ NdrFcLong( 0x0 ), /* 0 */
-/* 1188 */ NdrFcShort( 0x1f ), /* 31 */
-/* 1190 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 1192 */ NdrFcShort( 0x0 ), /* 0 */
-/* 1194 */ NdrFcShort( 0x8 ), /* 8 */
-/* 1196 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x2, /* 2 */
-/* 1198 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 1200 */ NdrFcShort( 0x0 ), /* 0 */
-/* 1202 */ NdrFcShort( 0x0 ), /* 0 */
-/* 1204 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter modelChange */
-
-/* 1206 */ NdrFcShort( 0x6113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=24 */
-/* 1208 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 1210 */ NdrFcShort( 0x7c ), /* Type Offset=124 */
-
- /* Return value */
-
-/* 1212 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 1214 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 1216 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- 0x0
- }
- };
-
-static const AccessibleTable_MIDL_TYPE_FORMAT_STRING AccessibleTable__MIDL_TypeFormatString =
- {
- 0,
- {
- NdrFcShort( 0x0 ), /* 0 */
-/* 2 */
- 0x11, 0x10, /* FC_RP [pointer_deref] */
-/* 4 */ NdrFcShort( 0x2 ), /* Offset= 2 (6) */
-/* 6 */
- 0x2f, /* FC_IP */
- 0x5a, /* FC_CONSTANT_IID */
-/* 8 */ NdrFcLong( 0x0 ), /* 0 */
-/* 12 */ NdrFcShort( 0x0 ), /* 0 */
-/* 14 */ NdrFcShort( 0x0 ), /* 0 */
-/* 16 */ 0xc0, /* 192 */
- 0x0, /* 0 */
-/* 18 */ 0x0, /* 0 */
- 0x0, /* 0 */
-/* 20 */ 0x0, /* 0 */
- 0x0, /* 0 */
-/* 22 */ 0x0, /* 0 */
- 0x46, /* 70 */
-/* 24 */
- 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
-/* 26 */ 0x8, /* FC_LONG */
- 0x5c, /* FC_PAD */
-/* 28 */
- 0x11, 0x4, /* FC_RP [alloced_on_stack] */
-/* 30 */ NdrFcShort( 0x1c ), /* Offset= 28 (58) */
-/* 32 */
- 0x13, 0x0, /* FC_OP */
-/* 34 */ NdrFcShort( 0xe ), /* Offset= 14 (48) */
-/* 36 */
- 0x1b, /* FC_CARRAY */
- 0x1, /* 1 */
-/* 38 */ NdrFcShort( 0x2 ), /* 2 */
-/* 40 */ 0x9, /* Corr desc: FC_ULONG */
- 0x0, /* */
-/* 42 */ NdrFcShort( 0xfffc ), /* -4 */
-/* 44 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 46 */ 0x6, /* FC_SHORT */
- 0x5b, /* FC_END */
-/* 48 */
- 0x17, /* FC_CSTRUCT */
- 0x3, /* 3 */
-/* 50 */ NdrFcShort( 0x8 ), /* 8 */
-/* 52 */ NdrFcShort( 0xfff0 ), /* Offset= -16 (36) */
-/* 54 */ 0x8, /* FC_LONG */
- 0x8, /* FC_LONG */
-/* 56 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-/* 58 */ 0xb4, /* FC_USER_MARSHAL */
- 0x83, /* 131 */
-/* 60 */ NdrFcShort( 0x0 ), /* 0 */
-/* 62 */ NdrFcShort( 0x4 ), /* 4 */
-/* 64 */ NdrFcShort( 0x0 ), /* 0 */
-/* 66 */ NdrFcShort( 0xffde ), /* Offset= -34 (32) */
-/* 68 */
- 0x11, 0x10, /* FC_RP [pointer_deref] */
-/* 70 */ NdrFcShort( 0x2 ), /* Offset= 2 (72) */
-/* 72 */
- 0x2f, /* FC_IP */
- 0x5a, /* FC_CONSTANT_IID */
-/* 74 */ NdrFcLong( 0x35ad8070 ), /* 900563056 */
-/* 78 */ NdrFcShort( 0xc20c ), /* -15860 */
-/* 80 */ NdrFcShort( 0x4fb4 ), /* 20404 */
-/* 82 */ 0xb0, /* 176 */
- 0x94, /* 148 */
-/* 84 */ 0xf4, /* 244 */
- 0xf7, /* 247 */
-/* 86 */ 0x27, /* 39 */
- 0x5d, /* 93 */
-/* 88 */ 0xd4, /* 212 */
- 0x69, /* 105 */
-/* 90 */
- 0x11, 0x14, /* FC_RP [alloced_on_stack] [pointer_deref] */
-/* 92 */ NdrFcShort( 0x2 ), /* Offset= 2 (94) */
-/* 94 */
- 0x13, 0x0, /* FC_OP */
-/* 96 */ NdrFcShort( 0x2 ), /* Offset= 2 (98) */
-/* 98 */
- 0x1c, /* FC_CVARRAY */
- 0x3, /* 3 */
-/* 100 */ NdrFcShort( 0x4 ), /* 4 */
-/* 102 */ 0x28, /* Corr desc: parameter, FC_LONG */
- 0x0, /* */
-/* 104 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 106 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 108 */ 0x28, /* Corr desc: parameter, FC_LONG */
- 0x54, /* FC_DEREFERENCE */
-/* 110 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 112 */ NdrFcShort( 0x0 ), /* Corr flags: */
-/* 114 */ 0x8, /* FC_LONG */
- 0x5b, /* FC_END */
-/* 116 */
- 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
-/* 118 */ 0x3, /* FC_SMALL */
- 0x5c, /* FC_PAD */
-/* 120 */
- 0x11, 0x4, /* FC_RP [alloced_on_stack] */
-/* 122 */ NdrFcShort( 0x2 ), /* Offset= 2 (124) */
-/* 124 */
- 0x1a, /* FC_BOGUS_STRUCT */
- 0x3, /* 3 */
-/* 126 */ NdrFcShort( 0x14 ), /* 20 */
-/* 128 */ NdrFcShort( 0x0 ), /* 0 */
-/* 130 */ NdrFcShort( 0x0 ), /* Offset= 0 (130) */
-/* 132 */ 0xd, /* FC_ENUM16 */
- 0x8, /* FC_LONG */
-/* 134 */ 0x8, /* FC_LONG */
- 0x8, /* FC_LONG */
-/* 136 */ 0x8, /* FC_LONG */
- 0x5b, /* FC_END */
-
- 0x0
- }
- };
-
-static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] =
- {
-
- {
- BSTR_UserSize
- ,BSTR_UserMarshal
- ,BSTR_UserUnmarshal
- ,BSTR_UserFree
- }
-
- };
-
-
-
-/* Object interface: IUnknown, ver. 0.0,
- GUID={0x00000000,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
-
-
-/* Object interface: IAccessibleTable, ver. 0.0,
- GUID={0x35AD8070,0xC20C,0x4fb4,{0xB0,0x94,0xF4,0xF7,0x27,0x5D,0xD4,0x69}} */
-
-#pragma code_seg(".orpc")
-static const unsigned short IAccessibleTable_FormatStringOffsetTable[] =
- {
- 0,
- 48,
- 84,
- 132,
- 174,
- 222,
- 264,
- 306,
- 342,
- 378,
- 414,
- 450,
- 486,
- 528,
- 576,
- 618,
- 660,
- 708,
- 756,
- 804,
- 840,
- 882,
- 924,
- 972,
- 1008,
- 1044,
- 1080,
- 1116,
- 1182
- };
-
-static const MIDL_STUBLESS_PROXY_INFO IAccessibleTable_ProxyInfo =
- {
- &Object_StubDesc,
- AccessibleTable__MIDL_ProcFormatString.Format,
- &IAccessibleTable_FormatStringOffsetTable[-3],
- 0,
- 0,
- 0
- };
-
-
-static const MIDL_SERVER_INFO IAccessibleTable_ServerInfo =
- {
- &Object_StubDesc,
- 0,
- AccessibleTable__MIDL_ProcFormatString.Format,
- &IAccessibleTable_FormatStringOffsetTable[-3],
- 0,
- 0,
- 0,
- 0};
-CINTERFACE_PROXY_VTABLE(32) _IAccessibleTableProxyVtbl =
-{
- &IAccessibleTable_ProxyInfo,
- &IID_IAccessibleTable,
- IUnknown_QueryInterface_Proxy,
- IUnknown_AddRef_Proxy,
- IUnknown_Release_Proxy ,
- (void *) (INT_PTR) -1 /* IAccessibleTable::get_accessibleAt */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable::get_caption */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable::get_childIndex */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable::get_columnDescription */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable::get_columnExtentAt */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable::get_columnHeader */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable::get_columnIndex */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable::get_nColumns */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable::get_nRows */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable::get_nSelectedChildren */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable::get_nSelectedColumns */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable::get_nSelectedRows */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable::get_rowDescription */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable::get_rowExtentAt */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable::get_rowHeader */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable::get_rowIndex */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable::get_selectedChildren */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable::get_selectedColumns */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable::get_selectedRows */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable::get_summary */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable::get_isColumnSelected */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable::get_isRowSelected */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable::get_isSelected */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable::selectRow */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable::selectColumn */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable::unselectRow */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable::unselectColumn */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable::get_rowColumnExtentsAtIndex */ ,
- (void *) (INT_PTR) -1 /* IAccessibleTable::get_modelChange */
-};
-
-const CInterfaceStubVtbl _IAccessibleTableStubVtbl =
-{
- &IID_IAccessibleTable,
- &IAccessibleTable_ServerInfo,
- 32,
- 0, /* pure interpreted */
- CStdStubBuffer_METHODS
-};
-
-static const MIDL_STUB_DESC Object_StubDesc =
- {
- 0,
- NdrOleAllocate,
- NdrOleFree,
- 0,
- 0,
- 0,
- 0,
- 0,
- AccessibleTable__MIDL_TypeFormatString.Format,
- 1, /* -error bounds_check flag */
- 0x50002, /* Ndr library version */
- 0,
- 0x700022b, /* MIDL Version 7.0.555 */
- 0,
- UserMarshalRoutines,
- 0, /* notify & notify_flag routine table */
- 0x1, /* MIDL flag */
- 0, /* cs routines */
- 0, /* proxy/server info */
- 0
- };
-
-const CInterfaceProxyVtbl * const _AccessibleTable_ProxyVtblList[] =
-{
- ( CInterfaceProxyVtbl *) &_IAccessibleTableProxyVtbl,
- 0
-};
-
-const CInterfaceStubVtbl * const _AccessibleTable_StubVtblList[] =
-{
- ( CInterfaceStubVtbl *) &_IAccessibleTableStubVtbl,
- 0
-};
-
-PCInterfaceName const _AccessibleTable_InterfaceNamesList[] =
-{
- "IAccessibleTable",
- 0
-};
-
-
-#define _AccessibleTable_CHECK_IID(n) IID_GENERIC_CHECK_IID( _AccessibleTable, pIID, n)
-
-int __stdcall _AccessibleTable_IID_Lookup( const IID * pIID, int * pIndex )
-{
-
- if(!_AccessibleTable_CHECK_IID(0))
- {
- *pIndex = 0;
- return 1;
- }
-
- return 0;
-}
-
-const ExtendedProxyFileInfo AccessibleTable_ProxyFileInfo =
-{
- (PCInterfaceProxyVtblList *) & _AccessibleTable_ProxyVtblList,
- (PCInterfaceStubVtblList *) & _AccessibleTable_StubVtblList,
- (const PCInterfaceName * ) & _AccessibleTable_InterfaceNamesList,
- 0, /* no delegation */
- & _AccessibleTable_IID_Lookup,
- 1,
- 2,
- 0, /* table of [async_uuid] interfaces */
- 0, /* Filler1 */
- 0, /* Filler2 */
- 0 /* Filler3 */
-};
-#pragma optimize("", on )
-#if _MSC_VER >= 1200
-#pragma warning(pop)
-#endif
-
-
-#endif /* !defined(_M_IA64) && !defined(_M_AMD64)*/
-
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleText.h b/src/3rdparty/iaccessible2/generated/x86/AccessibleText.h
deleted file mode 100644
index 4ad53cfa7e..0000000000
--- a/src/3rdparty/iaccessible2/generated/x86/AccessibleText.h
+++ /dev/null
@@ -1,435 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the definitions for the interfaces */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:55 2012
- */
-/* Compiler settings for AccessibleText.idl:
- Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-
-
-/* verify that the <rpcndr.h> version is high enough to compile this file*/
-#ifndef __REQUIRED_RPCNDR_H_VERSION__
-#define __REQUIRED_RPCNDR_H_VERSION__ 475
-#endif
-
-#include "rpc.h"
-#include "rpcndr.h"
-
-#ifndef __RPCNDR_H_VERSION__
-#error this stub requires an updated version of <rpcndr.h>
-#endif // __RPCNDR_H_VERSION__
-
-#ifndef COM_NO_WINDOWS_H
-#include "windows.h"
-#include "ole2.h"
-#endif /*COM_NO_WINDOWS_H*/
-
-#ifndef __AccessibleText_h__
-#define __AccessibleText_h__
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-#pragma once
-#endif
-
-/* Forward Declarations */
-
-#ifndef __IAccessibleText_FWD_DEFINED__
-#define __IAccessibleText_FWD_DEFINED__
-typedef interface IAccessibleText IAccessibleText;
-#endif /* __IAccessibleText_FWD_DEFINED__ */
-
-
-/* header files for imported files */
-#include "objidl.h"
-#include "oaidl.h"
-#include "oleacc.h"
-#include "IA2CommonTypes.h"
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-
-/* interface __MIDL_itf_AccessibleText_0000_0000 */
-/* [local] */
-
-typedef struct IA2TextSegment
- {
- BSTR text;
- long start;
- long end;
- } IA2TextSegment;
-
-
-enum IA2TextBoundaryType
- { IA2_TEXT_BOUNDARY_CHAR = 0,
- IA2_TEXT_BOUNDARY_WORD = ( IA2_TEXT_BOUNDARY_CHAR + 1 ) ,
- IA2_TEXT_BOUNDARY_SENTENCE = ( IA2_TEXT_BOUNDARY_WORD + 1 ) ,
- IA2_TEXT_BOUNDARY_PARAGRAPH = ( IA2_TEXT_BOUNDARY_SENTENCE + 1 ) ,
- IA2_TEXT_BOUNDARY_LINE = ( IA2_TEXT_BOUNDARY_PARAGRAPH + 1 ) ,
- IA2_TEXT_BOUNDARY_ALL = ( IA2_TEXT_BOUNDARY_LINE + 1 )
- } ;
-
-
-extern RPC_IF_HANDLE __MIDL_itf_AccessibleText_0000_0000_v0_0_c_ifspec;
-extern RPC_IF_HANDLE __MIDL_itf_AccessibleText_0000_0000_v0_0_s_ifspec;
-
-#ifndef __IAccessibleText_INTERFACE_DEFINED__
-#define __IAccessibleText_INTERFACE_DEFINED__
-
-/* interface IAccessibleText */
-/* [uuid][object] */
-
-
-EXTERN_C const IID IID_IAccessibleText;
-
-#if defined(__cplusplus) && !defined(CINTERFACE)
-
- MIDL_INTERFACE("24FD2FFB-3AAD-4a08-8335-A3AD89C0FB4B")
- IAccessibleText : public IUnknown
- {
- public:
- virtual HRESULT STDMETHODCALLTYPE addSelection(
- /* [in] */ long startOffset,
- /* [in] */ long endOffset) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_attributes(
- /* [in] */ long offset,
- /* [out] */ long *startOffset,
- /* [out] */ long *endOffset,
- /* [retval][out] */ BSTR *textAttributes) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_caretOffset(
- /* [retval][out] */ long *offset) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_characterExtents(
- /* [in] */ long offset,
- /* [in] */ enum IA2CoordinateType coordType,
- /* [out] */ long *x,
- /* [out] */ long *y,
- /* [out] */ long *width,
- /* [retval][out] */ long *height) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nSelections(
- /* [retval][out] */ long *nSelections) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_offsetAtPoint(
- /* [in] */ long x,
- /* [in] */ long y,
- /* [in] */ enum IA2CoordinateType coordType,
- /* [retval][out] */ long *offset) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selection(
- /* [in] */ long selectionIndex,
- /* [out] */ long *startOffset,
- /* [retval][out] */ long *endOffset) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_text(
- /* [in] */ long startOffset,
- /* [in] */ long endOffset,
- /* [retval][out] */ BSTR *text) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_textBeforeOffset(
- /* [in] */ long offset,
- /* [in] */ enum IA2TextBoundaryType boundaryType,
- /* [out] */ long *startOffset,
- /* [out] */ long *endOffset,
- /* [retval][out] */ BSTR *text) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_textAfterOffset(
- /* [in] */ long offset,
- /* [in] */ enum IA2TextBoundaryType boundaryType,
- /* [out] */ long *startOffset,
- /* [out] */ long *endOffset,
- /* [retval][out] */ BSTR *text) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_textAtOffset(
- /* [in] */ long offset,
- /* [in] */ enum IA2TextBoundaryType boundaryType,
- /* [out] */ long *startOffset,
- /* [out] */ long *endOffset,
- /* [retval][out] */ BSTR *text) = 0;
-
- virtual HRESULT STDMETHODCALLTYPE removeSelection(
- /* [in] */ long selectionIndex) = 0;
-
- virtual HRESULT STDMETHODCALLTYPE setCaretOffset(
- /* [in] */ long offset) = 0;
-
- virtual HRESULT STDMETHODCALLTYPE setSelection(
- /* [in] */ long selectionIndex,
- /* [in] */ long startOffset,
- /* [in] */ long endOffset) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nCharacters(
- /* [retval][out] */ long *nCharacters) = 0;
-
- virtual HRESULT STDMETHODCALLTYPE scrollSubstringTo(
- /* [in] */ long startIndex,
- /* [in] */ long endIndex,
- /* [in] */ enum IA2ScrollType scrollType) = 0;
-
- virtual HRESULT STDMETHODCALLTYPE scrollSubstringToPoint(
- /* [in] */ long startIndex,
- /* [in] */ long endIndex,
- /* [in] */ enum IA2CoordinateType coordinateType,
- /* [in] */ long x,
- /* [in] */ long y) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_newText(
- /* [retval][out] */ IA2TextSegment *newText) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_oldText(
- /* [retval][out] */ IA2TextSegment *oldText) = 0;
-
- };
-
-#else /* C style interface */
-
- typedef struct IAccessibleTextVtbl
- {
- BEGIN_INTERFACE
-
- HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
- IAccessibleText * This,
- /* [in] */ REFIID riid,
- /* [annotation][iid_is][out] */
- __RPC__deref_out void **ppvObject);
-
- ULONG ( STDMETHODCALLTYPE *AddRef )(
- IAccessibleText * This);
-
- ULONG ( STDMETHODCALLTYPE *Release )(
- IAccessibleText * This);
-
- HRESULT ( STDMETHODCALLTYPE *addSelection )(
- IAccessibleText * This,
- /* [in] */ long startOffset,
- /* [in] */ long endOffset);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )(
- IAccessibleText * This,
- /* [in] */ long offset,
- /* [out] */ long *startOffset,
- /* [out] */ long *endOffset,
- /* [retval][out] */ BSTR *textAttributes);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_caretOffset )(
- IAccessibleText * This,
- /* [retval][out] */ long *offset);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_characterExtents )(
- IAccessibleText * This,
- /* [in] */ long offset,
- /* [in] */ enum IA2CoordinateType coordType,
- /* [out] */ long *x,
- /* [out] */ long *y,
- /* [out] */ long *width,
- /* [retval][out] */ long *height);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelections )(
- IAccessibleText * This,
- /* [retval][out] */ long *nSelections);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_offsetAtPoint )(
- IAccessibleText * This,
- /* [in] */ long x,
- /* [in] */ long y,
- /* [in] */ enum IA2CoordinateType coordType,
- /* [retval][out] */ long *offset);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selection )(
- IAccessibleText * This,
- /* [in] */ long selectionIndex,
- /* [out] */ long *startOffset,
- /* [retval][out] */ long *endOffset);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_text )(
- IAccessibleText * This,
- /* [in] */ long startOffset,
- /* [in] */ long endOffset,
- /* [retval][out] */ BSTR *text);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textBeforeOffset )(
- IAccessibleText * This,
- /* [in] */ long offset,
- /* [in] */ enum IA2TextBoundaryType boundaryType,
- /* [out] */ long *startOffset,
- /* [out] */ long *endOffset,
- /* [retval][out] */ BSTR *text);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAfterOffset )(
- IAccessibleText * This,
- /* [in] */ long offset,
- /* [in] */ enum IA2TextBoundaryType boundaryType,
- /* [out] */ long *startOffset,
- /* [out] */ long *endOffset,
- /* [retval][out] */ BSTR *text);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAtOffset )(
- IAccessibleText * This,
- /* [in] */ long offset,
- /* [in] */ enum IA2TextBoundaryType boundaryType,
- /* [out] */ long *startOffset,
- /* [out] */ long *endOffset,
- /* [retval][out] */ BSTR *text);
-
- HRESULT ( STDMETHODCALLTYPE *removeSelection )(
- IAccessibleText * This,
- /* [in] */ long selectionIndex);
-
- HRESULT ( STDMETHODCALLTYPE *setCaretOffset )(
- IAccessibleText * This,
- /* [in] */ long offset);
-
- HRESULT ( STDMETHODCALLTYPE *setSelection )(
- IAccessibleText * This,
- /* [in] */ long selectionIndex,
- /* [in] */ long startOffset,
- /* [in] */ long endOffset);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nCharacters )(
- IAccessibleText * This,
- /* [retval][out] */ long *nCharacters);
-
- HRESULT ( STDMETHODCALLTYPE *scrollSubstringTo )(
- IAccessibleText * This,
- /* [in] */ long startIndex,
- /* [in] */ long endIndex,
- /* [in] */ enum IA2ScrollType scrollType);
-
- HRESULT ( STDMETHODCALLTYPE *scrollSubstringToPoint )(
- IAccessibleText * This,
- /* [in] */ long startIndex,
- /* [in] */ long endIndex,
- /* [in] */ enum IA2CoordinateType coordinateType,
- /* [in] */ long x,
- /* [in] */ long y);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_newText )(
- IAccessibleText * This,
- /* [retval][out] */ IA2TextSegment *newText);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_oldText )(
- IAccessibleText * This,
- /* [retval][out] */ IA2TextSegment *oldText);
-
- END_INTERFACE
- } IAccessibleTextVtbl;
-
- interface IAccessibleText
- {
- CONST_VTBL struct IAccessibleTextVtbl *lpVtbl;
- };
-
-
-
-#ifdef COBJMACROS
-
-
-#define IAccessibleText_QueryInterface(This,riid,ppvObject) \
- ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
-
-#define IAccessibleText_AddRef(This) \
- ( (This)->lpVtbl -> AddRef(This) )
-
-#define IAccessibleText_Release(This) \
- ( (This)->lpVtbl -> Release(This) )
-
-
-#define IAccessibleText_addSelection(This,startOffset,endOffset) \
- ( (This)->lpVtbl -> addSelection(This,startOffset,endOffset) )
-
-#define IAccessibleText_get_attributes(This,offset,startOffset,endOffset,textAttributes) \
- ( (This)->lpVtbl -> get_attributes(This,offset,startOffset,endOffset,textAttributes) )
-
-#define IAccessibleText_get_caretOffset(This,offset) \
- ( (This)->lpVtbl -> get_caretOffset(This,offset) )
-
-#define IAccessibleText_get_characterExtents(This,offset,coordType,x,y,width,height) \
- ( (This)->lpVtbl -> get_characterExtents(This,offset,coordType,x,y,width,height) )
-
-#define IAccessibleText_get_nSelections(This,nSelections) \
- ( (This)->lpVtbl -> get_nSelections(This,nSelections) )
-
-#define IAccessibleText_get_offsetAtPoint(This,x,y,coordType,offset) \
- ( (This)->lpVtbl -> get_offsetAtPoint(This,x,y,coordType,offset) )
-
-#define IAccessibleText_get_selection(This,selectionIndex,startOffset,endOffset) \
- ( (This)->lpVtbl -> get_selection(This,selectionIndex,startOffset,endOffset) )
-
-#define IAccessibleText_get_text(This,startOffset,endOffset,text) \
- ( (This)->lpVtbl -> get_text(This,startOffset,endOffset,text) )
-
-#define IAccessibleText_get_textBeforeOffset(This,offset,boundaryType,startOffset,endOffset,text) \
- ( (This)->lpVtbl -> get_textBeforeOffset(This,offset,boundaryType,startOffset,endOffset,text) )
-
-#define IAccessibleText_get_textAfterOffset(This,offset,boundaryType,startOffset,endOffset,text) \
- ( (This)->lpVtbl -> get_textAfterOffset(This,offset,boundaryType,startOffset,endOffset,text) )
-
-#define IAccessibleText_get_textAtOffset(This,offset,boundaryType,startOffset,endOffset,text) \
- ( (This)->lpVtbl -> get_textAtOffset(This,offset,boundaryType,startOffset,endOffset,text) )
-
-#define IAccessibleText_removeSelection(This,selectionIndex) \
- ( (This)->lpVtbl -> removeSelection(This,selectionIndex) )
-
-#define IAccessibleText_setCaretOffset(This,offset) \
- ( (This)->lpVtbl -> setCaretOffset(This,offset) )
-
-#define IAccessibleText_setSelection(This,selectionIndex,startOffset,endOffset) \
- ( (This)->lpVtbl -> setSelection(This,selectionIndex,startOffset,endOffset) )
-
-#define IAccessibleText_get_nCharacters(This,nCharacters) \
- ( (This)->lpVtbl -> get_nCharacters(This,nCharacters) )
-
-#define IAccessibleText_scrollSubstringTo(This,startIndex,endIndex,scrollType) \
- ( (This)->lpVtbl -> scrollSubstringTo(This,startIndex,endIndex,scrollType) )
-
-#define IAccessibleText_scrollSubstringToPoint(This,startIndex,endIndex,coordinateType,x,y) \
- ( (This)->lpVtbl -> scrollSubstringToPoint(This,startIndex,endIndex,coordinateType,x,y) )
-
-#define IAccessibleText_get_newText(This,newText) \
- ( (This)->lpVtbl -> get_newText(This,newText) )
-
-#define IAccessibleText_get_oldText(This,oldText) \
- ( (This)->lpVtbl -> get_oldText(This,oldText) )
-
-#endif /* COBJMACROS */
-
-
-#endif /* C style interface */
-
-
-
-
-#endif /* __IAccessibleText_INTERFACE_DEFINED__ */
-
-
-/* Additional Prototypes for ALL interfaces */
-
-unsigned long __RPC_USER BSTR_UserSize( unsigned long *, unsigned long , BSTR * );
-unsigned char * __RPC_USER BSTR_UserMarshal( unsigned long *, unsigned char *, BSTR * );
-unsigned char * __RPC_USER BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * );
-void __RPC_USER BSTR_UserFree( unsigned long *, BSTR * );
-
-/* end of Additional Prototypes */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleText_i.c b/src/3rdparty/iaccessible2/generated/x86/AccessibleText_i.c
deleted file mode 100644
index bfa9e763c1..0000000000
--- a/src/3rdparty/iaccessible2/generated/x86/AccessibleText_i.c
+++ /dev/null
@@ -1,79 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
-
-/* link this file in with the server and any clients */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:55 2012
- */
-/* Compiler settings for AccessibleText.idl:
- Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-
-#include <rpc.h>
-#include <rpcndr.h>
-
-#ifdef _MIDL_USE_GUIDDEF_
-
-#ifndef INITGUID
-#define INITGUID
-#include <guiddef.h>
-#undef INITGUID
-#else
-#include <guiddef.h>
-#endif
-
-#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
- DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
-
-#else // !_MIDL_USE_GUIDDEF_
-
-#ifndef __IID_DEFINED__
-#define __IID_DEFINED__
-
-typedef struct _IID
-{
- unsigned long x;
- unsigned short s1;
- unsigned short s2;
- unsigned char c[8];
-} IID;
-
-#endif // __IID_DEFINED__
-
-#ifndef CLSID_DEFINED
-#define CLSID_DEFINED
-typedef IID CLSID;
-#endif // CLSID_DEFINED
-
-#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
- const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
-
-#endif !_MIDL_USE_GUIDDEF_
-
-MIDL_DEFINE_GUID(IID, IID_IAccessibleText,0x24FD2FFB,0x3AAD,0x4a08,0x83,0x35,0xA3,0xAD,0x89,0xC0,0xFB,0x4B);
-
-#undef MIDL_DEFINE_GUID
-
-#ifdef __cplusplus
-}
-#endif
-
-
-
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleText_p.c b/src/3rdparty/iaccessible2/generated/x86/AccessibleText_p.c
deleted file mode 100644
index ea56621c62..0000000000
--- a/src/3rdparty/iaccessible2/generated/x86/AccessibleText_p.c
+++ /dev/null
@@ -1,1196 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the proxy stub code */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:55 2012
- */
-/* Compiler settings for AccessibleText.idl:
- Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#if !defined(_M_IA64) && !defined(_M_AMD64)
-
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-#if _MSC_VER >= 1200
-#pragma warning(push)
-#endif
-
-#pragma warning( disable: 4211 ) /* redefine extern to static */
-#pragma warning( disable: 4232 ) /* dllimport identity*/
-#pragma warning( disable: 4024 ) /* array to pointer mapping*/
-#pragma warning( disable: 4152 ) /* function/data pointer conversion in expression */
-#pragma warning( disable: 4100 ) /* unreferenced arguments in x86 call */
-
-#pragma optimize("", off )
-
-#define USE_STUBLESS_PROXY
-
-
-/* verify that the <rpcproxy.h> version is high enough to compile this file*/
-#ifndef __REDQ_RPCPROXY_H_VERSION__
-#define __REQUIRED_RPCPROXY_H_VERSION__ 475
-#endif
-
-
-#include "rpcproxy.h"
-#ifndef __RPCPROXY_H_VERSION__
-#error this stub requires an updated version of <rpcproxy.h>
-#endif /* __RPCPROXY_H_VERSION__ */
-
-
-#include "AccessibleText.h"
-
-#define TYPE_FORMAT_STRING_SIZE 67
-#define PROC_FORMAT_STRING_SIZE 901
-#define EXPR_FORMAT_STRING_SIZE 1
-#define TRANSMIT_AS_TABLE_SIZE 0
-#define WIRE_MARSHAL_TABLE_SIZE 1
-
-typedef struct _AccessibleText_MIDL_TYPE_FORMAT_STRING
- {
- short Pad;
- unsigned char Format[ TYPE_FORMAT_STRING_SIZE ];
- } AccessibleText_MIDL_TYPE_FORMAT_STRING;
-
-typedef struct _AccessibleText_MIDL_PROC_FORMAT_STRING
- {
- short Pad;
- unsigned char Format[ PROC_FORMAT_STRING_SIZE ];
- } AccessibleText_MIDL_PROC_FORMAT_STRING;
-
-typedef struct _AccessibleText_MIDL_EXPR_FORMAT_STRING
- {
- long Pad;
- unsigned char Format[ EXPR_FORMAT_STRING_SIZE ];
- } AccessibleText_MIDL_EXPR_FORMAT_STRING;
-
-
-static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax =
-{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}};
-
-
-extern const AccessibleText_MIDL_TYPE_FORMAT_STRING AccessibleText__MIDL_TypeFormatString;
-extern const AccessibleText_MIDL_PROC_FORMAT_STRING AccessibleText__MIDL_ProcFormatString;
-extern const AccessibleText_MIDL_EXPR_FORMAT_STRING AccessibleText__MIDL_ExprFormatString;
-
-
-extern const MIDL_STUB_DESC Object_StubDesc;
-
-
-extern const MIDL_SERVER_INFO IAccessibleText_ServerInfo;
-extern const MIDL_STUBLESS_PROXY_INFO IAccessibleText_ProxyInfo;
-
-
-extern const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ];
-
-#if !defined(__RPC_WIN32__)
-#error Invalid build platform for this stub.
-#endif
-
-#if !(TARGET_IS_NT50_OR_LATER)
-#error You need Windows 2000 or later to run this stub because it uses these features:
-#error /robust command line switch.
-#error However, your C/C++ compilation flags indicate you intend to run this app on earlier systems.
-#error This app will fail with the RPC_X_WRONG_STUB_VERSION error.
-#endif
-
-
-static const AccessibleText_MIDL_PROC_FORMAT_STRING AccessibleText__MIDL_ProcFormatString =
- {
- 0,
- {
-
- /* Procedure addSelection */
-
- 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 2 */ NdrFcLong( 0x0 ), /* 0 */
-/* 6 */ NdrFcShort( 0x3 ), /* 3 */
-/* 8 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
-/* 10 */ NdrFcShort( 0x10 ), /* 16 */
-/* 12 */ NdrFcShort( 0x8 ), /* 8 */
-/* 14 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x3, /* 3 */
-/* 16 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 18 */ NdrFcShort( 0x0 ), /* 0 */
-/* 20 */ NdrFcShort( 0x0 ), /* 0 */
-/* 22 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter startOffset */
-
-/* 24 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 26 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 28 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter endOffset */
-
-/* 30 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 32 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 34 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 36 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 38 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 40 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_attributes */
-
-/* 42 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 44 */ NdrFcLong( 0x0 ), /* 0 */
-/* 48 */ NdrFcShort( 0x4 ), /* 4 */
-/* 50 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */
-/* 52 */ NdrFcShort( 0x8 ), /* 8 */
-/* 54 */ NdrFcShort( 0x40 ), /* 64 */
-/* 56 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x5, /* 5 */
-/* 58 */ 0x8, /* 8 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 60 */ NdrFcShort( 0x1 ), /* 1 */
-/* 62 */ NdrFcShort( 0x0 ), /* 0 */
-/* 64 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter offset */
-
-/* 66 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 68 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 70 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter startOffset */
-
-/* 72 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 74 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 76 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter endOffset */
-
-/* 78 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 80 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 82 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter textAttributes */
-
-/* 84 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
-/* 86 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
-/* 88 */ NdrFcShort( 0x24 ), /* Type Offset=36 */
-
- /* Return value */
-
-/* 90 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 92 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
-/* 94 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_caretOffset */
-
-/* 96 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 98 */ NdrFcLong( 0x0 ), /* 0 */
-/* 102 */ NdrFcShort( 0x5 ), /* 5 */
-/* 104 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 106 */ NdrFcShort( 0x0 ), /* 0 */
-/* 108 */ NdrFcShort( 0x24 ), /* 36 */
-/* 110 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 112 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 114 */ NdrFcShort( 0x0 ), /* 0 */
-/* 116 */ NdrFcShort( 0x0 ), /* 0 */
-/* 118 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter offset */
-
-/* 120 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 122 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 124 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 126 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 128 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 130 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_characterExtents */
-
-/* 132 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 134 */ NdrFcLong( 0x0 ), /* 0 */
-/* 138 */ NdrFcShort( 0x6 ), /* 6 */
-/* 140 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */
-/* 142 */ NdrFcShort( 0xe ), /* 14 */
-/* 144 */ NdrFcShort( 0x78 ), /* 120 */
-/* 146 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x7, /* 7 */
-/* 148 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 150 */ NdrFcShort( 0x0 ), /* 0 */
-/* 152 */ NdrFcShort( 0x0 ), /* 0 */
-/* 154 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter offset */
-
-/* 156 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 158 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 160 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter coordType */
-
-/* 162 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 164 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 166 */ 0xd, /* FC_ENUM16 */
- 0x0, /* 0 */
-
- /* Parameter x */
-
-/* 168 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 170 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 172 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter y */
-
-/* 174 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 176 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
-/* 178 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter width */
-
-/* 180 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 182 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
-/* 184 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter height */
-
-/* 186 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 188 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */
-/* 190 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 192 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 194 */ NdrFcShort( 0x1c ), /* x86 Stack size/offset = 28 */
-/* 196 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_nSelections */
-
-/* 198 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 200 */ NdrFcLong( 0x0 ), /* 0 */
-/* 204 */ NdrFcShort( 0x7 ), /* 7 */
-/* 206 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 208 */ NdrFcShort( 0x0 ), /* 0 */
-/* 210 */ NdrFcShort( 0x24 ), /* 36 */
-/* 212 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 214 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 216 */ NdrFcShort( 0x0 ), /* 0 */
-/* 218 */ NdrFcShort( 0x0 ), /* 0 */
-/* 220 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter nSelections */
-
-/* 222 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 224 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 226 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 228 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 230 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 232 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_offsetAtPoint */
-
-/* 234 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 236 */ NdrFcLong( 0x0 ), /* 0 */
-/* 240 */ NdrFcShort( 0x8 ), /* 8 */
-/* 242 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */
-/* 244 */ NdrFcShort( 0x16 ), /* 22 */
-/* 246 */ NdrFcShort( 0x24 ), /* 36 */
-/* 248 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x5, /* 5 */
-/* 250 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 252 */ NdrFcShort( 0x0 ), /* 0 */
-/* 254 */ NdrFcShort( 0x0 ), /* 0 */
-/* 256 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter x */
-
-/* 258 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 260 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 262 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter y */
-
-/* 264 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 266 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 268 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter coordType */
-
-/* 270 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 272 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 274 */ 0xd, /* FC_ENUM16 */
- 0x0, /* 0 */
-
- /* Parameter offset */
-
-/* 276 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 278 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
-/* 280 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 282 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 284 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
-/* 286 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_selection */
-
-/* 288 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 290 */ NdrFcLong( 0x0 ), /* 0 */
-/* 294 */ NdrFcShort( 0x9 ), /* 9 */
-/* 296 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
-/* 298 */ NdrFcShort( 0x8 ), /* 8 */
-/* 300 */ NdrFcShort( 0x40 ), /* 64 */
-/* 302 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x4, /* 4 */
-/* 304 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 306 */ NdrFcShort( 0x0 ), /* 0 */
-/* 308 */ NdrFcShort( 0x0 ), /* 0 */
-/* 310 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter selectionIndex */
-
-/* 312 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 314 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 316 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter startOffset */
-
-/* 318 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 320 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 322 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter endOffset */
-
-/* 324 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 326 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 328 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 330 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 332 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
-/* 334 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_text */
-
-/* 336 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 338 */ NdrFcLong( 0x0 ), /* 0 */
-/* 342 */ NdrFcShort( 0xa ), /* 10 */
-/* 344 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
-/* 346 */ NdrFcShort( 0x10 ), /* 16 */
-/* 348 */ NdrFcShort( 0x8 ), /* 8 */
-/* 350 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x4, /* 4 */
-/* 352 */ 0x8, /* 8 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 354 */ NdrFcShort( 0x1 ), /* 1 */
-/* 356 */ NdrFcShort( 0x0 ), /* 0 */
-/* 358 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter startOffset */
-
-/* 360 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 362 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 364 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter endOffset */
-
-/* 366 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 368 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 370 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter text */
-
-/* 372 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
-/* 374 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 376 */ NdrFcShort( 0x24 ), /* Type Offset=36 */
-
- /* Return value */
-
-/* 378 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 380 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
-/* 382 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_textBeforeOffset */
-
-/* 384 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 386 */ NdrFcLong( 0x0 ), /* 0 */
-/* 390 */ NdrFcShort( 0xb ), /* 11 */
-/* 392 */ NdrFcShort( 0x1c ), /* x86 Stack size/offset = 28 */
-/* 394 */ NdrFcShort( 0xe ), /* 14 */
-/* 396 */ NdrFcShort( 0x40 ), /* 64 */
-/* 398 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x6, /* 6 */
-/* 400 */ 0x8, /* 8 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 402 */ NdrFcShort( 0x1 ), /* 1 */
-/* 404 */ NdrFcShort( 0x0 ), /* 0 */
-/* 406 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter offset */
-
-/* 408 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 410 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 412 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter boundaryType */
-
-/* 414 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 416 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 418 */ 0xd, /* FC_ENUM16 */
- 0x0, /* 0 */
-
- /* Parameter startOffset */
-
-/* 420 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 422 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 424 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter endOffset */
-
-/* 426 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 428 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
-/* 430 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter text */
-
-/* 432 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
-/* 434 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
-/* 436 */ NdrFcShort( 0x24 ), /* Type Offset=36 */
-
- /* Return value */
-
-/* 438 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 440 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */
-/* 442 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_textAfterOffset */
-
-/* 444 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 446 */ NdrFcLong( 0x0 ), /* 0 */
-/* 450 */ NdrFcShort( 0xc ), /* 12 */
-/* 452 */ NdrFcShort( 0x1c ), /* x86 Stack size/offset = 28 */
-/* 454 */ NdrFcShort( 0xe ), /* 14 */
-/* 456 */ NdrFcShort( 0x40 ), /* 64 */
-/* 458 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x6, /* 6 */
-/* 460 */ 0x8, /* 8 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 462 */ NdrFcShort( 0x1 ), /* 1 */
-/* 464 */ NdrFcShort( 0x0 ), /* 0 */
-/* 466 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter offset */
-
-/* 468 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 470 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 472 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter boundaryType */
-
-/* 474 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 476 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 478 */ 0xd, /* FC_ENUM16 */
- 0x0, /* 0 */
-
- /* Parameter startOffset */
-
-/* 480 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 482 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 484 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter endOffset */
-
-/* 486 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 488 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
-/* 490 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter text */
-
-/* 492 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
-/* 494 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
-/* 496 */ NdrFcShort( 0x24 ), /* Type Offset=36 */
-
- /* Return value */
-
-/* 498 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 500 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */
-/* 502 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_textAtOffset */
-
-/* 504 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 506 */ NdrFcLong( 0x0 ), /* 0 */
-/* 510 */ NdrFcShort( 0xd ), /* 13 */
-/* 512 */ NdrFcShort( 0x1c ), /* x86 Stack size/offset = 28 */
-/* 514 */ NdrFcShort( 0xe ), /* 14 */
-/* 516 */ NdrFcShort( 0x40 ), /* 64 */
-/* 518 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x6, /* 6 */
-/* 520 */ 0x8, /* 8 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 522 */ NdrFcShort( 0x1 ), /* 1 */
-/* 524 */ NdrFcShort( 0x0 ), /* 0 */
-/* 526 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter offset */
-
-/* 528 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 530 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 532 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter boundaryType */
-
-/* 534 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 536 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 538 */ 0xd, /* FC_ENUM16 */
- 0x0, /* 0 */
-
- /* Parameter startOffset */
-
-/* 540 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 542 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 544 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter endOffset */
-
-/* 546 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 548 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
-/* 550 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter text */
-
-/* 552 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
-/* 554 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
-/* 556 */ NdrFcShort( 0x24 ), /* Type Offset=36 */
-
- /* Return value */
-
-/* 558 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 560 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */
-/* 562 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure removeSelection */
-
-/* 564 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 566 */ NdrFcLong( 0x0 ), /* 0 */
-/* 570 */ NdrFcShort( 0xe ), /* 14 */
-/* 572 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 574 */ NdrFcShort( 0x8 ), /* 8 */
-/* 576 */ NdrFcShort( 0x8 ), /* 8 */
-/* 578 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 580 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 582 */ NdrFcShort( 0x0 ), /* 0 */
-/* 584 */ NdrFcShort( 0x0 ), /* 0 */
-/* 586 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter selectionIndex */
-
-/* 588 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 590 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 592 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 594 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 596 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 598 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure setCaretOffset */
-
-/* 600 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 602 */ NdrFcLong( 0x0 ), /* 0 */
-/* 606 */ NdrFcShort( 0xf ), /* 15 */
-/* 608 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 610 */ NdrFcShort( 0x8 ), /* 8 */
-/* 612 */ NdrFcShort( 0x8 ), /* 8 */
-/* 614 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 616 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 618 */ NdrFcShort( 0x0 ), /* 0 */
-/* 620 */ NdrFcShort( 0x0 ), /* 0 */
-/* 622 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter offset */
-
-/* 624 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 626 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 628 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 630 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 632 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 634 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure setSelection */
-
-/* 636 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 638 */ NdrFcLong( 0x0 ), /* 0 */
-/* 642 */ NdrFcShort( 0x10 ), /* 16 */
-/* 644 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
-/* 646 */ NdrFcShort( 0x18 ), /* 24 */
-/* 648 */ NdrFcShort( 0x8 ), /* 8 */
-/* 650 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x4, /* 4 */
-/* 652 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 654 */ NdrFcShort( 0x0 ), /* 0 */
-/* 656 */ NdrFcShort( 0x0 ), /* 0 */
-/* 658 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter selectionIndex */
-
-/* 660 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 662 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 664 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter startOffset */
-
-/* 666 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 668 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 670 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter endOffset */
-
-/* 672 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 674 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 676 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 678 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 680 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
-/* 682 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_nCharacters */
-
-/* 684 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 686 */ NdrFcLong( 0x0 ), /* 0 */
-/* 690 */ NdrFcShort( 0x11 ), /* 17 */
-/* 692 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 694 */ NdrFcShort( 0x0 ), /* 0 */
-/* 696 */ NdrFcShort( 0x24 ), /* 36 */
-/* 698 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x2, /* 2 */
-/* 700 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 702 */ NdrFcShort( 0x0 ), /* 0 */
-/* 704 */ NdrFcShort( 0x0 ), /* 0 */
-/* 706 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter nCharacters */
-
-/* 708 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
-/* 710 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 712 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 714 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 716 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 718 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure scrollSubstringTo */
-
-/* 720 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 722 */ NdrFcLong( 0x0 ), /* 0 */
-/* 726 */ NdrFcShort( 0x12 ), /* 18 */
-/* 728 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
-/* 730 */ NdrFcShort( 0x16 ), /* 22 */
-/* 732 */ NdrFcShort( 0x8 ), /* 8 */
-/* 734 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x4, /* 4 */
-/* 736 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 738 */ NdrFcShort( 0x0 ), /* 0 */
-/* 740 */ NdrFcShort( 0x0 ), /* 0 */
-/* 742 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter startIndex */
-
-/* 744 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 746 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 748 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter endIndex */
-
-/* 750 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 752 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 754 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter scrollType */
-
-/* 756 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 758 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 760 */ 0xd, /* FC_ENUM16 */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 762 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 764 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
-/* 766 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure scrollSubstringToPoint */
-
-/* 768 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 770 */ NdrFcLong( 0x0 ), /* 0 */
-/* 774 */ NdrFcShort( 0x13 ), /* 19 */
-/* 776 */ NdrFcShort( 0x1c ), /* x86 Stack size/offset = 28 */
-/* 778 */ NdrFcShort( 0x26 ), /* 38 */
-/* 780 */ NdrFcShort( 0x8 ), /* 8 */
-/* 782 */ 0x44, /* Oi2 Flags: has return, has ext, */
- 0x6, /* 6 */
-/* 784 */ 0x8, /* 8 */
- 0x1, /* Ext Flags: new corr desc, */
-/* 786 */ NdrFcShort( 0x0 ), /* 0 */
-/* 788 */ NdrFcShort( 0x0 ), /* 0 */
-/* 790 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter startIndex */
-
-/* 792 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 794 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 796 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter endIndex */
-
-/* 798 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 800 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 802 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter coordinateType */
-
-/* 804 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 806 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 808 */ 0xd, /* FC_ENUM16 */
- 0x0, /* 0 */
-
- /* Parameter x */
-
-/* 810 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 812 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
-/* 814 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Parameter y */
-
-/* 816 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
-/* 818 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
-/* 820 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Return value */
-
-/* 822 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 824 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */
-/* 826 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_newText */
-
-/* 828 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 830 */ NdrFcLong( 0x0 ), /* 0 */
-/* 834 */ NdrFcShort( 0x14 ), /* 20 */
-/* 836 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 838 */ NdrFcShort( 0x0 ), /* 0 */
-/* 840 */ NdrFcShort( 0x8 ), /* 8 */
-/* 842 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x2, /* 2 */
-/* 844 */ 0x8, /* 8 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 846 */ NdrFcShort( 0x1 ), /* 1 */
-/* 848 */ NdrFcShort( 0x0 ), /* 0 */
-/* 850 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter newText */
-
-/* 852 */ NdrFcShort( 0x4113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=16 */
-/* 854 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 856 */ NdrFcShort( 0x32 ), /* Type Offset=50 */
-
- /* Return value */
-
-/* 858 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 860 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 862 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_oldText */
-
-/* 864 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 866 */ NdrFcLong( 0x0 ), /* 0 */
-/* 870 */ NdrFcShort( 0x15 ), /* 21 */
-/* 872 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 874 */ NdrFcShort( 0x0 ), /* 0 */
-/* 876 */ NdrFcShort( 0x8 ), /* 8 */
-/* 878 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x2, /* 2 */
-/* 880 */ 0x8, /* 8 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 882 */ NdrFcShort( 0x1 ), /* 1 */
-/* 884 */ NdrFcShort( 0x0 ), /* 0 */
-/* 886 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter oldText */
-
-/* 888 */ NdrFcShort( 0x4113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=16 */
-/* 890 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 892 */ NdrFcShort( 0x32 ), /* Type Offset=50 */
-
- /* Return value */
-
-/* 894 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 896 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 898 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- 0x0
- }
- };
-
-static const AccessibleText_MIDL_TYPE_FORMAT_STRING AccessibleText__MIDL_TypeFormatString =
- {
- 0,
- {
- NdrFcShort( 0x0 ), /* 0 */
-/* 2 */
- 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
-/* 4 */ 0x8, /* FC_LONG */
- 0x5c, /* FC_PAD */
-/* 6 */
- 0x11, 0x4, /* FC_RP [alloced_on_stack] */
-/* 8 */ NdrFcShort( 0x1c ), /* Offset= 28 (36) */
-/* 10 */
- 0x13, 0x0, /* FC_OP */
-/* 12 */ NdrFcShort( 0xe ), /* Offset= 14 (26) */
-/* 14 */
- 0x1b, /* FC_CARRAY */
- 0x1, /* 1 */
-/* 16 */ NdrFcShort( 0x2 ), /* 2 */
-/* 18 */ 0x9, /* Corr desc: FC_ULONG */
- 0x0, /* */
-/* 20 */ NdrFcShort( 0xfffc ), /* -4 */
-/* 22 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 24 */ 0x6, /* FC_SHORT */
- 0x5b, /* FC_END */
-/* 26 */
- 0x17, /* FC_CSTRUCT */
- 0x3, /* 3 */
-/* 28 */ NdrFcShort( 0x8 ), /* 8 */
-/* 30 */ NdrFcShort( 0xfff0 ), /* Offset= -16 (14) */
-/* 32 */ 0x8, /* FC_LONG */
- 0x8, /* FC_LONG */
-/* 34 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-/* 36 */ 0xb4, /* FC_USER_MARSHAL */
- 0x83, /* 131 */
-/* 38 */ NdrFcShort( 0x0 ), /* 0 */
-/* 40 */ NdrFcShort( 0x4 ), /* 4 */
-/* 42 */ NdrFcShort( 0x0 ), /* 0 */
-/* 44 */ NdrFcShort( 0xffde ), /* Offset= -34 (10) */
-/* 46 */
- 0x11, 0x4, /* FC_RP [alloced_on_stack] */
-/* 48 */ NdrFcShort( 0x2 ), /* Offset= 2 (50) */
-/* 50 */
- 0x1a, /* FC_BOGUS_STRUCT */
- 0x3, /* 3 */
-/* 52 */ NdrFcShort( 0xc ), /* 12 */
-/* 54 */ NdrFcShort( 0x0 ), /* 0 */
-/* 56 */ NdrFcShort( 0x0 ), /* Offset= 0 (56) */
-/* 58 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
- 0x0, /* 0 */
-/* 60 */ NdrFcShort( 0xffe8 ), /* Offset= -24 (36) */
-/* 62 */ 0x8, /* FC_LONG */
- 0x8, /* FC_LONG */
-/* 64 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-
- 0x0
- }
- };
-
-static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] =
- {
-
- {
- BSTR_UserSize
- ,BSTR_UserMarshal
- ,BSTR_UserUnmarshal
- ,BSTR_UserFree
- }
-
- };
-
-
-
-/* Standard interface: __MIDL_itf_AccessibleText_0000_0000, ver. 0.0,
- GUID={0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}} */
-
-
-/* Object interface: IUnknown, ver. 0.0,
- GUID={0x00000000,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
-
-
-/* Object interface: IAccessibleText, ver. 0.0,
- GUID={0x24FD2FFB,0x3AAD,0x4a08,{0x83,0x35,0xA3,0xAD,0x89,0xC0,0xFB,0x4B}} */
-
-#pragma code_seg(".orpc")
-static const unsigned short IAccessibleText_FormatStringOffsetTable[] =
- {
- 0,
- 42,
- 96,
- 132,
- 198,
- 234,
- 288,
- 336,
- 384,
- 444,
- 504,
- 564,
- 600,
- 636,
- 684,
- 720,
- 768,
- 828,
- 864
- };
-
-static const MIDL_STUBLESS_PROXY_INFO IAccessibleText_ProxyInfo =
- {
- &Object_StubDesc,
- AccessibleText__MIDL_ProcFormatString.Format,
- &IAccessibleText_FormatStringOffsetTable[-3],
- 0,
- 0,
- 0
- };
-
-
-static const MIDL_SERVER_INFO IAccessibleText_ServerInfo =
- {
- &Object_StubDesc,
- 0,
- AccessibleText__MIDL_ProcFormatString.Format,
- &IAccessibleText_FormatStringOffsetTable[-3],
- 0,
- 0,
- 0,
- 0};
-CINTERFACE_PROXY_VTABLE(22) _IAccessibleTextProxyVtbl =
-{
- &IAccessibleText_ProxyInfo,
- &IID_IAccessibleText,
- IUnknown_QueryInterface_Proxy,
- IUnknown_AddRef_Proxy,
- IUnknown_Release_Proxy ,
- (void *) (INT_PTR) -1 /* IAccessibleText::addSelection */ ,
- (void *) (INT_PTR) -1 /* IAccessibleText::get_attributes */ ,
- (void *) (INT_PTR) -1 /* IAccessibleText::get_caretOffset */ ,
- (void *) (INT_PTR) -1 /* IAccessibleText::get_characterExtents */ ,
- (void *) (INT_PTR) -1 /* IAccessibleText::get_nSelections */ ,
- (void *) (INT_PTR) -1 /* IAccessibleText::get_offsetAtPoint */ ,
- (void *) (INT_PTR) -1 /* IAccessibleText::get_selection */ ,
- (void *) (INT_PTR) -1 /* IAccessibleText::get_text */ ,
- (void *) (INT_PTR) -1 /* IAccessibleText::get_textBeforeOffset */ ,
- (void *) (INT_PTR) -1 /* IAccessibleText::get_textAfterOffset */ ,
- (void *) (INT_PTR) -1 /* IAccessibleText::get_textAtOffset */ ,
- (void *) (INT_PTR) -1 /* IAccessibleText::removeSelection */ ,
- (void *) (INT_PTR) -1 /* IAccessibleText::setCaretOffset */ ,
- (void *) (INT_PTR) -1 /* IAccessibleText::setSelection */ ,
- (void *) (INT_PTR) -1 /* IAccessibleText::get_nCharacters */ ,
- (void *) (INT_PTR) -1 /* IAccessibleText::scrollSubstringTo */ ,
- (void *) (INT_PTR) -1 /* IAccessibleText::scrollSubstringToPoint */ ,
- (void *) (INT_PTR) -1 /* IAccessibleText::get_newText */ ,
- (void *) (INT_PTR) -1 /* IAccessibleText::get_oldText */
-};
-
-const CInterfaceStubVtbl _IAccessibleTextStubVtbl =
-{
- &IID_IAccessibleText,
- &IAccessibleText_ServerInfo,
- 22,
- 0, /* pure interpreted */
- CStdStubBuffer_METHODS
-};
-
-static const MIDL_STUB_DESC Object_StubDesc =
- {
- 0,
- NdrOleAllocate,
- NdrOleFree,
- 0,
- 0,
- 0,
- 0,
- 0,
- AccessibleText__MIDL_TypeFormatString.Format,
- 1, /* -error bounds_check flag */
- 0x50002, /* Ndr library version */
- 0,
- 0x700022b, /* MIDL Version 7.0.555 */
- 0,
- UserMarshalRoutines,
- 0, /* notify & notify_flag routine table */
- 0x1, /* MIDL flag */
- 0, /* cs routines */
- 0, /* proxy/server info */
- 0
- };
-
-const CInterfaceProxyVtbl * const _AccessibleText_ProxyVtblList[] =
-{
- ( CInterfaceProxyVtbl *) &_IAccessibleTextProxyVtbl,
- 0
-};
-
-const CInterfaceStubVtbl * const _AccessibleText_StubVtblList[] =
-{
- ( CInterfaceStubVtbl *) &_IAccessibleTextStubVtbl,
- 0
-};
-
-PCInterfaceName const _AccessibleText_InterfaceNamesList[] =
-{
- "IAccessibleText",
- 0
-};
-
-
-#define _AccessibleText_CHECK_IID(n) IID_GENERIC_CHECK_IID( _AccessibleText, pIID, n)
-
-int __stdcall _AccessibleText_IID_Lookup( const IID * pIID, int * pIndex )
-{
-
- if(!_AccessibleText_CHECK_IID(0))
- {
- *pIndex = 0;
- return 1;
- }
-
- return 0;
-}
-
-const ExtendedProxyFileInfo AccessibleText_ProxyFileInfo =
-{
- (PCInterfaceProxyVtblList *) & _AccessibleText_ProxyVtblList,
- (PCInterfaceStubVtblList *) & _AccessibleText_StubVtblList,
- (const PCInterfaceName * ) & _AccessibleText_InterfaceNamesList,
- 0, /* no delegation */
- & _AccessibleText_IID_Lookup,
- 1,
- 2,
- 0, /* table of [async_uuid] interfaces */
- 0, /* Filler1 */
- 0, /* Filler2 */
- 0 /* Filler3 */
-};
-#pragma optimize("", on )
-#if _MSC_VER >= 1200
-#pragma warning(pop)
-#endif
-
-
-#endif /* !defined(_M_IA64) && !defined(_M_AMD64)*/
-
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleValue.h b/src/3rdparty/iaccessible2/generated/x86/AccessibleValue.h
deleted file mode 100644
index 6ef70c261f..0000000000
--- a/src/3rdparty/iaccessible2/generated/x86/AccessibleValue.h
+++ /dev/null
@@ -1,188 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the definitions for the interfaces */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:55 2012
- */
-/* Compiler settings for AccessibleValue.idl:
- Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-
-
-/* verify that the <rpcndr.h> version is high enough to compile this file*/
-#ifndef __REQUIRED_RPCNDR_H_VERSION__
-#define __REQUIRED_RPCNDR_H_VERSION__ 475
-#endif
-
-#include "rpc.h"
-#include "rpcndr.h"
-
-#ifndef __RPCNDR_H_VERSION__
-#error this stub requires an updated version of <rpcndr.h>
-#endif // __RPCNDR_H_VERSION__
-
-#ifndef COM_NO_WINDOWS_H
-#include "windows.h"
-#include "ole2.h"
-#endif /*COM_NO_WINDOWS_H*/
-
-#ifndef __AccessibleValue_h__
-#define __AccessibleValue_h__
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-#pragma once
-#endif
-
-/* Forward Declarations */
-
-#ifndef __IAccessibleValue_FWD_DEFINED__
-#define __IAccessibleValue_FWD_DEFINED__
-typedef interface IAccessibleValue IAccessibleValue;
-#endif /* __IAccessibleValue_FWD_DEFINED__ */
-
-
-/* header files for imported files */
-#include "objidl.h"
-#include "oaidl.h"
-#include "oleacc.h"
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-
-#ifndef __IAccessibleValue_INTERFACE_DEFINED__
-#define __IAccessibleValue_INTERFACE_DEFINED__
-
-/* interface IAccessibleValue */
-/* [uuid][object] */
-
-
-EXTERN_C const IID IID_IAccessibleValue;
-
-#if defined(__cplusplus) && !defined(CINTERFACE)
-
- MIDL_INTERFACE("35855B5B-C566-4fd0-A7B1-E65465600394")
- IAccessibleValue : public IUnknown
- {
- public:
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_currentValue(
- /* [retval][out] */ VARIANT *currentValue) = 0;
-
- virtual HRESULT STDMETHODCALLTYPE setCurrentValue(
- /* [in] */ VARIANT value) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_maximumValue(
- /* [retval][out] */ VARIANT *maximumValue) = 0;
-
- virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_minimumValue(
- /* [retval][out] */ VARIANT *minimumValue) = 0;
-
- };
-
-#else /* C style interface */
-
- typedef struct IAccessibleValueVtbl
- {
- BEGIN_INTERFACE
-
- HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
- IAccessibleValue * This,
- /* [in] */ REFIID riid,
- /* [annotation][iid_is][out] */
- __RPC__deref_out void **ppvObject);
-
- ULONG ( STDMETHODCALLTYPE *AddRef )(
- IAccessibleValue * This);
-
- ULONG ( STDMETHODCALLTYPE *Release )(
- IAccessibleValue * This);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_currentValue )(
- IAccessibleValue * This,
- /* [retval][out] */ VARIANT *currentValue);
-
- HRESULT ( STDMETHODCALLTYPE *setCurrentValue )(
- IAccessibleValue * This,
- /* [in] */ VARIANT value);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_maximumValue )(
- IAccessibleValue * This,
- /* [retval][out] */ VARIANT *maximumValue);
-
- /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_minimumValue )(
- IAccessibleValue * This,
- /* [retval][out] */ VARIANT *minimumValue);
-
- END_INTERFACE
- } IAccessibleValueVtbl;
-
- interface IAccessibleValue
- {
- CONST_VTBL struct IAccessibleValueVtbl *lpVtbl;
- };
-
-
-
-#ifdef COBJMACROS
-
-
-#define IAccessibleValue_QueryInterface(This,riid,ppvObject) \
- ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
-
-#define IAccessibleValue_AddRef(This) \
- ( (This)->lpVtbl -> AddRef(This) )
-
-#define IAccessibleValue_Release(This) \
- ( (This)->lpVtbl -> Release(This) )
-
-
-#define IAccessibleValue_get_currentValue(This,currentValue) \
- ( (This)->lpVtbl -> get_currentValue(This,currentValue) )
-
-#define IAccessibleValue_setCurrentValue(This,value) \
- ( (This)->lpVtbl -> setCurrentValue(This,value) )
-
-#define IAccessibleValue_get_maximumValue(This,maximumValue) \
- ( (This)->lpVtbl -> get_maximumValue(This,maximumValue) )
-
-#define IAccessibleValue_get_minimumValue(This,minimumValue) \
- ( (This)->lpVtbl -> get_minimumValue(This,minimumValue) )
-
-#endif /* COBJMACROS */
-
-
-#endif /* C style interface */
-
-
-
-
-#endif /* __IAccessibleValue_INTERFACE_DEFINED__ */
-
-
-/* Additional Prototypes for ALL interfaces */
-
-unsigned long __RPC_USER VARIANT_UserSize( unsigned long *, unsigned long , VARIANT * );
-unsigned char * __RPC_USER VARIANT_UserMarshal( unsigned long *, unsigned char *, VARIANT * );
-unsigned char * __RPC_USER VARIANT_UserUnmarshal(unsigned long *, unsigned char *, VARIANT * );
-void __RPC_USER VARIANT_UserFree( unsigned long *, VARIANT * );
-
-/* end of Additional Prototypes */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleValue_i.c b/src/3rdparty/iaccessible2/generated/x86/AccessibleValue_i.c
deleted file mode 100644
index dffdb123af..0000000000
--- a/src/3rdparty/iaccessible2/generated/x86/AccessibleValue_i.c
+++ /dev/null
@@ -1,79 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
-
-/* link this file in with the server and any clients */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:55 2012
- */
-/* Compiler settings for AccessibleValue.idl:
- Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-
-#include <rpc.h>
-#include <rpcndr.h>
-
-#ifdef _MIDL_USE_GUIDDEF_
-
-#ifndef INITGUID
-#define INITGUID
-#include <guiddef.h>
-#undef INITGUID
-#else
-#include <guiddef.h>
-#endif
-
-#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
- DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
-
-#else // !_MIDL_USE_GUIDDEF_
-
-#ifndef __IID_DEFINED__
-#define __IID_DEFINED__
-
-typedef struct _IID
-{
- unsigned long x;
- unsigned short s1;
- unsigned short s2;
- unsigned char c[8];
-} IID;
-
-#endif // __IID_DEFINED__
-
-#ifndef CLSID_DEFINED
-#define CLSID_DEFINED
-typedef IID CLSID;
-#endif // CLSID_DEFINED
-
-#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
- const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
-
-#endif !_MIDL_USE_GUIDDEF_
-
-MIDL_DEFINE_GUID(IID, IID_IAccessibleValue,0x35855B5B,0xC566,0x4fd0,0xA7,0xB1,0xE6,0x54,0x65,0x60,0x03,0x94);
-
-#undef MIDL_DEFINE_GUID
-
-#ifdef __cplusplus
-}
-#endif
-
-
-
diff --git a/src/3rdparty/iaccessible2/generated/x86/AccessibleValue_p.c b/src/3rdparty/iaccessible2/generated/x86/AccessibleValue_p.c
deleted file mode 100644
index 166e2149b4..0000000000
--- a/src/3rdparty/iaccessible2/generated/x86/AccessibleValue_p.c
+++ /dev/null
@@ -1,1105 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the proxy stub code */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:55 2012
- */
-/* Compiler settings for AccessibleValue.idl:
- Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#if !defined(_M_IA64) && !defined(_M_AMD64)
-
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-#if _MSC_VER >= 1200
-#pragma warning(push)
-#endif
-
-#pragma warning( disable: 4211 ) /* redefine extern to static */
-#pragma warning( disable: 4232 ) /* dllimport identity*/
-#pragma warning( disable: 4024 ) /* array to pointer mapping*/
-#pragma warning( disable: 4152 ) /* function/data pointer conversion in expression */
-#pragma warning( disable: 4100 ) /* unreferenced arguments in x86 call */
-
-#pragma optimize("", off )
-
-#define USE_STUBLESS_PROXY
-
-
-/* verify that the <rpcproxy.h> version is high enough to compile this file*/
-#ifndef __REDQ_RPCPROXY_H_VERSION__
-#define __REQUIRED_RPCPROXY_H_VERSION__ 475
-#endif
-
-
-#include "rpcproxy.h"
-#ifndef __RPCPROXY_H_VERSION__
-#error this stub requires an updated version of <rpcproxy.h>
-#endif /* __RPCPROXY_H_VERSION__ */
-
-
-#include "AccessibleValue.h"
-
-#define TYPE_FORMAT_STRING_SIZE 1053
-#define PROC_FORMAT_STRING_SIZE 145
-#define EXPR_FORMAT_STRING_SIZE 1
-#define TRANSMIT_AS_TABLE_SIZE 0
-#define WIRE_MARSHAL_TABLE_SIZE 1
-
-typedef struct _AccessibleValue_MIDL_TYPE_FORMAT_STRING
- {
- short Pad;
- unsigned char Format[ TYPE_FORMAT_STRING_SIZE ];
- } AccessibleValue_MIDL_TYPE_FORMAT_STRING;
-
-typedef struct _AccessibleValue_MIDL_PROC_FORMAT_STRING
- {
- short Pad;
- unsigned char Format[ PROC_FORMAT_STRING_SIZE ];
- } AccessibleValue_MIDL_PROC_FORMAT_STRING;
-
-typedef struct _AccessibleValue_MIDL_EXPR_FORMAT_STRING
- {
- long Pad;
- unsigned char Format[ EXPR_FORMAT_STRING_SIZE ];
- } AccessibleValue_MIDL_EXPR_FORMAT_STRING;
-
-
-static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax =
-{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}};
-
-
-extern const AccessibleValue_MIDL_TYPE_FORMAT_STRING AccessibleValue__MIDL_TypeFormatString;
-extern const AccessibleValue_MIDL_PROC_FORMAT_STRING AccessibleValue__MIDL_ProcFormatString;
-extern const AccessibleValue_MIDL_EXPR_FORMAT_STRING AccessibleValue__MIDL_ExprFormatString;
-
-
-extern const MIDL_STUB_DESC Object_StubDesc;
-
-
-extern const MIDL_SERVER_INFO IAccessibleValue_ServerInfo;
-extern const MIDL_STUBLESS_PROXY_INFO IAccessibleValue_ProxyInfo;
-
-
-extern const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ];
-
-#if !defined(__RPC_WIN32__)
-#error Invalid build platform for this stub.
-#endif
-
-#if !(TARGET_IS_NT50_OR_LATER)
-#error You need Windows 2000 or later to run this stub because it uses these features:
-#error /robust command line switch.
-#error However, your C/C++ compilation flags indicate you intend to run this app on earlier systems.
-#error This app will fail with the RPC_X_WRONG_STUB_VERSION error.
-#endif
-
-
-static const AccessibleValue_MIDL_PROC_FORMAT_STRING AccessibleValue__MIDL_ProcFormatString =
- {
- 0,
- {
-
- /* Procedure get_currentValue */
-
- 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 2 */ NdrFcLong( 0x0 ), /* 0 */
-/* 6 */ NdrFcShort( 0x3 ), /* 3 */
-/* 8 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 10 */ NdrFcShort( 0x0 ), /* 0 */
-/* 12 */ NdrFcShort( 0x8 ), /* 8 */
-/* 14 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x2, /* 2 */
-/* 16 */ 0x8, /* 8 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 18 */ NdrFcShort( 0x1 ), /* 1 */
-/* 20 */ NdrFcShort( 0x0 ), /* 0 */
-/* 22 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter currentValue */
-
-/* 24 */ NdrFcShort( 0x4113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=16 */
-/* 26 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 28 */ NdrFcShort( 0x404 ), /* Type Offset=1028 */
-
- /* Return value */
-
-/* 30 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 32 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 34 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure setCurrentValue */
-
-/* 36 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 38 */ NdrFcLong( 0x0 ), /* 0 */
-/* 42 */ NdrFcShort( 0x4 ), /* 4 */
-/* 44 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */
-/* 46 */ NdrFcShort( 0x0 ), /* 0 */
-/* 48 */ NdrFcShort( 0x8 ), /* 8 */
-/* 50 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
- 0x2, /* 2 */
-/* 52 */ 0x8, /* 8 */
- 0x5, /* Ext Flags: new corr desc, srv corr check, */
-/* 54 */ NdrFcShort( 0x0 ), /* 0 */
-/* 56 */ NdrFcShort( 0x1 ), /* 1 */
-/* 58 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter value */
-
-/* 60 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
-/* 62 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 64 */ NdrFcShort( 0x412 ), /* Type Offset=1042 */
-
- /* Return value */
-
-/* 66 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 68 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
-/* 70 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_maximumValue */
-
-/* 72 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 74 */ NdrFcLong( 0x0 ), /* 0 */
-/* 78 */ NdrFcShort( 0x5 ), /* 5 */
-/* 80 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 82 */ NdrFcShort( 0x0 ), /* 0 */
-/* 84 */ NdrFcShort( 0x8 ), /* 8 */
-/* 86 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x2, /* 2 */
-/* 88 */ 0x8, /* 8 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 90 */ NdrFcShort( 0x1 ), /* 1 */
-/* 92 */ NdrFcShort( 0x0 ), /* 0 */
-/* 94 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter maximumValue */
-
-/* 96 */ NdrFcShort( 0x4113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=16 */
-/* 98 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 100 */ NdrFcShort( 0x404 ), /* Type Offset=1028 */
-
- /* Return value */
-
-/* 102 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 104 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 106 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- /* Procedure get_minimumValue */
-
-/* 108 */ 0x33, /* FC_AUTO_HANDLE */
- 0x6c, /* Old Flags: object, Oi2 */
-/* 110 */ NdrFcLong( 0x0 ), /* 0 */
-/* 114 */ NdrFcShort( 0x6 ), /* 6 */
-/* 116 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
-/* 118 */ NdrFcShort( 0x0 ), /* 0 */
-/* 120 */ NdrFcShort( 0x8 ), /* 8 */
-/* 122 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
- 0x2, /* 2 */
-/* 124 */ 0x8, /* 8 */
- 0x3, /* Ext Flags: new corr desc, clt corr check, */
-/* 126 */ NdrFcShort( 0x1 ), /* 1 */
-/* 128 */ NdrFcShort( 0x0 ), /* 0 */
-/* 130 */ NdrFcShort( 0x0 ), /* 0 */
-
- /* Parameter minimumValue */
-
-/* 132 */ NdrFcShort( 0x4113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=16 */
-/* 134 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
-/* 136 */ NdrFcShort( 0x404 ), /* Type Offset=1028 */
-
- /* Return value */
-
-/* 138 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
-/* 140 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
-/* 142 */ 0x8, /* FC_LONG */
- 0x0, /* 0 */
-
- 0x0
- }
- };
-
-static const AccessibleValue_MIDL_TYPE_FORMAT_STRING AccessibleValue__MIDL_TypeFormatString =
- {
- 0,
- {
- NdrFcShort( 0x0 ), /* 0 */
-/* 2 */
- 0x11, 0x4, /* FC_RP [alloced_on_stack] */
-/* 4 */ NdrFcShort( 0x400 ), /* Offset= 1024 (1028) */
-/* 6 */
- 0x13, 0x0, /* FC_OP */
-/* 8 */ NdrFcShort( 0x3e8 ), /* Offset= 1000 (1008) */
-/* 10 */
- 0x2b, /* FC_NON_ENCAPSULATED_UNION */
- 0x9, /* FC_ULONG */
-/* 12 */ 0x7, /* Corr desc: FC_USHORT */
- 0x0, /* */
-/* 14 */ NdrFcShort( 0xfff8 ), /* -8 */
-/* 16 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 18 */ NdrFcShort( 0x2 ), /* Offset= 2 (20) */
-/* 20 */ NdrFcShort( 0x10 ), /* 16 */
-/* 22 */ NdrFcShort( 0x2f ), /* 47 */
-/* 24 */ NdrFcLong( 0x14 ), /* 20 */
-/* 28 */ NdrFcShort( 0x800b ), /* Simple arm type: FC_HYPER */
-/* 30 */ NdrFcLong( 0x3 ), /* 3 */
-/* 34 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
-/* 36 */ NdrFcLong( 0x11 ), /* 17 */
-/* 40 */ NdrFcShort( 0x8001 ), /* Simple arm type: FC_BYTE */
-/* 42 */ NdrFcLong( 0x2 ), /* 2 */
-/* 46 */ NdrFcShort( 0x8006 ), /* Simple arm type: FC_SHORT */
-/* 48 */ NdrFcLong( 0x4 ), /* 4 */
-/* 52 */ NdrFcShort( 0x800a ), /* Simple arm type: FC_FLOAT */
-/* 54 */ NdrFcLong( 0x5 ), /* 5 */
-/* 58 */ NdrFcShort( 0x800c ), /* Simple arm type: FC_DOUBLE */
-/* 60 */ NdrFcLong( 0xb ), /* 11 */
-/* 64 */ NdrFcShort( 0x8006 ), /* Simple arm type: FC_SHORT */
-/* 66 */ NdrFcLong( 0xa ), /* 10 */
-/* 70 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
-/* 72 */ NdrFcLong( 0x6 ), /* 6 */
-/* 76 */ NdrFcShort( 0xe8 ), /* Offset= 232 (308) */
-/* 78 */ NdrFcLong( 0x7 ), /* 7 */
-/* 82 */ NdrFcShort( 0x800c ), /* Simple arm type: FC_DOUBLE */
-/* 84 */ NdrFcLong( 0x8 ), /* 8 */
-/* 88 */ NdrFcShort( 0xe2 ), /* Offset= 226 (314) */
-/* 90 */ NdrFcLong( 0xd ), /* 13 */
-/* 94 */ NdrFcShort( 0xf6 ), /* Offset= 246 (340) */
-/* 96 */ NdrFcLong( 0x9 ), /* 9 */
-/* 100 */ NdrFcShort( 0x102 ), /* Offset= 258 (358) */
-/* 102 */ NdrFcLong( 0x2000 ), /* 8192 */
-/* 106 */ NdrFcShort( 0x10e ), /* Offset= 270 (376) */
-/* 108 */ NdrFcLong( 0x24 ), /* 36 */
-/* 112 */ NdrFcShort( 0x336 ), /* Offset= 822 (934) */
-/* 114 */ NdrFcLong( 0x4024 ), /* 16420 */
-/* 118 */ NdrFcShort( 0x330 ), /* Offset= 816 (934) */
-/* 120 */ NdrFcLong( 0x4011 ), /* 16401 */
-/* 124 */ NdrFcShort( 0x32e ), /* Offset= 814 (938) */
-/* 126 */ NdrFcLong( 0x4002 ), /* 16386 */
-/* 130 */ NdrFcShort( 0x32c ), /* Offset= 812 (942) */
-/* 132 */ NdrFcLong( 0x4003 ), /* 16387 */
-/* 136 */ NdrFcShort( 0x32a ), /* Offset= 810 (946) */
-/* 138 */ NdrFcLong( 0x4014 ), /* 16404 */
-/* 142 */ NdrFcShort( 0x328 ), /* Offset= 808 (950) */
-/* 144 */ NdrFcLong( 0x4004 ), /* 16388 */
-/* 148 */ NdrFcShort( 0x326 ), /* Offset= 806 (954) */
-/* 150 */ NdrFcLong( 0x4005 ), /* 16389 */
-/* 154 */ NdrFcShort( 0x324 ), /* Offset= 804 (958) */
-/* 156 */ NdrFcLong( 0x400b ), /* 16395 */
-/* 160 */ NdrFcShort( 0x30e ), /* Offset= 782 (942) */
-/* 162 */ NdrFcLong( 0x400a ), /* 16394 */
-/* 166 */ NdrFcShort( 0x30c ), /* Offset= 780 (946) */
-/* 168 */ NdrFcLong( 0x4006 ), /* 16390 */
-/* 172 */ NdrFcShort( 0x316 ), /* Offset= 790 (962) */
-/* 174 */ NdrFcLong( 0x4007 ), /* 16391 */
-/* 178 */ NdrFcShort( 0x30c ), /* Offset= 780 (958) */
-/* 180 */ NdrFcLong( 0x4008 ), /* 16392 */
-/* 184 */ NdrFcShort( 0x30e ), /* Offset= 782 (966) */
-/* 186 */ NdrFcLong( 0x400d ), /* 16397 */
-/* 190 */ NdrFcShort( 0x30c ), /* Offset= 780 (970) */
-/* 192 */ NdrFcLong( 0x4009 ), /* 16393 */
-/* 196 */ NdrFcShort( 0x30a ), /* Offset= 778 (974) */
-/* 198 */ NdrFcLong( 0x6000 ), /* 24576 */
-/* 202 */ NdrFcShort( 0x308 ), /* Offset= 776 (978) */
-/* 204 */ NdrFcLong( 0x400c ), /* 16396 */
-/* 208 */ NdrFcShort( 0x306 ), /* Offset= 774 (982) */
-/* 210 */ NdrFcLong( 0x10 ), /* 16 */
-/* 214 */ NdrFcShort( 0x8002 ), /* Simple arm type: FC_CHAR */
-/* 216 */ NdrFcLong( 0x12 ), /* 18 */
-/* 220 */ NdrFcShort( 0x8006 ), /* Simple arm type: FC_SHORT */
-/* 222 */ NdrFcLong( 0x13 ), /* 19 */
-/* 226 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
-/* 228 */ NdrFcLong( 0x15 ), /* 21 */
-/* 232 */ NdrFcShort( 0x800b ), /* Simple arm type: FC_HYPER */
-/* 234 */ NdrFcLong( 0x16 ), /* 22 */
-/* 238 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
-/* 240 */ NdrFcLong( 0x17 ), /* 23 */
-/* 244 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
-/* 246 */ NdrFcLong( 0xe ), /* 14 */
-/* 250 */ NdrFcShort( 0x2e4 ), /* Offset= 740 (990) */
-/* 252 */ NdrFcLong( 0x400e ), /* 16398 */
-/* 256 */ NdrFcShort( 0x2e8 ), /* Offset= 744 (1000) */
-/* 258 */ NdrFcLong( 0x4010 ), /* 16400 */
-/* 262 */ NdrFcShort( 0x2e6 ), /* Offset= 742 (1004) */
-/* 264 */ NdrFcLong( 0x4012 ), /* 16402 */
-/* 268 */ NdrFcShort( 0x2a2 ), /* Offset= 674 (942) */
-/* 270 */ NdrFcLong( 0x4013 ), /* 16403 */
-/* 274 */ NdrFcShort( 0x2a0 ), /* Offset= 672 (946) */
-/* 276 */ NdrFcLong( 0x4015 ), /* 16405 */
-/* 280 */ NdrFcShort( 0x29e ), /* Offset= 670 (950) */
-/* 282 */ NdrFcLong( 0x4016 ), /* 16406 */
-/* 286 */ NdrFcShort( 0x294 ), /* Offset= 660 (946) */
-/* 288 */ NdrFcLong( 0x4017 ), /* 16407 */
-/* 292 */ NdrFcShort( 0x28e ), /* Offset= 654 (946) */
-/* 294 */ NdrFcLong( 0x0 ), /* 0 */
-/* 298 */ NdrFcShort( 0x0 ), /* Offset= 0 (298) */
-/* 300 */ NdrFcLong( 0x1 ), /* 1 */
-/* 304 */ NdrFcShort( 0x0 ), /* Offset= 0 (304) */
-/* 306 */ NdrFcShort( 0xffff ), /* Offset= -1 (305) */
-/* 308 */
- 0x15, /* FC_STRUCT */
- 0x7, /* 7 */
-/* 310 */ NdrFcShort( 0x8 ), /* 8 */
-/* 312 */ 0xb, /* FC_HYPER */
- 0x5b, /* FC_END */
-/* 314 */
- 0x13, 0x0, /* FC_OP */
-/* 316 */ NdrFcShort( 0xe ), /* Offset= 14 (330) */
-/* 318 */
- 0x1b, /* FC_CARRAY */
- 0x1, /* 1 */
-/* 320 */ NdrFcShort( 0x2 ), /* 2 */
-/* 322 */ 0x9, /* Corr desc: FC_ULONG */
- 0x0, /* */
-/* 324 */ NdrFcShort( 0xfffc ), /* -4 */
-/* 326 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 328 */ 0x6, /* FC_SHORT */
- 0x5b, /* FC_END */
-/* 330 */
- 0x17, /* FC_CSTRUCT */
- 0x3, /* 3 */
-/* 332 */ NdrFcShort( 0x8 ), /* 8 */
-/* 334 */ NdrFcShort( 0xfff0 ), /* Offset= -16 (318) */
-/* 336 */ 0x8, /* FC_LONG */
- 0x8, /* FC_LONG */
-/* 338 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-/* 340 */
- 0x2f, /* FC_IP */
- 0x5a, /* FC_CONSTANT_IID */
-/* 342 */ NdrFcLong( 0x0 ), /* 0 */
-/* 346 */ NdrFcShort( 0x0 ), /* 0 */
-/* 348 */ NdrFcShort( 0x0 ), /* 0 */
-/* 350 */ 0xc0, /* 192 */
- 0x0, /* 0 */
-/* 352 */ 0x0, /* 0 */
- 0x0, /* 0 */
-/* 354 */ 0x0, /* 0 */
- 0x0, /* 0 */
-/* 356 */ 0x0, /* 0 */
- 0x46, /* 70 */
-/* 358 */
- 0x2f, /* FC_IP */
- 0x5a, /* FC_CONSTANT_IID */
-/* 360 */ NdrFcLong( 0x20400 ), /* 132096 */
-/* 364 */ NdrFcShort( 0x0 ), /* 0 */
-/* 366 */ NdrFcShort( 0x0 ), /* 0 */
-/* 368 */ 0xc0, /* 192 */
- 0x0, /* 0 */
-/* 370 */ 0x0, /* 0 */
- 0x0, /* 0 */
-/* 372 */ 0x0, /* 0 */
- 0x0, /* 0 */
-/* 374 */ 0x0, /* 0 */
- 0x46, /* 70 */
-/* 376 */
- 0x13, 0x10, /* FC_OP [pointer_deref] */
-/* 378 */ NdrFcShort( 0x2 ), /* Offset= 2 (380) */
-/* 380 */
- 0x13, 0x0, /* FC_OP */
-/* 382 */ NdrFcShort( 0x216 ), /* Offset= 534 (916) */
-/* 384 */
- 0x2a, /* FC_ENCAPSULATED_UNION */
- 0x49, /* 73 */
-/* 386 */ NdrFcShort( 0x18 ), /* 24 */
-/* 388 */ NdrFcShort( 0xa ), /* 10 */
-/* 390 */ NdrFcLong( 0x8 ), /* 8 */
-/* 394 */ NdrFcShort( 0x5a ), /* Offset= 90 (484) */
-/* 396 */ NdrFcLong( 0xd ), /* 13 */
-/* 400 */ NdrFcShort( 0x7e ), /* Offset= 126 (526) */
-/* 402 */ NdrFcLong( 0x9 ), /* 9 */
-/* 406 */ NdrFcShort( 0x9e ), /* Offset= 158 (564) */
-/* 408 */ NdrFcLong( 0xc ), /* 12 */
-/* 412 */ NdrFcShort( 0xc8 ), /* Offset= 200 (612) */
-/* 414 */ NdrFcLong( 0x24 ), /* 36 */
-/* 418 */ NdrFcShort( 0x124 ), /* Offset= 292 (710) */
-/* 420 */ NdrFcLong( 0x800d ), /* 32781 */
-/* 424 */ NdrFcShort( 0x140 ), /* Offset= 320 (744) */
-/* 426 */ NdrFcLong( 0x10 ), /* 16 */
-/* 430 */ NdrFcShort( 0x15a ), /* Offset= 346 (776) */
-/* 432 */ NdrFcLong( 0x2 ), /* 2 */
-/* 436 */ NdrFcShort( 0x174 ), /* Offset= 372 (808) */
-/* 438 */ NdrFcLong( 0x3 ), /* 3 */
-/* 442 */ NdrFcShort( 0x18e ), /* Offset= 398 (840) */
-/* 444 */ NdrFcLong( 0x14 ), /* 20 */
-/* 448 */ NdrFcShort( 0x1a8 ), /* Offset= 424 (872) */
-/* 450 */ NdrFcShort( 0xffff ), /* Offset= -1 (449) */
-/* 452 */
- 0x1b, /* FC_CARRAY */
- 0x3, /* 3 */
-/* 454 */ NdrFcShort( 0x4 ), /* 4 */
-/* 456 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
- 0x0, /* */
-/* 458 */ NdrFcShort( 0x0 ), /* 0 */
-/* 460 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 462 */
- 0x4b, /* FC_PP */
- 0x5c, /* FC_PAD */
-/* 464 */
- 0x48, /* FC_VARIABLE_REPEAT */
- 0x49, /* FC_FIXED_OFFSET */
-/* 466 */ NdrFcShort( 0x4 ), /* 4 */
-/* 468 */ NdrFcShort( 0x0 ), /* 0 */
-/* 470 */ NdrFcShort( 0x1 ), /* 1 */
-/* 472 */ NdrFcShort( 0x0 ), /* 0 */
-/* 474 */ NdrFcShort( 0x0 ), /* 0 */
-/* 476 */ 0x13, 0x0, /* FC_OP */
-/* 478 */ NdrFcShort( 0xff6c ), /* Offset= -148 (330) */
-/* 480 */
- 0x5b, /* FC_END */
-
- 0x8, /* FC_LONG */
-/* 482 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-/* 484 */
- 0x16, /* FC_PSTRUCT */
- 0x3, /* 3 */
-/* 486 */ NdrFcShort( 0x8 ), /* 8 */
-/* 488 */
- 0x4b, /* FC_PP */
- 0x5c, /* FC_PAD */
-/* 490 */
- 0x46, /* FC_NO_REPEAT */
- 0x5c, /* FC_PAD */
-/* 492 */ NdrFcShort( 0x4 ), /* 4 */
-/* 494 */ NdrFcShort( 0x4 ), /* 4 */
-/* 496 */ 0x11, 0x0, /* FC_RP */
-/* 498 */ NdrFcShort( 0xffd2 ), /* Offset= -46 (452) */
-/* 500 */
- 0x5b, /* FC_END */
-
- 0x8, /* FC_LONG */
-/* 502 */ 0x8, /* FC_LONG */
- 0x5b, /* FC_END */
-/* 504 */
- 0x21, /* FC_BOGUS_ARRAY */
- 0x3, /* 3 */
-/* 506 */ NdrFcShort( 0x0 ), /* 0 */
-/* 508 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
- 0x0, /* */
-/* 510 */ NdrFcShort( 0x0 ), /* 0 */
-/* 512 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 514 */ NdrFcLong( 0xffffffff ), /* -1 */
-/* 518 */ NdrFcShort( 0x0 ), /* Corr flags: */
-/* 520 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
- 0x0, /* 0 */
-/* 522 */ NdrFcShort( 0xff4a ), /* Offset= -182 (340) */
-/* 524 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-/* 526 */
- 0x1a, /* FC_BOGUS_STRUCT */
- 0x3, /* 3 */
-/* 528 */ NdrFcShort( 0x8 ), /* 8 */
-/* 530 */ NdrFcShort( 0x0 ), /* 0 */
-/* 532 */ NdrFcShort( 0x6 ), /* Offset= 6 (538) */
-/* 534 */ 0x8, /* FC_LONG */
- 0x36, /* FC_POINTER */
-/* 536 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-/* 538 */
- 0x11, 0x0, /* FC_RP */
-/* 540 */ NdrFcShort( 0xffdc ), /* Offset= -36 (504) */
-/* 542 */
- 0x21, /* FC_BOGUS_ARRAY */
- 0x3, /* 3 */
-/* 544 */ NdrFcShort( 0x0 ), /* 0 */
-/* 546 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
- 0x0, /* */
-/* 548 */ NdrFcShort( 0x0 ), /* 0 */
-/* 550 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 552 */ NdrFcLong( 0xffffffff ), /* -1 */
-/* 556 */ NdrFcShort( 0x0 ), /* Corr flags: */
-/* 558 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
- 0x0, /* 0 */
-/* 560 */ NdrFcShort( 0xff36 ), /* Offset= -202 (358) */
-/* 562 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-/* 564 */
- 0x1a, /* FC_BOGUS_STRUCT */
- 0x3, /* 3 */
-/* 566 */ NdrFcShort( 0x8 ), /* 8 */
-/* 568 */ NdrFcShort( 0x0 ), /* 0 */
-/* 570 */ NdrFcShort( 0x6 ), /* Offset= 6 (576) */
-/* 572 */ 0x8, /* FC_LONG */
- 0x36, /* FC_POINTER */
-/* 574 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-/* 576 */
- 0x11, 0x0, /* FC_RP */
-/* 578 */ NdrFcShort( 0xffdc ), /* Offset= -36 (542) */
-/* 580 */
- 0x1b, /* FC_CARRAY */
- 0x3, /* 3 */
-/* 582 */ NdrFcShort( 0x4 ), /* 4 */
-/* 584 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
- 0x0, /* */
-/* 586 */ NdrFcShort( 0x0 ), /* 0 */
-/* 588 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 590 */
- 0x4b, /* FC_PP */
- 0x5c, /* FC_PAD */
-/* 592 */
- 0x48, /* FC_VARIABLE_REPEAT */
- 0x49, /* FC_FIXED_OFFSET */
-/* 594 */ NdrFcShort( 0x4 ), /* 4 */
-/* 596 */ NdrFcShort( 0x0 ), /* 0 */
-/* 598 */ NdrFcShort( 0x1 ), /* 1 */
-/* 600 */ NdrFcShort( 0x0 ), /* 0 */
-/* 602 */ NdrFcShort( 0x0 ), /* 0 */
-/* 604 */ 0x13, 0x0, /* FC_OP */
-/* 606 */ NdrFcShort( 0x192 ), /* Offset= 402 (1008) */
-/* 608 */
- 0x5b, /* FC_END */
-
- 0x8, /* FC_LONG */
-/* 610 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-/* 612 */
- 0x1a, /* FC_BOGUS_STRUCT */
- 0x3, /* 3 */
-/* 614 */ NdrFcShort( 0x8 ), /* 8 */
-/* 616 */ NdrFcShort( 0x0 ), /* 0 */
-/* 618 */ NdrFcShort( 0x6 ), /* Offset= 6 (624) */
-/* 620 */ 0x8, /* FC_LONG */
- 0x36, /* FC_POINTER */
-/* 622 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-/* 624 */
- 0x11, 0x0, /* FC_RP */
-/* 626 */ NdrFcShort( 0xffd2 ), /* Offset= -46 (580) */
-/* 628 */
- 0x2f, /* FC_IP */
- 0x5a, /* FC_CONSTANT_IID */
-/* 630 */ NdrFcLong( 0x2f ), /* 47 */
-/* 634 */ NdrFcShort( 0x0 ), /* 0 */
-/* 636 */ NdrFcShort( 0x0 ), /* 0 */
-/* 638 */ 0xc0, /* 192 */
- 0x0, /* 0 */
-/* 640 */ 0x0, /* 0 */
- 0x0, /* 0 */
-/* 642 */ 0x0, /* 0 */
- 0x0, /* 0 */
-/* 644 */ 0x0, /* 0 */
- 0x46, /* 70 */
-/* 646 */
- 0x1b, /* FC_CARRAY */
- 0x0, /* 0 */
-/* 648 */ NdrFcShort( 0x1 ), /* 1 */
-/* 650 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
- 0x0, /* */
-/* 652 */ NdrFcShort( 0x4 ), /* 4 */
-/* 654 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 656 */ 0x1, /* FC_BYTE */
- 0x5b, /* FC_END */
-/* 658 */
- 0x1a, /* FC_BOGUS_STRUCT */
- 0x3, /* 3 */
-/* 660 */ NdrFcShort( 0x10 ), /* 16 */
-/* 662 */ NdrFcShort( 0x0 ), /* 0 */
-/* 664 */ NdrFcShort( 0xa ), /* Offset= 10 (674) */
-/* 666 */ 0x8, /* FC_LONG */
- 0x8, /* FC_LONG */
-/* 668 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
- 0x0, /* 0 */
-/* 670 */ NdrFcShort( 0xffd6 ), /* Offset= -42 (628) */
-/* 672 */ 0x36, /* FC_POINTER */
- 0x5b, /* FC_END */
-/* 674 */
- 0x13, 0x0, /* FC_OP */
-/* 676 */ NdrFcShort( 0xffe2 ), /* Offset= -30 (646) */
-/* 678 */
- 0x1b, /* FC_CARRAY */
- 0x3, /* 3 */
-/* 680 */ NdrFcShort( 0x4 ), /* 4 */
-/* 682 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
- 0x0, /* */
-/* 684 */ NdrFcShort( 0x0 ), /* 0 */
-/* 686 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 688 */
- 0x4b, /* FC_PP */
- 0x5c, /* FC_PAD */
-/* 690 */
- 0x48, /* FC_VARIABLE_REPEAT */
- 0x49, /* FC_FIXED_OFFSET */
-/* 692 */ NdrFcShort( 0x4 ), /* 4 */
-/* 694 */ NdrFcShort( 0x0 ), /* 0 */
-/* 696 */ NdrFcShort( 0x1 ), /* 1 */
-/* 698 */ NdrFcShort( 0x0 ), /* 0 */
-/* 700 */ NdrFcShort( 0x0 ), /* 0 */
-/* 702 */ 0x13, 0x0, /* FC_OP */
-/* 704 */ NdrFcShort( 0xffd2 ), /* Offset= -46 (658) */
-/* 706 */
- 0x5b, /* FC_END */
-
- 0x8, /* FC_LONG */
-/* 708 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-/* 710 */
- 0x1a, /* FC_BOGUS_STRUCT */
- 0x3, /* 3 */
-/* 712 */ NdrFcShort( 0x8 ), /* 8 */
-/* 714 */ NdrFcShort( 0x0 ), /* 0 */
-/* 716 */ NdrFcShort( 0x6 ), /* Offset= 6 (722) */
-/* 718 */ 0x8, /* FC_LONG */
- 0x36, /* FC_POINTER */
-/* 720 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-/* 722 */
- 0x11, 0x0, /* FC_RP */
-/* 724 */ NdrFcShort( 0xffd2 ), /* Offset= -46 (678) */
-/* 726 */
- 0x1d, /* FC_SMFARRAY */
- 0x0, /* 0 */
-/* 728 */ NdrFcShort( 0x8 ), /* 8 */
-/* 730 */ 0x1, /* FC_BYTE */
- 0x5b, /* FC_END */
-/* 732 */
- 0x15, /* FC_STRUCT */
- 0x3, /* 3 */
-/* 734 */ NdrFcShort( 0x10 ), /* 16 */
-/* 736 */ 0x8, /* FC_LONG */
- 0x6, /* FC_SHORT */
-/* 738 */ 0x6, /* FC_SHORT */
- 0x4c, /* FC_EMBEDDED_COMPLEX */
-/* 740 */ 0x0, /* 0 */
- NdrFcShort( 0xfff1 ), /* Offset= -15 (726) */
- 0x5b, /* FC_END */
-/* 744 */
- 0x1a, /* FC_BOGUS_STRUCT */
- 0x3, /* 3 */
-/* 746 */ NdrFcShort( 0x18 ), /* 24 */
-/* 748 */ NdrFcShort( 0x0 ), /* 0 */
-/* 750 */ NdrFcShort( 0xa ), /* Offset= 10 (760) */
-/* 752 */ 0x8, /* FC_LONG */
- 0x36, /* FC_POINTER */
-/* 754 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
- 0x0, /* 0 */
-/* 756 */ NdrFcShort( 0xffe8 ), /* Offset= -24 (732) */
-/* 758 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-/* 760 */
- 0x11, 0x0, /* FC_RP */
-/* 762 */ NdrFcShort( 0xfefe ), /* Offset= -258 (504) */
-/* 764 */
- 0x1b, /* FC_CARRAY */
- 0x0, /* 0 */
-/* 766 */ NdrFcShort( 0x1 ), /* 1 */
-/* 768 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
- 0x0, /* */
-/* 770 */ NdrFcShort( 0x0 ), /* 0 */
-/* 772 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 774 */ 0x1, /* FC_BYTE */
- 0x5b, /* FC_END */
-/* 776 */
- 0x16, /* FC_PSTRUCT */
- 0x3, /* 3 */
-/* 778 */ NdrFcShort( 0x8 ), /* 8 */
-/* 780 */
- 0x4b, /* FC_PP */
- 0x5c, /* FC_PAD */
-/* 782 */
- 0x46, /* FC_NO_REPEAT */
- 0x5c, /* FC_PAD */
-/* 784 */ NdrFcShort( 0x4 ), /* 4 */
-/* 786 */ NdrFcShort( 0x4 ), /* 4 */
-/* 788 */ 0x13, 0x0, /* FC_OP */
-/* 790 */ NdrFcShort( 0xffe6 ), /* Offset= -26 (764) */
-/* 792 */
- 0x5b, /* FC_END */
-
- 0x8, /* FC_LONG */
-/* 794 */ 0x8, /* FC_LONG */
- 0x5b, /* FC_END */
-/* 796 */
- 0x1b, /* FC_CARRAY */
- 0x1, /* 1 */
-/* 798 */ NdrFcShort( 0x2 ), /* 2 */
-/* 800 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
- 0x0, /* */
-/* 802 */ NdrFcShort( 0x0 ), /* 0 */
-/* 804 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 806 */ 0x6, /* FC_SHORT */
- 0x5b, /* FC_END */
-/* 808 */
- 0x16, /* FC_PSTRUCT */
- 0x3, /* 3 */
-/* 810 */ NdrFcShort( 0x8 ), /* 8 */
-/* 812 */
- 0x4b, /* FC_PP */
- 0x5c, /* FC_PAD */
-/* 814 */
- 0x46, /* FC_NO_REPEAT */
- 0x5c, /* FC_PAD */
-/* 816 */ NdrFcShort( 0x4 ), /* 4 */
-/* 818 */ NdrFcShort( 0x4 ), /* 4 */
-/* 820 */ 0x13, 0x0, /* FC_OP */
-/* 822 */ NdrFcShort( 0xffe6 ), /* Offset= -26 (796) */
-/* 824 */
- 0x5b, /* FC_END */
-
- 0x8, /* FC_LONG */
-/* 826 */ 0x8, /* FC_LONG */
- 0x5b, /* FC_END */
-/* 828 */
- 0x1b, /* FC_CARRAY */
- 0x3, /* 3 */
-/* 830 */ NdrFcShort( 0x4 ), /* 4 */
-/* 832 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
- 0x0, /* */
-/* 834 */ NdrFcShort( 0x0 ), /* 0 */
-/* 836 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 838 */ 0x8, /* FC_LONG */
- 0x5b, /* FC_END */
-/* 840 */
- 0x16, /* FC_PSTRUCT */
- 0x3, /* 3 */
-/* 842 */ NdrFcShort( 0x8 ), /* 8 */
-/* 844 */
- 0x4b, /* FC_PP */
- 0x5c, /* FC_PAD */
-/* 846 */
- 0x46, /* FC_NO_REPEAT */
- 0x5c, /* FC_PAD */
-/* 848 */ NdrFcShort( 0x4 ), /* 4 */
-/* 850 */ NdrFcShort( 0x4 ), /* 4 */
-/* 852 */ 0x13, 0x0, /* FC_OP */
-/* 854 */ NdrFcShort( 0xffe6 ), /* Offset= -26 (828) */
-/* 856 */
- 0x5b, /* FC_END */
-
- 0x8, /* FC_LONG */
-/* 858 */ 0x8, /* FC_LONG */
- 0x5b, /* FC_END */
-/* 860 */
- 0x1b, /* FC_CARRAY */
- 0x7, /* 7 */
-/* 862 */ NdrFcShort( 0x8 ), /* 8 */
-/* 864 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
- 0x0, /* */
-/* 866 */ NdrFcShort( 0x0 ), /* 0 */
-/* 868 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 870 */ 0xb, /* FC_HYPER */
- 0x5b, /* FC_END */
-/* 872 */
- 0x16, /* FC_PSTRUCT */
- 0x3, /* 3 */
-/* 874 */ NdrFcShort( 0x8 ), /* 8 */
-/* 876 */
- 0x4b, /* FC_PP */
- 0x5c, /* FC_PAD */
-/* 878 */
- 0x46, /* FC_NO_REPEAT */
- 0x5c, /* FC_PAD */
-/* 880 */ NdrFcShort( 0x4 ), /* 4 */
-/* 882 */ NdrFcShort( 0x4 ), /* 4 */
-/* 884 */ 0x13, 0x0, /* FC_OP */
-/* 886 */ NdrFcShort( 0xffe6 ), /* Offset= -26 (860) */
-/* 888 */
- 0x5b, /* FC_END */
-
- 0x8, /* FC_LONG */
-/* 890 */ 0x8, /* FC_LONG */
- 0x5b, /* FC_END */
-/* 892 */
- 0x15, /* FC_STRUCT */
- 0x3, /* 3 */
-/* 894 */ NdrFcShort( 0x8 ), /* 8 */
-/* 896 */ 0x8, /* FC_LONG */
- 0x8, /* FC_LONG */
-/* 898 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-/* 900 */
- 0x1b, /* FC_CARRAY */
- 0x3, /* 3 */
-/* 902 */ NdrFcShort( 0x8 ), /* 8 */
-/* 904 */ 0x7, /* Corr desc: FC_USHORT */
- 0x0, /* */
-/* 906 */ NdrFcShort( 0xffd8 ), /* -40 */
-/* 908 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
-/* 910 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
- 0x0, /* 0 */
-/* 912 */ NdrFcShort( 0xffec ), /* Offset= -20 (892) */
-/* 914 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-/* 916 */
- 0x1a, /* FC_BOGUS_STRUCT */
- 0x3, /* 3 */
-/* 918 */ NdrFcShort( 0x28 ), /* 40 */
-/* 920 */ NdrFcShort( 0xffec ), /* Offset= -20 (900) */
-/* 922 */ NdrFcShort( 0x0 ), /* Offset= 0 (922) */
-/* 924 */ 0x6, /* FC_SHORT */
- 0x6, /* FC_SHORT */
-/* 926 */ 0x8, /* FC_LONG */
- 0x8, /* FC_LONG */
-/* 928 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
- 0x0, /* 0 */
-/* 930 */ NdrFcShort( 0xfdde ), /* Offset= -546 (384) */
-/* 932 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-/* 934 */
- 0x13, 0x0, /* FC_OP */
-/* 936 */ NdrFcShort( 0xfeea ), /* Offset= -278 (658) */
-/* 938 */
- 0x13, 0x8, /* FC_OP [simple_pointer] */
-/* 940 */ 0x1, /* FC_BYTE */
- 0x5c, /* FC_PAD */
-/* 942 */
- 0x13, 0x8, /* FC_OP [simple_pointer] */
-/* 944 */ 0x6, /* FC_SHORT */
- 0x5c, /* FC_PAD */
-/* 946 */
- 0x13, 0x8, /* FC_OP [simple_pointer] */
-/* 948 */ 0x8, /* FC_LONG */
- 0x5c, /* FC_PAD */
-/* 950 */
- 0x13, 0x8, /* FC_OP [simple_pointer] */
-/* 952 */ 0xb, /* FC_HYPER */
- 0x5c, /* FC_PAD */
-/* 954 */
- 0x13, 0x8, /* FC_OP [simple_pointer] */
-/* 956 */ 0xa, /* FC_FLOAT */
- 0x5c, /* FC_PAD */
-/* 958 */
- 0x13, 0x8, /* FC_OP [simple_pointer] */
-/* 960 */ 0xc, /* FC_DOUBLE */
- 0x5c, /* FC_PAD */
-/* 962 */
- 0x13, 0x0, /* FC_OP */
-/* 964 */ NdrFcShort( 0xfd70 ), /* Offset= -656 (308) */
-/* 966 */
- 0x13, 0x10, /* FC_OP [pointer_deref] */
-/* 968 */ NdrFcShort( 0xfd72 ), /* Offset= -654 (314) */
-/* 970 */
- 0x13, 0x10, /* FC_OP [pointer_deref] */
-/* 972 */ NdrFcShort( 0xfd88 ), /* Offset= -632 (340) */
-/* 974 */
- 0x13, 0x10, /* FC_OP [pointer_deref] */
-/* 976 */ NdrFcShort( 0xfd96 ), /* Offset= -618 (358) */
-/* 978 */
- 0x13, 0x10, /* FC_OP [pointer_deref] */
-/* 980 */ NdrFcShort( 0xfda4 ), /* Offset= -604 (376) */
-/* 982 */
- 0x13, 0x10, /* FC_OP [pointer_deref] */
-/* 984 */ NdrFcShort( 0x2 ), /* Offset= 2 (986) */
-/* 986 */
- 0x13, 0x0, /* FC_OP */
-/* 988 */ NdrFcShort( 0x14 ), /* Offset= 20 (1008) */
-/* 990 */
- 0x15, /* FC_STRUCT */
- 0x7, /* 7 */
-/* 992 */ NdrFcShort( 0x10 ), /* 16 */
-/* 994 */ 0x6, /* FC_SHORT */
- 0x1, /* FC_BYTE */
-/* 996 */ 0x1, /* FC_BYTE */
- 0x8, /* FC_LONG */
-/* 998 */ 0xb, /* FC_HYPER */
- 0x5b, /* FC_END */
-/* 1000 */
- 0x13, 0x0, /* FC_OP */
-/* 1002 */ NdrFcShort( 0xfff4 ), /* Offset= -12 (990) */
-/* 1004 */
- 0x13, 0x8, /* FC_OP [simple_pointer] */
-/* 1006 */ 0x2, /* FC_CHAR */
- 0x5c, /* FC_PAD */
-/* 1008 */
- 0x1a, /* FC_BOGUS_STRUCT */
- 0x7, /* 7 */
-/* 1010 */ NdrFcShort( 0x20 ), /* 32 */
-/* 1012 */ NdrFcShort( 0x0 ), /* 0 */
-/* 1014 */ NdrFcShort( 0x0 ), /* Offset= 0 (1014) */
-/* 1016 */ 0x8, /* FC_LONG */
- 0x8, /* FC_LONG */
-/* 1018 */ 0x6, /* FC_SHORT */
- 0x6, /* FC_SHORT */
-/* 1020 */ 0x6, /* FC_SHORT */
- 0x6, /* FC_SHORT */
-/* 1022 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
- 0x0, /* 0 */
-/* 1024 */ NdrFcShort( 0xfc0a ), /* Offset= -1014 (10) */
-/* 1026 */ 0x5c, /* FC_PAD */
- 0x5b, /* FC_END */
-/* 1028 */ 0xb4, /* FC_USER_MARSHAL */
- 0x83, /* 131 */
-/* 1030 */ NdrFcShort( 0x0 ), /* 0 */
-/* 1032 */ NdrFcShort( 0x10 ), /* 16 */
-/* 1034 */ NdrFcShort( 0x0 ), /* 0 */
-/* 1036 */ NdrFcShort( 0xfbfa ), /* Offset= -1030 (6) */
-/* 1038 */
- 0x12, 0x0, /* FC_UP */
-/* 1040 */ NdrFcShort( 0xffe0 ), /* Offset= -32 (1008) */
-/* 1042 */ 0xb4, /* FC_USER_MARSHAL */
- 0x83, /* 131 */
-/* 1044 */ NdrFcShort( 0x0 ), /* 0 */
-/* 1046 */ NdrFcShort( 0x10 ), /* 16 */
-/* 1048 */ NdrFcShort( 0x0 ), /* 0 */
-/* 1050 */ NdrFcShort( 0xfff4 ), /* Offset= -12 (1038) */
-
- 0x0
- }
- };
-
-static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] =
- {
-
- {
- VARIANT_UserSize
- ,VARIANT_UserMarshal
- ,VARIANT_UserUnmarshal
- ,VARIANT_UserFree
- }
-
- };
-
-
-
-/* Object interface: IUnknown, ver. 0.0,
- GUID={0x00000000,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
-
-
-/* Object interface: IAccessibleValue, ver. 0.0,
- GUID={0x35855B5B,0xC566,0x4fd0,{0xA7,0xB1,0xE6,0x54,0x65,0x60,0x03,0x94}} */
-
-#pragma code_seg(".orpc")
-static const unsigned short IAccessibleValue_FormatStringOffsetTable[] =
- {
- 0,
- 36,
- 72,
- 108
- };
-
-static const MIDL_STUBLESS_PROXY_INFO IAccessibleValue_ProxyInfo =
- {
- &Object_StubDesc,
- AccessibleValue__MIDL_ProcFormatString.Format,
- &IAccessibleValue_FormatStringOffsetTable[-3],
- 0,
- 0,
- 0
- };
-
-
-static const MIDL_SERVER_INFO IAccessibleValue_ServerInfo =
- {
- &Object_StubDesc,
- 0,
- AccessibleValue__MIDL_ProcFormatString.Format,
- &IAccessibleValue_FormatStringOffsetTable[-3],
- 0,
- 0,
- 0,
- 0};
-CINTERFACE_PROXY_VTABLE(7) _IAccessibleValueProxyVtbl =
-{
- &IAccessibleValue_ProxyInfo,
- &IID_IAccessibleValue,
- IUnknown_QueryInterface_Proxy,
- IUnknown_AddRef_Proxy,
- IUnknown_Release_Proxy ,
- (void *) (INT_PTR) -1 /* IAccessibleValue::get_currentValue */ ,
- (void *) (INT_PTR) -1 /* IAccessibleValue::setCurrentValue */ ,
- (void *) (INT_PTR) -1 /* IAccessibleValue::get_maximumValue */ ,
- (void *) (INT_PTR) -1 /* IAccessibleValue::get_minimumValue */
-};
-
-const CInterfaceStubVtbl _IAccessibleValueStubVtbl =
-{
- &IID_IAccessibleValue,
- &IAccessibleValue_ServerInfo,
- 7,
- 0, /* pure interpreted */
- CStdStubBuffer_METHODS
-};
-
-static const MIDL_STUB_DESC Object_StubDesc =
- {
- 0,
- NdrOleAllocate,
- NdrOleFree,
- 0,
- 0,
- 0,
- 0,
- 0,
- AccessibleValue__MIDL_TypeFormatString.Format,
- 1, /* -error bounds_check flag */
- 0x50002, /* Ndr library version */
- 0,
- 0x700022b, /* MIDL Version 7.0.555 */
- 0,
- UserMarshalRoutines,
- 0, /* notify & notify_flag routine table */
- 0x1, /* MIDL flag */
- 0, /* cs routines */
- 0, /* proxy/server info */
- 0
- };
-
-const CInterfaceProxyVtbl * const _AccessibleValue_ProxyVtblList[] =
-{
- ( CInterfaceProxyVtbl *) &_IAccessibleValueProxyVtbl,
- 0
-};
-
-const CInterfaceStubVtbl * const _AccessibleValue_StubVtblList[] =
-{
- ( CInterfaceStubVtbl *) &_IAccessibleValueStubVtbl,
- 0
-};
-
-PCInterfaceName const _AccessibleValue_InterfaceNamesList[] =
-{
- "IAccessibleValue",
- 0
-};
-
-
-#define _AccessibleValue_CHECK_IID(n) IID_GENERIC_CHECK_IID( _AccessibleValue, pIID, n)
-
-int __stdcall _AccessibleValue_IID_Lookup( const IID * pIID, int * pIndex )
-{
-
- if(!_AccessibleValue_CHECK_IID(0))
- {
- *pIndex = 0;
- return 1;
- }
-
- return 0;
-}
-
-const ExtendedProxyFileInfo AccessibleValue_ProxyFileInfo =
-{
- (PCInterfaceProxyVtblList *) & _AccessibleValue_ProxyVtblList,
- (PCInterfaceStubVtblList *) & _AccessibleValue_StubVtblList,
- (const PCInterfaceName * ) & _AccessibleValue_InterfaceNamesList,
- 0, /* no delegation */
- & _AccessibleValue_IID_Lookup,
- 1,
- 2,
- 0, /* table of [async_uuid] interfaces */
- 0, /* Filler1 */
- 0, /* Filler2 */
- 0 /* Filler3 */
-};
-#pragma optimize("", on )
-#if _MSC_VER >= 1200
-#pragma warning(pop)
-#endif
-
-
-#endif /* !defined(_M_IA64) && !defined(_M_AMD64)*/
-
diff --git a/src/3rdparty/iaccessible2/generated/x86/IA2CommonTypes.h b/src/3rdparty/iaccessible2/generated/x86/IA2CommonTypes.h
deleted file mode 100644
index 7d1df601e6..0000000000
--- a/src/3rdparty/iaccessible2/generated/x86/IA2CommonTypes.h
+++ /dev/null
@@ -1,102 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the definitions for the interfaces */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:56 2012
- */
-/* Compiler settings for IA2CommonTypes.idl:
- Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-
-
-/* verify that the <rpcndr.h> version is high enough to compile this file*/
-#ifndef __REQUIRED_RPCNDR_H_VERSION__
-#define __REQUIRED_RPCNDR_H_VERSION__ 475
-#endif
-
-#include "rpc.h"
-#include "rpcndr.h"
-
-#ifndef __RPCNDR_H_VERSION__
-#error this stub requires an updated version of <rpcndr.h>
-#endif // __RPCNDR_H_VERSION__
-
-
-#ifndef __IA2CommonTypes_h__
-#define __IA2CommonTypes_h__
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-#pragma once
-#endif
-
-/* Forward Declarations */
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-
-/* interface __MIDL_itf_IA2CommonTypes_0000_0000 */
-/* [local] */
-
-
-enum IA2ScrollType
- { IA2_SCROLL_TYPE_TOP_LEFT = 0,
- IA2_SCROLL_TYPE_BOTTOM_RIGHT = ( IA2_SCROLL_TYPE_TOP_LEFT + 1 ) ,
- IA2_SCROLL_TYPE_TOP_EDGE = ( IA2_SCROLL_TYPE_BOTTOM_RIGHT + 1 ) ,
- IA2_SCROLL_TYPE_BOTTOM_EDGE = ( IA2_SCROLL_TYPE_TOP_EDGE + 1 ) ,
- IA2_SCROLL_TYPE_LEFT_EDGE = ( IA2_SCROLL_TYPE_BOTTOM_EDGE + 1 ) ,
- IA2_SCROLL_TYPE_RIGHT_EDGE = ( IA2_SCROLL_TYPE_LEFT_EDGE + 1 ) ,
- IA2_SCROLL_TYPE_ANYWHERE = ( IA2_SCROLL_TYPE_RIGHT_EDGE + 1 )
- } ;
-
-enum IA2CoordinateType
- { IA2_COORDTYPE_SCREEN_RELATIVE = 0,
- IA2_COORDTYPE_PARENT_RELATIVE = ( IA2_COORDTYPE_SCREEN_RELATIVE + 1 )
- } ;
-
-enum IA2TextSpecialOffsets
- { IA2_TEXT_OFFSET_LENGTH = -1,
- IA2_TEXT_OFFSET_CARET = -2
- } ;
-
-enum IA2TableModelChangeType
- { IA2_TABLE_MODEL_CHANGE_INSERT = 0,
- IA2_TABLE_MODEL_CHANGE_DELETE = ( IA2_TABLE_MODEL_CHANGE_INSERT + 1 ) ,
- IA2_TABLE_MODEL_CHANGE_UPDATE = ( IA2_TABLE_MODEL_CHANGE_DELETE + 1 )
- } ;
-typedef struct IA2TableModelChange
- {
- enum IA2TableModelChangeType type;
- long firstRow;
- long lastRow;
- long firstColumn;
- long lastColumn;
- } IA2TableModelChange;
-
-
-
-extern RPC_IF_HANDLE __MIDL_itf_IA2CommonTypes_0000_0000_v0_0_c_ifspec;
-extern RPC_IF_HANDLE __MIDL_itf_IA2CommonTypes_0000_0000_v0_0_s_ifspec;
-
-/* Additional Prototypes for ALL interfaces */
-
-/* end of Additional Prototypes */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-
diff --git a/src/3rdparty/iaccessible2/generated/x86/IA2TypeLibrary.h b/src/3rdparty/iaccessible2/generated/x86/IA2TypeLibrary.h
deleted file mode 100644
index e80b2722f9..0000000000
--- a/src/3rdparty/iaccessible2/generated/x86/IA2TypeLibrary.h
+++ /dev/null
@@ -1,103 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the definitions for the interfaces */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:56 2012
- */
-/* Compiler settings for IA2TypeLibrary.idl:
- Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-
-
-/* verify that the <rpcndr.h> version is high enough to compile this file*/
-#ifndef __REQUIRED_RPCNDR_H_VERSION__
-#define __REQUIRED_RPCNDR_H_VERSION__ 475
-#endif
-
-#include "rpc.h"
-#include "rpcndr.h"
-
-#ifndef __RPCNDR_H_VERSION__
-#error this stub requires an updated version of <rpcndr.h>
-#endif // __RPCNDR_H_VERSION__
-
-
-#ifndef __IA2TypeLibrary_h__
-#define __IA2TypeLibrary_h__
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-#pragma once
-#endif
-
-/* Forward Declarations */
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-
-/* interface __MIDL_itf_IA2TypeLibrary_0000_0000 */
-/* [local] */
-
-
-// Type Library Definitions
-
-
-
-extern RPC_IF_HANDLE __MIDL_itf_IA2TypeLibrary_0000_0000_v0_0_c_ifspec;
-extern RPC_IF_HANDLE __MIDL_itf_IA2TypeLibrary_0000_0000_v0_0_s_ifspec;
-
-
-#ifndef __IAccessible2Lib_LIBRARY_DEFINED__
-#define __IAccessible2Lib_LIBRARY_DEFINED__
-
-/* library IAccessible2Lib */
-/* [hidden][version][helpstring][uuid] */
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-EXTERN_C const IID LIBID_IAccessible2Lib;
-#endif /* __IAccessible2Lib_LIBRARY_DEFINED__ */
-
-/* Additional Prototypes for ALL interfaces */
-
-/* end of Additional Prototypes */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-
diff --git a/src/3rdparty/iaccessible2/generated/x86/IA2TypeLibrary.tlb b/src/3rdparty/iaccessible2/generated/x86/IA2TypeLibrary.tlb
deleted file mode 100644
index b4c56c7aaa..0000000000
--- a/src/3rdparty/iaccessible2/generated/x86/IA2TypeLibrary.tlb
+++ /dev/null
Binary files differ
diff --git a/src/3rdparty/iaccessible2/generated/x86/IA2TypeLibrary_i.c b/src/3rdparty/iaccessible2/generated/x86/IA2TypeLibrary_i.c
deleted file mode 100644
index 1bf9d5159d..0000000000
--- a/src/3rdparty/iaccessible2/generated/x86/IA2TypeLibrary_i.c
+++ /dev/null
@@ -1,79 +0,0 @@
-
-
-/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
-
-/* link this file in with the server and any clients */
-
-
- /* File created by MIDL compiler version 7.00.0555 */
-/* at Thu Mar 08 14:53:56 2012
- */
-/* Compiler settings for IA2TypeLibrary.idl:
- Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
- protocol : dce , ms_ext, c_ext, robust
- error checks: allocation ref bounds_check enum stub_data
- VC __declspec() decoration level:
- __declspec(uuid()), __declspec(selectany), __declspec(novtable)
- DECLSPEC_UUID(), MIDL_INTERFACE()
-*/
-/* @@MIDL_FILE_HEADING( ) */
-
-#pragma warning( disable: 4049 ) /* more than 64k source lines */
-
-
-#ifdef __cplusplus
-extern "C"{
-#endif
-
-
-#include <rpc.h>
-#include <rpcndr.h>
-
-#ifdef _MIDL_USE_GUIDDEF_
-
-#ifndef INITGUID
-#define INITGUID
-#include <guiddef.h>
-#undef INITGUID
-#else
-#include <guiddef.h>
-#endif
-
-#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
- DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
-
-#else // !_MIDL_USE_GUIDDEF_
-
-#ifndef __IID_DEFINED__
-#define __IID_DEFINED__
-
-typedef struct _IID
-{
- unsigned long x;
- unsigned short s1;
- unsigned short s2;
- unsigned char c[8];
-} IID;
-
-#endif // __IID_DEFINED__
-
-#ifndef CLSID_DEFINED
-#define CLSID_DEFINED
-typedef IID CLSID;
-#endif // CLSID_DEFINED
-
-#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
- const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
-
-#endif !_MIDL_USE_GUIDDEF_
-
-MIDL_DEFINE_GUID(IID, LIBID_IAccessible2Lib,0xc974e070,0x3787,0x490a,0x87,0xb0,0xe3,0x33,0xb0,0x6c,0xa1,0xe2);
-
-#undef MIDL_DEFINE_GUID
-
-#ifdef __cplusplus
-}
-#endif
-
-
-
diff --git a/src/3rdparty/iaccessible2/generated/x86/dlldata.c b/src/3rdparty/iaccessible2/generated/x86/dlldata.c
index e1e15a1fc0..1685d8340a 100644
--- a/src/3rdparty/iaccessible2/generated/x86/dlldata.c
+++ b/src/3rdparty/iaccessible2/generated/x86/dlldata.c
@@ -19,38 +19,12 @@
extern "C" {
#endif
-EXTERN_PROXY_FILE( Accessible2 )
-EXTERN_PROXY_FILE( AccessibleAction )
-EXTERN_PROXY_FILE( AccessibleApplication )
-EXTERN_PROXY_FILE( AccessibleComponent )
-EXTERN_PROXY_FILE( AccessibleEditableText )
-EXTERN_PROXY_FILE( AccessibleHyperlink )
-EXTERN_PROXY_FILE( AccessibleHypertext )
-EXTERN_PROXY_FILE( AccessibleImage )
-EXTERN_PROXY_FILE( AccessibleRelation )
-EXTERN_PROXY_FILE( AccessibleTable )
-EXTERN_PROXY_FILE( AccessibleTable2 )
-EXTERN_PROXY_FILE( AccessibleTableCell )
-EXTERN_PROXY_FILE( AccessibleText )
-EXTERN_PROXY_FILE( AccessibleValue )
+EXTERN_PROXY_FILE( ia2_api_all )
PROXYFILE_LIST_START
/* Start of list */
- REFERENCE_PROXY_FILE( Accessible2 ),
- REFERENCE_PROXY_FILE( AccessibleAction ),
- REFERENCE_PROXY_FILE( AccessibleApplication ),
- REFERENCE_PROXY_FILE( AccessibleComponent ),
- REFERENCE_PROXY_FILE( AccessibleEditableText ),
- REFERENCE_PROXY_FILE( AccessibleHyperlink ),
- REFERENCE_PROXY_FILE( AccessibleHypertext ),
- REFERENCE_PROXY_FILE( AccessibleImage ),
- REFERENCE_PROXY_FILE( AccessibleRelation ),
- REFERENCE_PROXY_FILE( AccessibleTable ),
- REFERENCE_PROXY_FILE( AccessibleTable2 ),
- REFERENCE_PROXY_FILE( AccessibleTableCell ),
- REFERENCE_PROXY_FILE( AccessibleText ),
- REFERENCE_PROXY_FILE( AccessibleValue ),
+ REFERENCE_PROXY_FILE( ia2_api_all ),
/* End of list */
PROXYFILE_LIST_END
diff --git a/src/3rdparty/iaccessible2/generated/x86/ia2_api_all.h b/src/3rdparty/iaccessible2/generated/x86/ia2_api_all.h
new file mode 100644
index 0000000000..eb3b57b8bd
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/x86/ia2_api_all.h
@@ -0,0 +1,4667 @@
+
+
+/* this ALWAYS GENERATED file contains the definitions for the interfaces */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Mon Aug 11 14:34:41 2014
+ */
+/* Compiler settings for ia2_api_all.idl:
+ Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+/* verify that the <rpcndr.h> version is high enough to compile this file*/
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+
+#include "rpc.h"
+#include "rpcndr.h"
+
+#ifndef __RPCNDR_H_VERSION__
+#error this stub requires an updated version of <rpcndr.h>
+#endif // __RPCNDR_H_VERSION__
+
+#ifndef COM_NO_WINDOWS_H
+#include "windows.h"
+#include "ole2.h"
+#endif /*COM_NO_WINDOWS_H*/
+
+#ifndef __ia2_api_all_h__
+#define __ia2_api_all_h__
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+#pragma once
+#endif
+
+/* Forward Declarations */
+
+#ifndef __IAccessibleRelation_FWD_DEFINED__
+#define __IAccessibleRelation_FWD_DEFINED__
+typedef interface IAccessibleRelation IAccessibleRelation;
+#endif /* __IAccessibleRelation_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleAction_FWD_DEFINED__
+#define __IAccessibleAction_FWD_DEFINED__
+typedef interface IAccessibleAction IAccessibleAction;
+#endif /* __IAccessibleAction_FWD_DEFINED__ */
+
+
+#ifndef __IAccessible2_FWD_DEFINED__
+#define __IAccessible2_FWD_DEFINED__
+typedef interface IAccessible2 IAccessible2;
+#endif /* __IAccessible2_FWD_DEFINED__ */
+
+
+#ifndef __IAccessible2_2_FWD_DEFINED__
+#define __IAccessible2_2_FWD_DEFINED__
+typedef interface IAccessible2_2 IAccessible2_2;
+#endif /* __IAccessible2_2_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleComponent_FWD_DEFINED__
+#define __IAccessibleComponent_FWD_DEFINED__
+typedef interface IAccessibleComponent IAccessibleComponent;
+#endif /* __IAccessibleComponent_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleValue_FWD_DEFINED__
+#define __IAccessibleValue_FWD_DEFINED__
+typedef interface IAccessibleValue IAccessibleValue;
+#endif /* __IAccessibleValue_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleText_FWD_DEFINED__
+#define __IAccessibleText_FWD_DEFINED__
+typedef interface IAccessibleText IAccessibleText;
+#endif /* __IAccessibleText_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleText2_FWD_DEFINED__
+#define __IAccessibleText2_FWD_DEFINED__
+typedef interface IAccessibleText2 IAccessibleText2;
+#endif /* __IAccessibleText2_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleEditableText_FWD_DEFINED__
+#define __IAccessibleEditableText_FWD_DEFINED__
+typedef interface IAccessibleEditableText IAccessibleEditableText;
+#endif /* __IAccessibleEditableText_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleHyperlink_FWD_DEFINED__
+#define __IAccessibleHyperlink_FWD_DEFINED__
+typedef interface IAccessibleHyperlink IAccessibleHyperlink;
+#endif /* __IAccessibleHyperlink_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleHypertext_FWD_DEFINED__
+#define __IAccessibleHypertext_FWD_DEFINED__
+typedef interface IAccessibleHypertext IAccessibleHypertext;
+#endif /* __IAccessibleHypertext_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleHypertext2_FWD_DEFINED__
+#define __IAccessibleHypertext2_FWD_DEFINED__
+typedef interface IAccessibleHypertext2 IAccessibleHypertext2;
+#endif /* __IAccessibleHypertext2_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleTable_FWD_DEFINED__
+#define __IAccessibleTable_FWD_DEFINED__
+typedef interface IAccessibleTable IAccessibleTable;
+#endif /* __IAccessibleTable_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleTable2_FWD_DEFINED__
+#define __IAccessibleTable2_FWD_DEFINED__
+typedef interface IAccessibleTable2 IAccessibleTable2;
+#endif /* __IAccessibleTable2_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleTableCell_FWD_DEFINED__
+#define __IAccessibleTableCell_FWD_DEFINED__
+typedef interface IAccessibleTableCell IAccessibleTableCell;
+#endif /* __IAccessibleTableCell_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleImage_FWD_DEFINED__
+#define __IAccessibleImage_FWD_DEFINED__
+typedef interface IAccessibleImage IAccessibleImage;
+#endif /* __IAccessibleImage_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleApplication_FWD_DEFINED__
+#define __IAccessibleApplication_FWD_DEFINED__
+typedef interface IAccessibleApplication IAccessibleApplication;
+#endif /* __IAccessibleApplication_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleDocument_FWD_DEFINED__
+#define __IAccessibleDocument_FWD_DEFINED__
+typedef interface IAccessibleDocument IAccessibleDocument;
+#endif /* __IAccessibleDocument_FWD_DEFINED__ */
+
+
+#ifndef __IAccessible2_FWD_DEFINED__
+#define __IAccessible2_FWD_DEFINED__
+typedef interface IAccessible2 IAccessible2;
+#endif /* __IAccessible2_FWD_DEFINED__ */
+
+
+#ifndef __IAccessible2_2_FWD_DEFINED__
+#define __IAccessible2_2_FWD_DEFINED__
+typedef interface IAccessible2_2 IAccessible2_2;
+#endif /* __IAccessible2_2_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleAction_FWD_DEFINED__
+#define __IAccessibleAction_FWD_DEFINED__
+typedef interface IAccessibleAction IAccessibleAction;
+#endif /* __IAccessibleAction_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleApplication_FWD_DEFINED__
+#define __IAccessibleApplication_FWD_DEFINED__
+typedef interface IAccessibleApplication IAccessibleApplication;
+#endif /* __IAccessibleApplication_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleComponent_FWD_DEFINED__
+#define __IAccessibleComponent_FWD_DEFINED__
+typedef interface IAccessibleComponent IAccessibleComponent;
+#endif /* __IAccessibleComponent_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleDocument_FWD_DEFINED__
+#define __IAccessibleDocument_FWD_DEFINED__
+typedef interface IAccessibleDocument IAccessibleDocument;
+#endif /* __IAccessibleDocument_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleEditableText_FWD_DEFINED__
+#define __IAccessibleEditableText_FWD_DEFINED__
+typedef interface IAccessibleEditableText IAccessibleEditableText;
+#endif /* __IAccessibleEditableText_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleHyperlink_FWD_DEFINED__
+#define __IAccessibleHyperlink_FWD_DEFINED__
+typedef interface IAccessibleHyperlink IAccessibleHyperlink;
+#endif /* __IAccessibleHyperlink_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleText_FWD_DEFINED__
+#define __IAccessibleText_FWD_DEFINED__
+typedef interface IAccessibleText IAccessibleText;
+#endif /* __IAccessibleText_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleHypertext_FWD_DEFINED__
+#define __IAccessibleHypertext_FWD_DEFINED__
+typedef interface IAccessibleHypertext IAccessibleHypertext;
+#endif /* __IAccessibleHypertext_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleHypertext2_FWD_DEFINED__
+#define __IAccessibleHypertext2_FWD_DEFINED__
+typedef interface IAccessibleHypertext2 IAccessibleHypertext2;
+#endif /* __IAccessibleHypertext2_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleImage_FWD_DEFINED__
+#define __IAccessibleImage_FWD_DEFINED__
+typedef interface IAccessibleImage IAccessibleImage;
+#endif /* __IAccessibleImage_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleRelation_FWD_DEFINED__
+#define __IAccessibleRelation_FWD_DEFINED__
+typedef interface IAccessibleRelation IAccessibleRelation;
+#endif /* __IAccessibleRelation_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleTable_FWD_DEFINED__
+#define __IAccessibleTable_FWD_DEFINED__
+typedef interface IAccessibleTable IAccessibleTable;
+#endif /* __IAccessibleTable_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleTable2_FWD_DEFINED__
+#define __IAccessibleTable2_FWD_DEFINED__
+typedef interface IAccessibleTable2 IAccessibleTable2;
+#endif /* __IAccessibleTable2_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleTableCell_FWD_DEFINED__
+#define __IAccessibleTableCell_FWD_DEFINED__
+typedef interface IAccessibleTableCell IAccessibleTableCell;
+#endif /* __IAccessibleTableCell_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleText2_FWD_DEFINED__
+#define __IAccessibleText2_FWD_DEFINED__
+typedef interface IAccessibleText2 IAccessibleText2;
+#endif /* __IAccessibleText2_FWD_DEFINED__ */
+
+
+#ifndef __IAccessibleValue_FWD_DEFINED__
+#define __IAccessibleValue_FWD_DEFINED__
+typedef interface IAccessibleValue IAccessibleValue;
+#endif /* __IAccessibleValue_FWD_DEFINED__ */
+
+
+/* header files for imported files */
+#include "objidl.h"
+#include "oaidl.h"
+#include "oleacc.h"
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+/* interface __MIDL_itf_ia2_api_all_0000_0000 */
+/* [local] */
+
+
+enum IA2ScrollType
+ { IA2_SCROLL_TYPE_TOP_LEFT = 0,
+ IA2_SCROLL_TYPE_BOTTOM_RIGHT = ( IA2_SCROLL_TYPE_TOP_LEFT + 1 ) ,
+ IA2_SCROLL_TYPE_TOP_EDGE = ( IA2_SCROLL_TYPE_BOTTOM_RIGHT + 1 ) ,
+ IA2_SCROLL_TYPE_BOTTOM_EDGE = ( IA2_SCROLL_TYPE_TOP_EDGE + 1 ) ,
+ IA2_SCROLL_TYPE_LEFT_EDGE = ( IA2_SCROLL_TYPE_BOTTOM_EDGE + 1 ) ,
+ IA2_SCROLL_TYPE_RIGHT_EDGE = ( IA2_SCROLL_TYPE_LEFT_EDGE + 1 ) ,
+ IA2_SCROLL_TYPE_ANYWHERE = ( IA2_SCROLL_TYPE_RIGHT_EDGE + 1 )
+ } ;
+
+enum IA2CoordinateType
+ { IA2_COORDTYPE_SCREEN_RELATIVE = 0,
+ IA2_COORDTYPE_PARENT_RELATIVE = ( IA2_COORDTYPE_SCREEN_RELATIVE + 1 )
+ } ;
+
+enum IA2TextSpecialOffsets
+ { IA2_TEXT_OFFSET_LENGTH = -1,
+ IA2_TEXT_OFFSET_CARET = -2
+ } ;
+
+enum IA2TableModelChangeType
+ { IA2_TABLE_MODEL_CHANGE_INSERT = 0,
+ IA2_TABLE_MODEL_CHANGE_DELETE = ( IA2_TABLE_MODEL_CHANGE_INSERT + 1 ) ,
+ IA2_TABLE_MODEL_CHANGE_UPDATE = ( IA2_TABLE_MODEL_CHANGE_DELETE + 1 )
+ } ;
+typedef struct IA2TableModelChange
+ {
+ enum IA2TableModelChangeType type;
+ long firstRow;
+ long lastRow;
+ long firstColumn;
+ long lastColumn;
+ } IA2TableModelChange;
+
+#define IA2_RELATION_CONTAINING_APPLICATION ( L"containingApplication" )
+
+#define IA2_RELATION_CONTAINING_DOCUMENT ( L"containingDocument" )
+
+#define IA2_RELATION_CONTAINING_TAB_PANE ( L"containingTabPane" )
+
+#define IA2_RELATION_CONTAINING_WINDOW ( L"containingWindow" )
+
+#define IA2_RELATION_CONTROLLED_BY ( L"controlledBy" )
+
+#define IA2_RELATION_CONTROLLER_FOR ( L"controllerFor" )
+
+#define IA2_RELATION_DESCRIBED_BY ( L"describedBy" )
+
+#define IA2_RELATION_DESCRIPTION_FOR ( L"descriptionFor" )
+
+#define IA2_RELATION_EMBEDDED_BY ( L"embeddedBy" )
+
+#define IA2_RELATION_EMBEDS ( L"embeds" )
+
+#define IA2_RELATION_FLOWS_FROM ( L"flowsFrom" )
+
+#define IA2_RELATION_FLOWS_TO ( L"flowsTo" )
+
+#define IA2_RELATION_LABEL_FOR ( L"labelFor" )
+
+#define IA2_RELATION_LABELED_BY ( L"labelledBy" )
+
+#define IA2_RELATION_LABELLED_BY ( L"labelledBy" )
+
+#define IA2_RELATION_MEMBER_OF ( L"memberOf" )
+
+#define IA2_RELATION_NEXT_TABBABLE ( L"nextTabbable" )
+
+#define IA2_RELATION_NODE_CHILD_OF ( L"nodeChildOf" )
+
+#define IA2_RELATION_NODE_PARENT_OF ( L"nodeParentOf" )
+
+#define IA2_RELATION_PARENT_WINDOW_OF ( L"parentWindowOf" )
+
+#define IA2_RELATION_POPUP_FOR ( L"popupFor" )
+
+#define IA2_RELATION_PREVIOUS_TABBABLE ( L"previousTabbable" )
+
+#define IA2_RELATION_SUBWINDOW_OF ( L"subwindowOf" )
+
+
+
+extern RPC_IF_HANDLE __MIDL_itf_ia2_api_all_0000_0000_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_ia2_api_all_0000_0000_v0_0_s_ifspec;
+
+#ifndef __IAccessibleRelation_INTERFACE_DEFINED__
+#define __IAccessibleRelation_INTERFACE_DEFINED__
+
+/* interface IAccessibleRelation */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleRelation;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("7CDF86EE-C3DA-496a-BDA4-281B336E1FDC")
+ IAccessibleRelation : public IUnknown
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_relationType(
+ /* [retval][out] */ BSTR *relationType) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_localizedRelationType(
+ /* [retval][out] */ BSTR *localizedRelationType) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nTargets(
+ /* [retval][out] */ long *nTargets) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_target(
+ /* [in] */ long targetIndex,
+ /* [retval][out] */ IUnknown **target) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_targets(
+ /* [in] */ long maxTargets,
+ /* [length_is][size_is][out] */ IUnknown **targets,
+ /* [retval][out] */ long *nTargets) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct IAccessibleRelationVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleRelation * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ __RPC__deref_out void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleRelation * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleRelation * This);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relationType )(
+ IAccessibleRelation * This,
+ /* [retval][out] */ BSTR *relationType);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedRelationType )(
+ IAccessibleRelation * This,
+ /* [retval][out] */ BSTR *localizedRelationType);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nTargets )(
+ IAccessibleRelation * This,
+ /* [retval][out] */ long *nTargets);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_target )(
+ IAccessibleRelation * This,
+ /* [in] */ long targetIndex,
+ /* [retval][out] */ IUnknown **target);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_targets )(
+ IAccessibleRelation * This,
+ /* [in] */ long maxTargets,
+ /* [length_is][size_is][out] */ IUnknown **targets,
+ /* [retval][out] */ long *nTargets);
+
+ END_INTERFACE
+ } IAccessibleRelationVtbl;
+
+ interface IAccessibleRelation
+ {
+ CONST_VTBL struct IAccessibleRelationVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleRelation_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleRelation_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleRelation_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleRelation_get_relationType(This,relationType) \
+ ( (This)->lpVtbl -> get_relationType(This,relationType) )
+
+#define IAccessibleRelation_get_localizedRelationType(This,localizedRelationType) \
+ ( (This)->lpVtbl -> get_localizedRelationType(This,localizedRelationType) )
+
+#define IAccessibleRelation_get_nTargets(This,nTargets) \
+ ( (This)->lpVtbl -> get_nTargets(This,nTargets) )
+
+#define IAccessibleRelation_get_target(This,targetIndex,target) \
+ ( (This)->lpVtbl -> get_target(This,targetIndex,target) )
+
+#define IAccessibleRelation_get_targets(This,maxTargets,targets,nTargets) \
+ ( (This)->lpVtbl -> get_targets(This,maxTargets,targets,nTargets) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleRelation_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_ia2_api_all_0000_0001 */
+/* [local] */
+
+
+enum IA2Actions
+ { IA2_ACTION_OPEN = -1,
+ IA2_ACTION_COMPLETE = -2,
+ IA2_ACTION_CLOSE = -3
+ } ;
+
+
+extern RPC_IF_HANDLE __MIDL_itf_ia2_api_all_0000_0001_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_ia2_api_all_0000_0001_v0_0_s_ifspec;
+
+#ifndef __IAccessibleAction_INTERFACE_DEFINED__
+#define __IAccessibleAction_INTERFACE_DEFINED__
+
+/* interface IAccessibleAction */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleAction;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("B70D9F59-3B5A-4dba-AB9E-22012F607DF5")
+ IAccessibleAction : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE nActions(
+ /* [retval][out] */ long *nActions) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE doAction(
+ /* [in] */ long actionIndex) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_description(
+ /* [in] */ long actionIndex,
+ /* [retval][out] */ BSTR *description) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_keyBinding(
+ /* [in] */ long actionIndex,
+ /* [in] */ long nMaxBindings,
+ /* [length_is][length_is][size_is][size_is][out] */ BSTR **keyBindings,
+ /* [retval][out] */ long *nBindings) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_name(
+ /* [in] */ long actionIndex,
+ /* [retval][out] */ BSTR *name) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_localizedName(
+ /* [in] */ long actionIndex,
+ /* [retval][out] */ BSTR *localizedName) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct IAccessibleActionVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleAction * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ __RPC__deref_out void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleAction * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleAction * This);
+
+ HRESULT ( STDMETHODCALLTYPE *nActions )(
+ IAccessibleAction * This,
+ /* [retval][out] */ long *nActions);
+
+ HRESULT ( STDMETHODCALLTYPE *doAction )(
+ IAccessibleAction * This,
+ /* [in] */ long actionIndex);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_description )(
+ IAccessibleAction * This,
+ /* [in] */ long actionIndex,
+ /* [retval][out] */ BSTR *description);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_keyBinding )(
+ IAccessibleAction * This,
+ /* [in] */ long actionIndex,
+ /* [in] */ long nMaxBindings,
+ /* [length_is][length_is][size_is][size_is][out] */ BSTR **keyBindings,
+ /* [retval][out] */ long *nBindings);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_name )(
+ IAccessibleAction * This,
+ /* [in] */ long actionIndex,
+ /* [retval][out] */ BSTR *name);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedName )(
+ IAccessibleAction * This,
+ /* [in] */ long actionIndex,
+ /* [retval][out] */ BSTR *localizedName);
+
+ END_INTERFACE
+ } IAccessibleActionVtbl;
+
+ interface IAccessibleAction
+ {
+ CONST_VTBL struct IAccessibleActionVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleAction_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleAction_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleAction_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleAction_nActions(This,nActions) \
+ ( (This)->lpVtbl -> nActions(This,nActions) )
+
+#define IAccessibleAction_doAction(This,actionIndex) \
+ ( (This)->lpVtbl -> doAction(This,actionIndex) )
+
+#define IAccessibleAction_get_description(This,actionIndex,description) \
+ ( (This)->lpVtbl -> get_description(This,actionIndex,description) )
+
+#define IAccessibleAction_get_keyBinding(This,actionIndex,nMaxBindings,keyBindings,nBindings) \
+ ( (This)->lpVtbl -> get_keyBinding(This,actionIndex,nMaxBindings,keyBindings,nBindings) )
+
+#define IAccessibleAction_get_name(This,actionIndex,name) \
+ ( (This)->lpVtbl -> get_name(This,actionIndex,name) )
+
+#define IAccessibleAction_get_localizedName(This,actionIndex,localizedName) \
+ ( (This)->lpVtbl -> get_localizedName(This,actionIndex,localizedName) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleAction_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_ia2_api_all_0000_0002 */
+/* [local] */
+
+
+enum IA2Role
+ { IA2_ROLE_UNKNOWN = 0,
+ IA2_ROLE_CANVAS = 0x401,
+ IA2_ROLE_CAPTION = ( IA2_ROLE_CANVAS + 1 ) ,
+ IA2_ROLE_CHECK_MENU_ITEM = ( IA2_ROLE_CAPTION + 1 ) ,
+ IA2_ROLE_COLOR_CHOOSER = ( IA2_ROLE_CHECK_MENU_ITEM + 1 ) ,
+ IA2_ROLE_DATE_EDITOR = ( IA2_ROLE_COLOR_CHOOSER + 1 ) ,
+ IA2_ROLE_DESKTOP_ICON = ( IA2_ROLE_DATE_EDITOR + 1 ) ,
+ IA2_ROLE_DESKTOP_PANE = ( IA2_ROLE_DESKTOP_ICON + 1 ) ,
+ IA2_ROLE_DIRECTORY_PANE = ( IA2_ROLE_DESKTOP_PANE + 1 ) ,
+ IA2_ROLE_EDITBAR = ( IA2_ROLE_DIRECTORY_PANE + 1 ) ,
+ IA2_ROLE_EMBEDDED_OBJECT = ( IA2_ROLE_EDITBAR + 1 ) ,
+ IA2_ROLE_ENDNOTE = ( IA2_ROLE_EMBEDDED_OBJECT + 1 ) ,
+ IA2_ROLE_FILE_CHOOSER = ( IA2_ROLE_ENDNOTE + 1 ) ,
+ IA2_ROLE_FONT_CHOOSER = ( IA2_ROLE_FILE_CHOOSER + 1 ) ,
+ IA2_ROLE_FOOTER = ( IA2_ROLE_FONT_CHOOSER + 1 ) ,
+ IA2_ROLE_FOOTNOTE = ( IA2_ROLE_FOOTER + 1 ) ,
+ IA2_ROLE_FORM = ( IA2_ROLE_FOOTNOTE + 1 ) ,
+ IA2_ROLE_FRAME = ( IA2_ROLE_FORM + 1 ) ,
+ IA2_ROLE_GLASS_PANE = ( IA2_ROLE_FRAME + 1 ) ,
+ IA2_ROLE_HEADER = ( IA2_ROLE_GLASS_PANE + 1 ) ,
+ IA2_ROLE_HEADING = ( IA2_ROLE_HEADER + 1 ) ,
+ IA2_ROLE_ICON = ( IA2_ROLE_HEADING + 1 ) ,
+ IA2_ROLE_IMAGE_MAP = ( IA2_ROLE_ICON + 1 ) ,
+ IA2_ROLE_INPUT_METHOD_WINDOW = ( IA2_ROLE_IMAGE_MAP + 1 ) ,
+ IA2_ROLE_INTERNAL_FRAME = ( IA2_ROLE_INPUT_METHOD_WINDOW + 1 ) ,
+ IA2_ROLE_LABEL = ( IA2_ROLE_INTERNAL_FRAME + 1 ) ,
+ IA2_ROLE_LAYERED_PANE = ( IA2_ROLE_LABEL + 1 ) ,
+ IA2_ROLE_NOTE = ( IA2_ROLE_LAYERED_PANE + 1 ) ,
+ IA2_ROLE_OPTION_PANE = ( IA2_ROLE_NOTE + 1 ) ,
+ IA2_ROLE_PAGE = ( IA2_ROLE_OPTION_PANE + 1 ) ,
+ IA2_ROLE_PARAGRAPH = ( IA2_ROLE_PAGE + 1 ) ,
+ IA2_ROLE_RADIO_MENU_ITEM = ( IA2_ROLE_PARAGRAPH + 1 ) ,
+ IA2_ROLE_REDUNDANT_OBJECT = ( IA2_ROLE_RADIO_MENU_ITEM + 1 ) ,
+ IA2_ROLE_ROOT_PANE = ( IA2_ROLE_REDUNDANT_OBJECT + 1 ) ,
+ IA2_ROLE_RULER = ( IA2_ROLE_ROOT_PANE + 1 ) ,
+ IA2_ROLE_SCROLL_PANE = ( IA2_ROLE_RULER + 1 ) ,
+ IA2_ROLE_SECTION = ( IA2_ROLE_SCROLL_PANE + 1 ) ,
+ IA2_ROLE_SHAPE = ( IA2_ROLE_SECTION + 1 ) ,
+ IA2_ROLE_SPLIT_PANE = ( IA2_ROLE_SHAPE + 1 ) ,
+ IA2_ROLE_TEAR_OFF_MENU = ( IA2_ROLE_SPLIT_PANE + 1 ) ,
+ IA2_ROLE_TERMINAL = ( IA2_ROLE_TEAR_OFF_MENU + 1 ) ,
+ IA2_ROLE_TEXT_FRAME = ( IA2_ROLE_TERMINAL + 1 ) ,
+ IA2_ROLE_TOGGLE_BUTTON = ( IA2_ROLE_TEXT_FRAME + 1 ) ,
+ IA2_ROLE_VIEW_PORT = ( IA2_ROLE_TOGGLE_BUTTON + 1 ) ,
+ IA2_ROLE_COMPLEMENTARY_CONTENT = ( IA2_ROLE_VIEW_PORT + 1 )
+ } ;
+typedef long AccessibleStates;
+
+
+enum IA2States
+ { IA2_STATE_ACTIVE = 0x1,
+ IA2_STATE_ARMED = 0x2,
+ IA2_STATE_DEFUNCT = 0x4,
+ IA2_STATE_EDITABLE = 0x8,
+ IA2_STATE_HORIZONTAL = 0x10,
+ IA2_STATE_ICONIFIED = 0x20,
+ IA2_STATE_INVALID_ENTRY = 0x40,
+ IA2_STATE_MANAGES_DESCENDANTS = 0x80,
+ IA2_STATE_MODAL = 0x100,
+ IA2_STATE_MULTI_LINE = 0x200,
+ IA2_STATE_OPAQUE = 0x400,
+ IA2_STATE_REQUIRED = 0x800,
+ IA2_STATE_SELECTABLE_TEXT = 0x1000,
+ IA2_STATE_SINGLE_LINE = 0x2000,
+ IA2_STATE_STALE = 0x4000,
+ IA2_STATE_SUPPORTS_AUTOCOMPLETION = 0x8000,
+ IA2_STATE_TRANSIENT = 0x10000,
+ IA2_STATE_VERTICAL = 0x20000,
+ IA2_STATE_CHECKABLE = 0x40000,
+ IA2_STATE_PINNED = 0x80000
+ } ;
+typedef struct IA2Locale
+ {
+ BSTR language;
+ BSTR country;
+ BSTR variant;
+ } IA2Locale;
+
+
+
+extern RPC_IF_HANDLE __MIDL_itf_ia2_api_all_0000_0002_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_ia2_api_all_0000_0002_v0_0_s_ifspec;
+
+#ifndef __IAccessible2_INTERFACE_DEFINED__
+#define __IAccessible2_INTERFACE_DEFINED__
+
+/* interface IAccessible2 */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessible2;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("E89F726E-C4F4-4c19-BB19-B647D7FA8478")
+ IAccessible2 : public IAccessible
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nRelations(
+ /* [retval][out] */ long *nRelations) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_relation(
+ /* [in] */ long relationIndex,
+ /* [retval][out] */ IAccessibleRelation **relation) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_relations(
+ /* [in] */ long maxRelations,
+ /* [length_is][size_is][out] */ IAccessibleRelation **relations,
+ /* [retval][out] */ long *nRelations) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE role(
+ /* [retval][out] */ long *role) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE scrollTo(
+ /* [in] */ enum IA2ScrollType scrollType) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE scrollToPoint(
+ /* [in] */ enum IA2CoordinateType coordinateType,
+ /* [in] */ long x,
+ /* [in] */ long y) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_groupPosition(
+ /* [out] */ long *groupLevel,
+ /* [out] */ long *similarItemsInGroup,
+ /* [retval][out] */ long *positionInGroup) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_states(
+ /* [retval][out] */ AccessibleStates *states) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_extendedRole(
+ /* [retval][out] */ BSTR *extendedRole) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_localizedExtendedRole(
+ /* [retval][out] */ BSTR *localizedExtendedRole) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nExtendedStates(
+ /* [retval][out] */ long *nExtendedStates) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_extendedStates(
+ /* [in] */ long maxExtendedStates,
+ /* [length_is][length_is][size_is][size_is][out] */ BSTR **extendedStates,
+ /* [retval][out] */ long *nExtendedStates) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_localizedExtendedStates(
+ /* [in] */ long maxLocalizedExtendedStates,
+ /* [length_is][length_is][size_is][size_is][out] */ BSTR **localizedExtendedStates,
+ /* [retval][out] */ long *nLocalizedExtendedStates) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_uniqueID(
+ /* [retval][out] */ long *uniqueID) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_windowHandle(
+ /* [retval][out] */ HWND *windowHandle) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_indexInParent(
+ /* [retval][out] */ long *indexInParent) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_locale(
+ /* [retval][out] */ IA2Locale *locale) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_attributes(
+ /* [retval][out] */ BSTR *attributes) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct IAccessible2Vtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessible2 * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ __RPC__deref_out void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessible2 * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessible2 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ IAccessible2 * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ IAccessible2 * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ IAccessible2 * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [range][in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ IAccessible2 * This,
+ /* [in] */ DISPID dispIdMember,
+ /* [in] */ REFIID riid,
+ /* [in] */ LCID lcid,
+ /* [in] */ WORD wFlags,
+ /* [out][in] */ DISPPARAMS *pDispParams,
+ /* [out] */ VARIANT *pVarResult,
+ /* [out] */ EXCEPINFO *pExcepInfo,
+ /* [out] */ UINT *puArgErr);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accParent )(
+ IAccessible2 * This,
+ /* [retval][out] */ IDispatch **ppdispParent);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accChildCount )(
+ IAccessible2 * This,
+ /* [retval][out] */ long *pcountChildren);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accChild )(
+ IAccessible2 * This,
+ /* [in] */ VARIANT varChild,
+ /* [retval][out] */ IDispatch **ppdispChild);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accName )(
+ IAccessible2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ BSTR *pszName);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accValue )(
+ IAccessible2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ BSTR *pszValue);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accDescription )(
+ IAccessible2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ BSTR *pszDescription);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accRole )(
+ IAccessible2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ VARIANT *pvarRole);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accState )(
+ IAccessible2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ VARIANT *pvarState);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accHelp )(
+ IAccessible2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ BSTR *pszHelp);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accHelpTopic )(
+ IAccessible2 * This,
+ /* [out] */ BSTR *pszHelpFile,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ long *pidTopic);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accKeyboardShortcut )(
+ IAccessible2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ BSTR *pszKeyboardShortcut);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accFocus )(
+ IAccessible2 * This,
+ /* [retval][out] */ VARIANT *pvarChild);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accSelection )(
+ IAccessible2 * This,
+ /* [retval][out] */ VARIANT *pvarChildren);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accDefaultAction )(
+ IAccessible2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ BSTR *pszDefaultAction);
+
+ /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accSelect )(
+ IAccessible2 * This,
+ /* [in] */ long flagsSelect,
+ /* [optional][in] */ VARIANT varChild);
+
+ /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accLocation )(
+ IAccessible2 * This,
+ /* [out] */ long *pxLeft,
+ /* [out] */ long *pyTop,
+ /* [out] */ long *pcxWidth,
+ /* [out] */ long *pcyHeight,
+ /* [optional][in] */ VARIANT varChild);
+
+ /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accNavigate )(
+ IAccessible2 * This,
+ /* [in] */ long navDir,
+ /* [optional][in] */ VARIANT varStart,
+ /* [retval][out] */ VARIANT *pvarEndUpAt);
+
+ /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accHitTest )(
+ IAccessible2 * This,
+ /* [in] */ long xLeft,
+ /* [in] */ long yTop,
+ /* [retval][out] */ VARIANT *pvarChild);
+
+ /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accDoDefaultAction )(
+ IAccessible2 * This,
+ /* [optional][in] */ VARIANT varChild);
+
+ /* [id][propput][hidden] */ HRESULT ( STDMETHODCALLTYPE *put_accName )(
+ IAccessible2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [in] */ BSTR szName);
+
+ /* [id][propput][hidden] */ HRESULT ( STDMETHODCALLTYPE *put_accValue )(
+ IAccessible2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [in] */ BSTR szValue);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nRelations )(
+ IAccessible2 * This,
+ /* [retval][out] */ long *nRelations);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relation )(
+ IAccessible2 * This,
+ /* [in] */ long relationIndex,
+ /* [retval][out] */ IAccessibleRelation **relation);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relations )(
+ IAccessible2 * This,
+ /* [in] */ long maxRelations,
+ /* [length_is][size_is][out] */ IAccessibleRelation **relations,
+ /* [retval][out] */ long *nRelations);
+
+ HRESULT ( STDMETHODCALLTYPE *role )(
+ IAccessible2 * This,
+ /* [retval][out] */ long *role);
+
+ HRESULT ( STDMETHODCALLTYPE *scrollTo )(
+ IAccessible2 * This,
+ /* [in] */ enum IA2ScrollType scrollType);
+
+ HRESULT ( STDMETHODCALLTYPE *scrollToPoint )(
+ IAccessible2 * This,
+ /* [in] */ enum IA2CoordinateType coordinateType,
+ /* [in] */ long x,
+ /* [in] */ long y);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_groupPosition )(
+ IAccessible2 * This,
+ /* [out] */ long *groupLevel,
+ /* [out] */ long *similarItemsInGroup,
+ /* [retval][out] */ long *positionInGroup);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_states )(
+ IAccessible2 * This,
+ /* [retval][out] */ AccessibleStates *states);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_extendedRole )(
+ IAccessible2 * This,
+ /* [retval][out] */ BSTR *extendedRole);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedExtendedRole )(
+ IAccessible2 * This,
+ /* [retval][out] */ BSTR *localizedExtendedRole);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nExtendedStates )(
+ IAccessible2 * This,
+ /* [retval][out] */ long *nExtendedStates);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_extendedStates )(
+ IAccessible2 * This,
+ /* [in] */ long maxExtendedStates,
+ /* [length_is][length_is][size_is][size_is][out] */ BSTR **extendedStates,
+ /* [retval][out] */ long *nExtendedStates);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedExtendedStates )(
+ IAccessible2 * This,
+ /* [in] */ long maxLocalizedExtendedStates,
+ /* [length_is][length_is][size_is][size_is][out] */ BSTR **localizedExtendedStates,
+ /* [retval][out] */ long *nLocalizedExtendedStates);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_uniqueID )(
+ IAccessible2 * This,
+ /* [retval][out] */ long *uniqueID);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_windowHandle )(
+ IAccessible2 * This,
+ /* [retval][out] */ HWND *windowHandle);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_indexInParent )(
+ IAccessible2 * This,
+ /* [retval][out] */ long *indexInParent);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_locale )(
+ IAccessible2 * This,
+ /* [retval][out] */ IA2Locale *locale);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )(
+ IAccessible2 * This,
+ /* [retval][out] */ BSTR *attributes);
+
+ END_INTERFACE
+ } IAccessible2Vtbl;
+
+ interface IAccessible2
+ {
+ CONST_VTBL struct IAccessible2Vtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessible2_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessible2_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessible2_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessible2_GetTypeInfoCount(This,pctinfo) \
+ ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
+
+#define IAccessible2_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
+
+#define IAccessible2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
+
+#define IAccessible2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
+
+
+#define IAccessible2_get_accParent(This,ppdispParent) \
+ ( (This)->lpVtbl -> get_accParent(This,ppdispParent) )
+
+#define IAccessible2_get_accChildCount(This,pcountChildren) \
+ ( (This)->lpVtbl -> get_accChildCount(This,pcountChildren) )
+
+#define IAccessible2_get_accChild(This,varChild,ppdispChild) \
+ ( (This)->lpVtbl -> get_accChild(This,varChild,ppdispChild) )
+
+#define IAccessible2_get_accName(This,varChild,pszName) \
+ ( (This)->lpVtbl -> get_accName(This,varChild,pszName) )
+
+#define IAccessible2_get_accValue(This,varChild,pszValue) \
+ ( (This)->lpVtbl -> get_accValue(This,varChild,pszValue) )
+
+#define IAccessible2_get_accDescription(This,varChild,pszDescription) \
+ ( (This)->lpVtbl -> get_accDescription(This,varChild,pszDescription) )
+
+#define IAccessible2_get_accRole(This,varChild,pvarRole) \
+ ( (This)->lpVtbl -> get_accRole(This,varChild,pvarRole) )
+
+#define IAccessible2_get_accState(This,varChild,pvarState) \
+ ( (This)->lpVtbl -> get_accState(This,varChild,pvarState) )
+
+#define IAccessible2_get_accHelp(This,varChild,pszHelp) \
+ ( (This)->lpVtbl -> get_accHelp(This,varChild,pszHelp) )
+
+#define IAccessible2_get_accHelpTopic(This,pszHelpFile,varChild,pidTopic) \
+ ( (This)->lpVtbl -> get_accHelpTopic(This,pszHelpFile,varChild,pidTopic) )
+
+#define IAccessible2_get_accKeyboardShortcut(This,varChild,pszKeyboardShortcut) \
+ ( (This)->lpVtbl -> get_accKeyboardShortcut(This,varChild,pszKeyboardShortcut) )
+
+#define IAccessible2_get_accFocus(This,pvarChild) \
+ ( (This)->lpVtbl -> get_accFocus(This,pvarChild) )
+
+#define IAccessible2_get_accSelection(This,pvarChildren) \
+ ( (This)->lpVtbl -> get_accSelection(This,pvarChildren) )
+
+#define IAccessible2_get_accDefaultAction(This,varChild,pszDefaultAction) \
+ ( (This)->lpVtbl -> get_accDefaultAction(This,varChild,pszDefaultAction) )
+
+#define IAccessible2_accSelect(This,flagsSelect,varChild) \
+ ( (This)->lpVtbl -> accSelect(This,flagsSelect,varChild) )
+
+#define IAccessible2_accLocation(This,pxLeft,pyTop,pcxWidth,pcyHeight,varChild) \
+ ( (This)->lpVtbl -> accLocation(This,pxLeft,pyTop,pcxWidth,pcyHeight,varChild) )
+
+#define IAccessible2_accNavigate(This,navDir,varStart,pvarEndUpAt) \
+ ( (This)->lpVtbl -> accNavigate(This,navDir,varStart,pvarEndUpAt) )
+
+#define IAccessible2_accHitTest(This,xLeft,yTop,pvarChild) \
+ ( (This)->lpVtbl -> accHitTest(This,xLeft,yTop,pvarChild) )
+
+#define IAccessible2_accDoDefaultAction(This,varChild) \
+ ( (This)->lpVtbl -> accDoDefaultAction(This,varChild) )
+
+#define IAccessible2_put_accName(This,varChild,szName) \
+ ( (This)->lpVtbl -> put_accName(This,varChild,szName) )
+
+#define IAccessible2_put_accValue(This,varChild,szValue) \
+ ( (This)->lpVtbl -> put_accValue(This,varChild,szValue) )
+
+
+#define IAccessible2_get_nRelations(This,nRelations) \
+ ( (This)->lpVtbl -> get_nRelations(This,nRelations) )
+
+#define IAccessible2_get_relation(This,relationIndex,relation) \
+ ( (This)->lpVtbl -> get_relation(This,relationIndex,relation) )
+
+#define IAccessible2_get_relations(This,maxRelations,relations,nRelations) \
+ ( (This)->lpVtbl -> get_relations(This,maxRelations,relations,nRelations) )
+
+#define IAccessible2_role(This,role) \
+ ( (This)->lpVtbl -> role(This,role) )
+
+#define IAccessible2_scrollTo(This,scrollType) \
+ ( (This)->lpVtbl -> scrollTo(This,scrollType) )
+
+#define IAccessible2_scrollToPoint(This,coordinateType,x,y) \
+ ( (This)->lpVtbl -> scrollToPoint(This,coordinateType,x,y) )
+
+#define IAccessible2_get_groupPosition(This,groupLevel,similarItemsInGroup,positionInGroup) \
+ ( (This)->lpVtbl -> get_groupPosition(This,groupLevel,similarItemsInGroup,positionInGroup) )
+
+#define IAccessible2_get_states(This,states) \
+ ( (This)->lpVtbl -> get_states(This,states) )
+
+#define IAccessible2_get_extendedRole(This,extendedRole) \
+ ( (This)->lpVtbl -> get_extendedRole(This,extendedRole) )
+
+#define IAccessible2_get_localizedExtendedRole(This,localizedExtendedRole) \
+ ( (This)->lpVtbl -> get_localizedExtendedRole(This,localizedExtendedRole) )
+
+#define IAccessible2_get_nExtendedStates(This,nExtendedStates) \
+ ( (This)->lpVtbl -> get_nExtendedStates(This,nExtendedStates) )
+
+#define IAccessible2_get_extendedStates(This,maxExtendedStates,extendedStates,nExtendedStates) \
+ ( (This)->lpVtbl -> get_extendedStates(This,maxExtendedStates,extendedStates,nExtendedStates) )
+
+#define IAccessible2_get_localizedExtendedStates(This,maxLocalizedExtendedStates,localizedExtendedStates,nLocalizedExtendedStates) \
+ ( (This)->lpVtbl -> get_localizedExtendedStates(This,maxLocalizedExtendedStates,localizedExtendedStates,nLocalizedExtendedStates) )
+
+#define IAccessible2_get_uniqueID(This,uniqueID) \
+ ( (This)->lpVtbl -> get_uniqueID(This,uniqueID) )
+
+#define IAccessible2_get_windowHandle(This,windowHandle) \
+ ( (This)->lpVtbl -> get_windowHandle(This,windowHandle) )
+
+#define IAccessible2_get_indexInParent(This,indexInParent) \
+ ( (This)->lpVtbl -> get_indexInParent(This,indexInParent) )
+
+#define IAccessible2_get_locale(This,locale) \
+ ( (This)->lpVtbl -> get_locale(This,locale) )
+
+#define IAccessible2_get_attributes(This,attributes) \
+ ( (This)->lpVtbl -> get_attributes(This,attributes) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessible2_INTERFACE_DEFINED__ */
+
+
+#ifndef __IAccessible2_2_INTERFACE_DEFINED__
+#define __IAccessible2_2_INTERFACE_DEFINED__
+
+/* interface IAccessible2_2 */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessible2_2;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("6C9430E9-299D-4E6F-BD01-A82A1E88D3FF")
+ IAccessible2_2 : public IAccessible2
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_attribute(
+ /* [in] */ BSTR name,
+ /* [retval][out] */ VARIANT *attribute) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_accessibleWithCaret(
+ /* [out] */ IUnknown **accessible,
+ /* [retval][out] */ long *caretOffset) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_relationTargetsOfType(
+ /* [in] */ BSTR type,
+ /* [in] */ long maxTargets,
+ /* [size_is][size_is][out] */ IUnknown ***targets,
+ /* [retval][out] */ long *nTargets) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct IAccessible2_2Vtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessible2_2 * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ __RPC__deref_out void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessible2_2 * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessible2_2 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )(
+ IAccessible2_2 * This,
+ /* [out] */ UINT *pctinfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )(
+ IAccessible2_2 * This,
+ /* [in] */ UINT iTInfo,
+ /* [in] */ LCID lcid,
+ /* [out] */ ITypeInfo **ppTInfo);
+
+ HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )(
+ IAccessible2_2 * This,
+ /* [in] */ REFIID riid,
+ /* [size_is][in] */ LPOLESTR *rgszNames,
+ /* [range][in] */ UINT cNames,
+ /* [in] */ LCID lcid,
+ /* [size_is][out] */ DISPID *rgDispId);
+
+ /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )(
+ IAccessible2_2 * This,
+ /* [in] */ DISPID dispIdMember,
+ /* [in] */ REFIID riid,
+ /* [in] */ LCID lcid,
+ /* [in] */ WORD wFlags,
+ /* [out][in] */ DISPPARAMS *pDispParams,
+ /* [out] */ VARIANT *pVarResult,
+ /* [out] */ EXCEPINFO *pExcepInfo,
+ /* [out] */ UINT *puArgErr);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accParent )(
+ IAccessible2_2 * This,
+ /* [retval][out] */ IDispatch **ppdispParent);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accChildCount )(
+ IAccessible2_2 * This,
+ /* [retval][out] */ long *pcountChildren);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accChild )(
+ IAccessible2_2 * This,
+ /* [in] */ VARIANT varChild,
+ /* [retval][out] */ IDispatch **ppdispChild);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accName )(
+ IAccessible2_2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ BSTR *pszName);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accValue )(
+ IAccessible2_2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ BSTR *pszValue);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accDescription )(
+ IAccessible2_2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ BSTR *pszDescription);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accRole )(
+ IAccessible2_2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ VARIANT *pvarRole);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accState )(
+ IAccessible2_2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ VARIANT *pvarState);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accHelp )(
+ IAccessible2_2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ BSTR *pszHelp);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accHelpTopic )(
+ IAccessible2_2 * This,
+ /* [out] */ BSTR *pszHelpFile,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ long *pidTopic);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accKeyboardShortcut )(
+ IAccessible2_2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ BSTR *pszKeyboardShortcut);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accFocus )(
+ IAccessible2_2 * This,
+ /* [retval][out] */ VARIANT *pvarChild);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accSelection )(
+ IAccessible2_2 * This,
+ /* [retval][out] */ VARIANT *pvarChildren);
+
+ /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accDefaultAction )(
+ IAccessible2_2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [retval][out] */ BSTR *pszDefaultAction);
+
+ /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accSelect )(
+ IAccessible2_2 * This,
+ /* [in] */ long flagsSelect,
+ /* [optional][in] */ VARIANT varChild);
+
+ /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accLocation )(
+ IAccessible2_2 * This,
+ /* [out] */ long *pxLeft,
+ /* [out] */ long *pyTop,
+ /* [out] */ long *pcxWidth,
+ /* [out] */ long *pcyHeight,
+ /* [optional][in] */ VARIANT varChild);
+
+ /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accNavigate )(
+ IAccessible2_2 * This,
+ /* [in] */ long navDir,
+ /* [optional][in] */ VARIANT varStart,
+ /* [retval][out] */ VARIANT *pvarEndUpAt);
+
+ /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accHitTest )(
+ IAccessible2_2 * This,
+ /* [in] */ long xLeft,
+ /* [in] */ long yTop,
+ /* [retval][out] */ VARIANT *pvarChild);
+
+ /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accDoDefaultAction )(
+ IAccessible2_2 * This,
+ /* [optional][in] */ VARIANT varChild);
+
+ /* [id][propput][hidden] */ HRESULT ( STDMETHODCALLTYPE *put_accName )(
+ IAccessible2_2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [in] */ BSTR szName);
+
+ /* [id][propput][hidden] */ HRESULT ( STDMETHODCALLTYPE *put_accValue )(
+ IAccessible2_2 * This,
+ /* [optional][in] */ VARIANT varChild,
+ /* [in] */ BSTR szValue);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nRelations )(
+ IAccessible2_2 * This,
+ /* [retval][out] */ long *nRelations);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relation )(
+ IAccessible2_2 * This,
+ /* [in] */ long relationIndex,
+ /* [retval][out] */ IAccessibleRelation **relation);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relations )(
+ IAccessible2_2 * This,
+ /* [in] */ long maxRelations,
+ /* [length_is][size_is][out] */ IAccessibleRelation **relations,
+ /* [retval][out] */ long *nRelations);
+
+ HRESULT ( STDMETHODCALLTYPE *role )(
+ IAccessible2_2 * This,
+ /* [retval][out] */ long *role);
+
+ HRESULT ( STDMETHODCALLTYPE *scrollTo )(
+ IAccessible2_2 * This,
+ /* [in] */ enum IA2ScrollType scrollType);
+
+ HRESULT ( STDMETHODCALLTYPE *scrollToPoint )(
+ IAccessible2_2 * This,
+ /* [in] */ enum IA2CoordinateType coordinateType,
+ /* [in] */ long x,
+ /* [in] */ long y);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_groupPosition )(
+ IAccessible2_2 * This,
+ /* [out] */ long *groupLevel,
+ /* [out] */ long *similarItemsInGroup,
+ /* [retval][out] */ long *positionInGroup);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_states )(
+ IAccessible2_2 * This,
+ /* [retval][out] */ AccessibleStates *states);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_extendedRole )(
+ IAccessible2_2 * This,
+ /* [retval][out] */ BSTR *extendedRole);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedExtendedRole )(
+ IAccessible2_2 * This,
+ /* [retval][out] */ BSTR *localizedExtendedRole);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nExtendedStates )(
+ IAccessible2_2 * This,
+ /* [retval][out] */ long *nExtendedStates);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_extendedStates )(
+ IAccessible2_2 * This,
+ /* [in] */ long maxExtendedStates,
+ /* [length_is][length_is][size_is][size_is][out] */ BSTR **extendedStates,
+ /* [retval][out] */ long *nExtendedStates);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedExtendedStates )(
+ IAccessible2_2 * This,
+ /* [in] */ long maxLocalizedExtendedStates,
+ /* [length_is][length_is][size_is][size_is][out] */ BSTR **localizedExtendedStates,
+ /* [retval][out] */ long *nLocalizedExtendedStates);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_uniqueID )(
+ IAccessible2_2 * This,
+ /* [retval][out] */ long *uniqueID);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_windowHandle )(
+ IAccessible2_2 * This,
+ /* [retval][out] */ HWND *windowHandle);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_indexInParent )(
+ IAccessible2_2 * This,
+ /* [retval][out] */ long *indexInParent);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_locale )(
+ IAccessible2_2 * This,
+ /* [retval][out] */ IA2Locale *locale);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )(
+ IAccessible2_2 * This,
+ /* [retval][out] */ BSTR *attributes);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attribute )(
+ IAccessible2_2 * This,
+ /* [in] */ BSTR name,
+ /* [retval][out] */ VARIANT *attribute);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_accessibleWithCaret )(
+ IAccessible2_2 * This,
+ /* [out] */ IUnknown **accessible,
+ /* [retval][out] */ long *caretOffset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relationTargetsOfType )(
+ IAccessible2_2 * This,
+ /* [in] */ BSTR type,
+ /* [in] */ long maxTargets,
+ /* [size_is][size_is][out] */ IUnknown ***targets,
+ /* [retval][out] */ long *nTargets);
+
+ END_INTERFACE
+ } IAccessible2_2Vtbl;
+
+ interface IAccessible2_2
+ {
+ CONST_VTBL struct IAccessible2_2Vtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessible2_2_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessible2_2_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessible2_2_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessible2_2_GetTypeInfoCount(This,pctinfo) \
+ ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) )
+
+#define IAccessible2_2_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
+ ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) )
+
+#define IAccessible2_2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
+ ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) )
+
+#define IAccessible2_2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
+ ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) )
+
+
+#define IAccessible2_2_get_accParent(This,ppdispParent) \
+ ( (This)->lpVtbl -> get_accParent(This,ppdispParent) )
+
+#define IAccessible2_2_get_accChildCount(This,pcountChildren) \
+ ( (This)->lpVtbl -> get_accChildCount(This,pcountChildren) )
+
+#define IAccessible2_2_get_accChild(This,varChild,ppdispChild) \
+ ( (This)->lpVtbl -> get_accChild(This,varChild,ppdispChild) )
+
+#define IAccessible2_2_get_accName(This,varChild,pszName) \
+ ( (This)->lpVtbl -> get_accName(This,varChild,pszName) )
+
+#define IAccessible2_2_get_accValue(This,varChild,pszValue) \
+ ( (This)->lpVtbl -> get_accValue(This,varChild,pszValue) )
+
+#define IAccessible2_2_get_accDescription(This,varChild,pszDescription) \
+ ( (This)->lpVtbl -> get_accDescription(This,varChild,pszDescription) )
+
+#define IAccessible2_2_get_accRole(This,varChild,pvarRole) \
+ ( (This)->lpVtbl -> get_accRole(This,varChild,pvarRole) )
+
+#define IAccessible2_2_get_accState(This,varChild,pvarState) \
+ ( (This)->lpVtbl -> get_accState(This,varChild,pvarState) )
+
+#define IAccessible2_2_get_accHelp(This,varChild,pszHelp) \
+ ( (This)->lpVtbl -> get_accHelp(This,varChild,pszHelp) )
+
+#define IAccessible2_2_get_accHelpTopic(This,pszHelpFile,varChild,pidTopic) \
+ ( (This)->lpVtbl -> get_accHelpTopic(This,pszHelpFile,varChild,pidTopic) )
+
+#define IAccessible2_2_get_accKeyboardShortcut(This,varChild,pszKeyboardShortcut) \
+ ( (This)->lpVtbl -> get_accKeyboardShortcut(This,varChild,pszKeyboardShortcut) )
+
+#define IAccessible2_2_get_accFocus(This,pvarChild) \
+ ( (This)->lpVtbl -> get_accFocus(This,pvarChild) )
+
+#define IAccessible2_2_get_accSelection(This,pvarChildren) \
+ ( (This)->lpVtbl -> get_accSelection(This,pvarChildren) )
+
+#define IAccessible2_2_get_accDefaultAction(This,varChild,pszDefaultAction) \
+ ( (This)->lpVtbl -> get_accDefaultAction(This,varChild,pszDefaultAction) )
+
+#define IAccessible2_2_accSelect(This,flagsSelect,varChild) \
+ ( (This)->lpVtbl -> accSelect(This,flagsSelect,varChild) )
+
+#define IAccessible2_2_accLocation(This,pxLeft,pyTop,pcxWidth,pcyHeight,varChild) \
+ ( (This)->lpVtbl -> accLocation(This,pxLeft,pyTop,pcxWidth,pcyHeight,varChild) )
+
+#define IAccessible2_2_accNavigate(This,navDir,varStart,pvarEndUpAt) \
+ ( (This)->lpVtbl -> accNavigate(This,navDir,varStart,pvarEndUpAt) )
+
+#define IAccessible2_2_accHitTest(This,xLeft,yTop,pvarChild) \
+ ( (This)->lpVtbl -> accHitTest(This,xLeft,yTop,pvarChild) )
+
+#define IAccessible2_2_accDoDefaultAction(This,varChild) \
+ ( (This)->lpVtbl -> accDoDefaultAction(This,varChild) )
+
+#define IAccessible2_2_put_accName(This,varChild,szName) \
+ ( (This)->lpVtbl -> put_accName(This,varChild,szName) )
+
+#define IAccessible2_2_put_accValue(This,varChild,szValue) \
+ ( (This)->lpVtbl -> put_accValue(This,varChild,szValue) )
+
+
+#define IAccessible2_2_get_nRelations(This,nRelations) \
+ ( (This)->lpVtbl -> get_nRelations(This,nRelations) )
+
+#define IAccessible2_2_get_relation(This,relationIndex,relation) \
+ ( (This)->lpVtbl -> get_relation(This,relationIndex,relation) )
+
+#define IAccessible2_2_get_relations(This,maxRelations,relations,nRelations) \
+ ( (This)->lpVtbl -> get_relations(This,maxRelations,relations,nRelations) )
+
+#define IAccessible2_2_role(This,role) \
+ ( (This)->lpVtbl -> role(This,role) )
+
+#define IAccessible2_2_scrollTo(This,scrollType) \
+ ( (This)->lpVtbl -> scrollTo(This,scrollType) )
+
+#define IAccessible2_2_scrollToPoint(This,coordinateType,x,y) \
+ ( (This)->lpVtbl -> scrollToPoint(This,coordinateType,x,y) )
+
+#define IAccessible2_2_get_groupPosition(This,groupLevel,similarItemsInGroup,positionInGroup) \
+ ( (This)->lpVtbl -> get_groupPosition(This,groupLevel,similarItemsInGroup,positionInGroup) )
+
+#define IAccessible2_2_get_states(This,states) \
+ ( (This)->lpVtbl -> get_states(This,states) )
+
+#define IAccessible2_2_get_extendedRole(This,extendedRole) \
+ ( (This)->lpVtbl -> get_extendedRole(This,extendedRole) )
+
+#define IAccessible2_2_get_localizedExtendedRole(This,localizedExtendedRole) \
+ ( (This)->lpVtbl -> get_localizedExtendedRole(This,localizedExtendedRole) )
+
+#define IAccessible2_2_get_nExtendedStates(This,nExtendedStates) \
+ ( (This)->lpVtbl -> get_nExtendedStates(This,nExtendedStates) )
+
+#define IAccessible2_2_get_extendedStates(This,maxExtendedStates,extendedStates,nExtendedStates) \
+ ( (This)->lpVtbl -> get_extendedStates(This,maxExtendedStates,extendedStates,nExtendedStates) )
+
+#define IAccessible2_2_get_localizedExtendedStates(This,maxLocalizedExtendedStates,localizedExtendedStates,nLocalizedExtendedStates) \
+ ( (This)->lpVtbl -> get_localizedExtendedStates(This,maxLocalizedExtendedStates,localizedExtendedStates,nLocalizedExtendedStates) )
+
+#define IAccessible2_2_get_uniqueID(This,uniqueID) \
+ ( (This)->lpVtbl -> get_uniqueID(This,uniqueID) )
+
+#define IAccessible2_2_get_windowHandle(This,windowHandle) \
+ ( (This)->lpVtbl -> get_windowHandle(This,windowHandle) )
+
+#define IAccessible2_2_get_indexInParent(This,indexInParent) \
+ ( (This)->lpVtbl -> get_indexInParent(This,indexInParent) )
+
+#define IAccessible2_2_get_locale(This,locale) \
+ ( (This)->lpVtbl -> get_locale(This,locale) )
+
+#define IAccessible2_2_get_attributes(This,attributes) \
+ ( (This)->lpVtbl -> get_attributes(This,attributes) )
+
+
+#define IAccessible2_2_get_attribute(This,name,attribute) \
+ ( (This)->lpVtbl -> get_attribute(This,name,attribute) )
+
+#define IAccessible2_2_get_accessibleWithCaret(This,accessible,caretOffset) \
+ ( (This)->lpVtbl -> get_accessibleWithCaret(This,accessible,caretOffset) )
+
+#define IAccessible2_2_get_relationTargetsOfType(This,type,maxTargets,targets,nTargets) \
+ ( (This)->lpVtbl -> get_relationTargetsOfType(This,type,maxTargets,targets,nTargets) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessible2_2_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_ia2_api_all_0000_0004 */
+/* [local] */
+
+typedef long IA2Color;
+
+
+
+extern RPC_IF_HANDLE __MIDL_itf_ia2_api_all_0000_0004_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_ia2_api_all_0000_0004_v0_0_s_ifspec;
+
+#ifndef __IAccessibleComponent_INTERFACE_DEFINED__
+#define __IAccessibleComponent_INTERFACE_DEFINED__
+
+/* interface IAccessibleComponent */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleComponent;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("1546D4B0-4C98-4bda-89AE-9A64748BDDE4")
+ IAccessibleComponent : public IUnknown
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_locationInParent(
+ /* [out] */ long *x,
+ /* [retval][out] */ long *y) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_foreground(
+ /* [retval][out] */ IA2Color *foreground) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_background(
+ /* [retval][out] */ IA2Color *background) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct IAccessibleComponentVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleComponent * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ __RPC__deref_out void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleComponent * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleComponent * This);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_locationInParent )(
+ IAccessibleComponent * This,
+ /* [out] */ long *x,
+ /* [retval][out] */ long *y);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_foreground )(
+ IAccessibleComponent * This,
+ /* [retval][out] */ IA2Color *foreground);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_background )(
+ IAccessibleComponent * This,
+ /* [retval][out] */ IA2Color *background);
+
+ END_INTERFACE
+ } IAccessibleComponentVtbl;
+
+ interface IAccessibleComponent
+ {
+ CONST_VTBL struct IAccessibleComponentVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleComponent_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleComponent_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleComponent_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleComponent_get_locationInParent(This,x,y) \
+ ( (This)->lpVtbl -> get_locationInParent(This,x,y) )
+
+#define IAccessibleComponent_get_foreground(This,foreground) \
+ ( (This)->lpVtbl -> get_foreground(This,foreground) )
+
+#define IAccessibleComponent_get_background(This,background) \
+ ( (This)->lpVtbl -> get_background(This,background) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleComponent_INTERFACE_DEFINED__ */
+
+
+#ifndef __IAccessibleValue_INTERFACE_DEFINED__
+#define __IAccessibleValue_INTERFACE_DEFINED__
+
+/* interface IAccessibleValue */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleValue;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("35855B5B-C566-4fd0-A7B1-E65465600394")
+ IAccessibleValue : public IUnknown
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_currentValue(
+ /* [retval][out] */ VARIANT *currentValue) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE setCurrentValue(
+ /* [in] */ VARIANT value) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_maximumValue(
+ /* [retval][out] */ VARIANT *maximumValue) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_minimumValue(
+ /* [retval][out] */ VARIANT *minimumValue) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct IAccessibleValueVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleValue * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ __RPC__deref_out void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleValue * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleValue * This);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_currentValue )(
+ IAccessibleValue * This,
+ /* [retval][out] */ VARIANT *currentValue);
+
+ HRESULT ( STDMETHODCALLTYPE *setCurrentValue )(
+ IAccessibleValue * This,
+ /* [in] */ VARIANT value);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_maximumValue )(
+ IAccessibleValue * This,
+ /* [retval][out] */ VARIANT *maximumValue);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_minimumValue )(
+ IAccessibleValue * This,
+ /* [retval][out] */ VARIANT *minimumValue);
+
+ END_INTERFACE
+ } IAccessibleValueVtbl;
+
+ interface IAccessibleValue
+ {
+ CONST_VTBL struct IAccessibleValueVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleValue_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleValue_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleValue_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleValue_get_currentValue(This,currentValue) \
+ ( (This)->lpVtbl -> get_currentValue(This,currentValue) )
+
+#define IAccessibleValue_setCurrentValue(This,value) \
+ ( (This)->lpVtbl -> setCurrentValue(This,value) )
+
+#define IAccessibleValue_get_maximumValue(This,maximumValue) \
+ ( (This)->lpVtbl -> get_maximumValue(This,maximumValue) )
+
+#define IAccessibleValue_get_minimumValue(This,minimumValue) \
+ ( (This)->lpVtbl -> get_minimumValue(This,minimumValue) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleValue_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_ia2_api_all_0000_0006 */
+/* [local] */
+
+typedef struct IA2TextSegment
+ {
+ BSTR text;
+ long start;
+ long end;
+ } IA2TextSegment;
+
+
+enum IA2TextBoundaryType
+ { IA2_TEXT_BOUNDARY_CHAR = 0,
+ IA2_TEXT_BOUNDARY_WORD = ( IA2_TEXT_BOUNDARY_CHAR + 1 ) ,
+ IA2_TEXT_BOUNDARY_SENTENCE = ( IA2_TEXT_BOUNDARY_WORD + 1 ) ,
+ IA2_TEXT_BOUNDARY_PARAGRAPH = ( IA2_TEXT_BOUNDARY_SENTENCE + 1 ) ,
+ IA2_TEXT_BOUNDARY_LINE = ( IA2_TEXT_BOUNDARY_PARAGRAPH + 1 ) ,
+ IA2_TEXT_BOUNDARY_ALL = ( IA2_TEXT_BOUNDARY_LINE + 1 )
+ } ;
+
+
+extern RPC_IF_HANDLE __MIDL_itf_ia2_api_all_0000_0006_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_ia2_api_all_0000_0006_v0_0_s_ifspec;
+
+#ifndef __IAccessibleText_INTERFACE_DEFINED__
+#define __IAccessibleText_INTERFACE_DEFINED__
+
+/* interface IAccessibleText */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleText;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("24FD2FFB-3AAD-4a08-8335-A3AD89C0FB4B")
+ IAccessibleText : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE addSelection(
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_attributes(
+ /* [in] */ long offset,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *textAttributes) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_caretOffset(
+ /* [retval][out] */ long *offset) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_characterExtents(
+ /* [in] */ long offset,
+ /* [in] */ enum IA2CoordinateType coordType,
+ /* [out] */ long *x,
+ /* [out] */ long *y,
+ /* [out] */ long *width,
+ /* [retval][out] */ long *height) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nSelections(
+ /* [retval][out] */ long *nSelections) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_offsetAtPoint(
+ /* [in] */ long x,
+ /* [in] */ long y,
+ /* [in] */ enum IA2CoordinateType coordType,
+ /* [retval][out] */ long *offset) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selection(
+ /* [in] */ long selectionIndex,
+ /* [out] */ long *startOffset,
+ /* [retval][out] */ long *endOffset) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_text(
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset,
+ /* [retval][out] */ BSTR *text) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_textBeforeOffset(
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_textAfterOffset(
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_textAtOffset(
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE removeSelection(
+ /* [in] */ long selectionIndex) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE setCaretOffset(
+ /* [in] */ long offset) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE setSelection(
+ /* [in] */ long selectionIndex,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nCharacters(
+ /* [retval][out] */ long *nCharacters) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE scrollSubstringTo(
+ /* [in] */ long startIndex,
+ /* [in] */ long endIndex,
+ /* [in] */ enum IA2ScrollType scrollType) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE scrollSubstringToPoint(
+ /* [in] */ long startIndex,
+ /* [in] */ long endIndex,
+ /* [in] */ enum IA2CoordinateType coordinateType,
+ /* [in] */ long x,
+ /* [in] */ long y) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_newText(
+ /* [retval][out] */ IA2TextSegment *newText) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_oldText(
+ /* [retval][out] */ IA2TextSegment *oldText) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct IAccessibleTextVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleText * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ __RPC__deref_out void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleText * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleText * This);
+
+ HRESULT ( STDMETHODCALLTYPE *addSelection )(
+ IAccessibleText * This,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )(
+ IAccessibleText * This,
+ /* [in] */ long offset,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *textAttributes);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_caretOffset )(
+ IAccessibleText * This,
+ /* [retval][out] */ long *offset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_characterExtents )(
+ IAccessibleText * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2CoordinateType coordType,
+ /* [out] */ long *x,
+ /* [out] */ long *y,
+ /* [out] */ long *width,
+ /* [retval][out] */ long *height);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelections )(
+ IAccessibleText * This,
+ /* [retval][out] */ long *nSelections);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_offsetAtPoint )(
+ IAccessibleText * This,
+ /* [in] */ long x,
+ /* [in] */ long y,
+ /* [in] */ enum IA2CoordinateType coordType,
+ /* [retval][out] */ long *offset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selection )(
+ IAccessibleText * This,
+ /* [in] */ long selectionIndex,
+ /* [out] */ long *startOffset,
+ /* [retval][out] */ long *endOffset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_text )(
+ IAccessibleText * This,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textBeforeOffset )(
+ IAccessibleText * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAfterOffset )(
+ IAccessibleText * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAtOffset )(
+ IAccessibleText * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ HRESULT ( STDMETHODCALLTYPE *removeSelection )(
+ IAccessibleText * This,
+ /* [in] */ long selectionIndex);
+
+ HRESULT ( STDMETHODCALLTYPE *setCaretOffset )(
+ IAccessibleText * This,
+ /* [in] */ long offset);
+
+ HRESULT ( STDMETHODCALLTYPE *setSelection )(
+ IAccessibleText * This,
+ /* [in] */ long selectionIndex,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nCharacters )(
+ IAccessibleText * This,
+ /* [retval][out] */ long *nCharacters);
+
+ HRESULT ( STDMETHODCALLTYPE *scrollSubstringTo )(
+ IAccessibleText * This,
+ /* [in] */ long startIndex,
+ /* [in] */ long endIndex,
+ /* [in] */ enum IA2ScrollType scrollType);
+
+ HRESULT ( STDMETHODCALLTYPE *scrollSubstringToPoint )(
+ IAccessibleText * This,
+ /* [in] */ long startIndex,
+ /* [in] */ long endIndex,
+ /* [in] */ enum IA2CoordinateType coordinateType,
+ /* [in] */ long x,
+ /* [in] */ long y);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_newText )(
+ IAccessibleText * This,
+ /* [retval][out] */ IA2TextSegment *newText);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_oldText )(
+ IAccessibleText * This,
+ /* [retval][out] */ IA2TextSegment *oldText);
+
+ END_INTERFACE
+ } IAccessibleTextVtbl;
+
+ interface IAccessibleText
+ {
+ CONST_VTBL struct IAccessibleTextVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleText_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleText_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleText_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleText_addSelection(This,startOffset,endOffset) \
+ ( (This)->lpVtbl -> addSelection(This,startOffset,endOffset) )
+
+#define IAccessibleText_get_attributes(This,offset,startOffset,endOffset,textAttributes) \
+ ( (This)->lpVtbl -> get_attributes(This,offset,startOffset,endOffset,textAttributes) )
+
+#define IAccessibleText_get_caretOffset(This,offset) \
+ ( (This)->lpVtbl -> get_caretOffset(This,offset) )
+
+#define IAccessibleText_get_characterExtents(This,offset,coordType,x,y,width,height) \
+ ( (This)->lpVtbl -> get_characterExtents(This,offset,coordType,x,y,width,height) )
+
+#define IAccessibleText_get_nSelections(This,nSelections) \
+ ( (This)->lpVtbl -> get_nSelections(This,nSelections) )
+
+#define IAccessibleText_get_offsetAtPoint(This,x,y,coordType,offset) \
+ ( (This)->lpVtbl -> get_offsetAtPoint(This,x,y,coordType,offset) )
+
+#define IAccessibleText_get_selection(This,selectionIndex,startOffset,endOffset) \
+ ( (This)->lpVtbl -> get_selection(This,selectionIndex,startOffset,endOffset) )
+
+#define IAccessibleText_get_text(This,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_text(This,startOffset,endOffset,text) )
+
+#define IAccessibleText_get_textBeforeOffset(This,offset,boundaryType,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_textBeforeOffset(This,offset,boundaryType,startOffset,endOffset,text) )
+
+#define IAccessibleText_get_textAfterOffset(This,offset,boundaryType,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_textAfterOffset(This,offset,boundaryType,startOffset,endOffset,text) )
+
+#define IAccessibleText_get_textAtOffset(This,offset,boundaryType,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_textAtOffset(This,offset,boundaryType,startOffset,endOffset,text) )
+
+#define IAccessibleText_removeSelection(This,selectionIndex) \
+ ( (This)->lpVtbl -> removeSelection(This,selectionIndex) )
+
+#define IAccessibleText_setCaretOffset(This,offset) \
+ ( (This)->lpVtbl -> setCaretOffset(This,offset) )
+
+#define IAccessibleText_setSelection(This,selectionIndex,startOffset,endOffset) \
+ ( (This)->lpVtbl -> setSelection(This,selectionIndex,startOffset,endOffset) )
+
+#define IAccessibleText_get_nCharacters(This,nCharacters) \
+ ( (This)->lpVtbl -> get_nCharacters(This,nCharacters) )
+
+#define IAccessibleText_scrollSubstringTo(This,startIndex,endIndex,scrollType) \
+ ( (This)->lpVtbl -> scrollSubstringTo(This,startIndex,endIndex,scrollType) )
+
+#define IAccessibleText_scrollSubstringToPoint(This,startIndex,endIndex,coordinateType,x,y) \
+ ( (This)->lpVtbl -> scrollSubstringToPoint(This,startIndex,endIndex,coordinateType,x,y) )
+
+#define IAccessibleText_get_newText(This,newText) \
+ ( (This)->lpVtbl -> get_newText(This,newText) )
+
+#define IAccessibleText_get_oldText(This,oldText) \
+ ( (This)->lpVtbl -> get_oldText(This,oldText) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleText_INTERFACE_DEFINED__ */
+
+
+#ifndef __IAccessibleText2_INTERFACE_DEFINED__
+#define __IAccessibleText2_INTERFACE_DEFINED__
+
+/* interface IAccessibleText2 */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleText2;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("9690A9CC-5C80-4DF5-852E-2D5AE4189A54")
+ IAccessibleText2 : public IAccessibleText
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_attributeRange(
+ /* [in] */ long offset,
+ /* [in] */ BSTR filter,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *attributeValues) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct IAccessibleText2Vtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleText2 * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ __RPC__deref_out void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleText2 * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleText2 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *addSelection )(
+ IAccessibleText2 * This,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )(
+ IAccessibleText2 * This,
+ /* [in] */ long offset,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *textAttributes);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_caretOffset )(
+ IAccessibleText2 * This,
+ /* [retval][out] */ long *offset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_characterExtents )(
+ IAccessibleText2 * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2CoordinateType coordType,
+ /* [out] */ long *x,
+ /* [out] */ long *y,
+ /* [out] */ long *width,
+ /* [retval][out] */ long *height);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelections )(
+ IAccessibleText2 * This,
+ /* [retval][out] */ long *nSelections);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_offsetAtPoint )(
+ IAccessibleText2 * This,
+ /* [in] */ long x,
+ /* [in] */ long y,
+ /* [in] */ enum IA2CoordinateType coordType,
+ /* [retval][out] */ long *offset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selection )(
+ IAccessibleText2 * This,
+ /* [in] */ long selectionIndex,
+ /* [out] */ long *startOffset,
+ /* [retval][out] */ long *endOffset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_text )(
+ IAccessibleText2 * This,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textBeforeOffset )(
+ IAccessibleText2 * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAfterOffset )(
+ IAccessibleText2 * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAtOffset )(
+ IAccessibleText2 * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ HRESULT ( STDMETHODCALLTYPE *removeSelection )(
+ IAccessibleText2 * This,
+ /* [in] */ long selectionIndex);
+
+ HRESULT ( STDMETHODCALLTYPE *setCaretOffset )(
+ IAccessibleText2 * This,
+ /* [in] */ long offset);
+
+ HRESULT ( STDMETHODCALLTYPE *setSelection )(
+ IAccessibleText2 * This,
+ /* [in] */ long selectionIndex,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nCharacters )(
+ IAccessibleText2 * This,
+ /* [retval][out] */ long *nCharacters);
+
+ HRESULT ( STDMETHODCALLTYPE *scrollSubstringTo )(
+ IAccessibleText2 * This,
+ /* [in] */ long startIndex,
+ /* [in] */ long endIndex,
+ /* [in] */ enum IA2ScrollType scrollType);
+
+ HRESULT ( STDMETHODCALLTYPE *scrollSubstringToPoint )(
+ IAccessibleText2 * This,
+ /* [in] */ long startIndex,
+ /* [in] */ long endIndex,
+ /* [in] */ enum IA2CoordinateType coordinateType,
+ /* [in] */ long x,
+ /* [in] */ long y);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_newText )(
+ IAccessibleText2 * This,
+ /* [retval][out] */ IA2TextSegment *newText);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_oldText )(
+ IAccessibleText2 * This,
+ /* [retval][out] */ IA2TextSegment *oldText);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributeRange )(
+ IAccessibleText2 * This,
+ /* [in] */ long offset,
+ /* [in] */ BSTR filter,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *attributeValues);
+
+ END_INTERFACE
+ } IAccessibleText2Vtbl;
+
+ interface IAccessibleText2
+ {
+ CONST_VTBL struct IAccessibleText2Vtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleText2_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleText2_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleText2_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleText2_addSelection(This,startOffset,endOffset) \
+ ( (This)->lpVtbl -> addSelection(This,startOffset,endOffset) )
+
+#define IAccessibleText2_get_attributes(This,offset,startOffset,endOffset,textAttributes) \
+ ( (This)->lpVtbl -> get_attributes(This,offset,startOffset,endOffset,textAttributes) )
+
+#define IAccessibleText2_get_caretOffset(This,offset) \
+ ( (This)->lpVtbl -> get_caretOffset(This,offset) )
+
+#define IAccessibleText2_get_characterExtents(This,offset,coordType,x,y,width,height) \
+ ( (This)->lpVtbl -> get_characterExtents(This,offset,coordType,x,y,width,height) )
+
+#define IAccessibleText2_get_nSelections(This,nSelections) \
+ ( (This)->lpVtbl -> get_nSelections(This,nSelections) )
+
+#define IAccessibleText2_get_offsetAtPoint(This,x,y,coordType,offset) \
+ ( (This)->lpVtbl -> get_offsetAtPoint(This,x,y,coordType,offset) )
+
+#define IAccessibleText2_get_selection(This,selectionIndex,startOffset,endOffset) \
+ ( (This)->lpVtbl -> get_selection(This,selectionIndex,startOffset,endOffset) )
+
+#define IAccessibleText2_get_text(This,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_text(This,startOffset,endOffset,text) )
+
+#define IAccessibleText2_get_textBeforeOffset(This,offset,boundaryType,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_textBeforeOffset(This,offset,boundaryType,startOffset,endOffset,text) )
+
+#define IAccessibleText2_get_textAfterOffset(This,offset,boundaryType,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_textAfterOffset(This,offset,boundaryType,startOffset,endOffset,text) )
+
+#define IAccessibleText2_get_textAtOffset(This,offset,boundaryType,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_textAtOffset(This,offset,boundaryType,startOffset,endOffset,text) )
+
+#define IAccessibleText2_removeSelection(This,selectionIndex) \
+ ( (This)->lpVtbl -> removeSelection(This,selectionIndex) )
+
+#define IAccessibleText2_setCaretOffset(This,offset) \
+ ( (This)->lpVtbl -> setCaretOffset(This,offset) )
+
+#define IAccessibleText2_setSelection(This,selectionIndex,startOffset,endOffset) \
+ ( (This)->lpVtbl -> setSelection(This,selectionIndex,startOffset,endOffset) )
+
+#define IAccessibleText2_get_nCharacters(This,nCharacters) \
+ ( (This)->lpVtbl -> get_nCharacters(This,nCharacters) )
+
+#define IAccessibleText2_scrollSubstringTo(This,startIndex,endIndex,scrollType) \
+ ( (This)->lpVtbl -> scrollSubstringTo(This,startIndex,endIndex,scrollType) )
+
+#define IAccessibleText2_scrollSubstringToPoint(This,startIndex,endIndex,coordinateType,x,y) \
+ ( (This)->lpVtbl -> scrollSubstringToPoint(This,startIndex,endIndex,coordinateType,x,y) )
+
+#define IAccessibleText2_get_newText(This,newText) \
+ ( (This)->lpVtbl -> get_newText(This,newText) )
+
+#define IAccessibleText2_get_oldText(This,oldText) \
+ ( (This)->lpVtbl -> get_oldText(This,oldText) )
+
+
+#define IAccessibleText2_get_attributeRange(This,offset,filter,startOffset,endOffset,attributeValues) \
+ ( (This)->lpVtbl -> get_attributeRange(This,offset,filter,startOffset,endOffset,attributeValues) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleText2_INTERFACE_DEFINED__ */
+
+
+#ifndef __IAccessibleEditableText_INTERFACE_DEFINED__
+#define __IAccessibleEditableText_INTERFACE_DEFINED__
+
+/* interface IAccessibleEditableText */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleEditableText;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("A59AA09A-7011-4b65-939D-32B1FB5547E3")
+ IAccessibleEditableText : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE copyText(
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE deleteText(
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE insertText(
+ /* [in] */ long offset,
+ /* [in] */ BSTR *text) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE cutText(
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE pasteText(
+ /* [in] */ long offset) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE replaceText(
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset,
+ /* [in] */ BSTR *text) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE setAttributes(
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset,
+ /* [in] */ BSTR *attributes) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct IAccessibleEditableTextVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleEditableText * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ __RPC__deref_out void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleEditableText * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleEditableText * This);
+
+ HRESULT ( STDMETHODCALLTYPE *copyText )(
+ IAccessibleEditableText * This,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset);
+
+ HRESULT ( STDMETHODCALLTYPE *deleteText )(
+ IAccessibleEditableText * This,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset);
+
+ HRESULT ( STDMETHODCALLTYPE *insertText )(
+ IAccessibleEditableText * This,
+ /* [in] */ long offset,
+ /* [in] */ BSTR *text);
+
+ HRESULT ( STDMETHODCALLTYPE *cutText )(
+ IAccessibleEditableText * This,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset);
+
+ HRESULT ( STDMETHODCALLTYPE *pasteText )(
+ IAccessibleEditableText * This,
+ /* [in] */ long offset);
+
+ HRESULT ( STDMETHODCALLTYPE *replaceText )(
+ IAccessibleEditableText * This,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset,
+ /* [in] */ BSTR *text);
+
+ HRESULT ( STDMETHODCALLTYPE *setAttributes )(
+ IAccessibleEditableText * This,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset,
+ /* [in] */ BSTR *attributes);
+
+ END_INTERFACE
+ } IAccessibleEditableTextVtbl;
+
+ interface IAccessibleEditableText
+ {
+ CONST_VTBL struct IAccessibleEditableTextVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleEditableText_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleEditableText_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleEditableText_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleEditableText_copyText(This,startOffset,endOffset) \
+ ( (This)->lpVtbl -> copyText(This,startOffset,endOffset) )
+
+#define IAccessibleEditableText_deleteText(This,startOffset,endOffset) \
+ ( (This)->lpVtbl -> deleteText(This,startOffset,endOffset) )
+
+#define IAccessibleEditableText_insertText(This,offset,text) \
+ ( (This)->lpVtbl -> insertText(This,offset,text) )
+
+#define IAccessibleEditableText_cutText(This,startOffset,endOffset) \
+ ( (This)->lpVtbl -> cutText(This,startOffset,endOffset) )
+
+#define IAccessibleEditableText_pasteText(This,offset) \
+ ( (This)->lpVtbl -> pasteText(This,offset) )
+
+#define IAccessibleEditableText_replaceText(This,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> replaceText(This,startOffset,endOffset,text) )
+
+#define IAccessibleEditableText_setAttributes(This,startOffset,endOffset,attributes) \
+ ( (This)->lpVtbl -> setAttributes(This,startOffset,endOffset,attributes) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleEditableText_INTERFACE_DEFINED__ */
+
+
+#ifndef __IAccessibleHyperlink_INTERFACE_DEFINED__
+#define __IAccessibleHyperlink_INTERFACE_DEFINED__
+
+/* interface IAccessibleHyperlink */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleHyperlink;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("01C20F2B-3DD2-400f-949F-AD00BDAB1D41")
+ IAccessibleHyperlink : public IAccessibleAction
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_anchor(
+ /* [in] */ long index,
+ /* [retval][out] */ VARIANT *anchor) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_anchorTarget(
+ /* [in] */ long index,
+ /* [retval][out] */ VARIANT *anchorTarget) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_startIndex(
+ /* [retval][out] */ long *index) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_endIndex(
+ /* [retval][out] */ long *index) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_valid(
+ /* [retval][out] */ boolean *valid) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct IAccessibleHyperlinkVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleHyperlink * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ __RPC__deref_out void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleHyperlink * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleHyperlink * This);
+
+ HRESULT ( STDMETHODCALLTYPE *nActions )(
+ IAccessibleHyperlink * This,
+ /* [retval][out] */ long *nActions);
+
+ HRESULT ( STDMETHODCALLTYPE *doAction )(
+ IAccessibleHyperlink * This,
+ /* [in] */ long actionIndex);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_description )(
+ IAccessibleHyperlink * This,
+ /* [in] */ long actionIndex,
+ /* [retval][out] */ BSTR *description);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_keyBinding )(
+ IAccessibleHyperlink * This,
+ /* [in] */ long actionIndex,
+ /* [in] */ long nMaxBindings,
+ /* [length_is][length_is][size_is][size_is][out] */ BSTR **keyBindings,
+ /* [retval][out] */ long *nBindings);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_name )(
+ IAccessibleHyperlink * This,
+ /* [in] */ long actionIndex,
+ /* [retval][out] */ BSTR *name);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedName )(
+ IAccessibleHyperlink * This,
+ /* [in] */ long actionIndex,
+ /* [retval][out] */ BSTR *localizedName);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_anchor )(
+ IAccessibleHyperlink * This,
+ /* [in] */ long index,
+ /* [retval][out] */ VARIANT *anchor);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_anchorTarget )(
+ IAccessibleHyperlink * This,
+ /* [in] */ long index,
+ /* [retval][out] */ VARIANT *anchorTarget);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_startIndex )(
+ IAccessibleHyperlink * This,
+ /* [retval][out] */ long *index);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_endIndex )(
+ IAccessibleHyperlink * This,
+ /* [retval][out] */ long *index);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_valid )(
+ IAccessibleHyperlink * This,
+ /* [retval][out] */ boolean *valid);
+
+ END_INTERFACE
+ } IAccessibleHyperlinkVtbl;
+
+ interface IAccessibleHyperlink
+ {
+ CONST_VTBL struct IAccessibleHyperlinkVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleHyperlink_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleHyperlink_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleHyperlink_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleHyperlink_nActions(This,nActions) \
+ ( (This)->lpVtbl -> nActions(This,nActions) )
+
+#define IAccessibleHyperlink_doAction(This,actionIndex) \
+ ( (This)->lpVtbl -> doAction(This,actionIndex) )
+
+#define IAccessibleHyperlink_get_description(This,actionIndex,description) \
+ ( (This)->lpVtbl -> get_description(This,actionIndex,description) )
+
+#define IAccessibleHyperlink_get_keyBinding(This,actionIndex,nMaxBindings,keyBindings,nBindings) \
+ ( (This)->lpVtbl -> get_keyBinding(This,actionIndex,nMaxBindings,keyBindings,nBindings) )
+
+#define IAccessibleHyperlink_get_name(This,actionIndex,name) \
+ ( (This)->lpVtbl -> get_name(This,actionIndex,name) )
+
+#define IAccessibleHyperlink_get_localizedName(This,actionIndex,localizedName) \
+ ( (This)->lpVtbl -> get_localizedName(This,actionIndex,localizedName) )
+
+
+#define IAccessibleHyperlink_get_anchor(This,index,anchor) \
+ ( (This)->lpVtbl -> get_anchor(This,index,anchor) )
+
+#define IAccessibleHyperlink_get_anchorTarget(This,index,anchorTarget) \
+ ( (This)->lpVtbl -> get_anchorTarget(This,index,anchorTarget) )
+
+#define IAccessibleHyperlink_get_startIndex(This,index) \
+ ( (This)->lpVtbl -> get_startIndex(This,index) )
+
+#define IAccessibleHyperlink_get_endIndex(This,index) \
+ ( (This)->lpVtbl -> get_endIndex(This,index) )
+
+#define IAccessibleHyperlink_get_valid(This,valid) \
+ ( (This)->lpVtbl -> get_valid(This,valid) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleHyperlink_INTERFACE_DEFINED__ */
+
+
+#ifndef __IAccessibleHypertext_INTERFACE_DEFINED__
+#define __IAccessibleHypertext_INTERFACE_DEFINED__
+
+/* interface IAccessibleHypertext */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleHypertext;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("6B4F8BBF-F1F2-418a-B35E-A195BC4103B9")
+ IAccessibleHypertext : public IAccessibleText
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nHyperlinks(
+ /* [retval][out] */ long *hyperlinkCount) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_hyperlink(
+ /* [in] */ long index,
+ /* [retval][out] */ IAccessibleHyperlink **hyperlink) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_hyperlinkIndex(
+ /* [in] */ long charIndex,
+ /* [retval][out] */ long *hyperlinkIndex) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct IAccessibleHypertextVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleHypertext * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ __RPC__deref_out void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleHypertext * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleHypertext * This);
+
+ HRESULT ( STDMETHODCALLTYPE *addSelection )(
+ IAccessibleHypertext * This,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )(
+ IAccessibleHypertext * This,
+ /* [in] */ long offset,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *textAttributes);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_caretOffset )(
+ IAccessibleHypertext * This,
+ /* [retval][out] */ long *offset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_characterExtents )(
+ IAccessibleHypertext * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2CoordinateType coordType,
+ /* [out] */ long *x,
+ /* [out] */ long *y,
+ /* [out] */ long *width,
+ /* [retval][out] */ long *height);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelections )(
+ IAccessibleHypertext * This,
+ /* [retval][out] */ long *nSelections);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_offsetAtPoint )(
+ IAccessibleHypertext * This,
+ /* [in] */ long x,
+ /* [in] */ long y,
+ /* [in] */ enum IA2CoordinateType coordType,
+ /* [retval][out] */ long *offset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selection )(
+ IAccessibleHypertext * This,
+ /* [in] */ long selectionIndex,
+ /* [out] */ long *startOffset,
+ /* [retval][out] */ long *endOffset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_text )(
+ IAccessibleHypertext * This,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textBeforeOffset )(
+ IAccessibleHypertext * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAfterOffset )(
+ IAccessibleHypertext * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAtOffset )(
+ IAccessibleHypertext * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ HRESULT ( STDMETHODCALLTYPE *removeSelection )(
+ IAccessibleHypertext * This,
+ /* [in] */ long selectionIndex);
+
+ HRESULT ( STDMETHODCALLTYPE *setCaretOffset )(
+ IAccessibleHypertext * This,
+ /* [in] */ long offset);
+
+ HRESULT ( STDMETHODCALLTYPE *setSelection )(
+ IAccessibleHypertext * This,
+ /* [in] */ long selectionIndex,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nCharacters )(
+ IAccessibleHypertext * This,
+ /* [retval][out] */ long *nCharacters);
+
+ HRESULT ( STDMETHODCALLTYPE *scrollSubstringTo )(
+ IAccessibleHypertext * This,
+ /* [in] */ long startIndex,
+ /* [in] */ long endIndex,
+ /* [in] */ enum IA2ScrollType scrollType);
+
+ HRESULT ( STDMETHODCALLTYPE *scrollSubstringToPoint )(
+ IAccessibleHypertext * This,
+ /* [in] */ long startIndex,
+ /* [in] */ long endIndex,
+ /* [in] */ enum IA2CoordinateType coordinateType,
+ /* [in] */ long x,
+ /* [in] */ long y);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_newText )(
+ IAccessibleHypertext * This,
+ /* [retval][out] */ IA2TextSegment *newText);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_oldText )(
+ IAccessibleHypertext * This,
+ /* [retval][out] */ IA2TextSegment *oldText);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nHyperlinks )(
+ IAccessibleHypertext * This,
+ /* [retval][out] */ long *hyperlinkCount);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_hyperlink )(
+ IAccessibleHypertext * This,
+ /* [in] */ long index,
+ /* [retval][out] */ IAccessibleHyperlink **hyperlink);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_hyperlinkIndex )(
+ IAccessibleHypertext * This,
+ /* [in] */ long charIndex,
+ /* [retval][out] */ long *hyperlinkIndex);
+
+ END_INTERFACE
+ } IAccessibleHypertextVtbl;
+
+ interface IAccessibleHypertext
+ {
+ CONST_VTBL struct IAccessibleHypertextVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleHypertext_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleHypertext_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleHypertext_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleHypertext_addSelection(This,startOffset,endOffset) \
+ ( (This)->lpVtbl -> addSelection(This,startOffset,endOffset) )
+
+#define IAccessibleHypertext_get_attributes(This,offset,startOffset,endOffset,textAttributes) \
+ ( (This)->lpVtbl -> get_attributes(This,offset,startOffset,endOffset,textAttributes) )
+
+#define IAccessibleHypertext_get_caretOffset(This,offset) \
+ ( (This)->lpVtbl -> get_caretOffset(This,offset) )
+
+#define IAccessibleHypertext_get_characterExtents(This,offset,coordType,x,y,width,height) \
+ ( (This)->lpVtbl -> get_characterExtents(This,offset,coordType,x,y,width,height) )
+
+#define IAccessibleHypertext_get_nSelections(This,nSelections) \
+ ( (This)->lpVtbl -> get_nSelections(This,nSelections) )
+
+#define IAccessibleHypertext_get_offsetAtPoint(This,x,y,coordType,offset) \
+ ( (This)->lpVtbl -> get_offsetAtPoint(This,x,y,coordType,offset) )
+
+#define IAccessibleHypertext_get_selection(This,selectionIndex,startOffset,endOffset) \
+ ( (This)->lpVtbl -> get_selection(This,selectionIndex,startOffset,endOffset) )
+
+#define IAccessibleHypertext_get_text(This,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_text(This,startOffset,endOffset,text) )
+
+#define IAccessibleHypertext_get_textBeforeOffset(This,offset,boundaryType,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_textBeforeOffset(This,offset,boundaryType,startOffset,endOffset,text) )
+
+#define IAccessibleHypertext_get_textAfterOffset(This,offset,boundaryType,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_textAfterOffset(This,offset,boundaryType,startOffset,endOffset,text) )
+
+#define IAccessibleHypertext_get_textAtOffset(This,offset,boundaryType,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_textAtOffset(This,offset,boundaryType,startOffset,endOffset,text) )
+
+#define IAccessibleHypertext_removeSelection(This,selectionIndex) \
+ ( (This)->lpVtbl -> removeSelection(This,selectionIndex) )
+
+#define IAccessibleHypertext_setCaretOffset(This,offset) \
+ ( (This)->lpVtbl -> setCaretOffset(This,offset) )
+
+#define IAccessibleHypertext_setSelection(This,selectionIndex,startOffset,endOffset) \
+ ( (This)->lpVtbl -> setSelection(This,selectionIndex,startOffset,endOffset) )
+
+#define IAccessibleHypertext_get_nCharacters(This,nCharacters) \
+ ( (This)->lpVtbl -> get_nCharacters(This,nCharacters) )
+
+#define IAccessibleHypertext_scrollSubstringTo(This,startIndex,endIndex,scrollType) \
+ ( (This)->lpVtbl -> scrollSubstringTo(This,startIndex,endIndex,scrollType) )
+
+#define IAccessibleHypertext_scrollSubstringToPoint(This,startIndex,endIndex,coordinateType,x,y) \
+ ( (This)->lpVtbl -> scrollSubstringToPoint(This,startIndex,endIndex,coordinateType,x,y) )
+
+#define IAccessibleHypertext_get_newText(This,newText) \
+ ( (This)->lpVtbl -> get_newText(This,newText) )
+
+#define IAccessibleHypertext_get_oldText(This,oldText) \
+ ( (This)->lpVtbl -> get_oldText(This,oldText) )
+
+
+#define IAccessibleHypertext_get_nHyperlinks(This,hyperlinkCount) \
+ ( (This)->lpVtbl -> get_nHyperlinks(This,hyperlinkCount) )
+
+#define IAccessibleHypertext_get_hyperlink(This,index,hyperlink) \
+ ( (This)->lpVtbl -> get_hyperlink(This,index,hyperlink) )
+
+#define IAccessibleHypertext_get_hyperlinkIndex(This,charIndex,hyperlinkIndex) \
+ ( (This)->lpVtbl -> get_hyperlinkIndex(This,charIndex,hyperlinkIndex) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleHypertext_INTERFACE_DEFINED__ */
+
+
+#ifndef __IAccessibleHypertext2_INTERFACE_DEFINED__
+#define __IAccessibleHypertext2_INTERFACE_DEFINED__
+
+/* interface IAccessibleHypertext2 */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleHypertext2;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("CF64D89F-8287-4B44-8501-A827453A6077")
+ IAccessibleHypertext2 : public IAccessibleHypertext
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_hyperlinks(
+ /* [size_is][size_is][out] */ IAccessibleHyperlink ***hyperlinks,
+ /* [retval][out] */ long *nHyperlinks) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct IAccessibleHypertext2Vtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleHypertext2 * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ __RPC__deref_out void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleHypertext2 * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleHypertext2 * This);
+
+ HRESULT ( STDMETHODCALLTYPE *addSelection )(
+ IAccessibleHypertext2 * This,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )(
+ IAccessibleHypertext2 * This,
+ /* [in] */ long offset,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *textAttributes);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_caretOffset )(
+ IAccessibleHypertext2 * This,
+ /* [retval][out] */ long *offset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_characterExtents )(
+ IAccessibleHypertext2 * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2CoordinateType coordType,
+ /* [out] */ long *x,
+ /* [out] */ long *y,
+ /* [out] */ long *width,
+ /* [retval][out] */ long *height);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelections )(
+ IAccessibleHypertext2 * This,
+ /* [retval][out] */ long *nSelections);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_offsetAtPoint )(
+ IAccessibleHypertext2 * This,
+ /* [in] */ long x,
+ /* [in] */ long y,
+ /* [in] */ enum IA2CoordinateType coordType,
+ /* [retval][out] */ long *offset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selection )(
+ IAccessibleHypertext2 * This,
+ /* [in] */ long selectionIndex,
+ /* [out] */ long *startOffset,
+ /* [retval][out] */ long *endOffset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_text )(
+ IAccessibleHypertext2 * This,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textBeforeOffset )(
+ IAccessibleHypertext2 * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAfterOffset )(
+ IAccessibleHypertext2 * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAtOffset )(
+ IAccessibleHypertext2 * This,
+ /* [in] */ long offset,
+ /* [in] */ enum IA2TextBoundaryType boundaryType,
+ /* [out] */ long *startOffset,
+ /* [out] */ long *endOffset,
+ /* [retval][out] */ BSTR *text);
+
+ HRESULT ( STDMETHODCALLTYPE *removeSelection )(
+ IAccessibleHypertext2 * This,
+ /* [in] */ long selectionIndex);
+
+ HRESULT ( STDMETHODCALLTYPE *setCaretOffset )(
+ IAccessibleHypertext2 * This,
+ /* [in] */ long offset);
+
+ HRESULT ( STDMETHODCALLTYPE *setSelection )(
+ IAccessibleHypertext2 * This,
+ /* [in] */ long selectionIndex,
+ /* [in] */ long startOffset,
+ /* [in] */ long endOffset);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nCharacters )(
+ IAccessibleHypertext2 * This,
+ /* [retval][out] */ long *nCharacters);
+
+ HRESULT ( STDMETHODCALLTYPE *scrollSubstringTo )(
+ IAccessibleHypertext2 * This,
+ /* [in] */ long startIndex,
+ /* [in] */ long endIndex,
+ /* [in] */ enum IA2ScrollType scrollType);
+
+ HRESULT ( STDMETHODCALLTYPE *scrollSubstringToPoint )(
+ IAccessibleHypertext2 * This,
+ /* [in] */ long startIndex,
+ /* [in] */ long endIndex,
+ /* [in] */ enum IA2CoordinateType coordinateType,
+ /* [in] */ long x,
+ /* [in] */ long y);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_newText )(
+ IAccessibleHypertext2 * This,
+ /* [retval][out] */ IA2TextSegment *newText);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_oldText )(
+ IAccessibleHypertext2 * This,
+ /* [retval][out] */ IA2TextSegment *oldText);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nHyperlinks )(
+ IAccessibleHypertext2 * This,
+ /* [retval][out] */ long *hyperlinkCount);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_hyperlink )(
+ IAccessibleHypertext2 * This,
+ /* [in] */ long index,
+ /* [retval][out] */ IAccessibleHyperlink **hyperlink);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_hyperlinkIndex )(
+ IAccessibleHypertext2 * This,
+ /* [in] */ long charIndex,
+ /* [retval][out] */ long *hyperlinkIndex);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_hyperlinks )(
+ IAccessibleHypertext2 * This,
+ /* [size_is][size_is][out] */ IAccessibleHyperlink ***hyperlinks,
+ /* [retval][out] */ long *nHyperlinks);
+
+ END_INTERFACE
+ } IAccessibleHypertext2Vtbl;
+
+ interface IAccessibleHypertext2
+ {
+ CONST_VTBL struct IAccessibleHypertext2Vtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleHypertext2_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleHypertext2_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleHypertext2_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleHypertext2_addSelection(This,startOffset,endOffset) \
+ ( (This)->lpVtbl -> addSelection(This,startOffset,endOffset) )
+
+#define IAccessibleHypertext2_get_attributes(This,offset,startOffset,endOffset,textAttributes) \
+ ( (This)->lpVtbl -> get_attributes(This,offset,startOffset,endOffset,textAttributes) )
+
+#define IAccessibleHypertext2_get_caretOffset(This,offset) \
+ ( (This)->lpVtbl -> get_caretOffset(This,offset) )
+
+#define IAccessibleHypertext2_get_characterExtents(This,offset,coordType,x,y,width,height) \
+ ( (This)->lpVtbl -> get_characterExtents(This,offset,coordType,x,y,width,height) )
+
+#define IAccessibleHypertext2_get_nSelections(This,nSelections) \
+ ( (This)->lpVtbl -> get_nSelections(This,nSelections) )
+
+#define IAccessibleHypertext2_get_offsetAtPoint(This,x,y,coordType,offset) \
+ ( (This)->lpVtbl -> get_offsetAtPoint(This,x,y,coordType,offset) )
+
+#define IAccessibleHypertext2_get_selection(This,selectionIndex,startOffset,endOffset) \
+ ( (This)->lpVtbl -> get_selection(This,selectionIndex,startOffset,endOffset) )
+
+#define IAccessibleHypertext2_get_text(This,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_text(This,startOffset,endOffset,text) )
+
+#define IAccessibleHypertext2_get_textBeforeOffset(This,offset,boundaryType,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_textBeforeOffset(This,offset,boundaryType,startOffset,endOffset,text) )
+
+#define IAccessibleHypertext2_get_textAfterOffset(This,offset,boundaryType,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_textAfterOffset(This,offset,boundaryType,startOffset,endOffset,text) )
+
+#define IAccessibleHypertext2_get_textAtOffset(This,offset,boundaryType,startOffset,endOffset,text) \
+ ( (This)->lpVtbl -> get_textAtOffset(This,offset,boundaryType,startOffset,endOffset,text) )
+
+#define IAccessibleHypertext2_removeSelection(This,selectionIndex) \
+ ( (This)->lpVtbl -> removeSelection(This,selectionIndex) )
+
+#define IAccessibleHypertext2_setCaretOffset(This,offset) \
+ ( (This)->lpVtbl -> setCaretOffset(This,offset) )
+
+#define IAccessibleHypertext2_setSelection(This,selectionIndex,startOffset,endOffset) \
+ ( (This)->lpVtbl -> setSelection(This,selectionIndex,startOffset,endOffset) )
+
+#define IAccessibleHypertext2_get_nCharacters(This,nCharacters) \
+ ( (This)->lpVtbl -> get_nCharacters(This,nCharacters) )
+
+#define IAccessibleHypertext2_scrollSubstringTo(This,startIndex,endIndex,scrollType) \
+ ( (This)->lpVtbl -> scrollSubstringTo(This,startIndex,endIndex,scrollType) )
+
+#define IAccessibleHypertext2_scrollSubstringToPoint(This,startIndex,endIndex,coordinateType,x,y) \
+ ( (This)->lpVtbl -> scrollSubstringToPoint(This,startIndex,endIndex,coordinateType,x,y) )
+
+#define IAccessibleHypertext2_get_newText(This,newText) \
+ ( (This)->lpVtbl -> get_newText(This,newText) )
+
+#define IAccessibleHypertext2_get_oldText(This,oldText) \
+ ( (This)->lpVtbl -> get_oldText(This,oldText) )
+
+
+#define IAccessibleHypertext2_get_nHyperlinks(This,hyperlinkCount) \
+ ( (This)->lpVtbl -> get_nHyperlinks(This,hyperlinkCount) )
+
+#define IAccessibleHypertext2_get_hyperlink(This,index,hyperlink) \
+ ( (This)->lpVtbl -> get_hyperlink(This,index,hyperlink) )
+
+#define IAccessibleHypertext2_get_hyperlinkIndex(This,charIndex,hyperlinkIndex) \
+ ( (This)->lpVtbl -> get_hyperlinkIndex(This,charIndex,hyperlinkIndex) )
+
+
+#define IAccessibleHypertext2_get_hyperlinks(This,hyperlinks,nHyperlinks) \
+ ( (This)->lpVtbl -> get_hyperlinks(This,hyperlinks,nHyperlinks) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleHypertext2_INTERFACE_DEFINED__ */
+
+
+#ifndef __IAccessibleTable_INTERFACE_DEFINED__
+#define __IAccessibleTable_INTERFACE_DEFINED__
+
+/* interface IAccessibleTable */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleTable;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("35AD8070-C20C-4fb4-B094-F4F7275DD469")
+ IAccessibleTable : public IUnknown
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_accessibleAt(
+ /* [in] */ long row,
+ /* [in] */ long column,
+ /* [retval][out] */ IUnknown **accessible) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_caption(
+ /* [retval][out] */ IUnknown **accessible) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_childIndex(
+ /* [in] */ long rowIndex,
+ /* [in] */ long columnIndex,
+ /* [retval][out] */ long *cellIndex) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnDescription(
+ /* [in] */ long column,
+ /* [retval][out] */ BSTR *description) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnExtentAt(
+ /* [in] */ long row,
+ /* [in] */ long column,
+ /* [retval][out] */ long *nColumnsSpanned) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnHeader(
+ /* [out] */ IAccessibleTable **accessibleTable,
+ /* [retval][out] */ long *startingRowIndex) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnIndex(
+ /* [in] */ long cellIndex,
+ /* [retval][out] */ long *columnIndex) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nColumns(
+ /* [retval][out] */ long *columnCount) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nRows(
+ /* [retval][out] */ long *rowCount) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nSelectedChildren(
+ /* [retval][out] */ long *cellCount) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nSelectedColumns(
+ /* [retval][out] */ long *columnCount) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nSelectedRows(
+ /* [retval][out] */ long *rowCount) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowDescription(
+ /* [in] */ long row,
+ /* [retval][out] */ BSTR *description) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowExtentAt(
+ /* [in] */ long row,
+ /* [in] */ long column,
+ /* [retval][out] */ long *nRowsSpanned) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowHeader(
+ /* [out] */ IAccessibleTable **accessibleTable,
+ /* [retval][out] */ long *startingColumnIndex) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowIndex(
+ /* [in] */ long cellIndex,
+ /* [retval][out] */ long *rowIndex) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selectedChildren(
+ /* [in] */ long maxChildren,
+ /* [length_is][length_is][size_is][size_is][out] */ long **children,
+ /* [retval][out] */ long *nChildren) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selectedColumns(
+ /* [in] */ long maxColumns,
+ /* [length_is][length_is][size_is][size_is][out] */ long **columns,
+ /* [retval][out] */ long *nColumns) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selectedRows(
+ /* [in] */ long maxRows,
+ /* [length_is][length_is][size_is][size_is][out] */ long **rows,
+ /* [retval][out] */ long *nRows) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_summary(
+ /* [retval][out] */ IUnknown **accessible) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_isColumnSelected(
+ /* [in] */ long column,
+ /* [retval][out] */ boolean *isSelected) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_isRowSelected(
+ /* [in] */ long row,
+ /* [retval][out] */ boolean *isSelected) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_isSelected(
+ /* [in] */ long row,
+ /* [in] */ long column,
+ /* [retval][out] */ boolean *isSelected) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE selectRow(
+ /* [in] */ long row) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE selectColumn(
+ /* [in] */ long column) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE unselectRow(
+ /* [in] */ long row) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE unselectColumn(
+ /* [in] */ long column) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowColumnExtentsAtIndex(
+ /* [in] */ long index,
+ /* [out] */ long *row,
+ /* [out] */ long *column,
+ /* [out] */ long *rowExtents,
+ /* [out] */ long *columnExtents,
+ /* [retval][out] */ boolean *isSelected) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_modelChange(
+ /* [retval][out] */ IA2TableModelChange *modelChange) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct IAccessibleTableVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleTable * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ __RPC__deref_out void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleTable * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleTable * This);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_accessibleAt )(
+ IAccessibleTable * This,
+ /* [in] */ long row,
+ /* [in] */ long column,
+ /* [retval][out] */ IUnknown **accessible);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_caption )(
+ IAccessibleTable * This,
+ /* [retval][out] */ IUnknown **accessible);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_childIndex )(
+ IAccessibleTable * This,
+ /* [in] */ long rowIndex,
+ /* [in] */ long columnIndex,
+ /* [retval][out] */ long *cellIndex);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnDescription )(
+ IAccessibleTable * This,
+ /* [in] */ long column,
+ /* [retval][out] */ BSTR *description);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnExtentAt )(
+ IAccessibleTable * This,
+ /* [in] */ long row,
+ /* [in] */ long column,
+ /* [retval][out] */ long *nColumnsSpanned);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnHeader )(
+ IAccessibleTable * This,
+ /* [out] */ IAccessibleTable **accessibleTable,
+ /* [retval][out] */ long *startingRowIndex);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnIndex )(
+ IAccessibleTable * This,
+ /* [in] */ long cellIndex,
+ /* [retval][out] */ long *columnIndex);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nColumns )(
+ IAccessibleTable * This,
+ /* [retval][out] */ long *columnCount);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nRows )(
+ IAccessibleTable * This,
+ /* [retval][out] */ long *rowCount);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelectedChildren )(
+ IAccessibleTable * This,
+ /* [retval][out] */ long *cellCount);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelectedColumns )(
+ IAccessibleTable * This,
+ /* [retval][out] */ long *columnCount);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelectedRows )(
+ IAccessibleTable * This,
+ /* [retval][out] */ long *rowCount);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowDescription )(
+ IAccessibleTable * This,
+ /* [in] */ long row,
+ /* [retval][out] */ BSTR *description);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowExtentAt )(
+ IAccessibleTable * This,
+ /* [in] */ long row,
+ /* [in] */ long column,
+ /* [retval][out] */ long *nRowsSpanned);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowHeader )(
+ IAccessibleTable * This,
+ /* [out] */ IAccessibleTable **accessibleTable,
+ /* [retval][out] */ long *startingColumnIndex);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowIndex )(
+ IAccessibleTable * This,
+ /* [in] */ long cellIndex,
+ /* [retval][out] */ long *rowIndex);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectedChildren )(
+ IAccessibleTable * This,
+ /* [in] */ long maxChildren,
+ /* [length_is][length_is][size_is][size_is][out] */ long **children,
+ /* [retval][out] */ long *nChildren);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectedColumns )(
+ IAccessibleTable * This,
+ /* [in] */ long maxColumns,
+ /* [length_is][length_is][size_is][size_is][out] */ long **columns,
+ /* [retval][out] */ long *nColumns);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectedRows )(
+ IAccessibleTable * This,
+ /* [in] */ long maxRows,
+ /* [length_is][length_is][size_is][size_is][out] */ long **rows,
+ /* [retval][out] */ long *nRows);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_summary )(
+ IAccessibleTable * This,
+ /* [retval][out] */ IUnknown **accessible);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isColumnSelected )(
+ IAccessibleTable * This,
+ /* [in] */ long column,
+ /* [retval][out] */ boolean *isSelected);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isRowSelected )(
+ IAccessibleTable * This,
+ /* [in] */ long row,
+ /* [retval][out] */ boolean *isSelected);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isSelected )(
+ IAccessibleTable * This,
+ /* [in] */ long row,
+ /* [in] */ long column,
+ /* [retval][out] */ boolean *isSelected);
+
+ HRESULT ( STDMETHODCALLTYPE *selectRow )(
+ IAccessibleTable * This,
+ /* [in] */ long row);
+
+ HRESULT ( STDMETHODCALLTYPE *selectColumn )(
+ IAccessibleTable * This,
+ /* [in] */ long column);
+
+ HRESULT ( STDMETHODCALLTYPE *unselectRow )(
+ IAccessibleTable * This,
+ /* [in] */ long row);
+
+ HRESULT ( STDMETHODCALLTYPE *unselectColumn )(
+ IAccessibleTable * This,
+ /* [in] */ long column);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowColumnExtentsAtIndex )(
+ IAccessibleTable * This,
+ /* [in] */ long index,
+ /* [out] */ long *row,
+ /* [out] */ long *column,
+ /* [out] */ long *rowExtents,
+ /* [out] */ long *columnExtents,
+ /* [retval][out] */ boolean *isSelected);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_modelChange )(
+ IAccessibleTable * This,
+ /* [retval][out] */ IA2TableModelChange *modelChange);
+
+ END_INTERFACE
+ } IAccessibleTableVtbl;
+
+ interface IAccessibleTable
+ {
+ CONST_VTBL struct IAccessibleTableVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleTable_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleTable_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleTable_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleTable_get_accessibleAt(This,row,column,accessible) \
+ ( (This)->lpVtbl -> get_accessibleAt(This,row,column,accessible) )
+
+#define IAccessibleTable_get_caption(This,accessible) \
+ ( (This)->lpVtbl -> get_caption(This,accessible) )
+
+#define IAccessibleTable_get_childIndex(This,rowIndex,columnIndex,cellIndex) \
+ ( (This)->lpVtbl -> get_childIndex(This,rowIndex,columnIndex,cellIndex) )
+
+#define IAccessibleTable_get_columnDescription(This,column,description) \
+ ( (This)->lpVtbl -> get_columnDescription(This,column,description) )
+
+#define IAccessibleTable_get_columnExtentAt(This,row,column,nColumnsSpanned) \
+ ( (This)->lpVtbl -> get_columnExtentAt(This,row,column,nColumnsSpanned) )
+
+#define IAccessibleTable_get_columnHeader(This,accessibleTable,startingRowIndex) \
+ ( (This)->lpVtbl -> get_columnHeader(This,accessibleTable,startingRowIndex) )
+
+#define IAccessibleTable_get_columnIndex(This,cellIndex,columnIndex) \
+ ( (This)->lpVtbl -> get_columnIndex(This,cellIndex,columnIndex) )
+
+#define IAccessibleTable_get_nColumns(This,columnCount) \
+ ( (This)->lpVtbl -> get_nColumns(This,columnCount) )
+
+#define IAccessibleTable_get_nRows(This,rowCount) \
+ ( (This)->lpVtbl -> get_nRows(This,rowCount) )
+
+#define IAccessibleTable_get_nSelectedChildren(This,cellCount) \
+ ( (This)->lpVtbl -> get_nSelectedChildren(This,cellCount) )
+
+#define IAccessibleTable_get_nSelectedColumns(This,columnCount) \
+ ( (This)->lpVtbl -> get_nSelectedColumns(This,columnCount) )
+
+#define IAccessibleTable_get_nSelectedRows(This,rowCount) \
+ ( (This)->lpVtbl -> get_nSelectedRows(This,rowCount) )
+
+#define IAccessibleTable_get_rowDescription(This,row,description) \
+ ( (This)->lpVtbl -> get_rowDescription(This,row,description) )
+
+#define IAccessibleTable_get_rowExtentAt(This,row,column,nRowsSpanned) \
+ ( (This)->lpVtbl -> get_rowExtentAt(This,row,column,nRowsSpanned) )
+
+#define IAccessibleTable_get_rowHeader(This,accessibleTable,startingColumnIndex) \
+ ( (This)->lpVtbl -> get_rowHeader(This,accessibleTable,startingColumnIndex) )
+
+#define IAccessibleTable_get_rowIndex(This,cellIndex,rowIndex) \
+ ( (This)->lpVtbl -> get_rowIndex(This,cellIndex,rowIndex) )
+
+#define IAccessibleTable_get_selectedChildren(This,maxChildren,children,nChildren) \
+ ( (This)->lpVtbl -> get_selectedChildren(This,maxChildren,children,nChildren) )
+
+#define IAccessibleTable_get_selectedColumns(This,maxColumns,columns,nColumns) \
+ ( (This)->lpVtbl -> get_selectedColumns(This,maxColumns,columns,nColumns) )
+
+#define IAccessibleTable_get_selectedRows(This,maxRows,rows,nRows) \
+ ( (This)->lpVtbl -> get_selectedRows(This,maxRows,rows,nRows) )
+
+#define IAccessibleTable_get_summary(This,accessible) \
+ ( (This)->lpVtbl -> get_summary(This,accessible) )
+
+#define IAccessibleTable_get_isColumnSelected(This,column,isSelected) \
+ ( (This)->lpVtbl -> get_isColumnSelected(This,column,isSelected) )
+
+#define IAccessibleTable_get_isRowSelected(This,row,isSelected) \
+ ( (This)->lpVtbl -> get_isRowSelected(This,row,isSelected) )
+
+#define IAccessibleTable_get_isSelected(This,row,column,isSelected) \
+ ( (This)->lpVtbl -> get_isSelected(This,row,column,isSelected) )
+
+#define IAccessibleTable_selectRow(This,row) \
+ ( (This)->lpVtbl -> selectRow(This,row) )
+
+#define IAccessibleTable_selectColumn(This,column) \
+ ( (This)->lpVtbl -> selectColumn(This,column) )
+
+#define IAccessibleTable_unselectRow(This,row) \
+ ( (This)->lpVtbl -> unselectRow(This,row) )
+
+#define IAccessibleTable_unselectColumn(This,column) \
+ ( (This)->lpVtbl -> unselectColumn(This,column) )
+
+#define IAccessibleTable_get_rowColumnExtentsAtIndex(This,index,row,column,rowExtents,columnExtents,isSelected) \
+ ( (This)->lpVtbl -> get_rowColumnExtentsAtIndex(This,index,row,column,rowExtents,columnExtents,isSelected) )
+
+#define IAccessibleTable_get_modelChange(This,modelChange) \
+ ( (This)->lpVtbl -> get_modelChange(This,modelChange) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleTable_INTERFACE_DEFINED__ */
+
+
+#ifndef __IAccessibleTable2_INTERFACE_DEFINED__
+#define __IAccessibleTable2_INTERFACE_DEFINED__
+
+/* interface IAccessibleTable2 */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleTable2;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("6167f295-06f0-4cdd-a1fa-02e25153d869")
+ IAccessibleTable2 : public IUnknown
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_cellAt(
+ /* [in] */ long row,
+ /* [in] */ long column,
+ /* [retval][out] */ IUnknown **cell) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_caption(
+ /* [retval][out] */ IUnknown **accessible) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnDescription(
+ /* [in] */ long column,
+ /* [retval][out] */ BSTR *description) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nColumns(
+ /* [retval][out] */ long *columnCount) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nRows(
+ /* [retval][out] */ long *rowCount) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nSelectedCells(
+ /* [retval][out] */ long *cellCount) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nSelectedColumns(
+ /* [retval][out] */ long *columnCount) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_nSelectedRows(
+ /* [retval][out] */ long *rowCount) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowDescription(
+ /* [in] */ long row,
+ /* [retval][out] */ BSTR *description) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selectedCells(
+ /* [size_is][size_is][out] */ IUnknown ***cells,
+ /* [retval][out] */ long *nSelectedCells) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selectedColumns(
+ /* [size_is][size_is][out] */ long **selectedColumns,
+ /* [retval][out] */ long *nColumns) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_selectedRows(
+ /* [size_is][size_is][out] */ long **selectedRows,
+ /* [retval][out] */ long *nRows) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_summary(
+ /* [retval][out] */ IUnknown **accessible) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_isColumnSelected(
+ /* [in] */ long column,
+ /* [retval][out] */ boolean *isSelected) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_isRowSelected(
+ /* [in] */ long row,
+ /* [retval][out] */ boolean *isSelected) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE selectRow(
+ /* [in] */ long row) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE selectColumn(
+ /* [in] */ long column) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE unselectRow(
+ /* [in] */ long row) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE unselectColumn(
+ /* [in] */ long column) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_modelChange(
+ /* [retval][out] */ IA2TableModelChange *modelChange) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct IAccessibleTable2Vtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleTable2 * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ __RPC__deref_out void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleTable2 * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleTable2 * This);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_cellAt )(
+ IAccessibleTable2 * This,
+ /* [in] */ long row,
+ /* [in] */ long column,
+ /* [retval][out] */ IUnknown **cell);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_caption )(
+ IAccessibleTable2 * This,
+ /* [retval][out] */ IUnknown **accessible);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnDescription )(
+ IAccessibleTable2 * This,
+ /* [in] */ long column,
+ /* [retval][out] */ BSTR *description);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nColumns )(
+ IAccessibleTable2 * This,
+ /* [retval][out] */ long *columnCount);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nRows )(
+ IAccessibleTable2 * This,
+ /* [retval][out] */ long *rowCount);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelectedCells )(
+ IAccessibleTable2 * This,
+ /* [retval][out] */ long *cellCount);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelectedColumns )(
+ IAccessibleTable2 * This,
+ /* [retval][out] */ long *columnCount);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelectedRows )(
+ IAccessibleTable2 * This,
+ /* [retval][out] */ long *rowCount);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowDescription )(
+ IAccessibleTable2 * This,
+ /* [in] */ long row,
+ /* [retval][out] */ BSTR *description);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectedCells )(
+ IAccessibleTable2 * This,
+ /* [size_is][size_is][out] */ IUnknown ***cells,
+ /* [retval][out] */ long *nSelectedCells);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectedColumns )(
+ IAccessibleTable2 * This,
+ /* [size_is][size_is][out] */ long **selectedColumns,
+ /* [retval][out] */ long *nColumns);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectedRows )(
+ IAccessibleTable2 * This,
+ /* [size_is][size_is][out] */ long **selectedRows,
+ /* [retval][out] */ long *nRows);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_summary )(
+ IAccessibleTable2 * This,
+ /* [retval][out] */ IUnknown **accessible);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isColumnSelected )(
+ IAccessibleTable2 * This,
+ /* [in] */ long column,
+ /* [retval][out] */ boolean *isSelected);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isRowSelected )(
+ IAccessibleTable2 * This,
+ /* [in] */ long row,
+ /* [retval][out] */ boolean *isSelected);
+
+ HRESULT ( STDMETHODCALLTYPE *selectRow )(
+ IAccessibleTable2 * This,
+ /* [in] */ long row);
+
+ HRESULT ( STDMETHODCALLTYPE *selectColumn )(
+ IAccessibleTable2 * This,
+ /* [in] */ long column);
+
+ HRESULT ( STDMETHODCALLTYPE *unselectRow )(
+ IAccessibleTable2 * This,
+ /* [in] */ long row);
+
+ HRESULT ( STDMETHODCALLTYPE *unselectColumn )(
+ IAccessibleTable2 * This,
+ /* [in] */ long column);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_modelChange )(
+ IAccessibleTable2 * This,
+ /* [retval][out] */ IA2TableModelChange *modelChange);
+
+ END_INTERFACE
+ } IAccessibleTable2Vtbl;
+
+ interface IAccessibleTable2
+ {
+ CONST_VTBL struct IAccessibleTable2Vtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleTable2_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleTable2_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleTable2_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleTable2_get_cellAt(This,row,column,cell) \
+ ( (This)->lpVtbl -> get_cellAt(This,row,column,cell) )
+
+#define IAccessibleTable2_get_caption(This,accessible) \
+ ( (This)->lpVtbl -> get_caption(This,accessible) )
+
+#define IAccessibleTable2_get_columnDescription(This,column,description) \
+ ( (This)->lpVtbl -> get_columnDescription(This,column,description) )
+
+#define IAccessibleTable2_get_nColumns(This,columnCount) \
+ ( (This)->lpVtbl -> get_nColumns(This,columnCount) )
+
+#define IAccessibleTable2_get_nRows(This,rowCount) \
+ ( (This)->lpVtbl -> get_nRows(This,rowCount) )
+
+#define IAccessibleTable2_get_nSelectedCells(This,cellCount) \
+ ( (This)->lpVtbl -> get_nSelectedCells(This,cellCount) )
+
+#define IAccessibleTable2_get_nSelectedColumns(This,columnCount) \
+ ( (This)->lpVtbl -> get_nSelectedColumns(This,columnCount) )
+
+#define IAccessibleTable2_get_nSelectedRows(This,rowCount) \
+ ( (This)->lpVtbl -> get_nSelectedRows(This,rowCount) )
+
+#define IAccessibleTable2_get_rowDescription(This,row,description) \
+ ( (This)->lpVtbl -> get_rowDescription(This,row,description) )
+
+#define IAccessibleTable2_get_selectedCells(This,cells,nSelectedCells) \
+ ( (This)->lpVtbl -> get_selectedCells(This,cells,nSelectedCells) )
+
+#define IAccessibleTable2_get_selectedColumns(This,selectedColumns,nColumns) \
+ ( (This)->lpVtbl -> get_selectedColumns(This,selectedColumns,nColumns) )
+
+#define IAccessibleTable2_get_selectedRows(This,selectedRows,nRows) \
+ ( (This)->lpVtbl -> get_selectedRows(This,selectedRows,nRows) )
+
+#define IAccessibleTable2_get_summary(This,accessible) \
+ ( (This)->lpVtbl -> get_summary(This,accessible) )
+
+#define IAccessibleTable2_get_isColumnSelected(This,column,isSelected) \
+ ( (This)->lpVtbl -> get_isColumnSelected(This,column,isSelected) )
+
+#define IAccessibleTable2_get_isRowSelected(This,row,isSelected) \
+ ( (This)->lpVtbl -> get_isRowSelected(This,row,isSelected) )
+
+#define IAccessibleTable2_selectRow(This,row) \
+ ( (This)->lpVtbl -> selectRow(This,row) )
+
+#define IAccessibleTable2_selectColumn(This,column) \
+ ( (This)->lpVtbl -> selectColumn(This,column) )
+
+#define IAccessibleTable2_unselectRow(This,row) \
+ ( (This)->lpVtbl -> unselectRow(This,row) )
+
+#define IAccessibleTable2_unselectColumn(This,column) \
+ ( (This)->lpVtbl -> unselectColumn(This,column) )
+
+#define IAccessibleTable2_get_modelChange(This,modelChange) \
+ ( (This)->lpVtbl -> get_modelChange(This,modelChange) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleTable2_INTERFACE_DEFINED__ */
+
+
+#ifndef __IAccessibleTableCell_INTERFACE_DEFINED__
+#define __IAccessibleTableCell_INTERFACE_DEFINED__
+
+/* interface IAccessibleTableCell */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleTableCell;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("594116B1-C99F-4847-AD06-0A7A86ECE645")
+ IAccessibleTableCell : public IUnknown
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnExtent(
+ /* [retval][out] */ long *nColumnsSpanned) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnHeaderCells(
+ /* [size_is][size_is][out] */ IUnknown ***cellAccessibles,
+ /* [retval][out] */ long *nColumnHeaderCells) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_columnIndex(
+ /* [retval][out] */ long *columnIndex) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowExtent(
+ /* [retval][out] */ long *nRowsSpanned) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowHeaderCells(
+ /* [size_is][size_is][out] */ IUnknown ***cellAccessibles,
+ /* [retval][out] */ long *nRowHeaderCells) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowIndex(
+ /* [retval][out] */ long *rowIndex) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_isSelected(
+ /* [retval][out] */ boolean *isSelected) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_rowColumnExtents(
+ /* [out] */ long *row,
+ /* [out] */ long *column,
+ /* [out] */ long *rowExtents,
+ /* [out] */ long *columnExtents,
+ /* [retval][out] */ boolean *isSelected) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_table(
+ /* [retval][out] */ IUnknown **table) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct IAccessibleTableCellVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleTableCell * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ __RPC__deref_out void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleTableCell * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleTableCell * This);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnExtent )(
+ IAccessibleTableCell * This,
+ /* [retval][out] */ long *nColumnsSpanned);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnHeaderCells )(
+ IAccessibleTableCell * This,
+ /* [size_is][size_is][out] */ IUnknown ***cellAccessibles,
+ /* [retval][out] */ long *nColumnHeaderCells);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnIndex )(
+ IAccessibleTableCell * This,
+ /* [retval][out] */ long *columnIndex);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowExtent )(
+ IAccessibleTableCell * This,
+ /* [retval][out] */ long *nRowsSpanned);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowHeaderCells )(
+ IAccessibleTableCell * This,
+ /* [size_is][size_is][out] */ IUnknown ***cellAccessibles,
+ /* [retval][out] */ long *nRowHeaderCells);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowIndex )(
+ IAccessibleTableCell * This,
+ /* [retval][out] */ long *rowIndex);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isSelected )(
+ IAccessibleTableCell * This,
+ /* [retval][out] */ boolean *isSelected);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowColumnExtents )(
+ IAccessibleTableCell * This,
+ /* [out] */ long *row,
+ /* [out] */ long *column,
+ /* [out] */ long *rowExtents,
+ /* [out] */ long *columnExtents,
+ /* [retval][out] */ boolean *isSelected);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_table )(
+ IAccessibleTableCell * This,
+ /* [retval][out] */ IUnknown **table);
+
+ END_INTERFACE
+ } IAccessibleTableCellVtbl;
+
+ interface IAccessibleTableCell
+ {
+ CONST_VTBL struct IAccessibleTableCellVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleTableCell_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleTableCell_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleTableCell_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleTableCell_get_columnExtent(This,nColumnsSpanned) \
+ ( (This)->lpVtbl -> get_columnExtent(This,nColumnsSpanned) )
+
+#define IAccessibleTableCell_get_columnHeaderCells(This,cellAccessibles,nColumnHeaderCells) \
+ ( (This)->lpVtbl -> get_columnHeaderCells(This,cellAccessibles,nColumnHeaderCells) )
+
+#define IAccessibleTableCell_get_columnIndex(This,columnIndex) \
+ ( (This)->lpVtbl -> get_columnIndex(This,columnIndex) )
+
+#define IAccessibleTableCell_get_rowExtent(This,nRowsSpanned) \
+ ( (This)->lpVtbl -> get_rowExtent(This,nRowsSpanned) )
+
+#define IAccessibleTableCell_get_rowHeaderCells(This,cellAccessibles,nRowHeaderCells) \
+ ( (This)->lpVtbl -> get_rowHeaderCells(This,cellAccessibles,nRowHeaderCells) )
+
+#define IAccessibleTableCell_get_rowIndex(This,rowIndex) \
+ ( (This)->lpVtbl -> get_rowIndex(This,rowIndex) )
+
+#define IAccessibleTableCell_get_isSelected(This,isSelected) \
+ ( (This)->lpVtbl -> get_isSelected(This,isSelected) )
+
+#define IAccessibleTableCell_get_rowColumnExtents(This,row,column,rowExtents,columnExtents,isSelected) \
+ ( (This)->lpVtbl -> get_rowColumnExtents(This,row,column,rowExtents,columnExtents,isSelected) )
+
+#define IAccessibleTableCell_get_table(This,table) \
+ ( (This)->lpVtbl -> get_table(This,table) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleTableCell_INTERFACE_DEFINED__ */
+
+
+#ifndef __IAccessibleImage_INTERFACE_DEFINED__
+#define __IAccessibleImage_INTERFACE_DEFINED__
+
+/* interface IAccessibleImage */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleImage;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("FE5ABB3D-615E-4f7b-909F-5F0EDA9E8DDE")
+ IAccessibleImage : public IUnknown
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_description(
+ /* [retval][out] */ BSTR *description) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_imagePosition(
+ /* [in] */ enum IA2CoordinateType coordinateType,
+ /* [out] */ long *x,
+ /* [retval][out] */ long *y) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_imageSize(
+ /* [out] */ long *height,
+ /* [retval][out] */ long *width) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct IAccessibleImageVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleImage * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ __RPC__deref_out void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleImage * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleImage * This);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_description )(
+ IAccessibleImage * This,
+ /* [retval][out] */ BSTR *description);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_imagePosition )(
+ IAccessibleImage * This,
+ /* [in] */ enum IA2CoordinateType coordinateType,
+ /* [out] */ long *x,
+ /* [retval][out] */ long *y);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_imageSize )(
+ IAccessibleImage * This,
+ /* [out] */ long *height,
+ /* [retval][out] */ long *width);
+
+ END_INTERFACE
+ } IAccessibleImageVtbl;
+
+ interface IAccessibleImage
+ {
+ CONST_VTBL struct IAccessibleImageVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleImage_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleImage_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleImage_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleImage_get_description(This,description) \
+ ( (This)->lpVtbl -> get_description(This,description) )
+
+#define IAccessibleImage_get_imagePosition(This,coordinateType,x,y) \
+ ( (This)->lpVtbl -> get_imagePosition(This,coordinateType,x,y) )
+
+#define IAccessibleImage_get_imageSize(This,height,width) \
+ ( (This)->lpVtbl -> get_imageSize(This,height,width) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleImage_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_ia2_api_all_0000_0016 */
+/* [local] */
+
+
+enum IA2EventID
+ { IA2_EVENT_ACTION_CHANGED = 0x101,
+ IA2_EVENT_ACTIVE_DECENDENT_CHANGED = ( IA2_EVENT_ACTION_CHANGED + 1 ) ,
+ IA2_EVENT_ACTIVE_DESCENDANT_CHANGED = IA2_EVENT_ACTIVE_DECENDENT_CHANGED,
+ IA2_EVENT_DOCUMENT_ATTRIBUTE_CHANGED = ( IA2_EVENT_ACTIVE_DESCENDANT_CHANGED + 1 ) ,
+ IA2_EVENT_DOCUMENT_CONTENT_CHANGED = ( IA2_EVENT_DOCUMENT_ATTRIBUTE_CHANGED + 1 ) ,
+ IA2_EVENT_DOCUMENT_LOAD_COMPLETE = ( IA2_EVENT_DOCUMENT_CONTENT_CHANGED + 1 ) ,
+ IA2_EVENT_DOCUMENT_LOAD_STOPPED = ( IA2_EVENT_DOCUMENT_LOAD_COMPLETE + 1 ) ,
+ IA2_EVENT_DOCUMENT_RELOAD = ( IA2_EVENT_DOCUMENT_LOAD_STOPPED + 1 ) ,
+ IA2_EVENT_HYPERLINK_END_INDEX_CHANGED = ( IA2_EVENT_DOCUMENT_RELOAD + 1 ) ,
+ IA2_EVENT_HYPERLINK_NUMBER_OF_ANCHORS_CHANGED = ( IA2_EVENT_HYPERLINK_END_INDEX_CHANGED + 1 ) ,
+ IA2_EVENT_HYPERLINK_SELECTED_LINK_CHANGED = ( IA2_EVENT_HYPERLINK_NUMBER_OF_ANCHORS_CHANGED + 1 ) ,
+ IA2_EVENT_HYPERTEXT_LINK_ACTIVATED = ( IA2_EVENT_HYPERLINK_SELECTED_LINK_CHANGED + 1 ) ,
+ IA2_EVENT_HYPERTEXT_LINK_SELECTED = ( IA2_EVENT_HYPERTEXT_LINK_ACTIVATED + 1 ) ,
+ IA2_EVENT_HYPERLINK_START_INDEX_CHANGED = ( IA2_EVENT_HYPERTEXT_LINK_SELECTED + 1 ) ,
+ IA2_EVENT_HYPERTEXT_CHANGED = ( IA2_EVENT_HYPERLINK_START_INDEX_CHANGED + 1 ) ,
+ IA2_EVENT_HYPERTEXT_NLINKS_CHANGED = ( IA2_EVENT_HYPERTEXT_CHANGED + 1 ) ,
+ IA2_EVENT_OBJECT_ATTRIBUTE_CHANGED = ( IA2_EVENT_HYPERTEXT_NLINKS_CHANGED + 1 ) ,
+ IA2_EVENT_PAGE_CHANGED = ( IA2_EVENT_OBJECT_ATTRIBUTE_CHANGED + 1 ) ,
+ IA2_EVENT_SECTION_CHANGED = ( IA2_EVENT_PAGE_CHANGED + 1 ) ,
+ IA2_EVENT_TABLE_CAPTION_CHANGED = ( IA2_EVENT_SECTION_CHANGED + 1 ) ,
+ IA2_EVENT_TABLE_COLUMN_DESCRIPTION_CHANGED = ( IA2_EVENT_TABLE_CAPTION_CHANGED + 1 ) ,
+ IA2_EVENT_TABLE_COLUMN_HEADER_CHANGED = ( IA2_EVENT_TABLE_COLUMN_DESCRIPTION_CHANGED + 1 ) ,
+ IA2_EVENT_TABLE_MODEL_CHANGED = ( IA2_EVENT_TABLE_COLUMN_HEADER_CHANGED + 1 ) ,
+ IA2_EVENT_TABLE_ROW_DESCRIPTION_CHANGED = ( IA2_EVENT_TABLE_MODEL_CHANGED + 1 ) ,
+ IA2_EVENT_TABLE_ROW_HEADER_CHANGED = ( IA2_EVENT_TABLE_ROW_DESCRIPTION_CHANGED + 1 ) ,
+ IA2_EVENT_TABLE_SUMMARY_CHANGED = ( IA2_EVENT_TABLE_ROW_HEADER_CHANGED + 1 ) ,
+ IA2_EVENT_TEXT_ATTRIBUTE_CHANGED = ( IA2_EVENT_TABLE_SUMMARY_CHANGED + 1 ) ,
+ IA2_EVENT_TEXT_CARET_MOVED = ( IA2_EVENT_TEXT_ATTRIBUTE_CHANGED + 1 ) ,
+ IA2_EVENT_TEXT_CHANGED = ( IA2_EVENT_TEXT_CARET_MOVED + 1 ) ,
+ IA2_EVENT_TEXT_COLUMN_CHANGED = ( IA2_EVENT_TEXT_CHANGED + 1 ) ,
+ IA2_EVENT_TEXT_INSERTED = ( IA2_EVENT_TEXT_COLUMN_CHANGED + 1 ) ,
+ IA2_EVENT_TEXT_REMOVED = ( IA2_EVENT_TEXT_INSERTED + 1 ) ,
+ IA2_EVENT_TEXT_UPDATED = ( IA2_EVENT_TEXT_REMOVED + 1 ) ,
+ IA2_EVENT_TEXT_SELECTION_CHANGED = ( IA2_EVENT_TEXT_UPDATED + 1 ) ,
+ IA2_EVENT_VISIBLE_DATA_CHANGED = ( IA2_EVENT_TEXT_SELECTION_CHANGED + 1 )
+ } ;
+
+
+extern RPC_IF_HANDLE __MIDL_itf_ia2_api_all_0000_0016_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_ia2_api_all_0000_0016_v0_0_s_ifspec;
+
+#ifndef __IAccessibleApplication_INTERFACE_DEFINED__
+#define __IAccessibleApplication_INTERFACE_DEFINED__
+
+/* interface IAccessibleApplication */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleApplication;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("D49DED83-5B25-43F4-9B95-93B44595979E")
+ IAccessibleApplication : public IUnknown
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_appName(
+ /* [retval][out] */ BSTR *name) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_appVersion(
+ /* [retval][out] */ BSTR *version) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_toolkitName(
+ /* [retval][out] */ BSTR *name) = 0;
+
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_toolkitVersion(
+ /* [retval][out] */ BSTR *version) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct IAccessibleApplicationVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleApplication * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ __RPC__deref_out void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleApplication * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleApplication * This);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_appName )(
+ IAccessibleApplication * This,
+ /* [retval][out] */ BSTR *name);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_appVersion )(
+ IAccessibleApplication * This,
+ /* [retval][out] */ BSTR *version);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_toolkitName )(
+ IAccessibleApplication * This,
+ /* [retval][out] */ BSTR *name);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_toolkitVersion )(
+ IAccessibleApplication * This,
+ /* [retval][out] */ BSTR *version);
+
+ END_INTERFACE
+ } IAccessibleApplicationVtbl;
+
+ interface IAccessibleApplication
+ {
+ CONST_VTBL struct IAccessibleApplicationVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleApplication_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleApplication_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleApplication_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleApplication_get_appName(This,name) \
+ ( (This)->lpVtbl -> get_appName(This,name) )
+
+#define IAccessibleApplication_get_appVersion(This,version) \
+ ( (This)->lpVtbl -> get_appVersion(This,version) )
+
+#define IAccessibleApplication_get_toolkitName(This,name) \
+ ( (This)->lpVtbl -> get_toolkitName(This,name) )
+
+#define IAccessibleApplication_get_toolkitVersion(This,version) \
+ ( (This)->lpVtbl -> get_toolkitVersion(This,version) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleApplication_INTERFACE_DEFINED__ */
+
+
+#ifndef __IAccessibleDocument_INTERFACE_DEFINED__
+#define __IAccessibleDocument_INTERFACE_DEFINED__
+
+/* interface IAccessibleDocument */
+/* [uuid][object] */
+
+
+EXTERN_C const IID IID_IAccessibleDocument;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("C48C7FCF-4AB5-4056-AFA6-902D6E1D1149")
+ IAccessibleDocument : public IUnknown
+ {
+ public:
+ virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_anchorTarget(
+ /* [retval][out] */ IUnknown **accessible) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct IAccessibleDocumentVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAccessibleDocument * This,
+ /* [in] */ REFIID riid,
+ /* [annotation][iid_is][out] */
+ __RPC__deref_out void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAccessibleDocument * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAccessibleDocument * This);
+
+ /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_anchorTarget )(
+ IAccessibleDocument * This,
+ /* [retval][out] */ IUnknown **accessible);
+
+ END_INTERFACE
+ } IAccessibleDocumentVtbl;
+
+ interface IAccessibleDocument
+ {
+ CONST_VTBL struct IAccessibleDocumentVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAccessibleDocument_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAccessibleDocument_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAccessibleDocument_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAccessibleDocument_get_anchorTarget(This,accessible) \
+ ( (This)->lpVtbl -> get_anchorTarget(This,accessible) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAccessibleDocument_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_ia2_api_all_0000_0018 */
+/* [local] */
+
+
+// Type Library Definitions
+
+
+
+extern RPC_IF_HANDLE __MIDL_itf_ia2_api_all_0000_0018_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_ia2_api_all_0000_0018_v0_0_s_ifspec;
+
+
+#ifndef __IAccessible2Lib_LIBRARY_DEFINED__
+#define __IAccessible2Lib_LIBRARY_DEFINED__
+
+/* library IAccessible2Lib */
+/* [hidden][version][helpstring][uuid] */
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+EXTERN_C const IID LIBID_IAccessible2Lib;
+#endif /* __IAccessible2Lib_LIBRARY_DEFINED__ */
+
+/* Additional Prototypes for ALL interfaces */
+
+unsigned long __RPC_USER BSTR_UserSize( unsigned long *, unsigned long , BSTR * );
+unsigned char * __RPC_USER BSTR_UserMarshal( unsigned long *, unsigned char *, BSTR * );
+unsigned char * __RPC_USER BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * );
+void __RPC_USER BSTR_UserFree( unsigned long *, BSTR * );
+
+unsigned long __RPC_USER HWND_UserSize( unsigned long *, unsigned long , HWND * );
+unsigned char * __RPC_USER HWND_UserMarshal( unsigned long *, unsigned char *, HWND * );
+unsigned char * __RPC_USER HWND_UserUnmarshal(unsigned long *, unsigned char *, HWND * );
+void __RPC_USER HWND_UserFree( unsigned long *, HWND * );
+
+unsigned long __RPC_USER VARIANT_UserSize( unsigned long *, unsigned long , VARIANT * );
+unsigned char * __RPC_USER VARIANT_UserMarshal( unsigned long *, unsigned char *, VARIANT * );
+unsigned char * __RPC_USER VARIANT_UserUnmarshal(unsigned long *, unsigned char *, VARIANT * );
+void __RPC_USER VARIANT_UserFree( unsigned long *, VARIANT * );
+
+/* end of Additional Prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+
diff --git a/src/3rdparty/iaccessible2/generated/x86/ia2_api_all.tlb b/src/3rdparty/iaccessible2/generated/x86/ia2_api_all.tlb
new file mode 100644
index 0000000000..061ead5903
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/x86/ia2_api_all.tlb
Binary files differ
diff --git a/src/3rdparty/iaccessible2/generated/x86/ia2_api_all_i.c b/src/3rdparty/iaccessible2/generated/x86/ia2_api_all_i.c
new file mode 100644
index 0000000000..c50b3e9a4f
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/x86/ia2_api_all_i.c
@@ -0,0 +1,133 @@
+
+
+/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
+
+/* link this file in with the server and any clients */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Mon Aug 11 14:34:41 2014
+ */
+/* Compiler settings for ia2_api_all.idl:
+ Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+#include <rpc.h>
+#include <rpcndr.h>
+
+#ifdef _MIDL_USE_GUIDDEF_
+
+#ifndef INITGUID
+#define INITGUID
+#include <guiddef.h>
+#undef INITGUID
+#else
+#include <guiddef.h>
+#endif
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
+
+#else // !_MIDL_USE_GUIDDEF_
+
+#ifndef __IID_DEFINED__
+#define __IID_DEFINED__
+
+typedef struct _IID
+{
+ unsigned long x;
+ unsigned short s1;
+ unsigned short s2;
+ unsigned char c[8];
+} IID;
+
+#endif // __IID_DEFINED__
+
+#ifndef CLSID_DEFINED
+#define CLSID_DEFINED
+typedef IID CLSID;
+#endif // CLSID_DEFINED
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+ const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
+
+#endif !_MIDL_USE_GUIDDEF_
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleRelation,0x7CDF86EE,0xC3DA,0x496a,0xBD,0xA4,0x28,0x1B,0x33,0x6E,0x1F,0xDC);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleAction,0xB70D9F59,0x3B5A,0x4dba,0xAB,0x9E,0x22,0x01,0x2F,0x60,0x7D,0xF5);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAccessible2,0xE89F726E,0xC4F4,0x4c19,0xBB,0x19,0xB6,0x47,0xD7,0xFA,0x84,0x78);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAccessible2_2,0x6C9430E9,0x299D,0x4E6F,0xBD,0x01,0xA8,0x2A,0x1E,0x88,0xD3,0xFF);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleComponent,0x1546D4B0,0x4C98,0x4bda,0x89,0xAE,0x9A,0x64,0x74,0x8B,0xDD,0xE4);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleValue,0x35855B5B,0xC566,0x4fd0,0xA7,0xB1,0xE6,0x54,0x65,0x60,0x03,0x94);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleText,0x24FD2FFB,0x3AAD,0x4a08,0x83,0x35,0xA3,0xAD,0x89,0xC0,0xFB,0x4B);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleText2,0x9690A9CC,0x5C80,0x4DF5,0x85,0x2E,0x2D,0x5A,0xE4,0x18,0x9A,0x54);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleEditableText,0xA59AA09A,0x7011,0x4b65,0x93,0x9D,0x32,0xB1,0xFB,0x55,0x47,0xE3);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleHyperlink,0x01C20F2B,0x3DD2,0x400f,0x94,0x9F,0xAD,0x00,0xBD,0xAB,0x1D,0x41);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleHypertext,0x6B4F8BBF,0xF1F2,0x418a,0xB3,0x5E,0xA1,0x95,0xBC,0x41,0x03,0xB9);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleHypertext2,0xCF64D89F,0x8287,0x4B44,0x85,0x01,0xA8,0x27,0x45,0x3A,0x60,0x77);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleTable,0x35AD8070,0xC20C,0x4fb4,0xB0,0x94,0xF4,0xF7,0x27,0x5D,0xD4,0x69);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleTable2,0x6167f295,0x06f0,0x4cdd,0xa1,0xfa,0x02,0xe2,0x51,0x53,0xd8,0x69);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleTableCell,0x594116B1,0xC99F,0x4847,0xAD,0x06,0x0A,0x7A,0x86,0xEC,0xE6,0x45);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleImage,0xFE5ABB3D,0x615E,0x4f7b,0x90,0x9F,0x5F,0x0E,0xDA,0x9E,0x8D,0xDE);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleApplication,0xD49DED83,0x5B25,0x43F4,0x9B,0x95,0x93,0xB4,0x45,0x95,0x97,0x9E);
+
+
+MIDL_DEFINE_GUID(IID, IID_IAccessibleDocument,0xC48C7FCF,0x4AB5,0x4056,0xAF,0xA6,0x90,0x2D,0x6E,0x1D,0x11,0x49);
+
+
+MIDL_DEFINE_GUID(IID, LIBID_IAccessible2Lib,0xCE3F726E,0xD1D3,0x44FE,0xB9,0x95,0xFF,0x1D,0xB3,0xB4,0x8B,0x2B);
+
+#undef MIDL_DEFINE_GUID
+
+#ifdef __cplusplus
+}
+#endif
+
+
+
diff --git a/src/3rdparty/iaccessible2/generated/x86/ia2_api_all_p.c b/src/3rdparty/iaccessible2/generated/x86/ia2_api_all_p.c
new file mode 100644
index 0000000000..2d82318622
--- /dev/null
+++ b/src/3rdparty/iaccessible2/generated/x86/ia2_api_all_p.c
@@ -0,0 +1,7823 @@
+
+
+/* this ALWAYS GENERATED file contains the proxy stub code */
+
+
+ /* File created by MIDL compiler version 7.00.0555 */
+/* at Mon Aug 11 14:34:41 2014
+ */
+/* Compiler settings for ia2_api_all.idl:
+ Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+/* @@MIDL_FILE_HEADING( ) */
+
+#if !defined(_M_IA64) && !defined(_M_AMD64)
+
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+#if _MSC_VER >= 1200
+#pragma warning(push)
+#endif
+
+#pragma warning( disable: 4211 ) /* redefine extern to static */
+#pragma warning( disable: 4232 ) /* dllimport identity*/
+#pragma warning( disable: 4024 ) /* array to pointer mapping*/
+#pragma warning( disable: 4152 ) /* function/data pointer conversion in expression */
+#pragma warning( disable: 4100 ) /* unreferenced arguments in x86 call */
+
+#pragma optimize("", off )
+
+#define USE_STUBLESS_PROXY
+
+
+/* verify that the <rpcproxy.h> version is high enough to compile this file*/
+#ifndef __REDQ_RPCPROXY_H_VERSION__
+#define __REQUIRED_RPCPROXY_H_VERSION__ 475
+#endif
+
+
+#include "rpcproxy.h"
+#ifndef __RPCPROXY_H_VERSION__
+#error this stub requires an updated version of <rpcproxy.h>
+#endif /* __RPCPROXY_H_VERSION__ */
+
+
+#include "ia2_api_all.h"
+
+#define TYPE_FORMAT_STRING_SIZE 1513
+#define PROC_FORMAT_STRING_SIZE 5197
+#define EXPR_FORMAT_STRING_SIZE 1
+#define TRANSMIT_AS_TABLE_SIZE 0
+#define WIRE_MARSHAL_TABLE_SIZE 3
+
+typedef struct _ia2_api_all_MIDL_TYPE_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ TYPE_FORMAT_STRING_SIZE ];
+ } ia2_api_all_MIDL_TYPE_FORMAT_STRING;
+
+typedef struct _ia2_api_all_MIDL_PROC_FORMAT_STRING
+ {
+ short Pad;
+ unsigned char Format[ PROC_FORMAT_STRING_SIZE ];
+ } ia2_api_all_MIDL_PROC_FORMAT_STRING;
+
+typedef struct _ia2_api_all_MIDL_EXPR_FORMAT_STRING
+ {
+ long Pad;
+ unsigned char Format[ EXPR_FORMAT_STRING_SIZE ];
+ } ia2_api_all_MIDL_EXPR_FORMAT_STRING;
+
+
+static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax =
+{{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}};
+
+
+extern const ia2_api_all_MIDL_TYPE_FORMAT_STRING ia2_api_all__MIDL_TypeFormatString;
+extern const ia2_api_all_MIDL_PROC_FORMAT_STRING ia2_api_all__MIDL_ProcFormatString;
+extern const ia2_api_all_MIDL_EXPR_FORMAT_STRING ia2_api_all__MIDL_ExprFormatString;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleRelation_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleRelation_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleAction_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleAction_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessible2_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessible2_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessible2_2_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessible2_2_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleComponent_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleComponent_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleValue_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleValue_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleText_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleText_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleText2_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleText2_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleEditableText_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleEditableText_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleHyperlink_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleHyperlink_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleHypertext_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleHypertext_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleHypertext2_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleHypertext2_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleTable_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleTable_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleTable2_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleTable2_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleTableCell_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleTableCell_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleImage_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleImage_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleApplication_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleApplication_ProxyInfo;
+
+
+extern const MIDL_STUB_DESC Object_StubDesc;
+
+
+extern const MIDL_SERVER_INFO IAccessibleDocument_ServerInfo;
+extern const MIDL_STUBLESS_PROXY_INFO IAccessibleDocument_ProxyInfo;
+
+
+extern const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ];
+
+#if !defined(__RPC_WIN32__)
+#error Invalid build platform for this stub.
+#endif
+
+#if !(TARGET_IS_NT50_OR_LATER)
+#error You need Windows 2000 or later to run this stub because it uses these features:
+#error /robust command line switch.
+#error However, your C/C++ compilation flags indicate you intend to run this app on earlier systems.
+#error This app will fail with the RPC_X_WRONG_STUB_VERSION error.
+#endif
+
+
+static const ia2_api_all_MIDL_PROC_FORMAT_STRING ia2_api_all__MIDL_ProcFormatString =
+ {
+ 0,
+ {
+
+ /* Procedure get_appName */
+
+
+ /* Procedure get_description */
+
+
+ /* Procedure get_relationType */
+
+ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2 */ NdrFcLong( 0x0 ), /* 0 */
+/* 6 */ NdrFcShort( 0x3 ), /* 3 */
+/* 8 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 10 */ NdrFcShort( 0x0 ), /* 0 */
+/* 12 */ NdrFcShort( 0x8 ), /* 8 */
+/* 14 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 16 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 18 */ NdrFcShort( 0x1 ), /* 1 */
+/* 20 */ NdrFcShort( 0x0 ), /* 0 */
+/* 22 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter name */
+
+
+ /* Parameter description */
+
+
+ /* Parameter relationType */
+
+/* 24 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 26 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 28 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 30 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 32 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 34 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_appVersion */
+
+
+ /* Procedure get_localizedRelationType */
+
+/* 36 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 38 */ NdrFcLong( 0x0 ), /* 0 */
+/* 42 */ NdrFcShort( 0x4 ), /* 4 */
+/* 44 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 46 */ NdrFcShort( 0x0 ), /* 0 */
+/* 48 */ NdrFcShort( 0x8 ), /* 8 */
+/* 50 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 52 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 54 */ NdrFcShort( 0x1 ), /* 1 */
+/* 56 */ NdrFcShort( 0x0 ), /* 0 */
+/* 58 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter version */
+
+
+ /* Parameter localizedRelationType */
+
+/* 60 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 62 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 64 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 66 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 68 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 70 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_columnIndex */
+
+
+ /* Procedure get_caretOffset */
+
+
+ /* Procedure get_background */
+
+
+ /* Procedure get_nTargets */
+
+/* 72 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 74 */ NdrFcLong( 0x0 ), /* 0 */
+/* 78 */ NdrFcShort( 0x5 ), /* 5 */
+/* 80 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 82 */ NdrFcShort( 0x0 ), /* 0 */
+/* 84 */ NdrFcShort( 0x24 ), /* 36 */
+/* 86 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 88 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 90 */ NdrFcShort( 0x0 ), /* 0 */
+/* 92 */ NdrFcShort( 0x0 ), /* 0 */
+/* 94 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter columnIndex */
+
+
+ /* Parameter offset */
+
+
+ /* Parameter background */
+
+
+ /* Parameter nTargets */
+
+/* 96 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 98 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 100 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 102 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 104 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 106 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_target */
+
+/* 108 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 110 */ NdrFcLong( 0x0 ), /* 0 */
+/* 114 */ NdrFcShort( 0x6 ), /* 6 */
+/* 116 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 118 */ NdrFcShort( 0x8 ), /* 8 */
+/* 120 */ NdrFcShort( 0x8 ), /* 8 */
+/* 122 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 124 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 126 */ NdrFcShort( 0x0 ), /* 0 */
+/* 128 */ NdrFcShort( 0x0 ), /* 0 */
+/* 130 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter targetIndex */
+
+/* 132 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 134 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 136 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter target */
+
+/* 138 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 140 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 142 */ NdrFcShort( 0x2e ), /* Type Offset=46 */
+
+ /* Return value */
+
+/* 144 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 146 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 148 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_targets */
+
+/* 150 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 152 */ NdrFcLong( 0x0 ), /* 0 */
+/* 156 */ NdrFcShort( 0x7 ), /* 7 */
+/* 158 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 160 */ NdrFcShort( 0x8 ), /* 8 */
+/* 162 */ NdrFcShort( 0x24 ), /* 36 */
+/* 164 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x4, /* 4 */
+/* 166 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 168 */ NdrFcShort( 0x1 ), /* 1 */
+/* 170 */ NdrFcShort( 0x0 ), /* 0 */
+/* 172 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter maxTargets */
+
+/* 174 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 176 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 178 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter targets */
+
+/* 180 */ NdrFcShort( 0x113 ), /* Flags: must size, must free, out, simple ref, */
+/* 182 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 184 */ NdrFcShort( 0x48 ), /* Type Offset=72 */
+
+ /* Parameter nTargets */
+
+/* 186 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 188 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 190 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 192 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 194 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 196 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_columnExtent */
+
+
+ /* Procedure nActions */
+
+/* 198 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 200 */ NdrFcLong( 0x0 ), /* 0 */
+/* 204 */ NdrFcShort( 0x3 ), /* 3 */
+/* 206 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 208 */ NdrFcShort( 0x0 ), /* 0 */
+/* 210 */ NdrFcShort( 0x24 ), /* 36 */
+/* 212 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 214 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 216 */ NdrFcShort( 0x0 ), /* 0 */
+/* 218 */ NdrFcShort( 0x0 ), /* 0 */
+/* 220 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter nColumnsSpanned */
+
+
+ /* Parameter nActions */
+
+/* 222 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 224 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 226 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 228 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 230 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 232 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure doAction */
+
+/* 234 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 236 */ NdrFcLong( 0x0 ), /* 0 */
+/* 240 */ NdrFcShort( 0x4 ), /* 4 */
+/* 242 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 244 */ NdrFcShort( 0x8 ), /* 8 */
+/* 246 */ NdrFcShort( 0x8 ), /* 8 */
+/* 248 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 250 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 252 */ NdrFcShort( 0x0 ), /* 0 */
+/* 254 */ NdrFcShort( 0x0 ), /* 0 */
+/* 256 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter actionIndex */
+
+/* 258 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 260 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 262 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 264 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 266 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 268 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_columnDescription */
+
+
+ /* Procedure get_description */
+
+/* 270 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 272 */ NdrFcLong( 0x0 ), /* 0 */
+/* 276 */ NdrFcShort( 0x5 ), /* 5 */
+/* 278 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 280 */ NdrFcShort( 0x8 ), /* 8 */
+/* 282 */ NdrFcShort( 0x8 ), /* 8 */
+/* 284 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 286 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 288 */ NdrFcShort( 0x1 ), /* 1 */
+/* 290 */ NdrFcShort( 0x0 ), /* 0 */
+/* 292 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter column */
+
+
+ /* Parameter actionIndex */
+
+/* 294 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 296 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 298 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter description */
+
+
+ /* Parameter description */
+
+/* 300 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 302 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 304 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 306 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 308 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 310 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_keyBinding */
+
+/* 312 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 314 */ NdrFcLong( 0x0 ), /* 0 */
+/* 318 */ NdrFcShort( 0x6 ), /* 6 */
+/* 320 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */
+/* 322 */ NdrFcShort( 0x10 ), /* 16 */
+/* 324 */ NdrFcShort( 0x24 ), /* 36 */
+/* 326 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x5, /* 5 */
+/* 328 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 330 */ NdrFcShort( 0x1 ), /* 1 */
+/* 332 */ NdrFcShort( 0x0 ), /* 0 */
+/* 334 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter actionIndex */
+
+/* 336 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 338 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 340 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter nMaxBindings */
+
+/* 342 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 344 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 346 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter keyBindings */
+
+/* 348 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
+/* 350 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 352 */ NdrFcShort( 0x5e ), /* Type Offset=94 */
+
+ /* Parameter nBindings */
+
+/* 354 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 356 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 358 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 360 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 362 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 364 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_name */
+
+/* 366 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 368 */ NdrFcLong( 0x0 ), /* 0 */
+/* 372 */ NdrFcShort( 0x7 ), /* 7 */
+/* 374 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 376 */ NdrFcShort( 0x8 ), /* 8 */
+/* 378 */ NdrFcShort( 0x8 ), /* 8 */
+/* 380 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 382 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 384 */ NdrFcShort( 0x1 ), /* 1 */
+/* 386 */ NdrFcShort( 0x0 ), /* 0 */
+/* 388 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter actionIndex */
+
+/* 390 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 392 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 394 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter name */
+
+/* 396 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 398 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 400 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 402 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 404 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 406 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_localizedName */
+
+/* 408 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 410 */ NdrFcLong( 0x0 ), /* 0 */
+/* 414 */ NdrFcShort( 0x8 ), /* 8 */
+/* 416 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 418 */ NdrFcShort( 0x8 ), /* 8 */
+/* 420 */ NdrFcShort( 0x8 ), /* 8 */
+/* 422 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 424 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 426 */ NdrFcShort( 0x1 ), /* 1 */
+/* 428 */ NdrFcShort( 0x0 ), /* 0 */
+/* 430 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter actionIndex */
+
+/* 432 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 434 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 436 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter localizedName */
+
+/* 438 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 440 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 442 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 444 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 446 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 448 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nRelations */
+
+/* 450 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 452 */ NdrFcLong( 0x0 ), /* 0 */
+/* 456 */ NdrFcShort( 0x1c ), /* 28 */
+/* 458 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 460 */ NdrFcShort( 0x0 ), /* 0 */
+/* 462 */ NdrFcShort( 0x24 ), /* 36 */
+/* 464 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 466 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 468 */ NdrFcShort( 0x0 ), /* 0 */
+/* 470 */ NdrFcShort( 0x0 ), /* 0 */
+/* 472 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter nRelations */
+
+/* 474 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 476 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 478 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 480 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 482 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 484 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_relation */
+
+/* 486 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 488 */ NdrFcLong( 0x0 ), /* 0 */
+/* 492 */ NdrFcShort( 0x1d ), /* 29 */
+/* 494 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 496 */ NdrFcShort( 0x8 ), /* 8 */
+/* 498 */ NdrFcShort( 0x8 ), /* 8 */
+/* 500 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 502 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 504 */ NdrFcShort( 0x0 ), /* 0 */
+/* 506 */ NdrFcShort( 0x0 ), /* 0 */
+/* 508 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter relationIndex */
+
+/* 510 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 512 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 514 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter relation */
+
+/* 516 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 518 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 520 */ NdrFcShort( 0x7c ), /* Type Offset=124 */
+
+ /* Return value */
+
+/* 522 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 524 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 526 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_relations */
+
+/* 528 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 530 */ NdrFcLong( 0x0 ), /* 0 */
+/* 534 */ NdrFcShort( 0x1e ), /* 30 */
+/* 536 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 538 */ NdrFcShort( 0x8 ), /* 8 */
+/* 540 */ NdrFcShort( 0x24 ), /* 36 */
+/* 542 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x4, /* 4 */
+/* 544 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 546 */ NdrFcShort( 0x1 ), /* 1 */
+/* 548 */ NdrFcShort( 0x0 ), /* 0 */
+/* 550 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter maxRelations */
+
+/* 552 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 554 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 556 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter relations */
+
+/* 558 */ NdrFcShort( 0x113 ), /* Flags: must size, must free, out, simple ref, */
+/* 560 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 562 */ NdrFcShort( 0x96 ), /* Type Offset=150 */
+
+ /* Parameter nRelations */
+
+/* 564 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 566 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 568 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 570 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 572 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 574 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure role */
+
+/* 576 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 578 */ NdrFcLong( 0x0 ), /* 0 */
+/* 582 */ NdrFcShort( 0x1f ), /* 31 */
+/* 584 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 586 */ NdrFcShort( 0x0 ), /* 0 */
+/* 588 */ NdrFcShort( 0x24 ), /* 36 */
+/* 590 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 592 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 594 */ NdrFcShort( 0x0 ), /* 0 */
+/* 596 */ NdrFcShort( 0x0 ), /* 0 */
+/* 598 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter role */
+
+/* 600 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 602 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 604 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 606 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 608 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 610 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure scrollTo */
+
+/* 612 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 614 */ NdrFcLong( 0x0 ), /* 0 */
+/* 618 */ NdrFcShort( 0x20 ), /* 32 */
+/* 620 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 622 */ NdrFcShort( 0x6 ), /* 6 */
+/* 624 */ NdrFcShort( 0x8 ), /* 8 */
+/* 626 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 628 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 630 */ NdrFcShort( 0x0 ), /* 0 */
+/* 632 */ NdrFcShort( 0x0 ), /* 0 */
+/* 634 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter scrollType */
+
+/* 636 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 638 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 640 */ 0xd, /* FC_ENUM16 */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 642 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 644 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 646 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure scrollToPoint */
+
+/* 648 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 650 */ NdrFcLong( 0x0 ), /* 0 */
+/* 654 */ NdrFcShort( 0x21 ), /* 33 */
+/* 656 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 658 */ NdrFcShort( 0x16 ), /* 22 */
+/* 660 */ NdrFcShort( 0x8 ), /* 8 */
+/* 662 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x4, /* 4 */
+/* 664 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 666 */ NdrFcShort( 0x0 ), /* 0 */
+/* 668 */ NdrFcShort( 0x0 ), /* 0 */
+/* 670 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter coordinateType */
+
+/* 672 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 674 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 676 */ 0xd, /* FC_ENUM16 */
+ 0x0, /* 0 */
+
+ /* Parameter x */
+
+/* 678 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 680 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 682 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter y */
+
+/* 684 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 686 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 688 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 690 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 692 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 694 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_groupPosition */
+
+/* 696 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 698 */ NdrFcLong( 0x0 ), /* 0 */
+/* 702 */ NdrFcShort( 0x22 ), /* 34 */
+/* 704 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 706 */ NdrFcShort( 0x0 ), /* 0 */
+/* 708 */ NdrFcShort( 0x5c ), /* 92 */
+/* 710 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x4, /* 4 */
+/* 712 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 714 */ NdrFcShort( 0x0 ), /* 0 */
+/* 716 */ NdrFcShort( 0x0 ), /* 0 */
+/* 718 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter groupLevel */
+
+/* 720 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 722 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 724 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter similarItemsInGroup */
+
+/* 726 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 728 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 730 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter positionInGroup */
+
+/* 732 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 734 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 736 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 738 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 740 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 742 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_states */
+
+/* 744 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 746 */ NdrFcLong( 0x0 ), /* 0 */
+/* 750 */ NdrFcShort( 0x23 ), /* 35 */
+/* 752 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 754 */ NdrFcShort( 0x0 ), /* 0 */
+/* 756 */ NdrFcShort( 0x24 ), /* 36 */
+/* 758 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 760 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 762 */ NdrFcShort( 0x0 ), /* 0 */
+/* 764 */ NdrFcShort( 0x0 ), /* 0 */
+/* 766 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter states */
+
+/* 768 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 770 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 772 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 774 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 776 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 778 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_extendedRole */
+
+/* 780 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 782 */ NdrFcLong( 0x0 ), /* 0 */
+/* 786 */ NdrFcShort( 0x24 ), /* 36 */
+/* 788 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 790 */ NdrFcShort( 0x0 ), /* 0 */
+/* 792 */ NdrFcShort( 0x8 ), /* 8 */
+/* 794 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 796 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 798 */ NdrFcShort( 0x1 ), /* 1 */
+/* 800 */ NdrFcShort( 0x0 ), /* 0 */
+/* 802 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter extendedRole */
+
+/* 804 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 806 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 808 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 810 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 812 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 814 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_localizedExtendedRole */
+
+/* 816 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 818 */ NdrFcLong( 0x0 ), /* 0 */
+/* 822 */ NdrFcShort( 0x25 ), /* 37 */
+/* 824 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 826 */ NdrFcShort( 0x0 ), /* 0 */
+/* 828 */ NdrFcShort( 0x8 ), /* 8 */
+/* 830 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 832 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 834 */ NdrFcShort( 0x1 ), /* 1 */
+/* 836 */ NdrFcShort( 0x0 ), /* 0 */
+/* 838 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter localizedExtendedRole */
+
+/* 840 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 842 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 844 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 846 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 848 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 850 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nExtendedStates */
+
+/* 852 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 854 */ NdrFcLong( 0x0 ), /* 0 */
+/* 858 */ NdrFcShort( 0x26 ), /* 38 */
+/* 860 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 862 */ NdrFcShort( 0x0 ), /* 0 */
+/* 864 */ NdrFcShort( 0x24 ), /* 36 */
+/* 866 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 868 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 870 */ NdrFcShort( 0x0 ), /* 0 */
+/* 872 */ NdrFcShort( 0x0 ), /* 0 */
+/* 874 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter nExtendedStates */
+
+/* 876 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 878 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 880 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 882 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 884 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 886 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_extendedStates */
+
+/* 888 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 890 */ NdrFcLong( 0x0 ), /* 0 */
+/* 894 */ NdrFcShort( 0x27 ), /* 39 */
+/* 896 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 898 */ NdrFcShort( 0x8 ), /* 8 */
+/* 900 */ NdrFcShort( 0x24 ), /* 36 */
+/* 902 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x4, /* 4 */
+/* 904 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 906 */ NdrFcShort( 0x1 ), /* 1 */
+/* 908 */ NdrFcShort( 0x0 ), /* 0 */
+/* 910 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter maxExtendedStates */
+
+/* 912 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 914 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 916 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter extendedStates */
+
+/* 918 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
+/* 920 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 922 */ NdrFcShort( 0xac ), /* Type Offset=172 */
+
+ /* Parameter nExtendedStates */
+
+/* 924 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 926 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 928 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 930 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 932 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 934 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_localizedExtendedStates */
+
+/* 936 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 938 */ NdrFcLong( 0x0 ), /* 0 */
+/* 942 */ NdrFcShort( 0x28 ), /* 40 */
+/* 944 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 946 */ NdrFcShort( 0x8 ), /* 8 */
+/* 948 */ NdrFcShort( 0x24 ), /* 36 */
+/* 950 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x4, /* 4 */
+/* 952 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 954 */ NdrFcShort( 0x1 ), /* 1 */
+/* 956 */ NdrFcShort( 0x0 ), /* 0 */
+/* 958 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter maxLocalizedExtendedStates */
+
+/* 960 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 962 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 964 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter localizedExtendedStates */
+
+/* 966 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
+/* 968 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 970 */ NdrFcShort( 0xac ), /* Type Offset=172 */
+
+ /* Parameter nLocalizedExtendedStates */
+
+/* 972 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 974 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 976 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 978 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 980 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 982 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_uniqueID */
+
+/* 984 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 986 */ NdrFcLong( 0x0 ), /* 0 */
+/* 990 */ NdrFcShort( 0x29 ), /* 41 */
+/* 992 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 994 */ NdrFcShort( 0x0 ), /* 0 */
+/* 996 */ NdrFcShort( 0x24 ), /* 36 */
+/* 998 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 1000 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 1002 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1004 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1006 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter uniqueID */
+
+/* 1008 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1010 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1012 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 1014 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1016 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1018 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_windowHandle */
+
+/* 1020 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1022 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1026 */ NdrFcShort( 0x2a ), /* 42 */
+/* 1028 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 1030 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1032 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1034 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 1036 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 1038 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1040 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1042 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter windowHandle */
+
+/* 1044 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 1046 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1048 */ NdrFcShort( 0xe6 ), /* Type Offset=230 */
+
+ /* Return value */
+
+/* 1050 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1052 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1054 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_indexInParent */
+
+/* 1056 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1058 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1062 */ NdrFcShort( 0x2b ), /* 43 */
+/* 1064 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 1066 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1068 */ NdrFcShort( 0x24 ), /* 36 */
+/* 1070 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 1072 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 1074 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1076 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1078 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter indexInParent */
+
+/* 1080 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1082 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1084 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 1086 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1088 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1090 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_locale */
+
+/* 1092 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1094 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1098 */ NdrFcShort( 0x2c ), /* 44 */
+/* 1100 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 1102 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1104 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1106 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 1108 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 1110 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1112 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1114 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter locale */
+
+/* 1116 */ NdrFcShort( 0x4113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=16 */
+/* 1118 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1120 */ NdrFcShort( 0xf4 ), /* Type Offset=244 */
+
+ /* Return value */
+
+/* 1122 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1124 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1126 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_attributes */
+
+/* 1128 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1130 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1134 */ NdrFcShort( 0x2d ), /* 45 */
+/* 1136 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 1138 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1140 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1142 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 1144 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 1146 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1148 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1150 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter attributes */
+
+/* 1152 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 1154 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1156 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 1158 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1160 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1162 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_attribute */
+
+/* 1164 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1166 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1170 */ NdrFcShort( 0x2e ), /* 46 */
+/* 1172 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 1174 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1176 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1178 */ 0x47, /* Oi2 Flags: srv must size, clt must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 1180 */ 0x8, /* 8 */
+ 0x7, /* Ext Flags: new corr desc, clt corr check, srv corr check, */
+/* 1182 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1184 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1186 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter name */
+
+/* 1188 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 1190 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1192 */ NdrFcShort( 0x10e ), /* Type Offset=270 */
+
+ /* Parameter attribute */
+
+/* 1194 */ NdrFcShort( 0x4113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=16 */
+/* 1196 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1198 */ NdrFcShort( 0x4ee ), /* Type Offset=1262 */
+
+ /* Return value */
+
+/* 1200 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1202 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 1204 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_accessibleWithCaret */
+
+/* 1206 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1208 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1212 */ NdrFcShort( 0x2f ), /* 47 */
+/* 1214 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 1216 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1218 */ NdrFcShort( 0x24 ), /* 36 */
+/* 1220 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 1222 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 1224 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1226 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1228 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter accessible */
+
+/* 1230 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 1232 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1234 */ NdrFcShort( 0x2e ), /* Type Offset=46 */
+
+ /* Parameter caretOffset */
+
+/* 1236 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1238 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1240 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 1242 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1244 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 1246 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_relationTargetsOfType */
+
+/* 1248 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1250 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1254 */ NdrFcShort( 0x30 ), /* 48 */
+/* 1256 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */
+/* 1258 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1260 */ NdrFcShort( 0x24 ), /* 36 */
+/* 1262 */ 0x47, /* Oi2 Flags: srv must size, clt must size, has return, has ext, */
+ 0x5, /* 5 */
+/* 1264 */ 0x8, /* 8 */
+ 0x7, /* Ext Flags: new corr desc, clt corr check, srv corr check, */
+/* 1266 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1268 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1270 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter type */
+
+/* 1272 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 1274 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1276 */ NdrFcShort( 0x10e ), /* Type Offset=270 */
+
+ /* Parameter maxTargets */
+
+/* 1278 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 1280 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1282 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter targets */
+
+/* 1284 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
+/* 1286 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 1288 */ NdrFcShort( 0x4f8 ), /* Type Offset=1272 */
+
+ /* Parameter nTargets */
+
+/* 1290 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1292 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 1294 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 1296 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1298 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 1300 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_locationInParent */
+
+/* 1302 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1304 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1308 */ NdrFcShort( 0x3 ), /* 3 */
+/* 1310 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 1312 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1314 */ NdrFcShort( 0x40 ), /* 64 */
+/* 1316 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 1318 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 1320 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1322 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1324 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter x */
+
+/* 1326 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1328 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1330 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter y */
+
+/* 1332 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1334 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1336 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 1338 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1340 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 1342 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_foreground */
+
+/* 1344 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1346 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1350 */ NdrFcShort( 0x4 ), /* 4 */
+/* 1352 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 1354 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1356 */ NdrFcShort( 0x24 ), /* 36 */
+/* 1358 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 1360 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 1362 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1364 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1366 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter foreground */
+
+/* 1368 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1370 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1372 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 1374 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1376 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1378 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_currentValue */
+
+/* 1380 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1382 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1386 */ NdrFcShort( 0x3 ), /* 3 */
+/* 1388 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 1390 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1392 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1394 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 1396 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 1398 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1400 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1402 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter currentValue */
+
+/* 1404 */ NdrFcShort( 0x4113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=16 */
+/* 1406 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1408 */ NdrFcShort( 0x4ee ), /* Type Offset=1262 */
+
+ /* Return value */
+
+/* 1410 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1412 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1414 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure setCurrentValue */
+
+/* 1416 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1418 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1422 */ NdrFcShort( 0x4 ), /* 4 */
+/* 1424 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */
+/* 1426 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1428 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1430 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 1432 */ 0x8, /* 8 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 1434 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1436 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1438 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter value */
+
+/* 1440 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 1442 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1444 */ NdrFcShort( 0x51a ), /* Type Offset=1306 */
+
+ /* Return value */
+
+/* 1446 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1448 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 1450 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_maximumValue */
+
+/* 1452 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1454 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1458 */ NdrFcShort( 0x5 ), /* 5 */
+/* 1460 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 1462 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1464 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1466 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 1468 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 1470 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1472 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1474 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter maximumValue */
+
+/* 1476 */ NdrFcShort( 0x4113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=16 */
+/* 1478 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1480 */ NdrFcShort( 0x4ee ), /* Type Offset=1262 */
+
+ /* Return value */
+
+/* 1482 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1484 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1486 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_minimumValue */
+
+/* 1488 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1490 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1494 */ NdrFcShort( 0x6 ), /* 6 */
+/* 1496 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 1498 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1500 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1502 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 1504 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 1506 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1508 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1510 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter minimumValue */
+
+/* 1512 */ NdrFcShort( 0x4113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=16 */
+/* 1514 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1516 */ NdrFcShort( 0x4ee ), /* Type Offset=1262 */
+
+ /* Return value */
+
+/* 1518 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1520 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1522 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure copyText */
+
+
+ /* Procedure addSelection */
+
+/* 1524 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1526 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1530 */ NdrFcShort( 0x3 ), /* 3 */
+/* 1532 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 1534 */ NdrFcShort( 0x10 ), /* 16 */
+/* 1536 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1538 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 1540 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 1542 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1544 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1546 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter startOffset */
+
+
+ /* Parameter startOffset */
+
+/* 1548 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 1550 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1552 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+
+ /* Parameter endOffset */
+
+/* 1554 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 1556 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1558 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 1560 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1562 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 1564 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_attributes */
+
+/* 1566 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1568 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1572 */ NdrFcShort( 0x4 ), /* 4 */
+/* 1574 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */
+/* 1576 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1578 */ NdrFcShort( 0x40 ), /* 64 */
+/* 1580 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x5, /* 5 */
+/* 1582 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 1584 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1586 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1588 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter offset */
+
+/* 1590 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 1592 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1594 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter startOffset */
+
+/* 1596 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1598 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1600 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+/* 1602 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1604 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 1606 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter textAttributes */
+
+/* 1608 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 1610 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 1612 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 1614 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1616 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 1618 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_characterExtents */
+
+/* 1620 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1622 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1626 */ NdrFcShort( 0x6 ), /* 6 */
+/* 1628 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */
+/* 1630 */ NdrFcShort( 0xe ), /* 14 */
+/* 1632 */ NdrFcShort( 0x78 ), /* 120 */
+/* 1634 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x7, /* 7 */
+/* 1636 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 1638 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1640 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1642 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter offset */
+
+/* 1644 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 1646 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1648 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter coordType */
+
+/* 1650 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 1652 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1654 */ 0xd, /* FC_ENUM16 */
+ 0x0, /* 0 */
+
+ /* Parameter x */
+
+/* 1656 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1658 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 1660 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter y */
+
+/* 1662 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1664 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 1666 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter width */
+
+/* 1668 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1670 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 1672 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter height */
+
+/* 1674 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1676 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */
+/* 1678 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 1680 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1682 */ NdrFcShort( 0x1c ), /* x86 Stack size/offset = 28 */
+/* 1684 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nRows */
+
+
+ /* Procedure get_nSelections */
+
+/* 1686 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1688 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1692 */ NdrFcShort( 0x7 ), /* 7 */
+/* 1694 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 1696 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1698 */ NdrFcShort( 0x24 ), /* 36 */
+/* 1700 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 1702 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 1704 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1706 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1708 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter rowCount */
+
+
+ /* Parameter nSelections */
+
+/* 1710 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1712 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1714 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 1716 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1718 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1720 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_offsetAtPoint */
+
+/* 1722 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1724 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1728 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1730 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */
+/* 1732 */ NdrFcShort( 0x16 ), /* 22 */
+/* 1734 */ NdrFcShort( 0x24 ), /* 36 */
+/* 1736 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x5, /* 5 */
+/* 1738 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 1740 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1742 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1744 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter x */
+
+/* 1746 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 1748 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1750 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter y */
+
+/* 1752 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 1754 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1756 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter coordType */
+
+/* 1758 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 1760 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 1762 */ 0xd, /* FC_ENUM16 */
+ 0x0, /* 0 */
+
+ /* Parameter offset */
+
+/* 1764 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1766 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 1768 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 1770 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1772 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 1774 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_selection */
+
+/* 1776 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1778 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1782 */ NdrFcShort( 0x9 ), /* 9 */
+/* 1784 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 1786 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1788 */ NdrFcShort( 0x40 ), /* 64 */
+/* 1790 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x4, /* 4 */
+/* 1792 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 1794 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1796 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1798 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter selectionIndex */
+
+/* 1800 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 1802 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1804 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter startOffset */
+
+/* 1806 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1808 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1810 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+/* 1812 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1814 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 1816 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 1818 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1820 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 1822 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_text */
+
+/* 1824 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1826 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1830 */ NdrFcShort( 0xa ), /* 10 */
+/* 1832 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 1834 */ NdrFcShort( 0x10 ), /* 16 */
+/* 1836 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1838 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x4, /* 4 */
+/* 1840 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 1842 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1844 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1846 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter startOffset */
+
+/* 1848 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 1850 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1852 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+/* 1854 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 1856 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1858 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter text */
+
+/* 1860 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 1862 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 1864 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 1866 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1868 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 1870 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_textBeforeOffset */
+
+/* 1872 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1874 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1878 */ NdrFcShort( 0xb ), /* 11 */
+/* 1880 */ NdrFcShort( 0x1c ), /* x86 Stack size/offset = 28 */
+/* 1882 */ NdrFcShort( 0xe ), /* 14 */
+/* 1884 */ NdrFcShort( 0x40 ), /* 64 */
+/* 1886 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x6, /* 6 */
+/* 1888 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 1890 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1892 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1894 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter offset */
+
+/* 1896 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 1898 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1900 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter boundaryType */
+
+/* 1902 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 1904 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1906 */ 0xd, /* FC_ENUM16 */
+ 0x0, /* 0 */
+
+ /* Parameter startOffset */
+
+/* 1908 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1910 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 1912 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+/* 1914 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1916 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 1918 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter text */
+
+/* 1920 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 1922 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 1924 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 1926 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1928 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */
+/* 1930 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_textAfterOffset */
+
+/* 1932 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1934 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1938 */ NdrFcShort( 0xc ), /* 12 */
+/* 1940 */ NdrFcShort( 0x1c ), /* x86 Stack size/offset = 28 */
+/* 1942 */ NdrFcShort( 0xe ), /* 14 */
+/* 1944 */ NdrFcShort( 0x40 ), /* 64 */
+/* 1946 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x6, /* 6 */
+/* 1948 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 1950 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1952 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1954 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter offset */
+
+/* 1956 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 1958 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1960 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter boundaryType */
+
+/* 1962 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 1964 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1966 */ 0xd, /* FC_ENUM16 */
+ 0x0, /* 0 */
+
+ /* Parameter startOffset */
+
+/* 1968 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1970 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 1972 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+/* 1974 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 1976 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 1978 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter text */
+
+/* 1980 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 1982 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 1984 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 1986 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 1988 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */
+/* 1990 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_textAtOffset */
+
+/* 1992 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 1994 */ NdrFcLong( 0x0 ), /* 0 */
+/* 1998 */ NdrFcShort( 0xd ), /* 13 */
+/* 2000 */ NdrFcShort( 0x1c ), /* x86 Stack size/offset = 28 */
+/* 2002 */ NdrFcShort( 0xe ), /* 14 */
+/* 2004 */ NdrFcShort( 0x40 ), /* 64 */
+/* 2006 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x6, /* 6 */
+/* 2008 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 2010 */ NdrFcShort( 0x1 ), /* 1 */
+/* 2012 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2014 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter offset */
+
+/* 2016 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2018 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 2020 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter boundaryType */
+
+/* 2022 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2024 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 2026 */ 0xd, /* FC_ENUM16 */
+ 0x0, /* 0 */
+
+ /* Parameter startOffset */
+
+/* 2028 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 2030 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 2032 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+/* 2034 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 2036 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 2038 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter text */
+
+/* 2040 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 2042 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 2044 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 2046 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2048 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */
+/* 2050 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure removeSelection */
+
+/* 2052 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2054 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2058 */ NdrFcShort( 0xe ), /* 14 */
+/* 2060 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 2062 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2064 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2066 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 2068 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2070 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2072 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2074 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter selectionIndex */
+
+/* 2076 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2078 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 2080 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 2082 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2084 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 2086 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure setCaretOffset */
+
+/* 2088 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2090 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2094 */ NdrFcShort( 0xf ), /* 15 */
+/* 2096 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 2098 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2100 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2102 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 2104 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2106 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2108 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2110 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter offset */
+
+/* 2112 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2114 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 2116 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 2118 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2120 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 2122 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure setSelection */
+
+/* 2124 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2126 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2130 */ NdrFcShort( 0x10 ), /* 16 */
+/* 2132 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 2134 */ NdrFcShort( 0x18 ), /* 24 */
+/* 2136 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2138 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x4, /* 4 */
+/* 2140 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2142 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2144 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2146 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter selectionIndex */
+
+/* 2148 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2150 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 2152 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter startOffset */
+
+/* 2154 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2156 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 2158 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+/* 2160 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2162 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 2164 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 2166 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2168 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 2170 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nCharacters */
+
+/* 2172 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2174 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2178 */ NdrFcShort( 0x11 ), /* 17 */
+/* 2180 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 2182 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2184 */ NdrFcShort( 0x24 ), /* 36 */
+/* 2186 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 2188 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2190 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2192 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2194 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter nCharacters */
+
+/* 2196 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 2198 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 2200 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 2202 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2204 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 2206 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure scrollSubstringTo */
+
+/* 2208 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2210 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2214 */ NdrFcShort( 0x12 ), /* 18 */
+/* 2216 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 2218 */ NdrFcShort( 0x16 ), /* 22 */
+/* 2220 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2222 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x4, /* 4 */
+/* 2224 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2226 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2228 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2230 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter startIndex */
+
+/* 2232 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2234 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 2236 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endIndex */
+
+/* 2238 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2240 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 2242 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter scrollType */
+
+/* 2244 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2246 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 2248 */ 0xd, /* FC_ENUM16 */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 2250 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2252 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 2254 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure scrollSubstringToPoint */
+
+/* 2256 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2258 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2262 */ NdrFcShort( 0x13 ), /* 19 */
+/* 2264 */ NdrFcShort( 0x1c ), /* x86 Stack size/offset = 28 */
+/* 2266 */ NdrFcShort( 0x26 ), /* 38 */
+/* 2268 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2270 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x6, /* 6 */
+/* 2272 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2274 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2276 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2278 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter startIndex */
+
+/* 2280 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2282 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 2284 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endIndex */
+
+/* 2286 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2288 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 2290 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter coordinateType */
+
+/* 2292 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2294 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 2296 */ 0xd, /* FC_ENUM16 */
+ 0x0, /* 0 */
+
+ /* Parameter x */
+
+/* 2298 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2300 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 2302 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter y */
+
+/* 2304 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2306 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 2308 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 2310 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2312 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */
+/* 2314 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_newText */
+
+/* 2316 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2318 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2322 */ NdrFcShort( 0x14 ), /* 20 */
+/* 2324 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 2326 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2328 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2330 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 2332 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 2334 */ NdrFcShort( 0x1 ), /* 1 */
+/* 2336 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2338 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter newText */
+
+/* 2340 */ NdrFcShort( 0x4113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=16 */
+/* 2342 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 2344 */ NdrFcShort( 0x528 ), /* Type Offset=1320 */
+
+ /* Return value */
+
+/* 2346 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2348 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 2350 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_oldText */
+
+/* 2352 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2354 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2358 */ NdrFcShort( 0x15 ), /* 21 */
+/* 2360 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 2362 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2364 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2366 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 2368 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 2370 */ NdrFcShort( 0x1 ), /* 1 */
+/* 2372 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2374 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter oldText */
+
+/* 2376 */ NdrFcShort( 0x4113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=16 */
+/* 2378 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 2380 */ NdrFcShort( 0x528 ), /* Type Offset=1320 */
+
+ /* Return value */
+
+/* 2382 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2384 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 2386 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_attributeRange */
+
+/* 2388 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2390 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2394 */ NdrFcShort( 0x16 ), /* 22 */
+/* 2396 */ NdrFcShort( 0x1c ), /* x86 Stack size/offset = 28 */
+/* 2398 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2400 */ NdrFcShort( 0x40 ), /* 64 */
+/* 2402 */ 0x47, /* Oi2 Flags: srv must size, clt must size, has return, has ext, */
+ 0x6, /* 6 */
+/* 2404 */ 0x8, /* 8 */
+ 0x7, /* Ext Flags: new corr desc, clt corr check, srv corr check, */
+/* 2406 */ NdrFcShort( 0x1 ), /* 1 */
+/* 2408 */ NdrFcShort( 0x1 ), /* 1 */
+/* 2410 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter offset */
+
+/* 2412 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2414 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 2416 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter filter */
+
+/* 2418 */ NdrFcShort( 0x8b ), /* Flags: must size, must free, in, by val, */
+/* 2420 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 2422 */ NdrFcShort( 0x10e ), /* Type Offset=270 */
+
+ /* Parameter startOffset */
+
+/* 2424 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 2426 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 2428 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+/* 2430 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 2432 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 2434 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter attributeValues */
+
+/* 2436 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 2438 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 2440 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 2442 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2444 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */
+/* 2446 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure deleteText */
+
+/* 2448 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2450 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2454 */ NdrFcShort( 0x4 ), /* 4 */
+/* 2456 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 2458 */ NdrFcShort( 0x10 ), /* 16 */
+/* 2460 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2462 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 2464 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2466 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2468 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2470 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter startOffset */
+
+/* 2472 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2474 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 2476 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+/* 2478 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2480 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 2482 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 2484 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2486 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 2488 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure insertText */
+
+/* 2490 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2492 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2496 */ NdrFcShort( 0x5 ), /* 5 */
+/* 2498 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 2500 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2502 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2504 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 2506 */ 0x8, /* 8 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 2508 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2510 */ NdrFcShort( 0x1 ), /* 1 */
+/* 2512 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter offset */
+
+/* 2514 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2516 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 2518 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter text */
+
+/* 2520 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
+/* 2522 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 2524 */ NdrFcShort( 0x10e ), /* Type Offset=270 */
+
+ /* Return value */
+
+/* 2526 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2528 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 2530 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure cutText */
+
+/* 2532 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2534 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2538 */ NdrFcShort( 0x6 ), /* 6 */
+/* 2540 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 2542 */ NdrFcShort( 0x10 ), /* 16 */
+/* 2544 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2546 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 2548 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2550 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2552 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2554 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter startOffset */
+
+/* 2556 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2558 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 2560 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+/* 2562 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2564 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 2566 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 2568 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2570 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 2572 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure pasteText */
+
+/* 2574 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2576 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2580 */ NdrFcShort( 0x7 ), /* 7 */
+/* 2582 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 2584 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2586 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2588 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 2590 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2592 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2594 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2596 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter offset */
+
+/* 2598 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2600 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 2602 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 2604 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2606 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 2608 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure replaceText */
+
+/* 2610 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2612 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2616 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2618 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 2620 */ NdrFcShort( 0x10 ), /* 16 */
+/* 2622 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2624 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x4, /* 4 */
+/* 2626 */ 0x8, /* 8 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 2628 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2630 */ NdrFcShort( 0x1 ), /* 1 */
+/* 2632 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter startOffset */
+
+/* 2634 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2636 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 2638 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+/* 2640 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2642 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 2644 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter text */
+
+/* 2646 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
+/* 2648 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 2650 */ NdrFcShort( 0x10e ), /* Type Offset=270 */
+
+ /* Return value */
+
+/* 2652 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2654 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 2656 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure setAttributes */
+
+/* 2658 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2660 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2664 */ NdrFcShort( 0x9 ), /* 9 */
+/* 2666 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 2668 */ NdrFcShort( 0x10 ), /* 16 */
+/* 2670 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2672 */ 0x46, /* Oi2 Flags: clt must size, has return, has ext, */
+ 0x4, /* 4 */
+/* 2674 */ 0x8, /* 8 */
+ 0x5, /* Ext Flags: new corr desc, srv corr check, */
+/* 2676 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2678 */ NdrFcShort( 0x1 ), /* 1 */
+/* 2680 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter startOffset */
+
+/* 2682 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2684 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 2686 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter endOffset */
+
+/* 2688 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2690 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 2692 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter attributes */
+
+/* 2694 */ NdrFcShort( 0x10b ), /* Flags: must size, must free, in, simple ref, */
+/* 2696 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 2698 */ NdrFcShort( 0x10e ), /* Type Offset=270 */
+
+ /* Return value */
+
+/* 2700 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2702 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 2704 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_anchor */
+
+/* 2706 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2708 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2712 */ NdrFcShort( 0x9 ), /* 9 */
+/* 2714 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 2716 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2718 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2720 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 2722 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 2724 */ NdrFcShort( 0x1 ), /* 1 */
+/* 2726 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2728 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter index */
+
+/* 2730 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2732 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 2734 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter anchor */
+
+/* 2736 */ NdrFcShort( 0x4113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=16 */
+/* 2738 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 2740 */ NdrFcShort( 0x4ee ), /* Type Offset=1262 */
+
+ /* Return value */
+
+/* 2742 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2744 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 2746 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_anchorTarget */
+
+/* 2748 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2750 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2754 */ NdrFcShort( 0xa ), /* 10 */
+/* 2756 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 2758 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2760 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2762 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 2764 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 2766 */ NdrFcShort( 0x1 ), /* 1 */
+/* 2768 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2770 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter index */
+
+/* 2772 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2774 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 2776 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter anchorTarget */
+
+/* 2778 */ NdrFcShort( 0x4113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=16 */
+/* 2780 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 2782 */ NdrFcShort( 0x4ee ), /* Type Offset=1262 */
+
+ /* Return value */
+
+/* 2784 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2786 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 2788 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nRows */
+
+
+ /* Procedure get_startIndex */
+
+/* 2790 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2792 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2796 */ NdrFcShort( 0xb ), /* 11 */
+/* 2798 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 2800 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2802 */ NdrFcShort( 0x24 ), /* 36 */
+/* 2804 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 2806 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2808 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2810 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2812 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter rowCount */
+
+
+ /* Parameter index */
+
+/* 2814 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 2816 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 2818 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 2820 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2822 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 2824 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nSelectedChildren */
+
+
+ /* Procedure get_endIndex */
+
+/* 2826 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2828 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2832 */ NdrFcShort( 0xc ), /* 12 */
+/* 2834 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 2836 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2838 */ NdrFcShort( 0x24 ), /* 36 */
+/* 2840 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 2842 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2844 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2846 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2848 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter cellCount */
+
+
+ /* Parameter index */
+
+/* 2850 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 2852 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 2854 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 2856 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2858 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 2860 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_valid */
+
+/* 2862 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2864 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2868 */ NdrFcShort( 0xd ), /* 13 */
+/* 2870 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 2872 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2874 */ NdrFcShort( 0x21 ), /* 33 */
+/* 2876 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 2878 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2880 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2882 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2884 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter valid */
+
+/* 2886 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 2888 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 2890 */ 0x3, /* FC_SMALL */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 2892 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2894 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 2896 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nHyperlinks */
+
+/* 2898 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2900 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2904 */ NdrFcShort( 0x16 ), /* 22 */
+/* 2906 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 2908 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2910 */ NdrFcShort( 0x24 ), /* 36 */
+/* 2912 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 2914 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2916 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2918 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2920 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter hyperlinkCount */
+
+/* 2922 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 2924 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 2926 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 2928 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2930 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 2932 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_hyperlink */
+
+/* 2934 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2936 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2940 */ NdrFcShort( 0x17 ), /* 23 */
+/* 2942 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 2944 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2946 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2948 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 2950 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2952 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2954 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2956 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter index */
+
+/* 2958 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 2960 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 2962 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter hyperlink */
+
+/* 2964 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 2966 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 2968 */ NdrFcShort( 0x540 ), /* Type Offset=1344 */
+
+ /* Return value */
+
+/* 2970 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 2972 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 2974 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_hyperlinkIndex */
+
+/* 2976 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 2978 */ NdrFcLong( 0x0 ), /* 0 */
+/* 2982 */ NdrFcShort( 0x18 ), /* 24 */
+/* 2984 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 2986 */ NdrFcShort( 0x8 ), /* 8 */
+/* 2988 */ NdrFcShort( 0x24 ), /* 36 */
+/* 2990 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 2992 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 2994 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2996 */ NdrFcShort( 0x0 ), /* 0 */
+/* 2998 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter charIndex */
+
+/* 3000 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3002 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 3004 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter hyperlinkIndex */
+
+/* 3006 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3008 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 3010 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3012 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3014 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 3016 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_hyperlinks */
+
+/* 3018 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3020 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3024 */ NdrFcShort( 0x19 ), /* 25 */
+/* 3026 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 3028 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3030 */ NdrFcShort( 0x24 ), /* 36 */
+/* 3032 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 3034 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 3036 */ NdrFcShort( 0x1 ), /* 1 */
+/* 3038 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3040 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter hyperlinks */
+
+/* 3042 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
+/* 3044 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 3046 */ NdrFcShort( 0x556 ), /* Type Offset=1366 */
+
+ /* Parameter nHyperlinks */
+
+/* 3048 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3050 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 3052 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3054 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3056 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 3058 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_cellAt */
+
+
+ /* Procedure get_accessibleAt */
+
+/* 3060 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3062 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3066 */ NdrFcShort( 0x3 ), /* 3 */
+/* 3068 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 3070 */ NdrFcShort( 0x10 ), /* 16 */
+/* 3072 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3074 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x4, /* 4 */
+/* 3076 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3078 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3080 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3082 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+
+ /* Parameter row */
+
+/* 3084 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3086 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 3088 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter column */
+
+
+ /* Parameter column */
+
+/* 3090 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3092 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 3094 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter cell */
+
+
+ /* Parameter accessible */
+
+/* 3096 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 3098 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 3100 */ NdrFcShort( 0x2e ), /* Type Offset=46 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 3102 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3104 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 3106 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_caption */
+
+
+ /* Procedure get_caption */
+
+/* 3108 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3110 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3114 */ NdrFcShort( 0x4 ), /* 4 */
+/* 3116 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 3118 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3120 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3122 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 3124 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3126 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3128 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3130 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter accessible */
+
+
+ /* Parameter accessible */
+
+/* 3132 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 3134 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 3136 */ NdrFcShort( 0x2e ), /* Type Offset=46 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 3138 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3140 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 3142 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_childIndex */
+
+/* 3144 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3146 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3150 */ NdrFcShort( 0x5 ), /* 5 */
+/* 3152 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 3154 */ NdrFcShort( 0x10 ), /* 16 */
+/* 3156 */ NdrFcShort( 0x24 ), /* 36 */
+/* 3158 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x4, /* 4 */
+/* 3160 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3162 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3164 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3166 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter rowIndex */
+
+/* 3168 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3170 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 3172 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter columnIndex */
+
+/* 3174 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3176 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 3178 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter cellIndex */
+
+/* 3180 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3182 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 3184 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3186 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3188 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 3190 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_columnDescription */
+
+/* 3192 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3194 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3198 */ NdrFcShort( 0x6 ), /* 6 */
+/* 3200 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 3202 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3204 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3206 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 3208 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 3210 */ NdrFcShort( 0x1 ), /* 1 */
+/* 3212 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3214 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter column */
+
+/* 3216 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3218 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 3220 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter description */
+
+/* 3222 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 3224 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 3226 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 3228 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3230 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 3232 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_columnExtentAt */
+
+/* 3234 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3236 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3240 */ NdrFcShort( 0x7 ), /* 7 */
+/* 3242 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 3244 */ NdrFcShort( 0x10 ), /* 16 */
+/* 3246 */ NdrFcShort( 0x24 ), /* 36 */
+/* 3248 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x4, /* 4 */
+/* 3250 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3252 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3254 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3256 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+/* 3258 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3260 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 3262 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter column */
+
+/* 3264 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3266 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 3268 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter nColumnsSpanned */
+
+/* 3270 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3272 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 3274 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3276 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3278 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 3280 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_columnHeader */
+
+/* 3282 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3284 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3288 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3290 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 3292 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3294 */ NdrFcShort( 0x24 ), /* 36 */
+/* 3296 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 3298 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3300 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3302 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3304 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter accessibleTable */
+
+/* 3306 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 3308 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 3310 */ NdrFcShort( 0x574 ), /* Type Offset=1396 */
+
+ /* Parameter startingRowIndex */
+
+/* 3312 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3314 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 3316 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3318 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3320 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 3322 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_columnIndex */
+
+/* 3324 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3326 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3330 */ NdrFcShort( 0x9 ), /* 9 */
+/* 3332 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 3334 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3336 */ NdrFcShort( 0x24 ), /* 36 */
+/* 3338 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 3340 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3342 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3344 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3346 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter cellIndex */
+
+/* 3348 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3350 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 3352 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter columnIndex */
+
+/* 3354 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3356 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 3358 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3360 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3362 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 3364 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nSelectedRows */
+
+
+ /* Procedure get_nColumns */
+
+/* 3366 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3368 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3372 */ NdrFcShort( 0xa ), /* 10 */
+/* 3374 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 3376 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3378 */ NdrFcShort( 0x24 ), /* 36 */
+/* 3380 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 3382 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3384 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3386 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3388 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter rowCount */
+
+
+ /* Parameter columnCount */
+
+/* 3390 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3392 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 3394 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 3396 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3398 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 3400 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nSelectedColumns */
+
+/* 3402 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3404 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3408 */ NdrFcShort( 0xd ), /* 13 */
+/* 3410 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 3412 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3414 */ NdrFcShort( 0x24 ), /* 36 */
+/* 3416 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 3418 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3420 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3422 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3424 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter columnCount */
+
+/* 3426 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3428 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 3430 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3432 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3434 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 3436 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nSelectedRows */
+
+/* 3438 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3440 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3444 */ NdrFcShort( 0xe ), /* 14 */
+/* 3446 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 3448 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3450 */ NdrFcShort( 0x24 ), /* 36 */
+/* 3452 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 3454 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3456 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3458 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3460 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter rowCount */
+
+/* 3462 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3464 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 3466 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3468 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3470 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 3472 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_rowDescription */
+
+/* 3474 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3476 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3480 */ NdrFcShort( 0xf ), /* 15 */
+/* 3482 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 3484 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3486 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3488 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 3490 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 3492 */ NdrFcShort( 0x1 ), /* 1 */
+/* 3494 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3496 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+/* 3498 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3500 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 3502 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter description */
+
+/* 3504 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 3506 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 3508 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 3510 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3512 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 3514 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_rowExtentAt */
+
+/* 3516 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3518 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3522 */ NdrFcShort( 0x10 ), /* 16 */
+/* 3524 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 3526 */ NdrFcShort( 0x10 ), /* 16 */
+/* 3528 */ NdrFcShort( 0x24 ), /* 36 */
+/* 3530 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x4, /* 4 */
+/* 3532 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3534 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3536 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3538 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+/* 3540 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3542 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 3544 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter column */
+
+/* 3546 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3548 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 3550 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter nRowsSpanned */
+
+/* 3552 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3554 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 3556 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3558 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3560 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 3562 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_rowHeader */
+
+/* 3564 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3566 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3570 */ NdrFcShort( 0x11 ), /* 17 */
+/* 3572 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 3574 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3576 */ NdrFcShort( 0x24 ), /* 36 */
+/* 3578 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 3580 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3582 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3584 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3586 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter accessibleTable */
+
+/* 3588 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 3590 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 3592 */ NdrFcShort( 0x574 ), /* Type Offset=1396 */
+
+ /* Parameter startingColumnIndex */
+
+/* 3594 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3596 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 3598 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3600 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3602 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 3604 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_rowIndex */
+
+/* 3606 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3608 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3612 */ NdrFcShort( 0x12 ), /* 18 */
+/* 3614 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 3616 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3618 */ NdrFcShort( 0x24 ), /* 36 */
+/* 3620 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 3622 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3624 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3626 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3628 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter cellIndex */
+
+/* 3630 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3632 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 3634 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter rowIndex */
+
+/* 3636 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3638 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 3640 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3642 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3644 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 3646 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_selectedChildren */
+
+/* 3648 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3650 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3654 */ NdrFcShort( 0x13 ), /* 19 */
+/* 3656 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 3658 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3660 */ NdrFcShort( 0x24 ), /* 36 */
+/* 3662 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x4, /* 4 */
+/* 3664 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 3666 */ NdrFcShort( 0x1 ), /* 1 */
+/* 3668 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3670 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter maxChildren */
+
+/* 3672 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3674 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 3676 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter children */
+
+/* 3678 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
+/* 3680 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 3682 */ NdrFcShort( 0x58a ), /* Type Offset=1418 */
+
+ /* Parameter nChildren */
+
+/* 3684 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3686 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 3688 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3690 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3692 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 3694 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_selectedColumns */
+
+/* 3696 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3698 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3702 */ NdrFcShort( 0x14 ), /* 20 */
+/* 3704 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 3706 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3708 */ NdrFcShort( 0x24 ), /* 36 */
+/* 3710 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x4, /* 4 */
+/* 3712 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 3714 */ NdrFcShort( 0x1 ), /* 1 */
+/* 3716 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3718 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter maxColumns */
+
+/* 3720 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3722 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 3724 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter columns */
+
+/* 3726 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
+/* 3728 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 3730 */ NdrFcShort( 0x58a ), /* Type Offset=1418 */
+
+ /* Parameter nColumns */
+
+/* 3732 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3734 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 3736 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3738 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3740 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 3742 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_selectedRows */
+
+/* 3744 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3746 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3750 */ NdrFcShort( 0x15 ), /* 21 */
+/* 3752 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 3754 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3756 */ NdrFcShort( 0x24 ), /* 36 */
+/* 3758 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x4, /* 4 */
+/* 3760 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 3762 */ NdrFcShort( 0x1 ), /* 1 */
+/* 3764 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3766 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter maxRows */
+
+/* 3768 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3770 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 3772 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter rows */
+
+/* 3774 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
+/* 3776 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 3778 */ NdrFcShort( 0x58a ), /* Type Offset=1418 */
+
+ /* Parameter nRows */
+
+/* 3780 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3782 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 3784 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3786 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3788 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 3790 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_summary */
+
+/* 3792 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3794 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3798 */ NdrFcShort( 0x16 ), /* 22 */
+/* 3800 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 3802 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3804 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3806 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 3808 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3810 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3812 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3814 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter accessible */
+
+/* 3816 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 3818 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 3820 */ NdrFcShort( 0x2e ), /* Type Offset=46 */
+
+ /* Return value */
+
+/* 3822 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3824 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 3826 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_isColumnSelected */
+
+/* 3828 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3830 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3834 */ NdrFcShort( 0x17 ), /* 23 */
+/* 3836 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 3838 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3840 */ NdrFcShort( 0x21 ), /* 33 */
+/* 3842 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 3844 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3846 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3848 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3850 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter column */
+
+/* 3852 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3854 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 3856 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter isSelected */
+
+/* 3858 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3860 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 3862 */ 0x3, /* FC_SMALL */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3864 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3866 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 3868 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_isRowSelected */
+
+/* 3870 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3872 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3876 */ NdrFcShort( 0x18 ), /* 24 */
+/* 3878 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 3880 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3882 */ NdrFcShort( 0x21 ), /* 33 */
+/* 3884 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 3886 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3888 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3890 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3892 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+/* 3894 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3896 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 3898 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter isSelected */
+
+/* 3900 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3902 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 3904 */ 0x3, /* FC_SMALL */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3906 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3908 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 3910 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_isSelected */
+
+/* 3912 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3914 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3918 */ NdrFcShort( 0x19 ), /* 25 */
+/* 3920 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 3922 */ NdrFcShort( 0x10 ), /* 16 */
+/* 3924 */ NdrFcShort( 0x21 ), /* 33 */
+/* 3926 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x4, /* 4 */
+/* 3928 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3930 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3932 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3934 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+/* 3936 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3938 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 3940 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter column */
+
+/* 3942 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3944 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 3946 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter isSelected */
+
+/* 3948 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 3950 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 3952 */ 0x3, /* FC_SMALL */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3954 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3956 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 3958 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure selectRow */
+
+/* 3960 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3962 */ NdrFcLong( 0x0 ), /* 0 */
+/* 3966 */ NdrFcShort( 0x1a ), /* 26 */
+/* 3968 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 3970 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3972 */ NdrFcShort( 0x8 ), /* 8 */
+/* 3974 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 3976 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 3978 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3980 */ NdrFcShort( 0x0 ), /* 0 */
+/* 3982 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+/* 3984 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 3986 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 3988 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 3990 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 3992 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 3994 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure selectColumn */
+
+/* 3996 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 3998 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4002 */ NdrFcShort( 0x1b ), /* 27 */
+/* 4004 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 4006 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4008 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4010 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 4012 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4014 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4016 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4018 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter column */
+
+/* 4020 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 4022 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 4024 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4026 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4028 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 4030 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure unselectRow */
+
+/* 4032 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4034 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4038 */ NdrFcShort( 0x1c ), /* 28 */
+/* 4040 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 4042 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4044 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4046 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 4048 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4050 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4052 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4054 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+/* 4056 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 4058 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 4060 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4062 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4064 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 4066 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure unselectColumn */
+
+/* 4068 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4070 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4074 */ NdrFcShort( 0x1d ), /* 29 */
+/* 4076 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 4078 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4080 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4082 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 4084 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4086 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4088 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4090 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter column */
+
+/* 4092 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 4094 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 4096 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4098 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4100 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 4102 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_rowColumnExtentsAtIndex */
+
+/* 4104 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4106 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4110 */ NdrFcShort( 0x1e ), /* 30 */
+/* 4112 */ NdrFcShort( 0x20 ), /* x86 Stack size/offset = 32 */
+/* 4114 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4116 */ NdrFcShort( 0x91 ), /* 145 */
+/* 4118 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x7, /* 7 */
+/* 4120 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4122 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4124 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4126 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter index */
+
+/* 4128 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 4130 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 4132 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter row */
+
+/* 4134 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4136 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 4138 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter column */
+
+/* 4140 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4142 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 4144 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter rowExtents */
+
+/* 4146 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4148 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 4150 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter columnExtents */
+
+/* 4152 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4154 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 4156 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter isSelected */
+
+/* 4158 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4160 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */
+/* 4162 */ 0x3, /* FC_SMALL */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4164 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4166 */ NdrFcShort( 0x1c ), /* x86 Stack size/offset = 28 */
+/* 4168 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_modelChange */
+
+/* 4170 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4172 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4176 */ NdrFcShort( 0x1f ), /* 31 */
+/* 4178 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 4180 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4182 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4184 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 4186 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4188 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4190 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4192 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter modelChange */
+
+/* 4194 */ NdrFcShort( 0x6113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=24 */
+/* 4196 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 4198 */ NdrFcShort( 0x5a8 ), /* Type Offset=1448 */
+
+ /* Return value */
+
+/* 4200 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4202 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 4204 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_rowExtent */
+
+
+ /* Procedure get_nColumns */
+
+/* 4206 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4208 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4212 */ NdrFcShort( 0x6 ), /* 6 */
+/* 4214 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 4216 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4218 */ NdrFcShort( 0x24 ), /* 36 */
+/* 4220 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 4222 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4224 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4226 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4228 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter nRowsSpanned */
+
+
+ /* Parameter columnCount */
+
+/* 4230 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4232 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 4234 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 4236 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4238 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 4240 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_rowIndex */
+
+
+ /* Procedure get_nSelectedCells */
+
+/* 4242 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4244 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4248 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4250 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 4252 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4254 */ NdrFcShort( 0x24 ), /* 36 */
+/* 4256 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 4258 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4260 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4262 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4264 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter rowIndex */
+
+
+ /* Parameter cellCount */
+
+/* 4266 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4268 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 4270 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+
+ /* Return value */
+
+/* 4272 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4274 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 4276 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_nSelectedColumns */
+
+/* 4278 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4280 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4284 */ NdrFcShort( 0x9 ), /* 9 */
+/* 4286 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 4288 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4290 */ NdrFcShort( 0x24 ), /* 36 */
+/* 4292 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 4294 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4296 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4298 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4300 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter columnCount */
+
+/* 4302 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4304 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 4306 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4308 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4310 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 4312 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_rowDescription */
+
+/* 4314 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4316 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4320 */ NdrFcShort( 0xb ), /* 11 */
+/* 4322 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 4324 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4326 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4328 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 4330 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 4332 */ NdrFcShort( 0x1 ), /* 1 */
+/* 4334 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4336 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+/* 4338 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 4340 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 4342 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter description */
+
+/* 4344 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 4346 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 4348 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 4350 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4352 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 4354 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_selectedCells */
+
+/* 4356 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4358 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4362 */ NdrFcShort( 0xc ), /* 12 */
+/* 4364 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 4366 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4368 */ NdrFcShort( 0x24 ), /* 36 */
+/* 4370 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 4372 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 4374 */ NdrFcShort( 0x1 ), /* 1 */
+/* 4376 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4378 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter cells */
+
+/* 4380 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
+/* 4382 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 4384 */ NdrFcShort( 0x5b6 ), /* Type Offset=1462 */
+
+ /* Parameter nSelectedCells */
+
+/* 4386 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4388 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 4390 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4392 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4394 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 4396 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_selectedColumns */
+
+/* 4398 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4400 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4404 */ NdrFcShort( 0xd ), /* 13 */
+/* 4406 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 4408 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4410 */ NdrFcShort( 0x24 ), /* 36 */
+/* 4412 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 4414 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 4416 */ NdrFcShort( 0x1 ), /* 1 */
+/* 4418 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4420 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter selectedColumns */
+
+/* 4422 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
+/* 4424 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 4426 */ NdrFcShort( 0x5d4 ), /* Type Offset=1492 */
+
+ /* Parameter nColumns */
+
+/* 4428 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4430 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 4432 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4434 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4436 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 4438 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_selectedRows */
+
+/* 4440 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4442 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4446 */ NdrFcShort( 0xe ), /* 14 */
+/* 4448 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 4450 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4452 */ NdrFcShort( 0x24 ), /* 36 */
+/* 4454 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 4456 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 4458 */ NdrFcShort( 0x1 ), /* 1 */
+/* 4460 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4462 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter selectedRows */
+
+/* 4464 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
+/* 4466 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 4468 */ NdrFcShort( 0x5d4 ), /* Type Offset=1492 */
+
+ /* Parameter nRows */
+
+/* 4470 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4472 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 4474 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4476 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4478 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 4480 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_summary */
+
+/* 4482 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4484 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4488 */ NdrFcShort( 0xf ), /* 15 */
+/* 4490 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 4492 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4494 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4496 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 4498 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4500 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4502 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4504 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter accessible */
+
+/* 4506 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 4508 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 4510 */ NdrFcShort( 0x2e ), /* Type Offset=46 */
+
+ /* Return value */
+
+/* 4512 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4514 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 4516 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_isColumnSelected */
+
+/* 4518 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4520 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4524 */ NdrFcShort( 0x10 ), /* 16 */
+/* 4526 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 4528 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4530 */ NdrFcShort( 0x21 ), /* 33 */
+/* 4532 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 4534 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4536 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4538 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4540 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter column */
+
+/* 4542 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 4544 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 4546 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter isSelected */
+
+/* 4548 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4550 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 4552 */ 0x3, /* FC_SMALL */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4554 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4556 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 4558 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_isRowSelected */
+
+/* 4560 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4562 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4566 */ NdrFcShort( 0x11 ), /* 17 */
+/* 4568 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 4570 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4572 */ NdrFcShort( 0x21 ), /* 33 */
+/* 4574 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 4576 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4578 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4580 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4582 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+/* 4584 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 4586 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 4588 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter isSelected */
+
+/* 4590 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4592 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 4594 */ 0x3, /* FC_SMALL */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4596 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4598 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 4600 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure selectRow */
+
+/* 4602 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4604 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4608 */ NdrFcShort( 0x12 ), /* 18 */
+/* 4610 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 4612 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4614 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4616 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 4618 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4620 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4622 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4624 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+/* 4626 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 4628 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 4630 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4632 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4634 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 4636 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure selectColumn */
+
+/* 4638 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4640 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4644 */ NdrFcShort( 0x13 ), /* 19 */
+/* 4646 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 4648 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4650 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4652 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 4654 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4656 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4658 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4660 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter column */
+
+/* 4662 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 4664 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 4666 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4668 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4670 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 4672 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure unselectRow */
+
+/* 4674 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4676 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4680 */ NdrFcShort( 0x14 ), /* 20 */
+/* 4682 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 4684 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4686 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4688 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 4690 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4692 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4694 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4696 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+/* 4698 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 4700 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 4702 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4704 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4706 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 4708 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure unselectColumn */
+
+/* 4710 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4712 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4716 */ NdrFcShort( 0x15 ), /* 21 */
+/* 4718 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 4720 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4722 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4724 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 4726 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4728 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4730 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4732 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter column */
+
+/* 4734 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 4736 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 4738 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4740 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4742 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 4744 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_modelChange */
+
+/* 4746 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4748 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4752 */ NdrFcShort( 0x16 ), /* 22 */
+/* 4754 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 4756 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4758 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4760 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 4762 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4764 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4766 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4768 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter modelChange */
+
+/* 4770 */ NdrFcShort( 0x6113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=24 */
+/* 4772 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 4774 */ NdrFcShort( 0x5a8 ), /* Type Offset=1448 */
+
+ /* Return value */
+
+/* 4776 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4778 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 4780 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_columnHeaderCells */
+
+/* 4782 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4784 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4788 */ NdrFcShort( 0x4 ), /* 4 */
+/* 4790 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 4792 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4794 */ NdrFcShort( 0x24 ), /* 36 */
+/* 4796 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 4798 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 4800 */ NdrFcShort( 0x1 ), /* 1 */
+/* 4802 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4804 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter cellAccessibles */
+
+/* 4806 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
+/* 4808 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 4810 */ NdrFcShort( 0x5b6 ), /* Type Offset=1462 */
+
+ /* Parameter nColumnHeaderCells */
+
+/* 4812 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4814 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 4816 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4818 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4820 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 4822 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_rowHeaderCells */
+
+/* 4824 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4826 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4830 */ NdrFcShort( 0x7 ), /* 7 */
+/* 4832 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 4834 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4836 */ NdrFcShort( 0x24 ), /* 36 */
+/* 4838 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x3, /* 3 */
+/* 4840 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 4842 */ NdrFcShort( 0x1 ), /* 1 */
+/* 4844 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4846 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter cellAccessibles */
+
+/* 4848 */ NdrFcShort( 0x2013 ), /* Flags: must size, must free, out, srv alloc size=8 */
+/* 4850 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 4852 */ NdrFcShort( 0x5b6 ), /* Type Offset=1462 */
+
+ /* Parameter nRowHeaderCells */
+
+/* 4854 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4856 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 4858 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4860 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4862 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 4864 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_isSelected */
+
+/* 4866 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4868 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4872 */ NdrFcShort( 0x9 ), /* 9 */
+/* 4874 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 4876 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4878 */ NdrFcShort( 0x21 ), /* 33 */
+/* 4880 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x2, /* 2 */
+/* 4882 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4884 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4886 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4888 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter isSelected */
+
+/* 4890 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4892 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 4894 */ 0x3, /* FC_SMALL */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4896 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4898 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 4900 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_rowColumnExtents */
+
+/* 4902 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4904 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4908 */ NdrFcShort( 0xa ), /* 10 */
+/* 4910 */ NdrFcShort( 0x1c ), /* x86 Stack size/offset = 28 */
+/* 4912 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4914 */ NdrFcShort( 0x91 ), /* 145 */
+/* 4916 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x6, /* 6 */
+/* 4918 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4920 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4922 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4924 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter row */
+
+/* 4926 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4928 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 4930 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter column */
+
+/* 4932 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4934 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 4936 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter rowExtents */
+
+/* 4938 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4940 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 4942 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter columnExtents */
+
+/* 4944 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4946 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 4948 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter isSelected */
+
+/* 4950 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 4952 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 4954 */ 0x3, /* FC_SMALL */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 4956 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4958 */ NdrFcShort( 0x18 ), /* x86 Stack size/offset = 24 */
+/* 4960 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_table */
+
+/* 4962 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 4964 */ NdrFcLong( 0x0 ), /* 0 */
+/* 4968 */ NdrFcShort( 0xb ), /* 11 */
+/* 4970 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 4972 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4974 */ NdrFcShort( 0x8 ), /* 8 */
+/* 4976 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 4978 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 4980 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4982 */ NdrFcShort( 0x0 ), /* 0 */
+/* 4984 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter table */
+
+/* 4986 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 4988 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 4990 */ NdrFcShort( 0x2e ), /* Type Offset=46 */
+
+ /* Return value */
+
+/* 4992 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 4994 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 4996 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_imagePosition */
+
+/* 4998 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 5000 */ NdrFcLong( 0x0 ), /* 0 */
+/* 5004 */ NdrFcShort( 0x4 ), /* 4 */
+/* 5006 */ NdrFcShort( 0x14 ), /* x86 Stack size/offset = 20 */
+/* 5008 */ NdrFcShort( 0x6 ), /* 6 */
+/* 5010 */ NdrFcShort( 0x40 ), /* 64 */
+/* 5012 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x4, /* 4 */
+/* 5014 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 5016 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5018 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5020 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter coordinateType */
+
+/* 5022 */ NdrFcShort( 0x48 ), /* Flags: in, base type, */
+/* 5024 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 5026 */ 0xd, /* FC_ENUM16 */
+ 0x0, /* 0 */
+
+ /* Parameter x */
+
+/* 5028 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 5030 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 5032 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter y */
+
+/* 5034 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 5036 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 5038 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 5040 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 5042 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 5044 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_imageSize */
+
+/* 5046 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 5048 */ NdrFcLong( 0x0 ), /* 0 */
+/* 5052 */ NdrFcShort( 0x5 ), /* 5 */
+/* 5054 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 5056 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5058 */ NdrFcShort( 0x40 ), /* 64 */
+/* 5060 */ 0x44, /* Oi2 Flags: has return, has ext, */
+ 0x3, /* 3 */
+/* 5062 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 5064 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5066 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5068 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter height */
+
+/* 5070 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 5072 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 5074 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Parameter width */
+
+/* 5076 */ NdrFcShort( 0x2150 ), /* Flags: out, base type, simple ref, srv alloc size=8 */
+/* 5078 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 5080 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Return value */
+
+/* 5082 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 5084 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 5086 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_toolkitName */
+
+/* 5088 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 5090 */ NdrFcLong( 0x0 ), /* 0 */
+/* 5094 */ NdrFcShort( 0x5 ), /* 5 */
+/* 5096 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 5098 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5100 */ NdrFcShort( 0x8 ), /* 8 */
+/* 5102 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 5104 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 5106 */ NdrFcShort( 0x1 ), /* 1 */
+/* 5108 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5110 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter name */
+
+/* 5112 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 5114 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 5116 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 5118 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 5120 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 5122 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_toolkitVersion */
+
+/* 5124 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 5126 */ NdrFcLong( 0x0 ), /* 0 */
+/* 5130 */ NdrFcShort( 0x6 ), /* 6 */
+/* 5132 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 5134 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5136 */ NdrFcShort( 0x8 ), /* 8 */
+/* 5138 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 5140 */ 0x8, /* 8 */
+ 0x3, /* Ext Flags: new corr desc, clt corr check, */
+/* 5142 */ NdrFcShort( 0x1 ), /* 1 */
+/* 5144 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5146 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter version */
+
+/* 5148 */ NdrFcShort( 0x2113 ), /* Flags: must size, must free, out, simple ref, srv alloc size=8 */
+/* 5150 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 5152 */ NdrFcShort( 0x20 ), /* Type Offset=32 */
+
+ /* Return value */
+
+/* 5154 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 5156 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 5158 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ /* Procedure get_anchorTarget */
+
+/* 5160 */ 0x33, /* FC_AUTO_HANDLE */
+ 0x6c, /* Old Flags: object, Oi2 */
+/* 5162 */ NdrFcLong( 0x0 ), /* 0 */
+/* 5166 */ NdrFcShort( 0x3 ), /* 3 */
+/* 5168 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 5170 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5172 */ NdrFcShort( 0x8 ), /* 8 */
+/* 5174 */ 0x45, /* Oi2 Flags: srv must size, has return, has ext, */
+ 0x2, /* 2 */
+/* 5176 */ 0x8, /* 8 */
+ 0x1, /* Ext Flags: new corr desc, */
+/* 5178 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5180 */ NdrFcShort( 0x0 ), /* 0 */
+/* 5182 */ NdrFcShort( 0x0 ), /* 0 */
+
+ /* Parameter accessible */
+
+/* 5184 */ NdrFcShort( 0x13 ), /* Flags: must size, must free, out, */
+/* 5186 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 5188 */ NdrFcShort( 0x2e ), /* Type Offset=46 */
+
+ /* Return value */
+
+/* 5190 */ NdrFcShort( 0x70 ), /* Flags: out, return, base type, */
+/* 5192 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 5194 */ 0x8, /* FC_LONG */
+ 0x0, /* 0 */
+
+ 0x0
+ }
+ };
+
+static const ia2_api_all_MIDL_TYPE_FORMAT_STRING ia2_api_all__MIDL_TypeFormatString =
+ {
+ 0,
+ {
+ NdrFcShort( 0x0 ), /* 0 */
+/* 2 */
+ 0x11, 0x4, /* FC_RP [alloced_on_stack] */
+/* 4 */ NdrFcShort( 0x1c ), /* Offset= 28 (32) */
+/* 6 */
+ 0x13, 0x0, /* FC_OP */
+/* 8 */ NdrFcShort( 0xe ), /* Offset= 14 (22) */
+/* 10 */
+ 0x1b, /* FC_CARRAY */
+ 0x1, /* 1 */
+/* 12 */ NdrFcShort( 0x2 ), /* 2 */
+/* 14 */ 0x9, /* Corr desc: FC_ULONG */
+ 0x0, /* */
+/* 16 */ NdrFcShort( 0xfffc ), /* -4 */
+/* 18 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 20 */ 0x6, /* FC_SHORT */
+ 0x5b, /* FC_END */
+/* 22 */
+ 0x17, /* FC_CSTRUCT */
+ 0x3, /* 3 */
+/* 24 */ NdrFcShort( 0x8 ), /* 8 */
+/* 26 */ NdrFcShort( 0xfff0 ), /* Offset= -16 (10) */
+/* 28 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 30 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 32 */ 0xb4, /* FC_USER_MARSHAL */
+ 0x83, /* 131 */
+/* 34 */ NdrFcShort( 0x0 ), /* 0 */
+/* 36 */ NdrFcShort( 0x4 ), /* 4 */
+/* 38 */ NdrFcShort( 0x0 ), /* 0 */
+/* 40 */ NdrFcShort( 0xffde ), /* Offset= -34 (6) */
+/* 42 */
+ 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
+/* 44 */ 0x8, /* FC_LONG */
+ 0x5c, /* FC_PAD */
+/* 46 */
+ 0x11, 0x10, /* FC_RP [pointer_deref] */
+/* 48 */ NdrFcShort( 0x2 ), /* Offset= 2 (50) */
+/* 50 */
+ 0x2f, /* FC_IP */
+ 0x5a, /* FC_CONSTANT_IID */
+/* 52 */ NdrFcLong( 0x0 ), /* 0 */
+/* 56 */ NdrFcShort( 0x0 ), /* 0 */
+/* 58 */ NdrFcShort( 0x0 ), /* 0 */
+/* 60 */ 0xc0, /* 192 */
+ 0x0, /* 0 */
+/* 62 */ 0x0, /* 0 */
+ 0x0, /* 0 */
+/* 64 */ 0x0, /* 0 */
+ 0x0, /* 0 */
+/* 66 */ 0x0, /* 0 */
+ 0x46, /* 70 */
+/* 68 */
+ 0x11, 0x0, /* FC_RP */
+/* 70 */ NdrFcShort( 0x2 ), /* Offset= 2 (72) */
+/* 72 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 74 */ NdrFcShort( 0x0 ), /* 0 */
+/* 76 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x0, /* */
+/* 78 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 80 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 82 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x54, /* FC_DEREFERENCE */
+/* 84 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 86 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 88 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 90 */ NdrFcShort( 0xffd8 ), /* Offset= -40 (50) */
+/* 92 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 94 */
+ 0x11, 0x14, /* FC_RP [alloced_on_stack] [pointer_deref] */
+/* 96 */ NdrFcShort( 0x2 ), /* Offset= 2 (98) */
+/* 98 */
+ 0x13, 0x0, /* FC_OP */
+/* 100 */ NdrFcShort( 0x2 ), /* Offset= 2 (102) */
+/* 102 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 104 */ NdrFcShort( 0x0 ), /* 0 */
+/* 106 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x0, /* */
+/* 108 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 110 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 112 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x54, /* FC_DEREFERENCE */
+/* 114 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 116 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 118 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 120 */ NdrFcShort( 0xffa8 ), /* Offset= -88 (32) */
+/* 122 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 124 */
+ 0x11, 0x10, /* FC_RP [pointer_deref] */
+/* 126 */ NdrFcShort( 0x2 ), /* Offset= 2 (128) */
+/* 128 */
+ 0x2f, /* FC_IP */
+ 0x5a, /* FC_CONSTANT_IID */
+/* 130 */ NdrFcLong( 0x7cdf86ee ), /* 2095023854 */
+/* 134 */ NdrFcShort( 0xc3da ), /* -15398 */
+/* 136 */ NdrFcShort( 0x496a ), /* 18794 */
+/* 138 */ 0xbd, /* 189 */
+ 0xa4, /* 164 */
+/* 140 */ 0x28, /* 40 */
+ 0x1b, /* 27 */
+/* 142 */ 0x33, /* 51 */
+ 0x6e, /* 110 */
+/* 144 */ 0x1f, /* 31 */
+ 0xdc, /* 220 */
+/* 146 */
+ 0x11, 0x0, /* FC_RP */
+/* 148 */ NdrFcShort( 0x2 ), /* Offset= 2 (150) */
+/* 150 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 152 */ NdrFcShort( 0x0 ), /* 0 */
+/* 154 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x0, /* */
+/* 156 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 158 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 160 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x54, /* FC_DEREFERENCE */
+/* 162 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 164 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 166 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 168 */ NdrFcShort( 0xffd8 ), /* Offset= -40 (128) */
+/* 170 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 172 */
+ 0x11, 0x14, /* FC_RP [alloced_on_stack] [pointer_deref] */
+/* 174 */ NdrFcShort( 0x2 ), /* Offset= 2 (176) */
+/* 176 */
+ 0x13, 0x0, /* FC_OP */
+/* 178 */ NdrFcShort( 0x2 ), /* Offset= 2 (180) */
+/* 180 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 182 */ NdrFcShort( 0x0 ), /* 0 */
+/* 184 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x0, /* */
+/* 186 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 188 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 190 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x54, /* FC_DEREFERENCE */
+/* 192 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 194 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 196 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 198 */ NdrFcShort( 0xff5a ), /* Offset= -166 (32) */
+/* 200 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 202 */
+ 0x11, 0x4, /* FC_RP [alloced_on_stack] */
+/* 204 */ NdrFcShort( 0x1a ), /* Offset= 26 (230) */
+/* 206 */
+ 0x13, 0x0, /* FC_OP */
+/* 208 */ NdrFcShort( 0x2 ), /* Offset= 2 (210) */
+/* 210 */
+ 0x2a, /* FC_ENCAPSULATED_UNION */
+ 0x48, /* 72 */
+/* 212 */ NdrFcShort( 0x4 ), /* 4 */
+/* 214 */ NdrFcShort( 0x2 ), /* 2 */
+/* 216 */ NdrFcLong( 0x48746457 ), /* 1215587415 */
+/* 220 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
+/* 222 */ NdrFcLong( 0x52746457 ), /* 1383359575 */
+/* 226 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
+/* 228 */ NdrFcShort( 0xffff ), /* Offset= -1 (227) */
+/* 230 */ 0xb4, /* FC_USER_MARSHAL */
+ 0x83, /* 131 */
+/* 232 */ NdrFcShort( 0x1 ), /* 1 */
+/* 234 */ NdrFcShort( 0x4 ), /* 4 */
+/* 236 */ NdrFcShort( 0x0 ), /* 0 */
+/* 238 */ NdrFcShort( 0xffe0 ), /* Offset= -32 (206) */
+/* 240 */
+ 0x11, 0x4, /* FC_RP [alloced_on_stack] */
+/* 242 */ NdrFcShort( 0x2 ), /* Offset= 2 (244) */
+/* 244 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 246 */ NdrFcShort( 0xc ), /* 12 */
+/* 248 */ NdrFcShort( 0x0 ), /* 0 */
+/* 250 */ NdrFcShort( 0x0 ), /* Offset= 0 (250) */
+/* 252 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 254 */ NdrFcShort( 0xff22 ), /* Offset= -222 (32) */
+/* 256 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 258 */ NdrFcShort( 0xff1e ), /* Offset= -226 (32) */
+/* 260 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 262 */ NdrFcShort( 0xff1a ), /* Offset= -230 (32) */
+/* 264 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 266 */
+ 0x12, 0x0, /* FC_UP */
+/* 268 */ NdrFcShort( 0xff0a ), /* Offset= -246 (22) */
+/* 270 */ 0xb4, /* FC_USER_MARSHAL */
+ 0x83, /* 131 */
+/* 272 */ NdrFcShort( 0x0 ), /* 0 */
+/* 274 */ NdrFcShort( 0x4 ), /* 4 */
+/* 276 */ NdrFcShort( 0x0 ), /* 0 */
+/* 278 */ NdrFcShort( 0xfff4 ), /* Offset= -12 (266) */
+/* 280 */
+ 0x11, 0x4, /* FC_RP [alloced_on_stack] */
+/* 282 */ NdrFcShort( 0x3d4 ), /* Offset= 980 (1262) */
+/* 284 */
+ 0x13, 0x0, /* FC_OP */
+/* 286 */ NdrFcShort( 0x3bc ), /* Offset= 956 (1242) */
+/* 288 */
+ 0x2b, /* FC_NON_ENCAPSULATED_UNION */
+ 0x9, /* FC_ULONG */
+/* 290 */ 0x7, /* Corr desc: FC_USHORT */
+ 0x0, /* */
+/* 292 */ NdrFcShort( 0xfff8 ), /* -8 */
+/* 294 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 296 */ NdrFcShort( 0x2 ), /* Offset= 2 (298) */
+/* 298 */ NdrFcShort( 0x10 ), /* 16 */
+/* 300 */ NdrFcShort( 0x2f ), /* 47 */
+/* 302 */ NdrFcLong( 0x14 ), /* 20 */
+/* 306 */ NdrFcShort( 0x800b ), /* Simple arm type: FC_HYPER */
+/* 308 */ NdrFcLong( 0x3 ), /* 3 */
+/* 312 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
+/* 314 */ NdrFcLong( 0x11 ), /* 17 */
+/* 318 */ NdrFcShort( 0x8001 ), /* Simple arm type: FC_BYTE */
+/* 320 */ NdrFcLong( 0x2 ), /* 2 */
+/* 324 */ NdrFcShort( 0x8006 ), /* Simple arm type: FC_SHORT */
+/* 326 */ NdrFcLong( 0x4 ), /* 4 */
+/* 330 */ NdrFcShort( 0x800a ), /* Simple arm type: FC_FLOAT */
+/* 332 */ NdrFcLong( 0x5 ), /* 5 */
+/* 336 */ NdrFcShort( 0x800c ), /* Simple arm type: FC_DOUBLE */
+/* 338 */ NdrFcLong( 0xb ), /* 11 */
+/* 342 */ NdrFcShort( 0x8006 ), /* Simple arm type: FC_SHORT */
+/* 344 */ NdrFcLong( 0xa ), /* 10 */
+/* 348 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
+/* 350 */ NdrFcLong( 0x6 ), /* 6 */
+/* 354 */ NdrFcShort( 0xe8 ), /* Offset= 232 (586) */
+/* 356 */ NdrFcLong( 0x7 ), /* 7 */
+/* 360 */ NdrFcShort( 0x800c ), /* Simple arm type: FC_DOUBLE */
+/* 362 */ NdrFcLong( 0x8 ), /* 8 */
+/* 366 */ NdrFcShort( 0xfe98 ), /* Offset= -360 (6) */
+/* 368 */ NdrFcLong( 0xd ), /* 13 */
+/* 372 */ NdrFcShort( 0xfebe ), /* Offset= -322 (50) */
+/* 374 */ NdrFcLong( 0x9 ), /* 9 */
+/* 378 */ NdrFcShort( 0xd6 ), /* Offset= 214 (592) */
+/* 380 */ NdrFcLong( 0x2000 ), /* 8192 */
+/* 384 */ NdrFcShort( 0xe2 ), /* Offset= 226 (610) */
+/* 386 */ NdrFcLong( 0x24 ), /* 36 */
+/* 390 */ NdrFcShort( 0x30a ), /* Offset= 778 (1168) */
+/* 392 */ NdrFcLong( 0x4024 ), /* 16420 */
+/* 396 */ NdrFcShort( 0x304 ), /* Offset= 772 (1168) */
+/* 398 */ NdrFcLong( 0x4011 ), /* 16401 */
+/* 402 */ NdrFcShort( 0x302 ), /* Offset= 770 (1172) */
+/* 404 */ NdrFcLong( 0x4002 ), /* 16386 */
+/* 408 */ NdrFcShort( 0x300 ), /* Offset= 768 (1176) */
+/* 410 */ NdrFcLong( 0x4003 ), /* 16387 */
+/* 414 */ NdrFcShort( 0x2fe ), /* Offset= 766 (1180) */
+/* 416 */ NdrFcLong( 0x4014 ), /* 16404 */
+/* 420 */ NdrFcShort( 0x2fc ), /* Offset= 764 (1184) */
+/* 422 */ NdrFcLong( 0x4004 ), /* 16388 */
+/* 426 */ NdrFcShort( 0x2fa ), /* Offset= 762 (1188) */
+/* 428 */ NdrFcLong( 0x4005 ), /* 16389 */
+/* 432 */ NdrFcShort( 0x2f8 ), /* Offset= 760 (1192) */
+/* 434 */ NdrFcLong( 0x400b ), /* 16395 */
+/* 438 */ NdrFcShort( 0x2e2 ), /* Offset= 738 (1176) */
+/* 440 */ NdrFcLong( 0x400a ), /* 16394 */
+/* 444 */ NdrFcShort( 0x2e0 ), /* Offset= 736 (1180) */
+/* 446 */ NdrFcLong( 0x4006 ), /* 16390 */
+/* 450 */ NdrFcShort( 0x2ea ), /* Offset= 746 (1196) */
+/* 452 */ NdrFcLong( 0x4007 ), /* 16391 */
+/* 456 */ NdrFcShort( 0x2e0 ), /* Offset= 736 (1192) */
+/* 458 */ NdrFcLong( 0x4008 ), /* 16392 */
+/* 462 */ NdrFcShort( 0x2e2 ), /* Offset= 738 (1200) */
+/* 464 */ NdrFcLong( 0x400d ), /* 16397 */
+/* 468 */ NdrFcShort( 0x2e0 ), /* Offset= 736 (1204) */
+/* 470 */ NdrFcLong( 0x4009 ), /* 16393 */
+/* 474 */ NdrFcShort( 0x2de ), /* Offset= 734 (1208) */
+/* 476 */ NdrFcLong( 0x6000 ), /* 24576 */
+/* 480 */ NdrFcShort( 0x2dc ), /* Offset= 732 (1212) */
+/* 482 */ NdrFcLong( 0x400c ), /* 16396 */
+/* 486 */ NdrFcShort( 0x2da ), /* Offset= 730 (1216) */
+/* 488 */ NdrFcLong( 0x10 ), /* 16 */
+/* 492 */ NdrFcShort( 0x8002 ), /* Simple arm type: FC_CHAR */
+/* 494 */ NdrFcLong( 0x12 ), /* 18 */
+/* 498 */ NdrFcShort( 0x8006 ), /* Simple arm type: FC_SHORT */
+/* 500 */ NdrFcLong( 0x13 ), /* 19 */
+/* 504 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
+/* 506 */ NdrFcLong( 0x15 ), /* 21 */
+/* 510 */ NdrFcShort( 0x800b ), /* Simple arm type: FC_HYPER */
+/* 512 */ NdrFcLong( 0x16 ), /* 22 */
+/* 516 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
+/* 518 */ NdrFcLong( 0x17 ), /* 23 */
+/* 522 */ NdrFcShort( 0x8008 ), /* Simple arm type: FC_LONG */
+/* 524 */ NdrFcLong( 0xe ), /* 14 */
+/* 528 */ NdrFcShort( 0x2b8 ), /* Offset= 696 (1224) */
+/* 530 */ NdrFcLong( 0x400e ), /* 16398 */
+/* 534 */ NdrFcShort( 0x2bc ), /* Offset= 700 (1234) */
+/* 536 */ NdrFcLong( 0x4010 ), /* 16400 */
+/* 540 */ NdrFcShort( 0x2ba ), /* Offset= 698 (1238) */
+/* 542 */ NdrFcLong( 0x4012 ), /* 16402 */
+/* 546 */ NdrFcShort( 0x276 ), /* Offset= 630 (1176) */
+/* 548 */ NdrFcLong( 0x4013 ), /* 16403 */
+/* 552 */ NdrFcShort( 0x274 ), /* Offset= 628 (1180) */
+/* 554 */ NdrFcLong( 0x4015 ), /* 16405 */
+/* 558 */ NdrFcShort( 0x272 ), /* Offset= 626 (1184) */
+/* 560 */ NdrFcLong( 0x4016 ), /* 16406 */
+/* 564 */ NdrFcShort( 0x268 ), /* Offset= 616 (1180) */
+/* 566 */ NdrFcLong( 0x4017 ), /* 16407 */
+/* 570 */ NdrFcShort( 0x262 ), /* Offset= 610 (1180) */
+/* 572 */ NdrFcLong( 0x0 ), /* 0 */
+/* 576 */ NdrFcShort( 0x0 ), /* Offset= 0 (576) */
+/* 578 */ NdrFcLong( 0x1 ), /* 1 */
+/* 582 */ NdrFcShort( 0x0 ), /* Offset= 0 (582) */
+/* 584 */ NdrFcShort( 0xffff ), /* Offset= -1 (583) */
+/* 586 */
+ 0x15, /* FC_STRUCT */
+ 0x7, /* 7 */
+/* 588 */ NdrFcShort( 0x8 ), /* 8 */
+/* 590 */ 0xb, /* FC_HYPER */
+ 0x5b, /* FC_END */
+/* 592 */
+ 0x2f, /* FC_IP */
+ 0x5a, /* FC_CONSTANT_IID */
+/* 594 */ NdrFcLong( 0x20400 ), /* 132096 */
+/* 598 */ NdrFcShort( 0x0 ), /* 0 */
+/* 600 */ NdrFcShort( 0x0 ), /* 0 */
+/* 602 */ 0xc0, /* 192 */
+ 0x0, /* 0 */
+/* 604 */ 0x0, /* 0 */
+ 0x0, /* 0 */
+/* 606 */ 0x0, /* 0 */
+ 0x0, /* 0 */
+/* 608 */ 0x0, /* 0 */
+ 0x46, /* 70 */
+/* 610 */
+ 0x13, 0x10, /* FC_OP [pointer_deref] */
+/* 612 */ NdrFcShort( 0x2 ), /* Offset= 2 (614) */
+/* 614 */
+ 0x13, 0x0, /* FC_OP */
+/* 616 */ NdrFcShort( 0x216 ), /* Offset= 534 (1150) */
+/* 618 */
+ 0x2a, /* FC_ENCAPSULATED_UNION */
+ 0x49, /* 73 */
+/* 620 */ NdrFcShort( 0x18 ), /* 24 */
+/* 622 */ NdrFcShort( 0xa ), /* 10 */
+/* 624 */ NdrFcLong( 0x8 ), /* 8 */
+/* 628 */ NdrFcShort( 0x5a ), /* Offset= 90 (718) */
+/* 630 */ NdrFcLong( 0xd ), /* 13 */
+/* 634 */ NdrFcShort( 0x7e ), /* Offset= 126 (760) */
+/* 636 */ NdrFcLong( 0x9 ), /* 9 */
+/* 640 */ NdrFcShort( 0x9e ), /* Offset= 158 (798) */
+/* 642 */ NdrFcLong( 0xc ), /* 12 */
+/* 646 */ NdrFcShort( 0xc8 ), /* Offset= 200 (846) */
+/* 648 */ NdrFcLong( 0x24 ), /* 36 */
+/* 652 */ NdrFcShort( 0x124 ), /* Offset= 292 (944) */
+/* 654 */ NdrFcLong( 0x800d ), /* 32781 */
+/* 658 */ NdrFcShort( 0x140 ), /* Offset= 320 (978) */
+/* 660 */ NdrFcLong( 0x10 ), /* 16 */
+/* 664 */ NdrFcShort( 0x15a ), /* Offset= 346 (1010) */
+/* 666 */ NdrFcLong( 0x2 ), /* 2 */
+/* 670 */ NdrFcShort( 0x174 ), /* Offset= 372 (1042) */
+/* 672 */ NdrFcLong( 0x3 ), /* 3 */
+/* 676 */ NdrFcShort( 0x18e ), /* Offset= 398 (1074) */
+/* 678 */ NdrFcLong( 0x14 ), /* 20 */
+/* 682 */ NdrFcShort( 0x1a8 ), /* Offset= 424 (1106) */
+/* 684 */ NdrFcShort( 0xffff ), /* Offset= -1 (683) */
+/* 686 */
+ 0x1b, /* FC_CARRAY */
+ 0x3, /* 3 */
+/* 688 */ NdrFcShort( 0x4 ), /* 4 */
+/* 690 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 692 */ NdrFcShort( 0x0 ), /* 0 */
+/* 694 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 696 */
+ 0x4b, /* FC_PP */
+ 0x5c, /* FC_PAD */
+/* 698 */
+ 0x48, /* FC_VARIABLE_REPEAT */
+ 0x49, /* FC_FIXED_OFFSET */
+/* 700 */ NdrFcShort( 0x4 ), /* 4 */
+/* 702 */ NdrFcShort( 0x0 ), /* 0 */
+/* 704 */ NdrFcShort( 0x1 ), /* 1 */
+/* 706 */ NdrFcShort( 0x0 ), /* 0 */
+/* 708 */ NdrFcShort( 0x0 ), /* 0 */
+/* 710 */ 0x13, 0x0, /* FC_OP */
+/* 712 */ NdrFcShort( 0xfd4e ), /* Offset= -690 (22) */
+/* 714 */
+ 0x5b, /* FC_END */
+
+ 0x8, /* FC_LONG */
+/* 716 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 718 */
+ 0x16, /* FC_PSTRUCT */
+ 0x3, /* 3 */
+/* 720 */ NdrFcShort( 0x8 ), /* 8 */
+/* 722 */
+ 0x4b, /* FC_PP */
+ 0x5c, /* FC_PAD */
+/* 724 */
+ 0x46, /* FC_NO_REPEAT */
+ 0x5c, /* FC_PAD */
+/* 726 */ NdrFcShort( 0x4 ), /* 4 */
+/* 728 */ NdrFcShort( 0x4 ), /* 4 */
+/* 730 */ 0x11, 0x0, /* FC_RP */
+/* 732 */ NdrFcShort( 0xffd2 ), /* Offset= -46 (686) */
+/* 734 */
+ 0x5b, /* FC_END */
+
+ 0x8, /* FC_LONG */
+/* 736 */ 0x8, /* FC_LONG */
+ 0x5b, /* FC_END */
+/* 738 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 740 */ NdrFcShort( 0x0 ), /* 0 */
+/* 742 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 744 */ NdrFcShort( 0x0 ), /* 0 */
+/* 746 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 748 */ NdrFcLong( 0xffffffff ), /* -1 */
+/* 752 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 754 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 756 */ NdrFcShort( 0xfd3e ), /* Offset= -706 (50) */
+/* 758 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 760 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 762 */ NdrFcShort( 0x8 ), /* 8 */
+/* 764 */ NdrFcShort( 0x0 ), /* 0 */
+/* 766 */ NdrFcShort( 0x6 ), /* Offset= 6 (772) */
+/* 768 */ 0x8, /* FC_LONG */
+ 0x36, /* FC_POINTER */
+/* 770 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 772 */
+ 0x11, 0x0, /* FC_RP */
+/* 774 */ NdrFcShort( 0xffdc ), /* Offset= -36 (738) */
+/* 776 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 778 */ NdrFcShort( 0x0 ), /* 0 */
+/* 780 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 782 */ NdrFcShort( 0x0 ), /* 0 */
+/* 784 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 786 */ NdrFcLong( 0xffffffff ), /* -1 */
+/* 790 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 792 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 794 */ NdrFcShort( 0xff36 ), /* Offset= -202 (592) */
+/* 796 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 798 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 800 */ NdrFcShort( 0x8 ), /* 8 */
+/* 802 */ NdrFcShort( 0x0 ), /* 0 */
+/* 804 */ NdrFcShort( 0x6 ), /* Offset= 6 (810) */
+/* 806 */ 0x8, /* FC_LONG */
+ 0x36, /* FC_POINTER */
+/* 808 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 810 */
+ 0x11, 0x0, /* FC_RP */
+/* 812 */ NdrFcShort( 0xffdc ), /* Offset= -36 (776) */
+/* 814 */
+ 0x1b, /* FC_CARRAY */
+ 0x3, /* 3 */
+/* 816 */ NdrFcShort( 0x4 ), /* 4 */
+/* 818 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 820 */ NdrFcShort( 0x0 ), /* 0 */
+/* 822 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 824 */
+ 0x4b, /* FC_PP */
+ 0x5c, /* FC_PAD */
+/* 826 */
+ 0x48, /* FC_VARIABLE_REPEAT */
+ 0x49, /* FC_FIXED_OFFSET */
+/* 828 */ NdrFcShort( 0x4 ), /* 4 */
+/* 830 */ NdrFcShort( 0x0 ), /* 0 */
+/* 832 */ NdrFcShort( 0x1 ), /* 1 */
+/* 834 */ NdrFcShort( 0x0 ), /* 0 */
+/* 836 */ NdrFcShort( 0x0 ), /* 0 */
+/* 838 */ 0x13, 0x0, /* FC_OP */
+/* 840 */ NdrFcShort( 0x192 ), /* Offset= 402 (1242) */
+/* 842 */
+ 0x5b, /* FC_END */
+
+ 0x8, /* FC_LONG */
+/* 844 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 846 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 848 */ NdrFcShort( 0x8 ), /* 8 */
+/* 850 */ NdrFcShort( 0x0 ), /* 0 */
+/* 852 */ NdrFcShort( 0x6 ), /* Offset= 6 (858) */
+/* 854 */ 0x8, /* FC_LONG */
+ 0x36, /* FC_POINTER */
+/* 856 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 858 */
+ 0x11, 0x0, /* FC_RP */
+/* 860 */ NdrFcShort( 0xffd2 ), /* Offset= -46 (814) */
+/* 862 */
+ 0x2f, /* FC_IP */
+ 0x5a, /* FC_CONSTANT_IID */
+/* 864 */ NdrFcLong( 0x2f ), /* 47 */
+/* 868 */ NdrFcShort( 0x0 ), /* 0 */
+/* 870 */ NdrFcShort( 0x0 ), /* 0 */
+/* 872 */ 0xc0, /* 192 */
+ 0x0, /* 0 */
+/* 874 */ 0x0, /* 0 */
+ 0x0, /* 0 */
+/* 876 */ 0x0, /* 0 */
+ 0x0, /* 0 */
+/* 878 */ 0x0, /* 0 */
+ 0x46, /* 70 */
+/* 880 */
+ 0x1b, /* FC_CARRAY */
+ 0x0, /* 0 */
+/* 882 */ NdrFcShort( 0x1 ), /* 1 */
+/* 884 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 886 */ NdrFcShort( 0x4 ), /* 4 */
+/* 888 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 890 */ 0x1, /* FC_BYTE */
+ 0x5b, /* FC_END */
+/* 892 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 894 */ NdrFcShort( 0x10 ), /* 16 */
+/* 896 */ NdrFcShort( 0x0 ), /* 0 */
+/* 898 */ NdrFcShort( 0xa ), /* Offset= 10 (908) */
+/* 900 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 902 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 904 */ NdrFcShort( 0xffd6 ), /* Offset= -42 (862) */
+/* 906 */ 0x36, /* FC_POINTER */
+ 0x5b, /* FC_END */
+/* 908 */
+ 0x13, 0x0, /* FC_OP */
+/* 910 */ NdrFcShort( 0xffe2 ), /* Offset= -30 (880) */
+/* 912 */
+ 0x1b, /* FC_CARRAY */
+ 0x3, /* 3 */
+/* 914 */ NdrFcShort( 0x4 ), /* 4 */
+/* 916 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 918 */ NdrFcShort( 0x0 ), /* 0 */
+/* 920 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 922 */
+ 0x4b, /* FC_PP */
+ 0x5c, /* FC_PAD */
+/* 924 */
+ 0x48, /* FC_VARIABLE_REPEAT */
+ 0x49, /* FC_FIXED_OFFSET */
+/* 926 */ NdrFcShort( 0x4 ), /* 4 */
+/* 928 */ NdrFcShort( 0x0 ), /* 0 */
+/* 930 */ NdrFcShort( 0x1 ), /* 1 */
+/* 932 */ NdrFcShort( 0x0 ), /* 0 */
+/* 934 */ NdrFcShort( 0x0 ), /* 0 */
+/* 936 */ 0x13, 0x0, /* FC_OP */
+/* 938 */ NdrFcShort( 0xffd2 ), /* Offset= -46 (892) */
+/* 940 */
+ 0x5b, /* FC_END */
+
+ 0x8, /* FC_LONG */
+/* 942 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 944 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 946 */ NdrFcShort( 0x8 ), /* 8 */
+/* 948 */ NdrFcShort( 0x0 ), /* 0 */
+/* 950 */ NdrFcShort( 0x6 ), /* Offset= 6 (956) */
+/* 952 */ 0x8, /* FC_LONG */
+ 0x36, /* FC_POINTER */
+/* 954 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 956 */
+ 0x11, 0x0, /* FC_RP */
+/* 958 */ NdrFcShort( 0xffd2 ), /* Offset= -46 (912) */
+/* 960 */
+ 0x1d, /* FC_SMFARRAY */
+ 0x0, /* 0 */
+/* 962 */ NdrFcShort( 0x8 ), /* 8 */
+/* 964 */ 0x1, /* FC_BYTE */
+ 0x5b, /* FC_END */
+/* 966 */
+ 0x15, /* FC_STRUCT */
+ 0x3, /* 3 */
+/* 968 */ NdrFcShort( 0x10 ), /* 16 */
+/* 970 */ 0x8, /* FC_LONG */
+ 0x6, /* FC_SHORT */
+/* 972 */ 0x6, /* FC_SHORT */
+ 0x4c, /* FC_EMBEDDED_COMPLEX */
+/* 974 */ 0x0, /* 0 */
+ NdrFcShort( 0xfff1 ), /* Offset= -15 (960) */
+ 0x5b, /* FC_END */
+/* 978 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 980 */ NdrFcShort( 0x18 ), /* 24 */
+/* 982 */ NdrFcShort( 0x0 ), /* 0 */
+/* 984 */ NdrFcShort( 0xa ), /* Offset= 10 (994) */
+/* 986 */ 0x8, /* FC_LONG */
+ 0x36, /* FC_POINTER */
+/* 988 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 990 */ NdrFcShort( 0xffe8 ), /* Offset= -24 (966) */
+/* 992 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 994 */
+ 0x11, 0x0, /* FC_RP */
+/* 996 */ NdrFcShort( 0xfefe ), /* Offset= -258 (738) */
+/* 998 */
+ 0x1b, /* FC_CARRAY */
+ 0x0, /* 0 */
+/* 1000 */ NdrFcShort( 0x1 ), /* 1 */
+/* 1002 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 1004 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1006 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 1008 */ 0x1, /* FC_BYTE */
+ 0x5b, /* FC_END */
+/* 1010 */
+ 0x16, /* FC_PSTRUCT */
+ 0x3, /* 3 */
+/* 1012 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1014 */
+ 0x4b, /* FC_PP */
+ 0x5c, /* FC_PAD */
+/* 1016 */
+ 0x46, /* FC_NO_REPEAT */
+ 0x5c, /* FC_PAD */
+/* 1018 */ NdrFcShort( 0x4 ), /* 4 */
+/* 1020 */ NdrFcShort( 0x4 ), /* 4 */
+/* 1022 */ 0x13, 0x0, /* FC_OP */
+/* 1024 */ NdrFcShort( 0xffe6 ), /* Offset= -26 (998) */
+/* 1026 */
+ 0x5b, /* FC_END */
+
+ 0x8, /* FC_LONG */
+/* 1028 */ 0x8, /* FC_LONG */
+ 0x5b, /* FC_END */
+/* 1030 */
+ 0x1b, /* FC_CARRAY */
+ 0x1, /* 1 */
+/* 1032 */ NdrFcShort( 0x2 ), /* 2 */
+/* 1034 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 1036 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1038 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 1040 */ 0x6, /* FC_SHORT */
+ 0x5b, /* FC_END */
+/* 1042 */
+ 0x16, /* FC_PSTRUCT */
+ 0x3, /* 3 */
+/* 1044 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1046 */
+ 0x4b, /* FC_PP */
+ 0x5c, /* FC_PAD */
+/* 1048 */
+ 0x46, /* FC_NO_REPEAT */
+ 0x5c, /* FC_PAD */
+/* 1050 */ NdrFcShort( 0x4 ), /* 4 */
+/* 1052 */ NdrFcShort( 0x4 ), /* 4 */
+/* 1054 */ 0x13, 0x0, /* FC_OP */
+/* 1056 */ NdrFcShort( 0xffe6 ), /* Offset= -26 (1030) */
+/* 1058 */
+ 0x5b, /* FC_END */
+
+ 0x8, /* FC_LONG */
+/* 1060 */ 0x8, /* FC_LONG */
+ 0x5b, /* FC_END */
+/* 1062 */
+ 0x1b, /* FC_CARRAY */
+ 0x3, /* 3 */
+/* 1064 */ NdrFcShort( 0x4 ), /* 4 */
+/* 1066 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 1068 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1070 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 1072 */ 0x8, /* FC_LONG */
+ 0x5b, /* FC_END */
+/* 1074 */
+ 0x16, /* FC_PSTRUCT */
+ 0x3, /* 3 */
+/* 1076 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1078 */
+ 0x4b, /* FC_PP */
+ 0x5c, /* FC_PAD */
+/* 1080 */
+ 0x46, /* FC_NO_REPEAT */
+ 0x5c, /* FC_PAD */
+/* 1082 */ NdrFcShort( 0x4 ), /* 4 */
+/* 1084 */ NdrFcShort( 0x4 ), /* 4 */
+/* 1086 */ 0x13, 0x0, /* FC_OP */
+/* 1088 */ NdrFcShort( 0xffe6 ), /* Offset= -26 (1062) */
+/* 1090 */
+ 0x5b, /* FC_END */
+
+ 0x8, /* FC_LONG */
+/* 1092 */ 0x8, /* FC_LONG */
+ 0x5b, /* FC_END */
+/* 1094 */
+ 0x1b, /* FC_CARRAY */
+ 0x7, /* 7 */
+/* 1096 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1098 */ 0x19, /* Corr desc: field pointer, FC_ULONG */
+ 0x0, /* */
+/* 1100 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1102 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 1104 */ 0xb, /* FC_HYPER */
+ 0x5b, /* FC_END */
+/* 1106 */
+ 0x16, /* FC_PSTRUCT */
+ 0x3, /* 3 */
+/* 1108 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1110 */
+ 0x4b, /* FC_PP */
+ 0x5c, /* FC_PAD */
+/* 1112 */
+ 0x46, /* FC_NO_REPEAT */
+ 0x5c, /* FC_PAD */
+/* 1114 */ NdrFcShort( 0x4 ), /* 4 */
+/* 1116 */ NdrFcShort( 0x4 ), /* 4 */
+/* 1118 */ 0x13, 0x0, /* FC_OP */
+/* 1120 */ NdrFcShort( 0xffe6 ), /* Offset= -26 (1094) */
+/* 1122 */
+ 0x5b, /* FC_END */
+
+ 0x8, /* FC_LONG */
+/* 1124 */ 0x8, /* FC_LONG */
+ 0x5b, /* FC_END */
+/* 1126 */
+ 0x15, /* FC_STRUCT */
+ 0x3, /* 3 */
+/* 1128 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1130 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 1132 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 1134 */
+ 0x1b, /* FC_CARRAY */
+ 0x3, /* 3 */
+/* 1136 */ NdrFcShort( 0x8 ), /* 8 */
+/* 1138 */ 0x7, /* Corr desc: FC_USHORT */
+ 0x0, /* */
+/* 1140 */ NdrFcShort( 0xffd8 ), /* -40 */
+/* 1142 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 1144 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 1146 */ NdrFcShort( 0xffec ), /* Offset= -20 (1126) */
+/* 1148 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 1150 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 1152 */ NdrFcShort( 0x28 ), /* 40 */
+/* 1154 */ NdrFcShort( 0xffec ), /* Offset= -20 (1134) */
+/* 1156 */ NdrFcShort( 0x0 ), /* Offset= 0 (1156) */
+/* 1158 */ 0x6, /* FC_SHORT */
+ 0x6, /* FC_SHORT */
+/* 1160 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 1162 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 1164 */ NdrFcShort( 0xfdde ), /* Offset= -546 (618) */
+/* 1166 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 1168 */
+ 0x13, 0x0, /* FC_OP */
+/* 1170 */ NdrFcShort( 0xfeea ), /* Offset= -278 (892) */
+/* 1172 */
+ 0x13, 0x8, /* FC_OP [simple_pointer] */
+/* 1174 */ 0x1, /* FC_BYTE */
+ 0x5c, /* FC_PAD */
+/* 1176 */
+ 0x13, 0x8, /* FC_OP [simple_pointer] */
+/* 1178 */ 0x6, /* FC_SHORT */
+ 0x5c, /* FC_PAD */
+/* 1180 */
+ 0x13, 0x8, /* FC_OP [simple_pointer] */
+/* 1182 */ 0x8, /* FC_LONG */
+ 0x5c, /* FC_PAD */
+/* 1184 */
+ 0x13, 0x8, /* FC_OP [simple_pointer] */
+/* 1186 */ 0xb, /* FC_HYPER */
+ 0x5c, /* FC_PAD */
+/* 1188 */
+ 0x13, 0x8, /* FC_OP [simple_pointer] */
+/* 1190 */ 0xa, /* FC_FLOAT */
+ 0x5c, /* FC_PAD */
+/* 1192 */
+ 0x13, 0x8, /* FC_OP [simple_pointer] */
+/* 1194 */ 0xc, /* FC_DOUBLE */
+ 0x5c, /* FC_PAD */
+/* 1196 */
+ 0x13, 0x0, /* FC_OP */
+/* 1198 */ NdrFcShort( 0xfd9c ), /* Offset= -612 (586) */
+/* 1200 */
+ 0x13, 0x10, /* FC_OP [pointer_deref] */
+/* 1202 */ NdrFcShort( 0xfb54 ), /* Offset= -1196 (6) */
+/* 1204 */
+ 0x13, 0x10, /* FC_OP [pointer_deref] */
+/* 1206 */ NdrFcShort( 0xfb7c ), /* Offset= -1156 (50) */
+/* 1208 */
+ 0x13, 0x10, /* FC_OP [pointer_deref] */
+/* 1210 */ NdrFcShort( 0xfd96 ), /* Offset= -618 (592) */
+/* 1212 */
+ 0x13, 0x10, /* FC_OP [pointer_deref] */
+/* 1214 */ NdrFcShort( 0xfda4 ), /* Offset= -604 (610) */
+/* 1216 */
+ 0x13, 0x10, /* FC_OP [pointer_deref] */
+/* 1218 */ NdrFcShort( 0x2 ), /* Offset= 2 (1220) */
+/* 1220 */
+ 0x13, 0x0, /* FC_OP */
+/* 1222 */ NdrFcShort( 0x14 ), /* Offset= 20 (1242) */
+/* 1224 */
+ 0x15, /* FC_STRUCT */
+ 0x7, /* 7 */
+/* 1226 */ NdrFcShort( 0x10 ), /* 16 */
+/* 1228 */ 0x6, /* FC_SHORT */
+ 0x1, /* FC_BYTE */
+/* 1230 */ 0x1, /* FC_BYTE */
+ 0x8, /* FC_LONG */
+/* 1232 */ 0xb, /* FC_HYPER */
+ 0x5b, /* FC_END */
+/* 1234 */
+ 0x13, 0x0, /* FC_OP */
+/* 1236 */ NdrFcShort( 0xfff4 ), /* Offset= -12 (1224) */
+/* 1238 */
+ 0x13, 0x8, /* FC_OP [simple_pointer] */
+/* 1240 */ 0x2, /* FC_CHAR */
+ 0x5c, /* FC_PAD */
+/* 1242 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x7, /* 7 */
+/* 1244 */ NdrFcShort( 0x20 ), /* 32 */
+/* 1246 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1248 */ NdrFcShort( 0x0 ), /* Offset= 0 (1248) */
+/* 1250 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 1252 */ 0x6, /* FC_SHORT */
+ 0x6, /* FC_SHORT */
+/* 1254 */ 0x6, /* FC_SHORT */
+ 0x6, /* FC_SHORT */
+/* 1256 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 1258 */ NdrFcShort( 0xfc36 ), /* Offset= -970 (288) */
+/* 1260 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 1262 */ 0xb4, /* FC_USER_MARSHAL */
+ 0x83, /* 131 */
+/* 1264 */ NdrFcShort( 0x2 ), /* 2 */
+/* 1266 */ NdrFcShort( 0x10 ), /* 16 */
+/* 1268 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1270 */ NdrFcShort( 0xfc26 ), /* Offset= -986 (284) */
+/* 1272 */
+ 0x11, 0x14, /* FC_RP [alloced_on_stack] [pointer_deref] */
+/* 1274 */ NdrFcShort( 0x2 ), /* Offset= 2 (1276) */
+/* 1276 */
+ 0x13, 0x0, /* FC_OP */
+/* 1278 */ NdrFcShort( 0x2 ), /* Offset= 2 (1280) */
+/* 1280 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 1282 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1284 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x54, /* FC_DEREFERENCE */
+/* 1286 */ NdrFcShort( 0x10 ), /* x86 Stack size/offset = 16 */
+/* 1288 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 1290 */ NdrFcLong( 0xffffffff ), /* -1 */
+/* 1294 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 1296 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 1298 */ NdrFcShort( 0xfb20 ), /* Offset= -1248 (50) */
+/* 1300 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 1302 */
+ 0x12, 0x0, /* FC_UP */
+/* 1304 */ NdrFcShort( 0xffc2 ), /* Offset= -62 (1242) */
+/* 1306 */ 0xb4, /* FC_USER_MARSHAL */
+ 0x83, /* 131 */
+/* 1308 */ NdrFcShort( 0x2 ), /* 2 */
+/* 1310 */ NdrFcShort( 0x10 ), /* 16 */
+/* 1312 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1314 */ NdrFcShort( 0xfff4 ), /* Offset= -12 (1302) */
+/* 1316 */
+ 0x11, 0x4, /* FC_RP [alloced_on_stack] */
+/* 1318 */ NdrFcShort( 0x2 ), /* Offset= 2 (1320) */
+/* 1320 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 1322 */ NdrFcShort( 0xc ), /* 12 */
+/* 1324 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1326 */ NdrFcShort( 0x0 ), /* Offset= 0 (1326) */
+/* 1328 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 1330 */ NdrFcShort( 0xfaee ), /* Offset= -1298 (32) */
+/* 1332 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 1334 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 1336 */
+ 0x11, 0x0, /* FC_RP */
+/* 1338 */ NdrFcShort( 0xfbd4 ), /* Offset= -1068 (270) */
+/* 1340 */
+ 0x11, 0xc, /* FC_RP [alloced_on_stack] [simple_pointer] */
+/* 1342 */ 0x3, /* FC_SMALL */
+ 0x5c, /* FC_PAD */
+/* 1344 */
+ 0x11, 0x10, /* FC_RP [pointer_deref] */
+/* 1346 */ NdrFcShort( 0x2 ), /* Offset= 2 (1348) */
+/* 1348 */
+ 0x2f, /* FC_IP */
+ 0x5a, /* FC_CONSTANT_IID */
+/* 1350 */ NdrFcLong( 0x1c20f2b ), /* 29495083 */
+/* 1354 */ NdrFcShort( 0x3dd2 ), /* 15826 */
+/* 1356 */ NdrFcShort( 0x400f ), /* 16399 */
+/* 1358 */ 0x94, /* 148 */
+ 0x9f, /* 159 */
+/* 1360 */ 0xad, /* 173 */
+ 0x0, /* 0 */
+/* 1362 */ 0xbd, /* 189 */
+ 0xab, /* 171 */
+/* 1364 */ 0x1d, /* 29 */
+ 0x41, /* 65 */
+/* 1366 */
+ 0x11, 0x14, /* FC_RP [alloced_on_stack] [pointer_deref] */
+/* 1368 */ NdrFcShort( 0x2 ), /* Offset= 2 (1370) */
+/* 1370 */
+ 0x13, 0x0, /* FC_OP */
+/* 1372 */ NdrFcShort( 0x2 ), /* Offset= 2 (1374) */
+/* 1374 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 1376 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1378 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x54, /* FC_DEREFERENCE */
+/* 1380 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1382 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 1384 */ NdrFcLong( 0xffffffff ), /* -1 */
+/* 1388 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 1390 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 1392 */ NdrFcShort( 0xffd4 ), /* Offset= -44 (1348) */
+/* 1394 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 1396 */
+ 0x11, 0x10, /* FC_RP [pointer_deref] */
+/* 1398 */ NdrFcShort( 0x2 ), /* Offset= 2 (1400) */
+/* 1400 */
+ 0x2f, /* FC_IP */
+ 0x5a, /* FC_CONSTANT_IID */
+/* 1402 */ NdrFcLong( 0x35ad8070 ), /* 900563056 */
+/* 1406 */ NdrFcShort( 0xc20c ), /* -15860 */
+/* 1408 */ NdrFcShort( 0x4fb4 ), /* 20404 */
+/* 1410 */ 0xb0, /* 176 */
+ 0x94, /* 148 */
+/* 1412 */ 0xf4, /* 244 */
+ 0xf7, /* 247 */
+/* 1414 */ 0x27, /* 39 */
+ 0x5d, /* 93 */
+/* 1416 */ 0xd4, /* 212 */
+ 0x69, /* 105 */
+/* 1418 */
+ 0x11, 0x14, /* FC_RP [alloced_on_stack] [pointer_deref] */
+/* 1420 */ NdrFcShort( 0x2 ), /* Offset= 2 (1422) */
+/* 1422 */
+ 0x13, 0x0, /* FC_OP */
+/* 1424 */ NdrFcShort( 0x2 ), /* Offset= 2 (1426) */
+/* 1426 */
+ 0x1c, /* FC_CVARRAY */
+ 0x3, /* 3 */
+/* 1428 */ NdrFcShort( 0x4 ), /* 4 */
+/* 1430 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x0, /* */
+/* 1432 */ NdrFcShort( 0x4 ), /* x86 Stack size/offset = 4 */
+/* 1434 */ NdrFcShort( 0x1 ), /* Corr flags: early, */
+/* 1436 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x54, /* FC_DEREFERENCE */
+/* 1438 */ NdrFcShort( 0xc ), /* x86 Stack size/offset = 12 */
+/* 1440 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 1442 */ 0x8, /* FC_LONG */
+ 0x5b, /* FC_END */
+/* 1444 */
+ 0x11, 0x4, /* FC_RP [alloced_on_stack] */
+/* 1446 */ NdrFcShort( 0x2 ), /* Offset= 2 (1448) */
+/* 1448 */
+ 0x1a, /* FC_BOGUS_STRUCT */
+ 0x3, /* 3 */
+/* 1450 */ NdrFcShort( 0x14 ), /* 20 */
+/* 1452 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1454 */ NdrFcShort( 0x0 ), /* Offset= 0 (1454) */
+/* 1456 */ 0xd, /* FC_ENUM16 */
+ 0x8, /* FC_LONG */
+/* 1458 */ 0x8, /* FC_LONG */
+ 0x8, /* FC_LONG */
+/* 1460 */ 0x8, /* FC_LONG */
+ 0x5b, /* FC_END */
+/* 1462 */
+ 0x11, 0x14, /* FC_RP [alloced_on_stack] [pointer_deref] */
+/* 1464 */ NdrFcShort( 0x2 ), /* Offset= 2 (1466) */
+/* 1466 */
+ 0x13, 0x0, /* FC_OP */
+/* 1468 */ NdrFcShort( 0x2 ), /* Offset= 2 (1470) */
+/* 1470 */
+ 0x21, /* FC_BOGUS_ARRAY */
+ 0x3, /* 3 */
+/* 1472 */ NdrFcShort( 0x0 ), /* 0 */
+/* 1474 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x54, /* FC_DEREFERENCE */
+/* 1476 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1478 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 1480 */ NdrFcLong( 0xffffffff ), /* -1 */
+/* 1484 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 1486 */ 0x4c, /* FC_EMBEDDED_COMPLEX */
+ 0x0, /* 0 */
+/* 1488 */ NdrFcShort( 0xfa62 ), /* Offset= -1438 (50) */
+/* 1490 */ 0x5c, /* FC_PAD */
+ 0x5b, /* FC_END */
+/* 1492 */
+ 0x11, 0x14, /* FC_RP [alloced_on_stack] [pointer_deref] */
+/* 1494 */ NdrFcShort( 0x2 ), /* Offset= 2 (1496) */
+/* 1496 */
+ 0x13, 0x0, /* FC_OP */
+/* 1498 */ NdrFcShort( 0x2 ), /* Offset= 2 (1500) */
+/* 1500 */
+ 0x1b, /* FC_CARRAY */
+ 0x3, /* 3 */
+/* 1502 */ NdrFcShort( 0x4 ), /* 4 */
+/* 1504 */ 0x28, /* Corr desc: parameter, FC_LONG */
+ 0x54, /* FC_DEREFERENCE */
+/* 1506 */ NdrFcShort( 0x8 ), /* x86 Stack size/offset = 8 */
+/* 1508 */ NdrFcShort( 0x0 ), /* Corr flags: */
+/* 1510 */ 0x8, /* FC_LONG */
+ 0x5b, /* FC_END */
+
+ 0x0
+ }
+ };
+
+static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] =
+ {
+
+ {
+ BSTR_UserSize
+ ,BSTR_UserMarshal
+ ,BSTR_UserUnmarshal
+ ,BSTR_UserFree
+ },
+ {
+ HWND_UserSize
+ ,HWND_UserMarshal
+ ,HWND_UserUnmarshal
+ ,HWND_UserFree
+ },
+ {
+ VARIANT_UserSize
+ ,VARIANT_UserMarshal
+ ,VARIANT_UserUnmarshal
+ ,VARIANT_UserFree
+ }
+
+ };
+
+
+
+/* Standard interface: __MIDL_itf_ia2_api_all_0000_0000, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}} */
+
+
+/* Object interface: IUnknown, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
+
+
+/* Object interface: IAccessibleRelation, ver. 0.0,
+ GUID={0x7CDF86EE,0xC3DA,0x496a,{0xBD,0xA4,0x28,0x1B,0x33,0x6E,0x1F,0xDC}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleRelation_FormatStringOffsetTable[] =
+ {
+ 0,
+ 36,
+ 72,
+ 108,
+ 150
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleRelation_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleRelation_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleRelation_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleRelation_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(8) _IAccessibleRelationProxyVtbl =
+{
+ &IAccessibleRelation_ProxyInfo,
+ &IID_IAccessibleRelation,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleRelation::get_relationType */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleRelation::get_localizedRelationType */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleRelation::get_nTargets */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleRelation::get_target */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleRelation::get_targets */
+};
+
+const CInterfaceStubVtbl _IAccessibleRelationStubVtbl =
+{
+ &IID_IAccessibleRelation,
+ &IAccessibleRelation_ServerInfo,
+ 8,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Standard interface: __MIDL_itf_ia2_api_all_0000_0001, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}} */
+
+
+/* Object interface: IAccessibleAction, ver. 0.0,
+ GUID={0xB70D9F59,0x3B5A,0x4dba,{0xAB,0x9E,0x22,0x01,0x2F,0x60,0x7D,0xF5}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleAction_FormatStringOffsetTable[] =
+ {
+ 198,
+ 234,
+ 270,
+ 312,
+ 366,
+ 408
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleAction_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleAction_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleAction_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleAction_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(9) _IAccessibleActionProxyVtbl =
+{
+ &IAccessibleAction_ProxyInfo,
+ &IID_IAccessibleAction,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleAction::nActions */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleAction::doAction */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleAction::get_description */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleAction::get_keyBinding */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleAction::get_name */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleAction::get_localizedName */
+};
+
+const CInterfaceStubVtbl _IAccessibleActionStubVtbl =
+{
+ &IID_IAccessibleAction,
+ &IAccessibleAction_ServerInfo,
+ 9,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Standard interface: __MIDL_itf_ia2_api_all_0000_0002, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}} */
+
+
+/* Object interface: IDispatch, ver. 0.0,
+ GUID={0x00020400,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
+
+
+/* Object interface: IAccessible, ver. 0.0,
+ GUID={0x618736e0,0x3c3d,0x11cf,{0x81,0x0c,0x00,0xaa,0x00,0x38,0x9b,0x71}} */
+
+
+/* Object interface: IAccessible2, ver. 0.0,
+ GUID={0xE89F726E,0xC4F4,0x4c19,{0xBB,0x19,0xB6,0x47,0xD7,0xFA,0x84,0x78}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessible2_FormatStringOffsetTable[] =
+ {
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ 450,
+ 486,
+ 528,
+ 576,
+ 612,
+ 648,
+ 696,
+ 744,
+ 780,
+ 816,
+ 852,
+ 888,
+ 936,
+ 984,
+ 1020,
+ 1056,
+ 1092,
+ 1128
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessible2_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessible2_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessible2_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessible2_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(46) _IAccessible2ProxyVtbl =
+{
+ &IAccessible2_ProxyInfo,
+ &IID_IAccessible2,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ 0 /* IDispatch::GetTypeInfoCount */ ,
+ 0 /* IDispatch::GetTypeInfo */ ,
+ 0 /* IDispatch::GetIDsOfNames */ ,
+ 0 /* IDispatch_Invoke_Proxy */ ,
+ 0 /* IAccessible::get_accParent */ ,
+ 0 /* IAccessible::get_accChildCount */ ,
+ 0 /* IAccessible::get_accChild */ ,
+ 0 /* IAccessible::get_accName */ ,
+ 0 /* IAccessible::get_accValue */ ,
+ 0 /* IAccessible::get_accDescription */ ,
+ 0 /* IAccessible::get_accRole */ ,
+ 0 /* IAccessible::get_accState */ ,
+ 0 /* IAccessible::get_accHelp */ ,
+ 0 /* IAccessible::get_accHelpTopic */ ,
+ 0 /* IAccessible::get_accKeyboardShortcut */ ,
+ 0 /* IAccessible::get_accFocus */ ,
+ 0 /* IAccessible::get_accSelection */ ,
+ 0 /* IAccessible::get_accDefaultAction */ ,
+ 0 /* IAccessible::accSelect */ ,
+ 0 /* IAccessible::accLocation */ ,
+ 0 /* IAccessible::accNavigate */ ,
+ 0 /* IAccessible::accHitTest */ ,
+ 0 /* IAccessible::accDoDefaultAction */ ,
+ 0 /* IAccessible::put_accName */ ,
+ 0 /* IAccessible::put_accValue */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_nRelations */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_relation */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_relations */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::role */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::scrollTo */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::scrollToPoint */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_groupPosition */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_states */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_extendedRole */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_localizedExtendedRole */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_nExtendedStates */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_extendedStates */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_localizedExtendedStates */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_uniqueID */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_windowHandle */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_indexInParent */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_locale */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_attributes */
+};
+
+
+static const PRPC_STUB_FUNCTION IAccessible2_table[] =
+{
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2
+};
+
+CInterfaceStubVtbl _IAccessible2StubVtbl =
+{
+ &IID_IAccessible2,
+ &IAccessible2_ServerInfo,
+ 46,
+ &IAccessible2_table[-3],
+ CStdStubBuffer_DELEGATING_METHODS
+};
+
+
+/* Object interface: IAccessible2_2, ver. 0.0,
+ GUID={0x6C9430E9,0x299D,0x4E6F,{0xBD,0x01,0xA8,0x2A,0x1E,0x88,0xD3,0xFF}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessible2_2_FormatStringOffsetTable[] =
+ {
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ (unsigned short) -1,
+ 450,
+ 486,
+ 528,
+ 576,
+ 612,
+ 648,
+ 696,
+ 744,
+ 780,
+ 816,
+ 852,
+ 888,
+ 936,
+ 984,
+ 1020,
+ 1056,
+ 1092,
+ 1128,
+ 1164,
+ 1206,
+ 1248
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessible2_2_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessible2_2_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessible2_2_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessible2_2_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(49) _IAccessible2_2ProxyVtbl =
+{
+ &IAccessible2_2_ProxyInfo,
+ &IID_IAccessible2_2,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ 0 /* IDispatch::GetTypeInfoCount */ ,
+ 0 /* IDispatch::GetTypeInfo */ ,
+ 0 /* IDispatch::GetIDsOfNames */ ,
+ 0 /* IDispatch_Invoke_Proxy */ ,
+ 0 /* IAccessible::get_accParent */ ,
+ 0 /* IAccessible::get_accChildCount */ ,
+ 0 /* IAccessible::get_accChild */ ,
+ 0 /* IAccessible::get_accName */ ,
+ 0 /* IAccessible::get_accValue */ ,
+ 0 /* IAccessible::get_accDescription */ ,
+ 0 /* IAccessible::get_accRole */ ,
+ 0 /* IAccessible::get_accState */ ,
+ 0 /* IAccessible::get_accHelp */ ,
+ 0 /* IAccessible::get_accHelpTopic */ ,
+ 0 /* IAccessible::get_accKeyboardShortcut */ ,
+ 0 /* IAccessible::get_accFocus */ ,
+ 0 /* IAccessible::get_accSelection */ ,
+ 0 /* IAccessible::get_accDefaultAction */ ,
+ 0 /* IAccessible::accSelect */ ,
+ 0 /* IAccessible::accLocation */ ,
+ 0 /* IAccessible::accNavigate */ ,
+ 0 /* IAccessible::accHitTest */ ,
+ 0 /* IAccessible::accDoDefaultAction */ ,
+ 0 /* IAccessible::put_accName */ ,
+ 0 /* IAccessible::put_accValue */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_nRelations */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_relation */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_relations */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::role */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::scrollTo */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::scrollToPoint */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_groupPosition */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_states */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_extendedRole */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_localizedExtendedRole */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_nExtendedStates */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_extendedStates */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_localizedExtendedStates */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_uniqueID */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_windowHandle */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_indexInParent */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_locale */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2::get_attributes */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2_2::get_attribute */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2_2::get_accessibleWithCaret */ ,
+ (void *) (INT_PTR) -1 /* IAccessible2_2::get_relationTargetsOfType */
+};
+
+
+static const PRPC_STUB_FUNCTION IAccessible2_2_table[] =
+{
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ STUB_FORWARDING_FUNCTION,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2,
+ NdrStubCall2
+};
+
+CInterfaceStubVtbl _IAccessible2_2StubVtbl =
+{
+ &IID_IAccessible2_2,
+ &IAccessible2_2_ServerInfo,
+ 49,
+ &IAccessible2_2_table[-3],
+ CStdStubBuffer_DELEGATING_METHODS
+};
+
+
+/* Standard interface: __MIDL_itf_ia2_api_all_0000_0004, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}} */
+
+
+/* Object interface: IAccessibleComponent, ver. 0.0,
+ GUID={0x1546D4B0,0x4C98,0x4bda,{0x89,0xAE,0x9A,0x64,0x74,0x8B,0xDD,0xE4}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleComponent_FormatStringOffsetTable[] =
+ {
+ 1302,
+ 1344,
+ 72
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleComponent_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleComponent_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleComponent_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleComponent_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(6) _IAccessibleComponentProxyVtbl =
+{
+ &IAccessibleComponent_ProxyInfo,
+ &IID_IAccessibleComponent,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleComponent::get_locationInParent */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleComponent::get_foreground */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleComponent::get_background */
+};
+
+const CInterfaceStubVtbl _IAccessibleComponentStubVtbl =
+{
+ &IID_IAccessibleComponent,
+ &IAccessibleComponent_ServerInfo,
+ 6,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Object interface: IAccessibleValue, ver. 0.0,
+ GUID={0x35855B5B,0xC566,0x4fd0,{0xA7,0xB1,0xE6,0x54,0x65,0x60,0x03,0x94}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleValue_FormatStringOffsetTable[] =
+ {
+ 1380,
+ 1416,
+ 1452,
+ 1488
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleValue_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleValue_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleValue_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleValue_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(7) _IAccessibleValueProxyVtbl =
+{
+ &IAccessibleValue_ProxyInfo,
+ &IID_IAccessibleValue,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleValue::get_currentValue */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleValue::setCurrentValue */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleValue::get_maximumValue */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleValue::get_minimumValue */
+};
+
+const CInterfaceStubVtbl _IAccessibleValueStubVtbl =
+{
+ &IID_IAccessibleValue,
+ &IAccessibleValue_ServerInfo,
+ 7,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Standard interface: __MIDL_itf_ia2_api_all_0000_0006, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}} */
+
+
+/* Object interface: IAccessibleText, ver. 0.0,
+ GUID={0x24FD2FFB,0x3AAD,0x4a08,{0x83,0x35,0xA3,0xAD,0x89,0xC0,0xFB,0x4B}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleText_FormatStringOffsetTable[] =
+ {
+ 1524,
+ 1566,
+ 72,
+ 1620,
+ 1686,
+ 1722,
+ 1776,
+ 1824,
+ 1872,
+ 1932,
+ 1992,
+ 2052,
+ 2088,
+ 2124,
+ 2172,
+ 2208,
+ 2256,
+ 2316,
+ 2352
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleText_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleText_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleText_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleText_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(22) _IAccessibleTextProxyVtbl =
+{
+ &IAccessibleText_ProxyInfo,
+ &IID_IAccessibleText,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::addSelection */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_attributes */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_caretOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_characterExtents */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_nSelections */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_offsetAtPoint */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_selection */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_text */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_textBeforeOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_textAfterOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_textAtOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::removeSelection */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::setCaretOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::setSelection */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_nCharacters */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::scrollSubstringTo */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::scrollSubstringToPoint */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_newText */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_oldText */
+};
+
+const CInterfaceStubVtbl _IAccessibleTextStubVtbl =
+{
+ &IID_IAccessibleText,
+ &IAccessibleText_ServerInfo,
+ 22,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Object interface: IAccessibleText2, ver. 0.0,
+ GUID={0x9690A9CC,0x5C80,0x4DF5,{0x85,0x2E,0x2D,0x5A,0xE4,0x18,0x9A,0x54}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleText2_FormatStringOffsetTable[] =
+ {
+ 1524,
+ 1566,
+ 72,
+ 1620,
+ 1686,
+ 1722,
+ 1776,
+ 1824,
+ 1872,
+ 1932,
+ 1992,
+ 2052,
+ 2088,
+ 2124,
+ 2172,
+ 2208,
+ 2256,
+ 2316,
+ 2352,
+ 2388
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleText2_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleText2_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleText2_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleText2_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(23) _IAccessibleText2ProxyVtbl =
+{
+ &IAccessibleText2_ProxyInfo,
+ &IID_IAccessibleText2,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::addSelection */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_attributes */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_caretOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_characterExtents */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_nSelections */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_offsetAtPoint */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_selection */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_text */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_textBeforeOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_textAfterOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_textAtOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::removeSelection */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::setCaretOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::setSelection */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_nCharacters */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::scrollSubstringTo */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::scrollSubstringToPoint */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_newText */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_oldText */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText2::get_attributeRange */
+};
+
+const CInterfaceStubVtbl _IAccessibleText2StubVtbl =
+{
+ &IID_IAccessibleText2,
+ &IAccessibleText2_ServerInfo,
+ 23,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Object interface: IAccessibleEditableText, ver. 0.0,
+ GUID={0xA59AA09A,0x7011,0x4b65,{0x93,0x9D,0x32,0xB1,0xFB,0x55,0x47,0xE3}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleEditableText_FormatStringOffsetTable[] =
+ {
+ 1524,
+ 2448,
+ 2490,
+ 2532,
+ 2574,
+ 2610,
+ 2658
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleEditableText_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleEditableText_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleEditableText_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleEditableText_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(10) _IAccessibleEditableTextProxyVtbl =
+{
+ &IAccessibleEditableText_ProxyInfo,
+ &IID_IAccessibleEditableText,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleEditableText::copyText */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleEditableText::deleteText */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleEditableText::insertText */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleEditableText::cutText */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleEditableText::pasteText */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleEditableText::replaceText */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleEditableText::setAttributes */
+};
+
+const CInterfaceStubVtbl _IAccessibleEditableTextStubVtbl =
+{
+ &IID_IAccessibleEditableText,
+ &IAccessibleEditableText_ServerInfo,
+ 10,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Object interface: IAccessibleHyperlink, ver. 0.0,
+ GUID={0x01C20F2B,0x3DD2,0x400f,{0x94,0x9F,0xAD,0x00,0xBD,0xAB,0x1D,0x41}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleHyperlink_FormatStringOffsetTable[] =
+ {
+ 198,
+ 234,
+ 270,
+ 312,
+ 366,
+ 408,
+ 2706,
+ 2748,
+ 2790,
+ 2826,
+ 2862
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleHyperlink_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleHyperlink_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleHyperlink_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleHyperlink_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(14) _IAccessibleHyperlinkProxyVtbl =
+{
+ &IAccessibleHyperlink_ProxyInfo,
+ &IID_IAccessibleHyperlink,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleAction::nActions */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleAction::doAction */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleAction::get_description */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleAction::get_keyBinding */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleAction::get_name */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleAction::get_localizedName */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleHyperlink::get_anchor */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleHyperlink::get_anchorTarget */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleHyperlink::get_startIndex */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleHyperlink::get_endIndex */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleHyperlink::get_valid */
+};
+
+const CInterfaceStubVtbl _IAccessibleHyperlinkStubVtbl =
+{
+ &IID_IAccessibleHyperlink,
+ &IAccessibleHyperlink_ServerInfo,
+ 14,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Object interface: IAccessibleHypertext, ver. 0.0,
+ GUID={0x6B4F8BBF,0xF1F2,0x418a,{0xB3,0x5E,0xA1,0x95,0xBC,0x41,0x03,0xB9}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleHypertext_FormatStringOffsetTable[] =
+ {
+ 1524,
+ 1566,
+ 72,
+ 1620,
+ 1686,
+ 1722,
+ 1776,
+ 1824,
+ 1872,
+ 1932,
+ 1992,
+ 2052,
+ 2088,
+ 2124,
+ 2172,
+ 2208,
+ 2256,
+ 2316,
+ 2352,
+ 2898,
+ 2934,
+ 2976
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleHypertext_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleHypertext_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleHypertext_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleHypertext_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(25) _IAccessibleHypertextProxyVtbl =
+{
+ &IAccessibleHypertext_ProxyInfo,
+ &IID_IAccessibleHypertext,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::addSelection */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_attributes */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_caretOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_characterExtents */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_nSelections */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_offsetAtPoint */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_selection */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_text */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_textBeforeOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_textAfterOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_textAtOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::removeSelection */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::setCaretOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::setSelection */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_nCharacters */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::scrollSubstringTo */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::scrollSubstringToPoint */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_newText */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_oldText */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleHypertext::get_nHyperlinks */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleHypertext::get_hyperlink */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleHypertext::get_hyperlinkIndex */
+};
+
+const CInterfaceStubVtbl _IAccessibleHypertextStubVtbl =
+{
+ &IID_IAccessibleHypertext,
+ &IAccessibleHypertext_ServerInfo,
+ 25,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Object interface: IAccessibleHypertext2, ver. 0.0,
+ GUID={0xCF64D89F,0x8287,0x4B44,{0x85,0x01,0xA8,0x27,0x45,0x3A,0x60,0x77}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleHypertext2_FormatStringOffsetTable[] =
+ {
+ 1524,
+ 1566,
+ 72,
+ 1620,
+ 1686,
+ 1722,
+ 1776,
+ 1824,
+ 1872,
+ 1932,
+ 1992,
+ 2052,
+ 2088,
+ 2124,
+ 2172,
+ 2208,
+ 2256,
+ 2316,
+ 2352,
+ 2898,
+ 2934,
+ 2976,
+ 3018
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleHypertext2_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleHypertext2_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleHypertext2_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleHypertext2_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(26) _IAccessibleHypertext2ProxyVtbl =
+{
+ &IAccessibleHypertext2_ProxyInfo,
+ &IID_IAccessibleHypertext2,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::addSelection */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_attributes */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_caretOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_characterExtents */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_nSelections */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_offsetAtPoint */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_selection */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_text */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_textBeforeOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_textAfterOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_textAtOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::removeSelection */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::setCaretOffset */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::setSelection */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_nCharacters */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::scrollSubstringTo */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::scrollSubstringToPoint */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_newText */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleText::get_oldText */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleHypertext::get_nHyperlinks */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleHypertext::get_hyperlink */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleHypertext::get_hyperlinkIndex */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleHypertext2::get_hyperlinks */
+};
+
+const CInterfaceStubVtbl _IAccessibleHypertext2StubVtbl =
+{
+ &IID_IAccessibleHypertext2,
+ &IAccessibleHypertext2_ServerInfo,
+ 26,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Object interface: IAccessibleTable, ver. 0.0,
+ GUID={0x35AD8070,0xC20C,0x4fb4,{0xB0,0x94,0xF4,0xF7,0x27,0x5D,0xD4,0x69}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleTable_FormatStringOffsetTable[] =
+ {
+ 3060,
+ 3108,
+ 3144,
+ 3192,
+ 3234,
+ 3282,
+ 3324,
+ 3366,
+ 2790,
+ 2826,
+ 3402,
+ 3438,
+ 3474,
+ 3516,
+ 3564,
+ 3606,
+ 3648,
+ 3696,
+ 3744,
+ 3792,
+ 3828,
+ 3870,
+ 3912,
+ 3960,
+ 3996,
+ 4032,
+ 4068,
+ 4104,
+ 4170
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleTable_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleTable_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleTable_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleTable_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(32) _IAccessibleTableProxyVtbl =
+{
+ &IAccessibleTable_ProxyInfo,
+ &IID_IAccessibleTable,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_accessibleAt */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_caption */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_childIndex */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_columnDescription */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_columnExtentAt */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_columnHeader */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_columnIndex */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_nColumns */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_nRows */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_nSelectedChildren */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_nSelectedColumns */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_nSelectedRows */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_rowDescription */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_rowExtentAt */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_rowHeader */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_rowIndex */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_selectedChildren */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_selectedColumns */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_selectedRows */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_summary */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_isColumnSelected */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_isRowSelected */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_isSelected */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::selectRow */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::selectColumn */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::unselectRow */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::unselectColumn */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_rowColumnExtentsAtIndex */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable::get_modelChange */
+};
+
+const CInterfaceStubVtbl _IAccessibleTableStubVtbl =
+{
+ &IID_IAccessibleTable,
+ &IAccessibleTable_ServerInfo,
+ 32,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Object interface: IAccessibleTable2, ver. 0.0,
+ GUID={0x6167f295,0x06f0,0x4cdd,{0xa1,0xfa,0x02,0xe2,0x51,0x53,0xd8,0x69}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleTable2_FormatStringOffsetTable[] =
+ {
+ 3060,
+ 3108,
+ 270,
+ 4206,
+ 1686,
+ 4242,
+ 4278,
+ 3366,
+ 4314,
+ 4356,
+ 4398,
+ 4440,
+ 4482,
+ 4518,
+ 4560,
+ 4602,
+ 4638,
+ 4674,
+ 4710,
+ 4746
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleTable2_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleTable2_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleTable2_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleTable2_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(23) _IAccessibleTable2ProxyVtbl =
+{
+ &IAccessibleTable2_ProxyInfo,
+ &IID_IAccessibleTable2,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_cellAt */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_caption */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_columnDescription */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_nColumns */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_nRows */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_nSelectedCells */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_nSelectedColumns */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_nSelectedRows */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_rowDescription */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_selectedCells */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_selectedColumns */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_selectedRows */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_summary */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_isColumnSelected */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_isRowSelected */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::selectRow */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::selectColumn */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::unselectRow */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::unselectColumn */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTable2::get_modelChange */
+};
+
+const CInterfaceStubVtbl _IAccessibleTable2StubVtbl =
+{
+ &IID_IAccessibleTable2,
+ &IAccessibleTable2_ServerInfo,
+ 23,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Object interface: IAccessibleTableCell, ver. 0.0,
+ GUID={0x594116B1,0xC99F,0x4847,{0xAD,0x06,0x0A,0x7A,0x86,0xEC,0xE6,0x45}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleTableCell_FormatStringOffsetTable[] =
+ {
+ 198,
+ 4782,
+ 72,
+ 4206,
+ 4824,
+ 4242,
+ 4866,
+ 4902,
+ 4962
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleTableCell_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleTableCell_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleTableCell_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleTableCell_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(12) _IAccessibleTableCellProxyVtbl =
+{
+ &IAccessibleTableCell_ProxyInfo,
+ &IID_IAccessibleTableCell,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_columnExtent */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_columnHeaderCells */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_columnIndex */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_rowExtent */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_rowHeaderCells */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_rowIndex */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_isSelected */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_rowColumnExtents */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleTableCell::get_table */
+};
+
+const CInterfaceStubVtbl _IAccessibleTableCellStubVtbl =
+{
+ &IID_IAccessibleTableCell,
+ &IAccessibleTableCell_ServerInfo,
+ 12,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Object interface: IAccessibleImage, ver. 0.0,
+ GUID={0xFE5ABB3D,0x615E,0x4f7b,{0x90,0x9F,0x5F,0x0E,0xDA,0x9E,0x8D,0xDE}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleImage_FormatStringOffsetTable[] =
+ {
+ 0,
+ 4998,
+ 5046
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleImage_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleImage_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleImage_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleImage_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(6) _IAccessibleImageProxyVtbl =
+{
+ &IAccessibleImage_ProxyInfo,
+ &IID_IAccessibleImage,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleImage::get_description */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleImage::get_imagePosition */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleImage::get_imageSize */
+};
+
+const CInterfaceStubVtbl _IAccessibleImageStubVtbl =
+{
+ &IID_IAccessibleImage,
+ &IAccessibleImage_ServerInfo,
+ 6,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Standard interface: __MIDL_itf_ia2_api_all_0000_0016, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}} */
+
+
+/* Object interface: IAccessibleApplication, ver. 0.0,
+ GUID={0xD49DED83,0x5B25,0x43F4,{0x9B,0x95,0x93,0xB4,0x45,0x95,0x97,0x9E}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleApplication_FormatStringOffsetTable[] =
+ {
+ 0,
+ 36,
+ 5088,
+ 5124
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleApplication_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleApplication_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleApplication_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleApplication_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(7) _IAccessibleApplicationProxyVtbl =
+{
+ &IAccessibleApplication_ProxyInfo,
+ &IID_IAccessibleApplication,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleApplication::get_appName */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleApplication::get_appVersion */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleApplication::get_toolkitName */ ,
+ (void *) (INT_PTR) -1 /* IAccessibleApplication::get_toolkitVersion */
+};
+
+const CInterfaceStubVtbl _IAccessibleApplicationStubVtbl =
+{
+ &IID_IAccessibleApplication,
+ &IAccessibleApplication_ServerInfo,
+ 7,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Object interface: IAccessibleDocument, ver. 0.0,
+ GUID={0xC48C7FCF,0x4AB5,0x4056,{0xAF,0xA6,0x90,0x2D,0x6E,0x1D,0x11,0x49}} */
+
+#pragma code_seg(".orpc")
+static const unsigned short IAccessibleDocument_FormatStringOffsetTable[] =
+ {
+ 5160
+ };
+
+static const MIDL_STUBLESS_PROXY_INFO IAccessibleDocument_ProxyInfo =
+ {
+ &Object_StubDesc,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleDocument_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0
+ };
+
+
+static const MIDL_SERVER_INFO IAccessibleDocument_ServerInfo =
+ {
+ &Object_StubDesc,
+ 0,
+ ia2_api_all__MIDL_ProcFormatString.Format,
+ &IAccessibleDocument_FormatStringOffsetTable[-3],
+ 0,
+ 0,
+ 0,
+ 0};
+CINTERFACE_PROXY_VTABLE(4) _IAccessibleDocumentProxyVtbl =
+{
+ &IAccessibleDocument_ProxyInfo,
+ &IID_IAccessibleDocument,
+ IUnknown_QueryInterface_Proxy,
+ IUnknown_AddRef_Proxy,
+ IUnknown_Release_Proxy ,
+ (void *) (INT_PTR) -1 /* IAccessibleDocument::get_anchorTarget */
+};
+
+const CInterfaceStubVtbl _IAccessibleDocumentStubVtbl =
+{
+ &IID_IAccessibleDocument,
+ &IAccessibleDocument_ServerInfo,
+ 4,
+ 0, /* pure interpreted */
+ CStdStubBuffer_METHODS
+};
+
+
+/* Standard interface: __MIDL_itf_ia2_api_all_0000_0018, ver. 0.0,
+ GUID={0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}} */
+
+static const MIDL_STUB_DESC Object_StubDesc =
+ {
+ 0,
+ NdrOleAllocate,
+ NdrOleFree,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ ia2_api_all__MIDL_TypeFormatString.Format,
+ 1, /* -error bounds_check flag */
+ 0x50002, /* Ndr library version */
+ 0,
+ 0x700022b, /* MIDL Version 7.0.555 */
+ 0,
+ UserMarshalRoutines,
+ 0, /* notify & notify_flag routine table */
+ 0x1, /* MIDL flag */
+ 0, /* cs routines */
+ 0, /* proxy/server info */
+ 0
+ };
+
+const CInterfaceProxyVtbl * const _ia2_api_all_ProxyVtblList[] =
+{
+ ( CInterfaceProxyVtbl *) &_IAccessibleHyperlinkProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAccessibleImageProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAccessibleActionProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAccessibleValueProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAccessible2ProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAccessibleTableProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAccessibleApplicationProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAccessibleTable2ProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAccessibleEditableTextProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAccessibleHypertext2ProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAccessibleComponentProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAccessibleTableCellProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAccessibleHypertextProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAccessibleText2ProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAccessibleDocumentProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAccessible2_2ProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAccessibleRelationProxyVtbl,
+ ( CInterfaceProxyVtbl *) &_IAccessibleTextProxyVtbl,
+ 0
+};
+
+const CInterfaceStubVtbl * const _ia2_api_all_StubVtblList[] =
+{
+ ( CInterfaceStubVtbl *) &_IAccessibleHyperlinkStubVtbl,
+ ( CInterfaceStubVtbl *) &_IAccessibleImageStubVtbl,
+ ( CInterfaceStubVtbl *) &_IAccessibleActionStubVtbl,
+ ( CInterfaceStubVtbl *) &_IAccessibleValueStubVtbl,
+ ( CInterfaceStubVtbl *) &_IAccessible2StubVtbl,
+ ( CInterfaceStubVtbl *) &_IAccessibleTableStubVtbl,
+ ( CInterfaceStubVtbl *) &_IAccessibleApplicationStubVtbl,
+ ( CInterfaceStubVtbl *) &_IAccessibleTable2StubVtbl,
+ ( CInterfaceStubVtbl *) &_IAccessibleEditableTextStubVtbl,
+ ( CInterfaceStubVtbl *) &_IAccessibleHypertext2StubVtbl,
+ ( CInterfaceStubVtbl *) &_IAccessibleComponentStubVtbl,
+ ( CInterfaceStubVtbl *) &_IAccessibleTableCellStubVtbl,
+ ( CInterfaceStubVtbl *) &_IAccessibleHypertextStubVtbl,
+ ( CInterfaceStubVtbl *) &_IAccessibleText2StubVtbl,
+ ( CInterfaceStubVtbl *) &_IAccessibleDocumentStubVtbl,
+ ( CInterfaceStubVtbl *) &_IAccessible2_2StubVtbl,
+ ( CInterfaceStubVtbl *) &_IAccessibleRelationStubVtbl,
+ ( CInterfaceStubVtbl *) &_IAccessibleTextStubVtbl,
+ 0
+};
+
+PCInterfaceName const _ia2_api_all_InterfaceNamesList[] =
+{
+ "IAccessibleHyperlink",
+ "IAccessibleImage",
+ "IAccessibleAction",
+ "IAccessibleValue",
+ "IAccessible2",
+ "IAccessibleTable",
+ "IAccessibleApplication",
+ "IAccessibleTable2",
+ "IAccessibleEditableText",
+ "IAccessibleHypertext2",
+ "IAccessibleComponent",
+ "IAccessibleTableCell",
+ "IAccessibleHypertext",
+ "IAccessibleText2",
+ "IAccessibleDocument",
+ "IAccessible2_2",
+ "IAccessibleRelation",
+ "IAccessibleText",
+ 0
+};
+
+const IID * const _ia2_api_all_BaseIIDList[] =
+{
+ 0,
+ 0,
+ 0,
+ 0,
+ &IID_IAccessible,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ &IID_IAccessible,
+ 0,
+ 0,
+ 0
+};
+
+
+#define _ia2_api_all_CHECK_IID(n) IID_GENERIC_CHECK_IID( _ia2_api_all, pIID, n)
+
+int __stdcall _ia2_api_all_IID_Lookup( const IID * pIID, int * pIndex )
+{
+ IID_BS_LOOKUP_SETUP
+
+ IID_BS_LOOKUP_INITIAL_TEST( _ia2_api_all, 18, 16 )
+ IID_BS_LOOKUP_NEXT_TEST( _ia2_api_all, 8 )
+ IID_BS_LOOKUP_NEXT_TEST( _ia2_api_all, 4 )
+ IID_BS_LOOKUP_NEXT_TEST( _ia2_api_all, 2 )
+ IID_BS_LOOKUP_NEXT_TEST( _ia2_api_all, 1 )
+ IID_BS_LOOKUP_RETURN_RESULT( _ia2_api_all, 18, *pIndex )
+
+}
+
+const ExtendedProxyFileInfo ia2_api_all_ProxyFileInfo =
+{
+ (PCInterfaceProxyVtblList *) & _ia2_api_all_ProxyVtblList,
+ (PCInterfaceStubVtblList *) & _ia2_api_all_StubVtblList,
+ (const PCInterfaceName * ) & _ia2_api_all_InterfaceNamesList,
+ (const IID ** ) & _ia2_api_all_BaseIIDList,
+ & _ia2_api_all_IID_Lookup,
+ 18,
+ 2,
+ 0, /* table of [async_uuid] interfaces */
+ 0, /* Filler1 */
+ 0, /* Filler2 */
+ 0 /* Filler3 */
+};
+#pragma optimize("", on )
+#if _MSC_VER >= 1200
+#pragma warning(pop)
+#endif
+
+
+#endif /* !defined(_M_IA64) && !defined(_M_AMD64)*/
+
diff --git a/src/3rdparty/iaccessible2/iaccessible2.pri b/src/3rdparty/iaccessible2/iaccessible2.pri
index b3cdfa9356..c7daa760c6 100644
--- a/src/3rdparty/iaccessible2/iaccessible2.pri
+++ b/src/3rdparty/iaccessible2/iaccessible2.pri
@@ -10,84 +10,18 @@ MIDL_GENERATED = $$PWD/generated/$${ARCH_SUBDIR}
INCLUDEPATH += $$MIDL_GENERATED
-SOURCES += $${MIDL_GENERATED}/Accessible2_p.c \
- $${MIDL_GENERATED}/AccessibleAction_p.c \
- $${MIDL_GENERATED}/AccessibleApplication_p.c \
- $${MIDL_GENERATED}/AccessibleComponent_p.c \
- $${MIDL_GENERATED}/AccessibleEditableText_p.c \
- $${MIDL_GENERATED}/AccessibleHyperlink_p.c \
- $${MIDL_GENERATED}/AccessibleHypertext_p.c \
- $${MIDL_GENERATED}/AccessibleImage_p.c \
- $${MIDL_GENERATED}/AccessibleRelation_p.c \
- $${MIDL_GENERATED}/AccessibleTable2_p.c \
- $${MIDL_GENERATED}/AccessibleTableCell_p.c \
- $${MIDL_GENERATED}/AccessibleTable_p.c \
- $${MIDL_GENERATED}/AccessibleText_p.c \
- $${MIDL_GENERATED}/AccessibleValue_p.c
-
-SOURCES += $${MIDL_GENERATED}/Accessible2_i.c \
- $${MIDL_GENERATED}/AccessibleAction_i.c \
- $${MIDL_GENERATED}/AccessibleApplication_i.c \
- $${MIDL_GENERATED}/AccessibleComponent_i.c \
- $${MIDL_GENERATED}/AccessibleEditableText_i.c \
- $${MIDL_GENERATED}/AccessibleHyperlink_i.c \
- $${MIDL_GENERATED}/AccessibleHypertext_i.c \
- $${MIDL_GENERATED}/AccessibleImage_i.c \
- $${MIDL_GENERATED}/AccessibleRelation_i.c \
- $${MIDL_GENERATED}/AccessibleTable2_i.c \
- $${MIDL_GENERATED}/AccessibleTableCell_i.c \
- $${MIDL_GENERATED}/AccessibleTable_i.c \
- $${MIDL_GENERATED}/AccessibleText_i.c \
- $${MIDL_GENERATED}/AccessibleValue_i.c
-
-SOURCES += $${MIDL_GENERATED}/IA2TypeLibrary_i.c
+SOURCES += $${MIDL_GENERATED}/ia2_api_all_i.c \
+ $${MIDL_GENERATED}/ia2_api_all_p.c
# Do not add dlldata.c when building accessibility into a static library, as the COM entry points
# defined there can cause duplicate symbol errors when linking into a binary that also defines
# such entry points, e.g. anything linked against QtAxServer.
!static: SOURCES += $${MIDL_GENERATED}/dlldata.c
-HEADERS += $${MIDL_GENERATED}/Accessible2.h \
- $${MIDL_GENERATED}/AccessibleAction.h \
- $${MIDL_GENERATED}/AccessibleApplication.h \
- $${MIDL_GENERATED}/AccessibleComponent.h \
- $${MIDL_GENERATED}/AccessibleEditableText.h \
- $${MIDL_GENERATED}/AccessibleEventID.h \
- $${MIDL_GENERATED}/AccessibleHyperlink.h \
- $${MIDL_GENERATED}/AccessibleHypertext.h \
- $${MIDL_GENERATED}/AccessibleImage.h \
- $${MIDL_GENERATED}/AccessibleRelation.h \
- $${MIDL_GENERATED}/AccessibleRole.h \
- $${MIDL_GENERATED}/AccessibleStates.h \
- $${MIDL_GENERATED}/AccessibleTable.h \
- $${MIDL_GENERATED}/AccessibleTable2.h \
- $${MIDL_GENERATED}/AccessibleTableCell.h \
- $${MIDL_GENERATED}/AccessibleText.h \
- $${MIDL_GENERATED}/AccessibleValue.h \
- $${MIDL_GENERATED}/IA2CommonTypes.h \
- $${MIDL_GENERATED}/IA2TypeLibrary.h
-
+HEADERS += $${MIDL_GENERATED}/ia2_api_all.h
OTHER_FILES = \
- $$PWD/idl/Accessible2.idl \
- $$PWD/idl/AccessibleAction.idl \
- $$PWD/idl/AccessibleApplication.idl \
- $$PWD/idl/AccessibleComponent.idl \
- $$PWD/idl/AccessibleEditableText.idl \
- $$PWD/idl/AccessibleEventID.idl \
- $$PWD/idl/AccessibleHyperlink.idl \
- $$PWD/idl/AccessibleHypertext.idl \
- $$PWD/idl/AccessibleImage.idl \
- $$PWD/idl/AccessibleRelation.idl \
- $$PWD/idl/AccessibleRole.idl \
- $$PWD/idl/AccessibleStates.idl \
- $$PWD/idl/AccessibleTable.idl \
- $$PWD/idl/AccessibleTable2.idl \
- $$PWD/idl/AccessibleTableCell.idl \
- $$PWD/idl/AccessibleText.idl \
- $$PWD/idl/AccessibleValue.idl \
- $$PWD/idl/IA2CommonTypes.idl \
- $$PWD/idl/IA2TypeLibrary.idl
+ $$PWD/idl/ia2_api_all.idl
LIBS += -lrpcrt4
diff --git a/src/3rdparty/iaccessible2/idl/Accessible2.idl b/src/3rdparty/iaccessible2/idl/Accessible2.idl
deleted file mode 100644
index 6a0d750483..0000000000
--- a/src/3rdparty/iaccessible2/idl/Accessible2.idl
+++ /dev/null
@@ -1,679 +0,0 @@
-/*************************************************************************
- *
- * File Name (Accessible2.idl)
- *
- * IAccessible2 IDL Specification
- *
- * Copyright (c) 2007, 2010 Linux Foundation
- * Copyright (c) 2006 IBM Corporation
- * Copyright (c) 2000, 2006 Sun Microsystems, Inc.
- * All rights reserved.
- *
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following
- * disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * 3. Neither the name of the Linux Foundation nor the names of its
- * contributors may be used to endorse or promote products
- * derived from this software without specific prior written
- * permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This BSD License conforms to the Open Source Initiative "Simplified
- * BSD License" as published at:
- * http://www.opensource.org/licenses/bsd-license.php
- *
- * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
- * mark may be used in accordance with the Linux Foundation Trademark
- * Policy to indicate compliance with the IAccessible2 specification.
- *
- ************************************************************************/
-
-/** @mainpage
-
- @section _interfaces Interfaces
- IAccessible2\n
- IAccessibleAction\n
- IAccessibleApplication\n
- IAccessibleComponent\n
- IAccessibleHypertext\n
- IAccessibleHyperlink\n
- IAccessibleImage\n
- IAccessibleRelation\n
- IAccessibleTable [Deprecated]\n
- IAccessibleTable2\n
- IAccessibleTableCell\n
- IAccessibleText\n
- IAccessibleEditableText\n
- IAccessibleValue
-
- @section _structs Structs
- IA2Locale\n
- IA2TableModelChange\n
- IA2TextSegment
-
- @section _enums Enums
- ::IA2CoordinateType values define the requested coordinate type (screen or parent window).\n
- ::IA2EventID values identify events.\n
- ::IA2Role values defines roles which are in addition to the existing MSAA roles.\n
- ::IA2ScrollType values define where to place an object or substring on the screen.\n
- ::IA2States values define states which are in addition to the existing MSAA states.\n
- ::IA2TableModelChangeType values describe the kinds of changes made to a table (insert, delete, update).\n
- ::IA2TextBoundaryType values define the requested text unit (character, word, sentence, line, paragraph).\n
- ::IA2TextSpecialOffsets values define special offsets for use in the text interfaces.
-
- @section _constants Constants
- @ref grpRelations
-
- @section _misc Miscellaneous
- @ref _licensePage "BSD License"\n
- @ref _generalInfo "General Information"\n
-
- @page _licensePage BSD License
- %IAccessible2 IDL Specification
-
- Copyright (c) 2007, 2010 Linux Foundation\n
- Copyright (c) 2006 IBM Corporation\n
- Copyright (c) 2000, 2006 Sun Microsystems, Inc.\n
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:
-
- 1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above
- copyright notice, this list of conditions and the following
- disclaimer in the documentation and/or other materials
- provided with the distribution.
-
- 3. Neither the name of the Linux Foundation nor the names of its
- contributors may be used to endorse or promote products
- derived from this software without specific prior written
- permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
- This BSD License conforms to the Open Source Initiative "Simplified
- BSD License" as published at:
- http://www.opensource.org/licenses/bsd-license.php
-
- %IAccessible2 is a trademark of the Linux Foundation. The %IAccessible2
- mark may be used in accordance with the
- <a href="http://www.linuxfoundation.org/collaborate/workgroups/accessibility/trademark-policy">
- Linux Foundation Trademark Policy</a> to indicate compliance with the %IAccessible2 specification.
-
- @page _generalInfo General Information
- The following information is applicable to two or more interfaces.
-
- @ref _errors\n
- @ref _memory\n
- &nbsp;&nbsp;@ref _arrayConsideration\n
- @ref _indexes\n
- @ref _enums\n
- @ref _specialOffsets\n
- @ref _dicoveringInterfaces\n
- @ref _changingInterfaces\n
- @ref _applicationInfo\n
- @ref _childIDs\n
- @ref _variants\n
- @ref _iaaction-iahyperlink\n
- @ref _trademark
-
- @section _errors Error Handling
- HRESULT values are defined by the Microsoft&reg; Win32&reg; API. For more information, refer to
- <a href="http://msdn2.microsoft.com/en-us/library/bb401631.aspx">Interpreting HRESULT Values</a>
- in MSDN&reg;.
-
- Note that the S_FALSE return value is considered a non-error value and the
- SUCCEEDED macro will return TRUE. S_FALSE is used when there is no failure
- but there was nothing valid to return, e.g. in IAccessible2::attributes when
- there are no attributes. When S_FALSE is returned [out] pointer types should
- be NULL and [out] longs should generally be 0, but sometimes -1 is used such
- as IAccessible2::indexInParent, IAccessibleText::caretOffset, and
- IAccessibleHypertext::hyperlinkIndex.
-
- Note that for BSTR [out] variables common COM practice is that the server does
- the SysAllocString and the client does the SysFreeString. Also note that when
- NULL is returned there is no need for the client to call SysFreeString. Please
- refer to the documentation for each method for more details regarding error handling.
-
- @section _memory Memory Management
- The following memory management issues should be considered:
- @li Although [out] BSTR variables are declared by the client, their space is
- allocated by the server. They need to be freed with SysFreeString by the
- client at end of life; the same is true when BSTRs are used in structs or
- arrays which are passed to the server.
- @li If there is no valid [out] BSTR to return, the server should return S_FALSE and
- assign NULL to the output, e.g. *theOutBSTR = NULL;.
- @li COM interfaces need to be referenced with AddRef when used and dereferenced
- with Release at end of life.
- @li Single [out] longs, HWNDs, booleans, and structs are declared by the caller
- and passed by reference. The marshaller does all the memory management.
-
- The following articles may be helpful for understanding memory management issues:
- @li An article by Don Box in a
- <a href="http://www.microsoft.com/msj/1196/activex1196.aspx">Q & A section</a>
- of the November 1996 edition of the Microsoft Systems Journal.
- @li A posting to a CodeGuru forum,
- <a href="http://www.codeguru.com/forum/showthread.php?t=364511">Windows SDK
- String: What are the rules for BSTR allocation and deallocation?</a>
-
- @subsection _arrayConsideration Special Consideration when using Arrays
- There are several methods which return arrays. In the case of IAccessible2::relations
- and IAccessibleRelation::targets the client must allocate and free the arrays.
-
- For the remaining methods which return arrays, the server must allocate the array
- and the client must free the array when no longer needed. These methods are
- IAccessible2::extendedStates, IAccessible2::localizedExtendedStates,
- IAccessibleAction::keyBinding, IAccessibleTable2::selectedCells,
- IAccessibleTable2::selectedColumns, and IAccessibleTable2::selectedRows. For
- those methods, the server must allocate both the top level array and any storage
- associated with it, e.g. for BSTRs. The server must allocate the arrays with
- CoTaskMemAlloc and any BSTRs with SysAllocString. The client must use CoTaskMemFree
- to free the array and any BSTRs must be freed with SysFreeString.
-
- Also, the IDL for those six methods includes an extraneous [in] parameter for the
- caller to specify the max size of the array. This parameter will be ignored by
- the COM server.
-
- @section _indexes Zero and One Based Indexes
- Unless otherwise specified all offsets and indexes are 0 based.
-
- @section _enums Enums
- Note that enums start at 0.
-
- @section _specialOffsets Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods
- IAccessibleText and IAccessibleEditableText can use one or more of the following
- special offset values. They are defined in the ::IA2TextSpecialOffsets enum.
- @li Using ::IA2_TEXT_OFFSET_LENGTH (-1) as an offset in any of the IAccessibleText or
- IAccessibleEditableText methods is the same as specifying the length of the string.
- @li Using ::IA2_TEXT_OFFSET_CARET (-2) as an offset for IAccessibleText::textBeforeOffset,
- IAccessibleText::textAtOffset, and IAccessibleText::textAfterOffset indicates that the
- text related to the physical location of the caret should be used. This is needed for
- applications that consider the character offset of the end of one line (as reached by
- pressing the End key) the same as the offset of the first character on the next line.
- Since the same offset is associated with two different lines a special means is needed
- to fetch text from the line where the caret is physically located.
-
- @section _dicoveringInterfaces Discovery of Interfaces
- In general AT (Assistive Technology) should try IAccessible2 interfaces, followed by using
- the MSAA (Microsoft&reg; Active Accessibility&reg;) interfaces. (In cases where the an application
- is known to have custom interfaces which provide information not supplied by IAccessible2
- or MSAA, then those custom interfaces can be used.) The AT can then, by default, support
- unknown IAccessible2/MSAA applications, without the application developers having to request
- AT vendors for support on an individual application by application basis.
-
- When you have a reference to an IAccessible and require a reference to an IAccessible2 use
- QueryService as follows:
- @code
- // pAcc is a reference to the accessible object's IAccessible interface.
- IServiceProvider *pService = NULL;
- hr = pAcc->QueryInterface(IID_IServiceProvider, (void **)&pService);
- if(SUCCEEDED(hr)) {
- IAccessible2 *pIA2 = NULL;
- hr = pService->QueryService(IID_IAccessible, IID_IAccessible2, (void**)&pIA2);
- if (SUCCEEDED(hr) && pIA2) {
- // The control supports IAccessible2.
- // pIA2 is the reference to the accessible object's IAccessible2 interface.
- }
- }
- @endcode
-
- @section _changingInterfaces Changing between Accessible Interfaces
- Note that developers must always implement MSAA's IAccessible and, if needed, some
- of the interfaces in the set of IAccessible2 interfaces. Although the IAccessible2
- IDL is coded such that IAccessible2 is a subclass of MSAA's IAccessible, none of
- MSAA's IAccessible methods are redefined by IAccessible2.
-
- QueryService must be used to switch from a reference to an MSAA IAccessible interface
- to another interface. This has been
- <a href="http://www.accessinteropalliance.org/docs/Introducing_IAccessibleEx.doc">
- documented by Microsoft</a> and the pertinent facts have been extracted below:
-
- @par
- Why use QueryService instead of just using QueryInterface to get IAccessibleEx
- directly? The reason is that since MSAA 2.0, clients don't talk to a server's
- IAccessible interface directly; instead they talk to an intermediate MSAA-provided
- wrapper that calls through to the original IAccessible. This wrapper provides services
- such as implementing IDispatch, supplying information from MSAA 2.0's Dynamic Annotation
- service, and scaling locations when running on Windows Vista with DPI scaling enabled.
- QueryService is the supported way to expose additional interfaces from an existing
- IAccessible and was originally used by MSHTML to expose IHTMLElement objects corresponding
- to IAccessibles. QueryService is often more convenient for servers to implement than
- QueryInterface because it does not have the same requirements for preserving object
- identity or symmetry/transitivity as QueryInterface, so QueryService allows servers to
- easily implement the interface on the same object or a separate object. The latter is
- often hard to do with QueryInterface unless the original object supports aggregation.
-
- Two related references in MSDN&reg; are:
- @li <a href="http://msdn.microsoft.com/en-us/library/ms696078(VS.85).aspx">
- "Using QueryService to expose a native object model interface for an IAccessible object"</a>
- @li <a href="http://msdn.microsoft.com/en-us/library/ms528415.aspx#acc_obj">
- "Accessing the Internet Explorer Object Associated with an Accessible Object"</a>
-
- Based on this information from Microsoft, QueryService must be used to switch back and forth
- between a reference to an MSAA IAccessible interface and any of the IAccessible2 interfaces.
-
- Regarding switching between any of the IAccessible2 interfaces, applications implementing
- IAccessible2 should implement the IAccessible2 interfaces on a single object since ATs
- will be using QueryInterface to switch between the IAccessilbe2 interfaces. Implementing
- the IAccessible2 interfaces on separate objects would require the use of QueryService.
- There is one exception, IAccessibleApplication can be implemented on a separate object so
- its common code doesn't have to be included in each accessible object. ATs should use
- QueryService to access IAccessibleApplication.
-
- @section _applicationInfo Access to Information about the Application
- Servers implementing IAccessible2 should provide access to the IAccessibleApplication
- interface via QueryService from any object so that ATs can easily determine specific
- information about the application such as its name or version.
-
- @section _childIDs Child IDs
- The IAccessible2 interfaces do not support child IDs, i.e. simple child elements.
- Full accessible objects must be created for each object that supports IAccessible2.
- Therefore MSAA's get_accChild should never return a child ID (other than CHILDID_SELF)
- for an object that implements any of the IAccessible2 interfaces.
-
- Microsoft's UI Automation specification has the same limitation and this was resolved
- in the UI Automation Express specification by adding IAccessibleEx::GetObjectForChild
- and IAccessibleEx::GetIAccessiblePair. These methods allow mapping back and forth
- between an IAccessibleEx and an {IAccessible, Child ID} pair. A future version of
- IAccessible2 may include similar methods to map back and forth between an IAccessible2
- and an {IAccessible, Child ID} pair.
-
- @section _variants VARIANTs
- Some methods return a VARIANT. Implementers need to make sure that the return type is
- specified, i.e. VT_I4, VT_IDISPATCH, etc. The methods that return VARIANTs are
- IAccessibleHyperlink::anchor, IAccessibleHyperlink::anchorTarget, IAccessibleValue::currentValue,
- IAccessibleValue::maximumValue, IAccessibleValue::minimumValue.
-
- @section _iaaction-iahyperlink IAccessibleHyperlink as subclass of IAccessibleAction
- In this version of the IDL, IAccessibleHyperlink is a subclass of IAccessibleAction.
- However, there is no practical need for that inheritance and in some cases, such as
- an image map of smart tags, it doesn't make sense because such an image map doesn't
- have actionable objects; it's the secondary smart tags that are actionable. As a
- result, implementations should not rely on the inheritance as it may be removed in
- a later version of the IDL.
-
- @section _trademark Trademark Attribution
- The names of actual companies and products mentioned herein may be the trademarks of
- their respective owners. In particular, Active Accessibility, Microsoft, MSDN, and Win32
- are trademarks of the Microsoft group of companies in the U.S.A. and/or other countries.
-
-**/
-
-import "objidl.idl";
-import "oaidl.idl";
-import "oleacc.idl";
-import "AccessibleRelation.idl";
-import "AccessibleStates.idl";
-import "IA2CommonTypes.idl";
-
-/** A structure defining the locale of an accessible object.
-
-IAccessible2::locale returns this struct.
-*/
-typedef struct IA2Locale {
- BSTR language; ///< ISO 639-1 Alpha-2 two character language code
- BSTR country; ///< ISO 3166-1 Alpha-2 two character country code
- BSTR variant; ///< Application specific variant of the locale
-} IA2Locale;
-
-/** @brief This interface exposes the primary set of information about an
- IAccessible2 enabled accessible object.
-
- This interface must always be provided for objects that support some
- portion of the collection of the %IAccessible2 interfaces.
-
- Please refer to @ref _changingInterfaces "Changing between Accessible Interfaces"
- for special considerations related to use of the MSAA IAccessible interface and
- the set of %IAccessible2 interfaces.
- */
-[object, uuid(E89F726E-C4F4-4c19-BB19-B647D7FA8478)]
-interface IAccessible2 : IAccessible
-{
-
- /** @brief Returns the number of accessible relations for this object.
- @param [out] nRelations
- @retval S_OK
- */
- [propget] HRESULT nRelations
- (
- [out, retval] long *nRelations
- );
-
- /** @brief Returns one accessible relation for this object.
- @param [in] relationIndex
- 0 based
- @param [out] relation
- @retval S_OK
- @retval E_INVALIDARG if bad [in] passed
- */
- [propget] HRESULT relation
- (
- [in] long relationIndex,
- [out, retval] IAccessibleRelation **relation
- );
-
- /** @brief Returns multiple accessible relations for this object.
- @param [in] maxRelations
- maximum size of the array allocated by the client
- @param [out] relations
- The array of accessible relation objects. Note that this array is to be
- allocated by the client and freed when no longer needed. Refer to @ref
- _arrayConsideration "Special Consideration when using Arrays" for more details.
- @param [out] nRelations
- actual number of relations in the returned array (not more than maxRelations)
- @retval S_OK
- @retval S_FALSE if there are no relations, nRelations is set to 0
- */
- [propget] HRESULT relations
- (
- [in] long maxRelations,
- [out, size_is(maxRelations), length_is(*nRelations)]
- IAccessibleRelation **relations,
- [out, retval] long *nRelations
- );
-
- /** @brief Returns the role of an %IAccessible2 object.
- @param [out] role
- The role of an %IAccessible2 object.
- @retval S_OK
- @note
- @li For convenience MSAA roles are also passed through this method so the
- AT doesn't have to also fetch roles through MSAA's get_accRole.
- @li %IAccessible2 roles should not be passed through MSAA's get_accRole.
- @li For compatibility with non IAccessible2 enabled ATs, IAccessible2
- applications should also add support to get_accRole to return the closest
- MSAA role or ROLE_SYSTEM_CLIENT (the MSAA defined default role) if there
- is not a good match.
- @li This method is missing a [propget] prefix in the IDL. The result is the
- method is named role in generated C++ code instead of get_role.
- */
- HRESULT role
- (
- [out, retval] long *role
- );
-
- /** @brief Makes an object visible on the screen.
- @param [in] scrollType
- Defines where the object should be placed on the screen.
- @retval S_OK
- @retval E_INVALIDARG if bad [in] passed
- */
- HRESULT scrollTo
- (
- [in] enum IA2ScrollType scrollType
- );
-
- /** @brief Moves the top left of an object to a specified location.
-
- @param [in] coordinateType
- Specifies whether the coordinates are relative to the screen or the parent object.
- @param [in] x
- Defines the x coordinate.
- @param [in] y
- Defines the y coordinate.
- @retval S_OK
- @retval E_INVALIDARG if bad [in] passed
- */
- HRESULT scrollToPoint
- (
- [in] enum IA2CoordinateType coordinateType,
- [in] long x,
- [in] long y
- );
-
- /** @brief Returns grouping information.
-
- Used for tree items, list items, tab panel labels, radio buttons, etc.
- Also used for collections of non-text objects.
-
- @param [out] groupLevel
- 1 based, 0 indicates that this value is not applicable
- @param [out] similarItemsInGroup
- 1 based, 0 indicates that this value is not applicable
- @param [out] positionInGroup
- 1 based, 0 indicates that this value is not applicable. This is an index
- into the objects in the current group, not an index into all the objects
- at the same group level.
- @retval S_OK if at least one value is valid
- @retval S_FALSE if no values are valid, [out] values are 0s
- @note This method is meant to describe the nature of an object's containment
- structure. It's exposed by trees, tree grids, nested lists, nested menus,
- but not headings, which uses the level object attribute. It is also exposed
- by radio buttons (with groupLevel == 0).
- @note This is normally not implemented on a combo box to describe the nature
- of its contents. Normally an AT will get that information from its child list
- object. However, in some cases when non-edit combo boxes are not able to be structured
- such that the list is a child of the combo box, this method is implemented on
- the combo box itself. ATs can use this interface if a child list is not found.
- */
- [propget] HRESULT groupPosition
- (
- [out] long *groupLevel,
- [out] long *similarItemsInGroup,
- [out, retval] long *positionInGroup
- );
-
- /** @brief Returns the bit strip containing any IAccessible2 states.
-
- The IAccessible2 states are in addition to the MSAA states and are defined in
- the IA2States enum.
-
- @param [out] states
- @retval S_OK
- */
- [propget] HRESULT states
- (
- [out, retval] AccessibleStates *states
- );
-
- /** @brief Returns the extended role.
-
- An extended role is a role which is dynamically generated by the application.
- It is not predefined by the %IAccessible2 specification.
-
- @param [out] extendedRole
- @retval S_OK
- @retval S_FALSE if there is nothing to return, [out] value is NULL
- */
- [propget] HRESULT extendedRole
- (
- [out, retval] BSTR *extendedRole
- );
-
- /** @brief Returns the localized extended role.
- @param [out] localizedExtendedRole
- @retval S_OK
- @retval S_FALSE if there is nothing to return, [out] value is NULL
- */
- [propget] HRESULT localizedExtendedRole
- (
- [out, retval] BSTR *localizedExtendedRole
- );
-
- /** @brief Returns the number of extended states.
- @param [out] nExtendedStates
- @retval S_OK
- */
- [propget] HRESULT nExtendedStates
- (
- [out, retval] long *nExtendedStates
- );
-
- /** @brief Returns the extended states (array of strings).
-
- An extended state is a state which is dynamically generated by the application.
- It is not predefined by the %IAccessible2 specification.
-
- @param [in] maxExtendedStates
- This parameter is ignored. Refer to @ref _arrayConsideration
- "Special Consideration when using Arrays" for more details.
- @param [out] extendedStates
- This array is allocated by the server. Free it with CoTaskMemFree.
- @param [out] nExtendedStates
- The number of extended states returned; the size of the returned array.
- @retval S_OK
- @retval S_FALSE if there are no states, [out] values are NULL and 0 respectively
- */
- [propget] HRESULT extendedStates
- (
- [in] long maxExtendedStates,
- [out, size_is(,maxExtendedStates), length_is(,*nExtendedStates)] BSTR **extendedStates,
- [out, retval] long *nExtendedStates
- );
-
- /** @brief Returns the localized extended states (array of strings).
- @param [in] maxLocalizedExtendedStates
- This parameter is ignored. Refer to @ref _arrayConsideration
- "Special Consideration when using Arrays" for more details.
- @param [out] localizedExtendedStates
- This array is allocated by the server. Free it with CoTaskMemFree.
- @param [out] nLocalizedExtendedStates
- The number of localized extended states returned; the size of the returned array.
- @retval S_OK
- @retval S_FALSE if there are no states, [out] values are NULL and 0 respectively
- */
- [propget] HRESULT localizedExtendedStates
- (
- [in] long maxLocalizedExtendedStates,
- [out, size_is(,maxLocalizedExtendedStates), length_is(,*nLocalizedExtendedStates)] BSTR **localizedExtendedStates,
- [out, retval] long *nLocalizedExtendedStates
- );
-
- /** @brief Returns the unique ID.
-
- The uniqueID is an identifier for this object, is unique within the
- current window, and remains the same for the lifetime of the accessible
- object.
-
- The uniqueID is not related to:
- - the MSAA objectID which is used by the server to disambiguate between
- IAccessibles per HWND or
- - the MSAA childID which is used to disambiguate between children being
- managed by an IAccessible.
-
- This value is provided so the AT can have access to a unique runtime persistent
- identifier even when not handling an event for the object.
-
- An example of when this value is useful is if the AT wants to build a cache.
- The AT could cache the uniqueIDs in addition to other data being cached.
- When an event is fired the AT could map the uniqueID to its internal model.
- Thus, if there's a REORDER/SHOW/HIDE event the AT knows which part of the
- internal structure has been invalidated and can refetch just that part.
-
- This value can also be used by an AT to determine when the current control
- has changed. If the role is the same for two controls that are adjacent in
- the tab order, this can be used to detect the new control.
-
- Another use of this value by an AT is to identify when a grouping object has
- changed, e.g. when moving from a radio button in one group to a radio button in a
- different group.
-
- One means of implementing this would be to create a factory with a 32 bit number
- generator and a reuse pool. The number generator would emit numbers starting
- at 1. Each time an object's life cycle ended, its number would be saved into a
- reuse pool. The number generator would be used whenever the reuse pool was empty.
-
- Another way to create a unique ID is to generate it from a pointer value, e.g. an
- object's address. That would be unique because no two active objects can use the
- same allocated memory space.
-
- @param [out] uniqueID
- @retval S_OK
- */
- [propget] HRESULT uniqueID
- (
- [out, retval] long *uniqueID
- );
-
- /** @brief Returns the window handle for the parent window which contains this object.
-
- This is the same window handle which will be passed for any events that occur on the
- object, but is cached in the accessible object for use when it would be helpful to
- access the window handle in cases where an event isn't fired on this object.
-
- A use case is when a screen reader is grabbing an entire web page on a page load.
- Without the availability of windowHandle, the AT would have to get the window handle
- by using WindowFromAccessibleObject on each IAccessible, which is slow because it's
- implemented by oleacc.dll as a loop which crawls up the ancestor chain and looks for
- a ROLE_WINDOW object, mapping that back to a window handle.
-
- @param [out] windowHandle
- @retval S_OK
- */
- [propget] HRESULT windowHandle
- (
- [out, retval] HWND *windowHandle
- );
-
- /** @brief Returns the index of this object in its parent object.
- @param [out] indexInParent
- 0 based; -1 indicates there is no parent; the upper bound is the value
- returned by the parent's IAccessible::get_accChildCount.
- @retval S_OK
- @retval S_FALSE if no parent, [out] value is -1
- */
- [propget] HRESULT indexInParent
- (
- [out, retval] long *indexInParent
- );
-
- /** @brief Returns the IA2Locale of the accessible object.
- @param [out] locale
- @retval S_OK
- */
- [propget] HRESULT locale
- (
- [out, retval] IA2Locale *locale
- );
-
- /** @brief Returns the attributes specific to this %IAccessible2 object, such as a cell's formula.
- @param [out] attributes
- @retval S_OK
- @retval S_FALSE returned if there is nothing to return, [out] value is NULL
- */
- [propget] HRESULT attributes
- (
- [out, retval] BSTR *attributes
- );
-
-}
-
diff --git a/src/3rdparty/iaccessible2/idl/AccessibleAction.idl b/src/3rdparty/iaccessible2/idl/AccessibleAction.idl
deleted file mode 100644
index edab0d288b..0000000000
--- a/src/3rdparty/iaccessible2/idl/AccessibleAction.idl
+++ /dev/null
@@ -1,194 +0,0 @@
-/*************************************************************************
- *
- * File Name (AccessibleAction.idl)
- *
- * IAccessible2 IDL Specification
- *
- * Copyright (c) 2007, 2010 Linux Foundation
- * Copyright (c) 2006 IBM Corporation
- * Copyright (c) 2000, 2006 Sun Microsystems, Inc.
- * All rights reserved.
- *
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following
- * disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * 3. Neither the name of the Linux Foundation nor the names of its
- * contributors may be used to endorse or promote products
- * derived from this software without specific prior written
- * permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This BSD License conforms to the Open Source Initiative "Simplified
- * BSD License" as published at:
- * http://www.opensource.org/licenses/bsd-license.php
- *
- * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
- * mark may be used in accordance with the Linux Foundation Trademark
- * Policy to indicate compliance with the IAccessible2 specification.
- *
- ************************************************************************/
-
-import "objidl.idl";
-import "oaidl.idl";
-import "oleacc.idl";
-
-/** @brief This interface gives access to actions that can be executed
- for accessible objects.
-
- Every accessible object that can be manipulated via the native GUI beyond the
- methods available either in the MSAA IAccessible interface or in the set of
- IAccessible2 interfaces (other than this IAccessibleAction interface) should
- support the IAccessibleAction interface in order to provide Assistive Technology
- access to all the actions that can be performed by the object. Each action can
- be performed or queried for a name, description or associated key bindings.
- Actions are needed more for ATs that assist the mobility impaired, such as
- on-screen keyboards and voice command software. By providing actions directly,
- the AT can present them to the user without the user having to perform the extra
- steps to navigate a context menu.
-
- The first action should be equivalent to the MSAA default action. If there is
- only one action, %IAccessibleAction should also be implemented.
-*/
-[object, uuid(B70D9F59-3B5A-4dba-AB9E-22012F607DF5)]
-interface IAccessibleAction : IUnknown
-{
-
- /** @brief Returns the number of accessible actions available in this object.
-
- If there are more than one, the first one is considered the
- "default" action of the object.
- @param [out] nActions
- The returned value of the number of actions is zero if there are
- no actions.
- @retval S_OK
- @note This method is missing a [propget] prefix in the IDL. The result is the
- method is named nActions in generated C++ code instead of get_nActions.
- */
- HRESULT nActions
- (
- [out,retval] long* nActions
- );
-
- /** @brief Performs the specified Action on the object.
- @param [in] actionIndex
- 0 based index specifying the action to perform. If it lies outside
- the valid range no action is performed.
- @retval S_OK
- @retval S_FALSE if action could not be performed
- @retval E_INVALIDARG if bad [in] passed
- */
- HRESULT doAction
- (
- [in] long actionIndex
- );
-
- /** @brief Returns a description of the specified action of the object.
- @param [in] actionIndex
- 0 based index specifying which action's description to return.
- If it lies outside the valid range an empty string is returned.
- @param [out] description
- The returned value is a localized string of the specified action.
- @retval S_OK
- @retval S_FALSE if there is nothing to return, [out] value is NULL
- @retval E_INVALIDARG if bad [in] passed
- */
- [propget] HRESULT description
- (
- [in] long actionIndex,
- [out, retval] BSTR *description
- );
-
- /** @brief Returns an array of BSTRs describing one or more key bindings, if
- there are any, associated with the specified action.
-
- The returned strings are the localized human readable key sequences to be
- used to activate each action, e.g. "Ctrl+Shift+D". Since these key
- sequences are to be used when the object has focus, they are like
- mnemonics (access keys), and not like shortcut (accelerator) keys.
-
- There is no need to implement this method for single action controls since
- that would be redundant with the standard MSAA programming practice of
- getting the mnemonic from get_accKeyboardShortcut.
-
- An AT such as an On Screen Keyboard might not expose these bindings but
- provide alternative means of activation.
-
- Note: the client allocates and passes in an array of pointers. The server
- allocates the BSTRs and passes back one or more pointers to these BSTRs into
- the array of pointers allocated by the client. The client is responsible
- for deallocating the BSTRs.
-
- @param [in] actionIndex
- 0 based index specifying which action's key bindings should be returned.
- @param [in] nMaxBindings
- This parameter is ignored. Refer to @ref _arrayConsideration
- "Special Consideration when using Arrays" for more details.
- @param [out] keyBindings
- An array of BSTRs, allocated by the server, one for each key binding.
- Free it with CoTaskMemFree.
- @param [out] nBindings
- The number of key bindings returned; the size of the returned array.
- @retval S_OK
- @retval S_FALSE if there are no key bindings, [out] values are NULL and 0 respectively
- @retval E_INVALIDARG if bad [in] passed
- */
- [propget] HRESULT keyBinding
- (
- [in] long actionIndex,
- [in] long nMaxBindings,
- [out, size_is(,nMaxBindings), length_is(,*nBindings)] BSTR **keyBindings,
- [out, retval] long *nBindings
- );
-
- /** @brief Returns the non-localized name of specified action.
- @param [in] actionIndex
- 0 based index specifying which action's non-localized name should be returned.
- @param [out] name
- @retval S_OK
- @retval S_FALSE if there is nothing to return, [out] value is NULL
- @retval E_INVALIDARG if bad [in] passed
- */
- [propget] HRESULT name
- (
- [in] long actionIndex,
- [out, retval] BSTR *name
- );
-
- /** @brief Returns the localized name of specified action.
- @param [in] actionIndex
- 0 based index specifying which action's localized name should be returned.
- @param [out] localizedName
- @retval S_OK
- @retval S_FALSE if there is nothing to return, [out] value is NULL
- @retval E_INVALIDARG if bad [in] passed
- */
- [propget] HRESULT localizedName
- (
- [in] long actionIndex,
- [out, retval] BSTR *localizedName
- );
-
-}
diff --git a/src/3rdparty/iaccessible2/idl/AccessibleApplication.idl b/src/3rdparty/iaccessible2/idl/AccessibleApplication.idl
deleted file mode 100644
index ed15aa0018..0000000000
--- a/src/3rdparty/iaccessible2/idl/AccessibleApplication.idl
+++ /dev/null
@@ -1,121 +0,0 @@
-/*************************************************************************
- *
- * File Name (AccessibleApplication.idl)
- *
- * IAccessible2 IDL Specification
- *
- * Copyright (c) 2007, 2010 Linux Foundation
- * Copyright (c) 2006 IBM Corporation
- * Copyright (c) 2000, 2006 Sun Microsystems, Inc.
- * All rights reserved.
- *
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following
- * disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * 3. Neither the name of the Linux Foundation nor the names of its
- * contributors may be used to endorse or promote products
- * derived from this software without specific prior written
- * permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This BSD License conforms to the Open Source Initiative "Simplified
- * BSD License" as published at:
- * http://www.opensource.org/licenses/bsd-license.php
- *
- * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
- * mark may be used in accordance with the Linux Foundation Trademark
- * Policy to indicate compliance with the IAccessible2 specification.
- *
- ************************************************************************/
-
-
-import "objidl.idl";
-import "oaidl.idl";
-import "oleacc.idl";
-
-/** @brief This interface gives access to the application's name and version information.
-
- This interface provides the AT with the information it needs to differentiate
- this application from other applications, from other versions of this
- application, or from other versions of this application running on different
- versions of an accessibility bridge or accessibility toolkit.
-
- Servers implementing IAccessible2 should provide access to the %IAccessibleApplication
- interface via QueryService from any object so that ATs can easily determine specific
- information about the application such as its name or version.
-*/
-[object, uuid(D49DED83-5B25-43F4-9B95-93B44595979E)]
-interface IAccessibleApplication : IUnknown
-{
-
- /** @brief Returns the application name.
- @param [out] name
- @retval S_OK
- @retval S_FALSE if there is nothing to return, [out] value is NULL
- */
- [propget] HRESULT appName
- (
- [out, retval] BSTR *name
- );
-
- /** @brief Returns the application version.
- @param [out] version
- The version string must not contain levels when it is know beforehand that
- this information will never require a change in a client's behavior.
- For example, use "3.6.0" rather than "3.6.0.v201005131500".
- @retval S_OK
- @retval S_FALSE if there is nothing to return, [out] value is NULL
- */
- [propget] HRESULT appVersion
- (
- [out, retval] BSTR *version
- );
-
- /** @brief Returns the toolkit/bridge name.
- @param [out] name
- @retval S_OK
- @retval S_FALSE if there is nothing to return, [out] value is NULL
- */
- [propget] HRESULT toolkitName
- (
- [out, retval] BSTR *name
- );
-
- /** @brief Returns the toolkit/bridge version.
- @param [out] version
- The version string must not contain levels when it is know beforehand that
- this information will never require a change in a client's behavior.
- For example, use "3.6.0" rather than "3.6.0.v201005131500".
- @retval S_OK
- @retval S_FALSE if there is nothing to return, [out] value is NULL
- */
- [propget] HRESULT toolkitVersion
- (
- [out, retval] BSTR *version
- );
-
-}
-
diff --git a/src/3rdparty/iaccessible2/idl/AccessibleComponent.idl b/src/3rdparty/iaccessible2/idl/AccessibleComponent.idl
deleted file mode 100644
index bea623a938..0000000000
--- a/src/3rdparty/iaccessible2/idl/AccessibleComponent.idl
+++ /dev/null
@@ -1,124 +0,0 @@
-/*************************************************************************
- *
- * File Name (AccessibleComponent.idl)
- *
- * IAccessible2 IDL Specification
- *
- * Copyright (c) 2007, 2010 Linux Foundation
- * Copyright (c) 2006 IBM Corporation
- * Copyright (c) 2000, 2006 Sun Microsystems, Inc.
- * All rights reserved.
- *
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following
- * disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * 3. Neither the name of the Linux Foundation nor the names of its
- * contributors may be used to endorse or promote products
- * derived from this software without specific prior written
- * permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This BSD License conforms to the Open Source Initiative "Simplified
- * BSD License" as published at:
- * http://www.opensource.org/licenses/bsd-license.php
- *
- * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
- * mark may be used in accordance with the Linux Foundation Trademark
- * Policy to indicate compliance with the IAccessible2 specification.
- *
- ************************************************************************/
-
-import "objidl.idl";
-import "oaidl.idl";
-import "oleacc.idl";
-
-/** A value specifying a color in ARGB format, where each 8 bit color component
-specifies alpha, red, green, and blue respectively. The alpha value is optional.
-*/
-typedef long IA2Color;
-
-/** @brief This interface is implemented by any object that can be rendered
- on the screen.
-
- This interface provides the standard mechanism for an assistive technology
- to retrieve information concerning the graphical representation of an object.
- Coordinates used by the functions of this interface are specified in
- different coordinate systems. Their scale is the same and is equal to
- that of the screen coordinate system. In other words all coordinates
- are measured in pixels. They differ in their respective origin:
- <ul>
- <li>The screen coordinate system has its origin in the upper left
- corner of the current screen.</li>
- <li>The origin of the parent coordinate system is the upper left corner
- of the parent's bounding box. With no parent the screen coordinate
- system is used instead.</li>
- </ul>
-*/
-[object, uuid(1546D4B0-4C98-4bda-89AE-9A64748BDDE4)]
-interface IAccessibleComponent : IUnknown
-{
-
- /** @brief Returns the location of the upper left corner of the object's
- bounding box relative to the immediate parent object.
-
- The coordinates of the bounding box are given relative to the parent's
- coordinate system. The coordinates of the returned position are relative
- to this object's parent or relative to the screen on which this object
- is rendered if it has no parent. If the object is not on any screen
- the returned position is (0,0).
-
- @param [out] x
- @param [out] y
- @retval S_OK
- */
- [propget] HRESULT locationInParent
- (
- [out] long *x,
- [out, retval] long *y
- );
-
- /** @brief Returns the foreground color of this object.
- @param [out] foreground
- The returned color is the foreground color of this object or, if
- that is not supported, the default foreground color.
- @retval S_OK
- */
- [propget] HRESULT foreground
- (
- [out, retval] IA2Color *foreground
- );
-
- /** @brief Returns the background color of this object.
- @param [out] background
- The returned color is the background color of this object or, if
- that is not supported, the default background color.
- @retval S_OK
- */
- [propget] HRESULT background
- (
- [out, retval] IA2Color *background
- );
-}
diff --git a/src/3rdparty/iaccessible2/idl/AccessibleEditableText.idl b/src/3rdparty/iaccessible2/idl/AccessibleEditableText.idl
deleted file mode 100644
index 48fefd30ef..0000000000
--- a/src/3rdparty/iaccessible2/idl/AccessibleEditableText.idl
+++ /dev/null
@@ -1,259 +0,0 @@
-/*************************************************************************
- *
- * File Name (AccessibleEditableText.idl)
- *
- * IAccessible2 IDL Specification
- *
- * Copyright (c) 2007, 2010 Linux Foundation
- * Copyright (c) 2006 IBM Corporation
- * Copyright (c) 2000, 2006 Sun Microsystems, Inc.
- * All rights reserved.
- *
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following
- * disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * 3. Neither the name of the Linux Foundation nor the names of its
- * contributors may be used to endorse or promote products
- * derived from this software without specific prior written
- * permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This BSD License conforms to the Open Source Initiative "Simplified
- * BSD License" as published at:
- * http://www.opensource.org/licenses/bsd-license.php
- *
- * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
- * mark may be used in accordance with the Linux Foundation Trademark
- * Policy to indicate compliance with the IAccessible2 specification.
- *
- ************************************************************************/
-
-import "objidl.idl";
-import "oaidl.idl";
-import "oleacc.idl";
-import "IA2CommonTypes.idl";
-
-/** @brief This interface provides clipboard capability to text objects.
-
- This interface is typically used in conjunction with the IAccessibleText
- interface and complements that interface with the additional capability of
- clipboard operations. Note that even a read only text object can support
- the copy capability so this interface is not limited to editable objects.
-
- The substrings used with this interface are specified as follows:
- If startOffset is less than endOffset, the substring starts with the
- character at startOffset and ends with the character just before endOffset.
- If endOffset is lower than startOffset, the result is the same as a call
- with the two arguments exchanged. The whole text can be defined by passing
- the indices zero and IAccessibleText::nCharacters. If both indices have the
- same value, an empty string is defined.
-
- Refer to the @ref _specialOffsets
- "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
- for information about a special offset constant that can be used in %IAccessibleEditableText methods.
-*/
-[object, uuid(A59AA09A-7011-4b65-939D-32B1FB5547E3)]
-interface IAccessibleEditableText : IUnknown
-{
-
- /** @brief Copies the text range into the clipboard.
-
- The selection is set to the specified offsets and then selection is copied into
- the system clipboard.
-
- @param [in] startOffset
- Start index of the text to moved into the clipboard.
- The valid range is 0..length.
- @param [in] endOffset
- End index of the text to moved into the clipboard.
- The valid range is 0..length.
- @retval S_OK
- @retval E_INVALIDARG if bad [in] passed
- @note Refer to @ref _specialOffsets
- "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
- for information about special offsets that can be used in %IAccessibleEditableText
- methods.
- */
- HRESULT copyText
- (
- [in] long startOffset,
- [in] long endOffset
- );
-
- /** @brief Deletes a range of text.
-
- The text between and including the two given indices is deleted
- from the text represented by this object.
-
- @param [in] startOffset
- Start index of the text to be deleted.
- The valid range is 0..length.
- @param [in] endOffset
- End index of the text to be deleted.
- The valid range is 0..length.
- @retval S_OK
- @retval E_INVALIDARG if bad [in] passed
- @note Refer to @ref _specialOffsets
- "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
- for information about special offsets that can be used in %IAccessibleEditableText
- methods.
- */
- HRESULT deleteText
- (
- [in] long startOffset,
- [in] long endOffset
- );
-
- /** @brief Inserts text at the specified position.
-
- The specified string is inserted at the given index into the text
- represented by this object.
-
- @param [in] offset
- Index at which to insert the text.
- The valid range is 0..length.
- Refer to @ref _specialOffsets
- "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
- for information about special offsets that can be used in %IAccessibleEditableText
- methods.
- @param [in] text
- Text that is inserted.
- @retval S_OK
- @retval E_INVALIDARG if bad [in] passed
- */
- HRESULT insertText
- (
- [in] long offset,
- [in] BSTR *text
- );
-
- /** @brief Deletes a range of text and copies it to the clipboard.
-
- The selection is set to the specified offsets, the selection is then copied into
- the system clipboard, and then the selection is deleted.
-
- @param [in] startOffset
- Start index of the text to be deleted.
- The valid range is 0..length.
- @param [in] endOffset
- End index of the text to be deleted.
- The valid range is 0..length.
- @retval S_OK
- @retval E_INVALIDARG if bad [in] passed
- @note Refer to @ref _specialOffsets
- "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
- for information about special offsets that can be used in %IAccessibleEditableText
- methods.
- */
- HRESULT cutText
- (
- [in] long startOffset,
- [in] long endOffset
- );
-
- /** @brief Pastes content from the clipboard.
-
- Any existing selection is removed, the clipboard content is then pasted into
- this object's text at the given offset. This method is similar to the insertText
- method. If the index is not valid the system clipboard content is not inserted. The
- behavior is the same as when Ctrl+V is used, i.e. the pasted contents are not
- necessarily plain text.
-
- @param [in] offset
- Index at which to insert the content from the system clipboard into
- the text represented by this object.
- The valid range is 0..length.
- Refer to @ref _specialOffsets
- "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
- for information about special offsets that can be used in %IAccessibleEditableText
- methods.
- @retval S_OK
- @retval E_INVALIDARG if bad [in] passed
- */
- HRESULT pasteText
- (
- [in] long offset
- );
-
- /** @brief Replaces text.
-
- The text between the two given indices is replaced by the specified
- replacement string. This method is equivalent to calling first
- IAccessibleEditableText::deleteText with the two indices and then
- calling IAccessibleEditableText::insertText with the replacement text
- at the start index.
-
- @param [in] startOffset
- Start index of the text to be replaced.
- The valid range is 0..length.
- @param [in] endOffset
- End index of the text to be replaced.
- The valid range is 0..length.
- @param [in] text
- The Text that replaces the text between the given indices.
- @retval S_OK
- @retval E_INVALIDARG if bad [in] passed
- @note Refer to @ref _specialOffsets
- "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
- for information about special offsets that can be used in %IAccessibleEditableText
- methods.
- */
- HRESULT replaceText
- (
- [in] long startOffset,
- [in] long endOffset,
- [in] BSTR *text
- );
-
- /** @brief Replaces the attributes of a text range by the given set of attributes.
-
- Sets the attributes for the text between the two given indices. The old
- attributes are replaced by the new list of attributes.
-
- @param [in] startOffset
- Start index of the text whose attributes are modified.
- The valid range is 0..length.
- @param [in] endOffset
- End index of the text whose attributes are modified.
- The valid range is 0..length.
- @param [in] attributes
- Set of attributes that replaces the old list of attributes of
- the specified text portion.
- @retval S_OK
- @retval E_INVALIDARG if bad [in] passed
- @note Refer to @ref _specialOffsets
- "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
- for information about special offsets that can be used in %IAccessibleEditableText
- methods.
- */
- HRESULT setAttributes
- (
- [in] long startOffset,
- [in] long endOffset,
- [in] BSTR *attributes
- );
-}
-
diff --git a/src/3rdparty/iaccessible2/idl/AccessibleEventID.idl b/src/3rdparty/iaccessible2/idl/AccessibleEventID.idl
deleted file mode 100644
index 1db957d6e5..0000000000
--- a/src/3rdparty/iaccessible2/idl/AccessibleEventID.idl
+++ /dev/null
@@ -1,230 +0,0 @@
-/*************************************************************************
- *
- * File Name (AccessibleEventID.idl)
- *
- * IAccessible2 IDL Specification
- *
- * Copyright (c) 2007, 2010 Linux Foundation
- * Copyright (c) 2006 IBM Corporation
- * Copyright (c) 2000, 2006 Sun Microsystems, Inc.
- * All rights reserved.
- *
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following
- * disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * 3. Neither the name of the Linux Foundation nor the names of its
- * contributors may be used to endorse or promote products
- * derived from this software without specific prior written
- * permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This BSD License conforms to the Open Source Initiative "Simplified
- * BSD License" as published at:
- * http://www.opensource.org/licenses/bsd-license.php
- *
- * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
- * mark may be used in accordance with the Linux Foundation Trademark
- * Policy to indicate compliance with the IAccessible2 specification.
- *
- ************************************************************************/
-
-/** %IAccessible2 specific event constants
-
- This enum defines the event IDs fired by %IAccessible2 objects. The event IDs
- are in addition to those used by MSAA.
-*/
-enum IA2EventID {
-
- /** The change of the number or attributes of actions of an accessible
- object is signaled by events of this type.
- */
- IA2_EVENT_ACTION_CHANGED = 0x101,
-
- /** <b>Deprecated.</b> The active descendant of a component has changed.
-
- Note: This event constant is misspelled and thus is deprecated and will be
- removed in a later version. Please use the correctly spelled version which
- follows.
- */
- IA2_EVENT_ACTIVE_DECENDENT_CHANGED,
-
- /** The active descendant of a component has changed. The active descendant
- is used in objects with transient children.
-
- Note: Due to the fact that MSAA's WinEvents don't allow the active child index
- to be passed on the IA2_EVENT_ACTIVE_DESCENDANT_CHANGED event the manages
- descendants scheme can't be used. Instead the active child object has to fire
- MSAA's EVENT_OBJECT_FOCUS. In a future release a new event mechanism may be
- added to provide for event specific data to be passed with the event. At that
- time the IA2_EVENT_ACTIVE_DECENDENT_CHANGED event and
- IA2_STATE_MANAGES_DESCENDANTS state would be useful.
- */
- IA2_EVENT_ACTIVE_DESCENDANT_CHANGED = IA2_EVENT_ACTIVE_DECENDENT_CHANGED,
-
- /** The document wide attributes of the document object have changed.
- */
- IA2_EVENT_DOCUMENT_ATTRIBUTE_CHANGED,
-
- /** The contents of the document have changed.
- */
- IA2_EVENT_DOCUMENT_CONTENT_CHANGED,
-
- /** The loading of the document has completed.
- */
- IA2_EVENT_DOCUMENT_LOAD_COMPLETE,
-
- /** The loading of the document was interrupted.
- */
- IA2_EVENT_DOCUMENT_LOAD_STOPPED,
-
- /** The document contents are being reloaded.
- */
- IA2_EVENT_DOCUMENT_RELOAD,
-
- /** The ending index of this link within the containing string has changed.
- */
- IA2_EVENT_HYPERLINK_END_INDEX_CHANGED,
-
- /** The number of anchors associated with this hyperlink object has changed.
- */
- IA2_EVENT_HYPERLINK_NUMBER_OF_ANCHORS_CHANGED,
-
- /** The hyperlink selected state changed from selected to unselected or
- from unselected to selected.
- */
- IA2_EVENT_HYPERLINK_SELECTED_LINK_CHANGED,
-
- /** One of the links associated with the hypertext object has been activated.
- */
- IA2_EVENT_HYPERTEXT_LINK_ACTIVATED,
-
- /** One of the links associated with the hypertext object has been selected.
- */
- IA2_EVENT_HYPERTEXT_LINK_SELECTED,
-
- /** The starting index of this link within the containing string has changed.
- */
- IA2_EVENT_HYPERLINK_START_INDEX_CHANGED,
-
- /** Focus has changed from one hypertext object to another, or focus moved
- from a non-hypertext object to a hypertext object, or focus moved from a
- hypertext object to a non-hypertext object.
- */
- IA2_EVENT_HYPERTEXT_CHANGED,
-
- /** The number of hyperlinks associated with a hypertext object changed
- */
- IA2_EVENT_HYPERTEXT_NLINKS_CHANGED,
-
- /** An object's attributes changed.
- Also see ::IA2_EVENT_TEXT_ATTRIBUTE_CHANGED.
- */
- IA2_EVENT_OBJECT_ATTRIBUTE_CHANGED,
-
- /** A slide changed in a presentation document or a page boundary was
- crossed in a word processing document.
- */
- IA2_EVENT_PAGE_CHANGED,
-
- /** The caret moved from one section to the next.
- */
- IA2_EVENT_SECTION_CHANGED,
-
- /** A table caption changed.
- */
- IA2_EVENT_TABLE_CAPTION_CHANGED,
-
- /** A table's column description changed.
- */
- IA2_EVENT_TABLE_COLUMN_DESCRIPTION_CHANGED,
-
- /** A table's column header changed.
- */
- IA2_EVENT_TABLE_COLUMN_HEADER_CHANGED,
-
- /** A table's data changed.
- */
- IA2_EVENT_TABLE_MODEL_CHANGED,
-
- /** A table's row description changed.
- */
- IA2_EVENT_TABLE_ROW_DESCRIPTION_CHANGED,
-
- /** A table's row header changed.
- */
- IA2_EVENT_TABLE_ROW_HEADER_CHANGED,
-
- /** A table's summary changed.
- */
- IA2_EVENT_TABLE_SUMMARY_CHANGED,
-
- /** A text object's attributes changed.
- Also see ::IA2_EVENT_OBJECT_ATTRIBUTE_CHANGED.
- */
- IA2_EVENT_TEXT_ATTRIBUTE_CHANGED,
-
- /** The caret has moved to a new position.
- */
- IA2_EVENT_TEXT_CARET_MOVED,
-
- /** <b>Deprecated.</b> This event is equivalent to ::IA2_EVENT_TEXT_UPDATED.
- */
- IA2_EVENT_TEXT_CHANGED,
-
- /** The caret moved from one column to the next.
- */
- IA2_EVENT_TEXT_COLUMN_CHANGED,
-
- /** Text was inserted.
- */
- IA2_EVENT_TEXT_INSERTED,
-
- /** Text was removed.
- */
- IA2_EVENT_TEXT_REMOVED,
-
- /** This event indicates general text changes, i.e. changes to text that are
- exposed through the IAccessibleText interface. For compatibility with ATK/AT-SPI
- which does not have an equivalent event, servers can alternatively fire
- ::IA2_EVENT_TEXT_REMOVED and ::IA2_EVENT_TEXT_INSERTED.
- */
- IA2_EVENT_TEXT_UPDATED,
-
- /** The text selection changed. Later versions of Microsoft development environments
- have an equivalent event identified, EVENT_OBJECT_TEXTSELECTIONCHANGED. Servers
- should use that if it is available and use IA2_EVENT_TEXT_SELECTION_CHANGED otherwise.
- Clients should be prepared to respond to either event.
-
- */
- IA2_EVENT_TEXT_SELECTION_CHANGED,
-
- /** A visible data event indicates the change of the visual appearance
- of an accessible object. This includes for example most of the
- attributes available via the IAccessibleComponent interface.
- */
- IA2_EVENT_VISIBLE_DATA_CHANGED
-
-};
diff --git a/src/3rdparty/iaccessible2/idl/AccessibleHyperlink.idl b/src/3rdparty/iaccessible2/idl/AccessibleHyperlink.idl
deleted file mode 100644
index 9311176d9c..0000000000
--- a/src/3rdparty/iaccessible2/idl/AccessibleHyperlink.idl
+++ /dev/null
@@ -1,187 +0,0 @@
-/*************************************************************************
- *
- * File Name (AccessibleHyperlink.idl)
- *
- * IAccessible2 IDL Specification
- *
- * Copyright (c) 2007, 2010 Linux Foundation
- * Copyright (c) 2006 IBM Corporation
- * Copyright (c) 2000, 2006 Sun Microsystems, Inc.
- * All rights reserved.
- *
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following
- * disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * 3. Neither the name of the Linux Foundation nor the names of its
- * contributors may be used to endorse or promote products
- * derived from this software without specific prior written
- * permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This BSD License conforms to the Open Source Initiative "Simplified
- * BSD License" as published at:
- * http://www.opensource.org/licenses/bsd-license.php
- *
- * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
- * mark may be used in accordance with the Linux Foundation Trademark
- * Policy to indicate compliance with the IAccessible2 specification.
- *
- ************************************************************************/
-
-import "objidl.idl";
-import "oaidl.idl";
-import "oleacc.idl";
-import "AccessibleAction.idl";
-
-/** @brief This interface represents hyperlinks.
-
- This interface represents a hyperlink associated with a single substring
- of text or single non-text object. Non-text objects can have either a
- single link or a collection of links such as when the non-text object is
- an image map.
-
- Linked objects and anchors are implementation dependent. This interface is derived
- from IAccessibleAction. IAccessibleAction::nActions is one greater than the
- maximum value for the indices used with the methods of this interface.
-
- Furthermore, the object that implements this interface has to be connected
- implicitly or explicitly with an object that implements IAccessibleText.
- IAccessibleHyperlink::startIndex and IAccessibleHyperlink::endIndex are
- indices with respect to the text exposed by IAccessibleText.
-
- This interface provides access to a single object which can have multiple actions.
- An example is an image map which is an image with multiple links each of which is
- associated with a separate non-overlapping area of the image. This interface could
- also be applied to other kinds of objects with multiple actions such as "smart tags"
- which are objects, typically strings, which have multiple actions such as
- "Activate URI", "Bookmark URI", etc.
-
- An interesting use case is an image map where each area is associated with multiple
- actions, e.g. an image map of smart tags. In this case you would have to implement
- two levels of accessible hyperlinks. The first level hyperlinks would only implement
- anchor and anchorTarget. The anchors would all reference the image object. The
- anchorTargets would reference the second level accessible hyperlink objects. None
- of the IAccessibleAction methods would be implemented on the first level hyperlink
- objects. The second level hyperlink objects would implement the IAccessibleAction
- methods. Their anchors would also reference the image object and their anchorTargets
- would reference URLs or the objects that would be activated.
-
- This use case demonstrates that in some cases there is no need for IAccessibleHyperlink
- to derive from IAccessibleAction. As a result it may be removed in a later version of
- the IDL and it is suggested that implementations should not rely on the inheritance.
-
-*/
-[object, uuid(01C20F2B-3DD2-400f-949F-AD00BDAB1D41)]
-interface IAccessibleHyperlink : IAccessibleAction
-{
-
- /** @brief Returns an object that represents the link anchor, as appropriate
- for the link at the specified index.
- @param [in] index
- A 0 based index identifies the anchor when, as in the case of an image map,
- there is more than one link represented by this object. The valid maximal
- index is indicated by IAccessibleAction::nActions.
- @param [out] anchor
- This is an implementation dependent value. For example, for a text link this
- method could return the substring of the containing string where the substring
- is overridden with link behavior, and for an image link this method could return
- an IUnknown VARIANT for IAccessibleImage. See the section about
- @ref _variants "VARIANTs" for additional information.
- @retval S_OK
- @retval E_INVALIDARG if bad [in] passed
- */
- [propget] HRESULT anchor
- (
- [in] long index,
- [out, retval] VARIANT *anchor
- );
-
- /** @brief Returns an object representing the target of the link, as appropriate
- for the link at the specified index.
- @param [in] index
- A 0 based index identifies the anchor when, as in the case of an image map,
- there is more than one link represented by this object. The valid maximal
- index is indicated by IAccessibleAction::nActions.
- @param [out] anchorTarget
- This is an implementation dependent value. For example this method could
- return a BSTR VARIANT of the URI. Alternatively this method could return an
- IUnknown VARIANT of a COM interface representing a target object to be
- activated when the link is activated. See the section about
- @ref _variants "VARIANTs" for additional information.
- @retval S_OK
- @retval E_INVALIDARG if bad [in] passed
- */
- [propget] HRESULT anchorTarget
- (
- [in] long index,
- [out, retval] VARIANT *anchorTarget
- );
-
- /** @brief Returns the 0 based character offset at which the textual representation of the hyperlink starts.
-
- The returned value is related to the IAccessibleText interface of the object that
- owns this hyperlink.
- @param [out] index
- @retval S_OK
- */
- [propget] HRESULT startIndex
- (
- [out, retval] long *index
- );
-
- /** @brief Returns the 0 based character offset at which the textual representation of the hyperlink ends.
-
- The returned value is related to the IAccessibleText interface of the object that
- owns this hyperlink. The character at the index is not part of the hypertext.
- @param [out] index
- @retval S_OK
- */
- [propget] HRESULT endIndex
- (
- [out, retval] long *index
- );
-
- /** @brief Returns whether the target object referenced by this link is still valid.
-
- This is a volatile state that may change without sending an appropriate event.
- Returns TRUE if the referenced target is still valid and FALSE otherwise.
-
- This has also been used to indicate whether or not the URI of the anchorTarget
- is malformed.
-
- @param [out] valid
- If false, one or more of the object's links are invalid.
- If true, all of the object's links are valid.
- @retval S_OK
- @retval S_FALSE if there is nothing to return, [out] value is FALSE
- @note This method is not being used, is deprecated, and should not be implemented or
- used. It is likely that this method will be removed in a later version of the IDL.
- */
- [propget] HRESULT valid
- (
- [out, retval] boolean *valid
- );
-}
diff --git a/src/3rdparty/iaccessible2/idl/AccessibleHypertext.idl b/src/3rdparty/iaccessible2/idl/AccessibleHypertext.idl
deleted file mode 100644
index 13093bf610..0000000000
--- a/src/3rdparty/iaccessible2/idl/AccessibleHypertext.idl
+++ /dev/null
@@ -1,123 +0,0 @@
-/*************************************************************************
- *
- * File Name (AccessibleHypertext.idl)
- *
- * IAccessible2 IDL Specification
- *
- * Copyright (c) 2007, 2010 Linux Foundation
- * Copyright (c) 2006 IBM Corporation
- * Copyright (c) 2000, 2006 Sun Microsystems, Inc.
- * All rights reserved.
- *
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following
- * disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * 3. Neither the name of the Linux Foundation nor the names of its
- * contributors may be used to endorse or promote products
- * derived from this software without specific prior written
- * permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This BSD License conforms to the Open Source Initiative "Simplified
- * BSD License" as published at:
- * http://www.opensource.org/licenses/bsd-license.php
- *
- * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
- * mark may be used in accordance with the Linux Foundation Trademark
- * Policy to indicate compliance with the IAccessible2 specification.
- *
- ************************************************************************/
-
-import "objidl.idl";
-import "oaidl.idl";
-import "oleacc.idl";
-import "AccessibleText.idl";
-import "AccessibleHyperlink.idl";
-
-/** @brief This interface exposes information about hypertext in a document.
-
- The %IAccessibleHypertext interface is the main interface to expose
- hyperlinks in a document, typically a text document, that are used
- to reference other documents. A typical implementation is to implement
- this interface on the smallest text object such as a paragraph of text.
-*/
-[object, uuid(6B4F8BBF-F1F2-418a-B35E-A195BC4103B9)]
-interface IAccessibleHypertext : IAccessibleText
-{
-
- /** @brief Returns the number of links and link groups contained within this hypertext
- paragraph.
- @param [out] hyperlinkCount
- The number of links and link groups within this hypertext paragraph.
- Returns 0 if there is no link.
- @retval S_OK
- */
- [propget] HRESULT nHyperlinks
- (
- [out, retval] long *hyperlinkCount
- );
-
- /** @brief Returns the specified link.
-
- The returned IAccessibleHyperlink object encapsulates the hyperlink and
- provides several kinds of information describing it.
- @param [in] index
- This 0 based index specifies the hyperlink to return.
- @param [out] hyperlink
- If the given index is valid, i.e. lies in the interval from 0 to the number
- of links minus one, a reference to the specified hyperlink object is returned.
- If the index is invalid then a NULL pointer is returned.
- @retval S_OK
- @retval E_INVALIDARG if bad [in] passed
- */
- [propget] HRESULT hyperlink
- (
- [in] long index,
- [out, retval] IAccessibleHyperlink **hyperlink
- );
-
- /** @brief Returns the index of the hyperlink that is associated with this character index.
-
- This is the case when a link spans the given character index.
- @param [in] charIndex
- A 0 based index of the character for which to return the link index. If
- IAccessibleText is used to represent the text containing the link, then the
- character index is only valid if it is greater than or equal to zero and
- lower than the number of characters in the text.
- @param [out] hyperlinkIndex
- Returns the 0 based index of the hyperlink that is associated with this
- character index, or -1 if charIndex is not on a link.
- @retval S_OK
- @retval S_FALSE if there is nothing to return, [out] value is -1
- @retval E_INVALIDARG if bad [in] passed
- */
- [propget] HRESULT hyperlinkIndex
- (
- [in] long charIndex,
- [out, retval] long *hyperlinkIndex
- );
-
-}
diff --git a/src/3rdparty/iaccessible2/idl/AccessibleImage.idl b/src/3rdparty/iaccessible2/idl/AccessibleImage.idl
deleted file mode 100644
index e347614e29..0000000000
--- a/src/3rdparty/iaccessible2/idl/AccessibleImage.idl
+++ /dev/null
@@ -1,111 +0,0 @@
-/*************************************************************************
- *
- * File Name (AccessibleImage.idl)
- *
- * IAccessible2 IDL Specification
- *
- * Copyright (c) 2007, 2010 Linux Foundation
- * Copyright (c) 2006 IBM Corporation
- * Copyright (c) 2000, 2006 Sun Microsystems, Inc.
- * All rights reserved.
- *
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following
- * disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * 3. Neither the name of the Linux Foundation nor the names of its
- * contributors may be used to endorse or promote products
- * derived from this software without specific prior written
- * permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This BSD License conforms to the Open Source Initiative "Simplified
- * BSD License" as published at:
- * http://www.opensource.org/licenses/bsd-license.php
- *
- * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
- * mark may be used in accordance with the Linux Foundation Trademark
- * Policy to indicate compliance with the IAccessible2 specification.
- *
- ************************************************************************/
-
-import "objidl.idl";
-import "oaidl.idl";
-import "oleacc.idl";
-import "IA2CommonTypes.idl";
-
-/** @brief This interface represents images and icons.
-
- This interface is used for a representation of images like icons on buttons.
- %IAccessibleImage only needs to be implemented in certain situations. Some
- examples are:
- <ol>
- <li>The accessible name and description are not enough to fully
- describe the image, e.g. when the accessible description is used to define the
- behavior of an actionable image and the image itself conveys semantically
- significant information.
- <li>The user can edit the content that includes an
- image and therefore the user needs to be able to review the image's position.
- </ol>
-*/
-[object, uuid(FE5ABB3D-615E-4f7b-909F-5F0EDA9E8DDE)]
-interface IAccessibleImage : IUnknown
-{
- /** @brief Returns the localized description of the image.
- @param [out] description
- @retval S_OK
- @retval S_FALSE if there is nothing to return, [out] value is NULL
- */
- [propget] HRESULT description
- (
- [out, retval] BSTR *description
- );
-
- /** @brief Returns the coordinates of the image.
- @param [in] coordinateType
- Specifies whether the returned coordinates should be relative to the screen or the parent object.
- @param [out] x
- @param [out] y
- @retval S_OK
- */
- [propget] HRESULT imagePosition
- (
- [in] enum IA2CoordinateType coordinateType,
- [out] long *x,
- [out, retval] long *y
- );
-
- /** @brief Returns the size of the image in units specified by parent's coordinate system.
- @param [out] height
- @param [out] width
- @retval S_OK
- */
-
- [propget] HRESULT imageSize
- (
- [out] long *height,
- [out, retval] long *width
- );
-}
diff --git a/src/3rdparty/iaccessible2/idl/AccessibleRelation.idl b/src/3rdparty/iaccessible2/idl/AccessibleRelation.idl
deleted file mode 100644
index b0c6dfcc97..0000000000
--- a/src/3rdparty/iaccessible2/idl/AccessibleRelation.idl
+++ /dev/null
@@ -1,197 +0,0 @@
-/*************************************************************************
- *
- * File Name (AccessibleRelation.idl)
- *
- * IAccessible2 IDL Specification
- *
- * Copyright (c) 2007, 2010 Linux Foundation
- * Copyright (c) 2006 IBM Corporation
- * Copyright (c) 2000, 2006 Sun Microsystems, Inc.
- * All rights reserved.
- *
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following
- * disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * 3. Neither the name of the Linux Foundation nor the names of its
- * contributors may be used to endorse or promote products
- * derived from this software without specific prior written
- * permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This BSD License conforms to the Open Source Initiative "Simplified
- * BSD License" as published at:
- * http://www.opensource.org/licenses/bsd-license.php
- *
- * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
- * mark may be used in accordance with the Linux Foundation Trademark
- * Policy to indicate compliance with the IAccessible2 specification.
- *
- ************************************************************************/
-
-import "objidl.idl";
-import "oaidl.idl";
-import "oleacc.idl";
-
-/** @defgroup grpRelations Relations
- Use the following constants to compare against the BSTRs returned by
- IAccessibleRelation::relationType.
-*/
-///@{
-
-/** Some attribute of this object is affected by a target object. */
-const WCHAR *const IA2_RELATION_CONTROLLED_BY = L"controlledBy";
-
-/** This object is interactive and controls some attribute of a target object. */
-const WCHAR *const IA2_RELATION_CONTROLLER_FOR = L"controllerFor";
-
-/** This object is described by the target object. */
-const WCHAR *const IA2_RELATION_DESCRIBED_BY = L"describedBy";
-
-/** This object is describes the target object. */
-const WCHAR *const IA2_RELATION_DESCRIPTION_FOR = L"descriptionFor";
-
-/** This object is embedded by a target object. */
-const WCHAR *const IA2_RELATION_EMBEDDED_BY = L"embeddedBy";
-
-/** This object embeds a target object. This relation can be used on the
- OBJID_CLIENT accessible for a top level window to show where the content
- areas are.
-*/
-const WCHAR *const IA2_RELATION_EMBEDS = L"embeds";
-
-/** Content flows to this object from a target object.
- This relation and IA2_RELATION_FLOWS_TO are useful to tie text and non-text
- objects together in order to allow assistive technology to follow the
- intended reading order.
-*/
-const WCHAR *const IA2_RELATION_FLOWS_FROM = L"flowsFrom";
-
-/** Content flows from this object to a target object. */
-const WCHAR *const IA2_RELATION_FLOWS_TO = L"flowsTo";
-
-/** This object is label for a target object. */
-const WCHAR *const IA2_RELATION_LABEL_FOR = L"labelFor";
-
-/** This object is labelled by a target object. Note that the double L spelling
- which follows is preferred. Please use it instead. This single L version may
- be removed in a later version.
-*/
-const WCHAR *const IA2_RELATION_LABELED_BY = L"labelledBy";
-
-/** This object is labelled by a target object. */
-const WCHAR *const IA2_RELATION_LABELLED_BY = L"labelledBy";
-
-/** This object is a member of a group of one or more objects. When
- there is more than one object in the group each member may have one and the
- same target, e.g. a grouping object. It is also possible that each member has
- multiple additional targets, e.g. one for every other member in the group.
-*/
-const WCHAR *const IA2_RELATION_MEMBER_OF = L"memberOf";
-
-/** This object is a child of a target object. */
-const WCHAR *const IA2_RELATION_NODE_CHILD_OF = L"nodeChildOf";
-
-/** This object is a parent window of the target object. */
-const WCHAR *const IA2_RELATION_PARENT_WINDOW_OF = L"parentWindowOf";
-
-/** This object is a transient component related to the target object.
- When this object is activated the target object doesn't lose focus.
-*/
-const WCHAR *const IA2_RELATION_POPUP_FOR = L"popupFor";
-
-/** This object is a sub window of a target object. */
-const WCHAR *const IA2_RELATION_SUBWINDOW_OF = L"subwindowOf";
-
-///@}
-
-/// This interface gives access to an object's set of relations.
-[object, uuid(7CDF86EE-C3DA-496a-BDA4-281B336E1FDC)]
-interface IAccessibleRelation : IUnknown
-{
- /** @brief Returns the type of the relation.
- @param [out] relationType
- The strings returned are defined @ref grpRelations "in this section of the documentation".
- @retval S_OK
- */
- [propget] HRESULT relationType
- (
- [out, retval] BSTR *relationType
- );
-
- /** @brief Returns a localized version of the relation type.
- @param [out] localizedRelationType
- @retval S_OK
- */
- [propget] HRESULT localizedRelationType
- (
- [out, retval] BSTR *localizedRelationType
- );
-
- /** @brief Returns the number of targets for this relation.
- @param [out] nTargets
- @retval S_OK
- */
- [propget] HRESULT nTargets
- (
- [out, retval] long *nTargets
- );
-
- /** @brief Returns one accessible relation target.
- @param [in] targetIndex
- 0 based index
- @param [out] target
- @retval S_OK
- @retval E_INVALIDARG if bad [in] passed
- @note Use QueryInterface to get IAccessible2.
- */
- [propget] HRESULT target
- (
- [in] long targetIndex,
- [out, retval] IUnknown **target
- );
-
- /** @brief Returns multiple accessible relation targets
- @param [in] maxTargets
- maximum size of the array allocated by the client
- @param [out] targets
- The array of target objects. Note that this array is to be allocated by the
- client and freed when no longer needed. Refer to @ref _arrayConsideration
- "Special Consideration when using Arrays" for more details. You will need to use
- QueryInterface on the IUnknown to get the IAccessible2.
- @param [out] nTargets
- actual number of targets in the returned array (not more than maxTargets)
- @retval S_OK
- @retval E_INVALIDARG if bad [in] passed, e.g. a negative value
- */
- [propget] HRESULT targets
- (
- [in] long maxTargets,
- [out, size_is(maxTargets), length_is(*nTargets)]
- IUnknown **targets,
- [out, retval] long *nTargets
- );
-
-}
diff --git a/src/3rdparty/iaccessible2/idl/AccessibleRole.idl b/src/3rdparty/iaccessible2/idl/AccessibleRole.idl
deleted file mode 100644
index 385e02d05a..0000000000
--- a/src/3rdparty/iaccessible2/idl/AccessibleRole.idl
+++ /dev/null
@@ -1,293 +0,0 @@
-/*************************************************************************
- *
- * File Name (AccessibleRole.idl)
- *
- * IAccessible2 IDL Specification
- *
- * Copyright (c) 2007, 2010 Linux Foundation
- * Copyright (c) 2006 IBM Corporation
- * Copyright (c) 2000, 2006 Sun Microsystems, Inc.
- * All rights reserved.
- *
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following
- * disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * 3. Neither the name of the Linux Foundation nor the names of its
- * contributors may be used to endorse or promote products
- * derived from this software without specific prior written
- * permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This BSD License conforms to the Open Source Initiative "Simplified
- * BSD License" as published at:
- * http://www.opensource.org/licenses/bsd-license.php
- *
- * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
- * mark may be used in accordance with the Linux Foundation Trademark
- * Policy to indicate compliance with the IAccessible2 specification.
- *
- ************************************************************************/
-
-import "objidl.idl";
-
-/** Collection of roles
-
- This enumerator defines an extended set of accessible roles of objects implementing
- the %IAccessible2 interface. These roles are in addition to the MSAA roles obtained
- through the MSAA get_accRole method. Examples are 'footnote', 'heading', and
- 'label'. You obtain an object's %IAccessible2 roles by calling IAccessible2::role.
-*/
-enum IA2Role {
-
- /** Unknown role. The object contains some Accessible information, but its
- role is not known.
- */
- IA2_ROLE_UNKNOWN = 0,
-
- /** An object that can be drawn into and to manage events from the objects
- drawn into it. Also refer to ::IA2_ROLE_FRAME,
- ::IA2_ROLE_GLASS_PANE, and ::IA2_ROLE_LAYERED_PANE.
- */
- IA2_ROLE_CANVAS = 0x401,
-
- /// A caption describing another object.
- IA2_ROLE_CAPTION,
-
- /// Used for check buttons that are menu items.
- IA2_ROLE_CHECK_MENU_ITEM,
-
- /// A specialized dialog that lets the user choose a color.
- IA2_ROLE_COLOR_CHOOSER,
-
- /// A date editor.
- IA2_ROLE_DATE_EDITOR,
-
- /** An iconified internal frame in an ::IA2_ROLE_DESKTOP_PANE.
- Also refer to ::IA2_ROLE_INTERNAL_FRAME.
- */
- IA2_ROLE_DESKTOP_ICON,
-
- /** A desktop pane. A pane that supports internal frames and iconified
- versions of those internal frames. Also refer to ::IA2_ROLE_INTERNAL_FRAME.
- */
- IA2_ROLE_DESKTOP_PANE,
-
- /** A directory pane. A pane that allows the user to navigate through
- and select the contents of a directory. May be used by a file chooser.
- Also refer to ::IA2_ROLE_FILE_CHOOSER.
- */
- IA2_ROLE_DIRECTORY_PANE,
-
- /** An editable text object in a toolbar. <b>Deprecated.</b>
- The edit bar role was meant for a text area in a tool bar. However, to detect
- a text area in a tool bar the AT can query the parent.
- */
- IA2_ROLE_EDITBAR,
-
- /// Embedded (OLE) object.
- IA2_ROLE_EMBEDDED_OBJECT,
-
- /// Text that is used as an endnote (footnote at the end of a chapter or section).
- IA2_ROLE_ENDNOTE,
-
- /** A file chooser. A specialized dialog that displays the files in the
- directory and lets the user select a file, browse a different directory,
- or specify a filename. May use the directory pane to show the contents of
- a directory.
- Also refer to ::IA2_ROLE_DIRECTORY_PANE.
- */
- IA2_ROLE_FILE_CHOOSER,
-
- /** A font chooser. A font chooser is a component that lets the user pick
- various attributes for fonts.
- */
- IA2_ROLE_FONT_CHOOSER,
-
- /** Footer of a document page.
- Also refer to ::IA2_ROLE_HEADER.
- */
- IA2_ROLE_FOOTER,
-
- /// Text that is used as a footnote. Also refer to ::IA2_ROLE_ENDNOTE.
- IA2_ROLE_FOOTNOTE,
-
- /** A container of form controls. An example of the use of this role is to
- represent an HTML FORM tag.
- */
- IA2_ROLE_FORM,
-
- /** Frame role. A top level window with a title bar, border, menu bar, etc.
- It is often used as the primary window for an application. Also refer to
- ::IA2_ROLE_CANVAS and the MSAA roles of dialog and window.
- */
- IA2_ROLE_FRAME,
-
- /** A glass pane. A pane that is guaranteed to be painted on top of all panes
- beneath it. Also refer to ::IA2_ROLE_CANVAS, ::IA2_ROLE_INTERNAL_FRAME, and
- ::IA2_ROLE_ROOT_PANE.
- */
- IA2_ROLE_GLASS_PANE,
-
- /** Header of a document page.
- Also refer to ::IA2_ROLE_FOOTER.
- */
- IA2_ROLE_HEADER,
-
- /// Heading. Use the IAccessible2::attributes level attribute to determine the heading level.
- IA2_ROLE_HEADING,
-
- /// A small fixed size picture, typically used to decorate components.
- IA2_ROLE_ICON,
-
- /** An image map object. Usually a graphic with multiple hotspots, where
- each hotspot can be activated resulting in the loading of another document
- or section of a document.
- */
- IA2_ROLE_IMAGE_MAP,
-
- /** An object which is used to allow input of characters not found on a keyboard,
- such as the input of Chinese characters on a Western keyboard.
- */
- IA2_ROLE_INPUT_METHOD_WINDOW,
-
- /** An internal frame. A frame-like object that is clipped by a desktop pane.
- The desktop pane, internal frame, and desktop icon objects are often used to
- create multiple document interfaces within an application.
- Also refer to ::IA2_ROLE_DESKTOP_ICON, ::IA2_ROLE_DESKTOP_PANE, and ::IA2_ROLE_FRAME.
- */
- IA2_ROLE_INTERNAL_FRAME,
-
- /// An object used to present an icon or short string in an interface.
- IA2_ROLE_LABEL,
-
- /** A layered pane. A specialized pane that allows its children to be drawn
- in layers, providing a form of stacking order. This is usually the pane that
- holds the menu bar as well as the pane that contains most of the visual
- components in a window.
- Also refer to ::IA2_ROLE_CANVAS, ::IA2_ROLE_GLASS_PANE, and ::IA2_ROLE_ROOT_PANE.
- */
- IA2_ROLE_LAYERED_PANE,
-
- /// An embedded note which is not visible until activated.
- IA2_ROLE_NOTE,
-
- /** A specialized pane whose primary use is inside a dialog.
- Also refer to MSAA's dialog role.
- */
- IA2_ROLE_OPTION_PANE,
-
- /** An object representing a page of document content. It is used in documents
- which are accessed by the user on a page by page basis.
- */
- IA2_ROLE_PAGE,
-
- /// A paragraph of text.
- IA2_ROLE_PARAGRAPH,
-
- /** A radio button that is a menu item.
- Also refer to MSAA's button and menu item roles.
- */
- IA2_ROLE_RADIO_MENU_ITEM,
-
- /** An object which is redundant with another object in the accessible hierarchy.
- ATs typically ignore objects with this role.
- */
- IA2_ROLE_REDUNDANT_OBJECT,
-
- /** A root pane. A specialized pane that has a glass pane and a layered pane
- as its children.
- Also refer to ::IA2_ROLE_GLASS_PANE and ::IA2_ROLE_LAYERED_PANE
- */
- IA2_ROLE_ROOT_PANE,
-
- /** A ruler such as those used in word processors.
- */
- IA2_ROLE_RULER,
-
- /** A scroll pane. An object that allows a user to incrementally view a large
- amount of information. Its children can include scroll bars and a viewport.
- Also refer to ::IA2_ROLE_VIEW_PORT and MSAA's scroll bar role.
- */
- IA2_ROLE_SCROLL_PANE,
-
- /** A container of document content. An example of the use of this role is to
- represent an HTML DIV tag. A section may be used as a region. A region is a
- group of elements that together form a perceivable unit. A region does not
- necessarily follow the logical structure of the content, but follows the
- perceivable structure of the page. A region may have an attribute in the set
- of IAccessible2::attributes which indicates that it is "live". A live region
- is content that is likely to change in response to a timed change, a user
- event, or some other programmed logic or event.
- */
- IA2_ROLE_SECTION,
-
- /// Object with graphical representation used to represent content on draw pages.
- IA2_ROLE_SHAPE,
-
- /** A split pane. A specialized panel that presents two other panels at the
- same time. Between the two panels is a divider the user can manipulate to make
- one panel larger and the other panel smaller.
- */
- IA2_ROLE_SPLIT_PANE,
-
- /** An object that forms part of a menu system but which can be "undocked"
- from or "torn off" the menu system to exist as a separate window.
- */
- IA2_ROLE_TEAR_OFF_MENU,
-
- /// An object used as a terminal emulator.
- IA2_ROLE_TERMINAL,
-
- /// Collection of objects that constitute a logical text entity.
- IA2_ROLE_TEXT_FRAME,
-
- /** A toggle button. A specialized push button that can be checked or unchecked,
- but does not provide a separate indicator for the current state.
- Also refer to MSAA's roles of push button, check box, and radio button.
- <BR><B>Note:</B> IA2_ROLE_TOGGLE_BUTTON should not be used. Instead, use MSAA's
- ROLE_SYSTEM_PUSHBUTTON and STATE_SYSTEM_PRESSED.
- */
- IA2_ROLE_TOGGLE_BUTTON,
-
- /** A viewport. An object usually used in a scroll pane. It represents the
- portion of the entire data that the user can see. As the user manipulates
- the scroll bars, the contents of the viewport can change.
- Also refer to ::IA2_ROLE_SCROLL_PANE.
- */
- IA2_ROLE_VIEW_PORT,
-
- /** An object containing content which is complementary to the main content of
- a document, but remains meaningful when separated from the main content. There
- are various types of content that would appropriately have this role. For example,
- in the case where content is delivered via a web portal to a web browser, this may
- include but not be limited to show times, current weather, related articles, or
- stocks to watch. The complementary role indicates that contained content is relevant
- to the main content. If the complementary content is completely separable main
- content, it may be appropriate to use a more general role.
- */
- IA2_ROLE_COMPLEMENTARY_CONTENT
-
-};
diff --git a/src/3rdparty/iaccessible2/idl/AccessibleStates.idl b/src/3rdparty/iaccessible2/idl/AccessibleStates.idl
deleted file mode 100644
index 0304b643da..0000000000
--- a/src/3rdparty/iaccessible2/idl/AccessibleStates.idl
+++ /dev/null
@@ -1,209 +0,0 @@
-/*************************************************************************
- *
- * File Name (AccessibleStates.idl)
- *
- * IAccessible2 IDL Specification
- *
- * Copyright (c) 2007, 2010 Linux Foundation
- * Copyright (c) 2006 IBM Corporation
- * Copyright (c) 2000, 2006 Sun Microsystems, Inc.
- * All rights reserved.
- *
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following
- * disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * 3. Neither the name of the Linux Foundation nor the names of its
- * contributors may be used to endorse or promote products
- * derived from this software without specific prior written
- * permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This BSD License conforms to the Open Source Initiative "Simplified
- * BSD License" as published at:
- * http://www.opensource.org/licenses/bsd-license.php
- *
- * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
- * mark may be used in accordance with the Linux Foundation Trademark
- * Policy to indicate compliance with the IAccessible2 specification.
- *
- ************************************************************************/
-
-import "objidl.idl";
-
-typedef long AccessibleStates;
-
-/** %IAccessible2 specific state bit constants
-
- This enum defines the state bits returned by IAccessible2::states. The
- %IAccessible2 state bits are in addition to those returned by MSAA.
-*/
-enum IA2States {
-
-/** Indicates a window is currently the active window, or is an active subelement
- within a container or table.
-
- This state can be used to indicate the current active item in a container, even
- if the container itself is not currently active. In other words this would indicate
- the item that will get focus if you tab to the container.
-
- This information is important for knowing what to report for trees and potentially
- other containers in a virtual buffer.
-
- Also, see ::IA2_STATE_MANAGES_DESCENDANTS for more information.
-*/
-IA2_STATE_ACTIVE = 0x1,
-
-/** Indicates that the object is armed.
-
- Used to indicate that the control is "pressed" and will be invoked when the
- actuator, e.g. a mouse button, is "released". An AT which either monitors the
- mouse or synthesizes mouse events might need to know that, and possibly a talking
- interface would even let the user know about it. It could also potentially be
- useful to on screen keyboards or test tools since the information does indicate
- something about the state of the interface, for example, code operating asynchronously
- might need to wait for the armed state to change before doing something else.
-
-*/
-IA2_STATE_ARMED = 0x2,
-
-/** Indicates the user interface object corresponding to this object no longer exists. */
-IA2_STATE_DEFUNCT = 0x4,
-
-/** An object with this state has a caret and implements the IAccessibleText interface.
-
- Such fields may be read-only, so STATE_SYSTEM_READONLY is valid in combination
- with IA2_STATE_EDITABLE.
-
-*/
-IA2_STATE_EDITABLE = 0x8,
-
-/** Indicates the orientation of this object is horizontal. */
-IA2_STATE_HORIZONTAL = 0x10,
-
-/** Indicates this object is minimized and is represented only by an icon. */
-IA2_STATE_ICONIFIED = 0x20,
-
-/** Indicates an input validation failure. */
-IA2_STATE_INVALID_ENTRY = 0x40,
-
-/** Indicates that this object manages its children.
-
- Note: Due to the fact that MSAA's WinEvents don't allow the active child index
- to be passed on the IA2_EVENT_ACTIVE_DESCENDANT_CHANGED event, the manages
- descendants scheme can't be used. Instead the active child object has to fire
- MSAA's EVENT_OBJECT_FOCUS. In a future release a new event mechanism may be
- added to provide for event specific data to be passed with the event. At that
- time the IA2_EVENT_ACTIVE_DECENDENT_CHANGED event and
- IA2_STATE_MANAGES_DESCENDANTS state would be useful.
-*/
-IA2_STATE_MANAGES_DESCENDANTS = 0x80,
-
-/** Indicates that an object is modal.
-
- Modal objects have the behavior that something must be done with the object
- before the user can interact with an object in a different window.
-*/
-IA2_STATE_MODAL = 0x100,
-
-/** Indicates this text object can contain multiple lines of text. */
-IA2_STATE_MULTI_LINE = 0x200,
-
-/** Indicates this object paints every pixel within its rectangular region. */
-IA2_STATE_OPAQUE = 0x400,
-
-/** Indicates that user interaction is required.
-
- An example of when this state is used is when a field in a form must be filled
- before a form can be processed.
-*/
-IA2_STATE_REQUIRED = 0x800,
-
-/** Indicates an object which supports text selection.
-
- Note: This is different than MSAA STATE_SYSTEM_SELECTABLE.
-*/
-IA2_STATE_SELECTABLE_TEXT = 0x1000,
-
-/** Indicates that this text object can contain only a single line of text. */
-IA2_STATE_SINGLE_LINE = 0x2000,
-
-/** Indicates that the accessible object is stale.
-
- This state is used when the accessible object no longer accurately
- represents the state of the object which it is representing such as when an
- object is transient or when an object has been or is in the process of being
- destroyed or when the object's index in its parent has changed.
-*/
-IA2_STATE_STALE = 0x4000,
-
-/** Indicates that the object implements autocompletion.
-
- This state indicates that a text control will respond to the input of
- one ore more characters and cause a sub-item to become selected. The
- selection may also result in events fired on the parent object.
-*/
-IA2_STATE_SUPPORTS_AUTOCOMPLETION = 0x8000,
-
-/** Indicates this object is transient.
-
- An object has this state when its parent object has the state ::IA2_STATE_MANAGES_DESCENDANTS.
- For example, a list item object may be managed by its parent list object and may only
- exist as long as the object is actually rendered. Similarly a table cell's accessible
- object may exist only while the cell has focus. However, from the perspective of an
- assistive technology a transient object behaves like a non-transient object. As a
- result it is likely that this state is not of use to an assistive technology, but it
- is provided in case an assistive technology determines that knowledge of the transient
- nature of the object is useful and also for harmony with the Linux accessibility API.
-
- Also, see ::IA2_STATE_MANAGES_DESCENDANTS for more information.
- */
-IA2_STATE_TRANSIENT = 0x10000,
-
-/** Indicates the orientation of this object is vertical. */
-IA2_STATE_VERTICAL = 0x20000,
-
-/** Indicates this object is checkable.
-
- The standard checkable objects are check boxes, radio buttons, check box menu
- items, radio menu items, and toggle buttons. Since assistive technology will
- determine that these objects are checkable via the object's role the checkable
- state is not required. However, this state is necessary in those cases where
- an object has a role which is not one of the previously mentioned roles. An
- example is a table cell which indicates whether or not an email has an attachment,
- whether or not an mail is considered spam, and whether or not an email has been read.
- */
-IA2_STATE_CHECKABLE = 0x40000,
-
-/** Indicates this object is pinned.
-
- This state indicates that an object is fixed at a certain location. One example
- is a browser tab that when pinned cannot be moved until unpinned. Another example
- is a movable or floating object that when pinned remains in its pinned location
- until being unpinned.
- */
-IA2_STATE_PINNED = 0x80000
-
-};
diff --git a/src/3rdparty/iaccessible2/idl/AccessibleTable.idl b/src/3rdparty/iaccessible2/idl/AccessibleTable.idl
deleted file mode 100644
index 69c99a7515..0000000000
--- a/src/3rdparty/iaccessible2/idl/AccessibleTable.idl
+++ /dev/null
@@ -1,551 +0,0 @@
-/*************************************************************************
- *
- * File Name (AccessibleTable.idl)
- *
- * IAccessible2 IDL Specification
- *
- * Copyright (c) 2007, 2010 Linux Foundation
- * Copyright (c) 2006 IBM Corporation
- * Copyright (c) 2000, 2006 Sun Microsystems, Inc.
- * All rights reserved.
- *
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following
- * disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * 3. Neither the name of the Linux Foundation nor the names of its
- * contributors may be used to endorse or promote products
- * derived from this software without specific prior written
- * permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This BSD License conforms to the Open Source Initiative "Simplified
- * BSD License" as published at:
- * http://www.opensource.org/licenses/bsd-license.php
- *
- * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
- * mark may be used in accordance with the Linux Foundation Trademark
- * Policy to indicate compliance with the IAccessible2 specification.
- *
- ************************************************************************/
-
-import "objidl.idl";
-import "oaidl.idl";
-import "oleacc.idl";
-import "Accessible2.idl";
-import "IA2CommonTypes.idl";
-
-/** @brief This interface gives access to a two-dimensional table.
-
- Typically all accessible objects that represent cells or cell-clusters of a table
- will be at the same time children of the table. In this case IAccessible2::indexInParent
- will return the child index which then can be used when calling IAccessibleTable::rowIndex
- and IAccessibleTable::columnIndex.
-
- However, in some cases that kind of implementation will not be possible. When
- the table cells are not direct children of a table, the object representing
- the cell can define a "table-cell-index" object attribute identifying the 0
- based table cell index. This object attribute is obtained by parsing the
- attribute string returned by IAccessible2::attributes. The "table-cell-index"
- attribute can be used just like a child index of the typical case. ATs should
- first test for the presence of the "table-cell-index" attribute and if it is not
- present then IAccessible2::indexInParent can be used as in the typical case
- where cells are direct children of the table.
-
- The range of valid coordinates for this interface are implementation dependent.
- However, that range includes at least the intervals from the from the first row
- or column with the index 0 up to the last (but not including) used row or column
- as returned by IAccessibleTable::nRows and IAccessibleTable::nColumns.
-
- Note that newer implementations are now using IAccessibleTable2 and IAccessibleTableCell
- rather than this interface.
-*/
-[object, uuid(35AD8070-C20C-4fb4-B094-F4F7275DD469)]
-interface IAccessibleTable : IUnknown
-{
-
- /** @brief Returns the accessible object at the specified row and column in
- the table. This object could be an IAccessible or an IAccessible2.
- @param [in] row
- The 0 based row index for which to retrieve the cell.
- @param [in] column
- The 0 based column index for which to retrieve the cell.
- @param [out] accessible
- If both row and column index are valid then the corresponding accessible
- object is returned that represents the requested cell regardless of whether
- the cell is currently visible (on the screen).
- @retval S_OK
- @retval E_INVALIDARG if bad [in] passed, [out] value is NULL
- */
- [propget] HRESULT accessibleAt
- (
- [in] long row,
- [in] long column,
- [out, retval] IUnknown **accessible
- );
-
- /** @brief Returns the caption for the table. The returned object could be
- an IAccessible or an IAccessible2.
- @param [out] accessible
- If the table has a caption then a reference to it is returned, else a NULL
- pointer is returned.
- @retval S_OK
- @retval S_FALSE if there is nothing to return, [out] value is NULL
- */
- [propget] HRESULT caption
- (
- [out, retval] IUnknown **accessible
- );
-
- /** @brief Translates the given row and column indexes into the corresponding cell index.
- @param [in] rowIndex
- 0 based row index for the cell.
- @param [in] columnIndex
- 0 based column index for the cell.
- @param [out] cellIndex
- Returns the 0 based index of the cell at the specified row and column indexes.
- @retval S_OK
- @retval E_INVALIDARG if bad [in] passed, [out] value is 0
- @note The returned value is not necessarily a child index of the immediate parent.
- In cases where the table cells are not direct children of the table the index
- is actually the cell index, i.e. conceptually it's an index into a one dimensional
- array of cells laid out in row order.
- */
- [propget] HRESULT childIndex
- (
- [in] long rowIndex,
- [in] long columnIndex,
- [out, retval] long *cellIndex
- );
-
- /** @brief Returns the description text of the specified column in the table.
- @param [in] column
- The 0 based index of the column for which to retrieve the description.
- @param [out] description
- Returns the description text of the specified column in the table if such a
- description exists. Otherwise a NULL pointer is returned.
- @retval S_OK
- @retval S_FALSE if there is nothing to return, [out] value is NULL
- @retval E_INVALIDARG if bad [in] passed, [out] value is NULL
- */
- [propget] HRESULT columnDescription
- (
- [in] long column,
- [out, retval] BSTR *description
- );
-
- /** @brief Returns the number of columns occupied by the accessible object
- at the specified row and column in the table.
-
- The result is greater than 1 if the specified cell spans multiple columns.
- @param [in] row
- 0 based row index of the accessible for which to return the column extent.
- @param [in] column
- 0 based column index of the accessible for which to return the column extent.
- @param [out] nColumnsSpanned
- Returns the 1 based column extent of the specified cell.
- @retval S_OK
- @retval E_INVALIDARG if bad [in] passed, [out] value is 0
- */
- [propget] HRESULT columnExtentAt
- (
- [in] long row,
- [in] long column,
- [out, retval] long *nColumnsSpanned
- );
-
- /** @brief Returns the column headers as an %IAccessibleTable object.
-
- Content and size of the returned table are implementation dependent.
- @param [out] accessibleTable
- The column header
- @param [out] startingRowIndex
- The 0 based row index where the header starts, usually 0.
- @retval S_OK
- @retval S_FALSE if there is no header, [out] values are NULL and 0 respectively
- */
- [propget] HRESULT columnHeader
- (
- [out] IAccessibleTable **accessibleTable,
- [out, retval] long *startingRowIndex
- );
-
- /** @brief Translates the given cell index into the corresponding column index.
- @param [in] cellIndex
- 0 based index of the cell in the parent or closest ancestor table. Typically this
- is the value returned from IAccessible2::indexInParent, but in the case where the
- table cells are not direct children of the table this is the cell index specified
- by the "table-cell-index" object attribute obtained from parsing the attributes
- string returned by calling IAccessible2::attributes on the cell object.
- @param [out] columnIndex
- Returns the 0 based column index of the cell of the specified child or the index of
- the first column if the child spans multiple columns.
- @retval S_OK
- @retval E_INVALIDARG if bad [in] passed, [out] value is 0
- */
- [propget] HRESULT columnIndex
- (
- [in] long cellIndex,
- [out, retval] long *columnIndex
- );
-
- /** @brief Returns the total number of columns in table
- @param [out] columnCount
- Number of columns in table (including columns outside the current viewport)
- @retval S_OK
- */
- [propget] HRESULT nColumns
- (
- [out, retval] long *columnCount
- );
-
- /** @brief Returns the total number of rows in table
- @param [out] rowCount
- Number of rows in table (including rows outside the current viewport)
- @retval S_OK
- */
- [propget] HRESULT nRows
- (
- [out, retval] long *rowCount
- );
-
- /** @brief Returns the total number of selected cells
- @param [out] cellCount
- Number of cells currently selected
- @retval S_OK
- */
- [propget] HRESULT nSelectedChildren
- (
- [out, retval] long *cellCount
- );
-
- /** @brief Returns the total number of selected columns
- @param [out] columnCount
- Number of columns currently selected
- @retval S_OK
- */
- [propget] HRESULT nSelectedColumns
- (
- [out, retval] long *columnCount
- );
-
- /** @brief Returns the total number of selected rows
- @param [out] rowCount
- Number of rows currently selected
- @retval S_OK
- */
- [propget] HRESULT nSelectedRows
- (
- [out, retval] long *rowCount
- );
-
- /** @brief Returns the description text of the specified row in the table.
- @param [in] row
- The 0 based index of the row for which to retrieve the description.
- @param [out] description
- Returns the description text of the specified row in the table if such a
- description exists. Otherwise a NULL pointer is returned.
- @retval S_OK
- @retval S_FALSE if there is nothing to return, [out] value is NULL
- @retval E_INVALIDARG if bad [in] passed, [out] value is NULL
- */
- [propget] HRESULT rowDescription
- (
- [in] long row,
- [out, retval] BSTR *description
- );
-
- /** @brief Returns the number of rows occupied by the accessible object
- at the specified row and column in the table.
-
- The result is greater than 1 if the specified cell spans multiple rows.
- @param [in] row
- 0 based row index of the accessible for which to return the row extent.
- @param [in] column
- 0 based column index of the accessible for which to return the row extent.
- @param [out] nRowsSpanned
- Returns the row extent of the specified cell.
- @retval S_OK
- @retval E_INVALIDARG if bad [in] passed, [out] value is 0
- */
- [propget] HRESULT rowExtentAt
- (
- [in] long row,
- [in] long column,
- [out, retval] long *nRowsSpanned
- );
-
- /** @brief Returns the row headers as an %IAccessibleTable object.
-
- Content and size of the returned table are implementation dependent.
- @param [out] accessibleTable
- The row header.
- @param [out] startingColumnIndex
- The 0 based column index where the header starts, usually 0.
- @retval S_OK
- @retval S_FALSE if there is no header, [out] values are NULL and 0 respectively
- */
- [propget] HRESULT rowHeader
- (
- [out] IAccessibleTable **accessibleTable,
- [out, retval] long *startingColumnIndex
- );
-
- /** @brief Translates the given cell index into a row index.
- @param [in] cellIndex
- 0 based index of the cell in the parent or closest ancestor table. Typically this
- is the value returned from IAccessible2::indexInParent, but in the case where the
- table cells are not direct children of the table this is the cell index specified
- by the "table-cell-index" object attribute obtained from parsing the attributes
- string returned by calling IAccessible2::attributes on the cell object.
- @param [out] rowIndex
- 0 based row index
- @retval S_OK
- @retval E_INVALIDARG if bad [in] passed, [out] value is 0
- */
- [propget] HRESULT rowIndex
- (
- [in] long cellIndex,
- [out, retval] long *rowIndex
- );
-
- /** @brief Returns a list of cell indexes currently selected (0 based).
- @param [in] maxChildren
- This parameter is ignored. Refer to @ref _arrayConsideration
- "Special Consideration when using Arrays" for more details.
- @param [out] children
- An array of cell indexes of selected cells (each index is 0 based),
- allocated by the server. Free it with CoTaskMemFree.
- @param [out] nChildren
- The number of cell indexes returned; the size of the returned array.
- @retval S_OK
- @retval S_FALSE if there are none, [out] values are NULL and 0 respectively
- */
- [propget] HRESULT selectedChildren
- (
- [in] long maxChildren,
- [out, size_is(,maxChildren), length_is(,*nChildren)] long **children,
- [out, retval] long *nChildren
- );
-
- /** @brief Returns a list of column indexes currently selected (0 based).
- @param [in] maxColumns
- This parameter is ignored. Refer to @ref _arrayConsideration
- "Special Consideration when using Arrays" for more details.
- @param [out] columns
- An array of column indexes of selected columns (each index is 0 based), allocated
- by the server. Free it with CoTaskMemFree.
- @param [out] nColumns
- The number of column indexes returned; the size of the returned array.
- @retval S_OK
- @retval S_FALSE if there are none, [out] values are NULL and 0 respectively
- */
- [propget] HRESULT selectedColumns
- (
- [in] long maxColumns,
- [out, size_is(,maxColumns), length_is(,*nColumns)] long **columns,
- [out, retval] long *nColumns
- );
-
- /** @brief Returns a list of row indexes currently selected (0 based).
- @param [in] maxRows
- This parameter is ignored. Refer to @ref _arrayConsideration
- "Special Consideration when using Arrays" for more details.
- @param [out] rows
- An array of row indexes of selected rows (each index is 0 based), allocated
- by the server. Free it with CoTaskMemFree.
- @param [out] nRows
- The number of row indexes returned; the size of the returned array.
- @retval S_OK
- @retval S_FALSE if there are none, [out] values are NULL and 0 respectively
- */
- [propget] HRESULT selectedRows
- (
- [in] long maxRows,
- [out, size_is(,maxRows), length_is(,*nRows)] long **rows,
- [out, retval] long *nRows
- );
-
- /** @brief Returns the summary description of the table. The returned object could be
- an IAccessible or an IAccessible2.
- @param [out] accessible
- Returns a reference to an implementation dependent accessible object
- representing the table's summary or a NULL pointer if the table
- does not support a summary.
- @retval S_OK
- @retval S_FALSE if there is nothing to return, [out] value is NULL
- */
- [propget] HRESULT summary
- (
- [out, retval] IUnknown **accessible
- );
-
- /** @brief Returns a boolean value indicating whether the specified column is
- completely selected.
- @param [in] column
- 0 based index of the column for which to determine whether it is selected.
- @param [out] isSelected
- Returns TRUE if the specified column is selected completely and FALSE otherwise.
- @retval S_OK
- @retval E_INVALIDARG if bad [in] passed, [out] value is FALSE
- */
- [propget] HRESULT isColumnSelected
- (
- [in] long column,
- [out, retval] boolean *isSelected
- );
-
- /** @brief Returns a boolean value indicating whether the specified row is completely
- selected.
- @param [in] row
- 0 based index of the row for which to determine whether it is selected.
- @param [out] isSelected
- Returns TRUE if the specified row is selected completely and FALSE otherwise.
- @retval S_OK
- @retval E_INVALIDARG if bad [in] passed, [out] value is FALSE
- */
- [propget] HRESULT isRowSelected
- (
- [in] long row,
- [out, retval] boolean *isSelected
- );
-
- /** @brief Returns a boolean value indicating whether the specified cell is selected.
- @param [in] row
- 0 based index of the row for the cell to determine whether it is selected.
- @param [in] column
- 0 based index of the column for the cell to determine whether it is selected.
- @param [out] isSelected
- Returns TRUE if the specified cell is selected and FALSE otherwise.
- @retval S_OK
- @retval E_INVALIDARG if bad [in] passed, [out] value is FALSE
- */
- [propget] HRESULT isSelected
- (
- [in] long row,
- [in] long column,
- [out, retval] boolean *isSelected
- );
-
- /** @brief Selects a row and unselects all previously selected rows.
- @param [in] row
- 0 based index of the row to be selected.
- @retval S_OK
- @retval E_INVALIDARG if bad [in] passed
- */
- HRESULT selectRow
- (
- [in] long row
- );
-
- /** @brief Selects a column and unselects all previously selected columns.
- @param [in] column
- 0 based index of the column to be selected.
- @retval S_OK
- @retval E_INVALIDARG if bad [in] passed
- */
- HRESULT selectColumn
- (
- [in] long column
- );
-
- /** @brief Unselects one row, leaving other selected rows selected (if any).
- @param [in] row
- 0 based index of the row to be unselected.
- @retval S_OK
- @retval E_INVALIDARG if bad [in] passed
- */
- HRESULT unselectRow
- (
- [in] long row
- );
-
- /** @brief Unselects one column, leaving other selected columns selected (if any).
- @param [in] column
- 0 based index of the column to be unselected.
- @retval S_OK
- @retval E_INVALIDARG if bad [in] passed
- */
- HRESULT unselectColumn
- (
- [in] long column
- );
-
- /** @brief Given a cell index, gets the row and column indexes and extents of a cell
- and whether or not it is selected.
-
- This is a convenience function. It is not mandatory to implement it.
- @param [in] index
- 0 based index of this cell in the table.
- @param [out] row
- 0 based row index.
- @param [out] column
- 0 based column index.
- @param [out] rowExtents
- Number of cells spanned by this cell in this row.
- @param [out] columnExtents
- Number of cells spanned by this cell in this column.
- @param [out] isSelected
- Indicates if the specified cell is selected.
- @retval S_OK
- @retval E_INVALIDARG if bad [in] passed, [out] values are 0s and FALSE respectively
- */
- [propget] HRESULT rowColumnExtentsAtIndex
- (
- [in] long index,
- [out] long *row,
- [out] long *column,
- [out] long *rowExtents,
- [out] long *columnExtents,
- [out, retval] boolean *isSelected
- );
-
- /** @brief Returns the type and extents describing how a table changed.
-
- Provided for use by the IA2_EVENT_TABLE_MODEL_CHANGED event handler.
-
- This data is only guaranteed to be valid while the thread notifying the event
- continues. Once the handler has returned, the validity of the data depends on
- how the server manages the life cycle of its objects. Also, note that the server
- may have different life cycle management strategies for controls depending on
- whether or not a control manages its children. Lists, trees, and tables can have
- a large number of children and thus it's possible that the child objects for those
- controls would only be created as needed. Servers should document their life cycle
- strategy as this will be of interest to assistive technology or script engines
- accessing data out of process or from other threads. Servers only need to save the
- most recent row and column values associated with the change and a scope of the
- entire application is adequate.
-
- @param [out] modelChange
- A struct of (type(insert, delete, update), firstRow, lastRow, firstColumn, lastColumn).
- @retval S_OK
- @retval S_FALSE if there is nothing to return, [out] value is NULL
- */
- [propget] HRESULT modelChange
- (
- [out, retval] IA2TableModelChange *modelChange
- );
-
-}
diff --git a/src/3rdparty/iaccessible2/idl/AccessibleTable2.idl b/src/3rdparty/iaccessible2/idl/AccessibleTable2.idl
deleted file mode 100644
index 9d7f3e4475..0000000000
--- a/src/3rdparty/iaccessible2/idl/AccessibleTable2.idl
+++ /dev/null
@@ -1,375 +0,0 @@
-/*************************************************************************
- *
- * File Name (AccessibleTable2.idl)
- *
- * IAccessible2 IDL Specification
- *
- * Copyright (c) 2007, 2010 Linux Foundation
- * Copyright (c) 2006 IBM Corporation
- * Copyright (c) 2000, 2006 Sun Microsystems, Inc.
- * All rights reserved.
- *
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following
- * disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * 3. Neither the name of the Linux Foundation nor the names of its
- * contributors may be used to endorse or promote products
- * derived from this software without specific prior written
- * permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This BSD License conforms to the Open Source Initiative "Simplified
- * BSD License" as published at:
- * http://www.opensource.org/licenses/bsd-license.php
- *
- * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
- * mark may be used in accordance with the Linux Foundation Trademark
- * Policy to indicate compliance with the IAccessible2 specification.
- *
- ************************************************************************/
-
-import "objidl.idl";
-import "oaidl.idl";
-import "oleacc.idl";
-import "Accessible2.idl";
-import "IA2CommonTypes.idl";
-
-/** @brief This interface gives access to a two-dimensional table.
-
- Please also refer to the IAccessibleTableCell interface.
-
- If you want to support older applications you should also support the
- IAccessibleTable inteface.
-*/
-[object, uuid(6167f295-06f0-4cdd-a1fa-02e25153d869)]
-interface IAccessibleTable2 : IUnknown
-{
-
- /** @brief Returns the accessible object at the specified row and column in
- the table. This object could be an IAccessible or an IAccessible2.
- @param [in] row
- The 0 based row index for which to retrieve the cell.
- @param [in] column
- The 0 based column index for which to retrieve the cell.
- @param [out] cell
- If both row and column index are valid then the corresponding accessible
- object is returned that represents the requested cell regardless of whether
- the cell is currently visible (on the screen).
- @retval S_OK
- @retval E_INVALIDARG if bad [in] passed
- */
- [propget] HRESULT cellAt
- (
- [in] long row,
- [in] long column,
- [out, retval] IUnknown **cell
- );
-
- /** @brief Returns the caption for the table. The returned object could be
- an IAccessible or an IAccessible2.
- @param [out] accessible
- If the table has a caption then a reference to it is returned, else a NULL
- pointer is returned.
- @retval S_OK
- @retval S_FALSE if there is nothing to return, [out] value is NULL
- */
- [propget] HRESULT caption
- (
- [out, retval] IUnknown **accessible
- );
-
- /** @brief Returns the description text of the specified column in the table.
- @param [in] column
- The 0 based index of the column for which to retrieve the description.
- @param [out] description
- Returns the description text of the specified column in the table if such a
- description exists. Otherwise a NULL pointer is returned.
- @retval S_OK
- @retval S_FALSE if there is nothing to return, [out] value is NULL
- @retval E_INVALIDARG if bad [in] passed
- */
- [propget] HRESULT columnDescription
- (
- [in] long column,
- [out, retval] BSTR *description
- );
-
-
- /** @brief Returns the total number of columns in table
- @param [out] columnCount
- Number of columns in table (including columns outside the current viewport)
- @retval S_OK
- */
- [propget] HRESULT nColumns
- (
- [out, retval] long *columnCount
- );
-
- /** @brief Returns the total number of rows in table
- @param [out] rowCount
- Number of rows in table (including rows outside the current viewport)
- @retval S_OK
- */
- [propget] HRESULT nRows
- (
- [out, retval] long *rowCount
- );
-
- /** @brief Returns the total number of selected cells
- @param [out] cellCount
- Number of cells currently selected
- @retval S_OK
- */
- [propget] HRESULT nSelectedCells
- (
- [out, retval] long *cellCount
- );
-
- /** @brief Returns the total number of selected columns
- @param [out] columnCount
- Number of columns currently selected
- @retval S_OK
- */
- [propget] HRESULT nSelectedColumns
- (
- [out, retval] long *columnCount
- );
-
- /** @brief Returns the total number of selected rows
- @param [out] rowCount
- Number of rows currently selected
- @retval S_OK
- */
- [propget] HRESULT nSelectedRows
- (
- [out, retval] long *rowCount
- );
-
- /** @brief Returns the description text of the specified row in the table.
- @param [in] row
- The 0 based index of the row for which to retrieve the description.
- @param [out] description
- Returns the description text of the specified row in the table if such a
- description exists. Otherwise a NULL pointer is returned.
- @retval S_OK
- @retval S_FALSE if there is nothing to return, [out] value is NULL
- @retval E_INVALIDARG if bad [in] passed
- */
- [propget] HRESULT rowDescription
- (
- [in] long row,
- [out, retval] BSTR *description
- );
-
- /** @brief Returns a list of accessibles currently selected.
- @param [out] cells
- Pointer to an array of references to selected accessibles. The array is
- allocated by the server with CoTaskMemAlloc and freed by the client with
- CoTaskMemFree.
- @param [out] nSelectedCells
- The number of accessibles returned; the size of the returned array.
- @retval S_OK
- @retval S_FALSE if there are none, [out] values are NULL and 0 respectively
- */
- [propget] HRESULT selectedCells
- (
- [out, size_is(,*nSelectedCells,)] IUnknown ***cells,
- [out, retval] long *nSelectedCells
- );
-
- /** @brief Returns a list of column indexes currently selected (0 based).
- @param [out] selectedColumns
- A pointer to an array of column indexes of selected columns (each index is
- 0 based). The array is allocated by the server with CoTaskMemAlloc and
- freed by the client with CoTaskMemFree.
- @param [out] nColumns
- The number of column indexes returned; the size of the returned array.
- @retval S_OK
- @retval S_FALSE if there are none, [out] values are NULL and 0 respectively
- */
- [propget] HRESULT selectedColumns
- (
- [out, size_is(,*nColumns)] long **selectedColumns,
- [out, retval] long *nColumns
- );
-
- /** @brief Returns a list of row indexes currently selected (0 based).
- @param [out] selectedRows
- An array of row indexes of selected rows (each index is 0 based). The array
- is allocated by the server with CoTaskMemAlloc and freed by the client with
- CoTaskMemFree.
- @param [out] nRows
- The number of row indexes returned; the size of the returned array.
- @retval S_OK
- @retval S_FALSE if there are none, [out] values are NULL and 0 respectively
- */
- [propget] HRESULT selectedRows
- (
- [out, size_is(,*nRows)] long **selectedRows,
- [out, retval] long *nRows
- );
-
- /** @brief Returns the summary description of the table. The returned object could be
- an IAccessible or an IAccessible2.
- @param [out] accessible
- Returns a reference to an implementation dependent accessible object
- representing the table's summary or a NULL pointer if the table
- does not support a summary.
- @retval S_OK
- @retval S_FALSE if there is nothing to return, [out] value is NULL
- */
- [propget] HRESULT summary
- (
- [out, retval] IUnknown **accessible
- );
-
- /** @brief Returns a boolean value indicating whether the specified column is
- completely selected.
- @param [in] column
- 0 based index of the column for which to determine whether it is selected.
- @param [out] isSelected
- Returns TRUE if the specified column is selected completely and FALSE otherwise.
- @retval S_OK
- @retval E_INVALIDARG if bad [in] passed
- */
- [propget] HRESULT isColumnSelected
- (
- [in] long column,
- [out, retval] boolean *isSelected
- );
-
- /** @brief Returns a boolean value indicating whether the specified row is completely
- selected.
- @param [in] row
- 0 based index of the row for which to determine whether it is selected.
- @param [out] isSelected
- Returns TRUE if the specified row is selected completely and FALSE otherwise.
- @retval S_OK
- @retval E_INVALIDARG if bad [in] passed
- */
- [propget] HRESULT isRowSelected
- (
- [in] long row,
- [out, retval] boolean *isSelected
- );
-
- /** @brief Selects a row and unselects all previously selected rows.
-
- The behavior should mimic that of the application, but for those applications
- which do not have a means in the GUI to select a full row of cells the behavior
- should be as follows: First any selected rows in the table are unselected. Then
- the entire row of cells for the specified row is selected. If any of the
- cells in the selected row span additional rows, the cells in those rows
- are also selected.
- @param [in] row
- 0 based index of the row to be selected.
- @retval S_OK
- @retval E_INVALIDARG if bad [in] passed
- */
- HRESULT selectRow
- (
- [in] long row
- );
-
- /** @brief Selects a column and unselects all previously selected columns.
-
- The behavior should mimic that of the application, but for those applications
- which do not have a means in the GUI to select a full column of cells the behavior
- should be as follows: First any selected columns in the table are unselected. Then
- the entire column of cells for the specified column is selected. If any of the
- cells in the selected column span additional columns, the cells in those columns
- are also selected.
- @param [in] column
- 0 based index of the column to be selected.
- @retval S_OK
- @retval E_INVALIDARG if bad [in] passed
- */
- HRESULT selectColumn
- (
- [in] long column
- );
-
- /** @brief Unselects one row, leaving other selected rows selected (if any).
-
- The behavior should mimic that of the application, but for those applications
- which do not have a means in the GUI to unselect a full row of cells the
- behavior should be as follows: The entire row of cells for the specified
- row is unselected. If any of the cells in the selected row span additional
- rows, the cells in those rows are also unselected.
- @param [in] row
- 0 based index of the row to be unselected.
- @retval S_OK
- @retval E_INVALIDARG if bad [in] passed
- */
- HRESULT unselectRow
- (
- [in] long row
- );
-
- /** @brief Unselects one column, leaving other selected columns selected (if any).
-
- The behavior should mimic that of the application, but for those applications
- which do not have a means in the GUI to unselect a full column of cells the
- behavior should be as follows: The entire column of cells for the specified
- column is unselected. If any of the cells in the selected column span additional
- columns, the cells in those columns are also unselected.
- @param [in] column
- 0 based index of the column to be unselected.
- @retval S_OK
- @retval E_INVALIDARG if bad [in] passed
- */
- HRESULT unselectColumn
- (
- [in] long column
- );
-
- /** @brief Returns the type and extents describing how a table changed.
-
- Provided for use by the IA2_EVENT_TABLE_MODEL_CHANGED event handler.
-
- This data is only guaranteed to be valid while the thread notifying the event
- continues. Once the handler has returned, the validity of the data depends on
- how the server manages the life cycle of its objects. Also, note that the server
- may have different life cycle management strategies for controls depending on
- whether or not a control manages its children. Lists, trees, and tables can have
- a large number of children and thus it's possible that the child objects for those
- controls would only be created as needed. Servers should document their life cycle
- strategy as this will be of interest to assistive technology or script engines
- accessing data out of process or from other threads. Servers only need to save the
- most recent row and column values associated with the change and a scope of the
- entire application is adequate.
-
- @param [out] modelChange
- A struct of (type(insert, delete, update), firstRow, lastRow, firstColumn, lastColumn).
- @retval S_OK
- @retval S_FALSE if there is nothing to return, [out] value is NULL
- */
- [propget] HRESULT modelChange
- (
- [out, retval] IA2TableModelChange *modelChange
- );
-
-}
diff --git a/src/3rdparty/iaccessible2/idl/AccessibleTableCell.idl b/src/3rdparty/iaccessible2/idl/AccessibleTableCell.idl
deleted file mode 100644
index a4cd988384..0000000000
--- a/src/3rdparty/iaccessible2/idl/AccessibleTableCell.idl
+++ /dev/null
@@ -1,194 +0,0 @@
-/*************************************************************************
- *
- * File Name (AccessibleTableCell.idl)
- *
- * IAccessible2 IDL Specification
- *
- * Copyright (c) 2007, 2010 Linux Foundation
- * Copyright (c) 2006 IBM Corporation
- * Copyright (c) 2000, 2006 Sun Microsystems, Inc.
- * All rights reserved.
- *
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following
- * disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * 3. Neither the name of the Linux Foundation nor the names of its
- * contributors may be used to endorse or promote products
- * derived from this software without specific prior written
- * permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This BSD License conforms to the Open Source Initiative "Simplified
- * BSD License" as published at:
- * http://www.opensource.org/licenses/bsd-license.php
- *
- * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
- * mark may be used in accordance with the Linux Foundation Trademark
- * Policy to indicate compliance with the IAccessible2 specification.
- *
- ************************************************************************/
-
-import "objidl.idl";
-import "oaidl.idl";
-import "oleacc.idl";
-import "Accessible2.idl";
-
-/** @brief This interface gives access to the cells of a two-dimensional table.
-
- Please also refer to the IAccessibleTable2 interface.
-
-*/
-[object, uuid(594116B1-C99F-4847-AD06-0A7A86ECE645)]
-interface IAccessibleTableCell : IUnknown
-{
-
- /** @brief Returns the number of columns occupied by this cell accessible.
-
- The result is greater than 1 if the specified cell spans multiple columns.
- @param [out] nColumnsSpanned
- Returns the 1 based column extent of the specified cell.
- @retval S_OK
- */
- [propget] HRESULT columnExtent
- (
- [out, retval] long *nColumnsSpanned
- );
-
- /** @brief Returns the column headers as an array of cell accessibles.
-
- @param [out] cellAccessibles
- Pointer to an array of references to cell accessibles. The array is allocated
- by the server. Free it with CoTaskMemFree.
- @param [out] nColumnHeaderCells
- The number of accessibles returned; the size of the returned array.
- @retval S_OK
- @retval S_FALSE if there is no header, [out] values are NULL and 0 respectively
- */
- [propget] HRESULT columnHeaderCells
- (
- [out, size_is(,*nColumnHeaderCells,)] IUnknown ***cellAccessibles,
- [out, retval] long *nColumnHeaderCells
- );
-
- /** @brief Translates this cell accessible into the corresponding column index.
-
- @param [out] columnIndex
- Returns the 0 based column index of the cell of the specified cell or the index of
- the first column if the cell spans multiple columns.
- @retval S_OK
- */
- [propget] HRESULT columnIndex
- (
- [out, retval] long *columnIndex
- );
-
- /** @brief Returns the number of rows occupied by this cell accessible.
-
- @param [out] nRowsSpanned
- Returns the row extent of the specified cell.
- @retval S_OK
- */
- [propget] HRESULT rowExtent
- (
- [out, retval] long *nRowsSpanned
- );
-
- /** @brief Returns the row headers as an array of cell accessibles.
-
- @param [out] cellAccessibles
- Pointer to an array of references to cell accessibles. The array is allocated
- by the server. Free it with CoTaskMemFree.
- @param [out] nRowHeaderCells
- The number of accessibles returned; the size of the returned array.
- @retval S_OK
- @retval S_FALSE if there is no header, [out] values are NULL and 0 respectively
- */
- [propget] HRESULT rowHeaderCells
- (
- [out, size_is(,*nRowHeaderCells,)] IUnknown ***cellAccessibles,
- [out, retval] long *nRowHeaderCells
- );
-
- /** @brief Translates this cell accessible into the corresponding row index.
-
- @param [out] rowIndex
- Returns the 0 based row index of the specified cell or the index of
- the first row if the cell spans multiple rows.
- @retval S_OK
- */
- [propget] HRESULT rowIndex
- (
- [out, retval] long *rowIndex
- );
-
- /** @brief Returns a boolean value indicating whether this cell is selected.
-
- @param [out] isSelected
- Returns TRUE if the specified cell is selected and FALSE otherwise.
- @retval S_OK
- */
- [propget] HRESULT isSelected
- (
- [out, retval] boolean *isSelected
- );
-
- /** @brief Gets the row and column indexes and extents of this cell accessible
- and whether or not it is selected.
-
- This is a convenience function. It is not mandatory to implement it.
- @param [out] row
- 0 based row index.
- @param [out] column
- 0 based column index.
- @param [out] rowExtents
- Number of cells spanned by this cell in this row.
- @param [out] columnExtents
- Number of cells spanned by this cell in this column.
- @param [out] isSelected
- Indicates if the specified cell is selected.
- @retval S_OK
- */
- [propget] HRESULT rowColumnExtents
- (
- [out] long *row,
- [out] long *column,
- [out] long *rowExtents,
- [out] long *columnExtents,
- [out, retval] boolean *isSelected
- );
-
- /** @brief Returns a reference to the accessbile of the containing table.
-
- @param [out] table
- Returns a reference to the IUnknown of the containing table.
- @retval S_OK
- */
- [propget] HRESULT table
- (
- [out, retval] IUnknown **table
- );
-
-}
diff --git a/src/3rdparty/iaccessible2/idl/AccessibleText.idl b/src/3rdparty/iaccessible2/idl/AccessibleText.idl
deleted file mode 100644
index 86fd93ad90..0000000000
--- a/src/3rdparty/iaccessible2/idl/AccessibleText.idl
+++ /dev/null
@@ -1,674 +0,0 @@
-/*************************************************************************
- *
- * File Name (AccessibleText.idl)
- *
- * IAccessible2 IDL Specification
- *
- * Copyright (c) 2007, 2010 Linux Foundation
- * Copyright (c) 2006 IBM Corporation
- * Copyright (c) 2000, 2006 Sun Microsystems, Inc.
- * All rights reserved.
- *
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following
- * disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * 3. Neither the name of the Linux Foundation nor the names of its
- * contributors may be used to endorse or promote products
- * derived from this software without specific prior written
- * permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This BSD License conforms to the Open Source Initiative "Simplified
- * BSD License" as published at:
- * http://www.opensource.org/licenses/bsd-license.php
- *
- * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
- * mark may be used in accordance with the Linux Foundation Trademark
- * Policy to indicate compliance with the IAccessible2 specification.
- *
- ************************************************************************/
-
-import "objidl.idl";
-import "oaidl.idl";
-import "oleacc.idl";
-import "IA2CommonTypes.idl";
-
-/** A structure containing a substring and the start and end offsets in the enclosing string.
-
- IAccessibleText::newText and IAccessibleText::oldText return this struct.
-*/
-typedef struct IA2TextSegment {
- BSTR text; ///< A copy of a segment of text taken from an enclosing paragraph.
- long start; ///< Index of the first character of the segment in the enclosing text.
- long end; ///< Index of the character following the last character of the segment in the enclosing text.
-} IA2TextSegment;
-
-/** This enum defines values which specify a text boundary type.
-
- IA2_TEXT_BOUNDARY_SENTENCE is optional. When a method doesn't implement this
- method it must return S_FALSE. Typically this feature would not be implemented
- by an application. However, if the application developer was not satisfied with
- how screen readers have handled the reading of sentences this boundary type
- could be implemented and screen readers could use the application's version of a
- sentence rather than the screen reader's.
-
- The rest of the boundary types must be supported.
-
- This enum is used in IAccessibleText::textBeforeOffset, IAccessibleText::textAtOffset,
- and IAccessibleText::textAfterOffset.
-*/
-
-enum IA2TextBoundaryType {
- IA2_TEXT_BOUNDARY_CHAR, /**< Typically, a single character is returned. In some cases more than
- one character is returned, for example, when a document contains field
- data such as a field containing a date, time, or footnote reference.
- In this case the caret can move over several characters in one movement
- of the caret. Note that after the caret moves, the caret offset changes
- by the number of characters in the field, e.g. by 8 characters in the
- following date: 03/26/07. */
- IA2_TEXT_BOUNDARY_WORD, /**< The range provided matches the range observed when the application
- processes the Ctrl + left arrow and Ctrl + right arrow key sequences.
- Typically this is from the start of one word to the start of the next, but
- various applications are inconsistent in the handling of the end of a line. */
- IA2_TEXT_BOUNDARY_SENTENCE, ///< Range is from start of one sentence to the start of another sentence.
- IA2_TEXT_BOUNDARY_PARAGRAPH, ///< Range is from start of one paragraph to the start of another paragraph.
- IA2_TEXT_BOUNDARY_LINE, /**< Range is from start of one line to the start of another line. This
- often means that an end-of-line character will appear at the end of the
- range. However in the case of some applications an end-of-line character
- indicates the end of a paragraph and the lines composing the paragraph,
- other than the last line, do not contain an end of line character. */
- IA2_TEXT_BOUNDARY_ALL ///< Using this value will cause all text to be returned.
-};
-
-/** @brief This interface gives read-only access to text.
-
- The %IAccessibleText interface should be implemented by all components
- that present textual information on the display like buttons,
- text entry fields, or text portions of the document window. The interface
- provides access to the text's content, attributes, and spatial location.
- However, text can not be modified with this interface. That is the task
- of the IAccessibleEditableText interface.
-
- The text length, i.e. the number of characters in the text, is
- returned by IAccessibleText::nCharacters. All methods that operate
- on particular characters (e.g. IAccessibleText::textAtOffset) use character
- indices from 0 to length-1. All methods that operate on character positions
- (e.g. IAccessibleText::text) use indices from 0 to length.
-
- Please note that accessible text does not necessarily support selection.
- In this case it should behave as if there where no selection. An empty
- selection is used for example to express the current cursor position.
-
- Refer to @ref _specialOffsets
- "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
- for information about special offsets that can be used in %IAccessibleText methods.
-
- E_FAIL is returned in the following cases
- @li endOffset < startOffset
- @li endoffset > length
-*/
-[object, uuid(24FD2FFB-3AAD-4a08-8335-A3AD89C0FB4B)]
-interface IAccessibleText : IUnknown
-{
-
- /** @brief Adds a text selection
- @param [in] startOffset
- Starting offset ( 0 based).
- @param [in] endOffset
- Offset of first character after new selection (0 based).
- @retval S_OK
- @retval E_INVALIDARG if bad [in] passed
- @note Refer to @ref _specialOffsets
- "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
- for information about special offsets that can be used in %IAccessibleText methods.
- */
- HRESULT addSelection
- (
- [in] long startOffset,
- [in] long endOffset
- );
-
- /** @brief Returns text attributes.
- @param [in] offset
- Text offset (0 based). Refer to @ref _specialOffsets
- "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
- for information about special offsets that can be used in %IAccessibleText methods.
- @param [out] startOffset
- The starting offset of the character range over which all text attributes match
- those of offset. (0 based)
- @param [out] endOffset
- The offset of the first character past the character range over which all text
- attributes match those of offset. (0 based)
- @param [out] textAttributes
- A string of attributes describing the text. The attributes are described in the
- <a href="http://www.linuxfoundation.org/en/Accessibility/IAccessible2/TextAttributes">
- text attributes specification</a> on the %IAccessible2 web site.
- @retval S_OK
- @retval S_FALSE if there is nothing to return, [out] values are 0s and NULL respectively
- @retval E_INVALIDARG if bad [in] passed
- */
- [propget] HRESULT attributes
- (
- [in] long offset,
- [out] long *startOffset,
- [out] long *endOffset,
- [out, retval] BSTR *textAttributes
- );
-
- /** @brief Returns the position of the caret.
-
- Returns the 0-based offset of the caret within the text. If the text is
- implemented as a tree of text objects with embed characters in higher levels
- representing substrings of child text objects and the caret is in one of the
- child text objects, then the offset in the higher level text object would be
- at the embed character representing child text object that contains the caret.
-
- For example, if the string "one two three" is implemented as a two text objects,
- with a top level text object containing an embed character "one ? three" and a
- child text object containing "two" and if the caret is in the descendant object
- just before the 'o' in "two", then:
- <ul>
- <li>the caretOffset for the "one ? three" object would be 4, matching the embed character</li>
- <li>the caretOffset for "two" would be 2, matching the "o"</li>
- </ul>
- The caret position/offset is that of the character logically following it, e.g.
- to the right of it in a left to right language, or to the left of it in a right
- to left language.
- @param [out] offset
- The returned offset is relative to the text represented by this object.
- @retval S_OK
- @retval S_FALSE if the caret is not currently active on this object, i.e. the
- caret is located on some other object. The returned offset value will be -1.
- @note S_FALSE (and an offset of -1) will not be returned if the caret is somewhere
- in the text object or one of its descendants.
- */
- [propget] HRESULT caretOffset
- (
- [out, retval] long *offset
- );
-
-
- /** @brief Returns the bounding box of the specified position.
-
- The virtual character after the last character of the represented
- text, i.e. the one at position length is a special case. It represents the
- current input position and will therefore typically be queried by AT more
- often than other positions. Because it does not represent an existing character
- its bounding box is defined in relation to preceding characters. It should be
- roughly equivalent to the bounding box of some character when inserted at the
- end of the text. Its height typically being the maximal height of all the
- characters in the text or the height of the preceding character, its width being
- at least one pixel so that the bounding box is not degenerate.
-
- Note that the index 'length' is not always valid. Whether it is or not is
- implementation dependent. It typically is when text is editable or otherwise
- when on the screen the caret can be placed behind the text. You can be sure
- that the index is valid after you have received a ::IA2_EVENT_TEXT_CARET_MOVED
- event for this index.
- @param [in] offset
- Index of the character for which to return its bounding box. The valid range
- is 0..length. Refer to @ref _specialOffsets
- "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
- for information about special offsets that can be used in %IAccessibleText methods.
- @param [in] coordType
- Specifies if the coordinates are relative to the screen or to the parent window.
- @param [out] x
- X coordinate of the top left corner of the bounding box of the referenced character.
- @param [out] y
- Y coordinate of the top left corner of the bounding box of the referenced character.
- @param [out] width
- Width of the bounding box of the referenced character.
- @param [out] height
- Height of the bounding box of the referenced character.
- @retval S_OK
- @retval E_INVALIDARG if bad [in] passed
- */
- [propget] HRESULT characterExtents
- (
- [in] long offset,
- [in] enum IA2CoordinateType coordType,
- [out] long *x,
- [out] long *y,
- [out] long *width,
- [out, retval] long *height
- );
-
-
- /** @brief Returns the number of active non-contiguous selections
- @param [out] nSelections
- @retval S_OK
- */
- [propget] HRESULT nSelections
- (
- [out, retval] long *nSelections
- );
-
- /** @brief Returns the text position for the specified screen position.
-
- Given a point return the zero-based index of the character under that
- point. The same functionality could be achieved by using the bounding
- boxes for each character as returned by IAccessibleText::characterExtents.
- The method IAccessibleText::offsetAtPoint, however, can be implemented
- more efficiently.
-
- @param [in] x
- The position's x value for which to look up the index of the character that
- is rendered on to the display at that point.
- @param [in] y
- The position's y value for which to look up the index of the character that
- is rendered on to the display at that point.
- @param [in] coordType
- Screen coordinates or window coordinates.
- @param [out] offset
- Index of the character under the given point or -1 if the point
- is invalid or there is no character under the point.
- @retval S_OK
- @retval S_FALSE if nothing to return, [out] value is -1
-
- @retval E_INVALIDARG if bad [in] passed
- */
- [propget] HRESULT offsetAtPoint
- (
- [in] long x,
- [in] long y,
- [in] enum IA2CoordinateType coordType,
- [out, retval] long *offset
- );
-
- /** @brief Returns the character offsets of Nth active text selection
-
- Returns the 0-based starting and ending offsets of the Nth selection. If the
- text is implemented as a tree of text objects with embed characters in higher
- levels representing substrings of child text objects, consider the following.
- If the starting selection offset is in one of the child text objects, then the
- starting offset in the higher level text object would be at the embed character
- representing the child text object that contains the starting selection offset.
- If the ending selection offset is in one of the child text objects, then the
- ending offset in the higher level text object would be just after the embed
- character representing the child text object that contains the ending selection
- offset.
-
- For example, if the string "one two three" is implemented as a two text objects,
- with a top level text object containing an embed character "one ? three" and a
- child text object containing "two" and if the selection is the string "two" then:
- <ul>
- <li>the startOffset for the "one ? three" object would be 4, matching the embed character and the endOffset would be 5.</li>
- <li>the startOffset for the "two" object would be 0, and the endOffset would be 3</li>
- </ul>
- Selection offsets are that of the character logically following it, e.g.
- to the right of it in a left to right language or to the left of it in a right to left language.
- @param [in] selectionIndex
- Index of selection (0 based).
- @param [out] startOffset
- 0 based offset of first selected character
- @param [out] endOffset
- 0 based offset of one past the last selected character.
- @retval S_OK
- @retval E_INVALIDARG if bad [in] passed
- */
- [propget] HRESULT selection
- (
- [in] long selectionIndex,
- [out] long *startOffset,
- [out, retval] long *endOffset
- );
-
- /** @brief Returns the substring between the two given indices.
-
- The substring starts with the character at startOffset (inclusive) and up to
- the character at endOffset (exclusive), if startOffset is less or equal
- endOffset. If endOffset is lower than startOffset, the result is the same
- as a call with the two arguments being exchanged.
-
- The whole text can be requested by passing the indices zero and
- IAccessibleText::nCharacters. If both indices have the same value, an empty
- string is returned.
- @param [in] startOffset
- Index of the first character to include in the returned string. The valid range
- is 0..length.
- @param [in] endOffset
- Index of the last character to exclude in the returned string. The valid range
- is 0..length.
- @param [out] text
- Returns the substring starting with the character at startOffset (inclusive)
- and up to the character at endOffset (exclusive), if startOffset is less than
- or equal to endOffset.
- @retval S_OK
- @retval E_INVALIDARG if bad [in] passed
- @note
- @li The returned string may be longer than endOffset-startOffset bytes if text
- contains multi-byte characters.
- @li Refer to @ref _specialOffsets
- "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
- for information about special offsets that can be used in %IAccessibleText methods.
- */
- [propget] HRESULT text
- (
- [in] long startOffset,
- [in] long endOffset,
- [out, retval] BSTR *text
- );
-
- /** @brief Returns a text portion before the given position.
-
- Returns the substring of the specified text type that is located before the
- given character and does not include it. The result of this method should be
- same as a result for IAccessibleText::textAtOffset with a suitably decreased
- index value.
-
- For example, if text type is ::IA2_TEXT_BOUNDARY_WORD, then the complete
- word that is closest to and located before offset is returned.
-
- If the index is valid, but no suitable word (or other boundary type) is found, a
- NULL pointer is returned.
-
- @param [in] offset
- Index of the character for which to return the text part before it. The index
- character will not be part of the returned string. The valid range is 0..length.
- Refer to @ref _specialOffsets
- "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
- for information about special offsets that can be used in %IAccessibleText methods.
- @param [in] boundaryType
- The type of the text portion to return. See ::IA2TextBoundaryType for the
- complete list.
- @param [out] startOffset
- 0 based offset of first character.
- @param [out] endOffset
- 0 based offset of one past the last character.
- @param [out] text
- Returns the requested text portion. This portion may be empty or invalid when
- no appropriate text portion is found or text type is invalid.
- @retval S_OK
- @retval S_FALSE if the requested boundary type is not implemented, such as
- ::IA2_TEXT_BOUNDARY_SENTENCE, or if there is nothing to return;
- [out] values are 0s and NULL respectively
- @retval E_INVALIDARG if bad [in] passed
- */
- [propget] HRESULT textBeforeOffset
- (
- [in] long offset,
- [in] enum IA2TextBoundaryType boundaryType,
- [out] long *startOffset,
- [out] long *endOffset,
- [out, retval] BSTR *text
- );
-
- /** @brief Returns a text portion after the given position.
-
- Returns the substring of the specified text type that is located after the
- given character and does not include it. The result of this method should be
- same as a result for IAccessibleText::textAtOffset with a suitably increased
- index value.
-
- For example, if text type is ::IA2_TEXT_BOUNDARY_WORD, then the complete
- word that is closest to and located after offset is returned.
-
- If the index is valid, but no suitable word (or other text type) is found, a
- NULL pointer is returned.
-
- @param [in] offset
- Index of the character for which to return the text part after it. The index
- character will not be part of the returned string. The valid range is 0..length.
- Refer to @ref _specialOffsets
- "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
- for information about special offsets that can be used in %IAccessibleText methods.
- @param [in] boundaryType
- The type of the text portion to return. See ::IA2TextBoundaryType for the complete
- list.
- @param [out] startOffset
- 0 based offset of first character.
- @param [out] endOffset
- 0 based offset of one past the last character.
- @param [out] text
- Returns the requested text portion. This portion may be empty or invalid when
- no appropriate text portion is found or text type is invalid.
- @retval S_OK
- @retval S_FALSE if the requested boundary type is not implemented, such as
- ::IA2_TEXT_BOUNDARY_SENTENCE, or if there is nothing to return;
- [out] values are 0s and NULL respectively
- @retval E_INVALIDARG if bad [in] passed
- */
- [propget] HRESULT textAfterOffset
- (
- [in] long offset,
- [in] enum IA2TextBoundaryType boundaryType,
- [out] long *startOffset,
- [out] long *endOffset,
- [out, retval] BSTR *text
- );
-
- /** @brief Returns a text portion that spans the given position.
-
- Returns the substring of the specified text type at the specified offset.
-
- If the index is valid, but no suitable word (or other text type) is found, a
- NULL pointer is returned.
-
- @param [in] offset
- Index of the character for which to return the text part before it. The index
- character will not be part of the returned string. The valid range is 0..length.
- Refer to @ref _specialOffsets
- "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
- for information about special offsets that can be used in %IAccessibleText methods.
- @param [in] boundaryType
- The type of the text portion to return. See ::IA2TextBoundaryType for the complete
- list.
- @param [out] startOffset
- 0 based offset of first character.
- @param [out] endOffset
- 0 based offset of one past the last character.
- @param [out] text
- Returns the requested text portion. This portion may be empty or invalid when
- no appropriate text portion is found or text type is invalid.
- @retval S_OK
- @retval S_FALSE if the requested boundary type is not implemented, such as
- ::IA2_TEXT_BOUNDARY_SENTENCE, or if there is nothing to return;
- [out] values are 0s and NULL respectively
- @retval E_INVALIDARG if bad [in] passed
- */
- [propget] HRESULT textAtOffset
- (
- [in] long offset,
- [in] enum IA2TextBoundaryType boundaryType,
- [out] long *startOffset,
- [out] long *endOffset,
- [out, retval] BSTR *text
- );
-
- /** @brief Unselects a range of text.
- @param [in] selectionIndex
- Index of selection to remove (0 based).
- @retval S_OK
- @retval E_INVALIDARG if bad [in] passed
- */
- HRESULT removeSelection
- (
- [in] long selectionIndex
- );
-
- /** @brief Sets the position of the caret.
-
- The caret position/offset is that of the character logically following it,
- e.g. to the right of it in a left to right language.
-
- Setting the caret position may or may not alter the current selection. A
- change of the selection is notified to the accessibility event listeners with
- an ::IA2_EVENT_TEXT_SELECTION_CHANGED event.
-
- When the new caret position differs from the old one (which, of course, is the
- standard case) this is notified to the accessibility event listeners with an
- ::IA2_EVENT_TEXT_CARET_MOVED event.
- @param [in] offset
- The new index of the caret. This caret is actually placed to the left side of
- the character with that index. An index of 0 places the caret so that the next
- insertion goes before the first character. An index of IAccessibleText::nCharacters
- leads to insertion after the last character. Refer to @ref _specialOffsets
- "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
- for information about special offsets that can be used in %IAccessibleText methods.
- @retval S_OK
- @retval E_FAIL if the caret cannot be set
- @retval E_INVALIDARG if bad [in] passed
- */
- HRESULT setCaretOffset
- (
- [in] long offset
- );
-
- /** @brief Changes the bounds of an existing selection.
- @param [in] selectionIndex
- Index of selection to change (0 based)
- @param [in] startOffset
- New starting offset (0 based)
- @param [in] endOffset
- New ending offset (0 based) - the offset of the character just past the last character of the selection.
- @retval S_OK
- @retval E_INVALIDARG if bad [in] passed
- @note Refer to @ref _specialOffsets
- "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
- for information about special offsets that can be used in %IAccessibleText methods.
- */
- HRESULT setSelection
- (
- [in] long selectionIndex,
- [in] long startOffset,
- [in] long endOffset
- );
-
- /** @brief Returns total number of characters.
-
- Note that this may be different than the total number of bytes required to store the
- text, if the text contains multi-byte characters.
- @param [out] nCharacters
- @retval S_OK
- */
- [propget] HRESULT nCharacters
- (
- [out, retval] long *nCharacters
- );
-
- /** @brief Makes a specific part of string visible on screen.
- @param [in] startIndex
- 0 based character offset.
- @param [in] endIndex
- 0 based character offset - the offset of the character just past the last character of the string.
- @param [in] scrollType
- Defines where the object should be placed on the screen.
- @retval S_OK
- @retval E_INVALIDARG if bad [in] passed
- @note Refer to @ref _specialOffsets
- "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
- for information about special offsets that can be used in %IAccessibleText methods.
- */
- HRESULT scrollSubstringTo
- (
- [in] long startIndex,
- [in] long endIndex,
- [in] enum IA2ScrollType scrollType
- );
-
- /** @brief Moves the top left of a substring to a specified location.
-
- @param [in] startIndex
- 0 based character offset.
- @param [in] endIndex
- 0 based character offset - the offset of the character just past the last character of the string.
- @param [in] coordinateType
- Specifies whether the coordinates are relative to the screen or the parent object.
- @param [in] x
- Defines the x coordinate.
- @param [in] y
- Defines the y coordinate.
- @retval S_OK
- @retval S_FALSE if the object is already at the specified location.
- @retval E_INVALIDARG if bad [in] passed
- @note Refer to @ref _specialOffsets
- "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
- for information about special offsets that can be used in %IAccessibleText methods.
- */
- HRESULT scrollSubstringToPoint
- (
- [in] long startIndex,
- [in] long endIndex,
- [in] enum IA2CoordinateType coordinateType,
- [in] long x,
- [in] long y
- );
-
- /** @brief Returns any inserted text.
-
- Provided for use by the ::IA2_EVENT_TEXT_INSERTED and ::IA2_EVENT_TEXT_UPDATED
- event handlers.
-
- This data is only guaranteed to be valid while the thread notifying the event
- continues. Once the handler has returned, the validity of the data depends on
- how the server manages the life cycle of its objects. Also, note that the server
- may have different life cycle management strategies for controls depending on
- whether or not a control manages its children. Lists, trees, and tables can have
- a large number of children and thus it's possible that the child objects for those
- controls would only be created as needed. Servers should document their life cycle
- strategy as this will be of interest to assistive technology or script engines
- accessing data out of process or from other threads. Servers only need to save the
- last inserted block of text and a scope of the entire application is adequate.
-
- @param [out] newText
- The text that was just inserted.
- @retval S_OK
- @retval S_FALSE If there is nothing to return, the values of IA2TextSegment
- struct are set as follows: text = NULL, start = 0, end = 0.
-
- */
- [propget] HRESULT newText
- (
- [out, retval] IA2TextSegment *newText
- );
-
- /** @brief Returns any removed text.
-
- Provided for use by the IA2_EVENT_TEXT_REMOVED/UPDATED event handlers.
-
- This data is only guaranteed to be valid while the thread notifying the event
- continues. Once the handler has returned, the validity of the data depends on
- how the server manages the life cycle of its objects. Also, note that the server
- may have different life cycle management strategies for controls depending on
- whether or not a control manages its children. Lists, trees, and tables can have
- a large number of children and thus it's possible that the child objects for those
- controls would only be created as needed. Servers should document their life cycle
- strategy as this will be of interest to assistive technology or script engines
- accessing data out of process or from other threads. Servers only need to save the
- last removed block of text and a scope of the entire application is adequate.
-
- @param [out] oldText
- The text that was just removed.
- @retval S_OK
- @retval S_FALSE If there is nothing to return, the values of IA2TextSegment
- struct are set as follows: text = NULL, start = 0, end = 0.
- */
- [propget] HRESULT oldText
- (
- [out, retval] IA2TextSegment *oldText
- );
-
-}
diff --git a/src/3rdparty/iaccessible2/idl/AccessibleValue.idl b/src/3rdparty/iaccessible2/idl/AccessibleValue.idl
deleted file mode 100644
index cd013d76f8..0000000000
--- a/src/3rdparty/iaccessible2/idl/AccessibleValue.idl
+++ /dev/null
@@ -1,136 +0,0 @@
-/*************************************************************************
- *
- * File Name (AccessibleValue.idl)
- *
- * IAccessible2 IDL Specification
- *
- * Copyright (c) 2007, 2010 Linux Foundation
- * Copyright (c) 2006 IBM Corporation
- * Copyright (c) 2000, 2006 Sun Microsystems, Inc.
- * All rights reserved.
- *
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following
- * disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * 3. Neither the name of the Linux Foundation nor the names of its
- * contributors may be used to endorse or promote products
- * derived from this software without specific prior written
- * permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This BSD License conforms to the Open Source Initiative "Simplified
- * BSD License" as published at:
- * http://www.opensource.org/licenses/bsd-license.php
- *
- * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
- * mark may be used in accordance with the Linux Foundation Trademark
- * Policy to indicate compliance with the IAccessible2 specification.
- *
- ************************************************************************/
-
-import "objidl.idl";
-import "oaidl.idl";
-import "oleacc.idl";
-
-/** @brief This interface gives access to a single numerical value.
-
- The %IAccessibleValue interface represents a single numerical value and should
- be implemented by any class that supports numerical value like progress bars
- and spin boxes. This interface lets you access the value and its upper and
- lower bounds.
-*/
-[object, uuid(35855B5B-C566-4fd0-A7B1-E65465600394)]
-interface IAccessibleValue : IUnknown
-{
-
- /** @brief Returns the value of this object as a number.
-
- The exact return type is implementation dependent. Typical types are long and
- double.
- @param [out] currentValue
- Returns the current value represented by this object. See the section about
- @ref _variants "VARIANTs" for additional information.
- @retval S_OK
- @retval S_FALSE if there is nothing to return, [out] value is a VARIANT with vt = VT_EMPTY
- */
- [propget] HRESULT currentValue
- (
- [out, retval] VARIANT *currentValue
- );
-
- /** @brief Sets the value of this object to the given number.
-
- The argument is clipped to the valid interval whose upper and lower
- bounds are returned by the methods IAccessibleValue::maximumValue and
- IAccessibleValue::minimumValue, i.e. if it is lower than the minimum
- value the new value will be the minimum and if it is greater than the
- maximum then the new value will be the maximum.
-
- @param [in] value
- The new value represented by this object. The set of admissible types for
- this argument is implementation dependent.
- @retval S_OK
- */
- HRESULT setCurrentValue
- (
- [in] VARIANT value
- );
-
- /** @brief Returns the maximal value that can be represented by this object.
-
- The type of the returned value is implementation dependent. It does not have
- to be the same type as that returned by method IAccessibleValue::currentValue.
-
- @param [out] maximumValue
- Returns the maximal value in an implementation dependent type. If this object
- has no upper bound then an empty object is returned. See the section about
- @ref _variants "VARIANTs" for additional information.
- @retval S_OK
- @retval S_FALSE if there is nothing to return, [out] value is a VARIANT with vt = VT_EMPTY
- */
- [propget] HRESULT maximumValue
- (
- [out, retval] VARIANT *maximumValue
- );
-
- /** @brief Returns the minimal value that can be represented by this object.
-
- The type of the returned value is implementation dependent. It does not have
- to be the same type as that returned by method IAccessibleValue::currentValue.
-
- @param [out] minimumValue
- Returns the minimal value in an implementation dependent type. If this object
- has no lower bound then an empty object is returned. See the section about
- @ref _variants "VARIANTs" for additional information.
- @retval S_OK
- @retval S_FALSE if there is nothing to return, [out] value is a VARIANT with vt = VT_EMPTY
- */
- [propget] HRESULT minimumValue
- (
- [out, retval] VARIANT *minimumValue
- );
-
-};
diff --git a/src/3rdparty/iaccessible2/idl/IA2CommonTypes.idl b/src/3rdparty/iaccessible2/idl/IA2CommonTypes.idl
deleted file mode 100644
index d3da110873..0000000000
--- a/src/3rdparty/iaccessible2/idl/IA2CommonTypes.idl
+++ /dev/null
@@ -1,191 +0,0 @@
-/*************************************************************************
- *
- * File Name (IA2CommonTypes.idl)
- *
- * IAccessible2 IDL Specification
- *
- * Copyright (c) 2007, 2010 Linux Foundation
- * Copyright (c) 2006 IBM Corporation
- * Copyright (c) 2000, 2006 Sun Microsystems, Inc.
- * All rights reserved.
- *
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following
- * disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * 3. Neither the name of the Linux Foundation nor the names of its
- * contributors may be used to endorse or promote products
- * derived from this software without specific prior written
- * permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This BSD License conforms to the Open Source Initiative "Simplified
- * BSD License" as published at:
- * http://www.opensource.org/licenses/bsd-license.php
- *
- * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
- * mark may be used in accordance with the Linux Foundation Trademark
- * Policy to indicate compliance with the IAccessible2 specification.
- *
- ************************************************************************/
-
- /** These constants control the scrolling of an object or substring into a window.
-
- This enum is used in IAccessible2::scrollTo and IAccessibleText::scrollSubstringTo.
-*/
-enum IA2ScrollType {
-
- /** Scroll the top left corner of the object or substring such that the top left
- corner (and as much as possible of the rest of the object or substring) is within
- the top level window. In cases where the entire object or substring fits within
- the top level window, the placement of the object or substring is dependent on
- the application. For example, the object or substring may be scrolled to the
- closest edge, the furthest edge, or midway between those two edges. In cases
- where there is a hierarchy of nested scrollable controls, more than one control
- may have to be scrolled.
- */
- IA2_SCROLL_TYPE_TOP_LEFT,
-
- /** Scroll the bottom right corner of the object or substring such that the bottom right
- corner (and as much as possible of the rest of the object or substring) is within
- the top level window. In cases where the entire object or substring fits within
- the top level window, the placement of the object or substring is dependent on
- the application. For example, the object or substring may be scrolled to the
- closest edge, the furthest edge, or midway between those two edges. In cases
- where there is a hierarchy of nested scrollable controls, more than one control
- may have to be scrolled.
- */
- IA2_SCROLL_TYPE_BOTTOM_RIGHT,
-
- /** Scroll the top edge of the object or substring such that the top edge
- (and as much as possible of the rest of the object or substring) is within the
- top level window. In cases where the entire object or substring fits within
- the top level window, the placement of the object or substring is dependent on
- the application. For example, the object or substring may be scrolled to the
- closest edge, the furthest edge, or midway between those two edges. In cases
- where there is a hierarchy of nested scrollable controls, more than one control
- may have to be scrolled.
- */
- IA2_SCROLL_TYPE_TOP_EDGE,
-
- /** Scroll the bottom edge of the object or substring such that the bottom edge
- (and as much as possible of the rest of the object or substring) is within the
- top level window. In cases where the entire object or substring fits within
- the top level window, the placement of the object or substring is dependent on
- the application. For example, the object or substring may be scrolled to the
- closest edge, the furthest edge, or midway between those two edges. In cases
- where there is a hierarchy of nested scrollable controls, more than one control
- may have to be scrolled.
- */
- IA2_SCROLL_TYPE_BOTTOM_EDGE,
-
- /** Scroll the left edge of the object or substring such that the left edge
- (and as much as possible of the rest of the object or substring) is within the
- top level window. In cases where the entire object or substring fits within
- the top level window, the placement of the object or substring is dependent on
- the application. For example, the object or substring may be scrolled to the
- closest edge, the furthest edge, or midway between those two edges. In cases
- where there is a hierarchy of nested scrollable controls, more than one control
- may have to be scrolled.
- */
- IA2_SCROLL_TYPE_LEFT_EDGE,
-
- /** Scroll the right edge of the object or substring such that the right edge
- (and as much as possible of the rest of the object or substring) is within the
- top level window. In cases where the entire object or substring fits within
- the top level window, the placement of the object or substring is dependent on
- the application. For example, the object or substring may be scrolled to the
- closest edge, the furthest edge, or midway between those two edges. In cases
- where there is a hierarchy of nested scrollable controls, more than one control
- may have to be scrolled.
- */
- IA2_SCROLL_TYPE_RIGHT_EDGE,
-
- /** Scroll the object or substring such that as much as possible of the
- object or substring is within the top level window. The placement of
- the object is dependent on the application. For example, the object or
- substring may be scrolled to to closest edge, the furthest edge, or midway
- between those two edges.
- */
- IA2_SCROLL_TYPE_ANYWHERE
-};
-
-/** These constants define which coordinate system a point is located in.
-
- This enum is used in IAccessible2::scrollToPoint, IAccessibleImage::imagePosition,
- IAccessibleText::characterExtents, and IAccessibleText::offsetAtPoint, and
- IAccessibleText::scrollSubstringToPoint.
-*/
-enum IA2CoordinateType {
-
- /// The coordinates are relative to the screen.
- IA2_COORDTYPE_SCREEN_RELATIVE,
-
- /** The coordinates are relative to the upper left corner of the bounding box
- of the immediate parent.
- */
- IA2_COORDTYPE_PARENT_RELATIVE
-
-};
-
-/** Special offsets for use in IAccessibleText and IAccessibleEditableText methods
-
- Refer to @ref _specialOffsets
- "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
- for more information.
-*/
-enum IA2TextSpecialOffsets {
- IA2_TEXT_OFFSET_LENGTH = -1, /**< This offset is equivalent to the length of the string. It eliminates
- the need to call IAccessibleText::nCharacters. */
- IA2_TEXT_OFFSET_CARET = -2 /**< This offset signifies that the text related to the physical location
- of the caret should be used. */
-};
-
-/** These constants specify the kind of change made to a table.
-
- This enum is used in the IA2TableModelChange struct which in turn is used by
- IAccessibleTable::modelChange and IAccessibleTable2::modelChange.
-*/
-enum IA2TableModelChangeType {
- IA2_TABLE_MODEL_CHANGE_INSERT, // = 0;
- IA2_TABLE_MODEL_CHANGE_DELETE,
- IA2_TABLE_MODEL_CHANGE_UPDATE
-};
-
-/** A structure defining the type of and extents of changes made to a table
-
- IAccessibleTable::modelChange and IAccessibleTable2::modelChange return this struct.
- In the case of an insertion or change the row and column offsets define the boundaries
- of the inserted or changed subtable after the operation. In the case of a deletion
- the row and column offsets define the boundaries of the subtable being removed before
- the removal.
-*/
-typedef struct IA2TableModelChange {
- enum IA2TableModelChangeType type; // insert, delete, update
- long firstRow; ///< 0 based, inclusive
- long lastRow; ///< 0 based, inclusive
- long firstColumn; ///< 0 based, inclusive
- long lastColumn; ///< 0 based, inclusive
-} IA2TableModelChange;
diff --git a/src/3rdparty/iaccessible2/idl/IA2TypeLibrary.idl b/src/3rdparty/iaccessible2/idl/IA2TypeLibrary.idl
deleted file mode 100644
index 7753825751..0000000000
--- a/src/3rdparty/iaccessible2/idl/IA2TypeLibrary.idl
+++ /dev/null
@@ -1,94 +0,0 @@
-/*************************************************************************
- *
- * File Name (IA2TypeLibrary.idl)
- *
- * IAccessible2 IDL Specification
- *
- * Copyright (c) 2007, 2010 Linux Foundation
- * Copyright (c) 2006 IBM Corporation
- * Copyright (c) 2000, 2006 Sun Microsystems, Inc.
- * All rights reserved.
- *
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following
- * disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * 3. Neither the name of the Linux Foundation nor the names of its
- * contributors may be used to endorse or promote products
- * derived from this software without specific prior written
- * permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * This BSD License conforms to the Open Source Initiative "Simplified
- * BSD License" as published at:
- * http://www.opensource.org/licenses/bsd-license.php
- *
- * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
- * mark may be used in accordance with the Linux Foundation Trademark
- * Policy to indicate compliance with the IAccessible2 specification.
- *
- ************************************************************************/
-
-// This is not a standalone file. It is to be appended to the end of the
-// merged IDL file.
-
-cpp_quote("")
-cpp_quote("// Type Library Definitions")
-cpp_quote("")
-
-[
- uuid(c974e070-3787-490a-87b0-e333b06ca1e2),
- helpstring("IAccessible2 Type Library"),
- version(1.2),
- hidden
-]
-
-library IAccessible2Lib
-{
- importlib ("stdole2.tlb");
- importlib ("oleacc.dll");
- interface IAccessible2;
- interface IAccessibleAction;
- interface IAccessibleApplication;
- interface IAccessibleComponent;
- interface IAccessibleEditableText;
- interface IAccessibleHyperlink;
- interface IAccessibleHypertext;
- interface IAccessibleImage;
- interface IAccessibleRelation;
- interface IAccessibleTable;
- interface IAccessibleTable2;
- interface IAccessibleTableCell;
- interface IAccessibleText;
- interface IAccessibleValue;
- enum IA2CoordinateType;
- enum IA2EventID;
- enum IA2Role;
- enum IA2ScrollType;
- enum IA2States;
- enum IA2TableModelChangeType;
- enum IA2TextBoundaryType;
- enum IA2TextSpecialOffsets;
-}
diff --git a/src/3rdparty/iaccessible2/idl/Makefile b/src/3rdparty/iaccessible2/idl/Makefile
index eb56d9fb60..e186b5ab54 100644
--- a/src/3rdparty/iaccessible2/idl/Makefile
+++ b/src/3rdparty/iaccessible2/idl/Makefile
@@ -11,48 +11,11 @@ MIDL_OPTS = /out ..\generated\x86 /env win32
x86:
-del ..\generated\x86\dlldata.c
-md ..\generated\x86
- $(MIDL) $(MIDL_OPTS) Accessible2.idl
- $(MIDL) $(MIDL_OPTS) AccessibleAction.idl
- $(MIDL) $(MIDL_OPTS) AccessibleApplication.idl
- $(MIDL) $(MIDL_OPTS) AccessibleComponent.idl
- $(MIDL) $(MIDL_OPTS) AccessibleEditableText.idl
- $(MIDL) $(MIDL_OPTS) AccessibleEventID.idl
- $(MIDL) $(MIDL_OPTS) AccessibleHyperlink.idl
- $(MIDL) $(MIDL_OPTS) AccessibleHypertext.idl
- $(MIDL) $(MIDL_OPTS) AccessibleImage.idl
- $(MIDL) $(MIDL_OPTS) AccessibleRelation.idl
- $(MIDL) $(MIDL_OPTS) AccessibleRole.idl
- $(MIDL) $(MIDL_OPTS) AccessibleStates.idl
- $(MIDL) $(MIDL_OPTS) AccessibleTable.idl
- $(MIDL) $(MIDL_OPTS) AccessibleTable2.idl
- $(MIDL) $(MIDL_OPTS) AccessibleTableCell.idl
- $(MIDL) $(MIDL_OPTS) AccessibleText.idl
- $(MIDL) $(MIDL_OPTS) AccessibleValue.idl
- $(MIDL) $(MIDL_OPTS) IA2CommonTypes.idl
- $(MIDL) $(MIDL_OPTS) IA2TypeLibrary.idl
+ $(MIDL) $(MIDL_OPTS) ia2_api_all.idl
MIDL_OPTS = /out ..\generated\amd64 /env amd64
amd64:
-del ..\generated\amd64\dlldata.c
-md ..\generated\amd64
- $(MIDL) $(MIDL_OPTS) Accessible2.idl
- $(MIDL) $(MIDL_OPTS) AccessibleAction.idl
- $(MIDL) $(MIDL_OPTS) AccessibleApplication.idl
- $(MIDL) $(MIDL_OPTS) AccessibleComponent.idl
- $(MIDL) $(MIDL_OPTS) AccessibleEditableText.idl
- $(MIDL) $(MIDL_OPTS) AccessibleEventID.idl
- $(MIDL) $(MIDL_OPTS) AccessibleHyperlink.idl
- $(MIDL) $(MIDL_OPTS) AccessibleHypertext.idl
- $(MIDL) $(MIDL_OPTS) AccessibleImage.idl
- $(MIDL) $(MIDL_OPTS) AccessibleRelation.idl
- $(MIDL) $(MIDL_OPTS) AccessibleRole.idl
- $(MIDL) $(MIDL_OPTS) AccessibleStates.idl
- $(MIDL) $(MIDL_OPTS) AccessibleTable.idl
- $(MIDL) $(MIDL_OPTS) AccessibleTable2.idl
- $(MIDL) $(MIDL_OPTS) AccessibleTableCell.idl
- $(MIDL) $(MIDL_OPTS) AccessibleText.idl
- $(MIDL) $(MIDL_OPTS) AccessibleValue.idl
- $(MIDL) $(MIDL_OPTS) IA2CommonTypes.idl
- $(MIDL) $(MIDL_OPTS) IA2TypeLibrary.idl
-
+ $(MIDL) $(MIDL_OPTS) ia2_api_all.idl
diff --git a/src/3rdparty/iaccessible2/idl/README b/src/3rdparty/iaccessible2/idl/README
index 0a299f16b4..7751447fd4 100644
--- a/src/3rdparty/iaccessible2/idl/README
+++ b/src/3rdparty/iaccessible2/idl/README
@@ -4,3 +4,6 @@ in this directory to generate the files from the idl files.
The generated files will be put in
..\generated\x86 and ..\generated\amd64
+In order for it to work on msvc-2010 you need to use MIDL shipped with
+that version
+(Microsoft (R) 32b/64b MIDL Compiler Version 7.00.0555).
diff --git a/src/3rdparty/iaccessible2/idl/ia2_api_all.idl b/src/3rdparty/iaccessible2/idl/ia2_api_all.idl
new file mode 100644
index 0000000000..729ed2627d
--- /dev/null
+++ b/src/3rdparty/iaccessible2/idl/ia2_api_all.idl
@@ -0,0 +1,5473 @@
+/*************************************************************************
+ *
+ * File Name (api_all_headers.idl)
+ *
+ * IAccessible2 IDL Specification
+ *
+ * Copyright (c) 2013 Linux Foundation
+ * All rights reserved.
+ *
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * 3. Neither the name of the Linux Foundation nor the names of its
+ * contributors may be used to endorse or promote products
+ * derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * This BSD License conforms to the Open Source Initiative "Simplified
+ * BSD License" as published at:
+ * http://www.opensource.org/licenses/bsd-license.php
+ *
+ * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
+ * mark may be used in accordance with the Linux Foundation Trademark
+ * Policy to indicate compliance with the IAccessible2 specification.
+ *
+ ************************************************************************/
+
+import "objidl.idl";
+import "oaidl.idl";
+import "oleacc.idl";
+
+/*************************************************************************
+ *
+ * File Name (IA2CommonTypes.idl)
+ *
+ * IAccessible2 IDL Specification
+ *
+ * Copyright (c) 2007, 2013 Linux Foundation
+ * Copyright (c) 2006 IBM Corporation
+ * Copyright (c) 2000, 2006 Sun Microsystems, Inc.
+ * All rights reserved.
+ *
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * 3. Neither the name of the Linux Foundation nor the names of its
+ * contributors may be used to endorse or promote products
+ * derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * This BSD License conforms to the Open Source Initiative "Simplified
+ * BSD License" as published at:
+ * http://www.opensource.org/licenses/bsd-license.php
+ *
+ * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
+ * mark may be used in accordance with the Linux Foundation Trademark
+ * Policy to indicate compliance with the IAccessible2 specification.
+ *
+ ************************************************************************/
+
+ /** These constants control the scrolling of an object or substring into a window.
+
+ This enum is used in IAccessible2::scrollTo and IAccessibleText::scrollSubstringTo.
+*/
+enum IA2ScrollType {
+
+ /** Scroll the top left corner of the object or substring such that the top left
+ corner (and as much as possible of the rest of the object or substring) is within
+ the top level window. In cases where the entire object or substring fits within
+ the top level window, the placement of the object or substring is dependent on
+ the application. For example, the object or substring may be scrolled to the
+ closest edge, the furthest edge, or midway between those two edges. In cases
+ where there is a hierarchy of nested scrollable controls, more than one control
+ may have to be scrolled.
+ */
+ IA2_SCROLL_TYPE_TOP_LEFT,
+
+ /** Scroll the bottom right corner of the object or substring such that the bottom right
+ corner (and as much as possible of the rest of the object or substring) is within
+ the top level window. In cases where the entire object or substring fits within
+ the top level window, the placement of the object or substring is dependent on
+ the application. For example, the object or substring may be scrolled to the
+ closest edge, the furthest edge, or midway between those two edges. In cases
+ where there is a hierarchy of nested scrollable controls, more than one control
+ may have to be scrolled.
+ */
+ IA2_SCROLL_TYPE_BOTTOM_RIGHT,
+
+ /** Scroll the top edge of the object or substring such that the top edge
+ (and as much as possible of the rest of the object or substring) is within the
+ top level window. In cases where the entire object or substring fits within
+ the top level window, the placement of the object or substring is dependent on
+ the application. For example, the object or substring may be scrolled to the
+ closest edge, the furthest edge, or midway between those two edges. In cases
+ where there is a hierarchy of nested scrollable controls, more than one control
+ may have to be scrolled.
+ */
+ IA2_SCROLL_TYPE_TOP_EDGE,
+
+ /** Scroll the bottom edge of the object or substring such that the bottom edge
+ (and as much as possible of the rest of the object or substring) is within the
+ top level window. In cases where the entire object or substring fits within
+ the top level window, the placement of the object or substring is dependent on
+ the application. For example, the object or substring may be scrolled to the
+ closest edge, the furthest edge, or midway between those two edges. In cases
+ where there is a hierarchy of nested scrollable controls, more than one control
+ may have to be scrolled.
+ */
+ IA2_SCROLL_TYPE_BOTTOM_EDGE,
+
+ /** Scroll the left edge of the object or substring such that the left edge
+ (and as much as possible of the rest of the object or substring) is within the
+ top level window. In cases where the entire object or substring fits within
+ the top level window, the placement of the object or substring is dependent on
+ the application. For example, the object or substring may be scrolled to the
+ closest edge, the furthest edge, or midway between those two edges. In cases
+ where there is a hierarchy of nested scrollable controls, more than one control
+ may have to be scrolled.
+ */
+ IA2_SCROLL_TYPE_LEFT_EDGE,
+
+ /** Scroll the right edge of the object or substring such that the right edge
+ (and as much as possible of the rest of the object or substring) is within the
+ top level window. In cases where the entire object or substring fits within
+ the top level window, the placement of the object or substring is dependent on
+ the application. For example, the object or substring may be scrolled to the
+ closest edge, the furthest edge, or midway between those two edges. In cases
+ where there is a hierarchy of nested scrollable controls, more than one control
+ may have to be scrolled.
+ */
+ IA2_SCROLL_TYPE_RIGHT_EDGE,
+
+ /** Scroll the object or substring such that as much as possible of the
+ object or substring is within the top level window. The placement of
+ the object is dependent on the application. For example, the object or
+ substring may be scrolled to to closest edge, the furthest edge, or midway
+ between those two edges.
+ */
+ IA2_SCROLL_TYPE_ANYWHERE
+};
+
+/** These constants define which coordinate system a point is located in.
+
+ This enum is used in IAccessible2::scrollToPoint, IAccessibleImage::imagePosition,
+ IAccessibleText::characterExtents, and IAccessibleText::offsetAtPoint, and
+ IAccessibleText::scrollSubstringToPoint.
+*/
+enum IA2CoordinateType {
+
+ /// The coordinates are relative to the screen.
+ IA2_COORDTYPE_SCREEN_RELATIVE,
+
+ /** The coordinates are relative to the upper left corner of the bounding box
+ of the immediate parent.
+ */
+ IA2_COORDTYPE_PARENT_RELATIVE
+
+};
+
+/** Special offsets for use in IAccessibleText and IAccessibleEditableText methods
+
+ Refer to @ref _specialOffsets
+ "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
+ for more information.
+*/
+enum IA2TextSpecialOffsets {
+ IA2_TEXT_OFFSET_LENGTH = -1, /**< This offset is equivalent to the length of the string. It eliminates
+ the need to call IAccessibleText::nCharacters. */
+ IA2_TEXT_OFFSET_CARET = -2 /**< This offset signifies that the text related to the physical location
+ of the caret should be used. */
+};
+
+/** These constants specify the kind of change made to a table.
+
+ This enum is used in the IA2TableModelChange struct which in turn is used by
+ IAccessibleTable::modelChange and IAccessibleTable2::modelChange.
+*/
+enum IA2TableModelChangeType {
+ IA2_TABLE_MODEL_CHANGE_INSERT, // = 0;
+ IA2_TABLE_MODEL_CHANGE_DELETE,
+ IA2_TABLE_MODEL_CHANGE_UPDATE
+};
+
+/** A structure defining the type of and extents of changes made to a table
+
+ IAccessibleTable::modelChange and IAccessibleTable2::modelChange return this struct.
+ In the case of an insertion or change the row and column offsets define the boundaries
+ of the inserted or changed subtable after the operation. In the case of a deletion
+ the row and column offsets define the boundaries of the subtable being removed before
+ the removal.
+*/
+typedef struct IA2TableModelChange {
+ enum IA2TableModelChangeType type; // insert, delete, update
+ long firstRow; ///< 0 based, inclusive
+ long lastRow; ///< 0 based, inclusive
+ long firstColumn; ///< 0 based, inclusive
+ long lastColumn; ///< 0 based, inclusive
+} IA2TableModelChange;
+/*************************************************************************
+ *
+ * File Name (AccessibleRelation.idl)
+ *
+ * IAccessible2 IDL Specification
+ *
+ * Copyright (c) 2007, 2013 Linux Foundation
+ * Copyright (c) 2006 IBM Corporation
+ * Copyright (c) 2000, 2006 Sun Microsystems, Inc.
+ * All rights reserved.
+ *
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * 3. Neither the name of the Linux Foundation nor the names of its
+ * contributors may be used to endorse or promote products
+ * derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * This BSD License conforms to the Open Source Initiative "Simplified
+ * BSD License" as published at:
+ * http://www.opensource.org/licenses/bsd-license.php
+ *
+ * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
+ * mark may be used in accordance with the Linux Foundation Trademark
+ * Policy to indicate compliance with the IAccessible2 specification.
+ *
+ ************************************************************************/
+
+
+
+
+
+/** @defgroup grpRelations Relations
+ Use the following constants to compare against the BSTRs returned by
+ IAccessibleRelation::relationType.
+*/
+///@{
+
+/** The target object is the containing application object. */
+const WCHAR *const IA2_RELATION_CONTAINING_APPLICATION = L"containingApplication";
+
+/** The target object is the containing document object. The target object implements
+ the IAccessibleDocument interface.
+*/
+const WCHAR *const IA2_RELATION_CONTAINING_DOCUMENT = L"containingDocument";
+
+/** The target object is the containing tab pane object. */
+const WCHAR *const IA2_RELATION_CONTAINING_TAB_PANE = L"containingTabPane";
+
+/** The target object is the containing window object. */
+const WCHAR *const IA2_RELATION_CONTAINING_WINDOW = L"containingWindow";
+
+/** Some attribute of this object is affected by a target object. */
+const WCHAR *const IA2_RELATION_CONTROLLED_BY = L"controlledBy";
+
+/** This object is interactive and controls some attribute of a target object. */
+const WCHAR *const IA2_RELATION_CONTROLLER_FOR = L"controllerFor";
+
+/** This object is described by the target object. */
+const WCHAR *const IA2_RELATION_DESCRIBED_BY = L"describedBy";
+
+/** This object is describes the target object. */
+const WCHAR *const IA2_RELATION_DESCRIPTION_FOR = L"descriptionFor";
+
+/** This object is embedded by a target object. */
+const WCHAR *const IA2_RELATION_EMBEDDED_BY = L"embeddedBy";
+
+/** This object embeds a target object. This relation can be used on the
+ OBJID_CLIENT accessible for a top level window to show where the content
+ areas are.
+*/
+const WCHAR *const IA2_RELATION_EMBEDS = L"embeds";
+
+/** Content flows to this object from a target object.
+ This relation and IA2_RELATION_FLOWS_TO are useful to tie text and non-text
+ objects together in order to allow assistive technology to follow the
+ intended reading order.
+*/
+const WCHAR *const IA2_RELATION_FLOWS_FROM = L"flowsFrom";
+
+/** Content flows from this object to a target object. */
+const WCHAR *const IA2_RELATION_FLOWS_TO = L"flowsTo";
+
+/** This object is label for a target object. */
+const WCHAR *const IA2_RELATION_LABEL_FOR = L"labelFor";
+
+/** This object is labelled by a target object. Note that the double L spelling
+ which follows is preferred. Please use it instead. This single L version may
+ be removed in a later version.
+*/
+const WCHAR *const IA2_RELATION_LABELED_BY = L"labelledBy";
+
+/** This object is labelled by a target object. */
+const WCHAR *const IA2_RELATION_LABELLED_BY = L"labelledBy";
+
+/** This object is a member of a group of one or more objects. When
+ there is more than one object in the group each member may have one and the
+ same target, e.g. a grouping object. It is also possible that each member has
+ multiple additional targets, e.g. one for every other member in the group.
+*/
+const WCHAR *const IA2_RELATION_MEMBER_OF = L"memberOf";
+
+/** The target object is the next object in the tab order. */
+const WCHAR *const IA2_RELATION_NEXT_TABBABLE = L"nextTabbable";
+
+/** This object is a logical child of a target object. This relation is the reciprocal
+ of the IA2_RELATION_NODE_PARENT_OF relation. In some cases an application's accessible
+ tree is such that objects can be in a logical parent-child relationship which is
+ different from the hierarchy of the accessible tree. */
+const WCHAR *const IA2_RELATION_NODE_CHILD_OF = L"nodeChildOf";
+
+/** This object is a logical parent of a target object. This relation is the reciprocal
+ of the IA2_RELATION_NODE_CHILD_OF relation. In some cases an application's accessible
+ tree is such that objects can be in a logical parent-child relationship which is
+ different from the hierarchy of the accessible tree. */
+const WCHAR *const IA2_RELATION_NODE_PARENT_OF = L"nodeParentOf";
+
+/** This object is a parent window of the target object. */
+const WCHAR *const IA2_RELATION_PARENT_WINDOW_OF = L"parentWindowOf";
+
+/** This object is a transient component related to the target object.
+ When this object is activated the target object doesn't lose focus.
+*/
+const WCHAR *const IA2_RELATION_POPUP_FOR = L"popupFor";
+
+/** The target object is the previous object in the tab order. */
+const WCHAR *const IA2_RELATION_PREVIOUS_TABBABLE = L"previousTabbable";
+
+/** This object is a sub window of a target object. */
+const WCHAR *const IA2_RELATION_SUBWINDOW_OF = L"subwindowOf";
+
+///@}
+
+/** This interface gives access to an object's set of relations.
+*/
+[object, uuid(7CDF86EE-C3DA-496a-BDA4-281B336E1FDC)]
+interface IAccessibleRelation : IUnknown
+{
+ /** @brief Returns the type of the relation.
+ @param [out] relationType
+ The strings returned are defined @ref grpRelations "in this section of the documentation".
+ @retval S_OK
+ */
+ [propget] HRESULT relationType
+ (
+ [out, retval] BSTR *relationType
+ );
+
+ /** @brief Returns a localized version of the relation type.
+ @param [out] localizedRelationType
+ @retval S_OK
+ */
+ [propget] HRESULT localizedRelationType
+ (
+ [out, retval] BSTR *localizedRelationType
+ );
+
+ /** @brief Returns the number of targets for this relation.
+ @param [out] nTargets
+ @retval S_OK
+ */
+ [propget] HRESULT nTargets
+ (
+ [out, retval] long *nTargets
+ );
+
+ /** @brief Returns one accessible relation target.
+ @param [in] targetIndex
+ 0 based index
+ @param [out] target
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed
+ @note Use QueryInterface to get IAccessible2.
+ */
+ [propget] HRESULT target
+ (
+ [in] long targetIndex,
+ [out, retval] IUnknown **target
+ );
+
+ /** @brief Returns multiple accessible relation targets
+ @param [in] maxTargets
+ maximum size of the array allocated by the client
+ @param [out] targets
+ The array of target objects. Note that this array is to be allocated by the
+ client and freed when no longer needed. Refer to @ref _arrayConsideration
+ "Special Consideration when using Arrays" for more details. You will need to use
+ QueryInterface on the IUnknown to get the IAccessible2.
+ @param [out] nTargets
+ actual number of targets in the returned array (not more than maxTargets)
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed, e.g. a negative value
+ */
+ [propget] HRESULT targets
+ (
+ [in] long maxTargets,
+ [out, size_is(maxTargets), length_is(*nTargets)]
+ IUnknown **targets,
+ [out, retval] long *nTargets
+ );
+
+}
+/*************************************************************************
+ *
+ * File Name (AccessibleAction.idl)
+ *
+ * IAccessible2 IDL Specification
+ *
+ * Copyright (c) 2007, 2013 Linux Foundation
+ * Copyright (c) 2006 IBM Corporation
+ * Copyright (c) 2000, 2006 Sun Microsystems, Inc.
+ * All rights reserved.
+ *
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * 3. Neither the name of the Linux Foundation nor the names of its
+ * contributors may be used to endorse or promote products
+ * derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * This BSD License conforms to the Open Source Initiative "Simplified
+ * BSD License" as published at:
+ * http://www.opensource.org/licenses/bsd-license.php
+ *
+ * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
+ * mark may be used in accordance with the Linux Foundation Trademark
+ * Policy to indicate compliance with the IAccessible2 specification.
+ *
+ ************************************************************************/
+
+
+
+
+
+/** This enum defines values which are predefined actions for use when implementing
+ support for media.
+
+ This enum is used when specifying an action for IAccessibleAction::doAction.
+*/
+
+enum IA2Actions {
+ IA2_ACTION_OPEN = -1, /**< Used to inform the server that the client will
+ signal via IA2_ACTION_COMPLETE when it has consumed
+ the content provided by the object. This action
+ allows the object's server to wait for all clients
+ to signal their readiness for additional content.
+ Any form of content generation that requires
+ synchronization with an AT would require use of this
+ action. One example is the generation of text describing
+ visual content not obvious from a video's sound track.
+ In this scenario the Text to Speech or Braille output
+ may take more time than the related length of silence
+ in the video's sound track. */
+ IA2_ACTION_COMPLETE = -2, /**< Used by the client to inform the server that it has
+ consumed the most recent content provided by this object. */
+ IA2_ACTION_CLOSE = -3 /**< Used to inform the server that the client no longer
+ requires synchronization. */
+};
+
+/** @brief This interface gives access to actions that can be executed
+ for accessible objects.
+
+ Every accessible object that can be manipulated via the native GUI beyond the
+ methods available either in the MSAA IAccessible interface or in the set of
+ IAccessible2 interfaces (other than this IAccessibleAction interface) should
+ support the IAccessibleAction interface in order to provide Assistive Technology
+ access to all the actions that can be performed by the object. Each action can
+ be performed or queried for a name, description or associated key bindings.
+ Actions are needed more for ATs that assist the mobility impaired, such as
+ on-screen keyboards and voice command software. By providing actions directly,
+ the AT can present them to the user without the user having to perform the extra
+ steps to navigate a context menu.
+
+ The first action should be equivalent to the MSAA default action. If there is
+ only one action, %IAccessibleAction should also be implemented.
+*/
+[object, uuid(B70D9F59-3B5A-4dba-AB9E-22012F607DF5)]
+interface IAccessibleAction : IUnknown
+{
+
+ /** @brief Returns the number of accessible actions available in this object.
+
+ If there are more than one, the first one is considered the
+ "default" action of the object.
+ @param [out] nActions
+ The returned value of the number of actions is zero if there are
+ no actions.
+ @retval S_OK
+ @note This method is missing a [propget] prefix in the IDL. The result is the
+ method is named nActions in generated C++ code instead of get_nActions.
+ */
+ HRESULT nActions
+ (
+ [out,retval] long* nActions
+ );
+
+ /** @brief Performs the specified Action on the object.
+ @param [in] actionIndex
+ 0 based index specifying the action to perform. If it lies outside
+ the valid range no action is performed.
+ @retval S_OK
+ @retval S_FALSE if action could not be performed
+ @retval E_INVALIDARG if bad [in] passed
+ @note If implementing support for media, refer to the predefined constants in the ::IA2Actions enum.
+ */
+ HRESULT doAction
+ (
+ [in] long actionIndex
+ );
+
+ /** @brief Returns a description of the specified action of the object.
+ @param [in] actionIndex
+ 0 based index specifying which action's description to return.
+ If it lies outside the valid range an empty string is returned.
+ @param [out] description
+ The returned value is a localized string of the specified action.
+ @retval S_OK
+ @retval S_FALSE if there is nothing to return, [out] value is NULL
+ @retval E_INVALIDARG if bad [in] passed
+ */
+ [propget] HRESULT description
+ (
+ [in] long actionIndex,
+ [out, retval] BSTR *description
+ );
+
+ /** @brief Returns an array of BSTRs describing one or more key bindings, if
+ there are any, associated with the specified action.
+
+ The returned strings are the localized human readable key sequences to be
+ used to activate each action, e.g. "Ctrl+Shift+D". Since these key
+ sequences are to be used when the object has focus, they are like
+ mnemonics (access keys), and not like shortcut (accelerator) keys.
+
+ There is no need to implement this method for single action controls since
+ that would be redundant with the standard MSAA programming practice of
+ getting the mnemonic from get_accKeyboardShortcut.
+
+ An AT such as an On Screen Keyboard might not expose these bindings but
+ provide alternative means of activation.
+
+ Note: the client allocates and passes in an array of pointers. The server
+ allocates the BSTRs and passes back one or more pointers to these BSTRs into
+ the array of pointers allocated by the client. The client is responsible
+ for deallocating the BSTRs.
+
+ @param [in] actionIndex
+ 0 based index specifying which action's key bindings should be returned.
+ @param [in] nMaxBindings
+ This parameter is ignored. Refer to @ref _arrayConsideration
+ "Special Consideration when using Arrays" for more details.
+ @param [out] keyBindings
+ An array of BSTRs, allocated by the server, one for each key binding.
+ The client must free it with CoTaskMemFree.
+ @param [out] nBindings
+ The number of key bindings returned; the size of the returned array.
+ @retval S_OK
+ @retval S_FALSE if there are no key bindings, [out] values are NULL and 0 respectively
+ @retval E_INVALIDARG if bad [in] passed
+ */
+ [propget] HRESULT keyBinding
+ (
+ [in] long actionIndex,
+ [in] long nMaxBindings,
+ [out, size_is(,nMaxBindings), length_is(,*nBindings)] BSTR **keyBindings,
+ [out, retval] long *nBindings
+ );
+
+ /** @brief Returns the non-localized name of specified action.
+ @param [in] actionIndex
+ 0 based index specifying which action's non-localized name should be returned.
+ @param [out] name
+ @retval S_OK
+ @retval S_FALSE if there is nothing to return, [out] value is NULL
+ @retval E_INVALIDARG if bad [in] passed
+ */
+ [propget] HRESULT name
+ (
+ [in] long actionIndex,
+ [out, retval] BSTR *name
+ );
+
+ /** @brief Returns the localized name of specified action.
+ @param [in] actionIndex
+ 0 based index specifying which action's localized name should be returned.
+ @param [out] localizedName
+ @retval S_OK
+ @retval S_FALSE if there is nothing to return, [out] value is NULL
+ @retval E_INVALIDARG if bad [in] passed
+ */
+ [propget] HRESULT localizedName
+ (
+ [in] long actionIndex,
+ [out, retval] BSTR *localizedName
+ );
+
+}
+/*************************************************************************
+ *
+ * File Name (AccessibleRole.idl)
+ *
+ * IAccessible2 IDL Specification
+ *
+ * Copyright (c) 2007, 2013 Linux Foundation
+ * Copyright (c) 2006 IBM Corporation
+ * Copyright (c) 2000, 2006 Sun Microsystems, Inc.
+ * All rights reserved.
+ *
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * 3. Neither the name of the Linux Foundation nor the names of its
+ * contributors may be used to endorse or promote products
+ * derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * This BSD License conforms to the Open Source Initiative "Simplified
+ * BSD License" as published at:
+ * http://www.opensource.org/licenses/bsd-license.php
+ *
+ * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
+ * mark may be used in accordance with the Linux Foundation Trademark
+ * Policy to indicate compliance with the IAccessible2 specification.
+ *
+ ************************************************************************/
+
+
+
+/** Collection of roles
+
+ This enumerator defines an extended set of accessible roles of objects implementing
+ the %IAccessible2 interface. These roles are in addition to the MSAA roles obtained
+ through the MSAA get_accRole method. Examples are 'footnote', 'heading', and
+ 'label'. You obtain an object's %IAccessible2 roles by calling IAccessible2::role.
+*/
+enum IA2Role {
+
+ /** Unknown role. The object contains some Accessible information, but its
+ role is not known.
+ */
+ IA2_ROLE_UNKNOWN = 0,
+
+ /** An object that can be drawn into and to manage events from the objects
+ drawn into it. Also refer to ::IA2_ROLE_FRAME,
+ ::IA2_ROLE_GLASS_PANE, and ::IA2_ROLE_LAYERED_PANE.
+ */
+ IA2_ROLE_CANVAS = 0x401,
+
+ /// A caption describing another object.
+ IA2_ROLE_CAPTION,
+
+ /// Used for check buttons that are menu items.
+ IA2_ROLE_CHECK_MENU_ITEM,
+
+ /// A specialized dialog that lets the user choose a color.
+ IA2_ROLE_COLOR_CHOOSER,
+
+ /// A date editor.
+ IA2_ROLE_DATE_EDITOR,
+
+ /** An iconified internal frame in an ::IA2_ROLE_DESKTOP_PANE.
+ Also refer to ::IA2_ROLE_INTERNAL_FRAME.
+ */
+ IA2_ROLE_DESKTOP_ICON,
+
+ /** A desktop pane. A pane that supports internal frames and iconified
+ versions of those internal frames. Also refer to ::IA2_ROLE_INTERNAL_FRAME.
+ */
+ IA2_ROLE_DESKTOP_PANE,
+
+ /** A directory pane. A pane that allows the user to navigate through
+ and select the contents of a directory. May be used by a file chooser.
+ Also refer to ::IA2_ROLE_FILE_CHOOSER.
+ */
+ IA2_ROLE_DIRECTORY_PANE,
+
+ /** An editable text object in a toolbar. <b>Deprecated.</b>
+ The edit bar role was meant for a text area in a tool bar. However, to detect
+ a text area in a tool bar the AT can query the parent.
+ */
+ IA2_ROLE_EDITBAR,
+
+ /// Embedded (OLE) object.
+ IA2_ROLE_EMBEDDED_OBJECT,
+
+ /// Text that is used as an endnote (footnote at the end of a chapter or section).
+ IA2_ROLE_ENDNOTE,
+
+ /** A file chooser. A specialized dialog that displays the files in the
+ directory and lets the user select a file, browse a different directory,
+ or specify a filename. May use the directory pane to show the contents of
+ a directory.
+ Also refer to ::IA2_ROLE_DIRECTORY_PANE.
+ */
+ IA2_ROLE_FILE_CHOOSER,
+
+ /** A font chooser. A font chooser is a component that lets the user pick
+ various attributes for fonts.
+ */
+ IA2_ROLE_FONT_CHOOSER,
+
+ /** Footer of a document page.
+ Also refer to ::IA2_ROLE_HEADER.
+ */
+ IA2_ROLE_FOOTER,
+
+ /// Text that is used as a footnote. Also refer to ::IA2_ROLE_ENDNOTE.
+ IA2_ROLE_FOOTNOTE,
+
+ /** A container of form controls. An example of the use of this role is to
+ represent an HTML FORM tag.
+ */
+ IA2_ROLE_FORM,
+
+ /** Frame role. A top level window with a title bar, border, menu bar, etc.
+ It is often used as the primary window for an application. Also refer to
+ ::IA2_ROLE_CANVAS and the MSAA roles of dialog and window.
+ */
+ IA2_ROLE_FRAME,
+
+ /** A glass pane. A pane that is guaranteed to be painted on top of all panes
+ beneath it. Also refer to ::IA2_ROLE_CANVAS, ::IA2_ROLE_INTERNAL_FRAME, and
+ ::IA2_ROLE_ROOT_PANE.
+ */
+ IA2_ROLE_GLASS_PANE,
+
+ /** Header of a document page.
+ Also refer to ::IA2_ROLE_FOOTER.
+ */
+ IA2_ROLE_HEADER,
+
+ /// Heading. Use the IAccessible2::attributes level attribute to determine the heading level.
+ IA2_ROLE_HEADING,
+
+ /// A small fixed size picture, typically used to decorate components.
+ IA2_ROLE_ICON,
+
+ /** An image map object. Usually a graphic with multiple hotspots, where
+ each hotspot can be activated resulting in the loading of another document
+ or section of a document.
+ */
+ IA2_ROLE_IMAGE_MAP,
+
+ /** An object which is used to allow input of characters not found on a keyboard,
+ such as the input of Chinese characters on a Western keyboard.
+ */
+ IA2_ROLE_INPUT_METHOD_WINDOW,
+
+ /** An internal frame. A frame-like object that is clipped by a desktop pane.
+ The desktop pane, internal frame, and desktop icon objects are often used to
+ create multiple document interfaces within an application.
+ Also refer to ::IA2_ROLE_DESKTOP_ICON, ::IA2_ROLE_DESKTOP_PANE, and ::IA2_ROLE_FRAME.
+ */
+ IA2_ROLE_INTERNAL_FRAME,
+
+ /// An object used to present an icon or short string in an interface.
+ IA2_ROLE_LABEL,
+
+ /** A layered pane. A specialized pane that allows its children to be drawn
+ in layers, providing a form of stacking order. This is usually the pane that
+ holds the menu bar as well as the pane that contains most of the visual
+ components in a window.
+ Also refer to ::IA2_ROLE_CANVAS, ::IA2_ROLE_GLASS_PANE, and ::IA2_ROLE_ROOT_PANE.
+ */
+ IA2_ROLE_LAYERED_PANE,
+
+ /** A section whose content is parenthetic or ancillary to the main content
+ of the resource.
+ */
+ IA2_ROLE_NOTE,
+
+ /** A specialized pane whose primary use is inside a dialog.
+ Also refer to MSAA's dialog role.
+ */
+ IA2_ROLE_OPTION_PANE,
+
+ /** An object representing a page of document content. It is used in documents
+ which are accessed by the user on a page by page basis.
+ */
+ IA2_ROLE_PAGE,
+
+ /// A paragraph of text.
+ IA2_ROLE_PARAGRAPH,
+
+ /** A radio button that is a menu item.
+ Also refer to MSAA's button and menu item roles.
+ */
+ IA2_ROLE_RADIO_MENU_ITEM,
+
+ /** An object which is redundant with another object in the accessible hierarchy.
+ ATs typically ignore objects with this role.
+ */
+ IA2_ROLE_REDUNDANT_OBJECT,
+
+ /** A root pane. A specialized pane that has a glass pane and a layered pane
+ as its children.
+ Also refer to ::IA2_ROLE_GLASS_PANE and ::IA2_ROLE_LAYERED_PANE
+ */
+ IA2_ROLE_ROOT_PANE,
+
+ /** A ruler such as those used in word processors.
+ */
+ IA2_ROLE_RULER,
+
+ /** A scroll pane. An object that allows a user to incrementally view a large
+ amount of information. Its children can include scroll bars and a viewport.
+ Also refer to ::IA2_ROLE_VIEW_PORT and MSAA's scroll bar role.
+ */
+ IA2_ROLE_SCROLL_PANE,
+
+ /** A container of document content. An example of the use of this role is to
+ represent an HTML DIV tag. A section may be used as a region. A region is a
+ group of elements that together form a perceivable unit. A region does not
+ necessarily follow the logical structure of the content, but follows the
+ perceivable structure of the page. A region may have an attribute in the set
+ of IAccessible2::attributes which indicates that it is "live". A live region
+ is content that is likely to change in response to a timed change, a user
+ event, or some other programmed logic or event.
+ */
+ IA2_ROLE_SECTION,
+
+ /// Object with graphical representation used to represent content on draw pages.
+ IA2_ROLE_SHAPE,
+
+ /** A split pane. A specialized panel that presents two other panels at the
+ same time. Between the two panels is a divider the user can manipulate to make
+ one panel larger and the other panel smaller.
+ */
+ IA2_ROLE_SPLIT_PANE,
+
+ /** An object that forms part of a menu system but which can be "undocked"
+ from or "torn off" the menu system to exist as a separate window.
+ */
+ IA2_ROLE_TEAR_OFF_MENU,
+
+ /// An object used as a terminal emulator.
+ IA2_ROLE_TERMINAL,
+
+ /// Collection of objects that constitute a logical text entity.
+ IA2_ROLE_TEXT_FRAME,
+
+ /** A toggle button. A specialized push button that can be checked or unchecked,
+ but does not provide a separate indicator for the current state.
+ Also refer to MSAA's roles of push button, check box, and radio button.
+ <BR><B>Note:</B> IA2_ROLE_TOGGLE_BUTTON should not be used. Instead, use MSAA's
+ ROLE_SYSTEM_PUSHBUTTON and STATE_SYSTEM_PRESSED.
+ */
+ IA2_ROLE_TOGGLE_BUTTON,
+
+ /** A viewport. An object usually used in a scroll pane. It represents the
+ portion of the entire data that the user can see. As the user manipulates
+ the scroll bars, the contents of the viewport can change.
+ Also refer to ::IA2_ROLE_SCROLL_PANE.
+ */
+ IA2_ROLE_VIEW_PORT,
+
+ /** An object containing content which is complementary to the main content of
+ a document, but remains meaningful when separated from the main content. There
+ are various types of content that would appropriately have this role. For example,
+ in the case where content is delivered via a web portal to a web browser, this may
+ include but not be limited to show times, current weather, related articles, or
+ stocks to watch. The complementary role indicates that contained content is relevant
+ to the main content. If the complementary content is completely separable main
+ content, it may be appropriate to use a more general role.
+ */
+ IA2_ROLE_COMPLEMENTARY_CONTENT
+
+};
+/*************************************************************************
+ *
+ * File Name (AccessibleStates.idl)
+ *
+ * IAccessible2 IDL Specification
+ *
+ * Copyright (c) 2007, 2010 Linux Foundation
+ * Copyright (c) 2006 IBM Corporation
+ * Copyright (c) 2000, 2006 Sun Microsystems, Inc.
+ * All rights reserved.
+ *
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * 3. Neither the name of the Linux Foundation nor the names of its
+ * contributors may be used to endorse or promote products
+ * derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * This BSD License conforms to the Open Source Initiative "Simplified
+ * BSD License" as published at:
+ * http://www.opensource.org/licenses/bsd-license.php
+ *
+ * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
+ * mark may be used in accordance with the Linux Foundation Trademark
+ * Policy to indicate compliance with the IAccessible2 specification.
+ *
+ ************************************************************************/
+
+
+
+typedef long AccessibleStates;
+
+/** %IAccessible2 specific state bit constants
+
+ This enum defines the state bits returned by IAccessible2::states. The
+ %IAccessible2 state bits are in addition to those returned by MSAA.
+*/
+enum IA2States {
+
+/** Indicates a window is currently the active window, or is an active subelement
+ within a container or table.
+
+ This state can be used to indicate the current active item in a container, even
+ if the container itself is not currently active. In other words this would indicate
+ the item that will get focus if you tab to the container.
+
+ This information is important for knowing what to report for trees and potentially
+ other containers in a virtual buffer.
+
+ Also, see ::IA2_STATE_MANAGES_DESCENDANTS for more information.
+*/
+IA2_STATE_ACTIVE = 0x1,
+
+/** Indicates that the object is armed.
+
+ Used to indicate that the control is "pressed" and will be invoked when the
+ actuator, e.g. a mouse button, is "released". An AT which either monitors the
+ mouse or synthesizes mouse events might need to know that, and possibly a talking
+ interface would even let the user know about it. It could also potentially be
+ useful to on screen keyboards or test tools since the information does indicate
+ something about the state of the interface, for example, code operating asynchronously
+ might need to wait for the armed state to change before doing something else.
+
+*/
+IA2_STATE_ARMED = 0x2,
+
+/** Indicates the user interface object corresponding to this object no longer exists. */
+IA2_STATE_DEFUNCT = 0x4,
+
+/** An object with this state has a caret and implements the IAccessibleText interface.
+
+ Such fields may be read-only, so STATE_SYSTEM_READONLY is valid in combination
+ with IA2_STATE_EDITABLE.
+
+*/
+IA2_STATE_EDITABLE = 0x8,
+
+/** Indicates the orientation of this object is horizontal. */
+IA2_STATE_HORIZONTAL = 0x10,
+
+/** Indicates this object is minimized and is represented only by an icon. */
+IA2_STATE_ICONIFIED = 0x20,
+
+/** Indicates an input validation failure. */
+IA2_STATE_INVALID_ENTRY = 0x40,
+
+/** Indicates that this object manages its children.
+
+ Note: Due to the fact that MSAA's WinEvents don't allow the active child index
+ to be passed on the IA2_EVENT_ACTIVE_DESCENDANT_CHANGED event, the manages
+ descendants scheme can't be used. Instead the active child object has to fire
+ MSAA's EVENT_OBJECT_FOCUS. In a future release a new event mechanism may be
+ added to provide for event specific data to be passed with the event. At that
+ time the IA2_EVENT_ACTIVE_DECENDENT_CHANGED event and
+ IA2_STATE_MANAGES_DESCENDANTS state would be useful.
+*/
+IA2_STATE_MANAGES_DESCENDANTS = 0x80,
+
+/** Indicates that an object is modal.
+
+ Modal objects have the behavior that something must be done with the object
+ before the user can interact with an object in a different window.
+*/
+IA2_STATE_MODAL = 0x100,
+
+/** Indicates this text object can contain multiple lines of text. */
+IA2_STATE_MULTI_LINE = 0x200,
+
+/** Indicates this object paints every pixel within its rectangular region. */
+IA2_STATE_OPAQUE = 0x400,
+
+/** Indicates that user interaction is required.
+
+ An example of when this state is used is when a field in a form must be filled
+ before a form can be processed.
+*/
+IA2_STATE_REQUIRED = 0x800,
+
+/** Indicates an object which supports text selection.
+
+ Note: This is different than MSAA STATE_SYSTEM_SELECTABLE.
+*/
+IA2_STATE_SELECTABLE_TEXT = 0x1000,
+
+/** Indicates that this text object can contain only a single line of text. */
+IA2_STATE_SINGLE_LINE = 0x2000,
+
+/** Indicates that the accessible object is stale.
+
+ This state is used when the accessible object no longer accurately
+ represents the state of the object which it is representing such as when an
+ object is transient or when an object has been or is in the process of being
+ destroyed or when the object's index in its parent has changed.
+*/
+IA2_STATE_STALE = 0x4000,
+
+/** Indicates that the object implements autocompletion.
+
+ This state indicates that a text control will respond to the input of
+ one ore more characters and cause a sub-item to become selected. The
+ selection may also result in events fired on the parent object.
+*/
+IA2_STATE_SUPPORTS_AUTOCOMPLETION = 0x8000,
+
+/** Indicates this object is transient.
+
+ An object has this state when its parent object has the state ::IA2_STATE_MANAGES_DESCENDANTS.
+ For example, a list item object may be managed by its parent list object and may only
+ exist as long as the object is actually rendered. Similarly a table cell's accessible
+ object may exist only while the cell has focus. However, from the perspective of an
+ assistive technology a transient object behaves like a non-transient object. As a
+ result it is likely that this state is not of use to an assistive technology, but it
+ is provided in case an assistive technology determines that knowledge of the transient
+ nature of the object is useful and also for harmony with the Linux accessibility API.
+
+ Also, see ::IA2_STATE_MANAGES_DESCENDANTS for more information.
+ */
+IA2_STATE_TRANSIENT = 0x10000,
+
+/** Indicates the orientation of this object is vertical. */
+IA2_STATE_VERTICAL = 0x20000,
+
+/** Indicates this object is checkable.
+
+ The standard checkable objects are check boxes, radio buttons, check box menu
+ items, radio menu items, and toggle buttons. Since assistive technology will
+ determine that these objects are checkable via the object's role the checkable
+ state is not required. However, this state is necessary in those cases where
+ an object has a role which is not one of the previously mentioned roles. An
+ example is a table cell which indicates whether or not an email has an attachment,
+ whether or not an mail is considered spam, and whether or not an email has been read.
+ */
+IA2_STATE_CHECKABLE = 0x40000,
+
+/** Indicates this object is pinned.
+
+ This state indicates that an object is fixed at a certain location. One example
+ is a browser tab that when pinned cannot be moved until unpinned. Another example
+ is a movable or floating object that when pinned remains in its pinned location
+ until being unpinned.
+ */
+IA2_STATE_PINNED = 0x80000
+
+};
+/*************************************************************************
+ *
+ * File Name (Accessible2.idl)
+ *
+ * IAccessible2 IDL Specification
+ *
+ * Copyright (c) 2007, 2013 Linux Foundation
+ * Copyright (c) 2006 IBM Corporation
+ * Copyright (c) 2000, 2006 Sun Microsystems, Inc.
+ * All rights reserved.
+ *
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * 3. Neither the name of the Linux Foundation nor the names of its
+ * contributors may be used to endorse or promote products
+ * derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * This BSD License conforms to the Open Source Initiative "Simplified
+ * BSD License" as published at:
+ * http://www.opensource.org/licenses/bsd-license.php
+ *
+ * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
+ * mark may be used in accordance with the Linux Foundation Trademark
+ * Policy to indicate compliance with the IAccessible2 specification.
+ *
+ ************************************************************************/
+
+/** @mainpage
+
+ @section _interfaces Interfaces
+ IAccessible2\n
+ IAccessible2_2\n
+ IAccessibleAction\n
+ IAccessibleApplication\n
+ IAccessibleComponent\n
+ IAccessibleDocument\n
+ IAccessibleEditableText\n
+ IAccessibleHypertext\n
+ IAccessibleHypertext2\n
+ IAccessibleHyperlink\n
+ IAccessibleImage\n
+ IAccessibleRelation\n
+ IAccessibleTable [Deprecated]\n
+ IAccessibleTable2\n
+ IAccessibleTableCell\n
+ IAccessibleText\n
+ IAccessibleText2\n
+ IAccessibleValue
+
+ @section _structs Structs
+ IA2Locale\n
+ IA2TableModelChange\n
+ IA2TextSegment
+
+ @section _enums Enums
+ ::IA2Actions values are predefined actions for use when implementing support for HTML5 media.\n
+ ::IA2CoordinateType values define the requested coordinate type (screen or parent window).\n
+ ::IA2EventID values identify events.\n
+ ::IA2Role values defines roles which are in addition to the existing MSAA roles.\n
+ ::IA2ScrollType values define where to place an object or substring on the screen.\n
+ ::IA2States values define states which are in addition to the existing MSAA states.\n
+ ::IA2TableModelChangeType values describe the kinds of changes made to a table (insert, delete, update).\n
+ ::IA2TextBoundaryType values define the requested text unit (character, word, sentence, line, paragraph).\n
+ ::IA2TextSpecialOffsets values define special offsets for use in the text interfaces.
+
+ @section _constants Constants
+ @ref grpRelations
+
+ @section _misc Miscellaneous
+ @ref _licensePage "BSD License"\n
+ @ref _generalInfo "General Information"\n
+
+ @page _licensePage BSD License
+ %IAccessible2 IDL Specification
+
+ Copyright (c) 2007, 2013 Linux Foundation\n
+ Copyright (c) 2006 IBM Corporation\n
+ Copyright (c) 2000, 2006 Sun Microsystems, Inc.\n
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials
+ provided with the distribution.
+
+ 3. Neither the name of the Linux Foundation nor the names of its
+ contributors may be used to endorse or promote products
+ derived from this software without specific prior written
+ permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This BSD License conforms to the Open Source Initiative "Simplified
+ BSD License" as published at:
+ http://www.opensource.org/licenses/bsd-license.php
+
+ %IAccessible2 is a trademark of the Linux Foundation. The %IAccessible2
+ mark may be used in accordance with the
+ <a href="http://www.linuxfoundation.org/collaborate/workgroups/accessibility/trademark-policy">
+ Linux Foundation Trademark Policy</a> to indicate compliance with the %IAccessible2 specification.
+
+ @page _generalInfo General Information
+ The following information is applicable to two or more interfaces.
+
+ @ref _errors\n
+ @ref _memory\n
+ &nbsp;&nbsp;@ref _arrayConsideration\n
+ @ref _indexes\n
+ @ref _enumBase\n
+ @ref _specialOffsets\n
+ @ref _dicoveringInterfaces\n
+ @ref _changingInterfaces\n
+ @ref _applicationInfo\n
+ @ref _childIDs\n
+ @ref _variants\n
+ @ref _iaaction-iahyperlink\n
+ @ref _trademark
+
+ @section _errors Error Handling
+ HRESULT values are defined by the Microsoft&reg; Win32&reg; API. For more information, refer to
+ <a href="http://msdn.microsoft.com/en-us/library/windows/desktop/aa378137%28v=vs.85%29.aspx">
+ Interpreting HRESULT Values</a> in MSDN&reg;.
+
+ Note that the S_FALSE return value is considered a non-error value and the
+ SUCCEEDED macro will return TRUE. S_FALSE is used when there is no failure
+ but there was nothing valid to return, e.g. in IAccessible2::attributes when
+ there are no attributes. When S_FALSE is returned [out] pointer types should
+ be NULL and [out] longs should generally be 0, but sometimes -1 is used such
+ as IAccessible2::indexInParent, IAccessibleText::caretOffset, and
+ IAccessibleHypertext::hyperlinkIndex.
+
+ Note that for BSTR [out] variables common COM practice is that the server does
+ the SysAllocString and the client does the SysFreeString. Also note that when
+ NULL is returned there is no need for the client to call SysFreeString. Please
+ refer to the documentation for each method for more details regarding error handling.
+
+ @section _memory Memory Management
+ The following memory management issues should be considered:
+ @li Although [out] BSTR variables are declared by the client, their space is
+ allocated by the server. They need to be freed with SysFreeString by the
+ client at end of life; the same is true when BSTRs are used in structs or
+ arrays which are passed to the server.
+ @li If there is no valid [out] BSTR to return, the server should return S_FALSE and
+ assign NULL to the output, e.g. *theOutBSTR = NULL;.
+ @li COM interfaces need to be referenced with AddRef when used and dereferenced
+ with Release at end of life.
+ @li Single [out] longs, HWNDs, booleans, and structs are declared by the caller
+ and passed by reference. The marshaller does all the memory management.
+
+ The following articles may be helpful for understanding memory management issues:
+ @li An article by Don Box in a
+ <a href="http://www.microsoft.com/msj/1196/activex1196.aspx">Q & A section</a>
+ of the November 1996 edition of the Microsoft Systems Journal.
+ @li A posting to a CodeGuru forum,
+ <a href="http://www.codeguru.com/forum/showthread.php?t=364511">Windows SDK
+ String: What are the rules for BSTR allocation and deallocation?</a>
+
+ @subsection _arrayConsideration Special Consideration when using Arrays
+ There are several methods which return arrays. In the case of IAccessible2::relations
+ and IAccessibleRelation::targets the client must allocate and free the arrays.
+
+ For the remaining methods which return arrays, the server must allocate the array
+ and the client must free the array when no longer needed. These methods are
+ IAccessible2::extendedStates, IAccessible2::localizedExtendedStates,
+ IAccessible2_2::relationTargetsOfType, IAccessibleAction::keyBinding,
+ IAccessibleHypertext2::hyperlinks, IAccessibleTable::selectedChildren,
+ IAccessibleTable::selectedColumns, IAccessibleTable::selectedRows,
+ IAccessibleTable2::selectedCells, IAccessibleTable2::selectedColumns,
+ IAccessibleTable2::selectedRows, IAccessibleTableCell::columnHeaderCells,
+ and IAccessibleTableCell::rowHeaderCells.
+ For those methods, the server must allocate both the top level array and any storage
+ associated with it, e.g. for BSTRs. The server must allocate the arrays with
+ CoTaskMemAlloc and any BSTRs with SysAllocString. The client must use CoTaskMemFree
+ to free the array and any BSTRs must be freed with SysFreeString.
+
+ Also, the IDL for IAccessible2::extendedStates, IAccessible2::localizedExtendedStates,
+ IAccessibleAction::keyBinding, IAccessibleTable::selectedChildren,
+ IAccessibleTable::selectedColumns, and IAccessibleTable::selectedRows includes an
+ extraneous [in] parameter for the caller to specify the max size of the array.
+ This parameter will be ignored by the COM server.
+
+ @section _indexes Zero and One Based Indexes
+ Unless otherwise specified all offsets and indexes are 0 based.
+
+ @section _enumBase Enum Base
+ Note that enums start at 0.
+
+ @section _specialOffsets Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods
+ IAccessibleText and IAccessibleEditableText can use one or more of the following
+ special offset values. They are defined in the ::IA2TextSpecialOffsets enum.
+ @li Using ::IA2_TEXT_OFFSET_LENGTH (-1) as an offset in any of the IAccessibleText or
+ IAccessibleEditableText methods is the same as specifying the length of the string.
+ @li Using ::IA2_TEXT_OFFSET_CARET (-2) as an offset for IAccessibleText::textBeforeOffset,
+ IAccessibleText::textAtOffset, and IAccessibleText::textAfterOffset indicates that the
+ text related to the physical location of the caret should be used. This is needed for
+ applications that consider the character offset of the end of one line (as reached by
+ pressing the End key) the same as the offset of the first character on the next line.
+ Since the same offset is associated with two different lines a special means is needed
+ to fetch text from the line where the caret is physically located.
+
+ @section _dicoveringInterfaces Discovery of Interfaces
+ In general AT (Assistive Technology) should try IAccessible2 interfaces, followed by using
+ the MSAA (Microsoft&reg; Active Accessibility&reg;) interfaces. (In cases where the an application
+ is known to have custom interfaces which provide information not supplied by IAccessible2
+ or MSAA, then those custom interfaces can be used.) The AT can then, by default, support
+ unknown IAccessible2/MSAA applications, without the application developers having to request
+ AT vendors for support on an individual application by application basis.
+
+ When you have a reference to an IAccessible and require a reference to an IAccessible2 use
+ QueryService as follows:
+ @code
+ // pAcc is a reference to the accessible object's IAccessible interface.
+ IServiceProvider *pService = NULL;
+ hr = pAcc->QueryInterface(IID_IServiceProvider, (void **)&pService);
+ if(SUCCEEDED(hr)) {
+ IAccessible2 *pIA2 = NULL;
+ hr = pService->QueryService(IID_IAccessible, IID_IAccessible2, (void**)&pIA2);
+ if (SUCCEEDED(hr) && pIA2) {
+ // The control supports IAccessible2.
+ // pIA2 is the reference to the accessible object's IAccessible2 interface.
+ }
+ }
+ @endcode
+
+ @section _changingInterfaces Changing between Accessible Interfaces
+ Note that developers must always implement MSAA's IAccessible and, if needed, some
+ of the interfaces in the set of IAccessible2 interfaces. Although the IAccessible2
+ IDL is coded such that IAccessible2 is a subclass of MSAA's IAccessible, none of
+ MSAA's IAccessible methods are redefined by IAccessible2.
+
+ QueryService must be used to switch from a reference to an MSAA IAccessible interface
+ to another interface. This has been
+ <a href="http://www.atia.org/files/public/Introducing_IAccessibleEx.doc">
+ documented</a> and the pertinent facts have been extracted below:
+
+ @par
+ Why use QueryService instead of just using QueryInterface to get IAccessibleEx
+ directly? The reason is that since MSAA 2.0, clients don't talk to a server's
+ IAccessible interface directly; instead they talk to an intermediate MSAA-provided
+ wrapper that calls through to the original IAccessible. This wrapper provides services
+ such as implementing IDispatch, supplying information from MSAA 2.0's Dynamic Annotation
+ service, and scaling locations when running on Windows Vista with DPI scaling enabled.
+ QueryService is the supported way to expose additional interfaces from an existing
+ IAccessible and was originally used by MSHTML to expose IHTMLElement objects corresponding
+ to IAccessibles. QueryService is often more convenient for servers to implement than
+ QueryInterface because it does not have the same requirements for preserving object
+ identity or symmetry/transitivity as QueryInterface, so QueryService allows servers to
+ easily implement the interface on the same object or a separate object. The latter is
+ often hard to do with QueryInterface unless the original object supports aggregation.
+
+ Two related references in MSDN&reg; are:
+ @li <a href="http://msdn.microsoft.com/en-us/library/ms696078(VS.85).aspx">
+ "Using QueryService to expose a native object model interface for an IAccessible object"</a>
+ @li <a href="http://msdn.microsoft.com/en-us/library/ms528415.aspx#acc_obj">
+ "Accessing the Internet Explorer Object Associated with an Accessible Object"</a>
+
+ Based on this information from Microsoft, QueryService must be used to switch back and forth
+ between a reference to an MSAA IAccessible interface and any of the IAccessible2 interfaces.
+
+ Regarding switching between any of the IAccessible2 interfaces, applications implementing
+ IAccessible2 should implement the IAccessible2 interfaces on a single object since ATs
+ will be using QueryInterface to switch between the IAccessilbe2 interfaces. Implementing
+ the IAccessible2 interfaces on separate objects would require the use of QueryService.
+ There is one exception, IAccessibleApplication can be implemented on a separate object so
+ its common code doesn't have to be included in each accessible object. ATs should use
+ QueryService to access IAccessibleApplication.
+
+ @section _applicationInfo Access to Information about the Application
+ Servers implementing IAccessible2 should provide access to the IAccessibleApplication
+ interface via QueryService from any object so that ATs can easily determine specific
+ information about the application such as its name or version.
+
+ @section _childIDs Child IDs
+ The IAccessible2 interfaces do not support child IDs, i.e. simple child elements.
+ Full accessible objects must be created for each object that supports IAccessible2.
+ Therefore MSAA's get_accChild should never return a child ID (other than CHILDID_SELF)
+ for an object that implements any of the IAccessible2 interfaces.
+
+ Microsoft's UI Automation specification has the same limitation and this was resolved
+ in the UI Automation Express specification by adding IAccessibleEx::GetObjectForChild
+ and IAccessibleEx::GetIAccessiblePair. These methods allow mapping back and forth
+ between an IAccessibleEx and an {IAccessible, Child ID} pair. A future version of
+ IAccessible2 may include similar methods to map back and forth between an IAccessible2
+ and an {IAccessible, Child ID} pair.
+
+ @section _variants VARIANTs
+ Some methods return a VARIANT. Implementers need to make sure that the return type is
+ specified, i.e. VT_I4, VT_IDISPATCH, etc. The methods that return VARIANTs are
+ IAccessibleHyperlink::anchor, IAccessibleHyperlink::anchorTarget, IAccessibleValue::currentValue,
+ IAccessibleValue::maximumValue, IAccessibleValue::minimumValue.
+
+ @section _iaaction-iahyperlink IAccessibleHyperlink as subclass of IAccessibleAction
+ In this version of the IDL, IAccessibleHyperlink is a subclass of IAccessibleAction.
+ However, there is no practical need for that inheritance and in some cases, such as
+ an image map of smart tags, it doesn't make sense because such an image map doesn't
+ have actionable objects; it's the secondary smart tags that are actionable. As a
+ result, implementations should not rely on the inheritance as it may be removed in
+ a later version of the IDL.
+
+ @section _trademark Trademark Attribution
+ The names of actual companies and products mentioned herein may be the trademarks of
+ their respective owners. In particular, Active Accessibility, Microsoft, MSDN, and Win32
+ are trademarks of the Microsoft group of companies in the U.S.A. and/or other countries.
+
+**/
+
+
+
+
+
+
+
+
+/** A structure defining the locale of an accessible object.
+
+IAccessible2::locale returns this struct.
+*/
+typedef struct IA2Locale {
+ BSTR language; ///< ISO 639-1 Alpha-2 two character language code
+ BSTR country; ///< ISO 3166-1 Alpha-2 two character country code
+ BSTR variant; ///< Application specific variant of the locale
+} IA2Locale;
+
+/** @brief This interface exposes the primary set of information about an
+ IAccessible2 enabled accessible object.
+
+ This interface must always be provided for objects that support some
+ portion of the collection of the %IAccessible2 interfaces.
+
+ Please refer to @ref _changingInterfaces "Changing between Accessible Interfaces"
+ for special considerations related to use of the MSAA IAccessible interface and
+ the set of %IAccessible2 interfaces.
+ */
+[object, uuid(E89F726E-C4F4-4c19-BB19-B647D7FA8478)]
+interface IAccessible2 : IAccessible
+{
+
+ /** @brief Returns the number of accessible relations for this object.
+ @param [out] nRelations
+ @retval S_OK
+ */
+ [propget] HRESULT nRelations
+ (
+ [out, retval] long *nRelations
+ );
+
+ /** @brief Returns one accessible relation for this object.
+ @param [in] relationIndex
+ 0 based
+ @param [out] relation
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed
+ */
+ [propget] HRESULT relation
+ (
+ [in] long relationIndex,
+ [out, retval] IAccessibleRelation **relation
+ );
+
+ /** @brief Returns multiple accessible relations for this object.
+ @param [in] maxRelations
+ maximum size of the array allocated by the client
+ @param [out] relations
+ The array of accessible relation objects. Note that this array is to be
+ allocated by the client and freed when no longer needed. Refer to @ref
+ _arrayConsideration "Special Consideration when using Arrays" for more details.
+ @param [out] nRelations
+ actual number of relations in the returned array (not more than maxRelations)
+ @retval S_OK
+ @retval S_FALSE if there are no relations, nRelations is set to 0
+ @note As a performant alternative, client code should consider using IAccessible2_2::relationTargetsOfType.
+ */
+ [propget] HRESULT relations
+ (
+ [in] long maxRelations,
+ [out, size_is(maxRelations), length_is(*nRelations)]
+ IAccessibleRelation **relations,
+ [out, retval] long *nRelations
+ );
+
+ /** @brief Returns the role of an %IAccessible2 object.
+ @param [out] role
+ The role of an %IAccessible2 object.
+ @retval S_OK
+ @note
+ @li For convenience MSAA roles are also passed through this method so the
+ AT doesn't have to also fetch roles through MSAA's get_accRole.
+ @li %IAccessible2 roles should not be passed through MSAA's get_accRole.
+ @li For compatibility with non IAccessible2 enabled ATs, IAccessible2
+ applications should also add support to get_accRole to return the closest
+ MSAA role or ROLE_SYSTEM_CLIENT (the MSAA defined default role) if there
+ is not a good match.
+ @li This method is missing a [propget] prefix in the IDL. The result is the
+ method is named role in generated C++ code instead of get_role.
+ */
+ HRESULT role
+ (
+ [out, retval] long *role
+ );
+
+ /** @brief Makes an object visible on the screen.
+ @param [in] scrollType
+ Defines where the object should be placed on the screen.
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed
+ */
+ HRESULT scrollTo
+ (
+ [in] enum IA2ScrollType scrollType
+ );
+
+ /** @brief Moves the top left of an object to a specified location.
+
+ @param [in] coordinateType
+ Specifies whether the coordinates are relative to the screen or the parent object.
+ @param [in] x
+ Defines the x coordinate.
+ @param [in] y
+ Defines the y coordinate.
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed
+ */
+ HRESULT scrollToPoint
+ (
+ [in] enum IA2CoordinateType coordinateType,
+ [in] long x,
+ [in] long y
+ );
+
+ /** @brief Returns grouping information.
+
+ Used for tree items, list items, tab panel labels, radio buttons, etc.
+ Also used for collections of non-text objects.
+
+ @param [out] groupLevel
+ 1 based, 0 indicates that this value is not applicable
+ @param [out] similarItemsInGroup
+ 1 based, 0 indicates that this value is not applicable
+ @param [out] positionInGroup
+ 1 based, 0 indicates that this value is not applicable. This is an index
+ into the objects in the current group, not an index into all the objects
+ at the same group level.
+ @retval S_OK if at least one value is valid
+ @retval S_FALSE if no values are valid, [out] values are 0s
+ @note This method is meant to describe the nature of an object's containment
+ structure. It's exposed by trees, tree grids, nested lists, nested menus,
+ but not headings, which uses the level object attribute. It is also exposed
+ by radio buttons (with groupLevel == 0).
+ @note This is normally not implemented on a combo box to describe the nature
+ of its contents. Normally an AT will get that information from its child list
+ object. However, in some cases when non-edit combo boxes are not able to be structured
+ such that the list is a child of the combo box, this method is implemented on
+ the combo box itself. ATs can use this interface if a child list is not found.
+ */
+ [propget] HRESULT groupPosition
+ (
+ [out] long *groupLevel,
+ [out] long *similarItemsInGroup,
+ [out, retval] long *positionInGroup
+ );
+
+ /** @brief Returns the bit strip containing any IAccessible2 states.
+
+ The IAccessible2 states are in addition to the MSAA states and are defined in
+ the IA2States enum.
+
+ @param [out] states
+ @retval S_OK
+ */
+ [propget] HRESULT states
+ (
+ [out, retval] AccessibleStates *states
+ );
+
+ /** @brief Returns the extended role.
+
+ An extended role is a role which is dynamically generated by the application.
+ It is not predefined by the %IAccessible2 specification.
+
+ @param [out] extendedRole
+ @retval S_OK
+ @retval S_FALSE if there is nothing to return, [out] value is NULL
+ */
+ [propget] HRESULT extendedRole
+ (
+ [out, retval] BSTR *extendedRole
+ );
+
+ /** @brief Returns the localized extended role.
+ @param [out] localizedExtendedRole
+ @retval S_OK
+ @retval S_FALSE if there is nothing to return, [out] value is NULL
+ */
+ [propget] HRESULT localizedExtendedRole
+ (
+ [out, retval] BSTR *localizedExtendedRole
+ );
+
+ /** @brief Returns the number of extended states.
+ @param [out] nExtendedStates
+ @retval S_OK
+ */
+ [propget] HRESULT nExtendedStates
+ (
+ [out, retval] long *nExtendedStates
+ );
+
+ /** @brief Returns the extended states (array of strings).
+
+ An extended state is a state which is dynamically generated by the application.
+ It is not predefined by the %IAccessible2 specification.
+
+ @param [in] maxExtendedStates
+ This parameter is ignored. Refer to @ref _arrayConsideration
+ "Special Consideration when using Arrays" for more details.
+ @param [out] extendedStates
+ This array is allocated by the server. The client must free it with CoTaskMemFree.
+ @param [out] nExtendedStates
+ The number of extended states returned; the size of the returned array.
+ @retval S_OK
+ @retval S_FALSE if there are no states, [out] values are NULL and 0 respectively
+ */
+ [propget] HRESULT extendedStates
+ (
+ [in] long maxExtendedStates,
+ [out, size_is(,maxExtendedStates), length_is(,*nExtendedStates)] BSTR **extendedStates,
+ [out, retval] long *nExtendedStates
+ );
+
+ /** @brief Returns the localized extended states (array of strings).
+
+ @param [in] maxLocalizedExtendedStates
+ This parameter is ignored. Refer to @ref _arrayConsideration
+ "Special Consideration when using Arrays" for more details.
+ @param [out] localizedExtendedStates
+ This array is allocated by the server. The client must free it with CoTaskMemFree.
+ @param [out] nLocalizedExtendedStates
+ The number of localized extended states returned; the size of the returned array.
+ @retval S_OK
+ @retval S_FALSE if there are no states, [out] values are NULL and 0 respectively
+ */
+ [propget] HRESULT localizedExtendedStates
+ (
+ [in] long maxLocalizedExtendedStates,
+ [out, size_is(,maxLocalizedExtendedStates), length_is(,*nLocalizedExtendedStates)] BSTR **localizedExtendedStates,
+ [out, retval] long *nLocalizedExtendedStates
+ );
+
+ /** @brief Returns the unique ID.
+
+ The uniqueID is an identifier for this object, is unique within the
+ current window, and remains the same for the lifetime of the accessible
+ object.
+
+ The uniqueID is not related to:
+ - the MSAA objectID which is used by the server to disambiguate between
+ IAccessibles per HWND or
+ - the MSAA childID which is used to disambiguate between children being
+ managed by an IAccessible.
+
+ This value is provided so the AT can have access to a unique runtime persistent
+ identifier even when not handling an event for the object.
+
+ An example of when this value is useful is if the AT wants to build a cache.
+ The AT could cache the uniqueIDs in addition to other data being cached.
+ When an event is fired the AT could map the uniqueID to its internal model.
+ Thus, if there's a REORDER/SHOW/HIDE event the AT knows which part of the
+ internal structure has been invalidated and can refetch just that part.
+
+ This value can also be used by an AT to determine when the current control
+ has changed. If the role is the same for two controls that are adjacent in
+ the tab order, this can be used to detect the new control.
+
+ Another use of this value by an AT is to identify when a grouping object has
+ changed, e.g. when moving from a radio button in one group to a radio button in a
+ different group.
+
+ One means of implementing this would be to create a factory with a 32 bit number
+ generator and a reuse pool. The number generator would emit numbers starting
+ at 1. Each time an object's life cycle ended, its number would be saved into a
+ reuse pool. The number generator would be used whenever the reuse pool was empty.
+
+ Another way to create a unique ID is to generate it from a pointer value, e.g. an
+ object's address. That would be unique because no two active objects can use the
+ same allocated memory space.
+
+ @param [out] uniqueID
+ @retval S_OK
+ */
+ [propget] HRESULT uniqueID
+ (
+ [out, retval] long *uniqueID
+ );
+
+ /** @brief Returns the window handle for the parent window which contains this object.
+
+ This is the same window handle which will be passed for any events that occur on the
+ object, but is cached in the accessible object for use when it would be helpful to
+ access the window handle in cases where an event isn't fired on this object.
+
+ A use case is when a screen reader is grabbing an entire web page on a page load.
+ Without the availability of windowHandle, the AT would have to get the window handle
+ by using WindowFromAccessibleObject on each IAccessible, which is slow because it's
+ implemented by oleacc.dll as a loop which crawls up the ancestor chain and looks for
+ a ROLE_WINDOW object, mapping that back to a window handle.
+
+ @param [out] windowHandle
+ @retval S_OK
+ */
+ [propget] HRESULT windowHandle
+ (
+ [out, retval] HWND *windowHandle
+ );
+
+ /** @brief Returns the index of this object in its parent object.
+ @param [out] indexInParent
+ 0 based; -1 indicates there is no parent; the upper bound is the value
+ returned by the parent's IAccessible::get_accChildCount.
+ @retval S_OK
+ @retval S_FALSE if no parent, [out] value is -1
+ */
+ [propget] HRESULT indexInParent
+ (
+ [out, retval] long *indexInParent
+ );
+
+ /** @brief Returns the IA2Locale of the accessible object.
+ @param [out] locale
+ @retval S_OK
+ */
+ [propget] HRESULT locale
+ (
+ [out, retval] IA2Locale *locale
+ );
+
+ /** @brief Returns the attributes specific to this object, such as a cell's formula.
+ @param [out] attributes
+ @retval S_OK
+ @retval S_FALSE returned if there is nothing to return, [out] value is NULL
+ */
+ [propget] HRESULT attributes
+ (
+ [out, retval] BSTR *attributes
+ );
+
+}
+
+/*************************************************************************
+ *
+ * File Name (Accessible2_2.idl)
+ *
+ * IAccessible2 IDL Specification
+ *
+ * Copyright (c) 2007, 2013 Linux Foundation
+ * Copyright (c) 2006 IBM Corporation
+ * Copyright (c) 2000, 2006 Sun Microsystems, Inc.
+ * All rights reserved.
+ *
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * 3. Neither the name of the Linux Foundation nor the names of its
+ * contributors may be used to endorse or promote products
+ * derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * This BSD License conforms to the Open Source Initiative "Simplified
+ * BSD License" as published at:
+ * http://www.opensource.org/licenses/bsd-license.php
+ *
+ * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
+ * mark may be used in accordance with the Linux Foundation Trademark
+ * Policy to indicate compliance with the IAccessible2 specification.
+ *
+ ************************************************************************/
+
+
+
+
+
+
+/** @brief This interface exposes the primary set of information about an
+ IAccessible2 enabled accessible object.
+
+ This interface must always be provided for objects that support some
+ portion of the collection of the %IAccessible2 interfaces.
+
+ Please refer to @ref _changingInterfaces "Changing between Accessible Interfaces"
+ for special considerations related to use of the MSAA IAccessible interface and
+ the set of %IAccessible2 interfaces.
+ */
+[object, uuid(6C9430E9-299D-4E6F-BD01-A82A1E88D3FF)]
+interface IAccessible2_2 : IAccessible2
+{
+ /** @brief Returns the attribute value of a specified attribute specific to this object.
+ @param [in] name
+ @param [out] attribute
+ @retval S_OK
+ @retval S_FALSE returned if there is nothing to return, [out] value is NULL.
+ @retval E_INVALIDARG if bad [in] passed.
+ @note The output value is a VARIANT. Typically it will be a VT_BSTR, but there
+ are some cases where it will be a VT_I4 or VT_BOOL. Refer to the <a href=
+ "http://www.linuxfoundation.org/collaborate/workgroups/accessibility/iaccessible2/objectattributesIAccessible2">
+ Object Attributes specification</a> for more information.
+ */
+ [propget] HRESULT attribute
+ (
+ [in] BSTR name,
+ [out, retval] VARIANT *attribute
+ );
+
+ /** @brief Returns the deepest hypertext accessible in the subtree of this object, and the caret offset within it.
+ @param [out] accessible
+ @param [out] caretOffset
+ @retval S_OK
+ @retval S_FALSE returned if there is no caret in any of the objects in the subtree, [out] accessible is NULL and [out] caretOffset is -1.
+ */
+ [propget] HRESULT accessibleWithCaret
+ (
+ [out] IUnknown **accessible,
+ [out, retval] long *caretOffset
+ );
+
+ /** @brief Returns relation targets for a specified target type.
+ @param [in] type
+ The requested @ref grpRelations "relation type".
+ @param [in] maxTargets
+ The number of targets requested. 0 indicates that all targets should be returned.
+ @param [out] targets
+ This array is allocated by the server. The client must free it with CoTaskMemFree.
+ @param [out] nTargets
+ The number of targets returned; the size of the returned array.
+ @retval S_OK
+ @retval S_FALSE if there are no targets, [out] values are NULL and 0 respectively.
+ @retval E_INVALIDARG if bad [in] passed.
+ */
+ [propget] HRESULT relationTargetsOfType
+ (
+ [in] BSTR type,
+ [in] long maxTargets,
+ [out, size_is(,*nTargets)] IUnknown ***targets,
+ [out, retval] long *nTargets
+ );
+
+}
+
+/*************************************************************************
+ *
+ * File Name (AccessibleComponent.idl)
+ *
+ * IAccessible2 IDL Specification
+ *
+ * Copyright (c) 2007, 2010 Linux Foundation
+ * Copyright (c) 2006 IBM Corporation
+ * Copyright (c) 2000, 2006 Sun Microsystems, Inc.
+ * All rights reserved.
+ *
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * 3. Neither the name of the Linux Foundation nor the names of its
+ * contributors may be used to endorse or promote products
+ * derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * This BSD License conforms to the Open Source Initiative "Simplified
+ * BSD License" as published at:
+ * http://www.opensource.org/licenses/bsd-license.php
+ *
+ * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
+ * mark may be used in accordance with the Linux Foundation Trademark
+ * Policy to indicate compliance with the IAccessible2 specification.
+ *
+ ************************************************************************/
+
+
+
+
+
+/** A value specifying a color in ARGB format, where each 8 bit color component
+specifies alpha, red, green, and blue respectively. The alpha value is optional.
+*/
+typedef long IA2Color;
+
+/** @brief This interface is implemented by any object that can be rendered
+ on the screen.
+
+ This interface provides the standard mechanism for an assistive technology
+ to retrieve information concerning the graphical representation of an object.
+ Coordinates used by the functions of this interface are specified in
+ different coordinate systems. Their scale is the same and is equal to
+ that of the screen coordinate system. In other words all coordinates
+ are measured in pixels. They differ in their respective origin:
+ <ul>
+ <li>The screen coordinate system has its origin in the upper left
+ corner of the current screen.</li>
+ <li>The origin of the parent coordinate system is the upper left corner
+ of the parent's bounding box. With no parent the screen coordinate
+ system is used instead.</li>
+ </ul>
+*/
+[object, uuid(1546D4B0-4C98-4bda-89AE-9A64748BDDE4)]
+interface IAccessibleComponent : IUnknown
+{
+
+ /** @brief Returns the location of the upper left corner of the object's
+ bounding box relative to the immediate parent object.
+
+ The coordinates of the bounding box are given relative to the parent's
+ coordinate system. The coordinates of the returned position are relative
+ to this object's parent or relative to the screen on which this object
+ is rendered if it has no parent. If the object is not on any screen
+ the returned position is (0,0).
+
+ @param [out] x
+ @param [out] y
+ @retval S_OK
+ */
+ [propget] HRESULT locationInParent
+ (
+ [out] long *x,
+ [out, retval] long *y
+ );
+
+ /** @brief Returns the foreground color of this object.
+ @param [out] foreground
+ The returned color is the foreground color of this object or, if
+ that is not supported, the default foreground color.
+ @retval S_OK
+ */
+ [propget] HRESULT foreground
+ (
+ [out, retval] IA2Color *foreground
+ );
+
+ /** @brief Returns the background color of this object.
+ @param [out] background
+ The returned color is the background color of this object or, if
+ that is not supported, the default background color.
+ @retval S_OK
+ */
+ [propget] HRESULT background
+ (
+ [out, retval] IA2Color *background
+ );
+}
+/*************************************************************************
+ *
+ * File Name (AccessibleValue.idl)
+ *
+ * IAccessible2 IDL Specification
+ *
+ * Copyright (c) 2007, 2010 Linux Foundation
+ * Copyright (c) 2006 IBM Corporation
+ * Copyright (c) 2000, 2006 Sun Microsystems, Inc.
+ * All rights reserved.
+ *
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * 3. Neither the name of the Linux Foundation nor the names of its
+ * contributors may be used to endorse or promote products
+ * derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * This BSD License conforms to the Open Source Initiative "Simplified
+ * BSD License" as published at:
+ * http://www.opensource.org/licenses/bsd-license.php
+ *
+ * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
+ * mark may be used in accordance with the Linux Foundation Trademark
+ * Policy to indicate compliance with the IAccessible2 specification.
+ *
+ ************************************************************************/
+
+
+
+
+
+/** @brief This interface gives access to a single numerical value.
+
+ The %IAccessibleValue interface represents a single numerical value and should
+ be implemented by any class that supports numerical value like progress bars
+ and spin boxes. This interface lets you access the value and its upper and
+ lower bounds.
+*/
+[object, uuid(35855B5B-C566-4fd0-A7B1-E65465600394)]
+interface IAccessibleValue : IUnknown
+{
+
+ /** @brief Returns the value of this object as a number.
+
+ The exact return type is implementation dependent. Typical types are long and
+ double.
+ @param [out] currentValue
+ Returns the current value represented by this object. See the section about
+ @ref _variants "VARIANTs" for additional information.
+ @retval S_OK
+ @retval S_FALSE if there is nothing to return, [out] value is a VARIANT with vt = VT_EMPTY
+ */
+ [propget] HRESULT currentValue
+ (
+ [out, retval] VARIANT *currentValue
+ );
+
+ /** @brief Sets the value of this object to the given number.
+
+ The argument is clipped to the valid interval whose upper and lower
+ bounds are returned by the methods IAccessibleValue::maximumValue and
+ IAccessibleValue::minimumValue, i.e. if it is lower than the minimum
+ value the new value will be the minimum and if it is greater than the
+ maximum then the new value will be the maximum.
+
+ @param [in] value
+ The new value represented by this object. The set of admissible types for
+ this argument is implementation dependent.
+ @retval S_OK
+ */
+ HRESULT setCurrentValue
+ (
+ [in] VARIANT value
+ );
+
+ /** @brief Returns the maximal value that can be represented by this object.
+
+ The type of the returned value is implementation dependent. It does not have
+ to be the same type as that returned by method IAccessibleValue::currentValue.
+
+ @param [out] maximumValue
+ Returns the maximal value in an implementation dependent type. If this object
+ has no upper bound then an empty object is returned. See the section about
+ @ref _variants "VARIANTs" for additional information.
+ @retval S_OK
+ @retval S_FALSE if there is nothing to return, [out] value is a VARIANT with vt = VT_EMPTY
+ */
+ [propget] HRESULT maximumValue
+ (
+ [out, retval] VARIANT *maximumValue
+ );
+
+ /** @brief Returns the minimal value that can be represented by this object.
+
+ The type of the returned value is implementation dependent. It does not have
+ to be the same type as that returned by method IAccessibleValue::currentValue.
+
+ @param [out] minimumValue
+ Returns the minimal value in an implementation dependent type. If this object
+ has no lower bound then an empty object is returned. See the section about
+ @ref _variants "VARIANTs" for additional information.
+ @retval S_OK
+ @retval S_FALSE if there is nothing to return, [out] value is a VARIANT with vt = VT_EMPTY
+ */
+ [propget] HRESULT minimumValue
+ (
+ [out, retval] VARIANT *minimumValue
+ );
+
+};
+/*************************************************************************
+ *
+ * File Name (AccessibleText.idl)
+ *
+ * IAccessible2 IDL Specification
+ *
+ * Copyright (c) 2007, 2013 Linux Foundation
+ * Copyright (c) 2006 IBM Corporation
+ * Copyright (c) 2000, 2006 Sun Microsystems, Inc.
+ * All rights reserved.
+ *
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * 3. Neither the name of the Linux Foundation nor the names of its
+ * contributors may be used to endorse or promote products
+ * derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * This BSD License conforms to the Open Source Initiative "Simplified
+ * BSD License" as published at:
+ * http://www.opensource.org/licenses/bsd-license.php
+ *
+ * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
+ * mark may be used in accordance with the Linux Foundation Trademark
+ * Policy to indicate compliance with the IAccessible2 specification.
+ *
+ ************************************************************************/
+
+
+
+
+
+
+/** A structure containing a substring and the start and end offsets in the enclosing string.
+
+ IAccessibleText::newText and IAccessibleText::oldText return this struct.
+*/
+typedef struct IA2TextSegment {
+ BSTR text; ///< A copy of a segment of text taken from an enclosing paragraph.
+ long start; ///< Index of the first character of the segment in the enclosing text.
+ long end; ///< Index of the character following the last character of the segment in the enclosing text.
+} IA2TextSegment;
+
+/** This enum defines values which specify a text boundary type.
+
+ IA2_TEXT_BOUNDARY_SENTENCE is optional. When a method doesn't implement this
+ method it must return S_FALSE. Typically this feature would not be implemented
+ by an application. However, if the application developer was not satisfied with
+ how screen readers have handled the reading of sentences this boundary type
+ could be implemented and screen readers could use the application's version of a
+ sentence rather than the screen reader's.
+
+ The rest of the boundary types must be supported.
+
+ This enum is used in IAccessibleText::textBeforeOffset, IAccessibleText::textAtOffset,
+ and IAccessibleText::textAfterOffset.
+*/
+
+enum IA2TextBoundaryType {
+ IA2_TEXT_BOUNDARY_CHAR, /**< Typically, a single character is returned. In some cases more than
+ one character is returned, for example, when a document contains field
+ data such as a field containing a date, time, or footnote reference.
+ In this case the caret can move over several characters in one movement
+ of the caret. Note that after the caret moves, the caret offset changes
+ by the number of characters in the field, e.g. by 8 characters in the
+ following date: 03/26/07. */
+ IA2_TEXT_BOUNDARY_WORD, /**< The range provided matches the range observed when the application
+ processes the Ctrl + left arrow and Ctrl + right arrow key sequences.
+ Typically this is from the start of one word to the start of the next, but
+ various applications are inconsistent in the handling of the end of a line. */
+ IA2_TEXT_BOUNDARY_SENTENCE, ///< Range is from start of one sentence to the start of another sentence.
+ IA2_TEXT_BOUNDARY_PARAGRAPH, ///< Range is from start of one paragraph to the start of another paragraph.
+ IA2_TEXT_BOUNDARY_LINE, /**< Range is from start of one line to the start of another line. This
+ often means that an end-of-line character will appear at the end of the
+ range. However in the case of some applications an end-of-line character
+ indicates the end of a paragraph and the lines composing the paragraph,
+ other than the last line, do not contain an end of line character. */
+ IA2_TEXT_BOUNDARY_ALL ///< Using this value will cause all text to be returned.
+};
+
+/** @brief This interface gives read-only access to text.
+
+ The %IAccessibleText interface should be implemented by all components
+ that present textual information on the display like buttons,
+ text entry fields, or text portions of the document window. The interface
+ provides access to the text's content, attributes, and spatial location.
+ However, text can not be modified with this interface. That is the task
+ of the IAccessibleEditableText interface.
+
+ The text length, i.e. the number of characters in the text, is
+ returned by IAccessibleText::nCharacters. All methods that operate
+ on particular characters (e.g. IAccessibleText::textAtOffset) use character
+ indices from 0 to length-1. All methods that operate on character positions
+ (e.g. IAccessibleText::text) use indices from 0 to length.
+
+ Please note that accessible text does not necessarily support selection.
+ In this case it should behave as if there where no selection. An empty
+ selection is used for example to express the current cursor position.
+
+ Refer to @ref _specialOffsets
+ "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
+ for information about special offsets that can be used in %IAccessibleText methods.
+
+ E_FAIL is returned in the following cases
+ @li endOffset < startOffset
+ @li endoffset > length
+*/
+[object, uuid(24FD2FFB-3AAD-4a08-8335-A3AD89C0FB4B)]
+interface IAccessibleText : IUnknown
+{
+
+ /** @brief Adds a text selection
+ @param [in] startOffset
+ Starting offset ( 0 based).
+ @param [in] endOffset
+ Offset of first character after new selection (0 based).
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed
+ @note Refer to @ref _specialOffsets
+ "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
+ for information about special offsets that can be used in %IAccessibleText methods.
+ */
+ HRESULT addSelection
+ (
+ [in] long startOffset,
+ [in] long endOffset
+ );
+
+ /** @brief Returns text attributes.
+ @param [in] offset
+ Text offset (0 based). Refer to @ref _specialOffsets
+ "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
+ for information about special offsets that can be used in %IAccessibleText methods.
+ @param [out] startOffset
+ The starting offset of the character range over which all text attributes match
+ those of offset. (0 based)
+ @param [out] endOffset
+ The offset of the first character past the character range over which all text
+ attributes match those of offset. (0 based)
+ @param [out] textAttributes
+ A string of attributes describing the text. The attributes are described in the
+ <a href="http://www.linuxfoundation.org/en/Accessibility/IAccessible2/TextAttributes">
+ text attributes specification</a> on the %IAccessible2 web site.
+ @retval S_OK
+ @retval S_FALSE if there is nothing to return, [out] values are 0s and NULL respectively
+ @retval E_INVALIDARG if bad [in] passed
+ */
+ [propget] HRESULT attributes
+ (
+ [in] long offset,
+ [out] long *startOffset,
+ [out] long *endOffset,
+ [out, retval] BSTR *textAttributes
+ );
+
+ /** @brief Returns the position of the caret.
+
+ Returns the 0-based offset of the caret within the text. If the text is
+ implemented as a tree of text objects with embed characters in higher levels
+ representing substrings of child text objects and the caret is in one of the
+ child text objects, then the offset in the higher level text object would be
+ at the embed character representing child text object that contains the caret.
+
+ For example, if the string "one two three" is implemented as a two text objects,
+ with a top level text object containing an embed character "one ? three" and a
+ child text object containing "two" and if the caret is in the descendant object
+ just before the 'o' in "two", then:
+ <ul>
+ <li>the caretOffset for the "one ? three" object would be 4, matching the embed character</li>
+ <li>the caretOffset for "two" would be 2, matching the "o"</li>
+ </ul>
+ The caret position/offset is that of the character logically following it, e.g.
+ to the right of it in a left to right language, or to the left of it in a right
+ to left language.
+ @param [out] offset
+ The returned offset is relative to the text represented by this object.
+ @retval S_OK
+ @retval S_FALSE if the caret is not currently active on this object, i.e. the
+ caret is located on some other object. The returned offset value will be -1.
+ @note S_FALSE (and an offset of -1) will not be returned if the caret is somewhere
+ in the text object or one of its descendants.
+ */
+ [propget] HRESULT caretOffset
+ (
+ [out, retval] long *offset
+ );
+
+
+ /** @brief Returns the bounding box of the specified position.
+
+ The virtual character after the last character of the represented
+ text, i.e. the one at position length is a special case. It represents the
+ current input position and will therefore typically be queried by AT more
+ often than other positions. Because it does not represent an existing character
+ its bounding box is defined in relation to preceding characters. It should be
+ roughly equivalent to the bounding box of some character when inserted at the
+ end of the text. Its height typically being the maximal height of all the
+ characters in the text or the height of the preceding character, its width being
+ at least one pixel so that the bounding box is not degenerate.
+
+ Note that the index 'length' is not always valid. Whether it is or not is
+ implementation dependent. It typically is when text is editable or otherwise
+ when on the screen the caret can be placed behind the text. You can be sure
+ that the index is valid after you have received a ::IA2_EVENT_TEXT_CARET_MOVED
+ event for this index.
+ @param [in] offset
+ Index of the character for which to return its bounding box. The valid range
+ is 0..length. Refer to @ref _specialOffsets
+ "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
+ for information about special offsets that can be used in %IAccessibleText methods.
+ @param [in] coordType
+ Specifies if the coordinates are relative to the screen or to the parent window.
+ @param [out] x
+ X coordinate of the top left corner of the bounding box of the referenced character.
+ @param [out] y
+ Y coordinate of the top left corner of the bounding box of the referenced character.
+ @param [out] width
+ Width of the bounding box of the referenced character.
+ @param [out] height
+ Height of the bounding box of the referenced character.
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed
+ */
+ [propget] HRESULT characterExtents
+ (
+ [in] long offset,
+ [in] enum IA2CoordinateType coordType,
+ [out] long *x,
+ [out] long *y,
+ [out] long *width,
+ [out, retval] long *height
+ );
+
+
+ /** @brief Returns the number of active non-contiguous selections
+ @param [out] nSelections
+ @retval S_OK
+ */
+ [propget] HRESULT nSelections
+ (
+ [out, retval] long *nSelections
+ );
+
+ /** @brief Returns the text position for the specified screen position.
+
+ Given a point return the zero-based index of the character under that
+ point. The same functionality could be achieved by using the bounding
+ boxes for each character as returned by IAccessibleText::characterExtents.
+ The method IAccessibleText::offsetAtPoint, however, can be implemented
+ more efficiently.
+
+ @param [in] x
+ The position's x value for which to look up the index of the character that
+ is rendered on to the display at that point.
+ @param [in] y
+ The position's y value for which to look up the index of the character that
+ is rendered on to the display at that point.
+ @param [in] coordType
+ Screen coordinates or window coordinates.
+ @param [out] offset
+ Index of the character under the given point or -1 if the point
+ is invalid or there is no character under the point.
+ @retval S_OK
+ @retval S_FALSE if nothing to return, [out] value is -1
+
+ @retval E_INVALIDARG if bad [in] passed
+ */
+ [propget] HRESULT offsetAtPoint
+ (
+ [in] long x,
+ [in] long y,
+ [in] enum IA2CoordinateType coordType,
+ [out, retval] long *offset
+ );
+
+ /** @brief Returns the character offsets of Nth active text selection
+
+ Returns the 0-based starting and ending offsets of the Nth selection. If the
+ text is implemented as a tree of text objects with embed characters in higher
+ levels representing substrings of child text objects, consider the following.
+ If the starting selection offset is in one of the child text objects, then the
+ starting offset in the higher level text object would be at the embed character
+ representing the child text object that contains the starting selection offset.
+ If the ending selection offset is in one of the child text objects, then the
+ ending offset in the higher level text object would be just after the embed
+ character representing the child text object that contains the ending selection
+ offset.
+
+ For example, if the string "one two three" is implemented as a two text objects,
+ with a top level text object containing an embed character "one ? three" and a
+ child text object containing "two" and if the selection is the string "two" then:
+ <ul>
+ <li>the startOffset for the "one ? three" object would be 4, matching the embed character and the endOffset would be 5.</li>
+ <li>the startOffset for the "two" object would be 0, and the endOffset would be 3</li>
+ </ul>
+ Selection offsets are that of the character logically following it, e.g.
+ to the right of it in a left to right language or to the left of it in a right to left language.
+ @param [in] selectionIndex
+ Index of selection (0 based).
+ @param [out] startOffset
+ 0 based offset of first selected character
+ @param [out] endOffset
+ 0 based offset of one past the last selected character.
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed
+ */
+ [propget] HRESULT selection
+ (
+ [in] long selectionIndex,
+ [out] long *startOffset,
+ [out, retval] long *endOffset
+ );
+
+ /** @brief Returns the substring between the two given indices.
+
+ The substring starts with the character at startOffset (inclusive) and up to
+ the character at endOffset (exclusive), if startOffset is less or equal
+ endOffset. If endOffset is lower than startOffset, the result is the same
+ as a call with the two arguments being exchanged.
+
+ The whole text can be requested by passing the indices zero and
+ IAccessibleText::nCharacters. If both indices have the same value, an empty
+ string is returned.
+ @param [in] startOffset
+ Index of the first character to include in the returned string. The valid range
+ is 0..length.
+ @param [in] endOffset
+ Index of the last character to exclude in the returned string. The valid range
+ is 0..length.
+ @param [out] text
+ Returns the substring starting with the character at startOffset (inclusive)
+ and up to the character at endOffset (exclusive), if startOffset is less than
+ or equal to endOffset.
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed
+ @note
+ @li The returned string may be longer than endOffset-startOffset bytes if text
+ contains multi-byte characters.
+ @li Refer to @ref _specialOffsets
+ "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
+ for information about special offsets that can be used in %IAccessibleText methods.
+ */
+ [propget] HRESULT text
+ (
+ [in] long startOffset,
+ [in] long endOffset,
+ [out, retval] BSTR *text
+ );
+
+ /** @brief Returns a text portion before the given position.
+
+ Returns the substring of the specified text type that is located before the
+ given character and does not include it. The result of this method should be
+ same as a result for IAccessibleText::textAtOffset with a suitably decreased
+ index value.
+
+ For example, if text type is ::IA2_TEXT_BOUNDARY_WORD, then the complete
+ word that is closest to and located before offset is returned.
+
+ If the index is valid, but no text is found, S_FALSE is returned along with out
+ values of 0, 0, and a NULL pointer. This would happen for boundary types other
+ than character when the text consists entirely of whitespace.
+
+ @param [in] offset
+ Index of the character for which to return the text part before it. The index
+ character will not be part of the returned string. The valid range is 0..length.
+ Refer to @ref _specialOffsets
+ "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
+ for information about special offsets that can be used in %IAccessibleText methods.
+ @param [in] boundaryType
+ The type of the text portion to return. See ::IA2TextBoundaryType for the
+ complete list.
+ @param [out] startOffset
+ 0 based offset of first character.
+ @param [out] endOffset
+ 0 based offset of one past the last character.
+ @param [out] text
+ Returns the requested text portion. This portion may be empty or invalid when
+ no appropriate text portion is found or text type is invalid.
+ @retval S_OK
+ @retval S_FALSE if the requested boundary type is not implemented, such as
+ ::IA2_TEXT_BOUNDARY_SENTENCE, or if there is nothing to return;
+ [out] values are 0s and NULL respectively
+ @retval E_INVALIDARG if bad [in] passed
+ */
+ [propget] HRESULT textBeforeOffset
+ (
+ [in] long offset,
+ [in] enum IA2TextBoundaryType boundaryType,
+ [out] long *startOffset,
+ [out] long *endOffset,
+ [out, retval] BSTR *text
+ );
+
+ /** @brief Returns a text portion after the given position.
+
+ Returns the substring of the specified text type that is located after the
+ given character and does not include it. The result of this method should be
+ same as a result for IAccessibleText::textAtOffset with a suitably increased
+ index value.
+
+ For example, if text type is ::IA2_TEXT_BOUNDARY_WORD, then the complete
+ word that is closest to and located after offset is returned.
+
+ If the index is valid, but no text is found, S_FALSE is returned along with out
+ values of 0, 0, and a NULL pointer. This would happen for boundary types other
+ than character when the text consists entirely of whitespace.
+
+ @param [in] offset
+ Index of the character for which to return the text part after it. The index
+ character will not be part of the returned string. The valid range is 0..length.
+ Refer to @ref _specialOffsets
+ "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
+ for information about special offsets that can be used in %IAccessibleText methods.
+ @param [in] boundaryType
+ The type of the text portion to return. See ::IA2TextBoundaryType for the complete
+ list.
+ @param [out] startOffset
+ 0 based offset of first character.
+ @param [out] endOffset
+ 0 based offset of one past the last character.
+ @param [out] text
+ Returns the requested text portion. This portion may be empty or invalid when
+ no appropriate text portion is found or text type is invalid.
+ @retval S_OK
+ @retval S_FALSE if the requested boundary type is not implemented, such as
+ ::IA2_TEXT_BOUNDARY_SENTENCE, or if there is nothing to return;
+ [out] values are 0s and NULL respectively
+ @retval E_INVALIDARG if bad [in] passed
+ */
+ [propget] HRESULT textAfterOffset
+ (
+ [in] long offset,
+ [in] enum IA2TextBoundaryType boundaryType,
+ [out] long *startOffset,
+ [out] long *endOffset,
+ [out, retval] BSTR *text
+ );
+
+ /** @brief Returns a text portion that spans the given position.
+
+ Returns the substring defined by the specified boundary type at the specified
+ offset. Refer to IA2TextBoundaryType for more details.
+
+ For the word boundary type the returned string will contain the word at the
+ offset if the offset is inside a word and will contain the word before the
+ offset if the offset is not inside a word. All offsets from the first to the
+ last characters of a word are considered inside the word. Boundary types of
+ sentence and paragraph should exhibit similar behavior.
+
+ If the index is valid, but no text is found, S_FALSE is returned along with out
+ values of 0, 0, and a NULL pointer. This would happen for boundary types other
+ than character when the text consists entirely of whitespace.
+
+ @param [in] offset
+ Index of the character for which to return the text part it belongs to. The valid
+ range is 0..length.
+ Refer to @ref _specialOffsets
+ "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
+ for information about special offsets that can be used in %IAccessibleText methods.
+ @param [in] boundaryType
+ The type of the text portion to return. See ::IA2TextBoundaryType for the complete
+ list.
+ @param [out] startOffset
+ 0 based offset of first character.
+ @param [out] endOffset
+ 0 based offset of one past the last character.
+ @param [out] text
+ Returns the requested text portion. This portion may be empty or invalid when
+ no appropriate text portion is found or text type is invalid.
+ @retval S_OK
+ @retval S_FALSE if the requested boundary type is not implemented, such as
+ ::IA2_TEXT_BOUNDARY_SENTENCE, or if there is nothing to return;
+ [out] values are 0s and NULL respectively
+ @retval E_INVALIDARG if bad [in] passed
+ */
+ [propget] HRESULT textAtOffset
+ (
+ [in] long offset,
+ [in] enum IA2TextBoundaryType boundaryType,
+ [out] long *startOffset,
+ [out] long *endOffset,
+ [out, retval] BSTR *text
+ );
+
+ /** @brief Unselects a range of text.
+ @param [in] selectionIndex
+ Index of selection to remove (0 based).
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed
+ */
+ HRESULT removeSelection
+ (
+ [in] long selectionIndex
+ );
+
+ /** @brief Sets the position of the caret.
+
+ The caret position/offset is that of the character logically following it,
+ e.g. to the right of it in a left to right language.
+
+ Setting the caret position may or may not alter the current selection. A
+ change of the selection is notified to the accessibility event listeners with
+ an ::IA2_EVENT_TEXT_SELECTION_CHANGED event.
+
+ When the new caret position differs from the old one (which, of course, is the
+ standard case) this is notified to the accessibility event listeners with an
+ ::IA2_EVENT_TEXT_CARET_MOVED event.
+ @param [in] offset
+ The new index of the caret. This caret is actually placed to the left side of
+ the character with that index. An index of 0 places the caret so that the next
+ insertion goes before the first character. An index of IAccessibleText::nCharacters
+ leads to insertion after the last character. Refer to @ref _specialOffsets
+ "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
+ for information about special offsets that can be used in %IAccessibleText methods.
+ @retval S_OK
+ @retval E_FAIL if the caret cannot be set
+ @retval E_INVALIDARG if bad [in] passed
+ */
+ HRESULT setCaretOffset
+ (
+ [in] long offset
+ );
+
+ /** @brief Changes the bounds of an existing selection.
+ @param [in] selectionIndex
+ Index of selection to change (0 based)
+ @param [in] startOffset
+ New starting offset (0 based)
+ @param [in] endOffset
+ New ending offset (0 based) - the offset of the character just past the last character of the selection.
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed
+ @note Refer to @ref _specialOffsets
+ "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
+ for information about special offsets that can be used in %IAccessibleText methods.
+ */
+ HRESULT setSelection
+ (
+ [in] long selectionIndex,
+ [in] long startOffset,
+ [in] long endOffset
+ );
+
+ /** @brief Returns total number of characters.
+
+ Note that this may be different than the total number of bytes required to store the
+ text, if the text contains multi-byte characters.
+ @param [out] nCharacters
+ @retval S_OK
+ */
+ [propget] HRESULT nCharacters
+ (
+ [out, retval] long *nCharacters
+ );
+
+ /** @brief Makes a specific part of string visible on screen.
+ @param [in] startIndex
+ 0 based character offset.
+ @param [in] endIndex
+ 0 based character offset - the offset of the character just past the last character of the string.
+ @param [in] scrollType
+ Defines where the object should be placed on the screen.
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed
+ @note Refer to @ref _specialOffsets
+ "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
+ for information about special offsets that can be used in %IAccessibleText methods.
+ */
+ HRESULT scrollSubstringTo
+ (
+ [in] long startIndex,
+ [in] long endIndex,
+ [in] enum IA2ScrollType scrollType
+ );
+
+ /** @brief Moves the top left of a substring to a specified location.
+
+ @param [in] startIndex
+ 0 based character offset.
+ @param [in] endIndex
+ 0 based character offset - the offset of the character just past the last character of the string.
+ @param [in] coordinateType
+ Specifies whether the coordinates are relative to the screen or the parent object.
+ @param [in] x
+ Defines the x coordinate.
+ @param [in] y
+ Defines the y coordinate.
+ @retval S_OK
+ @retval S_FALSE if the object is already at the specified location.
+ @retval E_INVALIDARG if bad [in] passed
+ @note Refer to @ref _specialOffsets
+ "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
+ for information about special offsets that can be used in %IAccessibleText methods.
+ */
+ HRESULT scrollSubstringToPoint
+ (
+ [in] long startIndex,
+ [in] long endIndex,
+ [in] enum IA2CoordinateType coordinateType,
+ [in] long x,
+ [in] long y
+ );
+
+ /** @brief Returns any inserted text.
+
+ Provided for use by the ::IA2_EVENT_TEXT_INSERTED and ::IA2_EVENT_TEXT_UPDATED
+ event handlers.
+
+ This data is only guaranteed to be valid while the thread notifying the event
+ continues. Once the handler has returned, the validity of the data depends on
+ how the server manages the life cycle of its objects. Also, note that the server
+ may have different life cycle management strategies for controls depending on
+ whether or not a control manages its children. Lists, trees, and tables can have
+ a large number of children and thus it's possible that the child objects for those
+ controls would only be created as needed. Servers should document their life cycle
+ strategy as this will be of interest to assistive technology or script engines
+ accessing data out of process or from other threads. Servers only need to save the
+ last inserted block of text and a scope of the entire application is adequate.
+
+ @param [out] newText
+ The text that was just inserted.
+ @retval S_OK
+ @retval S_FALSE If there is nothing to return, the values of IA2TextSegment
+ struct are set as follows: text = NULL, start = 0, end = 0.
+
+ */
+ [propget] HRESULT newText
+ (
+ [out, retval] IA2TextSegment *newText
+ );
+
+ /** @brief Returns any removed text.
+
+ Provided for use by the IA2_EVENT_TEXT_REMOVED/UPDATED event handlers.
+
+ This data is only guaranteed to be valid while the thread notifying the event
+ continues. Once the handler has returned, the validity of the data depends on
+ how the server manages the life cycle of its objects. Also, note that the server
+ may have different life cycle management strategies for controls depending on
+ whether or not a control manages its children. Lists, trees, and tables can have
+ a large number of children and thus it's possible that the child objects for those
+ controls would only be created as needed. Servers should document their life cycle
+ strategy as this will be of interest to assistive technology or script engines
+ accessing data out of process or from other threads. Servers only need to save the
+ last removed block of text and a scope of the entire application is adequate.
+
+ @param [out] oldText
+ The text that was just removed.
+ @retval S_OK
+ @retval S_FALSE If there is nothing to return, the values of IA2TextSegment
+ struct are set as follows: text = NULL, start = 0, end = 0.
+ */
+ [propget] HRESULT oldText
+ (
+ [out, retval] IA2TextSegment *oldText
+ );
+
+}
+/*************************************************************************
+ *
+ * File Name (AccessibleText2.idl)
+ *
+ * IAccessible2 IDL Specification
+ *
+ * Copyright (c) 2007, 2013 Linux Foundation
+ * Copyright (c) 2006 IBM Corporation
+ * Copyright (c) 2000, 2006 Sun Microsystems, Inc.
+ * All rights reserved.
+ *
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * 3. Neither the name of the Linux Foundation nor the names of its
+ * contributors may be used to endorse or promote products
+ * derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * This BSD License conforms to the Open Source Initiative "Simplified
+ * BSD License" as published at:
+ * http://www.opensource.org/licenses/bsd-license.php
+ *
+ * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
+ * mark may be used in accordance with the Linux Foundation Trademark
+ * Policy to indicate compliance with the IAccessible2 specification.
+ *
+ ************************************************************************/
+
+
+
+
+
+
+
+/** @brief This interface gives read-only access to text.
+
+ The %IAccessibleText2 interface extends the functionality of the
+ %IAccessibleText interface.
+*/
+[object, uuid(9690A9CC-5C80-4DF5-852E-2D5AE4189A54)]
+interface IAccessibleText2 : IAccessibleText
+{
+
+ /** @brief Returns the range and of the specified set of attributes.
+
+ Return the range (start and end offsets) and text attributes that correspond
+ to the given attributes filter at the given offset.
+
+ @param [in] offset
+ The offset at which to search for the attributes specified in the filter.
+ @param [in] filter
+ The requested attribute names. The filter format is "attribute1, attribute2".
+ @param [out] startOffset
+ The starting (0-based) offset of the text containing the specified attributes.
+ @param [out] endOffset
+ The (0-based) offset one past the last character of the text containing the
+ specified attributes.
+ @param [out] attributeValues
+ The values of the requested attributes.
+ @retval S_OK
+ @retval S_FALSE if nothing to return, [out] values are -1, -1, NULL respectively.
+ @retval E_INVALIDARG if bad [in] passed.
+ */
+ [propget] HRESULT attributeRange
+ (
+ [in] long offset,
+ [in] BSTR filter,
+ [out] long *startOffset,
+ [out] long *endOffset,
+ [out, retval] BSTR *attributeValues
+ );
+
+}
+/*************************************************************************
+ *
+ * File Name (AccessibleEditableText.idl)
+ *
+ * IAccessible2 IDL Specification
+ *
+ * Copyright (c) 2007, 2012 Linux Foundation
+ * Copyright (c) 2006 IBM Corporation
+ * Copyright (c) 2000, 2006 Sun Microsystems, Inc.
+ * All rights reserved.
+ *
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * 3. Neither the name of the Linux Foundation nor the names of its
+ * contributors may be used to endorse or promote products
+ * derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * This BSD License conforms to the Open Source Initiative "Simplified
+ * BSD License" as published at:
+ * http://www.opensource.org/licenses/bsd-license.php
+ *
+ * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
+ * mark may be used in accordance with the Linux Foundation Trademark
+ * Policy to indicate compliance with the IAccessible2 specification.
+ *
+ ************************************************************************/
+
+
+
+
+
+
+/** @brief This interface provides clipboard capability to text objects.
+
+ This interface is typically used in conjunction with the IAccessibleText
+ interface and complements that interface with the additional capability of
+ clipboard operations. Note that even a read only text object can support
+ the copy capability so this interface is not limited to editable objects.
+
+ The substrings used with this interface are specified as follows:
+ If startOffset is less than endOffset, the substring starts with the
+ character at startOffset and ends with the character just before endOffset.
+ If endOffset is lower than startOffset, the result is the same as a call
+ with the two arguments exchanged. The whole text can be defined by passing
+ the indices zero and IAccessibleText::nCharacters. If both indices have the
+ same value, an empty string is defined.
+
+ Refer to the @ref _specialOffsets
+ "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
+ for information about a special offset constant that can be used in %IAccessibleEditableText methods.
+*/
+[object, uuid(A59AA09A-7011-4b65-939D-32B1FB5547E3)]
+interface IAccessibleEditableText : IUnknown
+{
+
+ /** @brief Copies the text range into the clipboard.
+
+ The selection is set to the specified offsets and then selection is copied into
+ the system clipboard.
+
+ @param [in] startOffset
+ Start index of the text to moved into the clipboard.
+ The valid range is 0..length.
+ @param [in] endOffset
+ End index of the text to moved into the clipboard.
+ The valid range is 0..length.
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed
+ @note Refer to @ref _specialOffsets
+ "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
+ for information about special offsets that can be used in %IAccessibleEditableText
+ methods.
+ @deprecated This function is available via the application's GUI.
+ */
+ HRESULT copyText
+ (
+ [in] long startOffset,
+ [in] long endOffset
+ );
+
+ /** @brief Deletes a range of text.
+
+ The text between and including the two given indices is deleted
+ from the text represented by this object.
+
+ @param [in] startOffset
+ Start index of the text to be deleted.
+ The valid range is 0..length.
+ @param [in] endOffset
+ End index of the text to be deleted.
+ The valid range is 0..length.
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed
+ @note Refer to @ref _specialOffsets
+ "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
+ for information about special offsets that can be used in %IAccessibleEditableText
+ methods.
+ */
+ HRESULT deleteText
+ (
+ [in] long startOffset,
+ [in] long endOffset
+ );
+
+ /** @brief Inserts text at the specified position.
+
+ The specified string is inserted at the given index into the text
+ represented by this object.
+
+ @param [in] offset
+ Index at which to insert the text.
+ The valid range is 0..length.
+ Refer to @ref _specialOffsets
+ "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
+ for information about special offsets that can be used in %IAccessibleEditableText
+ methods.
+ @param [in] text
+ Text that is inserted.
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed
+ */
+ HRESULT insertText
+ (
+ [in] long offset,
+ [in] BSTR *text
+ );
+
+ /** @brief Deletes a range of text and copies it to the clipboard.
+
+ The selection is set to the specified offsets, the selection is then copied into
+ the system clipboard, and then the selection is deleted.
+
+ @param [in] startOffset
+ Start index of the text to be deleted.
+ The valid range is 0..length.
+ @param [in] endOffset
+ End index of the text to be deleted.
+ The valid range is 0..length.
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed
+ @note Refer to @ref _specialOffsets
+ "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
+ for information about special offsets that can be used in %IAccessibleEditableText
+ methods.
+ @deprecated This function is available via the application's GUI.
+ */
+ HRESULT cutText
+ (
+ [in] long startOffset,
+ [in] long endOffset
+ );
+
+ /** @brief Pastes content from the clipboard.
+
+ Any existing selection is removed, the clipboard content is then pasted into
+ this object's text at the given offset. This method is similar to the insertText
+ method. If the index is not valid the system clipboard content is not inserted. The
+ behavior is the same as when Ctrl+V is used, i.e. the pasted contents are not
+ necessarily plain text.
+
+ @param [in] offset
+ Index at which to insert the content from the system clipboard into
+ the text represented by this object.
+ The valid range is 0..length.
+ Refer to @ref _specialOffsets
+ "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
+ for information about special offsets that can be used in %IAccessibleEditableText
+ methods.
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed
+ @deprecated This function is available via the application's GUI.
+ */
+ HRESULT pasteText
+ (
+ [in] long offset
+ );
+
+ /** @brief Replaces text.
+
+ The text between the two given indices is replaced by the specified
+ replacement string. This method is equivalent to calling first
+ IAccessibleEditableText::deleteText with the two indices and then
+ calling IAccessibleEditableText::insertText with the replacement text
+ at the start index.
+
+ @param [in] startOffset
+ Start index of the text to be replaced.
+ The valid range is 0..length.
+ @param [in] endOffset
+ End index of the text to be replaced.
+ The valid range is 0..length.
+ @param [in] text
+ The Text that replaces the text between the given indices.
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed
+ @note Refer to @ref _specialOffsets
+ "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
+ for information about special offsets that can be used in %IAccessibleEditableText
+ methods.
+ */
+ HRESULT replaceText
+ (
+ [in] long startOffset,
+ [in] long endOffset,
+ [in] BSTR *text
+ );
+
+ /** @brief Replaces the attributes of a text range by the given set of attributes.
+
+ Sets the attributes for the text between the two given indices. The old
+ attributes are replaced by the new list of attributes.
+
+ @param [in] startOffset
+ Start index of the text whose attributes are modified.
+ The valid range is 0..length.
+ @param [in] endOffset
+ End index of the text whose attributes are modified.
+ The valid range is 0..length.
+ @param [in] attributes
+ Set of attributes that replaces the old list of attributes of
+ the specified text portion.
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed
+ @note Refer to @ref _specialOffsets
+ "Special Offsets for use in the IAccessibleText and IAccessibleEditableText Methods"
+ for information about special offsets that can be used in %IAccessibleEditableText
+ methods.
+ */
+ HRESULT setAttributes
+ (
+ [in] long startOffset,
+ [in] long endOffset,
+ [in] BSTR *attributes
+ );
+}
+
+/*************************************************************************
+ *
+ * File Name (AccessibleHyperlink.idl)
+ *
+ * IAccessible2 IDL Specification
+ *
+ * Copyright (c) 2007, 2010 Linux Foundation
+ * Copyright (c) 2006 IBM Corporation
+ * Copyright (c) 2000, 2006 Sun Microsystems, Inc.
+ * All rights reserved.
+ *
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * 3. Neither the name of the Linux Foundation nor the names of its
+ * contributors may be used to endorse or promote products
+ * derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * This BSD License conforms to the Open Source Initiative "Simplified
+ * BSD License" as published at:
+ * http://www.opensource.org/licenses/bsd-license.php
+ *
+ * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
+ * mark may be used in accordance with the Linux Foundation Trademark
+ * Policy to indicate compliance with the IAccessible2 specification.
+ *
+ ************************************************************************/
+
+
+
+
+
+
+/** @brief This interface represents hyperlinks.
+
+ This interface represents a hyperlink associated with a single substring
+ of text or single non-text object. Non-text objects can have either a
+ single link or a collection of links such as when the non-text object is
+ an image map.
+
+ Linked objects and anchors are implementation dependent. This interface is derived
+ from IAccessibleAction. IAccessibleAction::nActions is one greater than the
+ maximum value for the indices used with the methods of this interface.
+
+ Furthermore, the object that implements this interface has to be connected
+ implicitly or explicitly with an object that implements IAccessibleText.
+ IAccessibleHyperlink::startIndex and IAccessibleHyperlink::endIndex are
+ indices with respect to the text exposed by IAccessibleText.
+
+ This interface provides access to a single object which can have multiple actions.
+ An example is an image map which is an image with multiple links each of which is
+ associated with a separate non-overlapping area of the image. This interface could
+ also be applied to other kinds of objects with multiple actions such as "smart tags"
+ which are objects, typically strings, which have multiple actions such as
+ "Activate URI", "Bookmark URI", etc.
+
+ An interesting use case is an image map where each area is associated with multiple
+ actions, e.g. an image map of smart tags. In this case you would have to implement
+ two levels of accessible hyperlinks. The first level hyperlinks would only implement
+ anchor and anchorTarget. The anchors would all reference the image object. The
+ anchorTargets would reference the second level accessible hyperlink objects. None
+ of the IAccessibleAction methods would be implemented on the first level hyperlink
+ objects. The second level hyperlink objects would implement the IAccessibleAction
+ methods. Their anchors would also reference the image object and their anchorTargets
+ would reference URLs or the objects that would be activated.
+
+ This use case demonstrates that in some cases there is no need for IAccessibleHyperlink
+ to derive from IAccessibleAction. As a result it may be removed in a later version of
+ the IDL and it is suggested that implementations should not rely on the inheritance.
+
+*/
+[object, uuid(01C20F2B-3DD2-400f-949F-AD00BDAB1D41)]
+interface IAccessibleHyperlink : IAccessibleAction
+{
+
+ /** @brief Returns an object that represents the link anchor, as appropriate
+ for the link at the specified index.
+ @param [in] index
+ A 0 based index identifies the anchor when, as in the case of an image map,
+ there is more than one link represented by this object. The valid maximal
+ index is indicated by IAccessibleAction::nActions.
+ @param [out] anchor
+ This is an implementation dependent value. For example, for a text link this
+ method could return the substring of the containing string where the substring
+ is overridden with link behavior, and for an image link this method could return
+ an IUnknown VARIANT for IAccessibleImage. See the section about
+ @ref _variants "VARIANTs" for additional information.
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed
+ */
+ [propget] HRESULT anchor
+ (
+ [in] long index,
+ [out, retval] VARIANT *anchor
+ );
+
+ /** @brief Returns an object representing the target of the link, as appropriate
+ for the link at the specified index.
+ @param [in] index
+ A 0 based index identifies the anchor when, as in the case of an image map,
+ there is more than one link represented by this object. The valid maximal
+ index is indicated by IAccessibleAction::nActions.
+ @param [out] anchorTarget
+ This is an implementation dependent value. For example this method could
+ return a BSTR VARIANT of the URI. Alternatively this method could return an
+ IUnknown VARIANT of a COM interface representing a target object to be
+ activated when the link is activated. See the section about
+ @ref _variants "VARIANTs" for additional information.
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed
+ */
+ [propget] HRESULT anchorTarget
+ (
+ [in] long index,
+ [out, retval] VARIANT *anchorTarget
+ );
+
+ /** @brief Returns the 0 based character offset at which the textual representation of the hyperlink starts.
+
+ The returned value is related to the IAccessibleText interface of the object that
+ owns this hyperlink.
+ @param [out] index
+ @retval S_OK
+ */
+ [propget] HRESULT startIndex
+ (
+ [out, retval] long *index
+ );
+
+ /** @brief Returns the 0 based character offset at which the textual representation of the hyperlink ends.
+
+ The returned value is related to the IAccessibleText interface of the object that
+ owns this hyperlink. The character at the index is not part of the hypertext.
+ @param [out] index
+ @retval S_OK
+ */
+ [propget] HRESULT endIndex
+ (
+ [out, retval] long *index
+ );
+
+ /** @brief Returns whether the target object referenced by this link is still valid.
+
+ This is a volatile state that may change without sending an appropriate event.
+ Returns TRUE if the referenced target is still valid and FALSE otherwise.
+
+ This has also been used to indicate whether or not the URI of the anchorTarget
+ is malformed.
+
+ @param [out] valid
+ If false, one or more of the object's links are invalid.
+ If true, all of the object's links are valid.
+ @retval S_OK
+ @retval S_FALSE if there is nothing to return, [out] value is FALSE
+ @note This method is not being used, is deprecated, and should not be implemented or
+ used. It is likely that this method will be removed in a later version of the IDL.
+ */
+ [propget] HRESULT valid
+ (
+ [out, retval] boolean *valid
+ );
+}
+/*************************************************************************
+ *
+ * File Name (AccessibleHypertext.idl)
+ *
+ * IAccessible2 IDL Specification
+ *
+ * Copyright (c) 2007, 2010 Linux Foundation
+ * Copyright (c) 2006 IBM Corporation
+ * Copyright (c) 2000, 2006 Sun Microsystems, Inc.
+ * All rights reserved.
+ *
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * 3. Neither the name of the Linux Foundation nor the names of its
+ * contributors may be used to endorse or promote products
+ * derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * This BSD License conforms to the Open Source Initiative "Simplified
+ * BSD License" as published at:
+ * http://www.opensource.org/licenses/bsd-license.php
+ *
+ * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
+ * mark may be used in accordance with the Linux Foundation Trademark
+ * Policy to indicate compliance with the IAccessible2 specification.
+ *
+ ************************************************************************/
+
+
+
+
+
+
+
+/** @brief This interface exposes information about hypertext in a document.
+
+ The %IAccessibleHypertext interface is the main interface to expose
+ hyperlinks in a document, typically a text document, that are used
+ to reference other documents. A typical implementation is to implement
+ this interface on the smallest text object such as a paragraph of text.
+*/
+[object, uuid(6B4F8BBF-F1F2-418a-B35E-A195BC4103B9)]
+interface IAccessibleHypertext : IAccessibleText
+{
+
+ /** @brief Returns the number of links and link groups contained within this hypertext
+ paragraph.
+ @param [out] hyperlinkCount
+ The number of links and link groups within this hypertext paragraph.
+ Returns 0 if there is no link.
+ @retval S_OK
+ */
+ [propget] HRESULT nHyperlinks
+ (
+ [out, retval] long *hyperlinkCount
+ );
+
+ /** @brief Returns the specified link.
+
+ The returned IAccessibleHyperlink object encapsulates the hyperlink and
+ provides several kinds of information describing it.
+ @param [in] index
+ This 0 based index specifies the hyperlink to return.
+ @param [out] hyperlink
+ If the given index is valid, i.e. lies in the interval from 0 to the number
+ of links minus one, a reference to the specified hyperlink object is returned.
+ If the index is invalid then a NULL pointer is returned.
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed
+ */
+ [propget] HRESULT hyperlink
+ (
+ [in] long index,
+ [out, retval] IAccessibleHyperlink **hyperlink
+ );
+
+ /** @brief Returns the index of the hyperlink that is associated with this character index.
+
+ This is the case when a link spans the given character index.
+ @param [in] charIndex
+ A 0 based index of the character for which to return the link index. If
+ IAccessibleText is used to represent the text containing the link, then the
+ character index is only valid if it is greater than or equal to zero and
+ lower than the number of characters in the text.
+ @param [out] hyperlinkIndex
+ Returns the 0 based index of the hyperlink that is associated with this
+ character index, or -1 if charIndex is not on a link.
+ @retval S_OK
+ @retval S_FALSE if there is nothing to return, [out] value is -1
+ @retval E_INVALIDARG if bad [in] passed
+ */
+ [propget] HRESULT hyperlinkIndex
+ (
+ [in] long charIndex,
+ [out, retval] long *hyperlinkIndex
+ );
+
+}
+/*************************************************************************
+ *
+ * File Name (AccessibleHypertext2.idl)
+ *
+ * IAccessible2 IDL Specification
+ *
+ * Copyright (c) 2007, 2013 Linux Foundation
+ * Copyright (c) 2006 IBM Corporation
+ * Copyright (c) 2000, 2006 Sun Microsystems, Inc.
+ * All rights reserved.
+ *
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * 3. Neither the name of the Linux Foundation nor the names of its
+ * contributors may be used to endorse or promote products
+ * derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * This BSD License conforms to the Open Source Initiative "Simplified
+ * BSD License" as published at:
+ * http://www.opensource.org/licenses/bsd-license.php
+ *
+ * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
+ * mark may be used in accordance with the Linux Foundation Trademark
+ * Policy to indicate compliance with the IAccessible2 specification.
+ *
+ ************************************************************************/
+
+
+
+
+
+
+
+/** @brief This interface exposes information about hypertext in a document.
+
+ The %IAccessibleHypertext2 interface extends the functinality of the
+ %IAccessibleHypertext inteface.
+*/
+[object, uuid(CF64D89F-8287-4B44-8501-A827453A6077)]
+interface IAccessibleHypertext2 : IAccessibleHypertext
+{
+
+ /** @brief Returns the links for this object.
+
+ The returned IAccessibleHyperlink objects encapsulate the hyperlink and
+ provides several kinds of information describing it.
+
+ @param [out] hyperlinks
+ This array is allocated by the server. The client must free it with CoTaskMemFree.
+ @param [out] nHyperlinks
+ The number of links returned; the size of the returned array.
+ @retval S_OK
+ @retval S_FALSE if there are no links, [out] values are NULL and 0 respectively
+ */
+ [propget] HRESULT hyperlinks
+ (
+ [out, size_is(,*nHyperlinks)] IAccessibleHyperlink ***hyperlinks,
+ [out, retval] long *nHyperlinks
+ );
+
+}
+/*************************************************************************
+ *
+ * File Name (AccessibleTable.idl)
+ *
+ * IAccessible2 IDL Specification
+ *
+ * Copyright (c) 2007, 2013 Linux Foundation
+ * Copyright (c) 2006 IBM Corporation
+ * Copyright (c) 2000, 2006 Sun Microsystems, Inc.
+ * All rights reserved.
+ *
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * 3. Neither the name of the Linux Foundation nor the names of its
+ * contributors may be used to endorse or promote products
+ * derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * This BSD License conforms to the Open Source Initiative "Simplified
+ * BSD License" as published at:
+ * http://www.opensource.org/licenses/bsd-license.php
+ *
+ * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
+ * mark may be used in accordance with the Linux Foundation Trademark
+ * Policy to indicate compliance with the IAccessible2 specification.
+ *
+ ************************************************************************/
+
+
+
+
+
+
+
+/** @brief This interface gives access to a two-dimensional table.
+
+ Typically all accessible objects that represent cells or cell-clusters of a table
+ will be at the same time children of the table. In this case IAccessible2::indexInParent
+ will return the child index which then can be used when calling IAccessibleTable::rowIndex
+ and IAccessibleTable::columnIndex.
+
+ However, in some cases that kind of implementation will not be possible. When
+ the table cells are not direct children of a table, the object representing
+ the cell can define a "table-cell-index" object attribute identifying the 0
+ based table cell index. This object attribute is obtained by parsing the
+ attribute string returned by IAccessible2::attributes. The "table-cell-index"
+ attribute can be used just like a child index of the typical case. ATs should
+ first test for the presence of the "table-cell-index" attribute and if it is not
+ present then IAccessible2::indexInParent can be used as in the typical case
+ where cells are direct children of the table.
+
+ The range of valid coordinates for this interface are implementation dependent.
+ However, that range includes at least the intervals from the from the first row
+ or column with the index 0 up to the last (but not including) used row or column
+ as returned by IAccessibleTable::nRows and IAccessibleTable::nColumns.
+
+ Note that newer implementations are now using IAccessibleTable2 and IAccessibleTableCell
+ rather than this interface.
+*/
+[object, uuid(35AD8070-C20C-4fb4-B094-F4F7275DD469)]
+interface IAccessibleTable : IUnknown
+{
+
+ /** @brief Returns the accessible object at the specified row and column in
+ the table. This object could be an IAccessible or an IAccessible2.
+ @param [in] row
+ The 0 based row index for which to retrieve the cell.
+ @param [in] column
+ The 0 based column index for which to retrieve the cell.
+ @param [out] accessible
+ If both row and column index are valid then the corresponding accessible
+ object is returned that represents the requested cell regardless of whether
+ the cell is currently visible (on the screen).
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed, [out] value is NULL
+ */
+ [propget] HRESULT accessibleAt
+ (
+ [in] long row,
+ [in] long column,
+ [out, retval] IUnknown **accessible
+ );
+
+ /** @brief Returns the caption for the table. The returned object could be
+ an IAccessible or an IAccessible2.
+ @param [out] accessible
+ If the table has a caption then a reference to it is returned, else a NULL
+ pointer is returned.
+ @retval S_OK
+ @retval S_FALSE if there is nothing to return, [out] value is NULL
+ */
+ [propget] HRESULT caption
+ (
+ [out, retval] IUnknown **accessible
+ );
+
+ /** @brief Translates the given row and column indexes into the corresponding cell index.
+ @param [in] rowIndex
+ 0 based row index for the cell.
+ @param [in] columnIndex
+ 0 based column index for the cell.
+ @param [out] cellIndex
+ Returns the 0 based index of the cell at the specified row and column indexes.
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed, [out] value is 0
+ @note The returned value is not necessarily a child index of the immediate parent.
+ In cases where the table cells are not direct children of the table the index
+ is actually the cell index, i.e. conceptually it's an index into a one dimensional
+ array of cells laid out in row order.
+ */
+ [propget] HRESULT childIndex
+ (
+ [in] long rowIndex,
+ [in] long columnIndex,
+ [out, retval] long *cellIndex
+ );
+
+ /** @brief Returns the description text of the specified column in the table.
+ @param [in] column
+ The 0 based index of the column for which to retrieve the description.
+ @param [out] description
+ Returns the description text of the specified column in the table if such a
+ description exists. Otherwise a NULL pointer is returned.
+ @retval S_OK
+ @retval S_FALSE if there is nothing to return, [out] value is NULL
+ @retval E_INVALIDARG if bad [in] passed, [out] value is NULL
+ */
+ [propget] HRESULT columnDescription
+ (
+ [in] long column,
+ [out, retval] BSTR *description
+ );
+
+ /** @brief Returns the number of columns occupied by the accessible object
+ at the specified row and column in the table.
+
+ The result is greater than 1 if the specified cell spans multiple columns.
+ @param [in] row
+ 0 based row index of the accessible for which to return the column extent.
+ @param [in] column
+ 0 based column index of the accessible for which to return the column extent.
+ @param [out] nColumnsSpanned
+ Returns the 1 based column extent of the specified cell.
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed, [out] value is 0
+ */
+ [propget] HRESULT columnExtentAt
+ (
+ [in] long row,
+ [in] long column,
+ [out, retval] long *nColumnsSpanned
+ );
+
+ /** @brief Returns the column headers as an %IAccessibleTable object.
+
+ Content and size of the returned table are implementation dependent.
+ @param [out] accessibleTable
+ The column header
+ @param [out] startingRowIndex
+ The 0 based row index where the header starts, usually 0.
+ @retval S_OK
+ @retval S_FALSE if there is no header, [out] values are NULL and 0 respectively
+ */
+ [propget] HRESULT columnHeader
+ (
+ [out] IAccessibleTable **accessibleTable,
+ [out, retval] long *startingRowIndex
+ );
+
+ /** @brief Translates the given cell index into the corresponding column index.
+ @param [in] cellIndex
+ 0 based index of the cell in the parent or closest ancestor table. Typically this
+ is the value returned from IAccessible2::indexInParent, but in the case where the
+ table cells are not direct children of the table this is the cell index specified
+ by the "table-cell-index" object attribute obtained from parsing the attributes
+ string returned by calling IAccessible2::attributes on the cell object.
+ @param [out] columnIndex
+ Returns the 0 based column index of the cell of the specified child or the index of
+ the first column if the child spans multiple columns.
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed, [out] value is 0
+ */
+ [propget] HRESULT columnIndex
+ (
+ [in] long cellIndex,
+ [out, retval] long *columnIndex
+ );
+
+ /** @brief Returns the total number of columns in table
+ @param [out] columnCount
+ Number of columns in table (including columns outside the current viewport)
+ @retval S_OK
+ */
+ [propget] HRESULT nColumns
+ (
+ [out, retval] long *columnCount
+ );
+
+ /** @brief Returns the total number of rows in table
+ @param [out] rowCount
+ Number of rows in table (including rows outside the current viewport)
+ @retval S_OK
+ */
+ [propget] HRESULT nRows
+ (
+ [out, retval] long *rowCount
+ );
+
+ /** @brief Returns the total number of selected cells
+ @param [out] cellCount
+ Number of cells currently selected
+ @retval S_OK
+ */
+ [propget] HRESULT nSelectedChildren
+ (
+ [out, retval] long *cellCount
+ );
+
+ /** @brief Returns the total number of selected columns
+ @param [out] columnCount
+ Number of columns currently selected
+ @retval S_OK
+ */
+ [propget] HRESULT nSelectedColumns
+ (
+ [out, retval] long *columnCount
+ );
+
+ /** @brief Returns the total number of selected rows
+ @param [out] rowCount
+ Number of rows currently selected
+ @retval S_OK
+ */
+ [propget] HRESULT nSelectedRows
+ (
+ [out, retval] long *rowCount
+ );
+
+ /** @brief Returns the description text of the specified row in the table.
+ @param [in] row
+ The 0 based index of the row for which to retrieve the description.
+ @param [out] description
+ Returns the description text of the specified row in the table if such a
+ description exists. Otherwise a NULL pointer is returned.
+ @retval S_OK
+ @retval S_FALSE if there is nothing to return, [out] value is NULL
+ @retval E_INVALIDARG if bad [in] passed, [out] value is NULL
+ */
+ [propget] HRESULT rowDescription
+ (
+ [in] long row,
+ [out, retval] BSTR *description
+ );
+
+ /** @brief Returns the number of rows occupied by the accessible object
+ at the specified row and column in the table.
+
+ The result is greater than 1 if the specified cell spans multiple rows.
+ @param [in] row
+ 0 based row index of the accessible for which to return the row extent.
+ @param [in] column
+ 0 based column index of the accessible for which to return the row extent.
+ @param [out] nRowsSpanned
+ Returns the row extent of the specified cell.
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed, [out] value is 0
+ */
+ [propget] HRESULT rowExtentAt
+ (
+ [in] long row,
+ [in] long column,
+ [out, retval] long *nRowsSpanned
+ );
+
+ /** @brief Returns the row headers as an %IAccessibleTable object.
+
+ Content and size of the returned table are implementation dependent.
+ @param [out] accessibleTable
+ The row header.
+ @param [out] startingColumnIndex
+ The 0 based column index where the header starts, usually 0.
+ @retval S_OK
+ @retval S_FALSE if there is no header, [out] values are NULL and 0 respectively
+ */
+ [propget] HRESULT rowHeader
+ (
+ [out] IAccessibleTable **accessibleTable,
+ [out, retval] long *startingColumnIndex
+ );
+
+ /** @brief Translates the given cell index into a row index.
+ @param [in] cellIndex
+ 0 based index of the cell in the parent or closest ancestor table. Typically this
+ is the value returned from IAccessible2::indexInParent, but in the case where the
+ table cells are not direct children of the table this is the cell index specified
+ by the "table-cell-index" object attribute obtained from parsing the attributes
+ string returned by calling IAccessible2::attributes on the cell object.
+ @param [out] rowIndex
+ 0 based row index
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed, [out] value is 0
+ */
+ [propget] HRESULT rowIndex
+ (
+ [in] long cellIndex,
+ [out, retval] long *rowIndex
+ );
+
+ /** @brief Returns a list of cell indexes currently selected (0 based).
+ @param [in] maxChildren
+ This parameter is ignored. Refer to @ref _arrayConsideration
+ "Special Consideration when using Arrays" for more details.
+ @param [out] children
+ An array of cell indexes of selected cells (each index is 0 based),
+ allocated by the server. The client must free it with CoTaskMemFree.
+ @param [out] nChildren
+ The number of cell indexes returned; the size of the returned array.
+ @retval S_OK
+ @retval S_FALSE if there are none, [out] values are NULL and 0 respectively
+ */
+ [propget] HRESULT selectedChildren
+ (
+ [in] long maxChildren,
+ [out, size_is(,maxChildren), length_is(,*nChildren)] long **children,
+ [out, retval] long *nChildren
+ );
+
+ /** @brief Returns a list of column indexes currently selected (0 based).
+ @param [in] maxColumns
+ This parameter is ignored. Refer to @ref _arrayConsideration
+ "Special Consideration when using Arrays" for more details.
+ @param [out] columns
+ An array of column indexes of selected columns (each index is 0 based), allocated
+ by the server. The client must free it with CoTaskMemFree.
+ @param [out] nColumns
+ The number of column indexes returned; the size of the returned array.
+ @retval S_OK
+ @retval S_FALSE if there are none, [out] values are NULL and 0 respectively
+ */
+ [propget] HRESULT selectedColumns
+ (
+ [in] long maxColumns,
+ [out, size_is(,maxColumns), length_is(,*nColumns)] long **columns,
+ [out, retval] long *nColumns
+ );
+
+ /** @brief Returns a list of row indexes currently selected (0 based).
+ @param [in] maxRows
+ This parameter is ignored. Refer to @ref _arrayConsideration
+ "Special Consideration when using Arrays" for more details.
+ @param [out] rows
+ An array of row indexes of selected rows (each index is 0 based), allocated
+ by the server. The client must free it with CoTaskMemFree.
+ @param [out] nRows
+ The number of row indexes returned; the size of the returned array.
+ @retval S_OK
+ @retval S_FALSE if there are none, [out] values are NULL and 0 respectively
+ */
+ [propget] HRESULT selectedRows
+ (
+ [in] long maxRows,
+ [out, size_is(,maxRows), length_is(,*nRows)] long **rows,
+ [out, retval] long *nRows
+ );
+
+ /** @brief Returns the summary description of the table. The returned object could be
+ an IAccessible or an IAccessible2.
+ @param [out] accessible
+ Returns a reference to an implementation dependent accessible object
+ representing the table's summary or a NULL pointer if the table
+ does not support a summary.
+ @retval S_OK
+ @retval S_FALSE if there is nothing to return, [out] value is NULL
+ */
+ [propget] HRESULT summary
+ (
+ [out, retval] IUnknown **accessible
+ );
+
+ /** @brief Returns a boolean value indicating whether the specified column is
+ completely selected.
+ @param [in] column
+ 0 based index of the column for which to determine whether it is selected.
+ @param [out] isSelected
+ Returns TRUE if the specified column is selected completely and FALSE otherwise.
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed, [out] value is FALSE
+ */
+ [propget] HRESULT isColumnSelected
+ (
+ [in] long column,
+ [out, retval] boolean *isSelected
+ );
+
+ /** @brief Returns a boolean value indicating whether the specified row is completely
+ selected.
+ @param [in] row
+ 0 based index of the row for which to determine whether it is selected.
+ @param [out] isSelected
+ Returns TRUE if the specified row is selected completely and FALSE otherwise.
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed, [out] value is FALSE
+ */
+ [propget] HRESULT isRowSelected
+ (
+ [in] long row,
+ [out, retval] boolean *isSelected
+ );
+
+ /** @brief Returns a boolean value indicating whether the specified cell is selected.
+ @param [in] row
+ 0 based index of the row for the cell to determine whether it is selected.
+ @param [in] column
+ 0 based index of the column for the cell to determine whether it is selected.
+ @param [out] isSelected
+ Returns TRUE if the specified cell is selected and FALSE otherwise.
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed, [out] value is FALSE
+ */
+ [propget] HRESULT isSelected
+ (
+ [in] long row,
+ [in] long column,
+ [out, retval] boolean *isSelected
+ );
+
+ /** @brief Selects a row and unselects all previously selected rows.
+ @param [in] row
+ 0 based index of the row to be selected.
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed
+ */
+ HRESULT selectRow
+ (
+ [in] long row
+ );
+
+ /** @brief Selects a column and unselects all previously selected columns.
+ @param [in] column
+ 0 based index of the column to be selected.
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed
+ */
+ HRESULT selectColumn
+ (
+ [in] long column
+ );
+
+ /** @brief Unselects one row, leaving other selected rows selected (if any).
+ @param [in] row
+ 0 based index of the row to be unselected.
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed
+ */
+ HRESULT unselectRow
+ (
+ [in] long row
+ );
+
+ /** @brief Unselects one column, leaving other selected columns selected (if any).
+ @param [in] column
+ 0 based index of the column to be unselected.
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed
+ */
+ HRESULT unselectColumn
+ (
+ [in] long column
+ );
+
+ /** @brief Given a cell index, gets the row and column indexes and extents of a cell
+ and whether or not it is selected.
+
+ This is a convenience function. It is not mandatory to implement it.
+ @param [in] index
+ 0 based index of this cell in the table.
+ @param [out] row
+ 0 based row index.
+ @param [out] column
+ 0 based column index.
+ @param [out] rowExtents
+ Number of cells spanned by this cell in this row.
+ @param [out] columnExtents
+ Number of cells spanned by this cell in this column.
+ @param [out] isSelected
+ Indicates if the specified cell is selected.
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed, [out] values are 0s and FALSE respectively
+ */
+ [propget] HRESULT rowColumnExtentsAtIndex
+ (
+ [in] long index,
+ [out] long *row,
+ [out] long *column,
+ [out] long *rowExtents,
+ [out] long *columnExtents,
+ [out, retval] boolean *isSelected
+ );
+
+ /** @brief Returns the type and extents describing how a table changed.
+
+ Provided for use by the IA2_EVENT_TABLE_MODEL_CHANGED event handler.
+
+ This data is only guaranteed to be valid while the thread notifying the event
+ continues. Once the handler has returned, the validity of the data depends on
+ how the server manages the life cycle of its objects. Also, note that the server
+ may have different life cycle management strategies for controls depending on
+ whether or not a control manages its children. Lists, trees, and tables can have
+ a large number of children and thus it's possible that the child objects for those
+ controls would only be created as needed. Servers should document their life cycle
+ strategy as this will be of interest to assistive technology or script engines
+ accessing data out of process or from other threads. Servers only need to save the
+ most recent row and column values associated with the change and a scope of the
+ entire application is adequate.
+
+ @param [out] modelChange
+ A struct of (type(insert, delete, update), firstRow, lastRow, firstColumn, lastColumn).
+ @retval S_OK
+ @retval S_FALSE if there is nothing to return, [out] value is NULL
+ */
+ [propget] HRESULT modelChange
+ (
+ [out, retval] IA2TableModelChange *modelChange
+ );
+
+}
+/*************************************************************************
+ *
+ * File Name (AccessibleTable2.idl)
+ *
+ * IAccessible2 IDL Specification
+ *
+ * Copyright (c) 2007, 2012 Linux Foundation
+ * Copyright (c) 2006 IBM Corporation
+ * Copyright (c) 2000, 2006 Sun Microsystems, Inc.
+ * All rights reserved.
+ *
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * 3. Neither the name of the Linux Foundation nor the names of its
+ * contributors may be used to endorse or promote products
+ * derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * This BSD License conforms to the Open Source Initiative "Simplified
+ * BSD License" as published at:
+ * http://www.opensource.org/licenses/bsd-license.php
+ *
+ * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
+ * mark may be used in accordance with the Linux Foundation Trademark
+ * Policy to indicate compliance with the IAccessible2 specification.
+ *
+ ************************************************************************/
+
+
+
+
+
+
+
+/** @brief This interface gives access to a two-dimensional table.
+
+ Please also refer to the IAccessibleTableCell interface.
+
+ If you want to support older applications you should also support the
+ IAccessibleTable inteface.
+*/
+[object, uuid(6167f295-06f0-4cdd-a1fa-02e25153d869)]
+interface IAccessibleTable2 : IUnknown
+{
+
+ /** @brief Returns the accessible object at the specified row and column in
+ the table. This object could be an IAccessible or an IAccessible2.
+ @param [in] row
+ The 0 based row index for which to retrieve the cell.
+ @param [in] column
+ The 0 based column index for which to retrieve the cell.
+ @param [out] cell
+ If both row and column index are valid then the corresponding accessible
+ object is returned that represents the requested cell regardless of whether
+ the cell is currently visible (on the screen).
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed
+ */
+ [propget] HRESULT cellAt
+ (
+ [in] long row,
+ [in] long column,
+ [out, retval] IUnknown **cell
+ );
+
+ /** @brief Returns the caption for the table. The returned object could be
+ an IAccessible or an IAccessible2.
+ @param [out] accessible
+ If the table has a caption then a reference to it is returned, else a NULL
+ pointer is returned.
+ @retval S_OK
+ @retval S_FALSE if there is nothing to return, [out] value is NULL
+ @deprecated use a describedBy relation
+ */
+ [propget] HRESULT caption
+ (
+ [out, retval] IUnknown **accessible
+ );
+
+ /** @brief Returns the description text of the specified column in the table.
+ @param [in] column
+ The 0 based index of the column for which to retrieve the description.
+ @param [out] description
+ Returns the description text of the specified column in the table if such a
+ description exists. Otherwise a NULL pointer is returned.
+ @retval S_OK
+ @retval S_FALSE if there is nothing to return, [out] value is NULL
+ @retval E_INVALIDARG if bad [in] passed
+ */
+ [propget] HRESULT columnDescription
+ (
+ [in] long column,
+ [out, retval] BSTR *description
+ );
+
+
+ /** @brief Returns the total number of columns in table
+ @param [out] columnCount
+ Number of columns in table (including columns outside the current viewport)
+ @retval S_OK
+ */
+ [propget] HRESULT nColumns
+ (
+ [out, retval] long *columnCount
+ );
+
+ /** @brief Returns the total number of rows in table
+ @param [out] rowCount
+ Number of rows in table (including rows outside the current viewport)
+ @retval S_OK
+ */
+ [propget] HRESULT nRows
+ (
+ [out, retval] long *rowCount
+ );
+
+ /** @brief Returns the total number of selected cells
+ @param [out] cellCount
+ Number of cells currently selected
+ @retval S_OK
+ */
+ [propget] HRESULT nSelectedCells
+ (
+ [out, retval] long *cellCount
+ );
+
+ /** @brief Returns the total number of selected columns
+ @param [out] columnCount
+ Number of columns currently selected
+ @retval S_OK
+ */
+ [propget] HRESULT nSelectedColumns
+ (
+ [out, retval] long *columnCount
+ );
+
+ /** @brief Returns the total number of selected rows
+ @param [out] rowCount
+ Number of rows currently selected
+ @retval S_OK
+ */
+ [propget] HRESULT nSelectedRows
+ (
+ [out, retval] long *rowCount
+ );
+
+ /** @brief Returns the description text of the specified row in the table.
+ @param [in] row
+ The 0 based index of the row for which to retrieve the description.
+ @param [out] description
+ Returns the description text of the specified row in the table if such a
+ description exists. Otherwise a NULL pointer is returned.
+ @retval S_OK
+ @retval S_FALSE if there is nothing to return, [out] value is NULL
+ @retval E_INVALIDARG if bad [in] passed
+ */
+ [propget] HRESULT rowDescription
+ (
+ [in] long row,
+ [out, retval] BSTR *description
+ );
+
+ /** @brief Returns a list of accessibles currently selected.
+ @param [out] cells
+ Pointer to an array of references to selected accessibles. The array is
+ allocated by the server with CoTaskMemAlloc and freed by the client with
+ CoTaskMemFree.
+ @param [out] nSelectedCells
+ The number of accessibles returned; the size of the returned array.
+ @retval S_OK
+ @retval S_FALSE if there are none, [out] values are NULL and 0 respectively
+ */
+ [propget] HRESULT selectedCells
+ (
+ [out, size_is(,*nSelectedCells)] IUnknown ***cells,
+ [out, retval] long *nSelectedCells
+ );
+
+ /** @brief Returns a list of column indexes currently selected (0 based).
+ @param [out] selectedColumns
+ A pointer to an array of column indexes of selected columns (each index is
+ 0 based). The array is allocated by the server with CoTaskMemAlloc and
+ freed by the client with CoTaskMemFree.
+ @param [out] nColumns
+ The number of column indexes returned; the size of the returned array.
+ @retval S_OK
+ @retval S_FALSE if there are none, [out] values are NULL and 0 respectively
+ */
+ [propget] HRESULT selectedColumns
+ (
+ [out, size_is(,*nColumns)] long **selectedColumns,
+ [out, retval] long *nColumns
+ );
+
+ /** @brief Returns a list of row indexes currently selected (0 based).
+ @param [out] selectedRows
+ An array of row indexes of selected rows (each index is 0 based). The array
+ is allocated by the server with CoTaskMemAlloc and freed by the client with
+ CoTaskMemFree.
+ @param [out] nRows
+ The number of row indexes returned; the size of the returned array.
+ @retval S_OK
+ @retval S_FALSE if there are none, [out] values are NULL and 0 respectively
+ */
+ [propget] HRESULT selectedRows
+ (
+ [out, size_is(,*nRows)] long **selectedRows,
+ [out, retval] long *nRows
+ );
+
+ /** @brief Returns the summary description of the table. The returned object could be
+ an IAccessible or an IAccessible2.
+ @param [out] accessible
+ Returns a reference to an implementation dependent accessible object
+ representing the table's summary or a NULL pointer if the table
+ does not support a summary.
+ @retval S_OK
+ @retval S_FALSE if there is nothing to return, [out] value is NULL
+ @deprecated Use the labeledBy relation
+ */
+ [propget] HRESULT summary
+ (
+ [out, retval] IUnknown **accessible
+ );
+
+ /** @brief Returns a boolean value indicating whether the specified column is
+ completely selected.
+ @param [in] column
+ 0 based index of the column for which to determine whether it is selected.
+ @param [out] isSelected
+ Returns TRUE if the specified column is selected completely and FALSE otherwise.
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed
+ */
+ [propget] HRESULT isColumnSelected
+ (
+ [in] long column,
+ [out, retval] boolean *isSelected
+ );
+
+ /** @brief Returns a boolean value indicating whether the specified row is completely
+ selected.
+ @param [in] row
+ 0 based index of the row for which to determine whether it is selected.
+ @param [out] isSelected
+ Returns TRUE if the specified row is selected completely and FALSE otherwise.
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed
+ */
+ [propget] HRESULT isRowSelected
+ (
+ [in] long row,
+ [out, retval] boolean *isSelected
+ );
+
+ /** @brief Selects a row and unselects all previously selected rows.
+
+ The behavior should mimic that of the application, but for those applications
+ which do not have a means in the GUI to select a full row of cells the behavior
+ should be as follows: First any selected rows in the table are unselected. Then
+ the entire row of cells for the specified row is selected. If any of the
+ cells in the selected row span additional rows, the cells in those rows
+ are also selected.
+ @param [in] row
+ 0 based index of the row to be selected.
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed
+ */
+ HRESULT selectRow
+ (
+ [in] long row
+ );
+
+ /** @brief Selects a column and unselects all previously selected columns.
+
+ The behavior should mimic that of the application, but for those applications
+ which do not have a means in the GUI to select a full column of cells the behavior
+ should be as follows: First any selected columns in the table are unselected. Then
+ the entire column of cells for the specified column is selected. If any of the
+ cells in the selected column span additional columns, the cells in those columns
+ are also selected.
+ @param [in] column
+ 0 based index of the column to be selected.
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed
+ */
+ HRESULT selectColumn
+ (
+ [in] long column
+ );
+
+ /** @brief Unselects one row, leaving other selected rows selected (if any).
+
+ The behavior should mimic that of the application, but for those applications
+ which do not have a means in the GUI to unselect a full row of cells the
+ behavior should be as follows: The entire row of cells for the specified
+ row is unselected. If any of the cells in the selected row span additional
+ rows, the cells in those rows are also unselected.
+ @param [in] row
+ 0 based index of the row to be unselected.
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed
+ */
+ HRESULT unselectRow
+ (
+ [in] long row
+ );
+
+ /** @brief Unselects one column, leaving other selected columns selected (if any).
+
+ The behavior should mimic that of the application, but for those applications
+ which do not have a means in the GUI to unselect a full column of cells the
+ behavior should be as follows: The entire column of cells for the specified
+ column is unselected. If any of the cells in the selected column span additional
+ columns, the cells in those columns are also unselected.
+ @param [in] column
+ 0 based index of the column to be unselected.
+ @retval S_OK
+ @retval E_INVALIDARG if bad [in] passed
+ */
+ HRESULT unselectColumn
+ (
+ [in] long column
+ );
+
+ /** @brief Returns the type and extents describing how a table changed.
+
+ Provided for use by the IA2_EVENT_TABLE_MODEL_CHANGED event handler.
+
+ This data is only guaranteed to be valid while the thread notifying the event
+ continues. Once the handler has returned, the validity of the data depends on
+ how the server manages the life cycle of its objects. Also, note that the server
+ may have different life cycle management strategies for controls depending on
+ whether or not a control manages its children. Lists, trees, and tables can have
+ a large number of children and thus it's possible that the child objects for those
+ controls would only be created as needed. Servers should document their life cycle
+ strategy as this will be of interest to assistive technology or script engines
+ accessing data out of process or from other threads. Servers only need to save the
+ most recent row and column values associated with the change and a scope of the
+ entire application is adequate.
+
+ @param [out] modelChange
+ A struct of (type(insert, delete, update), firstRow, lastRow, firstColumn, lastColumn).
+ @retval S_OK
+ @retval S_FALSE if there is nothing to return, [out] value is NULL
+ */
+ [propget] HRESULT modelChange
+ (
+ [out, retval] IA2TableModelChange *modelChange
+ );
+
+}
+/*************************************************************************
+ *
+ * File Name (AccessibleTableCell.idl)
+ *
+ * IAccessible2 IDL Specification
+ *
+ * Copyright (c) 2007, 2013 Linux Foundation
+ * Copyright (c) 2006 IBM Corporation
+ * Copyright (c) 2000, 2006 Sun Microsystems, Inc.
+ * All rights reserved.
+ *
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * 3. Neither the name of the Linux Foundation nor the names of its
+ * contributors may be used to endorse or promote products
+ * derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * This BSD License conforms to the Open Source Initiative "Simplified
+ * BSD License" as published at:
+ * http://www.opensource.org/licenses/bsd-license.php
+ *
+ * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
+ * mark may be used in accordance with the Linux Foundation Trademark
+ * Policy to indicate compliance with the IAccessible2 specification.
+ *
+ ************************************************************************/
+
+
+
+
+
+
+/** @brief This interface gives access to the cells of a two-dimensional table.
+
+ Please also refer to the IAccessibleTable2 interface.
+
+*/
+[object, uuid(594116B1-C99F-4847-AD06-0A7A86ECE645)]
+interface IAccessibleTableCell : IUnknown
+{
+
+ /** @brief Returns the number of columns occupied by this cell accessible.
+
+ The result is greater than 1 if the specified cell spans multiple columns.
+ @param [out] nColumnsSpanned
+ Returns the 1 based column extent of the specified cell.
+ @retval S_OK
+ */
+ [propget] HRESULT columnExtent
+ (
+ [out, retval] long *nColumnsSpanned
+ );
+
+ /** @brief Returns the column headers as an array of cell accessibles.
+
+ @param [out] cellAccessibles
+ Pointer to an array of references to cell accessibles. The array is allocated
+ by the server. The client must free it with CoTaskMemFree.
+ @param [out] nColumnHeaderCells
+ The number of accessibles returned; the size of the returned array.
+ @retval S_OK
+ @retval S_FALSE if there is no header, [out] values are NULL and 0 respectively
+ */
+ [propget] HRESULT columnHeaderCells
+ (
+ [out, size_is(,*nColumnHeaderCells)] IUnknown ***cellAccessibles,
+ [out, retval] long *nColumnHeaderCells
+ );
+
+ /** @brief Translates this cell accessible into the corresponding column index.
+
+ @param [out] columnIndex
+ Returns the 0 based column index of the cell of the specified cell or the index of
+ the first column if the cell spans multiple columns.
+ @retval S_OK
+ */
+ [propget] HRESULT columnIndex
+ (
+ [out, retval] long *columnIndex
+ );
+
+ /** @brief Returns the number of rows occupied by this cell accessible.
+
+ @param [out] nRowsSpanned
+ Returns the row extent of the specified cell.
+ @retval S_OK
+ */
+ [propget] HRESULT rowExtent
+ (
+ [out, retval] long *nRowsSpanned
+ );
+
+ /** @brief Returns the row headers as an array of cell accessibles.
+
+ @param [out] cellAccessibles
+ Pointer to an array of references to cell accessibles. The array is allocated
+ by the server. The client must free it with CoTaskMemFree.
+ @param [out] nRowHeaderCells
+ The number of accessibles returned; the size of the returned array.
+ @retval S_OK
+ @retval S_FALSE if there is no header, [out] values are NULL and 0 respectively
+ */
+ [propget] HRESULT rowHeaderCells
+ (
+ [out, size_is(,*nRowHeaderCells)] IUnknown ***cellAccessibles,
+ [out, retval] long *nRowHeaderCells
+ );
+
+ /** @brief Translates this cell accessible into the corresponding row index.
+
+ @param [out] rowIndex
+ Returns the 0 based row index of the specified cell or the index of
+ the first row if the cell spans multiple rows.
+ @retval S_OK
+ */
+ [propget] HRESULT rowIndex
+ (
+ [out, retval] long *rowIndex
+ );
+
+ /** @brief Returns a boolean value indicating whether this cell is selected.
+
+ @param [out] isSelected
+ Returns TRUE if the specified cell is selected and FALSE otherwise.
+ @retval S_OK
+ */
+ [propget] HRESULT isSelected
+ (
+ [out, retval] boolean *isSelected
+ );
+
+ /** @brief Gets the row and column indexes and extents of this cell accessible
+ and whether or not it is selected.
+
+ This is a convenience function. It is not mandatory to implement it.
+ @param [out] row
+ 0 based row index.
+ @param [out] column
+ 0 based column index.
+ @param [out] rowExtents
+ Number of cells spanned by this cell in this row.
+ @param [out] columnExtents
+ Number of cells spanned by this cell in this column.
+ @param [out] isSelected
+ Indicates if the specified cell is selected.
+ @retval S_OK
+ */
+ [propget] HRESULT rowColumnExtents
+ (
+ [out] long *row,
+ [out] long *column,
+ [out] long *rowExtents,
+ [out] long *columnExtents,
+ [out, retval] boolean *isSelected
+ );
+
+ /** @brief Returns a reference to the accessbile of the containing table.
+
+ @param [out] table
+ Returns a reference to the IUnknown of the containing table.
+ @retval S_OK
+ */
+ [propget] HRESULT table
+ (
+ [out, retval] IUnknown **table
+ );
+
+}
+/*************************************************************************
+ *
+ * File Name (AccessibleImage.idl)
+ *
+ * IAccessible2 IDL Specification
+ *
+ * Copyright (c) 2007, 2010 Linux Foundation
+ * Copyright (c) 2006 IBM Corporation
+ * Copyright (c) 2000, 2006 Sun Microsystems, Inc.
+ * All rights reserved.
+ *
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * 3. Neither the name of the Linux Foundation nor the names of its
+ * contributors may be used to endorse or promote products
+ * derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * This BSD License conforms to the Open Source Initiative "Simplified
+ * BSD License" as published at:
+ * http://www.opensource.org/licenses/bsd-license.php
+ *
+ * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
+ * mark may be used in accordance with the Linux Foundation Trademark
+ * Policy to indicate compliance with the IAccessible2 specification.
+ *
+ ************************************************************************/
+
+
+
+
+
+
+/** @brief This interface represents images and icons.
+
+ This interface is used for a representation of images like icons on buttons.
+ %IAccessibleImage only needs to be implemented in certain situations. Some
+ examples are:
+ <ol>
+ <li>The accessible name and description are not enough to fully
+ describe the image, e.g. when the accessible description is used to define the
+ behavior of an actionable image and the image itself conveys semantically
+ significant information.
+ <li>The user can edit the content that includes an
+ image and therefore the user needs to be able to review the image's position.
+ </ol>
+*/
+[object, uuid(FE5ABB3D-615E-4f7b-909F-5F0EDA9E8DDE)]
+interface IAccessibleImage : IUnknown
+{
+ /** @brief Returns the localized description of the image.
+ @param [out] description
+ @retval S_OK
+ @retval S_FALSE if there is nothing to return, [out] value is NULL
+ */
+ [propget] HRESULT description
+ (
+ [out, retval] BSTR *description
+ );
+
+ /** @brief Returns the coordinates of the image.
+ @param [in] coordinateType
+ Specifies whether the returned coordinates should be relative to the screen or the parent object.
+ @param [out] x
+ @param [out] y
+ @retval S_OK
+ */
+ [propget] HRESULT imagePosition
+ (
+ [in] enum IA2CoordinateType coordinateType,
+ [out] long *x,
+ [out, retval] long *y
+ );
+
+ /** @brief Returns the size of the image in units specified by parent's coordinate system.
+ @param [out] height
+ @param [out] width
+ @retval S_OK
+ */
+
+ [propget] HRESULT imageSize
+ (
+ [out] long *height,
+ [out, retval] long *width
+ );
+}
+/*************************************************************************
+ *
+ * File Name (AccessibleEventID.idl)
+ *
+ * IAccessible2 IDL Specification
+ *
+ * Copyright (c) 2007, 2010 Linux Foundation
+ * Copyright (c) 2006 IBM Corporation
+ * Copyright (c) 2000, 2006 Sun Microsystems, Inc.
+ * All rights reserved.
+ *
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * 3. Neither the name of the Linux Foundation nor the names of its
+ * contributors may be used to endorse or promote products
+ * derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * This BSD License conforms to the Open Source Initiative "Simplified
+ * BSD License" as published at:
+ * http://www.opensource.org/licenses/bsd-license.php
+ *
+ * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
+ * mark may be used in accordance with the Linux Foundation Trademark
+ * Policy to indicate compliance with the IAccessible2 specification.
+ *
+ ************************************************************************/
+
+/** %IAccessible2 specific event constants
+
+ This enum defines the event IDs fired by %IAccessible2 objects. The event IDs
+ are in addition to those used by MSAA.
+*/
+enum IA2EventID {
+
+ /** The change of the number or attributes of actions of an accessible
+ object is signaled by events of this type.
+ */
+ IA2_EVENT_ACTION_CHANGED = 0x101,
+
+ /** <b>Deprecated.</b> The active descendant of a component has changed.
+
+ Note: This event constant is misspelled and thus is deprecated and will be
+ removed in a later version. Please use the correctly spelled version which
+ follows.
+ */
+ IA2_EVENT_ACTIVE_DECENDENT_CHANGED,
+
+ /** The active descendant of a component has changed. The active descendant
+ is used in objects with transient children.
+
+ Note: Due to the fact that MSAA's WinEvents don't allow the active child index
+ to be passed on the IA2_EVENT_ACTIVE_DESCENDANT_CHANGED event the manages
+ descendants scheme can't be used. Instead the active child object has to fire
+ MSAA's EVENT_OBJECT_FOCUS. In a future release a new event mechanism may be
+ added to provide for event specific data to be passed with the event. At that
+ time the IA2_EVENT_ACTIVE_DECENDENT_CHANGED event and
+ IA2_STATE_MANAGES_DESCENDANTS state would be useful.
+ */
+ IA2_EVENT_ACTIVE_DESCENDANT_CHANGED = IA2_EVENT_ACTIVE_DECENDENT_CHANGED,
+
+ /** The document wide attributes of the document object have changed.
+ */
+ IA2_EVENT_DOCUMENT_ATTRIBUTE_CHANGED,
+
+ /** The contents of the document have changed.
+ */
+ IA2_EVENT_DOCUMENT_CONTENT_CHANGED,
+
+ /** The loading of the document has completed.
+ */
+ IA2_EVENT_DOCUMENT_LOAD_COMPLETE,
+
+ /** The loading of the document was interrupted.
+ */
+ IA2_EVENT_DOCUMENT_LOAD_STOPPED,
+
+ /** The document contents are being reloaded.
+ */
+ IA2_EVENT_DOCUMENT_RELOAD,
+
+ /** The ending index of this link within the containing string has changed.
+ */
+ IA2_EVENT_HYPERLINK_END_INDEX_CHANGED,
+
+ /** The number of anchors associated with this hyperlink object has changed.
+ */
+ IA2_EVENT_HYPERLINK_NUMBER_OF_ANCHORS_CHANGED,
+
+ /** The hyperlink selected state changed from selected to unselected or
+ from unselected to selected.
+ */
+ IA2_EVENT_HYPERLINK_SELECTED_LINK_CHANGED,
+
+ /** One of the links associated with the hypertext object has been activated.
+ */
+ IA2_EVENT_HYPERTEXT_LINK_ACTIVATED,
+
+ /** One of the links associated with the hypertext object has been selected.
+ */
+ IA2_EVENT_HYPERTEXT_LINK_SELECTED,
+
+ /** The starting index of this link within the containing string has changed.
+ */
+ IA2_EVENT_HYPERLINK_START_INDEX_CHANGED,
+
+ /** Focus has changed from one hypertext object to another, or focus moved
+ from a non-hypertext object to a hypertext object, or focus moved from a
+ hypertext object to a non-hypertext object.
+ */
+ IA2_EVENT_HYPERTEXT_CHANGED,
+
+ /** The number of hyperlinks associated with a hypertext object changed
+ */
+ IA2_EVENT_HYPERTEXT_NLINKS_CHANGED,
+
+ /** An object's attributes changed.
+ Also see ::IA2_EVENT_TEXT_ATTRIBUTE_CHANGED.
+ */
+ IA2_EVENT_OBJECT_ATTRIBUTE_CHANGED,
+
+ /** A slide changed in a presentation document or a page boundary was
+ crossed in a word processing document.
+ */
+ IA2_EVENT_PAGE_CHANGED,
+
+ /** The caret moved from one section to the next.
+ */
+ IA2_EVENT_SECTION_CHANGED,
+
+ /** A table caption changed.
+ */
+ IA2_EVENT_TABLE_CAPTION_CHANGED,
+
+ /** A table's column description changed.
+ */
+ IA2_EVENT_TABLE_COLUMN_DESCRIPTION_CHANGED,
+
+ /** A table's column header changed.
+ */
+ IA2_EVENT_TABLE_COLUMN_HEADER_CHANGED,
+
+ /** A table's data changed.
+ */
+ IA2_EVENT_TABLE_MODEL_CHANGED,
+
+ /** A table's row description changed.
+ */
+ IA2_EVENT_TABLE_ROW_DESCRIPTION_CHANGED,
+
+ /** A table's row header changed.
+ */
+ IA2_EVENT_TABLE_ROW_HEADER_CHANGED,
+
+ /** A table's summary changed.
+ */
+ IA2_EVENT_TABLE_SUMMARY_CHANGED,
+
+ /** A text object's attributes changed.
+ Also see ::IA2_EVENT_OBJECT_ATTRIBUTE_CHANGED.
+ */
+ IA2_EVENT_TEXT_ATTRIBUTE_CHANGED,
+
+ /** The caret has moved to a new position.
+ */
+ IA2_EVENT_TEXT_CARET_MOVED,
+
+ /** <b>Deprecated.</b> This event is equivalent to ::IA2_EVENT_TEXT_UPDATED.
+ */
+ IA2_EVENT_TEXT_CHANGED,
+
+ /** The caret moved from one column to the next.
+ */
+ IA2_EVENT_TEXT_COLUMN_CHANGED,
+
+ /** Text was inserted.
+ */
+ IA2_EVENT_TEXT_INSERTED,
+
+ /** Text was removed.
+ */
+ IA2_EVENT_TEXT_REMOVED,
+
+ /** This event indicates general text changes, i.e. changes to text that are
+ exposed through the IAccessibleText interface. For compatibility with ATK/AT-SPI
+ which does not have an equivalent event, servers can alternatively fire
+ ::IA2_EVENT_TEXT_REMOVED and ::IA2_EVENT_TEXT_INSERTED.
+ */
+ IA2_EVENT_TEXT_UPDATED,
+
+ /** The text selection changed. Later versions of Microsoft development environments
+ have an equivalent event identified, EVENT_OBJECT_TEXTSELECTIONCHANGED. Servers
+ should use that if it is available and use IA2_EVENT_TEXT_SELECTION_CHANGED otherwise.
+ Clients should be prepared to respond to either event.
+
+ */
+ IA2_EVENT_TEXT_SELECTION_CHANGED,
+
+ /** A visible data event indicates the change of the visual appearance
+ of an accessible object. This includes for example most of the
+ attributes available via the IAccessibleComponent interface.
+ */
+ IA2_EVENT_VISIBLE_DATA_CHANGED
+
+};
+/*************************************************************************
+ *
+ * File Name (AccessibleApplication.idl)
+ *
+ * IAccessible2 IDL Specification
+ *
+ * Copyright (c) 2007, 2010 Linux Foundation
+ * Copyright (c) 2006 IBM Corporation
+ * Copyright (c) 2000, 2006 Sun Microsystems, Inc.
+ * All rights reserved.
+ *
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * 3. Neither the name of the Linux Foundation nor the names of its
+ * contributors may be used to endorse or promote products
+ * derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * This BSD License conforms to the Open Source Initiative "Simplified
+ * BSD License" as published at:
+ * http://www.opensource.org/licenses/bsd-license.php
+ *
+ * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
+ * mark may be used in accordance with the Linux Foundation Trademark
+ * Policy to indicate compliance with the IAccessible2 specification.
+ *
+ ************************************************************************/
+
+
+
+
+
+
+/** @brief This interface gives access to the application's name and version information.
+
+ This interface provides the AT with the information it needs to differentiate
+ this application from other applications, from other versions of this
+ application, or from other versions of this application running on different
+ versions of an accessibility bridge or accessibility toolkit.
+
+ Servers implementing IAccessible2 should provide access to the %IAccessibleApplication
+ interface via QueryService from any object so that ATs can easily determine specific
+ information about the application such as its name or version.
+*/
+[object, uuid(D49DED83-5B25-43F4-9B95-93B44595979E)]
+interface IAccessibleApplication : IUnknown
+{
+
+ /** @brief Returns the application name.
+ @param [out] name
+ @retval S_OK
+ @retval S_FALSE if there is nothing to return, [out] value is NULL
+ */
+ [propget] HRESULT appName
+ (
+ [out, retval] BSTR *name
+ );
+
+ /** @brief Returns the application version.
+ @param [out] version
+ The version string must not contain levels when it is know beforehand that
+ this information will never require a change in a client's behavior.
+ For example, use "3.6.0" rather than "3.6.0.v201005131500".
+ @retval S_OK
+ @retval S_FALSE if there is nothing to return, [out] value is NULL
+ */
+ [propget] HRESULT appVersion
+ (
+ [out, retval] BSTR *version
+ );
+
+ /** @brief Returns the toolkit/bridge name.
+ @param [out] name
+ @retval S_OK
+ @retval S_FALSE if there is nothing to return, [out] value is NULL
+ */
+ [propget] HRESULT toolkitName
+ (
+ [out, retval] BSTR *name
+ );
+
+ /** @brief Returns the toolkit/bridge version.
+ @param [out] version
+ The version string must not contain levels when it is know beforehand that
+ this information will never require a change in a client's behavior.
+ For example, use "3.6.0" rather than "3.6.0.v201005131500".
+ @retval S_OK
+ @retval S_FALSE if there is nothing to return, [out] value is NULL
+ */
+ [propget] HRESULT toolkitVersion
+ (
+ [out, retval] BSTR *version
+ );
+
+}
+
+/*************************************************************************
+ *
+ * File Name (AccessibleDocument.idl)
+ *
+ * IAccessible2 IDL Specification
+ *
+ * Copyright (c) 2013 Linux Foundation
+ * All rights reserved.
+ *
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * 3. Neither the name of the Linux Foundation nor the names of its
+ * contributors may be used to endorse or promote products
+ * derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * This BSD License conforms to the Open Source Initiative "Simplified
+ * BSD License" as published at:
+ * http://www.opensource.org/licenses/bsd-license.php
+ *
+ * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
+ * mark may be used in accordance with the Linux Foundation Trademark
+ * Policy to indicate compliance with the IAccessible2 specification.
+ *
+ ************************************************************************/
+
+
+
+
+
+/** @brief This interface represents documents.
+
+ This interface is used for a representation of documents.
+*/
+[object, uuid(C48C7FCF-4AB5-4056-AFA6-902D6E1D1149)]
+interface IAccessibleDocument : IUnknown
+{
+ /** @brief Returns the most recently used anchor target within a document.
+
+ A document's most recently targeted in-page anchor is returned. A typical use
+ of this method is to fetch the anchor target within an HTML document. In this
+ case anchor targets are those which have been defined with the &lt;a&gt; tag.
+
+ @param [out] accessible
+ @retval S_OK
+ @retval S_FALSE if there are no existing valid anchor targets, [out] value is NULL.
+ */
+ [propget] HRESULT anchorTarget
+ (
+ [out, retval] IUnknown **accessible
+ );
+
+}
+/*************************************************************************
+ *
+ * File Name (IA2TypeLibrary.idl)
+ *
+ * IAccessible2 IDL Specification
+ *
+ * Copyright (c) 2007, 2012 Linux Foundation
+ * Copyright (c) 2006 IBM Corporation
+ * Copyright (c) 2000, 2006 Sun Microsystems, Inc.
+ * All rights reserved.
+ *
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * 3. Neither the name of the Linux Foundation nor the names of its
+ * contributors may be used to endorse or promote products
+ * derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * This BSD License conforms to the Open Source Initiative "Simplified
+ * BSD License" as published at:
+ * http://www.opensource.org/licenses/bsd-license.php
+ *
+ * IAccessible2 is a trademark of the Linux Foundation. The IAccessible2
+ * mark may be used in accordance with the Linux Foundation Trademark
+ * Policy to indicate compliance with the IAccessible2 specification.
+ *
+ ************************************************************************/
+
+// This is not a standalone file. It is to be appended to the end of the
+// merged IDL file.
+
+cpp_quote("")
+cpp_quote("// Type Library Definitions")
+cpp_quote("")
+
+[
+ uuid(CE3F726E-D1D3-44FE-B995-FF1DB3B48B2B),
+ helpstring("IAccessible2 Type Library"),
+ version(1.3),
+ hidden
+]
+
+library IAccessible2Lib
+{
+ importlib ("stdole2.tlb");
+ importlib ("oleacc.dll");
+ interface IAccessible2;
+ interface IAccessible2_2;
+ interface IAccessibleAction;
+ interface IAccessibleApplication;
+ interface IAccessibleComponent;
+ interface IAccessibleDocument;
+ interface IAccessibleEditableText;
+ interface IAccessibleHyperlink;
+ interface IAccessibleHypertext;
+ interface IAccessibleHypertext2;
+ interface IAccessibleImage;
+ interface IAccessibleRelation;
+ interface IAccessibleTable;
+ interface IAccessibleTable2;
+ interface IAccessibleTableCell;
+ interface IAccessibleText;
+ interface IAccessibleText2;
+ interface IAccessibleValue;
+ enum IA2CoordinateType;
+ enum IA2EventID;
+ enum IA2Role;
+ enum IA2ScrollType;
+ enum IA2States;
+ enum IA2TableModelChangeType;
+ enum IA2TextBoundaryType;
+ enum IA2TextSpecialOffsets;
+}
diff --git a/src/concurrent/qtconcurrentthreadengine.h b/src/concurrent/qtconcurrentthreadengine.h
index b521572f40..d4a19e45c1 100644
--- a/src/concurrent/qtconcurrentthreadengine.h
+++ b/src/concurrent/qtconcurrentthreadengine.h
@@ -107,7 +107,7 @@ private:
void startThreads();
void threadExit();
bool threadThrottleExit();
- void run();
+ void run() Q_DECL_OVERRIDE;
virtual void asynchronousFinish() = 0;
#ifndef QT_NO_EXCEPTIONS
void handleException(const QException &exception);
@@ -167,7 +167,7 @@ public:
return future;
}
- void asynchronousFinish()
+ void asynchronousFinish() Q_DECL_OVERRIDE
{
finish();
futureInterfaceTyped()->reportFinished(result());
diff --git a/src/corelib/animation/qabstractanimation.h b/src/corelib/animation/qabstractanimation.h
index 2c325e7c02..43190cc9e2 100644
--- a/src/corelib/animation/qabstractanimation.h
+++ b/src/corelib/animation/qabstractanimation.h
@@ -111,7 +111,7 @@ public Q_SLOTS:
protected:
QAbstractAnimation(QAbstractAnimationPrivate &dd, QObject *parent = 0);
- bool event(QEvent *event);
+ bool event(QEvent *event) Q_DECL_OVERRIDE;
virtual void updateCurrentTime(int currentTime) = 0;
virtual void updateState(QAbstractAnimation::State newState, QAbstractAnimation::State oldState);
diff --git a/src/corelib/animation/qabstractanimation_p.h b/src/corelib/animation/qabstractanimation_p.h
index 827d6aeb54..6365b45cbe 100644
--- a/src/corelib/animation/qabstractanimation_p.h
+++ b/src/corelib/animation/qabstractanimation_p.h
@@ -110,7 +110,7 @@ class QDefaultAnimationDriver : public QAnimationDriver
Q_OBJECT
public:
QDefaultAnimationDriver(QUnifiedTimer *timer);
- void timerEvent(QTimerEvent *e);
+ void timerEvent(QTimerEvent *e) Q_DECL_OVERRIDE;
private Q_SLOTS:
void startTimer();
@@ -190,7 +190,7 @@ public:
qint64 elapsed() const;
protected:
- void timerEvent(QTimerEvent *);
+ void timerEvent(QTimerEvent *) Q_DECL_OVERRIDE;
private Q_SLOTS:
void startTimers();
@@ -259,11 +259,11 @@ public:
*/
static void updateAnimationTimer();
- void restartAnimationTimer();
- void updateAnimationsTime(qint64 delta);
+ void restartAnimationTimer() Q_DECL_OVERRIDE;
+ void updateAnimationsTime(qint64 delta) Q_DECL_OVERRIDE;
//useful for profiling/debugging
- int runningAnimationCount() { return animations.count(); }
+ int runningAnimationCount() Q_DECL_OVERRIDE { return animations.count(); }
private Q_SLOTS:
void startAnimations();
diff --git a/src/corelib/animation/qanimationgroup.h b/src/corelib/animation/qanimationgroup.h
index 5a027e75ca..59478b07fb 100644
--- a/src/corelib/animation/qanimationgroup.h
+++ b/src/corelib/animation/qanimationgroup.h
@@ -61,7 +61,7 @@ public:
protected:
QAnimationGroup(QAnimationGroupPrivate &dd, QObject *parent);
- bool event(QEvent *event);
+ bool event(QEvent *event) Q_DECL_OVERRIDE;
private:
Q_DISABLE_COPY(QAnimationGroup)
diff --git a/src/corelib/animation/qparallelanimationgroup.h b/src/corelib/animation/qparallelanimationgroup.h
index 7183823987..7ae3d638a7 100644
--- a/src/corelib/animation/qparallelanimationgroup.h
+++ b/src/corelib/animation/qparallelanimationgroup.h
@@ -50,15 +50,15 @@ public:
QParallelAnimationGroup(QObject *parent = 0);
~QParallelAnimationGroup();
- int duration() const;
+ int duration() const Q_DECL_OVERRIDE;
protected:
QParallelAnimationGroup(QParallelAnimationGroupPrivate &dd, QObject *parent);
- bool event(QEvent *event);
+ bool event(QEvent *event) Q_DECL_OVERRIDE;
- void updateCurrentTime(int currentTime);
- void updateState(QAbstractAnimation::State newState, QAbstractAnimation::State oldState);
- void updateDirection(QAbstractAnimation::Direction direction);
+ void updateCurrentTime(int currentTime) Q_DECL_OVERRIDE;
+ void updateState(QAbstractAnimation::State newState, QAbstractAnimation::State oldState) Q_DECL_OVERRIDE;
+ void updateDirection(QAbstractAnimation::Direction direction) Q_DECL_OVERRIDE;
private:
Q_DISABLE_COPY(QParallelAnimationGroup)
diff --git a/src/corelib/animation/qparallelanimationgroup_p.h b/src/corelib/animation/qparallelanimationgroup_p.h
index cfaa851b06..68f26312d7 100644
--- a/src/corelib/animation/qparallelanimationgroup_p.h
+++ b/src/corelib/animation/qparallelanimationgroup_p.h
@@ -72,7 +72,7 @@ public:
void connectUncontrolledAnimations();
void disconnectUncontrolledAnimations();
- void animationRemoved(int index, QAbstractAnimation *);
+ void animationRemoved(int index, QAbstractAnimation *) Q_DECL_OVERRIDE;
// private slot
void _q_uncontrolledAnimationFinished();
diff --git a/src/corelib/animation/qpauseanimation.h b/src/corelib/animation/qpauseanimation.h
index 2d53e6da52..aa11936294 100644
--- a/src/corelib/animation/qpauseanimation.h
+++ b/src/corelib/animation/qpauseanimation.h
@@ -52,12 +52,12 @@ public:
QPauseAnimation(int msecs, QObject *parent = 0);
~QPauseAnimation();
- int duration() const;
+ int duration() const Q_DECL_OVERRIDE;
void setDuration(int msecs);
protected:
- bool event(QEvent *e);
- void updateCurrentTime(int);
+ bool event(QEvent *e) Q_DECL_OVERRIDE;
+ void updateCurrentTime(int) Q_DECL_OVERRIDE;
private:
Q_DISABLE_COPY(QPauseAnimation)
diff --git a/src/corelib/animation/qpropertyanimation.h b/src/corelib/animation/qpropertyanimation.h
index 437438dd57..ef946416f0 100644
--- a/src/corelib/animation/qpropertyanimation.h
+++ b/src/corelib/animation/qpropertyanimation.h
@@ -60,9 +60,9 @@ public:
void setPropertyName(const QByteArray &propertyName);
protected:
- bool event(QEvent *event);
- void updateCurrentValue(const QVariant &value);
- void updateState(QAbstractAnimation::State newState, QAbstractAnimation::State oldState);
+ bool event(QEvent *event) Q_DECL_OVERRIDE;
+ void updateCurrentValue(const QVariant &value) Q_DECL_OVERRIDE;
+ void updateState(QAbstractAnimation::State newState, QAbstractAnimation::State oldState) Q_DECL_OVERRIDE;
private:
Q_DISABLE_COPY(QPropertyAnimation)
diff --git a/src/corelib/animation/qsequentialanimationgroup.h b/src/corelib/animation/qsequentialanimationgroup.h
index 9346d12e26..b1b5670f39 100644
--- a/src/corelib/animation/qsequentialanimationgroup.h
+++ b/src/corelib/animation/qsequentialanimationgroup.h
@@ -57,18 +57,18 @@ public:
QPauseAnimation *insertPause(int index, int msecs);
QAbstractAnimation *currentAnimation() const;
- int duration() const;
+ int duration() const Q_DECL_OVERRIDE;
Q_SIGNALS:
void currentAnimationChanged(QAbstractAnimation *current);
protected:
QSequentialAnimationGroup(QSequentialAnimationGroupPrivate &dd, QObject *parent);
- bool event(QEvent *event);
+ bool event(QEvent *event) Q_DECL_OVERRIDE;
- void updateCurrentTime(int);
- void updateState(QAbstractAnimation::State newState, QAbstractAnimation::State oldState);
- void updateDirection(QAbstractAnimation::Direction direction);
+ void updateCurrentTime(int) Q_DECL_OVERRIDE;
+ void updateState(QAbstractAnimation::State newState, QAbstractAnimation::State oldState) Q_DECL_OVERRIDE;
+ void updateDirection(QAbstractAnimation::Direction direction) Q_DECL_OVERRIDE;
private:
Q_DISABLE_COPY(QSequentialAnimationGroup)
diff --git a/src/corelib/animation/qsequentialanimationgroup_p.h b/src/corelib/animation/qsequentialanimationgroup_p.h
index caa32faaf8..2b8ac576bb 100644
--- a/src/corelib/animation/qsequentialanimationgroup_p.h
+++ b/src/corelib/animation/qsequentialanimationgroup_p.h
@@ -76,8 +76,8 @@ public:
void setCurrentAnimation(int index, bool intermediate = false);
void activateCurrentAnimation(bool intermediate = false);
- void animationInsertedAt(int index);
- void animationRemoved(int index, QAbstractAnimation *anim);
+ void animationInsertedAt(int index) Q_DECL_OVERRIDE;
+ void animationRemoved(int index, QAbstractAnimation *anim) Q_DECL_OVERRIDE;
bool atEnd() const;
diff --git a/src/corelib/animation/qvariantanimation.h b/src/corelib/animation/qvariantanimation.h
index f2d8c0cfd3..17e8c2a871 100644
--- a/src/corelib/animation/qvariantanimation.h
+++ b/src/corelib/animation/qvariantanimation.h
@@ -76,7 +76,7 @@ public:
QVariant currentValue() const;
- int duration() const;
+ int duration() const Q_DECL_OVERRIDE;
void setDuration(int msecs);
QEasingCurve easingCurve() const;
@@ -89,10 +89,10 @@ Q_SIGNALS:
protected:
QVariantAnimation(QVariantAnimationPrivate &dd, QObject *parent = 0);
- bool event(QEvent *event);
+ bool event(QEvent *event) Q_DECL_OVERRIDE;
- void updateCurrentTime(int);
- void updateState(QAbstractAnimation::State newState, QAbstractAnimation::State oldState);
+ void updateCurrentTime(int) Q_DECL_OVERRIDE;
+ void updateState(QAbstractAnimation::State newState, QAbstractAnimation::State oldState) Q_DECL_OVERRIDE;
virtual void updateCurrentValue(const QVariant &value);
virtual QVariant interpolated(const QVariant &from, const QVariant &to, qreal progress) const;
diff --git a/src/corelib/codecs/qicucodec_p.h b/src/corelib/codecs/qicucodec_p.h
index 9786b4398a..900debeb7b 100644
--- a/src/corelib/codecs/qicucodec_p.h
+++ b/src/corelib/codecs/qicucodec_p.h
@@ -66,12 +66,12 @@ public:
static QTextCodec *codecForNameUnlocked(const char *name);
static QTextCodec *codecForMibUnlocked(int mib);
- QString convertToUnicode(const char *, int, ConverterState *) const;
- QByteArray convertFromUnicode(const QChar *, int, ConverterState *) const;
+ QString convertToUnicode(const char *, int, ConverterState *) const Q_DECL_OVERRIDE;
+ QByteArray convertFromUnicode(const QChar *, int, ConverterState *) const Q_DECL_OVERRIDE;
- QByteArray name() const;
- QList<QByteArray> aliases() const;
- int mibEnum() const;
+ QByteArray name() const Q_DECL_OVERRIDE;
+ QList<QByteArray> aliases() const Q_DECL_OVERRIDE;
+ int mibEnum() const Q_DECL_OVERRIDE;
private:
QIcuCodec(const char *name);
diff --git a/src/corelib/codecs/qisciicodec_p.h b/src/corelib/codecs/qisciicodec_p.h
index ce49975445..4bf89ccd5e 100644
--- a/src/corelib/codecs/qisciicodec_p.h
+++ b/src/corelib/codecs/qisciicodec_p.h
@@ -58,11 +58,11 @@ public:
static QTextCodec *create(const char *name);
- QByteArray name() const;
- int mibEnum() const;
+ QByteArray name() const Q_DECL_OVERRIDE;
+ int mibEnum() const Q_DECL_OVERRIDE;
- QString convertToUnicode(const char *, int, ConverterState *) const;
- QByteArray convertFromUnicode(const QChar *, int, ConverterState *) const;
+ QString convertToUnicode(const char *, int, ConverterState *) const Q_DECL_OVERRIDE;
+ QByteArray convertFromUnicode(const QChar *, int, ConverterState *) const Q_DECL_OVERRIDE;
private:
int idx;
diff --git a/src/corelib/codecs/qlatincodec_p.h b/src/corelib/codecs/qlatincodec_p.h
index c4c9b11ef7..b51cfb856e 100644
--- a/src/corelib/codecs/qlatincodec_p.h
+++ b/src/corelib/codecs/qlatincodec_p.h
@@ -56,12 +56,12 @@ class QLatin1Codec : public QTextCodec
public:
~QLatin1Codec();
- QString convertToUnicode(const char *, int, ConverterState *) const;
- QByteArray convertFromUnicode(const QChar *, int, ConverterState *) const;
+ QString convertToUnicode(const char *, int, ConverterState *) const Q_DECL_OVERRIDE;
+ QByteArray convertFromUnicode(const QChar *, int, ConverterState *) const Q_DECL_OVERRIDE;
- QByteArray name() const;
- QList<QByteArray> aliases() const;
- int mibEnum() const;
+ QByteArray name() const Q_DECL_OVERRIDE;
+ QList<QByteArray> aliases() const Q_DECL_OVERRIDE;
+ int mibEnum() const Q_DECL_OVERRIDE;
};
@@ -71,12 +71,12 @@ class QLatin15Codec: public QTextCodec
public:
~QLatin15Codec();
- QString convertToUnicode(const char *, int, ConverterState *) const;
- QByteArray convertFromUnicode(const QChar *, int, ConverterState *) const;
+ QString convertToUnicode(const char *, int, ConverterState *) const Q_DECL_OVERRIDE;
+ QByteArray convertFromUnicode(const QChar *, int, ConverterState *) const Q_DECL_OVERRIDE;
- QByteArray name() const;
- QList<QByteArray> aliases() const;
- int mibEnum() const;
+ QByteArray name() const Q_DECL_OVERRIDE;
+ QList<QByteArray> aliases() const Q_DECL_OVERRIDE;
+ int mibEnum() const Q_DECL_OVERRIDE;
};
#endif // QT_NO_TEXTCODEC
diff --git a/src/corelib/codecs/qtsciicodec_p.h b/src/corelib/codecs/qtsciicodec_p.h
index 62a62b718c..030e9a5ed0 100644
--- a/src/corelib/codecs/qtsciicodec_p.h
+++ b/src/corelib/codecs/qtsciicodec_p.h
@@ -84,11 +84,11 @@ class QTsciiCodec : public QTextCodec {
public:
~QTsciiCodec();
- QByteArray name() const;
- int mibEnum() const;
+ QByteArray name() const Q_DECL_OVERRIDE;
+ int mibEnum() const Q_DECL_OVERRIDE;
- QString convertToUnicode(const char *, int, ConverterState *) const;
- QByteArray convertFromUnicode(const QChar *, int, ConverterState *) const;
+ QString convertToUnicode(const char *, int, ConverterState *) const Q_DECL_OVERRIDE;
+ QByteArray convertFromUnicode(const QChar *, int, ConverterState *) const Q_DECL_OVERRIDE;
};
#endif // QT_NO_CODECS
diff --git a/src/corelib/codecs/qutfcodec_p.h b/src/corelib/codecs/qutfcodec_p.h
index eb222bb2d5..16fc9945d3 100644
--- a/src/corelib/codecs/qutfcodec_p.h
+++ b/src/corelib/codecs/qutfcodec_p.h
@@ -305,11 +305,11 @@ class QUtf8Codec : public QTextCodec {
public:
~QUtf8Codec();
- QByteArray name() const;
- int mibEnum() const;
+ QByteArray name() const Q_DECL_OVERRIDE;
+ int mibEnum() const Q_DECL_OVERRIDE;
- QString convertToUnicode(const char *, int, ConverterState *) const;
- QByteArray convertFromUnicode(const QChar *, int, ConverterState *) const;
+ QString convertToUnicode(const char *, int, ConverterState *) const Q_DECL_OVERRIDE;
+ QByteArray convertFromUnicode(const QChar *, int, ConverterState *) const Q_DECL_OVERRIDE;
void convertToUnicode(QString *target, const char *, int, ConverterState *) const;
};
@@ -319,12 +319,12 @@ public:
QUtf16Codec() { e = DetectEndianness; }
~QUtf16Codec();
- QByteArray name() const;
- QList<QByteArray> aliases() const;
- int mibEnum() const;
+ QByteArray name() const Q_DECL_OVERRIDE;
+ QList<QByteArray> aliases() const Q_DECL_OVERRIDE;
+ int mibEnum() const Q_DECL_OVERRIDE;
- QString convertToUnicode(const char *, int, ConverterState *) const;
- QByteArray convertFromUnicode(const QChar *, int, ConverterState *) const;
+ QString convertToUnicode(const char *, int, ConverterState *) const Q_DECL_OVERRIDE;
+ QByteArray convertFromUnicode(const QChar *, int, ConverterState *) const Q_DECL_OVERRIDE;
protected:
DataEndianness e;
@@ -333,17 +333,17 @@ protected:
class QUtf16BECodec : public QUtf16Codec {
public:
QUtf16BECodec() : QUtf16Codec() { e = BigEndianness; }
- QByteArray name() const;
- QList<QByteArray> aliases() const;
- int mibEnum() const;
+ QByteArray name() const Q_DECL_OVERRIDE;
+ QList<QByteArray> aliases() const Q_DECL_OVERRIDE;
+ int mibEnum() const Q_DECL_OVERRIDE;
};
class QUtf16LECodec : public QUtf16Codec {
public:
QUtf16LECodec() : QUtf16Codec() { e = LittleEndianness; }
- QByteArray name() const;
- QList<QByteArray> aliases() const;
- int mibEnum() const;
+ QByteArray name() const Q_DECL_OVERRIDE;
+ QList<QByteArray> aliases() const Q_DECL_OVERRIDE;
+ int mibEnum() const Q_DECL_OVERRIDE;
};
class QUtf32Codec : public QTextCodec {
@@ -351,12 +351,12 @@ public:
QUtf32Codec() { e = DetectEndianness; }
~QUtf32Codec();
- QByteArray name() const;
- QList<QByteArray> aliases() const;
- int mibEnum() const;
+ QByteArray name() const Q_DECL_OVERRIDE;
+ QList<QByteArray> aliases() const Q_DECL_OVERRIDE;
+ int mibEnum() const Q_DECL_OVERRIDE;
- QString convertToUnicode(const char *, int, ConverterState *) const;
- QByteArray convertFromUnicode(const QChar *, int, ConverterState *) const;
+ QString convertToUnicode(const char *, int, ConverterState *) const Q_DECL_OVERRIDE;
+ QByteArray convertFromUnicode(const QChar *, int, ConverterState *) const Q_DECL_OVERRIDE;
protected:
DataEndianness e;
@@ -365,17 +365,17 @@ protected:
class QUtf32BECodec : public QUtf32Codec {
public:
QUtf32BECodec() : QUtf32Codec() { e = BigEndianness; }
- QByteArray name() const;
- QList<QByteArray> aliases() const;
- int mibEnum() const;
+ QByteArray name() const Q_DECL_OVERRIDE;
+ QList<QByteArray> aliases() const Q_DECL_OVERRIDE;
+ int mibEnum() const Q_DECL_OVERRIDE;
};
class QUtf32LECodec : public QUtf32Codec {
public:
QUtf32LECodec() : QUtf32Codec() { e = LittleEndianness; }
- QByteArray name() const;
- QList<QByteArray> aliases() const;
- int mibEnum() const;
+ QByteArray name() const Q_DECL_OVERRIDE;
+ QList<QByteArray> aliases() const Q_DECL_OVERRIDE;
+ int mibEnum() const Q_DECL_OVERRIDE;
};
diff --git a/src/corelib/doc/snippets/code/src_corelib_kernel_qmimedata.cpp b/src/corelib/doc/snippets/code/src_corelib_kernel_qmimedata.cpp
index 7f42cd8def..278a00fdfd 100644
--- a/src/corelib/doc/snippets/code/src_corelib_kernel_qmimedata.cpp
+++ b/src/corelib/doc/snippets/code/src_corelib_kernel_qmimedata.cpp
@@ -106,3 +106,9 @@ if (event->mimeData()->hasColor()) {
...
}
//! [7]
+
+
+//! [8]
+application/x-qt-windows-mime;value="FileContents";index=0
+application/x-qt-windows-mime;value="FileContents";index=1
+//! [8]
diff --git a/src/corelib/doc/snippets/qstring/main.cpp b/src/corelib/doc/snippets/qstring/main.cpp
index f49c4dd359..17d0adf097 100644
--- a/src/corelib/doc/snippets/qstring/main.cpp
+++ b/src/corelib/doc/snippets/qstring/main.cpp
@@ -394,6 +394,13 @@ void Widget::firstIndexOfFunction()
QString str = "the minimum";
str.indexOf(QRegularExpression("m[aeiou]"), 0); // returns 4
//! [93]
+
+ //! [97]
+ QString str = "the minimum";
+ QRegularExpressionMatch match;
+ str.indexOf(QRegularExpression("m[aeiou]"), 0, &match); // returns 4
+ // match.captured() == mi
+ //! [97]
}
void Widget::insertFunction()
@@ -444,6 +451,13 @@ void Widget::lastIndexOfFunction()
QString str = "the minimum";
str.lastIndexOf(QRegularExpression("m[aeiou]")); // returns 8
//! [94]
+
+ //! [98]
+ QString str = "the minimum";
+ QRegularExpressionMatch match;
+ str.lastIndexOf(QRegularExpression("m[aeiou]"), -1, &match); // returns 8
+ // match.captured() == mu
+ //! [98]
}
void Widget::leftFunction()
diff --git a/src/corelib/global/qcompilerdetection.h b/src/corelib/global/qcompilerdetection.h
index 5f8ca5c7cc..db5f6f3bb1 100644
--- a/src/corelib/global/qcompilerdetection.h
+++ b/src/corelib/global/qcompilerdetection.h
@@ -1,7 +1,7 @@
/****************************************************************************
**
** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
-** Copyright (C) 2012 Intel Corporation
+** Copyright (C) 2014 Intel Corporation
** Contact: http://www.qt-project.org/legal
**
** This file is part of the QtCore module of the Qt Toolkit.
@@ -75,7 +75,6 @@
# if defined(__SC__) && __SC__ < 0x750
# error "Compiler not supported"
# endif
-# define Q_NO_USING_KEYWORD
#elif defined(_MSC_VER)
# define Q_CC_MSVC (_MSC_VER)
@@ -113,7 +112,6 @@
# if __BORLANDC__ < 0x502
# error "Compiler not supported"
# endif
-# define Q_NO_USING_KEYWORD
#elif defined(__WATCOMC__)
# define Q_CC_WAT
@@ -278,7 +276,6 @@
# error "Compiler not supported"
# endif
/* Spurious (?) error messages observed on Compaq C++ V6.5-014. */
-# define Q_NO_USING_KEYWORD
/* Apply to all versions prior to Compaq C++ V6.0-000 - observed on
DEC C++ V5.5-004. */
# if __DECCXX_VER < 60060000
@@ -323,7 +320,6 @@
compiler is using its own set of rules. Forget it. */
# elif defined(__KCC)
# define Q_CC_KAI
-# define Q_NO_USING_KEYWORD
/* Using the `using' keyword avoids Intel C++ for Linux warnings */
# elif defined(__INTEL_COMPILER)
@@ -346,23 +342,19 @@
# if !defined(__SCO_VERSION__) || (__SCO_VERSION__ < 302200010)
# define Q_OUTOFLINE_TEMPLATE inline
# endif
-# define Q_NO_USING_KEYWORD /* ### check "using" status */
/* Never tested! */
# elif defined(CENTERLINE_CLPP) || defined(OBJECTCENTER)
# define Q_CC_OC
-# define Q_NO_USING_KEYWORD
/* CDS++ defines __EDG__ although this is not documented in the Reliant
documentation. It also follows conventions like _BOOL and this documented */
# elif defined(sinix)
# define Q_CC_CDS
-# define Q_NO_USING_KEYWORD
/* The MIPSpro compiler defines __EDG */
# elif defined(__sgi)
# define Q_CC_MIPS
-# define Q_NO_USING_KEYWORD /* ### check "using" status */
# define Q_NO_TEMPLATE_FRIENDS
# if defined(_COMPILER_VERSION) && (_COMPILER_VERSION >= 740)
# define Q_OUTOFLINE_TEMPLATE inline
@@ -404,9 +396,6 @@
# if !defined(_BOOL)
# error "Compiler not supported"
# endif
-# if defined(__SUNPRO_CC_COMPAT) && (__SUNPRO_CC_COMPAT <= 4)
-# define Q_NO_USING_KEYWORD
-# endif
# define Q_C_CALLBACKS
/* 4.2 compiler or older */
# else
@@ -445,7 +434,6 @@
# else
# error "Compiler not supported"
# endif
-# define Q_NO_USING_KEYWORD /* ### check "using" status */
#else
# error "Qt has not been tested with this compiler - see http://www.qt-project.org/"
@@ -511,7 +499,7 @@
// at least since 13.1, but I can't test further back
# define Q_COMPILER_BINARY_LITERALS
# endif
-# if __cplusplus >= 201103L
+# if __cplusplus >= 201103L || defined(__INTEL_CXX11_MODE__)
# if __INTEL_COMPILER >= 1200
# define Q_COMPILER_AUTO_TYPE
# define Q_COMPILER_CLASS_ENUM
@@ -529,7 +517,9 @@
# define Q_COMPILER_AUTO_FUNCTION
# define Q_COMPILER_NULLPTR
# define Q_COMPILER_TEMPLATE_ALIAS
-# define Q_COMPILER_UNICODE_STRINGS
+# ifndef _CHAR16T // MSVC headers
+# define Q_COMPILER_UNICODE_STRINGS
+# endif
# define Q_COMPILER_VARIADIC_TEMPLATES
# endif
# if __INTEL_COMPILER >= 1300
@@ -874,7 +864,24 @@
# if _MSC_FULL_VER >= 180030324 // VC 12 SP 2 RC
# define Q_COMPILER_INITIALIZER_LISTS
# endif /* VC 12 SP 2 RC */
-
+# if _MSC_VER >= 1900
+ /* C++11 features in VC14 = VC2015 */
+# define Q_COMPILER_ALIGNAS
+# define Q_COMPILER_ALIGNOF
+// Partial support, insufficient for Qt
+//# define Q_COMPILER_CONSTEXPR
+# define Q_COMPILER_INHERITING_CONSTRUCTORS
+# define Q_COMPILER_NOEXCEPT
+# define Q_COMPILER_RANGE_FOR
+# define Q_COMPILER_REF_QUALIFIERS
+# define Q_COMPILER_THREAD_LOCAL
+# define Q_COMPILER_THREADSAFE_STATICS
+# define Q_COMPILER_UDL
+# define Q_COMPILER_UNICODE_STRINGS
+// Uniform initialization is not working yet -- build errors with QUuid
+//# define Q_COMPILER_UNIFORM_INIT
+# define Q_COMPILER_UNRESTRICTED_UNIONS
+# endif
# endif /* __cplusplus */
#endif /* Q_CC_MSVC */
@@ -944,12 +951,21 @@
# define Q_COMPILER_DEFAULT_DELETE_MEMBERS
#endif
-#ifdef Q_COMPILER_CONSTEXPR
+#if defined(__cpp_constexpr) && __cpp_constexpr-0 >= 201304
+# define Q_DECL_CONSTEXPR constexpr
+# define Q_DECL_RELAXED_CONSTEXPR constexpr
+# define Q_CONSTEXPR constexpr
+# define Q_RELAXED_CONSTEXPR constexpr
+#elif defined Q_COMPILER_CONSTEXPR
# define Q_DECL_CONSTEXPR constexpr
+# define Q_DECL_RELAXED_CONSTEXPR
# define Q_CONSTEXPR constexpr
+# define Q_RELAXED_CONSTEXPR const
#else
# define Q_DECL_CONSTEXPR
+# define Q_DECL_RELAXED_CONSTEXPR
# define Q_CONSTEXPR const
+# define Q_RELAXED_CONSTEXPR const
#endif
#ifdef Q_COMPILER_EXPLICIT_OVERRIDES
@@ -1052,6 +1068,60 @@
#endif
/*
+ * Warning/diagnostic handling
+ */
+
+#define QT_DO_PRAGMA(text) _Pragma(#text)
+#if defined(Q_CC_INTEL) && defined(Q_CC_MSVC)
+/* icl.exe: Intel compiler on Windows */
+# undef QT_DO_PRAGMA /* not needed */
+# define QT_WARNING_PUSH __pragma(warning(push))
+# define QT_WARNING_POP __pragma(warning(pop))
+# define QT_WARNING_DISABLE_MSVC(number)
+# define QT_WARNING_DISABLE_INTEL(number) __pragma(warning(disable: number))
+# define QT_WARNING_DISABLE_CLANG(text)
+# define QT_WARNING_DISABLE_GCC(text)
+#elif defined(Q_CC_INTEL)
+/* icc: Intel compiler on Linux or OS X */
+# define QT_WARNING_PUSH QT_DO_PRAGMA(warning(push))
+# define QT_WARNING_POP QT_DO_PRAGMA(warning(pop))
+# define QT_WARNING_DISABLE_INTEL(number) QT_DO_PRAGMA(warning(disable: number))
+# define QT_WARNING_DISABLE_MSVC(number)
+# define QT_WARNING_DISABLE_CLANG(text)
+# define QT_WARNING_DISABLE_GCC(text)
+#elif defined(Q_CC_MSVC) && _MSC_VER >= 1500
+# undef QT_DO_PRAGMA /* not needed */
+# define QT_WARNING_PUSH __pragma(warning(push))
+# define QT_WARNING_POP __pragma(warning(pop))
+# define QT_WARNING_DISABLE_MSVC(number) __pragma(warning(disable: number))
+# define QT_WARNING_DISABLE_INTEL(number)
+# define QT_WARNING_DISABLE_CLANG(text)
+# define QT_WARNING_DISABLE_GCC(text)
+#elif defined(Q_CC_CLANG)
+# define QT_WARNING_PUSH QT_DO_PRAGMA(clang diagnostic push)
+# define QT_WARNING_POP QT_DO_PRAGMA(clang diagnostic pop)
+# define QT_WARNING_DISABLE_CLANG(text) QT_DO_PRAGMA(clang diagnostic ignored text)
+# define QT_WARNING_DISABLE_GCC(text) QT_DO_PRAGMA(GCC diagnostic ignored text) // GCC directives work in Clang too
+# define QT_WARNING_DISABLE_INTEL(number)
+# define QT_WARNING_DISABLE_MSVC(number)
+#elif defined(Q_CC_GNU) && (__GNUC__ * 100 + __GNUC_MINOR__ >= 405)
+# define QT_WARNING_PUSH QT_DO_PRAGMA(GCC diagnostic push)
+# define QT_WARNING_POP QT_DO_PRAGMA(GCC diagnostic pop)
+# define QT_WARNING_DISABLE_GCC(text) QT_DO_PRAGMA(GCC diagnostic ignored text)
+# define QT_WARNING_DISABLE_CLANG(text)
+# define QT_WARNING_DISABLE_INTEL(number)
+# define QT_WARNING_DISABLE_MSVC(number)
+#else // All other compilers, GCC < 4.6 and MSVC < 2008
+# define QT_WARNING_DISABLE_GCC(text)
+# define QT_WARNING_PUSH
+# define QT_WARNING_POP
+# define QT_WARNING_DISABLE_INTEL(number)
+# define QT_WARNING_DISABLE_MSVC(number)
+# define QT_WARNING_DISABLE_CLANG(text)
+# define QT_WARNING_DISABLE_GCC(text)
+#endif
+
+/*
Proper for-scoping in MIPSpro CC
*/
#ifndef QT_NO_KEYWORDS
diff --git a/src/corelib/global/qflags.h b/src/corelib/global/qflags.h
index 275ab12800..cfe75c4eea 100644
--- a/src/corelib/global/qflags.h
+++ b/src/corelib/global/qflags.h
@@ -117,13 +117,13 @@ public:
: i(initializer_list_helper(flags.begin(), flags.end())) {}
#endif
- inline QFlags &operator&=(int mask) { i &= mask; return *this; }
- inline QFlags &operator&=(uint mask) { i &= mask; return *this; }
- inline QFlags &operator&=(Enum mask) { i &= Int(mask); return *this; }
- inline QFlags &operator|=(QFlags f) { i |= f.i; return *this; }
- inline QFlags &operator|=(Enum f) { i |= Int(f); return *this; }
- inline QFlags &operator^=(QFlags f) { i ^= f.i; return *this; }
- inline QFlags &operator^=(Enum f) { i ^= Int(f); return *this; }
+ Q_DECL_RELAXED_CONSTEXPR inline QFlags &operator&=(int mask) { i &= mask; return *this; }
+ Q_DECL_RELAXED_CONSTEXPR inline QFlags &operator&=(uint mask) { i &= mask; return *this; }
+ Q_DECL_RELAXED_CONSTEXPR inline QFlags &operator&=(Enum mask) { i &= Int(mask); return *this; }
+ Q_DECL_RELAXED_CONSTEXPR inline QFlags &operator|=(QFlags f) { i |= f.i; return *this; }
+ Q_DECL_RELAXED_CONSTEXPR inline QFlags &operator|=(Enum f) { i |= Int(f); return *this; }
+ Q_DECL_RELAXED_CONSTEXPR inline QFlags &operator^=(QFlags f) { i ^= f.i; return *this; }
+ Q_DECL_RELAXED_CONSTEXPR inline QFlags &operator^=(Enum f) { i ^= Int(f); return *this; }
Q_DECL_CONSTEXPR inline operator Int() const { return i; }
diff --git a/src/corelib/global/qglobal.cpp b/src/corelib/global/qglobal.cpp
index ae3e86629e..2d4edb48d1 100644
--- a/src/corelib/global/qglobal.cpp
+++ b/src/corelib/global/qglobal.cpp
@@ -39,6 +39,7 @@
#include "qthreadstorage.h"
#include "qdir.h"
#include "qdatetime.h"
+#include <private/qlocale_tools_p.h>
#ifndef QT_NO_QOBJECT
#include <private/qthread_p.h>
@@ -984,9 +985,9 @@ bool qSharedBuild() Q_DECL_NOTHROW
\li \l ByteOrder specifies whether the platform is big-endian or
little-endian.
\li \l WindowsVersion specifies the version of the Windows operating
- system on which the application is run (Windows only)
+ system on which the application is run.
\li \l MacintoshVersion specifies the version of the Macintosh
- operating system on which the application is run (Mac only).
+ operating system on which the application is run.
\endlist
Some constants are defined only on certain platforms. You can use
@@ -1009,7 +1010,7 @@ bool qSharedBuild() Q_DECL_NOTHROW
/*!
\variable QSysInfo::WindowsVersion
\brief the version of the Windows operating system on which the
- application is run (Windows only)
+ application is run.
*/
/*!
@@ -1017,19 +1018,22 @@ bool qSharedBuild() Q_DECL_NOTHROW
\since 4.4
Returns the version of the Windows operating system on which the
- application is run (Windows only).
+ application is run, or WV_None if the operating system is not
+ Windows.
*/
/*!
\variable QSysInfo::MacintoshVersion
\brief the version of the Macintosh operating system on which
- the application is run (Mac only).
+ the application is run.
*/
/*!
\fn QSysInfo::MacVersion QSysInfo::macVersion()
- Returns the version of Darwin (OS X or iOS) on which the application is run.
+ Returns the version of Darwin (OS X or iOS) on which the
+ application is run, or MV_None if the operating system
+ is not a version of Darwin.
*/
/*!
@@ -1092,6 +1096,8 @@ bool qSharedBuild() Q_DECL_NOTHROW
\value WV_NT_based NT-based version of Windows
\value WV_CE_based CE-based version of Windows
+ \value WV_None Operating system other than Windows.
+
\sa MacVersion
*/
@@ -1139,6 +1145,8 @@ bool qSharedBuild() Q_DECL_NOTHROW
\value MV_IOS_7_1 iOS 7.1
\value MV_IOS_8_0 iOS 8.0
+ \value MV_None Not a Darwin operating system
+
\sa WinVersion
*/
@@ -1845,16 +1853,14 @@ Q_CORE_EXPORT QString qt_mac_from_pascal_string(const Str255 pstr) {
QSysInfo::MacVersion QSysInfo::macVersion()
{
+ const QAppleOperatingSystemVersion version = qt_apple_os_version(); // qtcore_mac_objc.mm
#if defined(Q_OS_OSX)
- SInt32 gestalt_version;
- if (Gestalt(gestaltSystemVersionMinor, &gestalt_version) == noErr) {
- // add 2 because OS X 10.0 is 0x02 in the enum
- return QSysInfo::MacVersion(gestalt_version + 2);
- }
+ return QSysInfo::MacVersion(Q_MV_OSX(version.major, version.minor));
#elif defined(Q_OS_IOS)
- return qt_ios_version(); // qtcore_mac_objc.mm
-#endif
+ return QSysInfo::MacVersion(Q_MV_IOS(version.major, version.minor));
+#else
return QSysInfo::MV_Unknown;
+#endif
}
const QSysInfo::MacVersion QSysInfo::MacintoshVersion = QSysInfo::macVersion();
@@ -2493,25 +2499,9 @@ QString QSysInfo::productType()
*/
QString QSysInfo::productVersion()
{
-#if defined(Q_OS_IOS)
- int major = (int(MacintoshVersion) >> 4) & 0xf;
- int minor = int(MacintoshVersion) & 0xf;
- if (Q_LIKELY(major < 10 && minor < 10)) {
- char buf[4] = { char(major + '0'), '.', char(minor + '0'), '\0' };
- return QString::fromLatin1(buf, 3);
- }
- return QString::number(major) + QLatin1Char('.') + QString::number(minor);
-#elif defined(Q_OS_OSX)
- int minor = int(MacintoshVersion) - 2; // we're not running on Mac OS 9
- Q_ASSERT(minor < 100);
- char buf[] = "10.0\0";
- if (Q_LIKELY(minor < 10)) {
- buf[3] += minor;
- } else {
- buf[3] += minor / 10;
- buf[4] = '0' + minor % 10;
- }
- return QString::fromLatin1(buf);
+#if defined(Q_OS_MAC)
+ const QAppleOperatingSystemVersion version = qt_apple_os_version();
+ return QString::number(version.major) + QLatin1Char('.') + QString::number(version.minor);
#elif defined(Q_OS_WIN)
const char *version = winVer_helper();
if (version)
@@ -3007,6 +2997,53 @@ bool qEnvironmentVariableIsEmpty(const char *varName) Q_DECL_NOEXCEPT
/*!
\relates <QtGlobal>
+ \since 5.5
+
+ Returns the numerical value of the environment variable \a varName.
+ If \a ok is not null, sets \c{*ok} to \c true or \c false depending
+ on the success of the conversion.
+
+ Equivalent to
+ \code
+ qgetenv(varName).toInt()
+ \endcode
+ except that it's much faster, and can't throw exceptions.
+
+ \sa qgetenv(), qEnvironmentVariableIsSet()
+*/
+int qEnvironmentVariableIntValue(const char *varName, bool *ok) Q_DECL_NOEXCEPT
+{
+#if defined(_MSC_VER) && _MSC_VER >= 1400
+ // we provide a buffer that can hold any int value:
+ static const int NumBinaryDigitsPerOctalDigit = 3;
+ static const int MaxDigitsForOctalInt =
+ (std::numeric_limits<uint>::digits + NumBinaryDigitsPerOctalDigit - 1) / NumBinaryDigitsPerOctalDigit;
+ char buffer[MaxDigitsForOctalInt + 2]; // +1 for NUL +1 for optional '-'
+ size_t dummy;
+ if (getenv_s(&dummy, buffer, sizeof buffer, varName) != 0) {
+ if (ok)
+ *ok = false;
+ return 0;
+ }
+#else
+ const char * const buffer = ::getenv(varName);
+ if (!buffer || !*buffer) {
+ if (ok)
+ *ok = false;
+ return 0;
+ }
+#endif
+ const qlonglong value = qstrtoll(buffer, Q_NULLPTR, 0, ok);
+ if (int(value) != value) { // this is the check in QByteArray::toInt(), keep it in sync
+ if (ok)
+ *ok = false;
+ return 0;
+ }
+ return int(value);
+}
+
+/*!
+ \relates <QtGlobal>
\since 5.1
Returns whether the environment variable \a varName is set.
@@ -3910,6 +3947,21 @@ bool QInternal::activateCallbacks(Callback cb, void **parameters)
It expands to "constexpr" if your compiler supports that C++11 keyword, or to nothing
otherwise.
+
+ \sa Q_DECL_RELAXED_CONSTEXPR
+*/
+
+/*!
+ \macro Q_DECL_RELAXED_CONSTEXPR
+ \relates <QtGlobal>
+
+ This macro can be used to declare an inline function that can be computed
+ at compile-time according to the relaxed rules from C++14.
+
+ It expands to "constexpr" if your compiler supports C++14 relaxed constant
+ expressions, or to nothing otherwise.
+
+ \sa Q_DECL_CONSTEXPR
*/
/*!
diff --git a/src/corelib/global/qglobal.h b/src/corelib/global/qglobal.h
index cb8bd15d8d..e93bfbcc4a 100644
--- a/src/corelib/global/qglobal.h
+++ b/src/corelib/global/qglobal.h
@@ -35,13 +35,17 @@
#ifndef QGLOBAL_H
#define QGLOBAL_H
-#include <stddef.h>
+#ifdef __cplusplus
+# include <cstddef>
+#else
+# include <stddef.h>
+#endif
-#define QT_VERSION_STR "5.4.1"
+#define QT_VERSION_STR "5.5.0"
/*
QT_VERSION is (major << 16) + (minor << 8) + patch.
*/
-#define QT_VERSION 0x050401
+#define QT_VERSION 0x050500
/*
can be used like #if (QT_VERSION >= QT_VERSION_CHECK(4, 4, 0))
*/
@@ -655,7 +659,7 @@ Q_CORE_EXPORT void qt_assert(const char *assertion, const char *file, int line)
#if !defined(Q_ASSERT)
# if defined(QT_NO_DEBUG) && !defined(QT_FORCE_ASSERTS)
-# define Q_ASSERT(cond) qt_noop()
+# define Q_ASSERT(cond) do { } while (false && (cond))
# else
# define Q_ASSERT(cond) ((!(cond)) ? qt_assert(#cond,__FILE__,__LINE__) : qt_noop())
# endif
@@ -834,22 +838,22 @@ Q_CORE_EXPORT void qFreeAligned(void *ptr);
#endif
#if defined(QT_NO_WARNINGS)
# if defined(Q_CC_MSVC)
-# pragma warning(disable: 4251) /* class 'type' needs to have dll-interface to be used by clients of class 'type2' */
-# pragma warning(disable: 4244) /* conversion from 'type1' to 'type2', possible loss of data */
-# pragma warning(disable: 4275) /* non - DLL-interface classkey 'identifier' used as base for DLL-interface classkey 'identifier' */
-# pragma warning(disable: 4514) /* unreferenced inline function has been removed */
-# pragma warning(disable: 4800) /* 'type' : forcing value to bool 'true' or 'false' (performance warning) */
-# pragma warning(disable: 4097) /* typedef-name 'identifier1' used as synonym for class-name 'identifier2' */
-# pragma warning(disable: 4706) /* assignment within conditional expression */
+QT_WARNING_DISABLE_MSVC(4251) /* class 'type' needs to have dll-interface to be used by clients of class 'type2' */
+QT_WARNING_DISABLE_MSVC(4244) /* conversion from 'type1' to 'type2', possible loss of data */
+QT_WARNING_DISABLE_MSVC(4275) /* non - DLL-interface classkey 'identifier' used as base for DLL-interface classkey 'identifier' */
+QT_WARNING_DISABLE_MSVC(4514) /* unreferenced inline function has been removed */
+QT_WARNING_DISABLE_MSVC(4800) /* 'type' : forcing value to bool 'true' or 'false' (performance warning) */
+QT_WARNING_DISABLE_MSVC(4097) /* typedef-name 'identifier1' used as synonym for class-name 'identifier2' */
+QT_WARNING_DISABLE_MSVC(4706) /* assignment within conditional expression */
# if _MSC_VER <= 1310 // MSVC 2003
-# pragma warning(disable: 4786) /* 'identifier' : identifier was truncated to 'number' characters in the debug information */
+QT_WARNING_DISABLE_MSVC(4786) /* 'identifier' : identifier was truncated to 'number' characters in the debug information */
# endif
-# pragma warning(disable: 4355) /* 'this' : used in base member initializer list */
+QT_WARNING_DISABLE_MSVC(4355) /* 'this' : used in base member initializer list */
# if _MSC_VER < 1800 // MSVC 2013
-# pragma warning(disable: 4231) /* nonstandard extension used : 'identifier' before template explicit instantiation */
+QT_WARNING_DISABLE_MSVC(4231) /* nonstandard extension used : 'identifier' before template explicit instantiation */
# endif
-# pragma warning(disable: 4710) /* function not inlined */
-# pragma warning(disable: 4530) /* C++ exception handler used, but unwind semantics are not enabled. Specify /EHsc */
+QT_WARNING_DISABLE_MSVC(4710) /* function not inlined */
+QT_WARNING_DISABLE_MSVC(4530) /* C++ exception handler used, but unwind semantics are not enabled. Specify /EHsc */
# elif defined(Q_CC_BOR)
# pragma option -w-inl
# pragma option -w-aus
@@ -1027,6 +1031,7 @@ Q_CORE_EXPORT bool qunsetenv(const char *varName);
Q_CORE_EXPORT bool qEnvironmentVariableIsEmpty(const char *varName) Q_DECL_NOEXCEPT;
Q_CORE_EXPORT bool qEnvironmentVariableIsSet(const char *varName) Q_DECL_NOEXCEPT;
+Q_CORE_EXPORT int qEnvironmentVariableIntValue(const char *varName, bool *ok=0) Q_DECL_NOEXCEPT;
inline int qIntCast(double f) { return int(f); }
inline int qIntCast(float f) { return int(f); }
diff --git a/src/corelib/global/qlibraryinfo.cpp b/src/corelib/global/qlibraryinfo.cpp
index 7ca0aa7f0b..c60ca7e9b0 100644
--- a/src/corelib/global/qlibraryinfo.cpp
+++ b/src/corelib/global/qlibraryinfo.cpp
@@ -288,6 +288,8 @@ QLibraryInfo::buildDate()
# define COMPILER_STRING "MSVC 2012"
# elif _MSC_VER < 1900
# define COMPILER_STRING "MSVC 2013"
+# elif _MSC_VER < 2000
+# define COMPILER_STRING "MSVC 2015"
# else
# define COMPILER_STRING "MSVC _MSC_VER " QT_STRINGIFY(_MSC_VER)
# endif
diff --git a/src/corelib/global/qlogging.cpp b/src/corelib/global/qlogging.cpp
index 50d35a6d84..c4dacd3411 100644
--- a/src/corelib/global/qlogging.cpp
+++ b/src/corelib/global/qlogging.cpp
@@ -825,6 +825,9 @@ struct QMessagePattern {
const char **literals;
const char **tokens;
QString timeFormat;
+#ifndef QT_BOOTSTRAPPED
+ QElapsedTimer timer;
+#endif
#ifdef QLOGGING_HAVE_BACKTRACE
int backtraceDepth;
QString backtraceSeparator;
@@ -832,10 +835,6 @@ struct QMessagePattern {
bool fromEnvironment;
static QBasicMutex mutex;
-#ifndef QT_BOOTSTRAPPED
- QElapsedTimer timer;
- QDateTime startTime;
-#endif
};
QBasicMutex QMessagePattern::mutex;
@@ -848,9 +847,6 @@ QMessagePattern::QMessagePattern()
, backtraceSeparator(QLatin1Char('|'))
#endif
, fromEnvironment(false)
-#ifndef QT_BOOTSTRAPPED
- , startTime(QDateTime::currentDateTime())
-#endif
{
#ifndef QT_BOOTSTRAPPED
timer.start();
@@ -1201,6 +1197,12 @@ QString qFormatLogMessage(QtMsgType type, const QMessageLogContext &context, con
if (pattern->timeFormat == QLatin1String("process")) {
quint64 ms = pattern->timer.elapsed();
message.append(QString().sprintf("%6d.%03d", uint(ms / 1000), uint(ms % 1000)));
+ } else if (pattern->timeFormat == QLatin1String("boot")) {
+ // just print the milliseconds since the elapsed timer reference
+ // like the Linux kernel does
+ pattern->timer.elapsed();
+ uint ms = pattern->timer.msecsSinceReference();
+ message.append(QString().sprintf("%6d.%03d", uint(ms / 1000), uint(ms % 1000)));
} else if (pattern->timeFormat.isEmpty()) {
message.append(QDateTime::currentDateTime().toString(Qt::ISODate));
} else {
@@ -1551,6 +1553,9 @@ void qErrnoWarning(int code, const char *msg, ...)
\row \li \c %{threadid} \li ID of current thread
\row \li \c %{type} \li "debug", "warning", "critical" or "fatal"
\row \li \c %{time process} \li time of the message, in seconds since the process started (the token "process" is literal)
+ \row \li \c %{time boot} \li the time of the message, in seconds since the system boot if that
+ can be determined (the token "boot" is literal). If the time since boot could not be obtained,
+ the output is indeterminate (see QElapsedTimer::msecsSinceReference()).
\row \li \c %{time [format]} \li system time when the message occurred, formatted by
passing the \c format to \l QDateTime::toString(). If the format is
not specified, the format of Qt::ISODate is used.
diff --git a/src/corelib/global/qsysinfo.h b/src/corelib/global/qsysinfo.h
index 277caa8db6..35672479e0 100644
--- a/src/corelib/global/qsysinfo.h
+++ b/src/corelib/global/qsysinfo.h
@@ -72,8 +72,9 @@ public:
# endif
};
#endif
-#if defined(Q_OS_WIN) || defined(Q_OS_CYGWIN)
enum WinVersion {
+ WV_None = 0x0000,
+
WV_32s = 0x0001,
WV_95 = 0x0002,
WV_98 = 0x0003,
@@ -107,13 +108,18 @@ public:
WV_CE_6 = 0x0400,
WV_CE_based = 0x0f00
};
+#if defined(Q_OS_WIN) || defined(Q_OS_CYGWIN)
static const WinVersion WindowsVersion;
static WinVersion windowsVersion();
-
+#else
+ static const WinVersion WindowsVersion = WV_None;
+ static WinVersion windowsVersion() { return WV_None; }
#endif
-#ifdef Q_OS_MAC
-# define Q_MV_IOS(major, minor) (QSysInfo::MV_IOS | major << 4 | minor)
+
+#define Q_MV_OSX(major, minor) (major == 10 ? minor + 2 : (major == 9 ? 1 : 0))
+#define Q_MV_IOS(major, minor) (QSysInfo::MV_IOS | major << 4 | minor)
enum MacVersion {
+ MV_None = 0xffff,
MV_Unknown = 0x0000,
/* version */
@@ -154,8 +160,12 @@ public:
MV_IOS_7_1 = Q_MV_IOS(7, 1),
MV_IOS_8_0 = Q_MV_IOS(8, 0)
};
+#if defined(Q_OS_MAC)
static const MacVersion MacintoshVersion;
static MacVersion macVersion();
+#else
+ static const MacVersion MacintoshVersion = MV_None;
+ static MacVersion macVersion() { return MV_None; }
#endif
static QString buildCpuArchitecture();
diff --git a/src/corelib/io/qbuffer.cpp b/src/corelib/io/qbuffer.cpp
index 5377eb21e3..200d6a0c0c 100644
--- a/src/corelib/io/qbuffer.cpp
+++ b/src/corelib/io/qbuffer.cpp
@@ -54,8 +54,8 @@ public:
QByteArray *buf;
QByteArray defaultBuf;
- virtual qint64 peek(char *data, qint64 maxSize);
- virtual QByteArray peek(qint64 maxSize);
+ virtual qint64 peek(char *data, qint64 maxSize) Q_DECL_OVERRIDE;
+ virtual QByteArray peek(qint64 maxSize) Q_DECL_OVERRIDE;
#ifndef QT_NO_QOBJECT
// private slots
diff --git a/src/corelib/io/qbuffer.h b/src/corelib/io/qbuffer.h
index 24b05aad13..56c80f8a7d 100644
--- a/src/corelib/io/qbuffer.h
+++ b/src/corelib/io/qbuffer.h
@@ -67,22 +67,22 @@ public:
inline void setData(const char *data, int len);
const QByteArray &data() const;
- bool open(OpenMode openMode);
+ bool open(OpenMode openMode) Q_DECL_OVERRIDE;
- void close();
- qint64 size() const;
- qint64 pos() const;
- bool seek(qint64 off);
- bool atEnd() const;
- bool canReadLine() const;
+ void close() Q_DECL_OVERRIDE;
+ qint64 size() const Q_DECL_OVERRIDE;
+ qint64 pos() const Q_DECL_OVERRIDE;
+ bool seek(qint64 off) Q_DECL_OVERRIDE;
+ bool atEnd() const Q_DECL_OVERRIDE;
+ bool canReadLine() const Q_DECL_OVERRIDE;
protected:
#ifndef QT_NO_QOBJECT
- void connectNotify(const QMetaMethod &);
- void disconnectNotify(const QMetaMethod &);
+ void connectNotify(const QMetaMethod &) Q_DECL_OVERRIDE;
+ void disconnectNotify(const QMetaMethod &) Q_DECL_OVERRIDE;
#endif
- qint64 readData(char *data, qint64 maxlen);
- qint64 writeData(const char *data, qint64 len);
+ qint64 readData(char *data, qint64 maxlen) Q_DECL_OVERRIDE;
+ qint64 writeData(const char *data, qint64 len) Q_DECL_OVERRIDE;
private:
Q_DECLARE_PRIVATE(QBuffer)
diff --git a/src/corelib/io/qdatastream.cpp b/src/corelib/io/qdatastream.cpp
index beaafe4762..60f04ce4f1 100644
--- a/src/corelib/io/qdatastream.cpp
+++ b/src/corelib/io/qdatastream.cpp
@@ -525,6 +525,7 @@ void QDataStream::setByteOrder(ByteOrder bo)
\value Qt_5_2 Version 15 (Qt 5.2)
\value Qt_5_3 Same as Qt_5_2
\value Qt_5_4 Version 16 (Qt 5.4)
+ \value Qt_5_5 Same as Qt_5_4
\omitvalue Qt_DefaultCompiledVersion
\sa setVersion(), version()
diff --git a/src/corelib/io/qdatastream.h b/src/corelib/io/qdatastream.h
index 75ffa11543..8e1d777011 100644
--- a/src/corelib/io/qdatastream.h
+++ b/src/corelib/io/qdatastream.h
@@ -82,10 +82,11 @@ public:
Qt_5_2 = 15,
Qt_5_3 = Qt_5_2,
Qt_5_4 = 16,
-#if QT_VERSION >= 0x050500
+ Qt_5_5 = Qt_5_4,
+#if QT_VERSION >= 0x050600
#error Add the datastream version for this Qt version and update Qt_DefaultCompiledVersion
#endif
- Qt_DefaultCompiledVersion = Qt_5_4
+ Qt_DefaultCompiledVersion = Qt_5_5
};
enum ByteOrder {
diff --git a/src/corelib/io/qdebug.cpp b/src/corelib/io/qdebug.cpp
index 5c77ccdcbf..050a48bd65 100644
--- a/src/corelib/io/qdebug.cpp
+++ b/src/corelib/io/qdebug.cpp
@@ -148,6 +148,28 @@ QDebug::~QDebug()
}
/*!
+ \internal
+*/
+void QDebug::putUcs4(uint ucs4)
+{
+ maybeQuote('\'');
+ if (ucs4 < 0x20) {
+ stream->ts << hex << "\\x" << ucs4 << reset;
+ } else if (ucs4 < 0x80) {
+ stream->ts << char(ucs4);
+ } else {
+ stream->ts << hex << qSetPadChar(QLatin1Char('0'));
+ if (ucs4 < 0x10000)
+ stream->ts << qSetFieldWidth(4) << "\\u";
+ else
+ stream->ts << qSetFieldWidth(8) << "\\U";
+ stream->ts << ucs4 << reset;
+ }
+ maybeQuote('\'');
+}
+
+
+/*!
\fn QDebug::swap(QDebug &other)
\since 5.0
diff --git a/src/corelib/io/qdebug.h b/src/corelib/io/qdebug.h
index 4edb3057fb..4295800f1a 100644
--- a/src/corelib/io/qdebug.h
+++ b/src/corelib/io/qdebug.h
@@ -76,6 +76,8 @@ class Q_CORE_EXPORT QDebug
// added in 5.4
int flags;
} *stream;
+
+ void putUcs4(uint ucs4);
public:
inline QDebug(QIODevice *device) : stream(new Stream(device)) {}
inline QDebug(QString *string) : stream(new Stream(string)) {}
@@ -98,11 +100,15 @@ public:
inline QDebug &noquote() { stream->setFlag(Stream::NoQuotes); return *this; }
inline QDebug &maybeQuote(char c = '"') { if (!(stream->testFlag(Stream::NoQuotes))) stream->ts << c; return *this; }
- inline QDebug &operator<<(QChar t) { maybeQuote('\''); stream->ts << t; maybeQuote('\''); return maybeSpace(); }
+ inline QDebug &operator<<(QChar t) { putUcs4(t.unicode()); return maybeSpace(); }
inline QDebug &operator<<(bool t) { stream->ts << (t ? "true" : "false"); return maybeSpace(); }
inline QDebug &operator<<(char t) { stream->ts << t; return maybeSpace(); }
inline QDebug &operator<<(signed short t) { stream->ts << t; return maybeSpace(); }
inline QDebug &operator<<(unsigned short t) { stream->ts << t; return maybeSpace(); }
+#ifdef Q_COMPILER_UNICODE_STRINGS
+ inline QDebug &operator<<(char16_t t) { return *this << QChar(t); }
+ inline QDebug &operator<<(char32_t t) { putUcs4(t); return maybeSpace(); }
+#endif
inline QDebug &operator<<(signed int t) { stream->ts << t; return maybeSpace(); }
inline QDebug &operator<<(unsigned int t) { stream->ts << t; return maybeSpace(); }
inline QDebug &operator<<(signed long t) { stream->ts << t; return maybeSpace(); }
@@ -117,6 +123,9 @@ public:
inline QDebug &operator<<(QLatin1String t) { maybeQuote(); stream->ts << t; maybeQuote(); return maybeSpace(); }
inline QDebug &operator<<(const QByteArray & t) { maybeQuote(); stream->ts << t; maybeQuote(); return maybeSpace(); }
inline QDebug &operator<<(const void * t) { stream->ts << t; return maybeSpace(); }
+#ifdef Q_COMPILER_NULLPTR
+ inline QDebug &operator<<(std::nullptr_t) { stream->ts << "(nullptr)"; return maybeSpace(); }
+#endif
inline QDebug &operator<<(QTextStreamFunction f) {
stream->ts << f;
return *this;
diff --git a/src/corelib/io/qdir.cpp b/src/corelib/io/qdir.cpp
index a5e189a825..92f2fc0815 100644
--- a/src/corelib/io/qdir.cpp
+++ b/src/corelib/io/qdir.cpp
@@ -2271,6 +2271,8 @@ QStringList QDir::nameFiltersFromString(const QString &nameFilter)
#ifndef QT_NO_DEBUG_STREAM
QDebug operator<<(QDebug debug, QDir::Filters filters)
{
+ QDebugStateSaver save(debug);
+ debug.resetFormat();
QStringList flags;
if (filters == QDir::NoFilter) {
flags << QLatin1String("NoFilter");
@@ -2291,12 +2293,14 @@ QDebug operator<<(QDebug debug, QDir::Filters filters)
if (filters & QDir::System) flags << QLatin1String("System");
if (filters & QDir::CaseSensitive) flags << QLatin1String("CaseSensitive");
}
- debug << "QDir::Filters(" << qPrintable(flags.join(QLatin1Char('|'))) << ')';
+ debug.noquote() << "QDir::Filters(" << flags.join(QLatin1Char('|')) << ')';
return debug;
}
static QDebug operator<<(QDebug debug, QDir::SortFlags sorting)
{
+ QDebugStateSaver save(debug);
+ debug.resetFormat();
if (sorting == QDir::NoSort) {
debug << "QDir::SortFlags(NoSort)";
} else {
@@ -2312,24 +2316,23 @@ static QDebug operator<<(QDebug debug, QDir::SortFlags sorting)
if (sorting & QDir::IgnoreCase) flags << QLatin1String("IgnoreCase");
if (sorting & QDir::LocaleAware) flags << QLatin1String("LocaleAware");
if (sorting & QDir::Type) flags << QLatin1String("Type");
- debug << "QDir::SortFlags(" << qPrintable(type)
- << '|'
- << qPrintable(flags.join(QLatin1Char('|'))) << ')';
+ debug.noquote() << "QDir::SortFlags(" << type << '|' << flags.join(QLatin1Char('|')) << ')';
}
return debug;
}
QDebug operator<<(QDebug debug, const QDir &dir)
{
- debug.maybeSpace() << "QDir(" << dir.path()
- << ", nameFilters = {"
- << qPrintable(dir.nameFilters().join(QLatin1Char(',')))
- << "}, "
- << dir.sorting()
- << ','
- << dir.filter()
- << ')';
- return debug.space();
+ QDebugStateSaver save(debug);
+ debug.resetFormat();
+ debug << "QDir(" << dir.path() << ", nameFilters = {"
+ << dir.nameFilters().join(QLatin1Char(','))
+ << "}, "
+ << dir.sorting()
+ << ','
+ << dir.filter()
+ << ')';
+ return debug;
}
#endif // QT_NO_DEBUG_STREAM
diff --git a/src/corelib/io/qfile.h b/src/corelib/io/qfile.h
index 75f246da96..3c44ee3397 100644
--- a/src/corelib/io/qfile.h
+++ b/src/corelib/io/qfile.h
@@ -63,7 +63,7 @@ public:
#endif
~QFile();
- QString fileName() const;
+ QString fileName() const Q_DECL_OVERRIDE;
void setFileName(const QString &name);
#if defined(Q_OS_DARWIN)
@@ -116,18 +116,18 @@ public:
bool copy(const QString &newName);
static bool copy(const QString &fileName, const QString &newName);
- bool open(OpenMode flags);
+ bool open(OpenMode flags) Q_DECL_OVERRIDE;
bool open(FILE *f, OpenMode ioFlags, FileHandleFlags handleFlags=DontCloseHandle);
bool open(int fd, OpenMode ioFlags, FileHandleFlags handleFlags=DontCloseHandle);
- qint64 size() const;
+ qint64 size() const Q_DECL_OVERRIDE;
- bool resize(qint64 sz);
+ bool resize(qint64 sz) Q_DECL_OVERRIDE;
static bool resize(const QString &filename, qint64 sz);
- Permissions permissions() const;
+ Permissions permissions() const Q_DECL_OVERRIDE;
static Permissions permissions(const QString &filename);
- bool setPermissions(Permissions permissionSpec);
+ bool setPermissions(Permissions permissionSpec) Q_DECL_OVERRIDE;
static bool setPermissions(const QString &filename, Permissions permissionSpec);
protected:
diff --git a/src/corelib/io/qfiledevice.h b/src/corelib/io/qfiledevice.h
index b79b0055fa..ca12bb0411 100644
--- a/src/corelib/io/qfiledevice.h
+++ b/src/corelib/io/qfiledevice.h
@@ -86,19 +86,19 @@ public:
FileError error() const;
void unsetError();
- virtual void close();
+ virtual void close() Q_DECL_OVERRIDE;
- bool isSequential() const;
+ bool isSequential() const Q_DECL_OVERRIDE;
int handle() const;
virtual QString fileName() const;
- qint64 pos() const;
- bool seek(qint64 offset);
- bool atEnd() const;
+ qint64 pos() const Q_DECL_OVERRIDE;
+ bool seek(qint64 offset) Q_DECL_OVERRIDE;
+ bool atEnd() const Q_DECL_OVERRIDE;
bool flush();
- qint64 size() const;
+ qint64 size() const Q_DECL_OVERRIDE;
virtual bool resize(qint64 sz);
virtual Permissions permissions() const;
@@ -122,9 +122,9 @@ protected:
QFileDevice(QFileDevicePrivate &dd, QObject *parent = 0);
#endif
- qint64 readData(char *data, qint64 maxlen);
- qint64 writeData(const char *data, qint64 len);
- qint64 readLineData(char *data, qint64 maxlen);
+ qint64 readData(char *data, qint64 maxlen) Q_DECL_OVERRIDE;
+ qint64 writeData(const char *data, qint64 len) Q_DECL_OVERRIDE;
+ qint64 readLineData(char *data, qint64 maxlen) Q_DECL_OVERRIDE;
private:
Q_DISABLE_COPY(QFileDevice)
diff --git a/src/corelib/io/qfiledevice_p.h b/src/corelib/io/qfiledevice_p.h
index 891a5e4be4..da29c51468 100644
--- a/src/corelib/io/qfiledevice_p.h
+++ b/src/corelib/io/qfiledevice_p.h
@@ -64,7 +64,7 @@ protected:
inline bool ensureFlushed() const;
- bool putCharHelper(char c);
+ bool putCharHelper(char c) Q_DECL_OVERRIDE;
void setError(QFileDevice::FileError err);
void setError(QFileDevice::FileError err, const QString &errorString);
diff --git a/src/corelib/io/qfileselector.cpp b/src/corelib/io/qfileselector.cpp
index 5d1d5dfe23..95fa970b2d 100644
--- a/src/corelib/io/qfileselector.cpp
+++ b/src/corelib/io/qfileselector.cpp
@@ -335,7 +335,7 @@ void QFileSelectorPrivate::updateSelectors()
if (envSelectors.count())
sharedData->staticSelectors << envSelectors;
- if (!qgetenv(env_override).isEmpty())
+ if (!qEnvironmentVariableIsEmpty(env_override))
return;
sharedData->staticSelectors << sharedData->preloadedStatics; //Potential for static selectors from other modules
diff --git a/src/corelib/io/qfilesystemengine_unix.cpp b/src/corelib/io/qfilesystemengine_unix.cpp
index cd42aff35c..11d421591a 100644
--- a/src/corelib/io/qfilesystemengine_unix.cpp
+++ b/src/corelib/io/qfilesystemengine_unix.cpp
@@ -723,36 +723,29 @@ bool QFileSystemEngine::setCurrentPath(const QFileSystemEntry &path)
QFileSystemEntry QFileSystemEngine::currentPath()
{
QFileSystemEntry result;
- QT_STATBUF st;
- if (QT_STAT(".", &st) == 0) {
#if defined(__GLIBC__) && !defined(PATH_MAX)
- char *currentName = ::get_current_dir_name();
- if (currentName) {
- result = QFileSystemEntry(QByteArray(currentName), QFileSystemEntry::FromNativePath());
- ::free(currentName);
- }
+ char *currentName = ::get_current_dir_name();
+ if (currentName) {
+ result = QFileSystemEntry(QByteArray(currentName), QFileSystemEntry::FromNativePath());
+ ::free(currentName);
+ }
#else
- char currentName[PATH_MAX+1];
- if (::getcwd(currentName, PATH_MAX)) {
+ char currentName[PATH_MAX+1];
+ if (::getcwd(currentName, PATH_MAX)) {
#if defined(Q_OS_VXWORKS) && defined(VXWORKS_VXSIM)
- QByteArray dir(currentName);
- if (dir.indexOf(':') < dir.indexOf('/'))
- dir.remove(0, dir.indexOf(':')+1);
+ QByteArray dir(currentName);
+ if (dir.indexOf(':') < dir.indexOf('/'))
+ dir.remove(0, dir.indexOf(':')+1);
- qstrncpy(currentName, dir.constData(), PATH_MAX);
+ qstrncpy(currentName, dir.constData(), PATH_MAX);
#endif
- result = QFileSystemEntry(QByteArray(currentName), QFileSystemEntry::FromNativePath());
- }
+ result = QFileSystemEntry(QByteArray(currentName), QFileSystemEntry::FromNativePath());
+ }
# if defined(QT_DEBUG)
- if (result.isEmpty())
- qWarning("QFileSystemEngine::currentPath: getcwd() failed");
+ if (result.isEmpty())
+ qWarning("QFileSystemEngine::currentPath: getcwd() failed");
# endif
#endif
- } else {
-# if defined(QT_DEBUG)
- qWarning("QFileSystemEngine::currentPath: stat(\".\") failed");
-# endif
- }
return result;
}
QT_END_NAMESPACE
diff --git a/src/corelib/io/qfilesystemwatcher_inotify_p.h b/src/corelib/io/qfilesystemwatcher_inotify_p.h
index a9bc8486dc..506f571e2b 100644
--- a/src/corelib/io/qfilesystemwatcher_inotify_p.h
+++ b/src/corelib/io/qfilesystemwatcher_inotify_p.h
@@ -64,8 +64,8 @@ public:
static QInotifyFileSystemWatcherEngine *create(QObject *parent);
- QStringList addPaths(const QStringList &paths, QStringList *files, QStringList *directories);
- QStringList removePaths(const QStringList &paths, QStringList *files, QStringList *directories);
+ QStringList addPaths(const QStringList &paths, QStringList *files, QStringList *directories) Q_DECL_OVERRIDE;
+ QStringList removePaths(const QStringList &paths, QStringList *files, QStringList *directories) Q_DECL_OVERRIDE;
private Q_SLOTS:
void readFromInotify();
diff --git a/src/corelib/io/qfilesystemwatcher_polling_p.h b/src/corelib/io/qfilesystemwatcher_polling_p.h
index f39d72d5d8..3833869806 100644
--- a/src/corelib/io/qfilesystemwatcher_polling_p.h
+++ b/src/corelib/io/qfilesystemwatcher_polling_p.h
@@ -104,8 +104,8 @@ class QPollingFileSystemWatcherEngine : public QFileSystemWatcherEngine
public:
QPollingFileSystemWatcherEngine(QObject *parent);
- QStringList addPaths(const QStringList &paths, QStringList *files, QStringList *directories);
- QStringList removePaths(const QStringList &paths, QStringList *files, QStringList *directories);
+ QStringList addPaths(const QStringList &paths, QStringList *files, QStringList *directories) Q_DECL_OVERRIDE;
+ QStringList removePaths(const QStringList &paths, QStringList *files, QStringList *directories) Q_DECL_OVERRIDE;
private Q_SLOTS:
void timeout();
diff --git a/src/corelib/io/qfsfileengine_iterator_p.h b/src/corelib/io/qfsfileengine_iterator_p.h
index cc5b36fc57..35cb89673c 100644
--- a/src/corelib/io/qfsfileengine_iterator_p.h
+++ b/src/corelib/io/qfsfileengine_iterator_p.h
@@ -62,11 +62,11 @@ public:
QFSFileEngineIterator(QDir::Filters filters, const QStringList &filterNames);
~QFSFileEngineIterator();
- QString next();
- bool hasNext() const;
+ QString next() Q_DECL_OVERRIDE;
+ bool hasNext() const Q_DECL_OVERRIDE;
- QString currentFileName() const;
- QFileInfo currentFileInfo() const;
+ QString currentFileName() const Q_DECL_OVERRIDE;
+ QFileInfo currentFileInfo() const Q_DECL_OVERRIDE;
private:
void advance() const;
diff --git a/src/corelib/io/qfsfileengine_p.h b/src/corelib/io/qfsfileengine_p.h
index 3963a9cb11..f843a870b8 100644
--- a/src/corelib/io/qfsfileengine_p.h
+++ b/src/corelib/io/qfsfileengine_p.h
@@ -69,46 +69,46 @@ public:
explicit QFSFileEngine(const QString &file);
~QFSFileEngine();
- bool open(QIODevice::OpenMode openMode);
+ bool open(QIODevice::OpenMode openMode) Q_DECL_OVERRIDE;
bool open(QIODevice::OpenMode flags, FILE *fh);
- bool close();
- bool flush();
- bool syncToDisk();
- qint64 size() const;
- qint64 pos() const;
- bool seek(qint64);
- bool isSequential() const;
- bool remove();
- bool copy(const QString &newName);
- bool rename(const QString &newName);
- bool renameOverwrite(const QString &newName);
- bool link(const QString &newName);
- bool mkdir(const QString &dirName, bool createParentDirectories) const;
- bool rmdir(const QString &dirName, bool recurseParentDirectories) const;
- bool setSize(qint64 size);
- bool caseSensitive() const;
- bool isRelativePath() const;
- QStringList entryList(QDir::Filters filters, const QStringList &filterNames) const;
- FileFlags fileFlags(FileFlags type) const;
- bool setPermissions(uint perms);
- QString fileName(FileName file) const;
- uint ownerId(FileOwner) const;
- QString owner(FileOwner) const;
- QDateTime fileTime(FileTime time) const;
- void setFileName(const QString &file);
- int handle() const;
+ bool close() Q_DECL_OVERRIDE;
+ bool flush() Q_DECL_OVERRIDE;
+ bool syncToDisk() Q_DECL_OVERRIDE;
+ qint64 size() const Q_DECL_OVERRIDE;
+ qint64 pos() const Q_DECL_OVERRIDE;
+ bool seek(qint64) Q_DECL_OVERRIDE;
+ bool isSequential() const Q_DECL_OVERRIDE;
+ bool remove() Q_DECL_OVERRIDE;
+ bool copy(const QString &newName) Q_DECL_OVERRIDE;
+ bool rename(const QString &newName) Q_DECL_OVERRIDE;
+ bool renameOverwrite(const QString &newName) Q_DECL_OVERRIDE;
+ bool link(const QString &newName) Q_DECL_OVERRIDE;
+ bool mkdir(const QString &dirName, bool createParentDirectories) const Q_DECL_OVERRIDE;
+ bool rmdir(const QString &dirName, bool recurseParentDirectories) const Q_DECL_OVERRIDE;
+ bool setSize(qint64 size) Q_DECL_OVERRIDE;
+ bool caseSensitive() const Q_DECL_OVERRIDE;
+ bool isRelativePath() const Q_DECL_OVERRIDE;
+ QStringList entryList(QDir::Filters filters, const QStringList &filterNames) const Q_DECL_OVERRIDE;
+ FileFlags fileFlags(FileFlags type) const Q_DECL_OVERRIDE;
+ bool setPermissions(uint perms) Q_DECL_OVERRIDE;
+ QString fileName(FileName file) const Q_DECL_OVERRIDE;
+ uint ownerId(FileOwner) const Q_DECL_OVERRIDE;
+ QString owner(FileOwner) const Q_DECL_OVERRIDE;
+ QDateTime fileTime(FileTime time) const Q_DECL_OVERRIDE;
+ void setFileName(const QString &file) Q_DECL_OVERRIDE;
+ int handle() const Q_DECL_OVERRIDE;
#ifndef QT_NO_FILESYSTEMITERATOR
- Iterator *beginEntryList(QDir::Filters filters, const QStringList &filterNames);
- Iterator *endEntryList();
+ Iterator *beginEntryList(QDir::Filters filters, const QStringList &filterNames) Q_DECL_OVERRIDE;
+ Iterator *endEntryList() Q_DECL_OVERRIDE;
#endif
- qint64 read(char *data, qint64 maxlen);
- qint64 readLine(char *data, qint64 maxlen);
- qint64 write(const char *data, qint64 len);
+ qint64 read(char *data, qint64 maxlen) Q_DECL_OVERRIDE;
+ qint64 readLine(char *data, qint64 maxlen) Q_DECL_OVERRIDE;
+ qint64 write(const char *data, qint64 len) Q_DECL_OVERRIDE;
- bool extension(Extension extension, const ExtensionOption *option = 0, ExtensionReturn *output = 0);
- bool supportsExtension(Extension extension) const;
+ bool extension(Extension extension, const ExtensionOption *option = 0, ExtensionReturn *output = 0) Q_DECL_OVERRIDE;
+ bool supportsExtension(Extension extension) const Q_DECL_OVERRIDE;
//FS only!!
bool open(QIODevice::OpenMode flags, int fd);
diff --git a/src/corelib/io/qiodevice.cpp b/src/corelib/io/qiodevice.cpp
index 72ec6ff403..d7ce8731c5 100644
--- a/src/corelib/io/qiodevice.cpp
+++ b/src/corelib/io/qiodevice.cpp
@@ -783,27 +783,20 @@ qint64 QIODevice::read(char *data, qint64 maxSize)
CHECK_MAXLEN(read, qint64(-1));
qint64 readSoFar = 0;
- bool moreToRead = true;
- do {
+ bool madeBufferReadsOnly = true;
+ bool deviceAtEof = false;
+ char *readPtr = data;
+ forever {
// Try reading from the buffer.
- qint64 lastReadChunkSize = d->buffer.read(data, maxSize);
- if (lastReadChunkSize > 0) {
- *d->pPos += lastReadChunkSize;
- readSoFar += lastReadChunkSize;
- // fast exit when satisfied by buffer
- if (lastReadChunkSize == maxSize && !(d->openMode & Text)) {
- if (d->buffer.isEmpty()) {
- d->buffer.clear();
- readData(data, 0);
- }
- return readSoFar;
- }
-
- data += lastReadChunkSize;
- maxSize -= lastReadChunkSize;
+ qint64 bufferReadChunkSize = d->buffer.read(data, maxSize);
+ if (bufferReadChunkSize > 0) {
+ *d->pPos += bufferReadChunkSize;
+ readSoFar += bufferReadChunkSize;
+ data += bufferReadChunkSize;
+ maxSize -= bufferReadChunkSize;
#if defined QIODEVICE_DEBUG
- printf("%p \treading %d bytes from buffer into position %d\n", this, lastReadChunkSize,
- int(readSoFar) - lastReadChunkSize);
+ printf("%p \treading %d bytes from buffer into position %d\n", this,
+ bufferReadChunkSize, int(readSoFar) - bufferReadChunkSize);
#endif
} else {
if (d->firstRead) {
@@ -816,100 +809,84 @@ qint64 QIODevice::read(char *data, qint64 maxSize)
d->pDevicePos = &d->seqDumpPos;
}
}
+ }
- if (!maxSize)
- return readSoFar;
-
- if ((d->openMode & Unbuffered) == 0 && maxSize < QIODEVICE_BUFFERSIZE) {
- // In buffered mode, we try to fill up the QIODevice buffer before
- // we do anything else.
- // buffer is empty at this point, try to fill it
- const int bytesToBuffer = QIODEVICE_BUFFERSIZE;
- char *writePointer = d->buffer.reserve(bytesToBuffer);
-
- // Make sure the device is positioned correctly.
- if (d->pos != d->devicePos && !d->isSequential() && !seek(d->pos))
- return readSoFar ? readSoFar : qint64(-1);
- qint64 readFromDevice = readData(writePointer, bytesToBuffer);
- d->buffer.chop(bytesToBuffer - (readFromDevice < 0 ? 0 : int(readFromDevice)));
-
- if (readFromDevice > 0) {
- *d->pDevicePos += readFromDevice;
+ if (maxSize > 0 && !deviceAtEof) {
+ qint64 readFromDevice = 0;
+ // Make sure the device is positioned correctly.
+ if (d->pos == d->devicePos || d->isSequential() || seek(d->pos)) {
+ madeBufferReadsOnly = false; // fix readData attempt
+ if (maxSize >= QIODEVICE_BUFFERSIZE || (d->openMode & Unbuffered)) {
+ // Read big chunk directly to output buffer
+ readFromDevice = readData(data, maxSize);
+ deviceAtEof = (readFromDevice != maxSize);
#if defined QIODEVICE_DEBUG
- printf("%p \treading %d from device into buffer\n", this, int(readFromDevice));
+ printf("%p \treading %d bytes from device (total %d)\n", this,
+ int(readFromDevice), int(readSoFar));
#endif
-
- if (!d->buffer.isEmpty()) {
- lastReadChunkSize = d->buffer.read(data, maxSize);
- readSoFar += lastReadChunkSize;
- data += lastReadChunkSize;
- maxSize -= lastReadChunkSize;
- *d->pPos += lastReadChunkSize;
+ if (readFromDevice > 0) {
+ readSoFar += readFromDevice;
+ data += readFromDevice;
+ maxSize -= readFromDevice;
+ *d->pPos += readFromDevice;
+ *d->pDevicePos += readFromDevice;
+ }
+ } else {
+ const int bytesToBuffer = QIODEVICE_BUFFERSIZE;
+ // Try to fill QIODevice buffer by single read
+ readFromDevice = readData(d->buffer.reserve(bytesToBuffer), bytesToBuffer);
+ deviceAtEof = (readFromDevice != bytesToBuffer);
+ d->buffer.chop(bytesToBuffer - qMax(0, int(readFromDevice)));
+ if (readFromDevice > 0) {
+ *d->pDevicePos += readFromDevice;
#if defined QIODEVICE_DEBUG
- printf("%p \treading %d bytes from buffer at position %d\n", this,
- lastReadChunkSize, int(readSoFar));
+ printf("%p \treading %d from device into buffer\n", this,
+ int(readFromDevice));
#endif
+ continue;
}
}
+ } else {
+ readFromDevice = -1;
}
- }
- // If we need more, try reading from the device.
- if (maxSize > 0) {
- // Make sure the device is positioned correctly.
- if (d->pos != d->devicePos && !d->isSequential() && !seek(d->pos))
- return readSoFar ? readSoFar : qint64(-1);
- qint64 readFromDevice = readData(data, maxSize);
-#if defined QIODEVICE_DEBUG
- printf("%p \treading %d bytes from device (total %d)\n", this, int(readFromDevice), int(readSoFar));
-#endif
- if (readFromDevice == -1 && readSoFar == 0) {
+ if (readFromDevice < 0 && readSoFar == 0) {
// error and we haven't read anything: return immediately
- return -1;
- }
- if (readFromDevice > 0) {
- lastReadChunkSize += int(readFromDevice);
- readSoFar += readFromDevice;
- data += readFromDevice;
- maxSize -= readFromDevice;
- *d->pPos += readFromDevice;
- *d->pDevicePos += readFromDevice;
+ return qint64(-1);
}
}
- // Best attempt has been made to read data, don't try again except for text mode adjustment below
- moreToRead = false;
- if (readSoFar && d->openMode & Text) {
- char *readPtr = data - lastReadChunkSize;
+ if ((d->openMode & Text) && readPtr < data) {
const char *endPtr = data;
- if (readPtr < endPtr) {
- // optimization to avoid initial self-assignment
- while (*readPtr != '\r') {
- if (++readPtr == endPtr)
- return readSoFar;
- }
+ // optimization to avoid initial self-assignment
+ while (*readPtr != '\r') {
+ if (++readPtr == endPtr)
+ break;
+ }
- char *writePtr = readPtr;
+ char *writePtr = readPtr;
- while (readPtr < endPtr) {
- char ch = *readPtr++;
- if (ch != '\r')
- *writePtr++ = ch;
- else {
- --readSoFar;
- --data;
- ++maxSize;
- }
+ while (readPtr < endPtr) {
+ char ch = *readPtr++;
+ if (ch != '\r')
+ *writePtr++ = ch;
+ else {
+ --readSoFar;
+ --data;
+ ++maxSize;
}
-
- // Make sure we get more data if there is room for more. This
- // is very important for when someone seeks to the start of a
- // '\r\n' and reads one character - they should get the '\n'.
- moreToRead = (readPtr != writePtr);
}
+
+ // Make sure we get more data if there is room for more. This
+ // is very important for when someone seeks to the start of a
+ // '\r\n' and reads one character - they should get the '\n'.
+ readPtr = data;
+ continue;
}
- } while (moreToRead);
+
+ break;
+ }
#if defined QIODEVICE_DEBUG
printf("%p \treturning %d, d->pos == %d, d->buffer.size() == %d\n", this,
@@ -917,8 +894,10 @@ qint64 QIODevice::read(char *data, qint64 maxSize)
debugBinaryString(data - readSoFar, readSoFar);
#endif
- if (d->buffer.isEmpty())
+ if (madeBufferReadsOnly && d->buffer.isEmpty()) {
+ d->buffer.clear();
readData(data, 0);
+ }
return readSoFar;
}
diff --git a/src/corelib/io/qipaddress.cpp b/src/corelib/io/qipaddress.cpp
index 44da22489d..d436cd2dd6 100644
--- a/src/corelib/io/qipaddress.cpp
+++ b/src/corelib/io/qipaddress.cpp
@@ -33,6 +33,7 @@
#include "qipaddress_p.h"
#include "private/qlocale_tools_p.h"
+#include "private/qtools_p.h"
#include "qvarlengtharray.h"
QT_BEGIN_NAMESPACE
@@ -240,7 +241,7 @@ const QChar *parseIp6(IPv6Address &address, const QChar *begin, const QChar *end
static inline QChar toHex(uchar c)
{
- return ushort(c > 9 ? c + 'a' - 0xA : c + '0');
+ return QtMiscUtils::toHexLower(c);
}
void toString(QString &appendTo, IPv6Address address)
diff --git a/src/corelib/io/qnoncontiguousbytedevice_p.h b/src/corelib/io/qnoncontiguousbytedevice_p.h
index c05ae11b0f..1be28ff4b3 100644
--- a/src/corelib/io/qnoncontiguousbytedevice_p.h
+++ b/src/corelib/io/qnoncontiguousbytedevice_p.h
@@ -101,11 +101,11 @@ class QNonContiguousByteDeviceByteArrayImpl : public QNonContiguousByteDevice
public:
QNonContiguousByteDeviceByteArrayImpl(QByteArray *ba);
~QNonContiguousByteDeviceByteArrayImpl();
- const char* readPointer(qint64 maximumLength, qint64 &len);
- bool advanceReadPointer(qint64 amount);
- bool atEnd();
- bool reset();
- qint64 size();
+ const char* readPointer(qint64 maximumLength, qint64 &len) Q_DECL_OVERRIDE;
+ bool advanceReadPointer(qint64 amount) Q_DECL_OVERRIDE;
+ bool atEnd() Q_DECL_OVERRIDE;
+ bool reset() Q_DECL_OVERRIDE;
+ qint64 size() Q_DECL_OVERRIDE;
protected:
QByteArray* byteArray;
qint64 currentPosition;
@@ -116,11 +116,11 @@ class QNonContiguousByteDeviceRingBufferImpl : public QNonContiguousByteDevice
public:
QNonContiguousByteDeviceRingBufferImpl(QSharedPointer<QRingBuffer> rb);
~QNonContiguousByteDeviceRingBufferImpl();
- const char* readPointer(qint64 maximumLength, qint64 &len);
- bool advanceReadPointer(qint64 amount);
- bool atEnd();
- bool reset();
- qint64 size();
+ const char* readPointer(qint64 maximumLength, qint64 &len) Q_DECL_OVERRIDE;
+ bool advanceReadPointer(qint64 amount) Q_DECL_OVERRIDE;
+ bool atEnd() Q_DECL_OVERRIDE;
+ bool reset() Q_DECL_OVERRIDE;
+ qint64 size() Q_DECL_OVERRIDE;
protected:
QSharedPointer<QRingBuffer> ringBuffer;
qint64 currentPosition;
@@ -133,11 +133,11 @@ class QNonContiguousByteDeviceIoDeviceImpl : public QNonContiguousByteDevice
public:
QNonContiguousByteDeviceIoDeviceImpl(QIODevice *d);
~QNonContiguousByteDeviceIoDeviceImpl();
- const char* readPointer(qint64 maximumLength, qint64 &len);
- bool advanceReadPointer(qint64 amount);
- bool atEnd();
- bool reset();
- qint64 size();
+ const char* readPointer(qint64 maximumLength, qint64 &len) Q_DECL_OVERRIDE;
+ bool advanceReadPointer(qint64 amount) Q_DECL_OVERRIDE;
+ bool atEnd() Q_DECL_OVERRIDE;
+ bool reset() Q_DECL_OVERRIDE;
+ qint64 size() Q_DECL_OVERRIDE;
protected:
QIODevice* device;
QByteArray* currentReadBuffer;
@@ -155,11 +155,11 @@ class QNonContiguousByteDeviceBufferImpl : public QNonContiguousByteDevice
public:
QNonContiguousByteDeviceBufferImpl(QBuffer *b);
~QNonContiguousByteDeviceBufferImpl();
- const char* readPointer(qint64 maximumLength, qint64 &len);
- bool advanceReadPointer(qint64 amount);
- bool atEnd();
- bool reset();
- qint64 size();
+ const char* readPointer(qint64 maximumLength, qint64 &len) Q_DECL_OVERRIDE;
+ bool advanceReadPointer(qint64 amount) Q_DECL_OVERRIDE;
+ bool atEnd() Q_DECL_OVERRIDE;
+ bool reset() Q_DECL_OVERRIDE;
+ qint64 size() Q_DECL_OVERRIDE;
protected:
QBuffer* buffer;
QByteArray byteArray;
@@ -172,13 +172,13 @@ class QByteDeviceWrappingIoDevice : public QIODevice
public:
QByteDeviceWrappingIoDevice (QNonContiguousByteDevice *bd);
~QByteDeviceWrappingIoDevice ();
- virtual bool isSequential () const;
- virtual bool atEnd () const;
- virtual bool reset ();
- virtual qint64 size () const;
+ virtual bool isSequential () const Q_DECL_OVERRIDE;
+ virtual bool atEnd () const Q_DECL_OVERRIDE;
+ virtual bool reset () Q_DECL_OVERRIDE;
+ virtual qint64 size () const Q_DECL_OVERRIDE;
protected:
- virtual qint64 readData ( char * data, qint64 maxSize );
- virtual qint64 writeData ( const char * data, qint64 maxSize );
+ virtual qint64 readData ( char * data, qint64 maxSize ) Q_DECL_OVERRIDE;
+ virtual qint64 writeData ( const char * data, qint64 maxSize ) Q_DECL_OVERRIDE;
QNonContiguousByteDevice *byteDevice;
};
diff --git a/src/corelib/io/qprocess.h b/src/corelib/io/qprocess.h
index 8d90177c8b..af3db4ecf6 100644
--- a/src/corelib/io/qprocess.h
+++ b/src/corelib/io/qprocess.h
@@ -182,8 +182,8 @@ public:
qint64 processId() const;
bool waitForStarted(int msecs = 30000);
- bool waitForReadyRead(int msecs = 30000);
- bool waitForBytesWritten(int msecs = 30000);
+ bool waitForReadyRead(int msecs = 30000) Q_DECL_OVERRIDE;
+ bool waitForBytesWritten(int msecs = 30000) Q_DECL_OVERRIDE;
bool waitForFinished(int msecs = 30000);
QByteArray readAllStandardOutput();
@@ -193,12 +193,12 @@ public:
QProcess::ExitStatus exitStatus() const;
// QIODevice
- qint64 bytesAvailable() const;
- qint64 bytesToWrite() const;
- bool isSequential() const;
- bool canReadLine() const;
- void close();
- bool atEnd() const;
+ qint64 bytesAvailable() const Q_DECL_OVERRIDE;
+ qint64 bytesToWrite() const Q_DECL_OVERRIDE;
+ bool isSequential() const Q_DECL_OVERRIDE;
+ bool canReadLine() const Q_DECL_OVERRIDE;
+ void close() Q_DECL_OVERRIDE;
+ bool atEnd() const Q_DECL_OVERRIDE;
static int execute(const QString &program, const QStringList &arguments);
static int execute(const QString &command);
@@ -254,8 +254,8 @@ protected:
virtual void setupChildProcess();
// QIODevice
- qint64 readData(char *data, qint64 maxlen);
- qint64 writeData(const char *data, qint64 len);
+ qint64 readData(char *data, qint64 maxlen) Q_DECL_OVERRIDE;
+ qint64 writeData(const char *data, qint64 len) Q_DECL_OVERRIDE;
private:
Q_DECLARE_PRIVATE(QProcess)
diff --git a/src/corelib/io/qprocess_unix.cpp b/src/corelib/io/qprocess_unix.cpp
index cc154cfbc5..cfee5f1d46 100644
--- a/src/corelib/io/qprocess_unix.cpp
+++ b/src/corelib/io/qprocess_unix.cpp
@@ -165,7 +165,7 @@ public:
QProcessManager();
~QProcessManager();
- void run();
+ void run() Q_DECL_OVERRIDE;
void catchDeadChildren();
void add(pid_t pid, QProcess *process);
void remove(QProcess *process);
diff --git a/src/corelib/io/qresource.cpp b/src/corelib/io/qresource.cpp
index ed6bfb4e0d..d9b51cd288 100644
--- a/src/corelib/io/qresource.cpp
+++ b/src/corelib/io/qresource.cpp
@@ -873,10 +873,16 @@ public:
inline QDynamicBufferResourceRoot(const QString &_root) : root(_root), buffer(0) { }
inline ~QDynamicBufferResourceRoot() { }
inline const uchar *mappingBuffer() const { return buffer; }
- virtual QString mappingRoot() const { return root; }
- virtual ResourceRootType type() const { return Resource_Buffer; }
+ virtual QString mappingRoot() const Q_DECL_OVERRIDE { return root; }
+ virtual ResourceRootType type() const Q_DECL_OVERRIDE { return Resource_Buffer; }
+
+ // size == -1 means "unknown"
+ bool registerSelf(const uchar *b, int size)
+ {
+ // 5 int "pointers"
+ if (size >= 0 && size < 20)
+ return false;
- bool registerSelf(const uchar *b) {
//setup the data now
int offset = 0;
@@ -903,6 +909,10 @@ public:
(b[offset+2] << 8) + (b[offset+3] << 0);
offset += 4;
+ // Some sanity checking for sizes. This is _not_ a security measure.
+ if (size >= 0 && (tree_offset >= size || data_offset >= size || name_offset >= size))
+ return false;
+
if(version == 0x01) {
buffer = b;
setSource(b+tree_offset, b+name_offset, b+data_offset);
@@ -950,7 +960,7 @@ public:
}
}
QString mappingFile() const { return fileName; }
- virtual ResourceRootType type() const { return Resource_File; }
+ virtual ResourceRootType type() const Q_DECL_OVERRIDE { return Resource_File; }
bool registerSelf(const QString &f) {
bool fromMM = false;
@@ -1009,7 +1019,7 @@ public:
}
fromMM = false;
}
- if(data && QDynamicBufferResourceRoot::registerSelf(data)) {
+ if (data && QDynamicBufferResourceRoot::registerSelf(data, data_len)) {
if(fromMM) {
unmapPointer = data;
unmapLength = data_len;
@@ -1124,7 +1134,7 @@ QResource::registerResource(const uchar *rccData, const QString &resourceRoot)
}
QDynamicBufferResourceRoot *root = new QDynamicBufferResourceRoot(r);
- if(root->registerSelf(rccData)) {
+ if (root->registerSelf(rccData, -1)) {
root->ref.ref();
QMutexLocker lock(resourceMutex());
resourceList()->append(root);
diff --git a/src/corelib/io/qresource_iterator_p.h b/src/corelib/io/qresource_iterator_p.h
index 451773ec63..dce298fb44 100644
--- a/src/corelib/io/qresource_iterator_p.h
+++ b/src/corelib/io/qresource_iterator_p.h
@@ -57,10 +57,10 @@ public:
QResourceFileEngineIterator(QDir::Filters filters, const QStringList &filterNames);
~QResourceFileEngineIterator();
- QString next();
- bool hasNext() const;
+ QString next() Q_DECL_OVERRIDE;
+ bool hasNext() const Q_DECL_OVERRIDE;
- QString currentFileName() const;
+ QString currentFileName() const Q_DECL_OVERRIDE;
private:
mutable QStringList entries;
diff --git a/src/corelib/io/qresource_p.h b/src/corelib/io/qresource_p.h
index 030d1587e5..11b2836215 100644
--- a/src/corelib/io/qresource_p.h
+++ b/src/corelib/io/qresource_p.h
@@ -58,52 +58,52 @@ public:
explicit QResourceFileEngine(const QString &path);
~QResourceFileEngine();
- virtual void setFileName(const QString &file);
+ virtual void setFileName(const QString &file) Q_DECL_OVERRIDE;
- virtual bool open(QIODevice::OpenMode flags) ;
- virtual bool close();
- virtual bool flush();
- virtual qint64 size() const;
- virtual qint64 pos() const;
+ virtual bool open(QIODevice::OpenMode flags) Q_DECL_OVERRIDE ;
+ virtual bool close() Q_DECL_OVERRIDE;
+ virtual bool flush() Q_DECL_OVERRIDE;
+ virtual qint64 size() const Q_DECL_OVERRIDE;
+ virtual qint64 pos() const Q_DECL_OVERRIDE;
virtual bool atEnd() const;
- virtual bool seek(qint64);
- virtual qint64 read(char *data, qint64 maxlen);
- virtual qint64 write(const char *data, qint64 len);
+ virtual bool seek(qint64) Q_DECL_OVERRIDE;
+ virtual qint64 read(char *data, qint64 maxlen) Q_DECL_OVERRIDE;
+ virtual qint64 write(const char *data, qint64 len) Q_DECL_OVERRIDE;
- virtual bool remove();
- virtual bool copy(const QString &newName);
- virtual bool rename(const QString &newName);
- virtual bool link(const QString &newName);
+ virtual bool remove() Q_DECL_OVERRIDE;
+ virtual bool copy(const QString &newName) Q_DECL_OVERRIDE;
+ virtual bool rename(const QString &newName) Q_DECL_OVERRIDE;
+ virtual bool link(const QString &newName) Q_DECL_OVERRIDE;
- virtual bool isSequential() const;
+ virtual bool isSequential() const Q_DECL_OVERRIDE;
- virtual bool isRelativePath() const;
+ virtual bool isRelativePath() const Q_DECL_OVERRIDE;
- virtual bool mkdir(const QString &dirName, bool createParentDirectories) const;
- virtual bool rmdir(const QString &dirName, bool recurseParentDirectories) const;
+ virtual bool mkdir(const QString &dirName, bool createParentDirectories) const Q_DECL_OVERRIDE;
+ virtual bool rmdir(const QString &dirName, bool recurseParentDirectories) const Q_DECL_OVERRIDE;
- virtual bool setSize(qint64 size);
+ virtual bool setSize(qint64 size) Q_DECL_OVERRIDE;
- virtual QStringList entryList(QDir::Filters filters, const QStringList &filterNames) const;
+ virtual QStringList entryList(QDir::Filters filters, const QStringList &filterNames) const Q_DECL_OVERRIDE;
- virtual bool caseSensitive() const;
+ virtual bool caseSensitive() const Q_DECL_OVERRIDE;
- virtual FileFlags fileFlags(FileFlags type) const;
+ virtual FileFlags fileFlags(FileFlags type) const Q_DECL_OVERRIDE;
- virtual bool setPermissions(uint perms);
+ virtual bool setPermissions(uint perms) Q_DECL_OVERRIDE;
- virtual QString fileName(QAbstractFileEngine::FileName file) const;
+ virtual QString fileName(QAbstractFileEngine::FileName file) const Q_DECL_OVERRIDE;
- virtual uint ownerId(FileOwner) const;
- virtual QString owner(FileOwner) const;
+ virtual uint ownerId(FileOwner) const Q_DECL_OVERRIDE;
+ virtual QString owner(FileOwner) const Q_DECL_OVERRIDE;
- virtual QDateTime fileTime(FileTime time) const;
+ virtual QDateTime fileTime(FileTime time) const Q_DECL_OVERRIDE;
- virtual Iterator *beginEntryList(QDir::Filters filters, const QStringList &filterNames);
- virtual Iterator *endEntryList();
+ virtual Iterator *beginEntryList(QDir::Filters filters, const QStringList &filterNames) Q_DECL_OVERRIDE;
+ virtual Iterator *endEntryList() Q_DECL_OVERRIDE;
- bool extension(Extension extension, const ExtensionOption *option = 0, ExtensionReturn *output = 0);
- bool supportsExtension(Extension extension) const;
+ bool extension(Extension extension, const ExtensionOption *option = 0, ExtensionReturn *output = 0) Q_DECL_OVERRIDE;
+ bool supportsExtension(Extension extension) const Q_DECL_OVERRIDE;
};
QT_END_NAMESPACE
diff --git a/src/corelib/io/qsettings.h b/src/corelib/io/qsettings.h
index 4986c06896..1ce2865c63 100644
--- a/src/corelib/io/qsettings.h
+++ b/src/corelib/io/qsettings.h
@@ -177,7 +177,7 @@ public:
protected:
#ifndef QT_NO_QOBJECT
- bool event(QEvent *event);
+ bool event(QEvent *event) Q_DECL_OVERRIDE;
#endif
private:
diff --git a/src/corelib/io/qsettings_p.h b/src/corelib/io/qsettings_p.h
index 715f13530a..0525fab77a 100644
--- a/src/corelib/io/qsettings_p.h
+++ b/src/corelib/io/qsettings_p.h
@@ -270,17 +270,17 @@ public:
QConfFileSettingsPrivate(const QString &fileName, QSettings::Format format);
~QConfFileSettingsPrivate();
- void remove(const QString &key);
- void set(const QString &key, const QVariant &value);
- bool get(const QString &key, QVariant *value) const;
+ void remove(const QString &key) Q_DECL_OVERRIDE;
+ void set(const QString &key, const QVariant &value) Q_DECL_OVERRIDE;
+ bool get(const QString &key, QVariant *value) const Q_DECL_OVERRIDE;
- QStringList children(const QString &prefix, ChildSpec spec) const;
+ QStringList children(const QString &prefix, ChildSpec spec) const Q_DECL_OVERRIDE;
- void clear();
- void sync();
- void flush();
- bool isWritable() const;
- QString fileName() const;
+ void clear() Q_DECL_OVERRIDE;
+ void sync() Q_DECL_OVERRIDE;
+ void flush() Q_DECL_OVERRIDE;
+ bool isWritable() const Q_DECL_OVERRIDE;
+ QString fileName() const Q_DECL_OVERRIDE;
bool readIniFile(const QByteArray &data, UnparsedSettingsMap *unparsedIniSections);
static bool readIniSection(const QSettingsKey &section, const QByteArray &data,
diff --git a/src/corelib/io/qstorageinfo_p.h b/src/corelib/io/qstorageinfo_p.h
index 9c8e51f475..dea25d440d 100644
--- a/src/corelib/io/qstorageinfo_p.h
+++ b/src/corelib/io/qstorageinfo_p.h
@@ -73,14 +73,14 @@ public:
protected:
#if defined(Q_OS_WIN) && !defined(Q_OS_WINCE) && !defined(Q_OS_WINRT)
- void retreiveVolumeInfo();
- void retreiveDiskFreeSpace();
+ void retrieveVolumeInfo();
+ void retrieveDiskFreeSpace();
#elif defined(Q_OS_MAC)
void retrievePosixInfo();
void retrieveUrlProperties(bool initRootPath = false);
void retrieveLabel();
#elif defined(Q_OS_UNIX)
- void retreiveVolumeInfo();
+ void retrieveVolumeInfo();
#endif
public:
diff --git a/src/corelib/io/qstorageinfo_unix.cpp b/src/corelib/io/qstorageinfo_unix.cpp
index 857464f578..1af2145296 100644
--- a/src/corelib/io/qstorageinfo_unix.cpp
+++ b/src/corelib/io/qstorageinfo_unix.cpp
@@ -402,11 +402,11 @@ void QStorageInfoPrivate::doStat()
if (rootPath.isEmpty())
return;
- retreiveVolumeInfo();
+ retrieveVolumeInfo();
name = retrieveLabel(device);
}
-void QStorageInfoPrivate::retreiveVolumeInfo()
+void QStorageInfoPrivate::retrieveVolumeInfo()
{
QT_STATFSBUF statfs_buf;
int result;
diff --git a/src/corelib/io/qstorageinfo_win.cpp b/src/corelib/io/qstorageinfo_win.cpp
index 8c276b2798..51a268f58c 100644
--- a/src/corelib/io/qstorageinfo_win.cpp
+++ b/src/corelib/io/qstorageinfo_win.cpp
@@ -114,12 +114,12 @@ void QStorageInfoPrivate::doStat()
if (rootPath.isEmpty())
return;
- retreiveVolumeInfo();
+ retrieveVolumeInfo();
device = getDevice(rootPath);
- retreiveDiskFreeSpace();
+ retrieveDiskFreeSpace();
}
-void QStorageInfoPrivate::retreiveVolumeInfo()
+void QStorageInfoPrivate::retrieveVolumeInfo()
{
const UINT oldmode = ::SetErrorMode(SEM_FAILCRITICALERRORS | SEM_NOOPENFILEERRORBOX);
@@ -151,7 +151,7 @@ void QStorageInfoPrivate::retreiveVolumeInfo()
::SetErrorMode(oldmode);
}
-void QStorageInfoPrivate::retreiveDiskFreeSpace()
+void QStorageInfoPrivate::retrieveDiskFreeSpace()
{
const UINT oldmode = ::SetErrorMode(SEM_FAILCRITICALERRORS | SEM_NOOPENFILEERRORBOX);
diff --git a/src/corelib/io/qtemporaryfile.cpp b/src/corelib/io/qtemporaryfile.cpp
index 4a9aafcf0b..c96d0504f4 100644
--- a/src/corelib/io/qtemporaryfile.cpp
+++ b/src/corelib/io/qtemporaryfile.cpp
@@ -222,6 +222,7 @@ static bool createFileFromTemplate(NativeFileHandle &file,
}
Q_ASSERT(false);
+ return false;
}
//************* QTemporaryFileEngine
diff --git a/src/corelib/io/qtemporaryfile.h b/src/corelib/io/qtemporaryfile.h
index 908cc231af..f21f87fd21 100644
--- a/src/corelib/io/qtemporaryfile.h
+++ b/src/corelib/io/qtemporaryfile.h
@@ -71,7 +71,7 @@ public:
// ### Hides open(flags)
bool open() { return open(QIODevice::ReadWrite); }
- QString fileName() const;
+ QString fileName() const Q_DECL_OVERRIDE;
QString fileTemplate() const;
void setFileTemplate(const QString &name);
#if QT_DEPRECATED_SINCE(5,1)
@@ -85,7 +85,7 @@ public:
static QTemporaryFile *createNativeFile(QFile &file);
protected:
- bool open(OpenMode flags);
+ bool open(OpenMode flags) Q_DECL_OVERRIDE;
private:
friend class QFile;
diff --git a/src/corelib/io/qtextstream.cpp b/src/corelib/io/qtextstream.cpp
index 089a915a36..5f3177e58f 100644
--- a/src/corelib/io/qtextstream.cpp
+++ b/src/corelib/io/qtextstream.cpp
@@ -681,15 +681,9 @@ bool QTextStreamPrivate::scan(const QChar **ptr, int *length, int maxlen, TokenD
&& (!maxlen || totalSize < maxlen)
&& (device && (canStillReadFromDevice = fillReadBuffer())));
- // if the token was not found, but we reached the end of input,
- // then we accept what we got. if we are not at the end of input,
- // we return false.
- if (!foundToken && (!maxlen || totalSize < maxlen)
- && (totalSize == 0
- || (string && stringOffset + totalSize < string->size())
- || (device && !device->atEnd() && canStillReadFromDevice))) {
+ if (totalSize == 0) {
#if defined (QTEXTSTREAM_DEBUG)
- qDebug("QTextStreamPrivate::scan() did not find the token.");
+ qDebug("QTextStreamPrivate::scan() reached the end of input.");
#endif
return false;
}
@@ -812,13 +806,28 @@ inline void QTextStreamPrivate::restoreToSavedConverterState()
/*!
\internal
*/
-inline void QTextStreamPrivate::write(const QString &data)
+inline void QTextStreamPrivate::write(const QChar *data, int len)
{
if (string) {
// ### What about seek()??
- string->append(data);
+ string->append(data, len);
} else {
- writeBuffer += data;
+ writeBuffer.append(data, len);
+ if (writeBuffer.size() > QTEXTSTREAM_BUFFERSIZE)
+ flushWriteBuffer();
+ }
+}
+
+/*!
+ \internal
+*/
+inline void QTextStreamPrivate::write(QChar ch)
+{
+ if (string) {
+ // ### What about seek()??
+ string->append(ch);
+ } else {
+ writeBuffer += ch;
if (writeBuffer.size() > QTEXTSTREAM_BUFFERSIZE)
flushWriteBuffer();
}
@@ -865,45 +874,53 @@ inline void QTextStreamPrivate::ungetChar(QChar ch)
/*!
\internal
*/
-inline void QTextStreamPrivate::putString(const QString &s, bool number)
+inline void QTextStreamPrivate::putChar(QChar ch)
+{
+ if (params.fieldWidth > 0)
+ putString(&ch, 1);
+ else
+ write(ch);
+}
+
+/*!
+ \internal
+*/
+inline void QTextStreamPrivate::putString(const QChar *data, int len, bool number)
{
- QString tmp = s;
+ QString pad;
+ int padLeft = 0, padRight = 0;
// handle padding
- int padSize = params.fieldWidth - s.size();
+ int padSize = params.fieldWidth - len;
if (padSize > 0) {
- QString pad(padSize, params.padChar);
+ pad = QString(padSize, params.padChar);
switch (params.fieldAlignment) {
case QTextStream::AlignLeft:
- tmp.append(pad);
+ padRight = padSize;
break;
case QTextStream::AlignRight:
case QTextStream::AlignAccountingStyle:
- tmp.prepend(pad);
+ padLeft = padSize;
if (params.fieldAlignment == QTextStream::AlignAccountingStyle && number) {
- const QChar sign = s.size() > 0 ? s.at(0) : QChar();
+ const QChar sign = len > 0 ? data[0] : QChar();
if (sign == locale.negativeSign() || sign == locale.positiveSign()) {
- QChar *data = tmp.data();
- data[padSize] = tmp.at(0);
- data[0] = sign;
+ // write the sign before the padding, then skip it later
+ write(&sign, 1);
+ ++data;
+ --len;
}
- }
+ }
break;
case QTextStream::AlignCenter:
- tmp.prepend(QString(padSize/2, params.padChar));
- tmp.append(QString(padSize - padSize/2, params.padChar));
+ padLeft = padSize/2;
+ padRight = padSize - padSize/2;
break;
}
}
-#if defined (QTEXTSTREAM_DEBUG)
- QByteArray a = s.toUtf8();
- QByteArray b = tmp.toUtf8();
- qDebug("QTextStreamPrivate::putString(\"%s\") calls write(\"%s\")",
- qt_prettyDebug(a.constData(), a.size(), qMax(16, a.size())).constData(),
- qt_prettyDebug(b.constData(), b.size(), qMax(16, b.size())).constData());
-#endif
- write(tmp);
+ write(pad.constData(), padLeft);
+ write(data, len);
+ write(pad.constData(), padRight);
}
/*!
@@ -2232,7 +2249,7 @@ QTextStream &QTextStream::operator<<(QChar c)
{
Q_D(QTextStream);
CHECK_VALID_STREAM(*this);
- d->putString(QString(c));
+ d->putChar(c);
return *this;
}
@@ -2245,7 +2262,7 @@ QTextStream &QTextStream::operator<<(char c)
{
Q_D(QTextStream);
CHECK_VALID_STREAM(*this);
- d->putString(QString(QChar::fromLatin1(c)));
+ d->putChar(QChar::fromLatin1(c));
return *this;
}
diff --git a/src/corelib/io/qtextstream_p.h b/src/corelib/io/qtextstream_p.h
index 5f99f44cc2..f8c151b76c 100644
--- a/src/corelib/io/qtextstream_p.h
+++ b/src/corelib/io/qtextstream_p.h
@@ -165,8 +165,12 @@ public:
NumberParsingStatus getNumber(qulonglong *l);
bool getReal(double *f);
- inline void write(const QString &data);
- inline void putString(const QString &ch, bool number = false);
+ inline void write(const QString &data) { write(data.begin(), data.length()); }
+ inline void write(QChar ch);
+ void write(const QChar *data, int len);
+ inline void putString(const QString &ch, bool number = false) { putString(ch.constData(), ch.length(), number); }
+ void putString(const QChar *data, int len, bool number = false);
+ inline void putChar(QChar ch);
void putNumber(qulonglong number, bool negative);
// buffers
diff --git a/src/corelib/io/qurlrecode.cpp b/src/corelib/io/qurlrecode.cpp
index 9aad2a12bd..4cf471a248 100644
--- a/src/corelib/io/qurlrecode.cpp
+++ b/src/corelib/io/qurlrecode.cpp
@@ -33,6 +33,7 @@
#include "qurl.h"
#include "private/qutfcodec_p.h"
+#include "private/qtools_p.h"
QT_BEGIN_NAMESPACE
@@ -197,8 +198,7 @@ static inline ushort decodePercentEncoding(const ushort *input)
static inline ushort encodeNibble(ushort c)
{
- static const uchar hexnumbers[] = "0123456789ABCDEF";
- return hexnumbers[c & 0xf];
+ return ushort(QtMiscUtils::toHexUpper(c));
}
static void ensureDetached(QString &result, ushort *&output, const ushort *begin, const ushort *input, const ushort *end,
diff --git a/src/corelib/itemmodels/qabstractitemmodel.cpp b/src/corelib/itemmodels/qabstractitemmodel.cpp
index a9cfa3e7ca..88e39f9441 100644
--- a/src/corelib/itemmodels/qabstractitemmodel.cpp
+++ b/src/corelib/itemmodels/qabstractitemmodel.cpp
@@ -468,12 +468,12 @@ class QEmptyItemModel : public QAbstractItemModel
{
public:
explicit QEmptyItemModel(QObject *parent = 0) : QAbstractItemModel(parent) {}
- QModelIndex index(int, int, const QModelIndex &) const { return QModelIndex(); }
- QModelIndex parent(const QModelIndex &) const { return QModelIndex(); }
- int rowCount(const QModelIndex &) const { return 0; }
- int columnCount(const QModelIndex &) const { return 0; }
- bool hasChildren(const QModelIndex &) const { return false; }
- QVariant data(const QModelIndex &, int) const { return QVariant(); }
+ QModelIndex index(int, int, const QModelIndex &) const Q_DECL_OVERRIDE { return QModelIndex(); }
+ QModelIndex parent(const QModelIndex &) const Q_DECL_OVERRIDE { return QModelIndex(); }
+ int rowCount(const QModelIndex &) const Q_DECL_OVERRIDE { return 0; }
+ int columnCount(const QModelIndex &) const Q_DECL_OVERRIDE { return 0; }
+ bool hasChildren(const QModelIndex &) const Q_DECL_OVERRIDE { return false; }
+ QVariant data(const QModelIndex &, int) const Q_DECL_OVERRIDE { return QVariant(); }
};
Q_GLOBAL_STATIC(QEmptyItemModel, qEmptyModel)
@@ -1264,11 +1264,6 @@ void QAbstractItemModel::resetInternalData()
*/
/*!
- \fn QObject *QAbstractItemModel::parent() const
- \internal
-*/
-
-/*!
\fn QModelIndex QAbstractItemModel::parent(const QModelIndex &index) const = 0
Returns the parent of the model item with the given \a index. If the item
diff --git a/src/corelib/itemmodels/qabstractitemmodel.h b/src/corelib/itemmodels/qabstractitemmodel.h
index 32d88e9d96..5761084055 100644
--- a/src/corelib/itemmodels/qabstractitemmodel.h
+++ b/src/corelib/itemmodels/qabstractitemmodel.h
@@ -230,11 +230,7 @@ public:
virtual QHash<int,QByteArray> roleNames() const;
-#ifdef Q_NO_USING_KEYWORD
- inline QObject *parent() const { return QObject::parent(); }
-#else
using QObject::parent;
-#endif
enum LayoutChangeHint
{
@@ -419,27 +415,21 @@ public:
explicit QAbstractTableModel(QObject *parent = 0);
~QAbstractTableModel();
- QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const;
+ QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const Q_DECL_OVERRIDE;
bool dropMimeData(const QMimeData *data, Qt::DropAction action,
- int row, int column, const QModelIndex &parent);
+ int row, int column, const QModelIndex &parent) Q_DECL_OVERRIDE;
Qt::ItemFlags flags(const QModelIndex &index) const Q_DECL_OVERRIDE;
-#ifdef Q_NO_USING_KEYWORD
-#ifndef Q_QDOC
- inline QObject *parent() const { return QAbstractItemModel::parent(); }
-#endif
-#else
using QObject::parent;
-#endif
protected:
QAbstractTableModel(QAbstractItemModelPrivate &dd, QObject *parent);
private:
Q_DISABLE_COPY(QAbstractTableModel)
- QModelIndex parent(const QModelIndex &child) const;
- bool hasChildren(const QModelIndex &parent) const;
+ QModelIndex parent(const QModelIndex &child) const Q_DECL_OVERRIDE;
+ bool hasChildren(const QModelIndex &parent) const Q_DECL_OVERRIDE;
};
class Q_CORE_EXPORT QAbstractListModel : public QAbstractItemModel
@@ -450,28 +440,22 @@ public:
explicit QAbstractListModel(QObject *parent = 0);
~QAbstractListModel();
- QModelIndex index(int row, int column = 0, const QModelIndex &parent = QModelIndex()) const;
+ QModelIndex index(int row, int column = 0, const QModelIndex &parent = QModelIndex()) const Q_DECL_OVERRIDE;
bool dropMimeData(const QMimeData *data, Qt::DropAction action,
- int row, int column, const QModelIndex &parent);
+ int row, int column, const QModelIndex &parent) Q_DECL_OVERRIDE;
Qt::ItemFlags flags(const QModelIndex &index) const Q_DECL_OVERRIDE;
-#ifdef Q_NO_USING_KEYWORD
-#ifndef Q_QDOC
- inline QObject *parent() const { return QAbstractItemModel::parent(); }
-#endif
-#else
using QObject::parent;
-#endif
protected:
QAbstractListModel(QAbstractItemModelPrivate &dd, QObject *parent);
private:
Q_DISABLE_COPY(QAbstractListModel)
- QModelIndex parent(const QModelIndex &child) const;
- int columnCount(const QModelIndex &parent) const;
- bool hasChildren(const QModelIndex &parent) const;
+ QModelIndex parent(const QModelIndex &child) const Q_DECL_OVERRIDE;
+ int columnCount(const QModelIndex &parent) const Q_DECL_OVERRIDE;
+ bool hasChildren(const QModelIndex &parent) const Q_DECL_OVERRIDE;
};
// inline implementations
diff --git a/src/corelib/itemmodels/qabstractproxymodel.h b/src/corelib/itemmodels/qabstractproxymodel.h
index a11fb592ab..93517e943f 100644
--- a/src/corelib/itemmodels/qabstractproxymodel.h
+++ b/src/corelib/itemmodels/qabstractproxymodel.h
@@ -62,34 +62,34 @@ public:
virtual QItemSelection mapSelectionToSource(const QItemSelection &selection) const;
virtual QItemSelection mapSelectionFromSource(const QItemSelection &selection) const;
- bool submit();
- void revert();
-
- QVariant data(const QModelIndex &proxyIndex, int role = Qt::DisplayRole) const;
- QVariant headerData(int section, Qt::Orientation orientation, int role) const;
- QMap<int, QVariant> itemData(const QModelIndex &index) const;
- Qt::ItemFlags flags(const QModelIndex &index) const;
-
- bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole);
- bool setItemData(const QModelIndex& index, const QMap<int, QVariant> &roles);
- bool setHeaderData(int section, Qt::Orientation orientation, const QVariant &value, int role = Qt::EditRole);
-
- QModelIndex buddy(const QModelIndex &index) const;
- bool canFetchMore(const QModelIndex &parent) const;
- void fetchMore(const QModelIndex &parent);
- void sort(int column, Qt::SortOrder order = Qt::AscendingOrder);
- QSize span(const QModelIndex &index) const;
- bool hasChildren(const QModelIndex &parent = QModelIndex()) const;
- QModelIndex sibling(int row, int column, const QModelIndex &idx) const;
-
- QMimeData* mimeData(const QModelIndexList &indexes) const;
+ bool submit() Q_DECL_OVERRIDE;
+ void revert() Q_DECL_OVERRIDE;
+
+ QVariant data(const QModelIndex &proxyIndex, int role = Qt::DisplayRole) const Q_DECL_OVERRIDE;
+ QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const Q_DECL_OVERRIDE;
+ QMap<int, QVariant> itemData(const QModelIndex &index) const Q_DECL_OVERRIDE;
+ Qt::ItemFlags flags(const QModelIndex &index) const Q_DECL_OVERRIDE;
+
+ bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole) Q_DECL_OVERRIDE;
+ bool setItemData(const QModelIndex& index, const QMap<int, QVariant> &roles) Q_DECL_OVERRIDE;
+ bool setHeaderData(int section, Qt::Orientation orientation, const QVariant &value, int role = Qt::EditRole) Q_DECL_OVERRIDE;
+
+ QModelIndex buddy(const QModelIndex &index) const Q_DECL_OVERRIDE;
+ bool canFetchMore(const QModelIndex &parent) const Q_DECL_OVERRIDE;
+ void fetchMore(const QModelIndex &parent) Q_DECL_OVERRIDE;
+ void sort(int column, Qt::SortOrder order = Qt::AscendingOrder) Q_DECL_OVERRIDE;
+ QSize span(const QModelIndex &index) const Q_DECL_OVERRIDE;
+ bool hasChildren(const QModelIndex &parent = QModelIndex()) const Q_DECL_OVERRIDE;
+ QModelIndex sibling(int row, int column, const QModelIndex &idx) const Q_DECL_OVERRIDE;
+
+ QMimeData* mimeData(const QModelIndexList &indexes) const Q_DECL_OVERRIDE;
bool canDropMimeData(const QMimeData *data, Qt::DropAction action,
int row, int column, const QModelIndex &parent) const Q_DECL_OVERRIDE;
bool dropMimeData(const QMimeData *data, Qt::DropAction action,
int row, int column, const QModelIndex &parent) Q_DECL_OVERRIDE;
- QStringList mimeTypes() const;
- Qt::DropActions supportedDragActions() const;
- Qt::DropActions supportedDropActions() const;
+ QStringList mimeTypes() const Q_DECL_OVERRIDE;
+ Qt::DropActions supportedDragActions() const Q_DECL_OVERRIDE;
+ Qt::DropActions supportedDropActions() const Q_DECL_OVERRIDE;
Q_SIGNALS:
void sourceModelChanged(
diff --git a/src/corelib/itemmodels/qidentityproxymodel.cpp b/src/corelib/itemmodels/qidentityproxymodel.cpp
index 27100c9ff7..e3b363f190 100644
--- a/src/corelib/itemmodels/qidentityproxymodel.cpp
+++ b/src/corelib/itemmodels/qidentityproxymodel.cpp
@@ -152,11 +152,8 @@ QModelIndex QIdentityProxyModel::index(int row, int column, const QModelIndex& p
{
Q_ASSERT(parent.isValid() ? parent.model() == this : true);
Q_D(const QIdentityProxyModel);
- if (!hasIndex(row, column, parent))
- return QModelIndex();
const QModelIndex sourceParent = mapToSource(parent);
const QModelIndex sourceIndex = d->model->index(row, column, sourceParent);
- Q_ASSERT(sourceIndex.isValid());
return mapFromSource(sourceIndex);
}
diff --git a/src/corelib/itemmodels/qidentityproxymodel.h b/src/corelib/itemmodels/qidentityproxymodel.h
index 7eaa1f4e04..5a9491d669 100644
--- a/src/corelib/itemmodels/qidentityproxymodel.h
+++ b/src/corelib/itemmodels/qidentityproxymodel.h
@@ -51,25 +51,25 @@ public:
explicit QIdentityProxyModel(QObject* parent = 0);
~QIdentityProxyModel();
- int columnCount(const QModelIndex& parent = QModelIndex()) const;
- QModelIndex index(int row, int column, const QModelIndex& parent = QModelIndex()) const;
- QModelIndex mapFromSource(const QModelIndex& sourceIndex) const;
- QModelIndex mapToSource(const QModelIndex& proxyIndex) const;
- QModelIndex parent(const QModelIndex& child) const;
- int rowCount(const QModelIndex& parent = QModelIndex()) const;
- QVariant headerData(int section, Qt::Orientation orientation, int role) const;
- bool dropMimeData(const QMimeData* data, Qt::DropAction action, int row, int column, const QModelIndex& parent);
- QModelIndex sibling(int row, int column, const QModelIndex &idx) const;
-
- QItemSelection mapSelectionFromSource(const QItemSelection& selection) const;
- QItemSelection mapSelectionToSource(const QItemSelection& selection) const;
- QModelIndexList match(const QModelIndex& start, int role, const QVariant& value, int hits = 1, Qt::MatchFlags flags = Qt::MatchFlags(Qt::MatchStartsWith|Qt::MatchWrap)) const;
- void setSourceModel(QAbstractItemModel* sourceModel);
-
- bool insertColumns(int column, int count, const QModelIndex& parent = QModelIndex());
- bool insertRows(int row, int count, const QModelIndex& parent = QModelIndex());
- bool removeColumns(int column, int count, const QModelIndex& parent = QModelIndex());
- bool removeRows(int row, int count, const QModelIndex& parent = QModelIndex());
+ int columnCount(const QModelIndex& parent = QModelIndex()) const Q_DECL_OVERRIDE;
+ QModelIndex index(int row, int column, const QModelIndex& parent = QModelIndex()) const Q_DECL_OVERRIDE;
+ QModelIndex mapFromSource(const QModelIndex& sourceIndex) const Q_DECL_OVERRIDE;
+ QModelIndex mapToSource(const QModelIndex& proxyIndex) const Q_DECL_OVERRIDE;
+ QModelIndex parent(const QModelIndex& child) const Q_DECL_OVERRIDE;
+ int rowCount(const QModelIndex& parent = QModelIndex()) const Q_DECL_OVERRIDE;
+ QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const Q_DECL_OVERRIDE;
+ bool dropMimeData(const QMimeData* data, Qt::DropAction action, int row, int column, const QModelIndex& parent) Q_DECL_OVERRIDE;
+ QModelIndex sibling(int row, int column, const QModelIndex &idx) const Q_DECL_OVERRIDE;
+
+ QItemSelection mapSelectionFromSource(const QItemSelection& selection) const Q_DECL_OVERRIDE;
+ QItemSelection mapSelectionToSource(const QItemSelection& selection) const Q_DECL_OVERRIDE;
+ QModelIndexList match(const QModelIndex& start, int role, const QVariant& value, int hits = 1, Qt::MatchFlags flags = Qt::MatchFlags(Qt::MatchStartsWith|Qt::MatchWrap)) const Q_DECL_OVERRIDE;
+ void setSourceModel(QAbstractItemModel* sourceModel) Q_DECL_OVERRIDE;
+
+ bool insertColumns(int column, int count, const QModelIndex& parent = QModelIndex()) Q_DECL_OVERRIDE;
+ bool insertRows(int row, int count, const QModelIndex& parent = QModelIndex()) Q_DECL_OVERRIDE;
+ bool removeColumns(int column, int count, const QModelIndex& parent = QModelIndex()) Q_DECL_OVERRIDE;
+ bool removeRows(int row, int count, const QModelIndex& parent = QModelIndex()) Q_DECL_OVERRIDE;
protected:
QIdentityProxyModel(QIdentityProxyModelPrivate &dd, QObject* parent);
diff --git a/src/corelib/itemmodels/qsortfilterproxymodel.cpp b/src/corelib/itemmodels/qsortfilterproxymodel.cpp
index 0b2b0e4188..e64d588432 100644
--- a/src/corelib/itemmodels/qsortfilterproxymodel.cpp
+++ b/src/corelib/itemmodels/qsortfilterproxymodel.cpp
@@ -195,7 +195,8 @@ public:
}
void _q_sourceDataChanged(const QModelIndex &source_top_left,
- const QModelIndex &source_bottom_right);
+ const QModelIndex &source_bottom_right,
+ const QVector<int> &roles);
void _q_sourceHeaderDataChanged(Qt::Orientation orientation, int start, int end);
void _q_sourceAboutToBeReset();
@@ -279,7 +280,7 @@ public:
void updateChildrenMapping(const QModelIndex &source_parent, Mapping *parent_mapping,
Qt::Orientation orient, int start, int end, int delta_item_count, bool remove);
- virtual void _q_sourceModelDestroyed();
+ virtual void _q_sourceModelDestroyed() Q_DECL_OVERRIDE;
};
typedef QHash<QModelIndex, QSortFilterProxyModelPrivate::Mapping *> IndexMap;
@@ -1131,7 +1132,8 @@ QSet<int> QSortFilterProxyModelPrivate::handle_filter_changed(
}
void QSortFilterProxyModelPrivate::_q_sourceDataChanged(const QModelIndex &source_top_left,
- const QModelIndex &source_bottom_right)
+ const QModelIndex &source_bottom_right,
+ const QVector<int> &roles)
{
Q_Q(QSortFilterProxyModel);
if (!source_top_left.isValid() || !source_bottom_right.isValid())
@@ -1224,7 +1226,7 @@ void QSortFilterProxyModelPrivate::_q_sourceDataChanged(const QModelIndex &sourc
--source_right_column;
const QModelIndex proxy_bottom_right = create_index(
proxy_end_row, m->proxy_columns.at(source_right_column), it);
- emit q->dataChanged(proxy_top_left, proxy_bottom_right);
+ emit q->dataChanged(proxy_top_left, proxy_bottom_right, roles);
}
}
@@ -1728,8 +1730,8 @@ void QSortFilterProxyModel::setSourceModel(QAbstractItemModel *sourceModel)
beginResetModel();
- disconnect(d->model, SIGNAL(dataChanged(QModelIndex,QModelIndex)),
- this, SLOT(_q_sourceDataChanged(QModelIndex,QModelIndex)));
+ disconnect(d->model, SIGNAL(dataChanged(QModelIndex,QModelIndex,QVector<int>)),
+ this, SLOT(_q_sourceDataChanged(QModelIndex,QModelIndex,QVector<int>)));
disconnect(d->model, SIGNAL(headerDataChanged(Qt::Orientation,int,int)),
this, SLOT(_q_sourceHeaderDataChanged(Qt::Orientation,int,int)));
@@ -1781,8 +1783,8 @@ void QSortFilterProxyModel::setSourceModel(QAbstractItemModel *sourceModel)
QAbstractProxyModel::setSourceModel(sourceModel);
- connect(d->model, SIGNAL(dataChanged(QModelIndex,QModelIndex)),
- this, SLOT(_q_sourceDataChanged(QModelIndex,QModelIndex)));
+ connect(d->model, SIGNAL(dataChanged(QModelIndex,QModelIndex,QVector<int>)),
+ this, SLOT(_q_sourceDataChanged(QModelIndex,QModelIndex,QVector<int>)));
connect(d->model, SIGNAL(headerDataChanged(Qt::Orientation,int,int)),
this, SLOT(_q_sourceHeaderDataChanged(Qt::Orientation,int,int)));
@@ -2740,11 +2742,6 @@ QItemSelection QSortFilterProxyModel::mapSelectionFromSource(const QItemSelectio
return QAbstractProxyModel::mapSelectionFromSource(sourceSelection);
}
-/*!
- \fn QObject *QSortFilterProxyModel::parent() const
- \internal
-*/
-
QT_END_NAMESPACE
#include "moc_qsortfilterproxymodel.cpp"
diff --git a/src/corelib/itemmodels/qsortfilterproxymodel.h b/src/corelib/itemmodels/qsortfilterproxymodel.h
index 5f7235876e..9df785756c 100644
--- a/src/corelib/itemmodels/qsortfilterproxymodel.h
+++ b/src/corelib/itemmodels/qsortfilterproxymodel.h
@@ -66,13 +66,13 @@ public:
explicit QSortFilterProxyModel(QObject *parent = 0);
~QSortFilterProxyModel();
- void setSourceModel(QAbstractItemModel *sourceModel);
+ void setSourceModel(QAbstractItemModel *sourceModel) Q_DECL_OVERRIDE;
- QModelIndex mapToSource(const QModelIndex &proxyIndex) const;
- QModelIndex mapFromSource(const QModelIndex &sourceIndex) const;
+ QModelIndex mapToSource(const QModelIndex &proxyIndex) const Q_DECL_OVERRIDE;
+ QModelIndex mapFromSource(const QModelIndex &sourceIndex) const Q_DECL_OVERRIDE;
- QItemSelection mapSelectionToSource(const QItemSelection &proxySelection) const;
- QItemSelection mapSelectionFromSource(const QItemSelection &sourceSelection) const;
+ QItemSelection mapSelectionToSource(const QItemSelection &proxySelection) const Q_DECL_OVERRIDE;
+ QItemSelection mapSelectionFromSource(const QItemSelection &sourceSelection) const Q_DECL_OVERRIDE;
QRegExp filterRegExp() const;
void setFilterRegExp(const QRegExp &regExp);
@@ -117,55 +117,51 @@ protected:
void invalidateFilter();
public:
-#ifdef Q_NO_USING_KEYWORD
- inline QObject *parent() const { return QObject::parent(); }
-#else
using QObject::parent;
-#endif
- QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const;
- QModelIndex parent(const QModelIndex &child) const;
- QModelIndex sibling(int row, int column, const QModelIndex &idx) const;
+ QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const Q_DECL_OVERRIDE;
+ QModelIndex parent(const QModelIndex &child) const Q_DECL_OVERRIDE;
+ QModelIndex sibling(int row, int column, const QModelIndex &idx) const Q_DECL_OVERRIDE;
- int rowCount(const QModelIndex &parent = QModelIndex()) const;
- int columnCount(const QModelIndex &parent = QModelIndex()) const;
- bool hasChildren(const QModelIndex &parent = QModelIndex()) const;
+ int rowCount(const QModelIndex &parent = QModelIndex()) const Q_DECL_OVERRIDE;
+ int columnCount(const QModelIndex &parent = QModelIndex()) const Q_DECL_OVERRIDE;
+ bool hasChildren(const QModelIndex &parent = QModelIndex()) const Q_DECL_OVERRIDE;
- QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
- bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole);
+ QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const Q_DECL_OVERRIDE;
+ bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole) Q_DECL_OVERRIDE;
- QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const;
+ QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const Q_DECL_OVERRIDE;
bool setHeaderData(int section, Qt::Orientation orientation,
- const QVariant &value, int role = Qt::EditRole);
+ const QVariant &value, int role = Qt::EditRole) Q_DECL_OVERRIDE;
- QMimeData *mimeData(const QModelIndexList &indexes) const;
+ QMimeData *mimeData(const QModelIndexList &indexes) const Q_DECL_OVERRIDE;
bool dropMimeData(const QMimeData *data, Qt::DropAction action,
- int row, int column, const QModelIndex &parent);
+ int row, int column, const QModelIndex &parent) Q_DECL_OVERRIDE;
- bool insertRows(int row, int count, const QModelIndex &parent = QModelIndex());
- bool insertColumns(int column, int count, const QModelIndex &parent = QModelIndex());
- bool removeRows(int row, int count, const QModelIndex &parent = QModelIndex());
- bool removeColumns(int column, int count, const QModelIndex &parent = QModelIndex());
+ bool insertRows(int row, int count, const QModelIndex &parent = QModelIndex()) Q_DECL_OVERRIDE;
+ bool insertColumns(int column, int count, const QModelIndex &parent = QModelIndex()) Q_DECL_OVERRIDE;
+ bool removeRows(int row, int count, const QModelIndex &parent = QModelIndex()) Q_DECL_OVERRIDE;
+ bool removeColumns(int column, int count, const QModelIndex &parent = QModelIndex()) Q_DECL_OVERRIDE;
- void fetchMore(const QModelIndex &parent);
- bool canFetchMore(const QModelIndex &parent) const;
- Qt::ItemFlags flags(const QModelIndex &index) const;
+ void fetchMore(const QModelIndex &parent) Q_DECL_OVERRIDE;
+ bool canFetchMore(const QModelIndex &parent) const Q_DECL_OVERRIDE;
+ Qt::ItemFlags flags(const QModelIndex &index) const Q_DECL_OVERRIDE;
- QModelIndex buddy(const QModelIndex &index) const;
+ QModelIndex buddy(const QModelIndex &index) const Q_DECL_OVERRIDE;
QModelIndexList match(const QModelIndex &start, int role,
const QVariant &value, int hits = 1,
Qt::MatchFlags flags =
- Qt::MatchFlags(Qt::MatchStartsWith|Qt::MatchWrap)) const;
- QSize span(const QModelIndex &index) const;
- void sort(int column, Qt::SortOrder order = Qt::AscendingOrder);
+ Qt::MatchFlags(Qt::MatchStartsWith|Qt::MatchWrap)) const Q_DECL_OVERRIDE;
+ QSize span(const QModelIndex &index) const Q_DECL_OVERRIDE;
+ void sort(int column, Qt::SortOrder order = Qt::AscendingOrder) Q_DECL_OVERRIDE;
- QStringList mimeTypes() const;
- Qt::DropActions supportedDropActions() const;
+ QStringList mimeTypes() const Q_DECL_OVERRIDE;
+ Qt::DropActions supportedDropActions() const Q_DECL_OVERRIDE;
private:
Q_DECLARE_PRIVATE(QSortFilterProxyModel)
Q_DISABLE_COPY(QSortFilterProxyModel)
- Q_PRIVATE_SLOT(d_func(), void _q_sourceDataChanged(const QModelIndex &source_top_left, const QModelIndex &source_bottom_right))
+ Q_PRIVATE_SLOT(d_func(), void _q_sourceDataChanged(const QModelIndex &source_top_left, const QModelIndex &source_bottom_right, const QVector<int> &roles))
Q_PRIVATE_SLOT(d_func(), void _q_sourceHeaderDataChanged(Qt::Orientation orientation, int start, int end))
Q_PRIVATE_SLOT(d_func(), void _q_sourceAboutToBeReset())
Q_PRIVATE_SLOT(d_func(), void _q_sourceReset())
diff --git a/src/corelib/itemmodels/qstringlistmodel.h b/src/corelib/itemmodels/qstringlistmodel.h
index 0db2d550af..764d79ba6f 100644
--- a/src/corelib/itemmodels/qstringlistmodel.h
+++ b/src/corelib/itemmodels/qstringlistmodel.h
@@ -49,23 +49,23 @@ public:
explicit QStringListModel(QObject *parent = 0);
explicit QStringListModel(const QStringList &strings, QObject *parent = 0);
- int rowCount(const QModelIndex &parent = QModelIndex()) const;
- QModelIndex sibling(int row, int column, const QModelIndex &idx) const;
+ int rowCount(const QModelIndex &parent = QModelIndex()) const Q_DECL_OVERRIDE;
+ QModelIndex sibling(int row, int column, const QModelIndex &idx) const Q_DECL_OVERRIDE;
- QVariant data(const QModelIndex &index, int role) const;
- bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole);
+ QVariant data(const QModelIndex &index, int role) const Q_DECL_OVERRIDE;
+ bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole) Q_DECL_OVERRIDE;
- Qt::ItemFlags flags(const QModelIndex &index) const;
+ Qt::ItemFlags flags(const QModelIndex &index) const Q_DECL_OVERRIDE;
- bool insertRows(int row, int count, const QModelIndex &parent = QModelIndex());
- bool removeRows(int row, int count, const QModelIndex &parent = QModelIndex());
+ bool insertRows(int row, int count, const QModelIndex &parent = QModelIndex()) Q_DECL_OVERRIDE;
+ bool removeRows(int row, int count, const QModelIndex &parent = QModelIndex()) Q_DECL_OVERRIDE;
- void sort(int column, Qt::SortOrder order = Qt::AscendingOrder);
+ void sort(int column, Qt::SortOrder order = Qt::AscendingOrder) Q_DECL_OVERRIDE;
QStringList stringList() const;
void setStringList(const QStringList &strings);
- Qt::DropActions supportedDropActions() const;
+ Qt::DropActions supportedDropActions() const Q_DECL_OVERRIDE;
private:
Q_DISABLE_COPY(QStringListModel)
diff --git a/src/corelib/json/qjsonobject.cpp b/src/corelib/json/qjsonobject.cpp
index bc74092f59..df604e4433 100644
--- a/src/corelib/json/qjsonobject.cpp
+++ b/src/corelib/json/qjsonobject.cpp
@@ -192,7 +192,7 @@ QJsonObject &QJsonObject::operator =(const QJsonObject &other)
The keys in \a map will be used as the keys in the JSON object,
and the QVariant values will be converted to JSON values.
- \sa toVariantMap(), QJsonValue::fromVariant()
+ \sa fromVariantHash(), toVariantMap(), QJsonValue::fromVariant()
*/
QJsonObject QJsonObject::fromVariantMap(const QVariantMap &map)
{
@@ -208,6 +208,8 @@ QJsonObject QJsonObject::fromVariantMap(const QVariantMap &map)
Converts this object to a QVariantMap.
Returns the created map.
+
+ \sa toVariantHash()
*/
QVariantMap QJsonObject::toVariantMap() const
{
@@ -222,6 +224,45 @@ QVariantMap QJsonObject::toVariantMap() const
}
/*!
+ Converts the variant hash \a hash to a QJsonObject.
+ \since 5.5
+
+ The keys in \a hash will be used as the keys in the JSON object,
+ and the QVariant values will be converted to JSON values.
+
+ \sa fromVariantMap(), toVariantHash(), QJsonValue::fromVariant()
+ */
+QJsonObject QJsonObject::fromVariantHash(const QVariantHash &hash)
+{
+ // ### this is implemented the trivial way, not the most efficient way
+
+ QJsonObject object;
+ for (QVariantHash::const_iterator it = hash.constBegin(); it != hash.constEnd(); ++it)
+ object.insert(it.key(), QJsonValue::fromVariant(it.value()));
+ return object;
+}
+
+/*!
+ Converts this object to a QVariantHash.
+ \since 5.5
+
+ Returns the created hash.
+
+ \sa toVariantMap()
+ */
+QVariantHash QJsonObject::toVariantHash() const
+{
+ QVariantHash hash;
+ if (o) {
+ for (uint i = 0; i < o->length; ++i) {
+ QJsonPrivate::Entry *e = o->entryAt(i);
+ hash.insert(e->key(), QJsonValue(d, o, e->value).toVariant());
+ }
+ }
+ return hash;
+}
+
+/*!
Returns a list of all keys in this object.
*/
QStringList QJsonObject::keys() const
diff --git a/src/corelib/json/qjsonobject.h b/src/corelib/json/qjsonobject.h
index 9abdb047ed..272cf14b01 100644
--- a/src/corelib/json/qjsonobject.h
+++ b/src/corelib/json/qjsonobject.h
@@ -46,6 +46,8 @@ QT_BEGIN_NAMESPACE
class QDebug;
template <class Key, class T> class QMap;
typedef QMap<QString, QVariant> QVariantMap;
+template <class Key, class T> class QHash;
+typedef QHash<QString, QVariant> QVariantHash;
class Q_CORE_EXPORT QJsonObject
{
@@ -68,6 +70,8 @@ public:
static QJsonObject fromVariantMap(const QVariantMap &map);
QVariantMap toVariantMap() const;
+ static QJsonObject fromVariantHash(const QVariantHash &map);
+ QVariantHash toVariantHash() const;
QStringList keys() const;
int size() const;
diff --git a/src/corelib/json/qjsonvalue.cpp b/src/corelib/json/qjsonvalue.cpp
index ac4fcb89c1..4c5d9e3308 100644
--- a/src/corelib/json/qjsonvalue.cpp
+++ b/src/corelib/json/qjsonvalue.cpp
@@ -373,6 +373,7 @@ QJsonValue &QJsonValue::operator =(const QJsonValue &other)
\li
\list
\li QMetaType::QVariantMap
+ \li QMetaType::QVariantHash
\endlist
\li QJsonValue::Object
\endtable
@@ -402,6 +403,8 @@ QJsonValue QJsonValue::fromVariant(const QVariant &variant)
return QJsonValue(QJsonArray::fromVariantList(variant.toList()));
case QVariant::Map:
return QJsonValue(QJsonObject::fromVariantMap(variant.toMap()));
+ case QVariant::Hash:
+ return QJsonValue(QJsonObject::fromVariantHash(variant.toHash()));
default:
break;
}
diff --git a/src/corelib/kernel/kernel.pri b/src/corelib/kernel/kernel.pri
index 55625f3571..0ece4a395c 100644
--- a/src/corelib/kernel/kernel.pri
+++ b/src/corelib/kernel/kernel.pri
@@ -99,20 +99,22 @@ winrt {
}
mac {
+ HEADERS += \
+ kernel/qcore_mac_p.h
+
SOURCES += \
- kernel/qcoreapplication_mac.cpp
-}
+ kernel/qcoreapplication_mac.cpp \
+ kernel/qcore_mac.cpp
+
+ OBJECTIVE_SOURCES += \
+ kernel/qcore_mac_objc.mm
+
+ LIBS_PRIVATE += -framework Foundation
-mac:!nacl {
- HEADERS += \
- kernel/qcore_mac_p.h
- SOURCES += \
- kernel/qcore_mac.cpp
- OBJECTIVE_SOURCES += \
- kernel/qcore_mac_objc.mm
+ osx: LIBS_PRIVATE += -framework CoreServices
- # We need UIKit for UIDevice
- ios: LIBS_PRIVATE += -framework UIKit
+ # We need UIKit for UIDevice
+ ios: LIBS_PRIVATE += -framework UIKit
}
nacl {
diff --git a/src/corelib/kernel/qcore_mac_objc.mm b/src/corelib/kernel/qcore_mac_objc.mm
index 73f8296021..8ac062a154 100644
--- a/src/corelib/kernel/qcore_mac_objc.mm
+++ b/src/corelib/kernel/qcore_mac_objc.mm
@@ -1,6 +1,7 @@
/****************************************************************************
**
- ** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+ ** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+ ** Copyright (C) 2014 Petroules Corporation.
** Contact: http://www.qt-project.org/legal
**
** This file is part of the QtCore module of the Qt Toolkit.
@@ -47,6 +48,8 @@
QT_BEGIN_NAMESPACE
+typedef qint16 (*GestaltFunction)(quint32 selector, qint32 *response);
+
NSString *QCFString::toNSString(const QString &string)
{
// The const cast below is safe: CfStringRef is immutable and so is NSString.
@@ -58,31 +61,49 @@ QString QCFString::toQString(const NSString *nsstr)
return toQString(reinterpret_cast<CFStringRef>(nsstr));
}
-#ifdef Q_OS_IOS
-QSysInfo::MacVersion qt_ios_version()
+QAppleOperatingSystemVersion qt_apple_os_version()
{
- NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
-
- int major = 0, minor = 0;
- NSArray *components = [[UIDevice currentDevice].systemVersion componentsSeparatedByString:@"."];
- switch ([components count]) {
- case 3:
- // We don't care about the patch version
- case 2:
- minor = [[components objectAtIndex:1] intValue];
- // fall through
- case 1:
- major = [[components objectAtIndex:0] intValue];
- break;
- default:
- Q_UNREACHABLE();
+ QAppleOperatingSystemVersion v = {0, 0, 0};
+#if QT_MAC_PLATFORM_SDK_EQUAL_OR_ABOVE(__MAC_10_10, __IPHONE_8_0)
+ if ([NSProcessInfo instancesRespondToSelector:@selector(operatingSystemVersion)]) {
+ NSOperatingSystemVersion osv = NSProcessInfo.processInfo.operatingSystemVersion;
+ v.major = osv.majorVersion;
+ v.minor = osv.minorVersion;
+ v.patch = osv.patchVersion;
+ return v;
}
-
- [pool release];
-
- return QSysInfo::MacVersion(Q_MV_IOS(major, minor));
-}
#endif
+ // Use temporary variables so we can return 0.0.0 (unknown version)
+ // in case of an error partway through determining the OS version
+ qint32 major = 0, minor = 0, patch = 0;
+#if defined(Q_OS_IOS)
+ @autoreleasepool {
+ NSArray *parts = [UIDevice.currentDevice.systemVersion componentsSeparatedByString:@"."];
+ major = parts.count > 0 ? [[parts objectAtIndex:0] intValue] : 0;
+ minor = parts.count > 1 ? [[parts objectAtIndex:1] intValue] : 0;
+ patch = parts.count > 2 ? [[parts objectAtIndex:2] intValue] : 0;
+ }
+#elif defined(Q_OS_OSX)
+ static GestaltFunction pGestalt = 0;
+ if (!pGestalt) {
+ CFBundleRef b = CFBundleGetBundleWithIdentifier(CFSTR("com.apple.CoreServices"));
+ pGestalt = reinterpret_cast<GestaltFunction>(CFBundleGetFunctionPointerForName(b,
+ CFSTR("Gestalt")));
+ }
+ if (!pGestalt)
+ return v;
+ if (pGestalt('sys1', &major) != 0)
+ return v;
+ if (pGestalt('sys2', &minor) != 0)
+ return v;
+ if (pGestalt('sys3', &patch) != 0)
+ return v;
+#endif
+ v.major = major;
+ v.minor = minor;
+ v.patch = patch;
+ return v;
+}
QT_END_NAMESPACE
diff --git a/src/corelib/kernel/qcore_mac_p.h b/src/corelib/kernel/qcore_mac_p.h
index 842e2ef9f1..9b13f8d2b1 100644
--- a/src/corelib/kernel/qcore_mac_p.h
+++ b/src/corelib/kernel/qcore_mac_p.h
@@ -135,9 +135,11 @@ private:
QString string;
};
-#ifdef Q_OS_IOS
-QSysInfo::MacVersion qt_ios_version();
-#endif
+typedef struct {
+ int major, minor, patch;
+} QAppleOperatingSystemVersion;
+
+QAppleOperatingSystemVersion qt_apple_os_version();
QT_END_NAMESPACE
diff --git a/src/corelib/kernel/qcoreapplication.h b/src/corelib/kernel/qcoreapplication.h
index ff1dd5c43a..db1245430b 100644
--- a/src/corelib/kernel/qcoreapplication.h
+++ b/src/corelib/kernel/qcoreapplication.h
@@ -183,7 +183,7 @@ Q_SIGNALS:
void applicationVersionChanged();
protected:
- bool event(QEvent *);
+ bool event(QEvent *) Q_DECL_OVERRIDE;
virtual bool compressEvent(QEvent *, QObject *receiver, QPostEventList *);
#endif // QT_NO_QOBJECT
diff --git a/src/corelib/kernel/qcoreevent.cpp b/src/corelib/kernel/qcoreevent.cpp
index 191ceaa37b..93ab90fb94 100644
--- a/src/corelib/kernel/qcoreevent.cpp
+++ b/src/corelib/kernel/qcoreevent.cpp
@@ -183,6 +183,7 @@ QT_BEGIN_NAMESPACE
\value ParentAboutToChange The widget parent is about to change.
\value ParentChange The widget parent has changed.
\value PlatformPanel A platform specific panel has been requested.
+ \value PlatformSurface A native platform surface has been created or is about to be destroyed (QPlatformSurfaceEvent).
\value Polish The widget is polished.
\value PolishRequest The widget should be polished.
\value QueryWhatsThis The widget should accept the event if it has "What's This?" help.
diff --git a/src/corelib/kernel/qcoreevent.h b/src/corelib/kernel/qcoreevent.h
index 170f319ec9..0807721432 100644
--- a/src/corelib/kernel/qcoreevent.h
+++ b/src/corelib/kernel/qcoreevent.h
@@ -275,6 +275,8 @@ public:
WindowChangeInternal = 215, // internal for QQuickWidget
ScreenChangeInternal = 216,
+ PlatformSurface = 217, // Platform surface created or about to be destroyed
+
// 512 reserved for Qt Jambi's MetaCall event
// 513 reserved for Qt Jambi's DeleteOnMainThread event
diff --git a/src/corelib/kernel/qeventdispatcher_glib_p.h b/src/corelib/kernel/qeventdispatcher_glib_p.h
index 50820f478b..5950a4221a 100644
--- a/src/corelib/kernel/qeventdispatcher_glib_p.h
+++ b/src/corelib/kernel/qeventdispatcher_glib_p.h
@@ -66,8 +66,8 @@ public:
explicit QEventDispatcherGlib(GMainContext *context, QObject *parent = 0);
~QEventDispatcherGlib();
- bool processEvents(QEventLoop::ProcessEventsFlags flags);
- bool hasPendingEvents();
+ bool processEvents(QEventLoop::ProcessEventsFlags flags) Q_DECL_OVERRIDE;
+ bool hasPendingEvents() Q_DECL_OVERRIDE;
void registerSocketNotifier(QSocketNotifier *socketNotifier) Q_DECL_FINAL;
void unregisterSocketNotifier(QSocketNotifier *socketNotifier) Q_DECL_FINAL;
diff --git a/src/corelib/kernel/qeventdispatcher_unix_p.h b/src/corelib/kernel/qeventdispatcher_unix_p.h
index 37f180486e..3ec2c2eb3f 100644
--- a/src/corelib/kernel/qeventdispatcher_unix_p.h
+++ b/src/corelib/kernel/qeventdispatcher_unix_p.h
@@ -101,8 +101,8 @@ public:
explicit QEventDispatcherUNIX(QObject *parent = 0);
~QEventDispatcherUNIX();
- bool processEvents(QEventLoop::ProcessEventsFlags flags);
- bool hasPendingEvents();
+ bool processEvents(QEventLoop::ProcessEventsFlags flags) Q_DECL_OVERRIDE;
+ bool hasPendingEvents() Q_DECL_OVERRIDE;
void registerSocketNotifier(QSocketNotifier *notifier) FINAL_EXCEPT_BLACKBERRY;
void unregisterSocketNotifier(QSocketNotifier *notifier) FINAL_EXCEPT_BLACKBERRY;
@@ -116,7 +116,7 @@ public:
void wakeUp() FINAL_EXCEPT_BLACKBERRY;
void interrupt() Q_DECL_FINAL;
- void flush();
+ void flush() Q_DECL_OVERRIDE;
protected:
QEventDispatcherUNIX(QEventDispatcherUNIXPrivate &dd, QObject *parent = 0);
diff --git a/src/corelib/kernel/qeventloop.h b/src/corelib/kernel/qeventloop.h
index 31cd1d402a..be7a40e44d 100644
--- a/src/corelib/kernel/qeventloop.h
+++ b/src/corelib/kernel/qeventloop.h
@@ -70,7 +70,7 @@ public:
void wakeUp();
- bool event(QEvent *event);
+ bool event(QEvent *event) Q_DECL_OVERRIDE;
public Q_SLOTS:
void quit();
diff --git a/src/corelib/kernel/qfunctions_wince.h b/src/corelib/kernel/qfunctions_wince.h
index cc5e0ca83f..8cbde6c465 100644
--- a/src/corelib/kernel/qfunctions_wince.h
+++ b/src/corelib/kernel/qfunctions_wince.h
@@ -208,7 +208,7 @@ int qt_wince_SetErrorMode(int);
bool qt_wince__chmod(const char *file, int mode);
bool qt_wince__wchmod(const wchar_t *file, int mode);
-#pragma warning(disable: 4273)
+QT_WARNING_DISABLE_MSVC(4273)
HANDLE qt_wince_CreateFileA(LPCSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES, DWORD, DWORD, HANDLE);
// Printer ----------------------------------------------------------
diff --git a/src/corelib/kernel/qmetaobject.cpp b/src/corelib/kernel/qmetaobject.cpp
index b54cb0c344..3e2fb46143 100644
--- a/src/corelib/kernel/qmetaobject.cpp
+++ b/src/corelib/kernel/qmetaobject.cpp
@@ -1,6 +1,7 @@
/****************************************************************************
**
** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Copyright (C) 2014 Olivier Goffart <ogoffart@woboq.com>
** Contact: http://www.qt-project.org/legal
**
** This file is part of the QtCore module of the Qt Toolkit.
@@ -2298,6 +2299,112 @@ bool QMetaMethod::invoke(QObject *object,
*/
/*!
+ \since 5.5
+
+ Invokes this method on a Q_GADGET. Returns \c true if the member could be invoked.
+ Returns \c false if there is no such member or the parameters did not match.
+
+ The pointer \a gadget must point to an instance of the gadget class.
+
+ The invocation is always synchronous.
+
+ The return value of this method call is placed in \a
+ returnValue. You can pass up to ten arguments (\a val0, \a val1,
+ \a val2, \a val3, \a val4, \a val5, \a val6, \a val7, \a val8,
+ and \a val9) to this method call.
+
+ \warning this method will not test the validity of the arguments: \a gadget
+ must be an instance of the class of the QMetaObject of which this QMetaMethod
+ has been constructed with. The arguments must have the same type as the ones
+ expected by the method, else, the behavior is undefined.
+
+ \sa Q_ARG(), Q_RETURN_ARG(), qRegisterMetaType(), QMetaObject::invokeMethod()
+*/
+bool QMetaMethod::invokeOnGadget(void* gadget, QGenericReturnArgument returnValue, QGenericArgument val0, QGenericArgument val1, QGenericArgument val2, QGenericArgument val3, QGenericArgument val4, QGenericArgument val5, QGenericArgument val6, QGenericArgument val7, QGenericArgument val8, QGenericArgument val9) const
+{
+ if (!gadget || !mobj)
+ return false;
+
+ // check return type
+ if (returnValue.data()) {
+ const char *retType = typeName();
+ if (qstrcmp(returnValue.name(), retType) != 0) {
+ // normalize the return value as well
+ QByteArray normalized = QMetaObject::normalizedType(returnValue.name());
+ if (qstrcmp(normalized.constData(), retType) != 0) {
+ // String comparison failed, try compare the metatype.
+ int t = returnType();
+ if (t == QMetaType::UnknownType || t != QMetaType::type(normalized))
+ return false;
+ }
+ }
+ }
+
+ // check argument count (we don't allow invoking a method if given too few arguments)
+ const char *typeNames[] = {
+ returnValue.name(),
+ val0.name(),
+ val1.name(),
+ val2.name(),
+ val3.name(),
+ val4.name(),
+ val5.name(),
+ val6.name(),
+ val7.name(),
+ val8.name(),
+ val9.name()
+ };
+ int paramCount;
+ for (paramCount = 1; paramCount < MaximumParamCount; ++paramCount) {
+ if (qstrlen(typeNames[paramCount]) <= 0)
+ break;
+ }
+ if (paramCount <= QMetaMethodPrivate::get(this)->parameterCount())
+ return false;
+
+ // invoke!
+ void *param[] = {
+ returnValue.data(),
+ val0.data(),
+ val1.data(),
+ val2.data(),
+ val3.data(),
+ val4.data(),
+ val5.data(),
+ val6.data(),
+ val7.data(),
+ val8.data(),
+ val9.data()
+ };
+ int idx_relative = QMetaMethodPrivate::get(this)->ownMethodIndex();
+ Q_ASSERT(QMetaObjectPrivate::get(mobj)->revision >= 6);
+ QObjectPrivate::StaticMetaCallFunction callFunction = mobj->d.static_metacall;
+ if (!callFunction)
+ return false;
+ callFunction(reinterpret_cast<QObject*>(gadget), QMetaObject::InvokeMetaMethod, idx_relative, param);
+ return true;
+}
+
+/*!
+ \fn bool QMetaMethod::invokeOnGadget(void *gadget,
+ QGenericArgument val0 = QGenericArgument(0),
+ QGenericArgument val1 = QGenericArgument(),
+ QGenericArgument val2 = QGenericArgument(),
+ QGenericArgument val3 = QGenericArgument(),
+ QGenericArgument val4 = QGenericArgument(),
+ QGenericArgument val5 = QGenericArgument(),
+ QGenericArgument val6 = QGenericArgument(),
+ QGenericArgument val7 = QGenericArgument(),
+ QGenericArgument val8 = QGenericArgument(),
+ QGenericArgument val9 = QGenericArgument()) const
+
+ \overload
+ \since 5.5
+
+ This overload invokes this method for a \a gadget and ignores return values.
+*/
+
+/*!
\class QMetaEnum
\inmodule QtCore
\brief The QMetaEnum class provides meta-data about an enumerator.
@@ -2713,9 +2820,8 @@ int QMetaProperty::userType() const
if (isEnumType()) {
type = QMetaType::type(qualifiedName(menum));
if (type == QMetaType::UnknownType) {
- void *argv[] = { &type };
- mobj->static_metacall(QMetaObject::RegisterPropertyMetaType, idx, argv);
- if (type == -1 || type == QMetaType::UnknownType)
+ type = registerPropertyType();
+ if (type == QMetaType::UnknownType)
return QVariant::Int; // Match behavior of QMetaType::type()
}
return type;
@@ -2723,11 +2829,7 @@ int QMetaProperty::userType() const
type = QMetaType::type(typeName());
if (type != QMetaType::UnknownType)
return type;
- void *argv[] = { &type };
- mobj->static_metacall(QMetaObject::RegisterPropertyMetaType, idx, argv);
- if (type != -1)
- return type;
- return QMetaType::UnknownType;
+ return registerPropertyType();
}
/*!
@@ -2791,6 +2893,20 @@ bool QMetaProperty::hasStdCppSet() const
}
/*!
+ \internal
+ Executes metacall with QMetaObject::RegisterPropertyMetaType flag.
+ Returns id of registered type or QMetaType::UnknownType if a type
+ could not be registered for any reason.
+*/
+int QMetaProperty::registerPropertyType() const
+{
+ int registerResult = -1;
+ void *argv[] = { &registerResult };
+ mobj->static_metacall(QMetaObject::RegisterPropertyMetaType, idx, argv);
+ return registerResult == -1 ? QMetaType::UnknownType : registerResult;
+}
+
+/*!
Returns the enumerator if this property's type is an enumerator
type; otherwise the returned value is undefined.
@@ -2835,15 +2951,11 @@ QVariant QMetaProperty::read(const QObject *object) const
}
if (t == QMetaType::UnknownType) {
// Try to register the type and try again before reporting an error.
- int registerResult = -1;
- void *argv[] = { &registerResult };
- QMetaObject::metacall(const_cast<QObject*>(object), QMetaObject::RegisterPropertyMetaType,
- idx + mobj->propertyOffset(), argv);
- if (registerResult == -1) {
+ t = registerPropertyType();
+ if (t == QMetaType::UnknownType) {
qWarning("QMetaProperty::read: Unable to handle unregistered datatype '%s' for property '%s::%s'", typeName, mobj->className(), name());
return QVariant();
}
- t = registerResult;
}
}
@@ -2861,8 +2973,12 @@ QVariant QMetaProperty::read(const QObject *object) const
value = QVariant(t, (void*)0);
argv[0] = value.data();
}
- QMetaObject::metacall(const_cast<QObject*>(object), QMetaObject::ReadProperty,
- idx + mobj->propertyOffset(), argv);
+ if (priv(mobj->d.data)->flags & PropertyAccessInStaticMetaCall && mobj->d.static_metacall) {
+ mobj->d.static_metacall(const_cast<QObject*>(object), QMetaObject::ReadProperty, idx, argv);
+ } else {
+ QMetaObject::metacall(const_cast<QObject*>(object), QMetaObject::ReadProperty,
+ idx + mobj->propertyOffset(), argv);
+ }
if (status != -1)
return value;
@@ -2911,9 +3027,11 @@ bool QMetaProperty::write(QObject *object, const QVariant &value) const
else {
typeName = rawStringData(mobj, typeInfo & TypeNameIndexMask);
t = QMetaType::type(typeName);
+ if (t == QMetaType::UnknownType)
+ t = registerPropertyType();
+ if (t == QMetaType::UnknownType)
+ return false;
}
- if (t == QMetaType::UnknownType)
- return false;
if (t != QMetaType::QVariant && t != (uint)value.userType() && (t < QMetaType::User && !v.convert((QVariant::Type)t)))
return false;
}
@@ -2932,7 +3050,11 @@ bool QMetaProperty::write(QObject *object, const QVariant &value) const
argv[0] = &v;
else
argv[0] = v.data();
- QMetaObject::metacall(object, QMetaObject::WriteProperty, idx + mobj->propertyOffset(), argv);
+ if (priv(mobj->d.data)->flags & PropertyAccessInStaticMetaCall && mobj->d.static_metacall)
+ mobj->d.static_metacall(object, QMetaObject::WriteProperty, idx, argv);
+ else
+ QMetaObject::metacall(object, QMetaObject::WriteProperty, idx + mobj->propertyOffset(), argv);
+
return status;
}
@@ -2949,9 +3071,55 @@ bool QMetaProperty::reset(QObject *object) const
if (!object || !mobj || !isResettable())
return false;
void *argv[] = { 0 };
- QMetaObject::metacall(object, QMetaObject::ResetProperty, idx + mobj->propertyOffset(), argv);
+ if (priv(mobj->d.data)->flags & PropertyAccessInStaticMetaCall && mobj->d.static_metacall)
+ mobj->d.static_metacall(object, QMetaObject::ResetProperty, idx, argv);
+ else
+ QMetaObject::metacall(object, QMetaObject::ResetProperty, idx + mobj->propertyOffset(), argv);
return true;
}
+/*!
+ \since 5.5
+
+ Reads the property's value from the given \a gadget. Returns the value
+ if it was able to read it; otherwise returns an invalid variant.
+
+ This function should only be used if this is a property of a Q_GADGET
+*/
+QVariant QMetaProperty::readOnGadget(const void *gadget) const
+{
+ Q_ASSERT(priv(mobj->d.data)->flags & PropertyAccessInStaticMetaCall && mobj->d.static_metacall);
+ return read(reinterpret_cast<const QObject*>(gadget));
+}
+
+/*!
+ \since 5.5
+
+ Writes \a value as the property's value to the given \a gadget. Returns
+ true if the write succeeded; otherwise returns \c false.
+
+ This function should only be used if this is a property of a Q_GADGET
+*/
+bool QMetaProperty::writeOnGadget(void *gadget, const QVariant &value) const
+{
+ Q_ASSERT(priv(mobj->d.data)->flags & PropertyAccessInStaticMetaCall && mobj->d.static_metacall);
+ return write(reinterpret_cast<QObject*>(gadget), value);
+}
+
+/*!
+ \since 5.5
+
+ Resets the property for the given \a gadget with a reset method.
+ Returns \c true if the reset worked; otherwise returns \c false.
+
+ Reset methods are optional; only a few properties support them.
+
+ This function should only be used if this is a property of a Q_GADGET
+*/
+bool QMetaProperty::resetOnGadget(void *gadget) const
+{
+ Q_ASSERT(priv(mobj->d.data)->flags & PropertyAccessInStaticMetaCall && mobj->d.static_metacall);
+ return reset(reinterpret_cast<QObject*>(gadget));
+}
/*!
Returns \c true if this property can be reset to a default value; otherwise
diff --git a/src/corelib/kernel/qmetaobject.h b/src/corelib/kernel/qmetaobject.h
index 2a874697c3..fdbcf5171d 100644
--- a/src/corelib/kernel/qmetaobject.h
+++ b/src/corelib/kernel/qmetaobject.h
@@ -1,6 +1,7 @@
/****************************************************************************
**
** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Copyright (C) 2014 Olivier Goffart <ogoffart@woboq.com>
** Contact: http://www.qt-project.org/legal
**
** This file is part of the QtCore module of the Qt Toolkit.
@@ -131,6 +132,34 @@ public:
val0, val1, val2, val3, val4, val5, val6, val7, val8, val9);
}
+ bool invokeOnGadget(void *gadget,
+ QGenericReturnArgument returnValue,
+ QGenericArgument val0 = QGenericArgument(0),
+ QGenericArgument val1 = QGenericArgument(),
+ QGenericArgument val2 = QGenericArgument(),
+ QGenericArgument val3 = QGenericArgument(),
+ QGenericArgument val4 = QGenericArgument(),
+ QGenericArgument val5 = QGenericArgument(),
+ QGenericArgument val6 = QGenericArgument(),
+ QGenericArgument val7 = QGenericArgument(),
+ QGenericArgument val8 = QGenericArgument(),
+ QGenericArgument val9 = QGenericArgument()) const;
+ inline bool invokeOnGadget(void *gadget,
+ QGenericArgument val0 = QGenericArgument(0),
+ QGenericArgument val1 = QGenericArgument(),
+ QGenericArgument val2 = QGenericArgument(),
+ QGenericArgument val3 = QGenericArgument(),
+ QGenericArgument val4 = QGenericArgument(),
+ QGenericArgument val5 = QGenericArgument(),
+ QGenericArgument val6 = QGenericArgument(),
+ QGenericArgument val7 = QGenericArgument(),
+ QGenericArgument val8 = QGenericArgument(),
+ QGenericArgument val9 = QGenericArgument()) const
+ {
+ return invokeOnGadget(gadget, QGenericReturnArgument(),
+ val0, val1, val2, val3, val4, val5, val6, val7, val8, val9);
+ }
+
inline bool isValid() const { return mobj != 0; }
#ifdef Q_QDOC
@@ -237,11 +266,17 @@ public:
bool write(QObject *obj, const QVariant &value) const;
bool reset(QObject *obj) const;
+ QVariant readOnGadget(const void *gadget) const;
+ bool writeOnGadget(void *gadget, const QVariant &value) const;
+ bool resetOnGadget(void *gadget) const;
+
bool hasStdCppSet() const;
inline bool isValid() const { return isReadable(); }
inline const QMetaObject *enclosingMetaObject() const { return mobj; }
private:
+ int registerPropertyType() const;
+
const QMetaObject *mobj;
uint handle;
int idx;
diff --git a/src/corelib/kernel/qmetaobject_p.h b/src/corelib/kernel/qmetaobject_p.h
index c08838e456..45fe56ec8a 100644
--- a/src/corelib/kernel/qmetaobject_p.h
+++ b/src/corelib/kernel/qmetaobject_p.h
@@ -1,6 +1,7 @@
/****************************************************************************
**
** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Copyright (C) 2014 Olivier Goffart <ogoffart@woboq.com>
** Contact: http://www.qt-project.org/legal
**
** This file is part of the QtCore module of the Qt Toolkit.
@@ -98,7 +99,8 @@ enum MethodFlags {
enum MetaObjectFlags {
DynamicMetaObject = 0x01,
- RequiresVariantMetaObject = 0x02
+ RequiresVariantMetaObject = 0x02,
+ PropertyAccessInStaticMetaCall = 0x04 // since Qt 5.5, property code is in the static metacall
};
enum MetaDataFlags {
diff --git a/src/corelib/kernel/qmetatype.cpp b/src/corelib/kernel/qmetatype.cpp
index 311648c33a..294b1fc07c 100644
--- a/src/corelib/kernel/qmetatype.cpp
+++ b/src/corelib/kernel/qmetatype.cpp
@@ -283,10 +283,11 @@ struct DefinedTypesFilter {
\value MovableType An instance of a type having this attribute can be safely moved by memcpy.
\omitvalue SharedPointerToQObject
\omitvalue IsEnumeration
- \omitvalue PointerToQObject
+ \value PointerToQObject This type is a pointer to a derived of QObject
\omitvalue WeakPointerToQObject
\omitvalue TrackingPointerToQObject
\omitvalue WasDeclaredAsMetaType
+ \value IsGadget This type is a Q_GADGET and it's corresponding QMetaObject can be accessed with QMetaType::metaObject Since 5.5.
*/
/*!
@@ -363,8 +364,19 @@ struct DefinedTypesFilter {
/*!
\fn const QMetaObject *QMetaType::metaObject() const
- \since 5.0
- \internal
+ \since 5.5
+
+ return a QMetaObject relative to this type.
+
+ If the type is a pointer type to a subclass of QObject, flags contains
+ QMetaType::PointerToQObject and this function returns the corresponding QMetaObject. This can
+ be used to in combinaison with QMetaObject::construct to create QObject of this type.
+
+ If the type is a Q_GADGET, flags contains QMetaType::IsGadget, and this function returns its
+ QMetaObject. This can be used to retrieve QMetaMethod and QMetaProperty and use them on a
+ pointer of this type. (given by QVariant::data for example)
+
+ \sa QMetaType::metaObjectForType(), QMetaType::flags()
*/
/*!
@@ -801,7 +813,7 @@ static inline int qMetaTypeStaticType(const char *typeName, int length)
{
int i = 0;
while (types[i].typeName && ((length != types[i].typeNameLength)
- || strcmp(typeName, types[i].typeName))) {
+ || memcmp(typeName, types[i].typeName, length))) {
++i;
}
return types[i].type;
@@ -821,7 +833,7 @@ static int qMetaTypeCustomType_unlocked(const char *typeName, int length)
for (int v = 0; v < ct->count(); ++v) {
const QCustomTypeInfo &customInfo = ct->at(v);
if ((length == customInfo.typeName.size())
- && !strcmp(typeName, customInfo.typeName.constData())) {
+ && !memcmp(typeName, customInfo.typeName.constData(), length)) {
if (customInfo.alias >= 0)
return customInfo.alias;
return v + QMetaType::User;
@@ -870,24 +882,43 @@ int QMetaType::registerType(const char *typeName, Deleter deleter,
/*!
- \internal
- \since 5.0
+ \internal
+ \since 5.0
+ \overload
+ Don't use, kept for binary compatibility
- Registers a user type for marshalling, with \a normalizedTypeName, a \a
- deleter, a \a creator, a \a destructor, a \a constructor, and
- a \a size. Returns the type's handle, or -1 if the type could
- not be registered. Note that normalizedTypeName is not checked for
- conformance with Qt's normalized format, so it must already
- conform.
- */
+ ### TODO Qt6: remove me
+*/
int QMetaType::registerNormalizedType(const NS(QByteArray) &normalizedTypeName, Deleter deleter,
Creator creator,
Destructor destructor,
Constructor constructor,
int size, TypeFlags flags, const QMetaObject *metaObject)
{
+ Q_UNUSED(deleter);
+ Q_UNUSED(creator);
+ return registerNormalizedType(normalizedTypeName, destructor, constructor, size, flags, metaObject);
+}
+
+
+/*!
+ \internal
+ \since 5.5
+
+ Registers a user type for marshalling, with \a normalizedTypeName,
+ a \a destructor, a \a constructor, and a \a size. Returns the type's
+ handle, or -1 if the type could not be registered.
+
+ \note normalizedTypeName is not checked for conformance with
+ Qt's normalized format, so it must already conform.
+ */
+int QMetaType::registerNormalizedType(const NS(QByteArray) &normalizedTypeName,
+ Destructor destructor,
+ Constructor constructor,
+ int size, TypeFlags flags, const QMetaObject *metaObject)
+{
QVector<QCustomTypeInfo> *ct = customTypes();
- if (!ct || normalizedTypeName.isEmpty() || !deleter || !creator || !destructor || !constructor)
+ if (!ct || normalizedTypeName.isEmpty() || !destructor || !constructor)
return -1;
int idx = qMetaTypeStaticType(normalizedTypeName.constData(),
@@ -902,8 +933,6 @@ int QMetaType::registerNormalizedType(const NS(QByteArray) &normalizedTypeName,
if (idx == UnknownType) {
QCustomTypeInfo inf;
inf.typeName = normalizedTypeName;
- inf.creator = creator;
- inf.deleter = deleter;
#ifndef QT_NO_DATASTREAM
inf.loadOp = 0;
inf.saveOp = 0;
@@ -1004,8 +1033,6 @@ int QMetaType::registerNormalizedTypedef(const NS(QByteArray) &normalizedTypeNam
QCustomTypeInfo inf;
inf.typeName = normalizedTypeName;
inf.alias = aliasId;
- inf.creator = 0;
- inf.deleter = 0;
ct->append(inf);
return aliasId;
}
@@ -1048,9 +1075,8 @@ bool QMetaType::isRegistered(int type)
Implementation of QMetaType::type().
*/
template <bool tryNormalizedType>
-static inline int qMetaTypeTypeImpl(const char *typeName)
+static inline int qMetaTypeTypeImpl(const char *typeName, int length)
{
- int length = qstrlen(typeName);
if (!length)
return QMetaType::UnknownType;
int type = qMetaTypeStaticType(typeName, length);
@@ -1080,7 +1106,7 @@ static inline int qMetaTypeTypeImpl(const char *typeName)
*/
int QMetaType::type(const char *typeName)
{
- return qMetaTypeTypeImpl</*tryNormalizedType=*/true>(typeName);
+ return qMetaTypeTypeImpl</*tryNormalizedType=*/true>(typeName, qstrlen(typeName));
}
/*!
@@ -1092,7 +1118,21 @@ int QMetaType::type(const char *typeName)
*/
int qMetaTypeTypeInternal(const char *typeName)
{
- return qMetaTypeTypeImpl</*tryNormalizedType=*/false>(typeName);
+ return qMetaTypeTypeImpl</*tryNormalizedType=*/false>(typeName, qstrlen(typeName));
+}
+
+/*!
+ \since 5.5
+ \overload
+
+ Returns a handle to the type called \a typeName, or 0 if there is
+ no such type.
+
+ \sa isRegistered(), typeName()
+*/
+int QMetaType::type(const QT_PREPEND_NAMESPACE(QByteArray) &typeName)
+{
+ return qMetaTypeTypeImpl</*tryNormalizedType=*/true>(typeName.constData(), typeName.size());
}
#ifndef QT_NO_DATASTREAM
@@ -1541,60 +1581,6 @@ bool QMetaType::load(QDataStream &stream, int type, void *data)
return true;
}
#endif // QT_NO_DATASTREAM
-namespace {
-class TypeCreator {
- template<typename T, bool IsAcceptedType = DefinedTypesFilter::Acceptor<T>::IsAccepted>
- struct CreatorImpl {
- static void *Create(const int /* type */, const void *copy)
- {
- // Using QMetaTypeFunctionHelper<T>::Create adds function call cost, even if it is a template (gcc).
- // This "copy" check is moved out from the switcher by compiler (at least by gcc)
- return copy ? new T(*static_cast<const T*>(copy)) : new T();
- }
- };
- template<typename T>
- struct CreatorImpl<T, /* IsAcceptedType = */ false> {
- static void *Create(const int type, const void *copy)
- {
- if (QModulesPrivate::QTypeModuleInfo<T>::IsGui) {
- if (Q_LIKELY(qMetaTypeGuiHelper))
- return qMetaTypeGuiHelper[type - QMetaType::FirstGuiType].creator(copy);
- }
- if (QModulesPrivate::QTypeModuleInfo<T>::IsWidget) {
- if (Q_LIKELY(qMetaTypeWidgetsHelper))
- return qMetaTypeWidgetsHelper[type - QMetaType::FirstWidgetsType].creator(copy);
- }
- // This point can be reached only for known types that definition is not available, for example
- // in bootstrap mode. We have no other choice then ignore it.
- return 0;
- }
- };
-public:
- TypeCreator(const int type)
- : m_type(type)
- {}
-
- template<typename T>
- void *delegate(const T *copy) { return CreatorImpl<T>::Create(m_type, copy); }
- void *delegate(const void*) { return 0; }
- void *delegate(const QMetaTypeSwitcher::UnknownType *) { return 0; }
- void *delegate(const QMetaTypeSwitcher::NotBuiltinType *copy)
- {
- QMetaType::Creator creator;
- const QVector<QCustomTypeInfo> * const ct = customTypes();
- {
- QReadLocker locker(customTypesLock());
- if (Q_UNLIKELY(m_type < QMetaType::User || !ct || ct->count() <= m_type - QMetaType::User))
- return 0;
- creator = ct->at(m_type - QMetaType::User).creator;
- }
- Q_ASSERT_X(creator, "void *QMetaType::create(int type, const void *copy)", "The type was not properly registered");
- return creator(copy);
- }
-private:
- const int m_type;
-};
-} // namespace
/*!
Returns a copy of \a copy, assuming it is of type \a type. If \a
@@ -1604,65 +1590,11 @@ private:
*/
void *QMetaType::create(int type, const void *copy)
{
- TypeCreator typeCreator(type);
- return QMetaTypeSwitcher::switcher<void*>(typeCreator, type, copy);
+ QMetaType info(type);
+ int size = info.sizeOf();
+ return info.construct(operator new(size), copy);
}
-namespace {
-class TypeDestroyer {
- template<typename T, bool IsAcceptedType = DefinedTypesFilter::Acceptor<T>::IsAccepted>
- struct DestroyerImpl {
- static void Destroy(const int /* type */, void *where) { QtMetaTypePrivate::QMetaTypeFunctionHelper<T>::Delete(where); }
- };
- template<typename T>
- struct DestroyerImpl<T, /* IsAcceptedType = */ false> {
- static void Destroy(const int type, void *where)
- {
- if (QModulesPrivate::QTypeModuleInfo<T>::IsGui) {
- if (Q_LIKELY(qMetaTypeGuiHelper))
- qMetaTypeGuiHelper[type - QMetaType::FirstGuiType].deleter(where);
- return;
- }
- if (QModulesPrivate::QTypeModuleInfo<T>::IsWidget) {
- if (Q_LIKELY(qMetaTypeWidgetsHelper))
- qMetaTypeWidgetsHelper[type - QMetaType::FirstWidgetsType].deleter(where);
- return;
- }
- // This point can be reached only for known types that definition is not available, for example
- // in bootstrap mode. We have no other choice then ignore it.
- }
- };
-public:
- TypeDestroyer(const int type)
- : m_type(type)
- {}
-
- template<typename T>
- void delegate(const T *where) { DestroyerImpl<T>::Destroy(m_type, const_cast<T*>(where)); }
- void delegate(const void *) {}
- void delegate(const QMetaTypeSwitcher::UnknownType*) {}
- void delegate(const QMetaTypeSwitcher::NotBuiltinType *where) { customTypeDestroyer(m_type, (void*)where); }
-
-private:
- static void customTypeDestroyer(const int type, void *where)
- {
- QMetaType::Destructor deleter;
- const QVector<QCustomTypeInfo> * const ct = customTypes();
- {
- QReadLocker locker(customTypesLock());
- if (Q_UNLIKELY(type < QMetaType::User || !ct || ct->count() <= type - QMetaType::User))
- return;
- deleter = ct->at(type - QMetaType::User).deleter;
- }
- Q_ASSERT_X(deleter, "void QMetaType::destroy(int type, void *data)", "The type was not properly registered");
- deleter(where);
- }
-
- const int m_type;
-};
-} // namespace
-
-
/*!
Destroys the \a data, assuming it is of the \a type given.
@@ -1670,8 +1602,9 @@ private:
*/
void QMetaType::destroy(int type, void *data)
{
- TypeDestroyer deleter(type);
- QMetaTypeSwitcher::switcher<void>(deleter, type, data);
+ QMetaType info(type);
+ info.destruct(data);
+ operator delete(data);
}
namespace {
@@ -1969,8 +1902,27 @@ public:
MetaObject(const int type)
: m_type(type)
{}
+
+ template<typename T, bool IsAcceptedType = DefinedTypesFilter::Acceptor<T>::IsAccepted>
+ struct MetaObjectImpl
+ {
+ static const QMetaObject *MetaObject(int /*type*/)
+ { return QtPrivate::MetaObjectForType<T>::value(); }
+ };
template<typename T>
- const QMetaObject *delegate(const T*) { return QtPrivate::MetaObjectForType<T>::value(); }
+ struct MetaObjectImpl<T, /* IsAcceptedType = */ false>
+ {
+ static const QMetaObject *MetaObject(int type) {
+ if (QModulesPrivate::QTypeModuleInfo<T>::IsGui)
+ return Q_LIKELY(qMetaTypeGuiHelper) ? qMetaTypeGuiHelper[type - QMetaType::FirstGuiType].metaObject : 0;
+ if (QModulesPrivate::QTypeModuleInfo<T>::IsWidget)
+ return Q_LIKELY(qMetaTypeWidgetsHelper) ? qMetaTypeWidgetsHelper[type - QMetaType::FirstWidgetsType].metaObject : 0;
+ return 0;
+ }
+ };
+
+ template <typename T>
+ const QMetaObject *delegate(const T *) { return MetaObjectImpl<T>::MetaObject(m_type); }
const QMetaObject *delegate(const void*) { return 0; }
const QMetaObject *delegate(const QMetaTypeSwitcher::UnknownType*) { return 0; }
const QMetaObject *delegate(const QMetaTypeSwitcher::NotBuiltinType*) { return customMetaObject(m_type); }
@@ -1993,7 +1945,9 @@ private:
/*!
\since 5.0
- Returns QMetaObject of a given \a type, if the \a type is a pointer to type derived from QObject.
+ returns QMetaType::metaObject for \a type
+
+ \sa metaObject()
*/
const QMetaObject *QMetaType::metaObjectForType(int type)
{
@@ -2200,10 +2154,10 @@ QMetaType QMetaType::typeInfo(const int type)
{
TypeInfo typeInfo(type);
QMetaTypeSwitcher::switcher<void>(typeInfo, type, 0);
- return typeInfo.info.creator ? QMetaType(QMetaType::NoExtensionFlags
+ return typeInfo.info.constructor ? QMetaType(static_cast<ExtensionFlag>(QMetaType::CreateEx | QMetaType::DestroyEx)
, static_cast<const QMetaTypeInterface *>(0) // typeInfo::info is a temporary variable, we can't return address of it.
- , typeInfo.info.creator
- , typeInfo.info.deleter
+ , 0 // unused
+ , 0 // unused
, typeInfo.info.saveOp
, typeInfo.info.loadOp
, typeInfo.info.constructor
@@ -2245,8 +2199,8 @@ QMetaType::QMetaType(const int typeId)
Copy constructs a QMetaType object.
*/
QMetaType::QMetaType(const QMetaType &other)
- : m_creator(other.m_creator)
- , m_deleter(other.m_deleter)
+ : m_creator_unused(other.m_creator_unused)
+ , m_deleter_unused(other.m_deleter_unused)
, m_saveOp(other.m_saveOp)
, m_loadOp(other.m_loadOp)
, m_constructor(other.m_constructor)
@@ -2261,8 +2215,8 @@ QMetaType::QMetaType(const QMetaType &other)
QMetaType &QMetaType::operator =(const QMetaType &other)
{
- m_creator = other.m_creator;
- m_deleter = other.m_deleter;
+ m_creator_unused = other.m_creator_unused;
+ m_deleter_unused = other.m_deleter_unused;
m_saveOp = other.m_saveOp;
m_loadOp = other.m_loadOp;
m_constructor = other.m_constructor;
@@ -2311,11 +2265,14 @@ void QMetaType::dtor()
Method used for future binary compatible extensions. The function may be called
during QMetaType::create to force library call from inlined code.
+
+ ### TODO Qt6 remove the extension
*/
void *QMetaType::createExtended(const void *copy) const
{
- Q_UNUSED(copy);
- return 0;
+ if (m_typeId == QMetaType::UnknownType)
+ return 0;
+ return m_constructor(operator new(m_size), copy);
}
/*!
@@ -2324,10 +2281,13 @@ void *QMetaType::createExtended(const void *copy) const
Method used for future binary compatible extensions. The function may be called
during QMetaType::destroy to force library call from inlined code.
+
+ ### TODO Qt6 remove the extension
*/
void QMetaType::destroyExtended(void *data) const
{
- Q_UNUSED(data);
+ m_destructor(data);
+ operator delete(data);
}
/*!
diff --git a/src/corelib/kernel/qmetatype.h b/src/corelib/kernel/qmetatype.h
index 7a45e21253..0e817da8ce 100644
--- a/src/corelib/kernel/qmetatype.h
+++ b/src/corelib/kernel/qmetatype.h
@@ -1,6 +1,7 @@
/****************************************************************************
**
** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Copyright (C) 2014 Olivier Goffart <ogoffart@woboq.com>
** Contact: http://www.qt-project.org/legal
**
** This file is part of the QtCore module of the Qt Toolkit.
@@ -62,6 +63,7 @@ template <typename T>
inline Q_DECL_CONSTEXPR int qMetaTypeId();
// F is a tuple: (QMetaType::TypeName, QMetaType::TypeNameID, RealType)
+// ### Qt6: reorder the types to match the C++ integral type ranking
#define QT_FOR_EACH_STATIC_PRIMITIVE_TYPE(F)\
F(Void, 43, void) \
F(Bool, 1, bool) \
@@ -435,7 +437,8 @@ public:
SharedPointerToQObject = 0x20,
WeakPointerToQObject = 0x40,
TrackingPointerToQObject = 0x80,
- WasDeclaredAsMetaType = 0x100
+ WasDeclaredAsMetaType = 0x100,
+ IsGadget = 0x200
};
Q_DECLARE_FLAGS(TypeFlags, TypeFlag)
@@ -469,9 +472,19 @@ public:
int size,
QMetaType::TypeFlags flags,
const QMetaObject *metaObject);
+ static int registerNormalizedType(const QT_PREPEND_NAMESPACE(QByteArray) &normalizedTypeName, Destructor destructor,
+ Constructor constructor,
+ int size,
+ QMetaType::TypeFlags flags,
+ const QMetaObject *metaObject);
static int registerTypedef(const char *typeName, int aliasId);
static int registerNormalizedTypedef(const QT_PREPEND_NAMESPACE(QByteArray) &normalizedTypeName, int aliasId);
static int type(const char *typeName);
+#ifndef Q_QDOC
+ static int type(const QT_PREPEND_NAMESPACE(QByteArray) &typeName);
+#else
+ static int type(const QByteArray &typeName);
+#endif
static const char *typeName(int type);
static int sizeOf(int type);
static TypeFlags typeFlags(int type);
@@ -661,8 +674,8 @@ public:
static void unregisterConverterFunction(int from, int to);
private:
- Creator m_creator;
- Deleter m_deleter;
+ Creator m_creator_unused;
+ Deleter m_deleter_unused;
SaveOperator m_saveOp;
LoadOperator m_loadOp;
Constructor m_constructor;
@@ -702,18 +715,6 @@ ConverterFunctor<From, To, UnaryFunction>::~ConverterFunctor()
namespace QtMetaTypePrivate {
template <typename T, bool Accepted = true>
struct QMetaTypeFunctionHelper {
- static void Delete(void *t)
- {
- delete static_cast<T*>(t);
- }
-
- static void *Create(const void *t)
- {
- if (t)
- return new T(*static_cast<const T*>(t));
- return new T();
- }
-
static void Destruct(void *t)
{
Q_UNUSED(t) // Silence MSVC that warns for POD types.
@@ -741,8 +742,6 @@ struct QMetaTypeFunctionHelper {
template <typename T>
struct QMetaTypeFunctionHelper<T, /* Accepted */ false> {
- static void Delete(void *) {}
- static void *Create(const void *) { return 0; }
static void Destruct(void *) {}
static void *Construct(void *, const void *) { return 0; }
#ifndef QT_NO_DATASTREAM
@@ -1330,14 +1329,27 @@ namespace QtPrivate
enum { Value = sizeof(checkType(static_cast<T*>(0))) == sizeof(yes_type) };
};
- template<typename T, bool = IsPointerToTypeDerivedFromQObject<T>::Value>
+ template<typename T>
+ struct IsGadgetHelper
+ {
+ template<typename X> static typename X::QtGadgetHelper *checkType(X*);
+ static char checkType(void*);
+ enum { Value = sizeof(checkType(static_cast<T*>(0))) == sizeof(void*) };
+ };
+
+ template<typename T, typename Enable = void>
struct MetaObjectForType
{
static inline const QMetaObject *value() { return 0; }
};
template<typename T>
- struct MetaObjectForType<T*, /* isPointerToTypeDerivedFromQObject = */ true>
+ struct MetaObjectForType<T*, typename QEnableIf<IsPointerToTypeDerivedFromQObject<T*>::Value>::Type>
+ {
+ static inline const QMetaObject *value() { return &T::staticMetaObject; }
+ };
+ template<typename T>
+ struct MetaObjectForType<T, typename QEnableIf<IsGadgetHelper<T>::Value>::Type>
{
static inline const QMetaObject *value() { return &T::staticMetaObject; }
};
@@ -1512,6 +1524,9 @@ struct QMetaTypeId2
template <typename T>
struct QMetaTypeId2<const T&> : QMetaTypeId2<T> {};
+template <typename T>
+struct QMetaTypeId2<T&> { enum {Defined = false }; };
+
namespace QtPrivate {
template <typename T, bool Defined = QMetaTypeId2<T>::Defined>
struct QMetaTypeIdHelper {
@@ -1545,6 +1560,7 @@ namespace QtPrivate {
| (IsWeakPointerToTypeDerivedFromQObject<T>::Value ? QMetaType::WeakPointerToQObject : 0)
| (IsTrackingPointerToTypeDerivedFromQObject<T>::Value ? QMetaType::TrackingPointerToQObject : 0)
| (Q_IS_ENUM(T) ? QMetaType::IsEnumeration : 0)
+ | (IsGadgetHelper<T>::Value ? QMetaType::IsGadget : 0)
};
};
@@ -1594,8 +1610,6 @@ int qRegisterNormalizedMetaType(const QT_PREPEND_NAMESPACE(QByteArray) &normaliz
flags |= QMetaType::WasDeclaredAsMetaType;
const int id = QMetaType::registerNormalizedType(normalizedTypeName,
- QtMetaTypePrivate::QMetaTypeFunctionHelper<T>::Delete,
- QtMetaTypePrivate::QMetaTypeFunctionHelper<T>::Create,
QtMetaTypePrivate::QMetaTypeFunctionHelper<T>::Destruct,
QtMetaTypePrivate::QMetaTypeFunctionHelper<T>::Construct,
int(sizeof(T)),
@@ -1964,8 +1978,8 @@ inline QMetaType::QMetaType(const ExtensionFlag extensionFlags, const QMetaTypeI
uint theTypeFlags,
int typeId,
const QMetaObject *_metaObject)
- : m_creator(creator)
- , m_deleter(deleter)
+ : m_creator_unused(creator)
+ , m_deleter_unused(deleter)
, m_saveOp(saveOp)
, m_loadOp(loadOp)
, m_constructor(constructor)
@@ -1999,16 +2013,14 @@ inline bool QMetaType::isRegistered() const
inline void *QMetaType::create(const void *copy) const
{
- if (Q_UNLIKELY(isExtended(CreateEx)))
- return createExtended(copy);
- return m_creator(copy);
+ // ### TODO Qt6 remove the extension
+ return createExtended(copy);
}
inline void QMetaType::destroy(void *data) const
{
- if (Q_UNLIKELY(isExtended(DestroyEx)))
- return destroyExtended(data);
- m_deleter(data);
+ // ### TODO Qt6 remove the extension
+ destroyExtended(data);
}
inline void *QMetaType::construct(void *where, const void *copy) const
diff --git a/src/corelib/kernel/qmetatype_p.h b/src/corelib/kernel/qmetatype_p.h
index c75d5ee792..97c0a08729 100644
--- a/src/corelib/kernel/qmetatype_p.h
+++ b/src/corelib/kernel/qmetatype_p.h
@@ -114,8 +114,6 @@ QT_FOR_EACH_STATIC_WIDGETS_CLASS(QT_DECLARE_WIDGETS_MODULE_TYPES_ITER)
class QMetaTypeInterface
{
public:
- QMetaType::Creator creator;
- QMetaType::Deleter deleter;
QMetaType::SaveOperator saveOp;
QMetaType::LoadOperator loadOp;
QMetaType::Constructor constructor;
@@ -148,8 +146,6 @@ public:
#define QT_METATYPE_INTERFACE_INIT_IMPL(Type, DATASTREAM_DELEGATE) \
{ \
- /*creator*/(QtMetaTypePrivate::QMetaTypeFunctionHelper<Type, QtMetaTypePrivate::TypeDefinition<Type>::IsAvailable>::Create), \
- /*deleter*/(QtMetaTypePrivate::QMetaTypeFunctionHelper<Type, QtMetaTypePrivate::TypeDefinition<Type>::IsAvailable>::Delete), \
DATASTREAM_DELEGATE(Type) \
/*constructor*/(QtMetaTypePrivate::QMetaTypeFunctionHelper<Type, QtMetaTypePrivate::TypeDefinition<Type>::IsAvailable>::Construct), \
/*destructor*/(QtMetaTypePrivate::QMetaTypeFunctionHelper<Type, QtMetaTypePrivate::TypeDefinition<Type>::IsAvailable>::Destruct), \
@@ -173,8 +169,6 @@ public:
#define QT_METATYPE_INTERFACE_INIT_NO_DATASTREAM(Type) QT_METATYPE_INTERFACE_INIT_IMPL(Type, QT_METATYPE_INTERFACE_INIT_EMPTY_DATASTREAM_IMPL)
#define QT_METATYPE_INTERFACE_INIT_EMPTY() \
{ \
- /*creator*/ 0, \
- /*deleter*/ 0, \
QT_METATYPE_INTERFACE_INIT_EMPTY_DATASTREAM_IMPL(void) \
/*constructor*/ 0, \
/*destructor*/ 0, \
diff --git a/src/corelib/kernel/qmimedata.cpp b/src/corelib/kernel/qmimedata.cpp
index 15fdf57747..45aec88429 100644
--- a/src/corelib/kernel/qmimedata.cpp
+++ b/src/corelib/kernel/qmimedata.cpp
@@ -286,6 +286,11 @@ QVariant QMimeDataPrivate::retrieveTypedData(const QString &format, QVariant::Ty
The \c value declaration of each format describes the way in which the
data is encoded.
+ In some cases (e.g. dropping multiple email attachments), multiple data
+ values are available. They can be accessed by adding an \c index value:
+
+ \snippet code/src_corelib_kernel_qmimedata.cpp 8
+
On Windows, the MIME format does not always map directly to the
clipboard formats. Qt provides QWinMime to map clipboard
formats to open-standard MIME formats. Similarly, the
diff --git a/src/corelib/kernel/qobject.cpp b/src/corelib/kernel/qobject.cpp
index 492031d7fe..223de0c8e0 100644
--- a/src/corelib/kernel/qobject.cpp
+++ b/src/corelib/kernel/qobject.cpp
@@ -2661,8 +2661,8 @@ QMetaObject::Connection QObject::connect(const QObject *sender, const char *sign
const char *method_arg = method;
++method; // skip code
- QByteArray methodName;
QArgumentTypeArray methodTypes;
+ QByteArray methodName = QMetaObjectPrivate::decodeMethodSignature(method, methodTypes);
const QMetaObject *rmeta = receiver->metaObject();
int method_index_relative = -1;
Q_ASSERT(QMetaObjectPrivate::get(rmeta)->revision >= 7);
@@ -4093,14 +4093,16 @@ QObjectUserData* QObject::userData(uint id) const
#ifndef QT_NO_DEBUG_STREAM
-QDebug operator<<(QDebug dbg, const QObject *o) {
+QDebug operator<<(QDebug dbg, const QObject *o)
+{
+ QDebugStateSaver saver(dbg);
if (!o)
- return dbg << "QObject(0x0) ";
+ return dbg << "QObject(0x0)";
dbg.nospace() << o->metaObject()->className() << '(' << (void *)o;
if (!o->objectName().isEmpty())
dbg << ", name = " << o->objectName();
dbg << ')';
- return dbg.space();
+ return dbg;
}
#endif
diff --git a/src/corelib/kernel/qobject_p.h b/src/corelib/kernel/qobject_p.h
index ba26ff7bfb..b663bc8d8c 100644
--- a/src/corelib/kernel/qobject_p.h
+++ b/src/corelib/kernel/qobject_p.h
@@ -414,9 +414,9 @@ struct Q_CORE_EXPORT QDynamicMetaObjectData
struct Q_CORE_EXPORT QAbstractDynamicMetaObject : public QDynamicMetaObjectData, public QMetaObject
{
- virtual QAbstractDynamicMetaObject *toDynamicMetaObject(QObject *) { return this; }
+ virtual QAbstractDynamicMetaObject *toDynamicMetaObject(QObject *) Q_DECL_OVERRIDE { return this; }
virtual int createProperty(const char *, const char *) { return -1; }
- virtual int metaCall(QObject *, QMetaObject::Call c, int _id, void **a)
+ virtual int metaCall(QObject *, QMetaObject::Call c, int _id, void **a) Q_DECL_OVERRIDE
{ return metaCall(c, _id, a); }
virtual int metaCall(QMetaObject::Call, int _id, void **) { return _id; } // Compat overload
};
diff --git a/src/corelib/kernel/qobjectdefs.h b/src/corelib/kernel/qobjectdefs.h
index 25e43d0ca0..84e7a65a54 100644
--- a/src/corelib/kernel/qobjectdefs.h
+++ b/src/corelib/kernel/qobjectdefs.h
@@ -138,15 +138,24 @@ inline void qYouForgotTheQ_OBJECT_Macro(T1, T2) {}
# define Q_DECL_HIDDEN_STATIC_METACALL Q_DECL_HIDDEN
#endif
+#if defined(Q_CC_CLANG) && Q_CC_CLANG >= 306
+# define Q_OBJECT_NO_OVERRIDE_WARNING QT_WARNING_DISABLE_CLANG("-Winconsistent-missing-override")
+#else
+# define Q_OBJECT_NO_OVERRIDE_WARNING
+#endif
+
/* qmake ignore Q_OBJECT */
#define Q_OBJECT \
public: \
Q_OBJECT_CHECK \
+ QT_WARNING_PUSH \
+ Q_OBJECT_NO_OVERRIDE_WARNING \
static const QMetaObject staticMetaObject; \
virtual const QMetaObject *metaObject() const; \
virtual void *qt_metacast(const char *); \
- QT_TR_FUNCTIONS \
virtual int qt_metacall(QMetaObject::Call, int, void **); \
+ QT_WARNING_POP \
+ QT_TR_FUNCTIONS \
private: \
Q_DECL_HIDDEN_STATIC_METACALL static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **); \
struct QPrivateSignal {};
@@ -159,7 +168,9 @@ private: \
#define Q_GADGET \
public: \
static const QMetaObject staticMetaObject; \
-private:
+ typedef void QtGadgetHelper; \
+private: \
+ Q_DECL_HIDDEN_STATIC_METACALL static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **);
#endif // QT_NO_META_MACROS
#else // Q_MOC_RUN
diff --git a/src/corelib/kernel/qsocketnotifier.h b/src/corelib/kernel/qsocketnotifier.h
index 57535b0d71..978e2912cc 100644
--- a/src/corelib/kernel/qsocketnotifier.h
+++ b/src/corelib/kernel/qsocketnotifier.h
@@ -66,7 +66,7 @@ Q_SIGNALS:
);
protected:
- bool event(QEvent *);
+ bool event(QEvent *) Q_DECL_OVERRIDE;
private:
Q_DISABLE_COPY(QSocketNotifier)
diff --git a/src/corelib/kernel/qtimer.cpp b/src/corelib/kernel/qtimer.cpp
index 0803cf302e..cb9219df14 100644
--- a/src/corelib/kernel/qtimer.cpp
+++ b/src/corelib/kernel/qtimer.cpp
@@ -263,7 +263,7 @@ public:
Q_SIGNALS:
void timeout();
protected:
- void timerEvent(QTimerEvent *);
+ void timerEvent(QTimerEvent *) Q_DECL_OVERRIDE;
};
QSingleShotTimer::QSingleShotTimer(int msec, Qt::TimerType timerType, const QObject *r, const char *member)
diff --git a/src/corelib/kernel/qtimer.h b/src/corelib/kernel/qtimer.h
index 2890f3ef08..a48113abf6 100644
--- a/src/corelib/kernel/qtimer.h
+++ b/src/corelib/kernel/qtimer.h
@@ -148,7 +148,7 @@ Q_SIGNALS:
);
protected:
- void timerEvent(QTimerEvent *);
+ void timerEvent(QTimerEvent *) Q_DECL_OVERRIDE;
private:
Q_DISABLE_COPY(QTimer)
diff --git a/src/corelib/kernel/qtranslator.cpp b/src/corelib/kernel/qtranslator.cpp
index c2d8397ae0..a9c608384a 100644
--- a/src/corelib/kernel/qtranslator.cpp
+++ b/src/corelib/kernel/qtranslator.cpp
@@ -273,6 +273,7 @@ static uint numerusHelper(int n, const uchar *rules, uint rulesSize)
}
Q_ASSERT(false);
+ return 0;
}
class QTranslatorPrivate : public QObjectPrivate
diff --git a/src/corelib/kernel/qvariant.cpp b/src/corelib/kernel/qvariant.cpp
index 2ac1bb11fb..1e71bb8978 100644
--- a/src/corelib/kernel/qvariant.cpp
+++ b/src/corelib/kernel/qvariant.cpp
@@ -69,13 +69,18 @@
QT_BEGIN_NAMESPACE
-#ifndef DBL_DIG
-# define DBL_DIG 10
+#ifndef DBL_MANT_DIG
+# define DBL_MANT_DIG 53
#endif
-#ifndef FLT_DIG
-# define FLT_DIG 6
+#ifndef FLT_MANT_DIG
+# define FLT_MANT_DIG 24
#endif
+const int log10_2_10000 = 30103; // log10(2) * 100000
+// same as C++11 std::numeric_limits<T>::max_digits10
+const int max_digits10_double = (DBL_MANT_DIG * log10_2_10000) / 100000 + 2;
+const int max_digits10_float = (FLT_MANT_DIG * log10_2_10000) / 100000 + 2;
+
namespace {
class HandlersManager
{
@@ -215,8 +220,9 @@ static qlonglong qConvertToNumber(const QVariant::Private *d, bool *ok)
return qlonglong(qMetaTypeUNumber(d));
}
- if (QMetaType::typeFlags(d->type) & QMetaType::IsEnumeration) {
- switch (QMetaType::sizeOf(d->type)) {
+ QMetaType typeInfo(d->type);
+ if (typeInfo.flags() & QMetaType::IsEnumeration) {
+ switch (typeInfo.sizeOf()) {
case 1:
return d->is_shared ? *reinterpret_cast<signed char *>(d->data.shared->ptr) : d->data.sc;
case 2:
@@ -232,6 +238,26 @@ static qlonglong qConvertToNumber(const QVariant::Private *d, bool *ok)
return Q_INT64_C(0);
}
+static qreal qConvertToRealNumber(const QVariant::Private *d, bool *ok)
+{
+ *ok = true;
+ switch (uint(d->type)) {
+ case QVariant::Double:
+ return qreal(d->data.d);
+ case QMetaType::Float:
+ return qreal(d->data.f);
+ case QVariant::ULongLong:
+ case QVariant::UInt:
+ case QMetaType::UChar:
+ case QMetaType::UShort:
+ case QMetaType::ULong:
+ return qreal(qMetaTypeUNumber(d));
+ default:
+ // includes enum conversion as well as invalid types
+ return qreal(qConvertToNumber(d, ok));
+ }
+}
+
static qulonglong qConvertToUnsignedNumber(const QVariant::Private *d, bool *ok)
{
*ok = true;
@@ -263,8 +289,9 @@ static qulonglong qConvertToUnsignedNumber(const QVariant::Private *d, bool *ok)
return qMetaTypeUNumber(d);
}
- if (QMetaType::typeFlags(d->type) & QMetaType::IsEnumeration) {
- switch (QMetaType::sizeOf(d->type)) {
+ QMetaType typeInfo(d->type);
+ if (typeInfo.flags() & QMetaType::IsEnumeration) {
+ switch (typeInfo.sizeOf()) {
case 1:
return d->is_shared ? *reinterpret_cast<uchar *>(d->data.shared->ptr) : d->data.uc;
case 2:
@@ -355,10 +382,10 @@ static bool convert(const QVariant::Private *d, int t, void *result, bool *ok)
*str = QString::number(qMetaTypeUNumber(d));
break;
case QMetaType::Float:
- *str = QString::number(d->data.f, 'g', FLT_DIG);
+ *str = QString::number(d->data.f, 'g', max_digits10_float);
break;
case QVariant::Double:
- *str = QString::number(d->data.d, 'g', DBL_DIG);
+ *str = QString::number(d->data.d, 'g', max_digits10_double);
break;
#if !defined(QT_NO_DATESTRING)
case QVariant::Date:
@@ -535,10 +562,10 @@ static bool convert(const QVariant::Private *d, int t, void *result, bool *ok)
*ba = v_cast<QString>(d)->toUtf8();
break;
case QVariant::Double:
- *ba = QByteArray::number(d->data.d, 'g', DBL_DIG);
+ *ba = QByteArray::number(d->data.d, 'g', max_digits10_double);
break;
case QMetaType::Float:
- *ba = QByteArray::number(d->data.f, 'g', FLT_DIG);
+ *ba = QByteArray::number(d->data.f, 'g', max_digits10_float);
break;
case QMetaType::Char:
case QMetaType::SChar:
@@ -3133,8 +3160,22 @@ bool QVariant::convert(const int type, void *ptr) const
static bool qIsNumericType(uint tp)
{
- return (tp >= QVariant::Bool && tp <= QVariant::Double)
- || (tp >= QMetaType::Long && tp <= QMetaType::Float);
+ static const qulonglong numericTypeBits =
+ Q_UINT64_C(1) << QMetaType::Bool |
+ Q_UINT64_C(1) << QMetaType::Double |
+ Q_UINT64_C(1) << QMetaType::Float |
+ Q_UINT64_C(1) << QMetaType::Char |
+ Q_UINT64_C(1) << QMetaType::SChar |
+ Q_UINT64_C(1) << QMetaType::UChar |
+ Q_UINT64_C(1) << QMetaType::Short |
+ Q_UINT64_C(1) << QMetaType::UShort |
+ Q_UINT64_C(1) << QMetaType::Int |
+ Q_UINT64_C(1) << QMetaType::UInt |
+ Q_UINT64_C(1) << QMetaType::Long |
+ Q_UINT64_C(1) << QMetaType::ULong |
+ Q_UINT64_C(1) << QMetaType::LongLong |
+ Q_UINT64_C(1) << QMetaType::ULongLong;
+ return tp < (CHAR_BIT * sizeof numericTypeBits) ? numericTypeBits & (Q_UINT64_C(1) << tp) : false;
}
static bool qIsFloatingPoint(uint tp)
@@ -3142,22 +3183,133 @@ static bool qIsFloatingPoint(uint tp)
return tp == QVariant::Double || tp == QMetaType::Float;
}
+static int normalizeLowerRanks(uint tp)
+{
+ static const qulonglong numericTypeBits =
+ Q_UINT64_C(1) << QMetaType::Bool |
+ Q_UINT64_C(1) << QMetaType::Char |
+ Q_UINT64_C(1) << QMetaType::SChar |
+ Q_UINT64_C(1) << QMetaType::UChar |
+ Q_UINT64_C(1) << QMetaType::Short |
+ Q_UINT64_C(1) << QMetaType::UShort;
+ return numericTypeBits & (Q_UINT64_C(1) << tp) ? QVariant::Int : tp;
+}
+
+static int normalizeLong(uint tp)
+{
+ const uint IntType = sizeof(long) == sizeof(int) ? QVariant::Int : QVariant::LongLong;
+ const uint UIntType = sizeof(ulong) == sizeof(uint) ? QVariant::UInt : QVariant::ULongLong;
+ return tp == QMetaType::Long ? IntType :
+ tp == QMetaType::ULong ? UIntType : tp;
+}
+
+static int numericTypePromotion(uint t1, uint t2)
+{
+ Q_ASSERT(qIsNumericType(t1));
+ Q_ASSERT(qIsNumericType(t2));
+
+ // C++ integral ranks: (4.13 Integer conversion rank [conv.rank])
+ // bool < signed char < short < int < long < long long
+ // unsigneds have the same rank as their signed counterparts
+ // C++ integral promotion rules (4.5 Integral Promotions [conv.prom])
+ // - any type with rank less than int can be converted to int or unsigned int
+ // 5 Expressions [expr] paragraph 9:
+ // - if either operand is double, the other shall be converted to double
+ // - " " float, " " " float
+ // - if both operands have the same type, no further conversion is needed.
+ // - if both are signed or if both are unsigned, convert to the one with highest rank
+ // - if the unsigned has higher or same rank, convert the signed to the unsigned one
+ // - if the signed can represent all values of the unsigned, convert to the signed
+ // - otherwise, convert to the unsigned corresponding to the rank of the signed
+
+ // floating point: we deviate from the C++ standard by always using qreal
+ if (qIsFloatingPoint(t1) || qIsFloatingPoint(t2))
+ return QMetaType::QReal;
+
+ // integral rules:
+ // for all platforms we support, int can always hold the values of lower-ranked types
+ t1 = normalizeLowerRanks(t1);
+ t2 = normalizeLowerRanks(t2);
+
+ // normalize long / ulong: in all platforms we run, they're either the same as int or as long long
+ t1 = normalizeLong(t1);
+ t2 = normalizeLong(t2);
+
+ // implement the other rules
+ // the four possibilities are Int, UInt, LongLong and ULongLong
+ // if any of the two is ULongLong, then it wins (highest rank, unsigned)
+ // otherwise, if one of the two is LongLong, then the other is either LongLong too or lower-ranked
+ // otherwise, if one of the two is UInt, then the other is either UInt too or Int
+ if (t1 == QVariant::ULongLong || t2 == QVariant::ULongLong)
+ return QVariant::ULongLong;
+ if (t1 == QVariant::LongLong || t2 == QVariant::LongLong)
+ return QVariant::LongLong;
+ if (t1 == QVariant::UInt || t2 == QVariant::UInt)
+ return QVariant::UInt;
+ return QVariant::Int;
+}
+
+static int integralCompare(uint promotedType, const QVariant::Private *d1, const QVariant::Private *d2)
+{
+ // use toLongLong to retrieve the data, it gets us all the bits
+ bool ok;
+ qlonglong l1 = qConvertToNumber(d1, &ok);
+ Q_ASSERT(ok);
+
+ qlonglong l2 = qConvertToNumber(d2, &ok);
+ Q_ASSERT(ok);
+
+ if (promotedType == QVariant::Int)
+ return int(l1) < int(l2) ? -1 : int(l1) == int(l2) ? 0 : 1;
+ if (promotedType == QVariant::UInt)
+ return uint(l1) < uint(l2) ? -1 : uint(l1) == uint(l2) ? 0 : 1;
+ if (promotedType == QVariant::LongLong)
+ return l1 < l2 ? -1 : l1 == l2 ? 0 : 1;
+ if (promotedType == QVariant::ULongLong)
+ return qulonglong(l1) < qulonglong(l2) ? -1 : qulonglong(l1) == qulonglong(l2) ? 0 : 1;
+
+ Q_UNREACHABLE();
+ return 0;
+}
+
+static int numericCompare(const QVariant::Private *d1, const QVariant::Private *d2)
+{
+ uint promotedType = numericTypePromotion(d1->type, d2->type);
+ if (promotedType != QMetaType::QReal)
+ return integralCompare(promotedType, d1, d2);
+
+ // qreal comparisons
+ bool ok;
+ qreal r1 = qConvertToRealNumber(d1, &ok);
+ Q_ASSERT(ok);
+ qreal r2 = qConvertToRealNumber(d2, &ok);
+ Q_ASSERT(ok);
+ if (qFuzzyCompare(r1, r2))
+ return 0;
+ return r1 < r2 ? -1 : 1;
+}
+
/*!
\internal
*/
bool QVariant::cmp(const QVariant &v) const
{
+ // try numerics first, with C++ type promotion rules (no conversion)
+ if (qIsNumericType(d.type) && qIsNumericType(v.d.type))
+ return numericCompare(&d, &v.d) == 0;
+
QVariant v1 = *this;
QVariant v2 = v;
if (d.type != v2.d.type) {
- if (qIsNumericType(d.type) && qIsNumericType(v.d.type)) {
- if (qIsFloatingPoint(d.type) || qIsFloatingPoint(v.d.type))
- return qFuzzyCompare(toReal(), v.toReal());
- else
- return toLongLong() == v.toLongLong();
+ if (v2.canConvert(v1.d.type)) {
+ if (!v2.convert(v1.d.type))
+ return false;
+ } else {
+ // try the opposite conversion, it might work
+ qSwap(v1, v2);
+ if (!v2.convert(v1.d.type))
+ return false;
}
- if (!v2.canConvert(v1.d.type) || !v2.convert(v1.d.type))
- return false;
}
if (v1.d.type >= QMetaType::User) {
int result;
@@ -3172,10 +3324,17 @@ bool QVariant::cmp(const QVariant &v) const
*/
int QVariant::compare(const QVariant &v) const
{
+ // try numerics first, with C++ type promotion rules (no conversion)
+ if (qIsNumericType(d.type) && qIsNumericType(v.d.type))
+ return numericCompare(&d, &v.d);
+
+ // check for equality next, as more types implement operator== than operator<
if (cmp(v))
return 0;
+
QVariant v1 = *this;
QVariant v2 = v;
+
if (v1.d.type != v2.d.type) {
// if both types differ, try to convert
if (v2.canConvert(v1.d.type)) {
@@ -3197,18 +3356,16 @@ int QVariant::compare(const QVariant &v) const
}
return r;
}
+
+ // did we end up with two numerics? If so, restart
+ if (qIsNumericType(v1.d.type) && qIsNumericType(v2.d.type))
+ return v1.compare(v2);
}
if (v1.d.type >= QMetaType::User) {
int result;
if (QMetaType::compare(QT_PREPEND_NAMESPACE(constData(d)), QT_PREPEND_NAMESPACE(constData(v2.d)), d.type, &result))
return result;
}
- if (qIsNumericType(v1.d.type)) {
- if (qIsFloatingPoint(v1.d.type))
- return v1.toReal() < v2.toReal() ? -1 : 1;
- else
- return v1.toLongLong() < v2.toLongLong() ? -1 : 1;
- }
switch (v1.d.type) {
case QVariant::Date:
return v1.toDate() < v2.toDate() ? -1 : 1;
diff --git a/src/corelib/mimetypes/qmimedatabase_p.h b/src/corelib/mimetypes/qmimedatabase_p.h
index 21669328db..b1e747c62e 100644
--- a/src/corelib/mimetypes/qmimedatabase_p.h
+++ b/src/corelib/mimetypes/qmimedatabase_p.h
@@ -54,6 +54,7 @@
QT_BEGIN_NAMESPACE
+class QIODevice;
class QMimeDatabase;
class QMimeProviderBase;
diff --git a/src/corelib/mimetypes/qmimeprovider_p.h b/src/corelib/mimetypes/qmimeprovider_p.h
index 027fddd2c8..1d480668e3 100644
--- a/src/corelib/mimetypes/qmimeprovider_p.h
+++ b/src/corelib/mimetypes/qmimeprovider_p.h
@@ -86,17 +86,17 @@ public:
QMimeBinaryProvider(QMimeDatabasePrivate *db);
virtual ~QMimeBinaryProvider();
- virtual bool isValid();
- virtual QMimeType mimeTypeForName(const QString &name);
- virtual QStringList findByFileName(const QString &fileName, QString *foundSuffix);
- virtual QStringList parents(const QString &mime);
- virtual QString resolveAlias(const QString &name);
- virtual QStringList listAliases(const QString &name);
- virtual QMimeType findByMagic(const QByteArray &data, int *accuracyPtr);
- virtual QList<QMimeType> allMimeTypes();
- virtual void loadMimeTypePrivate(QMimeTypePrivate &);
- virtual void loadIcon(QMimeTypePrivate &);
- virtual void loadGenericIcon(QMimeTypePrivate &);
+ virtual bool isValid() Q_DECL_OVERRIDE;
+ virtual QMimeType mimeTypeForName(const QString &name) Q_DECL_OVERRIDE;
+ virtual QStringList findByFileName(const QString &fileName, QString *foundSuffix) Q_DECL_OVERRIDE;
+ virtual QStringList parents(const QString &mime) Q_DECL_OVERRIDE;
+ virtual QString resolveAlias(const QString &name) Q_DECL_OVERRIDE;
+ virtual QStringList listAliases(const QString &name) Q_DECL_OVERRIDE;
+ virtual QMimeType findByMagic(const QByteArray &data, int *accuracyPtr) Q_DECL_OVERRIDE;
+ virtual QList<QMimeType> allMimeTypes() Q_DECL_OVERRIDE;
+ virtual void loadMimeTypePrivate(QMimeTypePrivate &) Q_DECL_OVERRIDE;
+ virtual void loadIcon(QMimeTypePrivate &) Q_DECL_OVERRIDE;
+ virtual void loadGenericIcon(QMimeTypePrivate &) Q_DECL_OVERRIDE;
private:
struct CacheFile;
@@ -128,14 +128,14 @@ class QMimeXMLProvider : public QMimeProviderBase
public:
QMimeXMLProvider(QMimeDatabasePrivate *db);
- virtual bool isValid();
- virtual QMimeType mimeTypeForName(const QString &name);
- virtual QStringList findByFileName(const QString &fileName, QString *foundSuffix);
- virtual QStringList parents(const QString &mime);
- virtual QString resolveAlias(const QString &name);
- virtual QStringList listAliases(const QString &name);
- virtual QMimeType findByMagic(const QByteArray &data, int *accuracyPtr);
- virtual QList<QMimeType> allMimeTypes();
+ virtual bool isValid() Q_DECL_OVERRIDE;
+ virtual QMimeType mimeTypeForName(const QString &name) Q_DECL_OVERRIDE;
+ virtual QStringList findByFileName(const QString &fileName, QString *foundSuffix) Q_DECL_OVERRIDE;
+ virtual QStringList parents(const QString &mime) Q_DECL_OVERRIDE;
+ virtual QString resolveAlias(const QString &name) Q_DECL_OVERRIDE;
+ virtual QStringList listAliases(const QString &name) Q_DECL_OVERRIDE;
+ virtual QMimeType findByMagic(const QByteArray &data, int *accuracyPtr) Q_DECL_OVERRIDE;
+ virtual QList<QMimeType> allMimeTypes() Q_DECL_OVERRIDE;
bool load(const QString &fileName, QString *errorMessage);
diff --git a/src/corelib/plugin/qlibrary.cpp b/src/corelib/plugin/qlibrary.cpp
index 832ee250c7..c9ce5c342e 100644
--- a/src/corelib/plugin/qlibrary.cpp
+++ b/src/corelib/plugin/qlibrary.cpp
@@ -168,6 +168,11 @@ QT_BEGIN_NAMESPACE
Prevents the library from being unloaded from the address space if close()
is called. The library's static variables are not reinitialized if open()
is called at a later time.
+ \value DeepBindHint
+ Instructs the linker to prefer definitions in the loaded library
+ over exported definitions in the loading application when resolving
+ external symbols in the loaded library. This option is only supported
+ on Linux.
\sa loadHints
*/
@@ -1121,10 +1126,7 @@ QLibrary::LoadHints QLibrary::loadHints() const
/* Internal, for debugging */
bool qt_debug_component()
{
- static int debug_env = -1;
- if (debug_env == -1)
- debug_env = QT_PREPEND_NAMESPACE(qgetenv)("QT_DEBUG_PLUGINS").toInt();
-
+ static int debug_env = QT_PREPEND_NAMESPACE(qEnvironmentVariableIntValue)("QT_DEBUG_PLUGINS");
return debug_env != 0;
}
diff --git a/src/corelib/plugin/qlibrary.h b/src/corelib/plugin/qlibrary.h
index 77fe432761..327af8aada 100644
--- a/src/corelib/plugin/qlibrary.h
+++ b/src/corelib/plugin/qlibrary.h
@@ -53,7 +53,8 @@ public:
ResolveAllSymbolsHint = 0x01,
ExportExternalSymbolsHint = 0x02,
LoadArchiveMemberHint = 0x04,
- PreventUnloadHint = 0x08
+ PreventUnloadHint = 0x08,
+ DeepBindHint = 0x10
};
Q_DECLARE_FLAGS(LoadHints, LoadHint)
diff --git a/src/corelib/plugin/qlibrary_unix.cpp b/src/corelib/plugin/qlibrary_unix.cpp
index 4f96f3bccf..b178c173c5 100644
--- a/src/corelib/plugin/qlibrary_unix.cpp
+++ b/src/corelib/plugin/qlibrary_unix.cpp
@@ -171,6 +171,10 @@ bool QLibraryPrivate::load_sys()
dlFlags |= RTLD_LOCAL;
}
#endif
+#if defined(RTLD_DEEPBIND)
+ if (loadHints & QLibrary::DeepBindHint)
+ dlFlags |= RTLD_DEEPBIND;
+#endif
// Provide access to RTLD_NODELETE flag on Unix
// From GNU documentation on RTLD_NODELETE:
diff --git a/src/corelib/plugin/quuid.cpp b/src/corelib/plugin/quuid.cpp
index 4a5f4e791d..6df3f3b0d1 100644
--- a/src/corelib/plugin/quuid.cpp
+++ b/src/corelib/plugin/quuid.cpp
@@ -36,14 +36,13 @@
#include "qdatastream.h"
#include "qendian.h"
#include "qdebug.h"
+#include "private/qtools_p.h"
#ifndef QT_BOOTSTRAPPED
#include "qcryptographichash.h"
#endif
QT_BEGIN_NAMESPACE
-static const char digits[] = "0123456789abcdef";
-
template <class Char, class Integral>
void _q_toHex(Char *&dst, Integral value)
{
@@ -52,10 +51,8 @@ void _q_toHex(Char *&dst, Integral value)
const char* p = reinterpret_cast<const char*>(&value);
for (uint i = 0; i < sizeof(Integral); ++i, dst += 2) {
- uint j = (p[i] >> 4) & 0xf;
- dst[0] = Char(digits[j]);
- j = p[i] & 0xf;
- dst[1] = Char(digits[j]);
+ dst[0] = Char(QtMiscUtils::toHexLower((p[i] >> 4) & 0xf));
+ dst[1] = Char(QtMiscUtils::toHexLower(p[i] & 0xf));
}
}
@@ -65,15 +62,9 @@ bool _q_fromHex(const Char *&src, Integral &value)
value = 0;
for (uint i = 0; i < sizeof(Integral) * 2; ++i) {
- int ch = *src++;
- int tmp;
- if (ch >= '0' && ch <= '9')
- tmp = ch - '0';
- else if (ch >= 'a' && ch <= 'f')
- tmp = ch - 'a' + 10;
- else if (ch >= 'A' && ch <= 'F')
- tmp = ch - 'A' + 10;
- else
+ uint ch = *src++;
+ int tmp = QtMiscUtils::fromHex(ch);
+ if (tmp == -1)
return false;
value = value * 16 + tmp;
diff --git a/src/corelib/plugin/quuid.h b/src/corelib/plugin/quuid.h
index add245e4e3..ec5eb6b0e6 100644
--- a/src/corelib/plugin/quuid.h
+++ b/src/corelib/plugin/quuid.h
@@ -114,21 +114,20 @@ public:
static QUuid fromRfc4122(const QByteArray &);
bool isNull() const;
- bool operator==(const QUuid &orig) const
+ Q_DECL_RELAXED_CONSTEXPR bool operator==(const QUuid &orig) const
{
- uint i;
if (data1 != orig.data1 || data2 != orig.data2 ||
data3 != orig.data3)
return false;
- for(i = 0; i < 8; i++)
+ for (uint i = 0; i < 8; i++)
if (data4[i] != orig.data4[i])
return false;
return true;
}
- bool operator!=(const QUuid &orig) const
+ Q_DECL_RELAXED_CONSTEXPR bool operator!=(const QUuid &orig) const
{
return !(*this == orig);
}
@@ -155,24 +154,24 @@ public:
}
#endif
- QUuid &operator=(const GUID &guid)
+ Q_DECL_RELAXED_CONSTEXPR QUuid &operator=(const GUID &guid)
{
*this = QUuid(guid);
return *this;
}
- operator GUID() const
+ Q_DECL_RELAXED_CONSTEXPR operator GUID() const
{
GUID guid = { data1, data2, data3, { data4[0], data4[1], data4[2], data4[3], data4[4], data4[5], data4[6], data4[7] } };
return guid;
}
- bool operator==(const GUID &guid) const
+ Q_DECL_RELAXED_CONSTEXPR bool operator==(const GUID &guid) const
{
return *this == QUuid(guid);
}
- bool operator!=(const GUID &guid) const
+ Q_DECL_RELAXED_CONSTEXPR bool operator!=(const GUID &guid) const
{
return !(*this == guid);
}
diff --git a/src/corelib/statemachine/qabstractstate.h b/src/corelib/statemachine/qabstractstate.h
index 5f2216a9da..a6a4753d71 100644
--- a/src/corelib/statemachine/qabstractstate.h
+++ b/src/corelib/statemachine/qabstractstate.h
@@ -76,7 +76,7 @@ protected:
virtual void onEntry(QEvent *event) = 0;
virtual void onExit(QEvent *event) = 0;
- bool event(QEvent *e);
+ bool event(QEvent *e) Q_DECL_OVERRIDE;
protected:
QAbstractState(QAbstractStatePrivate &dd, QState *parent);
diff --git a/src/corelib/statemachine/qabstracttransition.h b/src/corelib/statemachine/qabstracttransition.h
index 2676aba633..e9c757c3a2 100644
--- a/src/corelib/statemachine/qabstracttransition.h
+++ b/src/corelib/statemachine/qabstracttransition.h
@@ -99,7 +99,7 @@ protected:
virtual void onTransition(QEvent *event) = 0;
- bool event(QEvent *e);
+ bool event(QEvent *e) Q_DECL_OVERRIDE;
protected:
QAbstractTransition(QAbstractTransitionPrivate &dd, QState *parent);
diff --git a/src/corelib/statemachine/qeventtransition.h b/src/corelib/statemachine/qeventtransition.h
index bf282242d6..861aacd51a 100644
--- a/src/corelib/statemachine/qeventtransition.h
+++ b/src/corelib/statemachine/qeventtransition.h
@@ -60,10 +60,10 @@ public:
void setEventType(QEvent::Type type);
protected:
- bool eventTest(QEvent *event);
- void onTransition(QEvent *event);
+ bool eventTest(QEvent *event) Q_DECL_OVERRIDE;
+ void onTransition(QEvent *event) Q_DECL_OVERRIDE;
- bool event(QEvent *e);
+ bool event(QEvent *e) Q_DECL_OVERRIDE;
protected:
QEventTransition(QEventTransitionPrivate &dd, QState *parent);
diff --git a/src/corelib/statemachine/qfinalstate.h b/src/corelib/statemachine/qfinalstate.h
index 804851c321..ca8875abea 100644
--- a/src/corelib/statemachine/qfinalstate.h
+++ b/src/corelib/statemachine/qfinalstate.h
@@ -50,10 +50,10 @@ public:
~QFinalState();
protected:
- void onEntry(QEvent *event);
- void onExit(QEvent *event);
+ void onEntry(QEvent *event) Q_DECL_OVERRIDE;
+ void onExit(QEvent *event) Q_DECL_OVERRIDE;
- bool event(QEvent *e);
+ bool event(QEvent *e) Q_DECL_OVERRIDE;
private:
Q_DISABLE_COPY(QFinalState)
diff --git a/src/corelib/statemachine/qhistorystate.h b/src/corelib/statemachine/qhistorystate.h
index d05e4ba5eb..ee80a0bc15 100644
--- a/src/corelib/statemachine/qhistorystate.h
+++ b/src/corelib/statemachine/qhistorystate.h
@@ -77,10 +77,10 @@ Q_SIGNALS:
);
protected:
- void onEntry(QEvent *event);
- void onExit(QEvent *event);
+ void onEntry(QEvent *event) Q_DECL_OVERRIDE;
+ void onExit(QEvent *event) Q_DECL_OVERRIDE;
- bool event(QEvent *e);
+ bool event(QEvent *e) Q_DECL_OVERRIDE;
private:
Q_DISABLE_COPY(QHistoryState)
diff --git a/src/corelib/statemachine/qsignaltransition.h b/src/corelib/statemachine/qsignaltransition.h
index 545374eb5c..8300c77b9e 100644
--- a/src/corelib/statemachine/qsignaltransition.h
+++ b/src/corelib/statemachine/qsignaltransition.h
@@ -61,10 +61,10 @@ public:
void setSignal(const QByteArray &signal);
protected:
- bool eventTest(QEvent *event);
- void onTransition(QEvent *event);
+ bool eventTest(QEvent *event) Q_DECL_OVERRIDE;
+ void onTransition(QEvent *event) Q_DECL_OVERRIDE;
- bool event(QEvent *e);
+ bool event(QEvent *e) Q_DECL_OVERRIDE;
Q_SIGNALS:
void senderObjectChanged(
diff --git a/src/corelib/statemachine/qsignaltransition_p.h b/src/corelib/statemachine/qsignaltransition_p.h
index 1d09babe88..f394bfc74f 100644
--- a/src/corelib/statemachine/qsignaltransition_p.h
+++ b/src/corelib/statemachine/qsignaltransition_p.h
@@ -61,7 +61,7 @@ public:
void unregister();
void maybeRegister();
- virtual void callOnTransition(QEvent *e);
+ virtual void callOnTransition(QEvent *e) Q_DECL_OVERRIDE;
const QObject *sender;
QByteArray signal;
diff --git a/src/corelib/statemachine/qstate.cpp b/src/corelib/statemachine/qstate.cpp
index 29698d204f..15f6e29fcb 100644
--- a/src/corelib/statemachine/qstate.cpp
+++ b/src/corelib/statemachine/qstate.cpp
@@ -339,6 +339,17 @@ void QState::addTransition(QAbstractTransition *transition)
}
/*!
+ \fn QState::addTransition(const QObject *sender, PointerToMemberFunction signal,
+ QAbstractState *target);
+ \since 5.5
+ \overload
+
+ Adds a transition associated with the given \a signal of the given \a sender
+ object, and returns the new QSignalTransition object. The transition has
+ this state as the source, and the given \a target as the target state.
+*/
+
+/*!
Adds a transition associated with the given \a signal of the given \a sender
object, and returns the new QSignalTransition object. The transition has
this state as the source, and the given \a target as the target state.
@@ -383,8 +394,8 @@ public:
: QAbstractTransition()
{ setTargetState(target); }
protected:
- void onTransition(QEvent *) {}
- bool eventTest(QEvent *) { return true; }
+ void onTransition(QEvent *) Q_DECL_OVERRIDE {}
+ bool eventTest(QEvent *) Q_DECL_OVERRIDE { return true; }
};
} // namespace
diff --git a/src/corelib/statemachine/qstate.h b/src/corelib/statemachine/qstate.h
index dbc1ca97f9..8a308cf38e 100644
--- a/src/corelib/statemachine/qstate.h
+++ b/src/corelib/statemachine/qstate.h
@@ -35,8 +35,8 @@
#define QSTATE_H
#include <QtCore/qabstractstate.h>
-
#include <QtCore/qlist.h>
+#include <QtCore/qmetaobject.h>
QT_BEGIN_NAMESPACE
@@ -74,6 +74,18 @@ public:
void addTransition(QAbstractTransition *transition);
QSignalTransition *addTransition(const QObject *sender, const char *signal, QAbstractState *target);
+#ifdef Q_QDOC
+ QSignalTransition *addTransition(const QObject *sender, PointerToMemberFunction signal,
+ QAbstractState *target);
+#else
+ template <typename Func>
+ QSignalTransition *addTransition(const typename QtPrivate::FunctionPointer<Func>::Object *obj,
+ Func signal, QAbstractState *target)
+ {
+ const QMetaMethod signalMetaMethod = QMetaMethod::fromSignal(signal);
+ return addTransition(obj, signalMetaMethod.methodSignature().constData(), target);
+ }
+#endif // Q_QDOC
QAbstractTransition *addTransition(QAbstractState *target);
void removeTransition(QAbstractTransition *transition);
QList<QAbstractTransition*> transitions() const;
@@ -117,10 +129,10 @@ Q_SIGNALS:
);
protected:
- void onEntry(QEvent *event);
- void onExit(QEvent *event);
+ void onEntry(QEvent *event) Q_DECL_OVERRIDE;
+ void onExit(QEvent *event) Q_DECL_OVERRIDE;
- bool event(QEvent *e);
+ bool event(QEvent *e) Q_DECL_OVERRIDE;
protected:
QState(QStatePrivate &dd, QState *parent);
diff --git a/src/corelib/statemachine/qstatemachine.cpp b/src/corelib/statemachine/qstatemachine.cpp
index 1350c8d99e..69e942d4fd 100644
--- a/src/corelib/statemachine/qstatemachine.cpp
+++ b/src/corelib/statemachine/qstatemachine.cpp
@@ -1303,8 +1303,8 @@ QAbstractTransition *QStateMachinePrivate::createInitialTransition() const
: QAbstractTransition()
{ setTargetStates(targets); }
protected:
- virtual bool eventTest(QEvent *) { return true; }
- virtual void onTransition(QEvent *) {}
+ virtual bool eventTest(QEvent *) Q_DECL_OVERRIDE { return true; }
+ virtual void onTransition(QEvent *) Q_DECL_OVERRIDE {}
};
QState *root = rootState();
@@ -1629,8 +1629,8 @@ public:
: QAbstractTransition()
{ setTargetState(target); }
protected:
- void onTransition(QEvent *) { deleteLater(); }
- bool eventTest(QEvent *) { return true; }
+ void onTransition(QEvent *) Q_DECL_OVERRIDE { deleteLater(); }
+ bool eventTest(QEvent *) Q_DECL_OVERRIDE { return true; }
};
} // namespace
diff --git a/src/corelib/statemachine/qstatemachine.h b/src/corelib/statemachine/qstatemachine.h
index 5f203d5ed4..3a4944a8db 100644
--- a/src/corelib/statemachine/qstatemachine.h
+++ b/src/corelib/statemachine/qstatemachine.h
@@ -136,7 +136,7 @@ public:
QSet<QAbstractState*> configuration() const;
#ifndef QT_NO_STATEMACHINE_EVENTFILTER
- bool eventFilter(QObject *watched, QEvent *event);
+ bool eventFilter(QObject *watched, QEvent *event) Q_DECL_OVERRIDE;
#endif
public Q_SLOTS:
@@ -159,8 +159,8 @@ Q_SIGNALS:
protected:
- void onEntry(QEvent *event);
- void onExit(QEvent *event);
+ void onEntry(QEvent *event) Q_DECL_OVERRIDE;
+ void onExit(QEvent *event) Q_DECL_OVERRIDE;
virtual void beginSelectTransitions(QEvent *event);
virtual void endSelectTransitions(QEvent *event);
@@ -168,7 +168,7 @@ protected:
virtual void beginMicrostep(QEvent *event);
virtual void endMicrostep(QEvent *event);
- bool event(QEvent *e);
+ bool event(QEvent *e) Q_DECL_OVERRIDE;
protected:
QStateMachine(QStateMachinePrivate &dd, QObject *parent);
diff --git a/src/corelib/thread/qatomic.h b/src/corelib/thread/qatomic.h
index 7526cfe0e6..a665746db4 100644
--- a/src/corelib/thread/qatomic.h
+++ b/src/corelib/thread/qatomic.h
@@ -40,11 +40,8 @@
QT_BEGIN_NAMESPACE
-
-#if defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__ >= 406) && !defined(Q_CC_INTEL)
-# pragma GCC diagnostic push
-# pragma GCC diagnostic ignored "-Wextra"
-#endif
+QT_WARNING_PUSH
+QT_WARNING_DISABLE_GCC("-Wextra")
// High-level atomic integer operations
template <typename T>
@@ -214,9 +211,7 @@ public:
#endif
};
-#if defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__ >= 406) && !defined(Q_CC_INTEL)
-# pragma GCC diagnostic pop
-#endif
+QT_WARNING_POP
#ifdef QT_BASIC_ATOMIC_HAS_CONSTRUCTORS
# undef QT_BASIC_ATOMIC_HAS_CONSTRUCTORS
diff --git a/src/corelib/thread/qexception.h b/src/corelib/thread/qexception.h
index 6c48b94a88..a1c3bbeb27 100644
--- a/src/corelib/thread/qexception.h
+++ b/src/corelib/thread/qexception.h
@@ -60,8 +60,8 @@ public:
class Q_CORE_EXPORT QUnhandledException : public QException
{
public:
- void raise() const;
- QUnhandledException *clone() const;
+ void raise() const Q_DECL_OVERRIDE;
+ QUnhandledException *clone() const Q_DECL_OVERRIDE;
};
namespace QtPrivate {
diff --git a/src/corelib/thread/qfutureinterface.cpp b/src/corelib/thread/qfutureinterface.cpp
index 1f417d3d74..a23c32a73b 100644
--- a/src/corelib/thread/qfutureinterface.cpp
+++ b/src/corelib/thread/qfutureinterface.cpp
@@ -292,7 +292,7 @@ void QFutureInterfaceBase::waitForResult(int resultIndex)
// To avoid deadlocks and reduce the number of threads used, try to
// run the runnable in the current thread.
- d->pool()->d_func()->stealRunnable(d->runnable);
+ d->pool()->d_func()->stealAndRunRunnable(d->runnable);
lock.relock();
@@ -313,7 +313,7 @@ void QFutureInterfaceBase::waitForFinished()
lock.unlock();
if (!alreadyFinished) {
- d->pool()->d_func()->stealRunnable(d->runnable);
+ d->pool()->d_func()->stealAndRunRunnable(d->runnable);
lock.relock();
diff --git a/src/corelib/thread/qfuturewatcher.h b/src/corelib/thread/qfuturewatcher.h
index 3ea4c4df4f..f84af0507a 100644
--- a/src/corelib/thread/qfuturewatcher.h
+++ b/src/corelib/thread/qfuturewatcher.h
@@ -70,7 +70,7 @@ public:
void setPendingResultsLimit(int limit);
- bool event(QEvent *event);
+ bool event(QEvent *event) Q_DECL_OVERRIDE;
Q_SIGNALS:
void started();
@@ -92,8 +92,8 @@ public Q_SLOTS:
void togglePaused();
protected:
- void connectNotify (const QMetaMethod &signal);
- void disconnectNotify (const QMetaMethod &signal);
+ void connectNotify (const QMetaMethod &signal) Q_DECL_OVERRIDE;
+ void disconnectNotify (const QMetaMethod &signal) Q_DECL_OVERRIDE;
// called from setFuture() implemented in template sub-classes
void connectOutputInterface();
@@ -160,8 +160,8 @@ public Q_SLOTS:
private:
QFuture<T> m_future;
- const QFutureInterfaceBase &futureInterface() const { return m_future.d; }
- QFutureInterfaceBase &futureInterface() { return m_future.d; }
+ const QFutureInterfaceBase &futureInterface() const Q_DECL_OVERRIDE { return m_future.d; }
+ QFutureInterfaceBase &futureInterface() Q_DECL_OVERRIDE { return m_future.d; }
};
template <typename T>
@@ -191,8 +191,8 @@ public:
private:
QFuture<void> m_future;
- const QFutureInterfaceBase &futureInterface() const { return m_future.d; }
- QFutureInterfaceBase &futureInterface() { return m_future.d; }
+ const QFutureInterfaceBase &futureInterface() const Q_DECL_OVERRIDE { return m_future.d; }
+ QFutureInterfaceBase &futureInterface() Q_DECL_OVERRIDE { return m_future.d; }
};
Q_INLINE_TEMPLATE void QFutureWatcher<void>::setFuture(const QFuture<void> &_future)
diff --git a/src/corelib/thread/qfuturewatcher_p.h b/src/corelib/thread/qfuturewatcher_p.h
index 226642119a..84c608d1e0 100644
--- a/src/corelib/thread/qfuturewatcher_p.h
+++ b/src/corelib/thread/qfuturewatcher_p.h
@@ -63,8 +63,8 @@ class QFutureWatcherBasePrivate : public QObjectPrivate,
public:
QFutureWatcherBasePrivate();
- void postCallOutEvent(const QFutureCallOutEvent &callOutEvent);
- void callOutInterfaceDisconnected();
+ void postCallOutEvent(const QFutureCallOutEvent &callOutEvent) Q_DECL_OVERRIDE;
+ void callOutInterfaceDisconnected() Q_DECL_OVERRIDE;
void sendCallOutEvent(QFutureCallOutEvent *event);
diff --git a/src/corelib/thread/qthread.h b/src/corelib/thread/qthread.h
index 1d32580670..f9df407f72 100644
--- a/src/corelib/thread/qthread.h
+++ b/src/corelib/thread/qthread.h
@@ -89,7 +89,7 @@ public:
QAbstractEventDispatcher *eventDispatcher() const;
void setEventDispatcher(QAbstractEventDispatcher *eventDispatcher);
- bool event(QEvent *event);
+ bool event(QEvent *event) Q_DECL_OVERRIDE;
public Q_SLOTS:
void start(Priority = InheritPriority);
diff --git a/src/corelib/thread/qthread_p.h b/src/corelib/thread/qthread_p.h
index 83693921be..9c67ce4471 100644
--- a/src/corelib/thread/qthread_p.h
+++ b/src/corelib/thread/qthread_p.h
@@ -305,7 +305,7 @@ public:
void init();
private:
- void run();
+ void run() Q_DECL_OVERRIDE;
};
QT_END_NAMESPACE
diff --git a/src/corelib/thread/qthreadpool.cpp b/src/corelib/thread/qthreadpool.cpp
index c2a8bb0595..aaffdc2a4c 100644
--- a/src/corelib/thread/qthreadpool.cpp
+++ b/src/corelib/thread/qthreadpool.cpp
@@ -50,7 +50,7 @@ class QThreadPoolThread : public QThread
{
public:
QThreadPoolThread(QThreadPoolPrivate *manager);
- void run();
+ void run() Q_DECL_OVERRIDE;
void registerThreadInactive();
QWaitCondition runnableReady;
@@ -311,14 +311,12 @@ void QThreadPoolPrivate::clear()
/*!
\internal
Searches for \a runnable in the queue, removes it from the queue and
- runs it if found. This function does not return until the runnable
- has completed.
+ returns \c true if it was found in the queue
*/
-void QThreadPoolPrivate::stealRunnable(QRunnable *runnable)
+bool QThreadPoolPrivate::stealRunnable(QRunnable *runnable)
{
if (runnable == 0)
- return;
- bool found = false;
+ return false;
{
QMutexLocker locker(&mutex);
QList<QPair<QRunnable *, int> >::iterator it = queue.begin();
@@ -326,17 +324,26 @@ void QThreadPoolPrivate::stealRunnable(QRunnable *runnable)
while (it != end) {
if (it->first == runnable) {
- found = true;
queue.erase(it);
- break;
+ return true;
}
++it;
}
}
- if (!found)
- return;
+ return false;
+}
+ /*!
+ \internal
+ Searches for \a runnable in the queue, removes it from the queue and
+ runs it if found. This function does not return until the runnable
+ has completed.
+ */
+void QThreadPoolPrivate::stealAndRunRunnable(QRunnable *runnable)
+{
+ if (!stealRunnable(runnable))
+ return;
const bool autoDelete = runnable->autoDelete();
bool del = autoDelete && !--runnable->ref;
@@ -628,6 +635,25 @@ void QThreadPool::clear()
d->clear();
}
+/*!
+ \since 5.5
+
+ Removes the specified \a runnable from the queue if it is not yet started.
+ The runnables for which \l{QRunnable::autoDelete()}{runnable->autoDelete()}
+ returns \c true are deleted.
+
+ \sa start()
+*/
+void QThreadPool::cancel(QRunnable *runnable)
+{
+ Q_D(QThreadPool);
+ if (!d->stealRunnable(runnable))
+ return;
+ if (runnable->autoDelete() && !--runnable->ref) {
+ delete runnable;
+ }
+}
+
QT_END_NAMESPACE
#endif
diff --git a/src/corelib/thread/qthreadpool.h b/src/corelib/thread/qthreadpool.h
index e4d23cc200..c8cc5dfd89 100644
--- a/src/corelib/thread/qthreadpool.h
+++ b/src/corelib/thread/qthreadpool.h
@@ -77,6 +77,7 @@ public:
bool waitForDone(int msecs = -1);
void clear();
+ void cancel(QRunnable *runnable);
};
QT_END_NAMESPACE
diff --git a/src/corelib/thread/qthreadpool_p.h b/src/corelib/thread/qthreadpool_p.h
index d4308266a2..de2727adc1 100644
--- a/src/corelib/thread/qthreadpool_p.h
+++ b/src/corelib/thread/qthreadpool_p.h
@@ -76,7 +76,8 @@ public:
void reset();
bool waitForDone(int msecs);
void clear();
- void stealRunnable(QRunnable *);
+ bool stealRunnable(QRunnable *runnable);
+ void stealAndRunRunnable(QRunnable *runnable);
mutable QMutex mutex;
QSet<QThreadPoolThread *> allThreads;
diff --git a/src/corelib/tools/qarraydata.cpp b/src/corelib/tools/qarraydata.cpp
index 98c484c1dd..dc419c3758 100644
--- a/src/corelib/tools/qarraydata.cpp
+++ b/src/corelib/tools/qarraydata.cpp
@@ -85,8 +85,20 @@ QArrayData *QArrayData::allocate(size_t objectSize, size_t alignment,
headerSize += (alignment - Q_ALIGNOF(QArrayData));
// Allocate additional space if array is growing
- if (options & Grow)
- capacity = qAllocMore(int(objectSize * capacity), int(headerSize)) / int(objectSize);
+ if (options & Grow) {
+
+ // Guard against integer overflow when multiplying.
+ if (capacity > std::numeric_limits<size_t>::max() / objectSize)
+ return 0;
+
+ size_t alloc = objectSize * capacity;
+
+ // Make sure qAllocMore won't overflow.
+ if (headerSize > size_t(MaxAllocSize) || alloc > size_t(MaxAllocSize) - headerSize)
+ return 0;
+
+ capacity = qAllocMore(int(alloc), int(headerSize)) / int(objectSize);
+ }
size_t allocSize = headerSize + objectSize * capacity;
@@ -118,7 +130,8 @@ void QArrayData::deallocate(QArrayData *data, size_t objectSize,
return;
#endif
- Q_ASSERT_X(!data->ref.isStatic(), "QArrayData::deallocate", "Static data can not be deleted");
+ Q_ASSERT_X(data == 0 || !data->ref.isStatic(), "QArrayData::deallocate",
+ "Static data can not be deleted");
::free(data);
}
diff --git a/src/corelib/tools/qarraydatapointer.h b/src/corelib/tools/qarraydatapointer.h
index f2cd3ec983..aef38bc20b 100644
--- a/src/corelib/tools/qarraydatapointer.h
+++ b/src/corelib/tools/qarraydatapointer.h
@@ -169,8 +169,10 @@ public:
private:
Data *clone(QArrayData::AllocationOptions options) const Q_REQUIRED_RESULT
{
- QArrayDataPointer copy(Data::allocate(d->detachCapacity(d->size),
- options));
+ Data *x = Data::allocate(d->detachCapacity(d->size), options);
+ Q_CHECK_PTR(x);
+ QArrayDataPointer copy(x);
+
if (d->size)
copy->copyAppend(d->begin(), d->end());
diff --git a/src/corelib/tools/qbytearray.cpp b/src/corelib/tools/qbytearray.cpp
index d8b2efbef3..a267dc6f7b 100644
--- a/src/corelib/tools/qbytearray.cpp
+++ b/src/corelib/tools/qbytearray.cpp
@@ -1,6 +1,7 @@
/****************************************************************************
**
** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Copyright (C) 2014 Intel Corporation.
** Contact: http://www.qt-project.org/legal
**
** This file is part of the QtCore module of the Qt Toolkit.
@@ -38,6 +39,7 @@
#include "qlist.h"
#include "qlocale.h"
#include "qlocale_p.h"
+#include "qstringalgorithms_p.h"
#include "qscopedpointer.h"
#include <qdatastream.h>
#include <qmath.h>
@@ -54,6 +56,64 @@
QT_BEGIN_NAMESPACE
+// Latin 1 case system, used by QByteArray::to{Upper,Lower}() and qstr(n)icmp():
+/*
+#!/usr/bin/perl -l
+use feature "unicode_strings";
+for (0..255) {
+ $up = uc(chr($_));
+ $up = chr($_) if ord($up) > 0x100 || length $up > 1;
+ printf "0x%02x,", ord($up);
+ print "" if ($_ & 0xf) == 0xf;
+}
+*/
+static const uchar latin1_uppercased[256] = {
+ 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,
+ 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,
+ 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,
+ 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
+ 0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,
+ 0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,
+ 0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,
+ 0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x7b,0x7c,0x7d,0x7e,0x7f,
+ 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,
+ 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,
+ 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,
+ 0xb0,0xb1,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7,0xb8,0xb9,0xba,0xbb,0xbc,0xbd,0xbe,0xbf,
+ 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,
+ 0xd0,0xd1,0xd2,0xd3,0xd4,0xd5,0xd6,0xd7,0xd8,0xd9,0xda,0xdb,0xdc,0xdd,0xde,0xdf,
+ 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,
+ 0xd0,0xd1,0xd2,0xd3,0xd4,0xd5,0xd6,0xf7,0xd8,0xd9,0xda,0xdb,0xdc,0xdd,0xde,0xff
+};
+
+/*
+#!/usr/bin/perl -l
+use feature "unicode_strings";
+for (0..255) {
+ $up = lc(chr($_));
+ $up = chr($_) if ord($up) > 0x100 || length $up > 1;
+ printf "0x%02x,", ord($up);
+ print "" if ($_ & 0xf) == 0xf;
+}
+*/
+static const uchar latin1_lowercased[256] = {
+ 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,
+ 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,
+ 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,
+ 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
+ 0x40,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,
+ 0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x5b,0x5c,0x5d,0x5e,0x5f,
+ 0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,
+ 0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,
+ 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,
+ 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,
+ 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,
+ 0xb0,0xb1,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7,0xb8,0xb9,0xba,0xbb,0xbc,0xbd,0xbe,0xbf,
+ 0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,0xea,0xeb,0xec,0xed,0xee,0xef,
+ 0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xd7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfe,0xdf,
+ 0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,0xea,0xeb,0xec,0xed,0xee,0xef,
+ 0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfe,0xff
+};
int qFindByteArray(
const char *haystack0, int haystackLen, int from,
@@ -248,7 +308,7 @@ int qstricmp(const char *str1, const char *str2)
uchar c;
if (!s1 || !s2)
return s1 ? 1 : (s2 ? -1 : 0);
- for (; !(res = (c = QChar::toLower((ushort)*s1)) - QChar::toLower((ushort)*s2)); s1++, s2++)
+ for (; !(res = (c = latin1_lowercased[*s1]) - latin1_lowercased[*s2]); s1++, s2++)
if (!c) // strings are equal
break;
return res;
@@ -283,7 +343,7 @@ int qstrnicmp(const char *str1, const char *str2, uint len)
if (!s1 || !s2)
return s1 ? 1 : (s2 ? -1 : 0);
for (; len--; s1++, s2++) {
- if ((res = (c = QChar::toLower((ushort)*s1)) - QChar::toLower((ushort)*s2)))
+ if ((res = (c = latin1_lowercased[*s1]) - latin1_lowercased[*s2]))
return res;
if (!c) // strings are equal
break;
@@ -1494,8 +1554,11 @@ void QByteArray::reallocData(uint alloc, Data::AllocationOptions options)
Data::deallocate(d);
d = x;
} else {
- if (options & Data::Grow)
+ if (options & Data::Grow) {
+ if (alloc > uint(MaxAllocSize) - uint(sizeof(Data)))
+ qBadAlloc();
alloc = qAllocMore(alloc, sizeof(Data));
+ }
Data *x = static_cast<Data *>(::realloc(d, sizeof(Data) + alloc));
Q_CHECK_PTR(x);
x->alloc = alloc;
@@ -2686,6 +2749,8 @@ QByteArray QByteArray::mid(int pos, int len) const
}
/*!
+ \fn QByteArray QByteArray::toLower() const
+
Returns a lowercase copy of the byte array. The bytearray is
interpreted as a Latin-1 encoded string.
@@ -2694,21 +2759,56 @@ QByteArray QByteArray::mid(int pos, int len) const
\sa toUpper(), {8-bit Character Comparisons}
*/
-QByteArray QByteArray::toLower() const
+
+// noinline so that the compiler won't inline the function in each of
+// toLower and toUpper when the only difference is the table being used
+// (even with constant propagation, there's no gain in performance).
+template <typename T>
+#ifdef Q_CC_MSVC
+__declspec(noinline)
+#elif defined(Q_CC_GNU)
+__attribute__((noinline))
+#endif
+static QByteArray toCase_template(T &input, const uchar * table)
{
- QByteArray s(*this);
- uchar *p = reinterpret_cast<uchar *>(s.data());
- uchar *e = reinterpret_cast<uchar *>(s.end());
- if (p) {
- while (p != e) {
- *p = QChar::toLower((ushort)*p);
- p++;
- }
+ // find the first bad character in input
+ const char *orig_begin = input.constBegin();
+ const char *firstBad = orig_begin;
+ const char *e = input.constEnd();
+ for ( ; firstBad != e ; ++firstBad) {
+ uchar ch = uchar(*firstBad);
+ uchar converted = table[ch];
+ if (ch != converted)
+ break;
+ }
+
+ if (firstBad == e)
+ return qMove(input);
+
+ // transform the rest
+ QByteArray s = qMove(input); // will copy if T is const QByteArray
+ char *b = s.begin(); // will detach if necessary
+ char *p = b + (firstBad - orig_begin);
+ e = b + s.size();
+ for ( ; p != e; ++p) {
+ *p = char(uchar(table[uchar(*p)]));
}
return s;
}
+QByteArray QByteArray::toLower_helper(const QByteArray &a)
+{
+ return toCase_template(a, latin1_lowercased);
+}
+
+QByteArray QByteArray::toLower_helper(QByteArray &a)
+{
+ return toCase_template(a, latin1_lowercased);
+}
+
/*!
+ \fn QByteArray QByteArray::toUpper() const
+
Returns an uppercase copy of the byte array. The bytearray is
interpreted as a Latin-1 encoded string.
@@ -2718,18 +2818,14 @@ QByteArray QByteArray::toLower() const
\sa toLower(), {8-bit Character Comparisons}
*/
-QByteArray QByteArray::toUpper() const
+QByteArray QByteArray::toUpper_helper(const QByteArray &a)
{
- QByteArray s(*this);
- uchar *p = reinterpret_cast<uchar *>(s.data());
- uchar *e = reinterpret_cast<uchar *>(s.end());
- if (p) {
- while (p != e) {
- *p = QChar::toUpper((ushort)*p);
- p++;
- }
- }
- return s;
+ return toCase_template(a, latin1_uppercased);
+}
+
+QByteArray QByteArray::toUpper_helper(QByteArray &a)
+{
+ return toCase_template(a, latin1_uppercased);
}
/*! \fn void QByteArray::clear()
@@ -3109,6 +3205,8 @@ QDataStream &operator>>(QDataStream &in, QByteArray &ba)
*/
/*!
+ \fn QByteArray QByteArray::simplified() const
+
Returns a byte array that has whitespace removed from the start
and the end, and which has each sequence of internal whitespace
replaced with a single space.
@@ -3123,32 +3221,19 @@ QDataStream &operator>>(QDataStream &in, QByteArray &ba)
\sa trimmed()
*/
-QByteArray QByteArray::simplified() const
+QByteArray QByteArray::simplified_helper(const QByteArray &a)
{
- if (d->size == 0)
- return *this;
- QByteArray result(d->size, Qt::Uninitialized);
- const char *from = d->data();
- const char *fromend = from + d->size;
- int outc=0;
- char *to = result.d->data();
- for (;;) {
- while (from!=fromend && ascii_isspace(uchar(*from)))
- from++;
- while (from!=fromend && !ascii_isspace(uchar(*from)))
- to[outc++] = *from++;
- if (from!=fromend)
- to[outc++] = ' ';
- else
- break;
- }
- if (outc > 0 && to[outc-1] == ' ')
- outc--;
- result.resize(outc);
- return result;
+ return QStringAlgorithms<const QByteArray>::simplified_helper(a);
+}
+
+QByteArray QByteArray::simplified_helper(QByteArray &a)
+{
+ return QStringAlgorithms<QByteArray>::simplified_helper(a);
}
/*!
+ \fn QByteArray QByteArray::trimmed() const
+
Returns a byte array that has whitespace removed from the start
and the end.
@@ -3163,29 +3248,17 @@ QByteArray QByteArray::simplified() const
\sa simplified()
*/
-QByteArray QByteArray::trimmed() const
+QByteArray QByteArray::trimmed_helper(const QByteArray &a)
{
- if (d->size == 0)
- return *this;
- const char *s = d->data();
- if (!ascii_isspace(uchar(*s)) && !ascii_isspace(uchar(s[d->size-1])))
- return *this;
- int start = 0;
- int end = d->size - 1;
- while (start<=end && ascii_isspace(uchar(s[start]))) // skip white space from start
- start++;
- if (start <= end) { // only white space
- while (end && ascii_isspace(uchar(s[end]))) // skip white space from end
- end--;
- }
- int l = end - start + 1;
- if (l <= 0) {
- QByteArrayDataPtr empty = { Data::allocate(0) };
- return QByteArray(empty);
- }
- return QByteArray(s+start, l);
+ return QStringAlgorithms<const QByteArray>::trimmed_helper(a);
+}
+
+QByteArray QByteArray::trimmed_helper(QByteArray &a)
+{
+ return QStringAlgorithms<QByteArray>::trimmed_helper(a);
}
+
/*!
Returns a byte array of size \a width that contains this byte
array padded by the \a fill character.
@@ -4061,15 +4134,9 @@ QByteArray QByteArray::fromHex(const QByteArray &hexEncoded)
bool odd_digit = true;
for (int i = hexEncoded.size() - 1; i >= 0; --i) {
- int ch = hexEncoded.at(i);
- int tmp;
- if (ch >= '0' && ch <= '9')
- tmp = ch - '0';
- else if (ch >= 'a' && ch <= 'f')
- tmp = ch - 'a' + 10;
- else if (ch >= 'A' && ch <= 'F')
- tmp = ch - 'A' + 10;
- else
+ uchar ch = uchar(hexEncoded.at(i));
+ int tmp = QtMiscUtils::fromHex(ch);
+ if (tmp == -1)
continue;
if (odd_digit) {
--result;
@@ -4097,16 +4164,8 @@ QByteArray QByteArray::toHex() const
char *hexData = hex.data();
const uchar *data = (const uchar *)d->data();
for (int i = 0; i < d->size; ++i) {
- int j = (data[i] >> 4) & 0xf;
- if (j <= 9)
- hexData[i*2] = (j + '0');
- else
- hexData[i*2] = (j + 'a' - 10);
- j = data[i] & 0xf;
- if (j <= 9)
- hexData[i*2+1] = (j + '0');
- else
- hexData[i*2+1] = (j + 'a' - 10);
+ hexData[i*2] = QtMiscUtils::toHexLower(data[i] >> 4);
+ hexData[i*2+1] = QtMiscUtils::toHexLower(data[i] & 0xf);
}
return hex;
}
@@ -4301,12 +4360,6 @@ static inline bool q_strchr(const char str[], char chr)
return false;
}
-static inline char toHexHelper(char c)
-{
- static const char hexnumbers[] = "0123456789ABCDEF";
- return hexnumbers[c & 0xf];
-}
-
static void q_toPercentEncoding(QByteArray *ba, const char *dontEncode, const char *alsoEncode, char percent)
{
if (ba->isEmpty())
@@ -4339,8 +4392,8 @@ static void q_toPercentEncoding(QByteArray *ba, const char *dontEncode, const ch
output = ba->data();
}
output[length++] = percent;
- output[length++] = toHexHelper((c & 0xf0) >> 4);
- output[length++] = toHexHelper(c & 0xf);
+ output[length++] = QtMiscUtils::toHexUpper((c & 0xf0) >> 4);
+ output[length++] = QtMiscUtils::toHexUpper(c & 0xf);
}
}
if (output)
diff --git a/src/corelib/tools/qbytearray.h b/src/corelib/tools/qbytearray.h
index 3bcc7b1f2a..6286624961 100644
--- a/src/corelib/tools/qbytearray.h
+++ b/src/corelib/tools/qbytearray.h
@@ -259,11 +259,40 @@ public:
void truncate(int pos);
void chop(int n);
+#if defined(Q_COMPILER_REF_QUALIFIERS) && !defined(QT_COMPILING_QSTRING_COMPAT_CPP)
+# if defined(Q_CC_GNU)
+ // required due to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61941
+# pragma push_macro("Q_REQUIRED_RESULT")
+# undef Q_REQUIRED_RESULT
+# define Q_REQUIRED_RESULT
+# define Q_REQUIRED_RESULT_pushed
+# endif
+ QByteArray toLower() const & Q_REQUIRED_RESULT
+ { return toLower_helper(*this); }
+ QByteArray toLower() && Q_REQUIRED_RESULT
+ { return toLower_helper(*this); }
+ QByteArray toUpper() const & Q_REQUIRED_RESULT
+ { return toUpper_helper(*this); }
+ QByteArray toUpper() && Q_REQUIRED_RESULT
+ { return toUpper_helper(*this); }
+ QByteArray trimmed() const & Q_REQUIRED_RESULT
+ { return trimmed_helper(*this); }
+ QByteArray trimmed() && Q_REQUIRED_RESULT
+ { return trimmed_helper(*this); }
+ QByteArray simplified() const & Q_REQUIRED_RESULT
+ { return simplified_helper(*this); }
+ QByteArray simplified() && Q_REQUIRED_RESULT
+ { return simplified_helper(*this); }
+# ifdef Q_REQUIRED_RESULT_pushed
+# pragma pop_macro("Q_REQUIRED_RESULT")
+# endif
+#else
QByteArray toLower() const Q_REQUIRED_RESULT;
QByteArray toUpper() const Q_REQUIRED_RESULT;
-
QByteArray trimmed() const Q_REQUIRED_RESULT;
QByteArray simplified() const Q_REQUIRED_RESULT;
+#endif
+
QByteArray leftJustified(int width, char fill = ' ', bool truncate = false) const Q_REQUIRED_RESULT;
QByteArray rightJustified(int width, char fill = ' ', bool truncate = false) const Q_REQUIRED_RESULT;
@@ -417,6 +446,15 @@ private:
void expand(int i);
QByteArray nulTerminated() const;
+ static QByteArray toLower_helper(const QByteArray &a);
+ static QByteArray toLower_helper(QByteArray &a);
+ static QByteArray toUpper_helper(const QByteArray &a);
+ static QByteArray toUpper_helper(QByteArray &a);
+ static QByteArray trimmed_helper(const QByteArray &a);
+ static QByteArray trimmed_helper(QByteArray &a);
+ static QByteArray simplified_helper(const QByteArray &a);
+ static QByteArray simplified_helper(QByteArray &a);
+
friend class QByteRef;
friend class QString;
friend Q_CORE_EXPORT QByteArray qUncompress(const uchar *data, int nbytes);
diff --git a/src/corelib/tools/qchar.h b/src/corelib/tools/qchar.h
index 4db09e0f82..547c1ffda2 100644
--- a/src/corelib/tools/qchar.h
+++ b/src/corelib/tools/qchar.h
@@ -83,8 +83,10 @@ public:
#ifndef QT_NO_CAST_FROM_ASCII
QT_ASCII_CAST_WARN Q_DECL_CONSTEXPR explicit QChar(char c) : ucs(uchar(c)) { }
+#ifndef QT_RESTRICTED_CAST_FROM_ASCII
QT_ASCII_CAST_WARN Q_DECL_CONSTEXPR explicit QChar(uchar c) : ucs(c) { }
#endif
+#endif
// Unicode information
enum Category
@@ -377,68 +379,77 @@ public:
inline UnicodeVersion unicodeVersion() const { return QChar::unicodeVersion(ucs); }
#if QT_DEPRECATED_SINCE(5, 0)
- QT_DEPRECATED inline char toAscii() const { return toLatin1(); }
+ QT_DEPRECATED Q_DECL_CONSTEXPR inline char toAscii() const { return toLatin1(); }
#endif
- inline char toLatin1() const;
+ Q_DECL_CONSTEXPR inline char toLatin1() const;
Q_DECL_CONSTEXPR inline ushort unicode() const { return ucs; }
inline ushort &unicode() { return ucs; }
#if QT_DEPRECATED_SINCE(5, 0)
- QT_DEPRECATED static inline QChar fromAscii(char c)
+ QT_DEPRECATED static Q_DECL_CONSTEXPR inline QChar fromAscii(char c)
{ return fromLatin1(c); }
#endif
- static inline QChar fromLatin1(char c);
+ Q_DECL_CONSTEXPR static inline QChar fromLatin1(char c);
- inline bool isNull() const { return ucs == 0; }
+ Q_DECL_CONSTEXPR inline bool isNull() const { return ucs == 0; }
inline bool isPrint() const { return QChar::isPrint(ucs); }
- inline bool isSpace() const { return QChar::isSpace(ucs); }
+ Q_DECL_CONSTEXPR inline bool isSpace() const { return QChar::isSpace(ucs); }
inline bool isMark() const { return QChar::isMark(ucs); }
inline bool isPunct() const { return QChar::isPunct(ucs); }
inline bool isSymbol() const { return QChar::isSymbol(ucs); }
- inline bool isLetter() const { return QChar::isLetter(ucs); }
- inline bool isNumber() const { return QChar::isNumber(ucs); }
- inline bool isLetterOrNumber() const { return QChar::isLetterOrNumber(ucs); }
- inline bool isDigit() const { return QChar::isDigit(ucs); }
- inline bool isLower() const { return QChar::isLower(ucs); }
- inline bool isUpper() const { return QChar::isUpper(ucs); }
- inline bool isTitleCase() const { return QChar::isTitleCase(ucs); }
-
- inline bool isNonCharacter() const { return QChar::isNonCharacter(ucs); }
- inline bool isHighSurrogate() const { return QChar::isHighSurrogate(ucs); }
- inline bool isLowSurrogate() const { return QChar::isLowSurrogate(ucs); }
- inline bool isSurrogate() const { return QChar::isSurrogate(ucs); }
-
- inline uchar cell() const { return uchar(ucs & 0xff); }
- inline uchar row() const { return uchar((ucs>>8)&0xff); }
+ Q_DECL_CONSTEXPR inline bool isLetter() const { return QChar::isLetter(ucs); }
+ Q_DECL_CONSTEXPR inline bool isNumber() const { return QChar::isNumber(ucs); }
+ Q_DECL_CONSTEXPR inline bool isLetterOrNumber() const { return QChar::isLetterOrNumber(ucs); }
+ Q_DECL_CONSTEXPR inline bool isDigit() const { return QChar::isDigit(ucs); }
+ Q_DECL_CONSTEXPR inline bool isLower() const { return QChar::isLower(ucs); }
+ Q_DECL_CONSTEXPR inline bool isUpper() const { return QChar::isUpper(ucs); }
+ Q_DECL_CONSTEXPR inline bool isTitleCase() const { return QChar::isTitleCase(ucs); }
+
+ Q_DECL_CONSTEXPR inline bool isNonCharacter() const { return QChar::isNonCharacter(ucs); }
+ Q_DECL_CONSTEXPR inline bool isHighSurrogate() const { return QChar::isHighSurrogate(ucs); }
+ Q_DECL_CONSTEXPR inline bool isLowSurrogate() const { return QChar::isLowSurrogate(ucs); }
+ Q_DECL_CONSTEXPR inline bool isSurrogate() const { return QChar::isSurrogate(ucs); }
+
+ Q_DECL_CONSTEXPR inline uchar cell() const { return uchar(ucs & 0xff); }
+ Q_DECL_CONSTEXPR inline uchar row() const { return uchar((ucs>>8)&0xff); }
inline void setCell(uchar cell);
inline void setRow(uchar row);
- static inline bool isNonCharacter(uint ucs4) {
+ static Q_DECL_CONSTEXPR inline bool isNonCharacter(uint ucs4)
+ {
return ucs4 >= 0xfdd0 && (ucs4 <= 0xfdef || (ucs4 & 0xfffe) == 0xfffe);
}
- static inline bool isHighSurrogate(uint ucs4) {
+ static Q_DECL_CONSTEXPR inline bool isHighSurrogate(uint ucs4)
+ {
return ((ucs4 & 0xfffffc00) == 0xd800);
}
- static inline bool isLowSurrogate(uint ucs4) {
+ static Q_DECL_CONSTEXPR inline bool isLowSurrogate(uint ucs4)
+ {
return ((ucs4 & 0xfffffc00) == 0xdc00);
}
- static inline bool isSurrogate(uint ucs4) {
+ static Q_DECL_CONSTEXPR inline bool isSurrogate(uint ucs4)
+ {
return (ucs4 - 0xd800u < 2048u);
}
- static inline bool requiresSurrogates(uint ucs4) {
+ static Q_DECL_CONSTEXPR inline bool requiresSurrogates(uint ucs4)
+ {
return (ucs4 >= 0x10000);
}
- static inline uint surrogateToUcs4(ushort high, ushort low) {
+ static Q_DECL_CONSTEXPR inline uint surrogateToUcs4(ushort high, ushort low)
+ {
return (uint(high)<<10) + low - 0x35fdc00;
}
- static inline uint surrogateToUcs4(QChar high, QChar low) {
- return surrogateToUcs4(high.unicode(), low.unicode());
+ static Q_DECL_CONSTEXPR inline uint surrogateToUcs4(QChar high, QChar low)
+ {
+ return surrogateToUcs4(high.ucs, low.ucs);
}
- static inline ushort highSurrogate(uint ucs4) {
+ static Q_DECL_CONSTEXPR inline ushort highSurrogate(uint ucs4)
+ {
return ushort((ucs4>>10) + 0xd7c0);
}
- static inline ushort lowSurrogate(uint ucs4) {
+ static Q_DECL_CONSTEXPR inline ushort lowSurrogate(uint ucs4)
+ {
return ushort(ucs4%0x400 + 0xdc00);
}
@@ -469,17 +480,17 @@ public:
static UnicodeVersion QT_FASTCALL currentUnicodeVersion() Q_DECL_CONST_FUNCTION;
static bool QT_FASTCALL isPrint(uint ucs4) Q_DECL_CONST_FUNCTION;
- static inline bool isSpace(uint ucs4) Q_DECL_CONST_FUNCTION;
+ static Q_DECL_CONSTEXPR inline bool isSpace(uint ucs4) Q_DECL_CONST_FUNCTION;
static bool QT_FASTCALL isMark(uint ucs4) Q_DECL_CONST_FUNCTION;
static bool QT_FASTCALL isPunct(uint ucs4) Q_DECL_CONST_FUNCTION;
static bool QT_FASTCALL isSymbol(uint ucs4) Q_DECL_CONST_FUNCTION;
- static inline bool isLetter(uint ucs4) Q_DECL_CONST_FUNCTION;
- static inline bool isNumber(uint ucs4) Q_DECL_CONST_FUNCTION;
- static inline bool isLetterOrNumber(uint ucs4) Q_DECL_CONST_FUNCTION;
- static inline bool isDigit(uint ucs4) Q_DECL_CONST_FUNCTION;
- static inline bool isLower(uint ucs4) Q_DECL_CONST_FUNCTION;
- static inline bool isUpper(uint ucs4) Q_DECL_CONST_FUNCTION;
- static inline bool isTitleCase(uint ucs4) Q_DECL_CONST_FUNCTION;
+ static Q_DECL_CONSTEXPR inline bool isLetter(uint ucs4) Q_DECL_CONST_FUNCTION;
+ static Q_DECL_CONSTEXPR inline bool isNumber(uint ucs4) Q_DECL_CONST_FUNCTION;
+ static Q_DECL_CONSTEXPR inline bool isLetterOrNumber(uint ucs4) Q_DECL_CONST_FUNCTION;
+ static Q_DECL_CONSTEXPR inline bool isDigit(uint ucs4) Q_DECL_CONST_FUNCTION;
+ static Q_DECL_CONSTEXPR inline bool isLower(uint ucs4) Q_DECL_CONST_FUNCTION;
+ static Q_DECL_CONSTEXPR inline bool isUpper(uint ucs4) Q_DECL_CONST_FUNCTION;
+ static Q_DECL_CONSTEXPR inline bool isTitleCase(uint ucs4) Q_DECL_CONST_FUNCTION;
private:
static bool QT_FASTCALL isSpace_helper(uint ucs4) Q_DECL_CONST_FUNCTION;
@@ -491,53 +502,57 @@ private:
QChar(char c);
QChar(uchar c);
#endif
+
+ friend Q_DECL_CONSTEXPR bool operator==(QChar, QChar);
+ friend Q_DECL_CONSTEXPR bool operator< (QChar, QChar);
ushort ucs;
};
Q_DECLARE_TYPEINFO(QChar, Q_MOVABLE_TYPE);
-inline char QChar::toLatin1() const { return ucs > 0xff ? '\0' : char(ucs); }
-inline QChar QChar::fromLatin1(char c) { return QChar(ushort(uchar(c))); }
+Q_DECL_CONSTEXPR inline char QChar::toLatin1() const { return ucs > 0xff ? '\0' : char(ucs); }
+Q_DECL_CONSTEXPR inline QChar QChar::fromLatin1(char c) { return QChar(ushort(uchar(c))); }
inline void QChar::setCell(uchar acell)
{ ucs = ushort((ucs & 0xff00) + acell); }
inline void QChar::setRow(uchar arow)
{ ucs = ushort((ushort(arow)<<8) + (ucs&0xff)); }
-inline bool QChar::isSpace(uint ucs4)
+Q_DECL_CONSTEXPR inline bool QChar::isSpace(uint ucs4)
{
// note that [0x09..0x0d] + 0x85 are exceptional Cc-s and must be handled explicitly
return ucs4 == 0x20 || (ucs4 <= 0x0d && ucs4 >= 0x09)
|| (ucs4 > 127 && (ucs4 == 0x85 || ucs4 == 0xa0 || QChar::isSpace_helper(ucs4)));
}
-inline bool QChar::isLetter(uint ucs4)
+Q_DECL_CONSTEXPR inline bool QChar::isLetter(uint ucs4)
{
return (ucs4 >= 'A' && ucs4 <= 'z' && (ucs4 >= 'a' || ucs4 <= 'Z'))
|| (ucs4 > 127 && QChar::isLetter_helper(ucs4));
}
-inline bool QChar::isNumber(uint ucs4)
+Q_DECL_CONSTEXPR inline bool QChar::isNumber(uint ucs4)
{ return (ucs4 <= '9' && ucs4 >= '0') || (ucs4 > 127 && QChar::isNumber_helper(ucs4)); }
-inline bool QChar::isLetterOrNumber(uint ucs4)
+Q_DECL_CONSTEXPR inline bool QChar::isLetterOrNumber(uint ucs4)
{
return (ucs4 >= 'A' && ucs4 <= 'z' && (ucs4 >= 'a' || ucs4 <= 'Z'))
|| (ucs4 >= '0' && ucs4 <= '9')
|| (ucs4 > 127 && QChar::isLetterOrNumber_helper(ucs4));
}
-inline bool QChar::isDigit(uint ucs4)
+Q_DECL_CONSTEXPR inline bool QChar::isDigit(uint ucs4)
{ return (ucs4 <= '9' && ucs4 >= '0') || (ucs4 > 127 && QChar::category(ucs4) == Number_DecimalDigit); }
-inline bool QChar::isLower(uint ucs4)
+Q_DECL_CONSTEXPR inline bool QChar::isLower(uint ucs4)
{ return (ucs4 <= 'z' && ucs4 >= 'a') || (ucs4 > 127 && QChar::category(ucs4) == Letter_Lowercase); }
-inline bool QChar::isUpper(uint ucs4)
+Q_DECL_CONSTEXPR inline bool QChar::isUpper(uint ucs4)
{ return (ucs4 <= 'Z' && ucs4 >= 'A') || (ucs4 > 127 && QChar::category(ucs4) == Letter_Uppercase); }
-inline bool QChar::isTitleCase(uint ucs4)
+Q_DECL_CONSTEXPR inline bool QChar::isTitleCase(uint ucs4)
{ return ucs4 > 127 && QChar::category(ucs4) == Letter_Titlecase; }
-inline bool operator==(QChar c1, QChar c2) { return c1.unicode() == c2.unicode(); }
-inline bool operator!=(QChar c1, QChar c2) { return c1.unicode() != c2.unicode(); }
-inline bool operator<=(QChar c1, QChar c2) { return c1.unicode() <= c2.unicode(); }
-inline bool operator>=(QChar c1, QChar c2) { return c1.unicode() >= c2.unicode(); }
-inline bool operator<(QChar c1, QChar c2) { return c1.unicode() < c2.unicode(); }
-inline bool operator>(QChar c1, QChar c2) { return c1.unicode() > c2.unicode(); }
+Q_DECL_CONSTEXPR inline bool operator==(QChar c1, QChar c2) { return c1.ucs == c2.ucs; }
+Q_DECL_CONSTEXPR inline bool operator< (QChar c1, QChar c2) { return c1.ucs < c2.ucs; }
+
+Q_DECL_CONSTEXPR inline bool operator!=(QChar c1, QChar c2) { return !operator==(c1, c2); }
+Q_DECL_CONSTEXPR inline bool operator>=(QChar c1, QChar c2) { return !operator< (c1, c2); }
+Q_DECL_CONSTEXPR inline bool operator> (QChar c1, QChar c2) { return operator< (c2, c1); }
+Q_DECL_CONSTEXPR inline bool operator<=(QChar c1, QChar c2) { return !operator< (c2, c1); }
#ifndef QT_NO_DATASTREAM
Q_CORE_EXPORT QDataStream &operator<<(QDataStream &, QChar);
diff --git a/src/corelib/tools/qcommandlineparser.cpp b/src/corelib/tools/qcommandlineparser.cpp
index 01772b2ad5..117ce381f1 100644
--- a/src/corelib/tools/qcommandlineparser.cpp
+++ b/src/corelib/tools/qcommandlineparser.cpp
@@ -37,6 +37,10 @@
#include <qcoreapplication.h>
#include <qhash.h>
#include <qvector.h>
+#include <qdebug.h>
+#if defined(Q_OS_WIN) && !defined(QT_BOOTSTRAPPED) && !defined(Q_OS_WINCE) && !defined(Q_OS_WINRT)
+# include <qt_windows.h>
+#endif
#include <stdio.h>
#include <stdlib.h>
@@ -209,7 +213,10 @@ QStringList QCommandLineParserPrivate::aliases(const QString &optionName) const
platforms. These applications may not use the standard output or error channels
since the output is either discarded or not accessible.
- For such GUI applications, it is recommended to display help texts and error messages
+ On Windows, QCommandLineParser uses message boxes to display usage information
+ and errors if no console window can be obtained.
+
+ For other platforms, it is recommended to display help texts and error messages
using a QMessageBox. To preserve the formatting of the help text, rich text
with \c <pre> elements should be used:
@@ -219,36 +226,20 @@ QStringList QCommandLineParserPrivate::aliases(const QString &optionName) const
case CommandLineOk:
break;
case CommandLineError:
-#ifdef Q_OS_WIN
QMessageBox::warning(0, QGuiApplication::applicationDisplayName(),
"<html><head/><body><h2>" + errorMessage + "</h2><pre>"
+ parser.helpText() + "</pre></body></html>");
-#else
- fputs(qPrintable(errorMessage), stderr);
- fputs("\n\n", stderr);
- fputs(qPrintable(parser.helpText()), stderr);
-#endif
return 1;
case CommandLineVersionRequested:
-#ifdef Q_OS_WIN
QMessageBox::information(0, QGuiApplication::applicationDisplayName(),
QGuiApplication::applicationDisplayName() + ' '
+ QCoreApplication::applicationVersion());
-#else
- printf("%s %s\n", QGuiApplication::applicationDisplayName(),
- qPrintable(QCoreApplication::applicationVersion()));
-#endif
return 0;
case CommandLineHelpRequested:
-#ifdef Q_OS_WIN
QMessageBox::warning(0, QGuiApplication::applicationDisplayName(),
"<html><head/><body><pre>"
+ parser.helpText() + "</pre></body></html>");
return 0;
-#else
- parser.showHelp();
- Q_UNREACHABLE();
-#endif
}
\endcode
@@ -491,6 +482,41 @@ QString QCommandLineParser::errorText() const
return QString();
}
+enum MessageType { UsageMessage, ErrorMessage };
+
+#if defined(Q_OS_WIN) && !defined(QT_BOOTSTRAPPED) && !defined(Q_OS_WINCE) && !defined(Q_OS_WINRT)
+// Return whether to use a message box. Use handles if a console can be obtained
+// or we are run with redirected handles (for example, by QProcess).
+static inline bool displayMessageBox()
+{
+ if (GetConsoleWindow())
+ return false;
+ STARTUPINFO startupInfo;
+ startupInfo.cb = sizeof(STARTUPINFO);
+ GetStartupInfo(&startupInfo);
+ return !(startupInfo.dwFlags & STARTF_USESTDHANDLES);
+}
+#endif // Q_OS_WIN && !QT_BOOTSTRAPPED && !Q_OS_WIN && !Q_OS_WINRT
+
+static void showParserMessage(const QString &message, MessageType type)
+{
+#if defined(Q_OS_WIN) && !defined(QT_BOOTSTRAPPED) && !defined(Q_OS_WINCE) && !defined(Q_OS_WINRT)
+ if (displayMessageBox()) {
+ const UINT flags = MB_OK | MB_TOPMOST | MB_SETFOREGROUND
+ | (type == UsageMessage ? MB_ICONINFORMATION : MB_ICONERROR);
+ QString title;
+ if (QCoreApplication::instance())
+ title = QCoreApplication::instance()->property("applicationDisplayName").toString();
+ if (title.isEmpty())
+ title = QCoreApplication::applicationName();
+ MessageBoxW(0, reinterpret_cast<const wchar_t *>(message.utf16()),
+ reinterpret_cast<const wchar_t *>(title.utf16()), flags);
+ return;
+ }
+#endif // Q_OS_WIN && !QT_BOOTSTRAPPED && !Q_OS_WIN && !Q_OS_WINRT
+ fputs(qPrintable(message), type == UsageMessage ? stdout : stderr);
+}
+
/*!
Processes the command line \a arguments.
@@ -507,7 +533,7 @@ QString QCommandLineParser::errorText() const
void QCommandLineParser::process(const QStringList &arguments)
{
if (!d->parse(arguments)) {
- fprintf(stderr, "%s\n", qPrintable(errorText()));
+ showParserMessage(errorText() + QLatin1Char('\n'), ErrorMessage);
::exit(EXIT_FAILURE);
}
@@ -913,7 +939,9 @@ QStringList QCommandLineParser::unknownOptionNames() const
*/
Q_NORETURN void QCommandLineParser::showVersion()
{
- fprintf(stdout, "%s %s\n", qPrintable(QCoreApplication::applicationName()), qPrintable(QCoreApplication::applicationVersion()));
+ showParserMessage(QCoreApplication::applicationName() + QLatin1Char(' ')
+ + QCoreApplication::applicationVersion() + QLatin1Char('\n'),
+ UsageMessage);
::exit(EXIT_SUCCESS);
}
@@ -930,7 +958,7 @@ Q_NORETURN void QCommandLineParser::showVersion()
*/
Q_NORETURN void QCommandLineParser::showHelp(int exitCode)
{
- fprintf(stdout, "%s", qPrintable(d->helpText()));
+ showParserMessage(d->helpText(), UsageMessage);
::exit(exitCode);
}
diff --git a/src/corelib/tools/qdatetime.cpp b/src/corelib/tools/qdatetime.cpp
index f0f6a56755..69d4bd7d99 100644
--- a/src/corelib/tools/qdatetime.cpp
+++ b/src/corelib/tools/qdatetime.cpp
@@ -249,7 +249,7 @@ static QString toOffsetString(Qt::DateFormat format, int offset)
}
// Parse offset in [+-]HH[:]MM format
-static int fromOffsetString(const QString &offsetString, bool *valid)
+static int fromOffsetString(const QStringRef &offsetString, bool *valid)
{
*valid = false;
@@ -270,15 +270,15 @@ static int fromOffsetString(const QString &offsetString, bool *valid)
return 0;
// Split the hour and minute parts
- QStringList parts = offsetString.mid(1).split(QLatin1Char(':'));
+ QVector<QStringRef> parts = offsetString.mid(1).split(QLatin1Char(':'));
if (parts.count() == 1) {
// [+-]HHMM format
- parts.append(parts.at(0).mid(2));
- parts[0] = parts.at(0).left(2);
+ parts.append(parts.first().mid(2));
+ parts[0] = parts.first().left(2);
}
bool ok = false;
- const int hour = parts.at(0).toInt(&ok);
+ const int hour = parts.first().toInt(&ok);
if (!ok)
return 0;
@@ -898,18 +898,18 @@ QString QDate::toString(Qt::DateFormat format) const
#ifndef QT_NO_TEXTDATE
case Qt::TextDate:
getDateFromJulianDay(jd, &y, &m, &d);
- return QString::fromUtf8("%1 %2 %3 %4").arg(shortDayName(dayOfWeek()))
- .arg(shortMonthName(m))
- .arg(d)
- .arg(y);
+ return QString::fromLatin1("%1 %2 %3 %4").arg(shortDayName(dayOfWeek()))
+ .arg(shortMonthName(m))
+ .arg(d)
+ .arg(y);
#endif
case Qt::ISODate:
getDateFromJulianDay(jd, &y, &m, &d);
if (y < 0 || y > 9999)
return QString();
- return QString::fromUtf8("%1-%2-%3").arg(y, 4, 10, QLatin1Char('0'))
- .arg(m, 2, 10, QLatin1Char('0'))
- .arg(d, 2, 10, QLatin1Char('0'));
+ return QString::fromLatin1("%1-%2-%3").arg(y, 4, 10, QLatin1Char('0'))
+ .arg(m, 2, 10, QLatin1Char('0'))
+ .arg(d, 2, 10, QLatin1Char('0'));
}
}
@@ -1247,12 +1247,12 @@ QDate QDate::fromString(const QString& string, Qt::DateFormat format)
default:
#ifndef QT_NO_TEXTDATE
case Qt::TextDate: {
- QStringList parts = string.split(QLatin1Char(' '), QString::SkipEmptyParts);
+ QVector<QStringRef> parts = string.splitRef(QLatin1Char(' '), QString::SkipEmptyParts);
if (parts.count() != 4)
return QDate();
- QString monthName = parts.at(1);
+ QStringRef monthName = parts.at(1);
int month = -1;
// Assume that English monthnames are the default
for (int i = 0; i < 12; ++i) {
@@ -1288,10 +1288,10 @@ QDate QDate::fromString(const QString& string, Qt::DateFormat format)
|| (string.size() > 10 && string.at(10).isDigit())) {
return QDate();
}
- const int year = string.mid(0, 4).toInt();
+ const int year = string.midRef(0, 4).toInt();
if (year <= 0 || year > 9999)
return QDate();
- return QDate(year, string.mid(5, 2).toInt(), string.mid(8, 2).toInt());
+ return QDate(year, string.midRef(5, 2).toInt(), string.midRef(8, 2).toInt());
}
}
return QDate();
@@ -1649,9 +1649,9 @@ QString QTime::toString(Qt::DateFormat format) const
case Qt::ISODate:
case Qt::TextDate:
default:
- return QString::fromUtf8("%1:%2:%3").arg(hour(), 2, 10, QLatin1Char('0'))
- .arg(minute(), 2, 10, QLatin1Char('0'))
- .arg(second(), 2, 10, QLatin1Char('0'));
+ return QString::fromLatin1("%1:%2:%3").arg(hour(), 2, 10, QLatin1Char('0'))
+ .arg(minute(), 2, 10, QLatin1Char('0'))
+ .arg(second(), 2, 10, QLatin1Char('0'));
}
}
@@ -3596,11 +3596,11 @@ QString QDateTime::toString(Qt::DateFormat format) const
QTime tm;
d->getDateTime(&dt, &tm);
//We cant use date.toString(Qt::TextDate) as we need to insert the time before the year
- buf = QString::fromUtf8("%1 %2 %3 %4 %5").arg(dt.shortDayName(dt.dayOfWeek()))
- .arg(dt.shortMonthName(dt.month()))
- .arg(dt.day())
- .arg(tm.toString(Qt::TextDate))
- .arg(dt.year());
+ buf = QString::fromLatin1("%1 %2 %3 %4 %5").arg(dt.shortDayName(dt.dayOfWeek()))
+ .arg(dt.shortMonthName(dt.month()))
+ .arg(dt.day())
+ .arg(tm.toString(Qt::TextDate))
+ .arg(dt.year());
if (timeSpec() != Qt::LocalTime) {
buf += QStringLiteral(" GMT");
if (d->m_spec == Qt::OffsetFromUTC)
@@ -4197,6 +4197,39 @@ qint64 QDateTime::currentMSecsSinceEpoch() Q_DECL_NOTHROW
#error "What system is this?"
#endif
+/*! \fn QDateTime QDateTime::fromCFDate(CFDateRef date)
+ \since 5.5
+
+ Constructs a new QDateTime containing a copy of the CFDate \a date.
+
+ \sa toCFDate()
+*/
+
+/*! \fn CFDateRef QDateTime::toCFDate() const
+ \since 5.5
+
+ Creates a CFDate from a QDateTime. The caller owns the CFDate object
+ and is responsible for releasing it.
+
+ \sa fromCFDate()
+*/
+
+/*! \fn QDateTime QDateTime::fromNSDate(const NSDate *date)
+ \since 5.5
+
+ Constructs a new QDateTime containing a copy of the NSDate \a date.
+
+ \sa toNSDate()
+*/
+
+/*! \fn NSDate QDateTime::toNSDate() const
+ \since 5.5
+
+ Creates an NSDate from a QDateTime. The NSDate object is autoreleased.
+
+ \sa fromNSDate()
+*/
+
/*!
\since 4.2
@@ -4351,7 +4384,7 @@ int QDateTime::utcOffset() const
#ifndef QT_NO_DATESTRING
-static int fromShortMonthName(const QString &monthName)
+static int fromShortMonthName(const QStringRef &monthName)
{
// Assume that English monthnames are the default
for (int i = 0; i < 12; ++i) {
@@ -4443,7 +4476,7 @@ QDateTime QDateTime::fromString(const QString& string, Qt::DateFormat format)
if (found) {
bool ok;
- offset = fromOffsetString(isoString.mid(signIndex).toString(), &ok);
+ offset = fromOffsetString(isoString.mid(signIndex), &ok);
if (!ok)
return QDateTime();
isoString = isoString.left(signIndex);
@@ -4463,7 +4496,7 @@ QDateTime QDateTime::fromString(const QString& string, Qt::DateFormat format)
}
#if !defined(QT_NO_TEXTDATE)
case Qt::TextDate: {
- QStringList parts = string.split(QLatin1Char(' '), QString::SkipEmptyParts);
+ QVector<QStringRef> parts = string.splitRef(QLatin1Char(' '), QString::SkipEmptyParts);
if ((parts.count() < 5) || (parts.count() > 6))
return QDateTime();
@@ -4482,9 +4515,9 @@ QDateTime QDateTime::fromString(const QString& string, Qt::DateFormat format)
if (!month || !day) {
month = fromShortMonthName(parts.at(2));
if (month) {
- QString dayStr = parts.at(1);
+ QStringRef dayStr = parts.at(1);
if (dayStr.endsWith(QLatin1Char('.'))) {
- dayStr.chop(1);
+ dayStr = dayStr.left(dayStr.size() - 1);
day = dayStr.toInt();
}
}
@@ -4517,7 +4550,7 @@ QDateTime QDateTime::fromString(const QString& string, Qt::DateFormat format)
if (!date.isValid())
return QDateTime();
- QStringList timeParts = parts.at(timePart).split(QLatin1Char(':'));
+ QVector<QStringRef> timeParts = parts.at(timePart).split(QLatin1Char(':'));
if (timeParts.count() < 2 || timeParts.count() > 3)
return QDateTime();
@@ -4532,7 +4565,7 @@ QDateTime QDateTime::fromString(const QString& string, Qt::DateFormat format)
int second = 0;
int millisecond = 0;
if (timeParts.count() > 2) {
- QStringList secondParts = timeParts.at(2).split(QLatin1Char('.'));
+ QVector<QStringRef> secondParts = timeParts.at(2).split(QLatin1Char('.'));
if (secondParts.size() > 2) {
return QDateTime();
}
@@ -4557,10 +4590,10 @@ QDateTime QDateTime::fromString(const QString& string, Qt::DateFormat format)
if (parts.count() == 5)
return QDateTime(date, time, Qt::LocalTime);
- QString tz = parts.at(5);
+ QStringRef tz = parts.at(5);
if (!tz.startsWith(QLatin1String("GMT"), Qt::CaseInsensitive))
return QDateTime();
- tz.remove(0, 3);
+ tz = tz.mid(3);
if (!tz.isEmpty()) {
int offset = fromOffsetString(tz, &ok);
if (!ok)
@@ -4987,7 +5020,7 @@ QDebug operator<<(QDebug dbg, const QDateTime &date)
spec = QStringLiteral(" Qt::UTC");
break;
case Qt::OffsetFromUTC:
- spec = QString::fromUtf8(" Qt::OffsetFromUTC %1s").arg(date.offsetFromUtc());
+ spec = QString::fromLatin1(" Qt::OffsetFromUTC %1s").arg(date.offsetFromUtc());
break;
case Qt::TimeZone:
#ifndef QT_BOOTSTRAPPED
diff --git a/src/corelib/tools/qdatetime.h b/src/corelib/tools/qdatetime.h
index a75d7d9bc8..5bcd01a587 100644
--- a/src/corelib/tools/qdatetime.h
+++ b/src/corelib/tools/qdatetime.h
@@ -40,6 +40,13 @@
#include <limits>
+#ifdef Q_OS_MAC
+Q_FORWARD_DECLARE_CF_TYPE(CFDate);
+# ifdef __OBJC__
+Q_FORWARD_DECLARE_OBJC_CLASS(NSDate);
+# endif
+#endif
+
QT_BEGIN_NAMESPACE
class QTimeZone;
@@ -296,6 +303,15 @@ public:
#endif
static qint64 currentMSecsSinceEpoch() Q_DECL_NOTHROW;
+#if defined(Q_OS_MAC) || defined(Q_QDOC)
+ static QDateTime fromCFDate(CFDateRef date);
+ CFDateRef toCFDate() const Q_DECL_CF_RETURNS_RETAINED;
+# if defined(__OBJC__) || defined(Q_QDOC)
+ static QDateTime fromNSDate(const NSDate *date);
+ NSDate *toNSDate() const Q_DECL_NS_RETURNS_AUTORELEASED;
+# endif
+#endif
+
private:
friend class QDateTimePrivate;
void detach();
diff --git a/src/corelib/tools/qdatetime_mac.mm b/src/corelib/tools/qdatetime_mac.mm
new file mode 100644
index 0000000000..c8a1d22928
--- /dev/null
+++ b/src/corelib/tools/qdatetime_mac.mm
@@ -0,0 +1,76 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Copyright (C) 2014 Petroules Corporation.
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtCore module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qdatetime.h"
+
+#import <Foundation/Foundation.h>
+
+QT_BEGIN_NAMESPACE
+
+QDateTime QDateTime::fromCFDate(CFDateRef date)
+{
+ if (!date)
+ return QDateTime();
+ return QDateTime::fromMSecsSinceEpoch(static_cast<qint64>((CFDateGetAbsoluteTime(date)
+ + kCFAbsoluteTimeIntervalSince1970) * 1000));
+}
+
+CFDateRef QDateTime::toCFDate() const
+{
+ return CFDateCreate(kCFAllocatorDefault, (static_cast<CFAbsoluteTime>(toMSecsSinceEpoch())
+ / 1000) - kCFAbsoluteTimeIntervalSince1970);
+}
+
+QDateTime QDateTime::fromNSDate(const NSDate *date)
+{
+ if (!date)
+ return QDateTime();
+ return QDateTime::fromMSecsSinceEpoch(static_cast<qint64>([date timeIntervalSince1970] * 1000));
+}
+
+NSDate *QDateTime::toNSDate() const
+{
+ return [NSDate
+ dateWithTimeIntervalSince1970:static_cast<NSTimeInterval>(toMSecsSinceEpoch()) / 1000];
+}
+
+QT_END_NAMESPACE
diff --git a/src/corelib/tools/qdatetime_p.h b/src/corelib/tools/qdatetime_p.h
index 78484f30ed..7c7f7f2a6a 100644
--- a/src/corelib/tools/qdatetime_p.h
+++ b/src/corelib/tools/qdatetime_p.h
@@ -111,6 +111,9 @@ public:
m_status(other.m_status)
{}
+ // ### XXX: when the tooling situation improves, look at fixing the padding.
+ // 4 bytes padding
+
qint64 m_msecs;
Qt::TimeSpec m_spec;
int m_offsetFromUtc;
diff --git a/src/corelib/tools/qeasingcurve.cpp b/src/corelib/tools/qeasingcurve.cpp
index a3dd4d9a60..e6fb531d7d 100644
--- a/src/corelib/tools/qeasingcurve.cpp
+++ b/src/corelib/tools/qeasingcurve.cpp
@@ -347,9 +347,7 @@ typedef QVector<TCBPoint> TCBPoints;
class QEasingCurveFunction
{
public:
- enum Type { In, Out, InOut, OutIn };
-
- QEasingCurveFunction(QEasingCurveFunction::Type type = In, qreal period = 0.3, qreal amplitude = 1.0,
+ QEasingCurveFunction(QEasingCurve::Type type, qreal period = 0.3, qreal amplitude = 1.0,
qreal overshoot = 1.70158)
: _t(type), _p(period), _a(amplitude), _o(overshoot)
{ }
@@ -358,7 +356,7 @@ public:
virtual QEasingCurveFunction *copy() const;
bool operator==(const QEasingCurveFunction &other) const;
- Type _t;
+ QEasingCurve::Type _t;
qreal _p;
qreal _a;
qreal _o;
@@ -367,9 +365,12 @@ public:
};
+static QEasingCurve::EasingFunction curveToFunc(QEasingCurve::Type curve);
+
qreal QEasingCurveFunction::value(qreal t)
{
- return t;
+ QEasingCurve::EasingFunction func = curveToFunc(_t);
+ return func(t);
}
QEasingCurveFunction *QEasingCurveFunction::copy() const
@@ -430,8 +431,8 @@ struct BezierEase : public QEasingCurveFunction
bool _init;
bool _valid;
- BezierEase()
- : QEasingCurveFunction(InOut), _curves(10), _intervals(10), _init(false), _valid(false)
+ BezierEase(QEasingCurve::Type type = QEasingCurve::BezierSpline)
+ : QEasingCurveFunction(type), _curves(10), _intervals(10), _init(false), _valid(false)
{ }
void init()
@@ -488,7 +489,7 @@ struct BezierEase : public QEasingCurveFunction
}
}
- QEasingCurveFunction *copy() const
+ QEasingCurveFunction *copy() const Q_DECL_OVERRIDE
{
BezierEase *rv = new BezierEase();
rv->_t = _t;
@@ -524,7 +525,7 @@ struct BezierEase : public QEasingCurveFunction
return newT;
}
- qreal value(qreal x)
+ qreal value(qreal x) Q_DECL_OVERRIDE
{
Q_ASSERT(_bezierCurves.count() % 3 == 0);
@@ -814,7 +815,11 @@ struct BezierEase : public QEasingCurveFunction
struct TCBEase : public BezierEase
{
- qreal value(qreal x)
+ TCBEase()
+ : BezierEase(QEasingCurve::TCBSpline)
+ { }
+
+ qreal value(qreal x) Q_DECL_OVERRIDE
{
Q_ASSERT(_bezierCurves.count() % 3 == 0);
@@ -830,11 +835,11 @@ struct TCBEase : public BezierEase
struct ElasticEase : public QEasingCurveFunction
{
- ElasticEase(Type type)
+ ElasticEase(QEasingCurve::Type type)
: QEasingCurveFunction(type, qreal(0.3), qreal(1.0))
{ }
- QEasingCurveFunction *copy() const
+ QEasingCurveFunction *copy() const Q_DECL_OVERRIDE
{
ElasticEase *rv = new ElasticEase(_t);
rv->_p = _p;
@@ -844,18 +849,18 @@ struct ElasticEase : public QEasingCurveFunction
return rv;
}
- qreal value(qreal t)
+ qreal value(qreal t) Q_DECL_OVERRIDE
{
qreal p = (_p < 0) ? qreal(0.3) : _p;
qreal a = (_a < 0) ? qreal(1.0) : _a;
switch(_t) {
- case In:
+ case QEasingCurve::InElastic:
return easeInElastic(t, a, p);
- case Out:
+ case QEasingCurve::OutElastic:
return easeOutElastic(t, a, p);
- case InOut:
+ case QEasingCurve::InOutElastic:
return easeInOutElastic(t, a, p);
- case OutIn:
+ case QEasingCurve::OutInElastic:
return easeOutInElastic(t, a, p);
default:
return t;
@@ -865,11 +870,11 @@ struct ElasticEase : public QEasingCurveFunction
struct BounceEase : public QEasingCurveFunction
{
- BounceEase(Type type)
+ BounceEase(QEasingCurve::Type type)
: QEasingCurveFunction(type, qreal(0.3), qreal(1.0))
{ }
- QEasingCurveFunction *copy() const
+ QEasingCurveFunction *copy() const Q_DECL_OVERRIDE
{
BounceEase *rv = new BounceEase(_t);
rv->_a = _a;
@@ -878,17 +883,17 @@ struct BounceEase : public QEasingCurveFunction
return rv;
}
- qreal value(qreal t)
+ qreal value(qreal t) Q_DECL_OVERRIDE
{
qreal a = (_a < 0) ? qreal(1.0) : _a;
switch(_t) {
- case In:
+ case QEasingCurve::InBounce:
return easeInBounce(t, a);
- case Out:
+ case QEasingCurve::OutBounce:
return easeOutBounce(t, a);
- case InOut:
+ case QEasingCurve::InOutBounce:
return easeInOutBounce(t, a);
- case OutIn:
+ case QEasingCurve::OutInBounce:
return easeOutInBounce(t, a);
default:
return t;
@@ -898,11 +903,11 @@ struct BounceEase : public QEasingCurveFunction
struct BackEase : public QEasingCurveFunction
{
- BackEase(Type type)
+ BackEase(QEasingCurve::Type type)
: QEasingCurveFunction(type, qreal(0.3), qreal(1.0), qreal(1.70158))
{ }
- QEasingCurveFunction *copy() const
+ QEasingCurveFunction *copy() const Q_DECL_OVERRIDE
{
BackEase *rv = new BackEase(_t);
rv->_o = _o;
@@ -911,17 +916,17 @@ struct BackEase : public QEasingCurveFunction
return rv;
}
- qreal value(qreal t)
+ qreal value(qreal t) Q_DECL_OVERRIDE
{
qreal o = (_o < 0) ? qreal(1.70158) : _o;
switch(_t) {
- case In:
+ case QEasingCurve::InBack:
return easeInBack(t, o);
- case Out:
+ case QEasingCurve::OutBack:
return easeOutBack(t, o);
- case InOut:
+ case QEasingCurve::InOutBack:
return easeInOutBack(t, o);
- case OutIn:
+ case QEasingCurve::OutInBack:
return easeOutInBack(t, o);
default:
return t;
@@ -1006,55 +1011,31 @@ static QEasingCurve::EasingFunction curveToFunc(QEasingCurve::Type curve)
static QEasingCurveFunction *curveToFunctionObject(QEasingCurve::Type type)
{
- QEasingCurveFunction *curveFunc = 0;
switch(type) {
case QEasingCurve::InElastic:
- curveFunc = new ElasticEase(ElasticEase::In);
- break;
case QEasingCurve::OutElastic:
- curveFunc = new ElasticEase(ElasticEase::Out);
- break;
case QEasingCurve::InOutElastic:
- curveFunc = new ElasticEase(ElasticEase::InOut);
- break;
case QEasingCurve::OutInElastic:
- curveFunc = new ElasticEase(ElasticEase::OutIn);
- break;
+ return new ElasticEase(type);
case QEasingCurve::OutBounce:
- curveFunc = new BounceEase(BounceEase::Out);
- break;
case QEasingCurve::InBounce:
- curveFunc = new BounceEase(BounceEase::In);
- break;
case QEasingCurve::OutInBounce:
- curveFunc = new BounceEase(BounceEase::OutIn);
- break;
case QEasingCurve::InOutBounce:
- curveFunc = new BounceEase(BounceEase::InOut);
- break;
+ return new BounceEase(type);
case QEasingCurve::InBack:
- curveFunc = new BackEase(BackEase::In);
- break;
case QEasingCurve::OutBack:
- curveFunc = new BackEase(BackEase::Out);
- break;
case QEasingCurve::InOutBack:
- curveFunc = new BackEase(BackEase::InOut);
- break;
case QEasingCurve::OutInBack:
- curveFunc = new BackEase(BackEase::OutIn);
- break;
+ return new BackEase(type);
case QEasingCurve::BezierSpline:
- curveFunc = new BezierEase();
- break;
+ return new BezierEase;
case QEasingCurve::TCBSpline:
- curveFunc = new TCBEase();
- break;
+ return new TCBEase;
default:
- curveFunc = new QEasingCurveFunction(QEasingCurveFunction::In, qreal(0.3), qreal(1.0), qreal(1.70158));
+ return new QEasingCurveFunction(type, qreal(0.3), qreal(1.0), qreal(1.70158));
}
- return curveFunc;
+ return 0;
}
/*!
diff --git a/src/corelib/tools/qelapsedtimer_generic.cpp b/src/corelib/tools/qelapsedtimer_generic.cpp
index f1f17b7fe5..734f693072 100644
--- a/src/corelib/tools/qelapsedtimer_generic.cpp
+++ b/src/corelib/tools/qelapsedtimer_generic.cpp
@@ -134,6 +134,10 @@ qint64 QElapsedTimer::elapsed() const Q_DECL_NOTHROW
number of milliseconds since January 1st, 1970 at 0:00 UTC (that is, it
is the Unix time expressed in milliseconds).
+ On Linux, Windows and OS X/iOS systems, this value is usually the time
+ since the system boot, though it usually does not include the time the
+ system has spent in sleep states.
+
\sa clockType(), elapsed()
*/
qint64 QElapsedTimer::msecsSinceReference() const Q_DECL_NOTHROW
diff --git a/src/corelib/tools/qelapsedtimer_unix.cpp b/src/corelib/tools/qelapsedtimer_unix.cpp
index d29447fa03..922aa487d7 100644
--- a/src/corelib/tools/qelapsedtimer_unix.cpp
+++ b/src/corelib/tools/qelapsedtimer_unix.cpp
@@ -140,11 +140,6 @@ static int unixCheckClockType()
#endif
}
-static inline qint64 fractionAdjustment()
-{
- return 1000*1000ull;
-}
-
bool QElapsedTimer::isMonotonic() Q_DECL_NOTHROW
{
return clockType() == MonotonicClock;
@@ -196,7 +191,7 @@ static qint64 elapsedAndRestart(qint64 sec, qint64 frac,
do_gettime(nowsec, nowfrac);
sec = *nowsec - sec;
frac = *nowfrac - frac;
- return sec * Q_INT64_C(1000) + frac / fractionAdjustment();
+ return (sec * Q_INT64_C(1000000000) + frac) / Q_INT64_C(1000000);
}
void QElapsedTimer::start() Q_DECL_NOTHROW
@@ -220,20 +215,19 @@ qint64 QElapsedTimer::nsecsElapsed() const Q_DECL_NOTHROW
qint64 QElapsedTimer::elapsed() const Q_DECL_NOTHROW
{
- qint64 sec, frac;
- return elapsedAndRestart(t1, t2, &sec, &frac);
+ return nsecsElapsed() / Q_INT64_C(1000000);
}
qint64 QElapsedTimer::msecsSinceReference() const Q_DECL_NOTHROW
{
- return t1 * Q_INT64_C(1000) + t2 / fractionAdjustment();
+ return t1 * Q_INT64_C(1000) + t2 / Q_INT64_C(1000000);
}
qint64 QElapsedTimer::msecsTo(const QElapsedTimer &other) const Q_DECL_NOTHROW
{
qint64 secs = other.t1 - t1;
qint64 fraction = other.t2 - t2;
- return secs * Q_INT64_C(1000) + fraction / fractionAdjustment();
+ return (secs * Q_INT64_C(1000000000) + fraction) / Q_INT64_C(1000000);
}
qint64 QElapsedTimer::secsTo(const QElapsedTimer &other) const Q_DECL_NOTHROW
diff --git a/src/corelib/tools/qhash.cpp b/src/corelib/tools/qhash.cpp
index fe8c52d103..6a08576f7e 100644
--- a/src/corelib/tools/qhash.cpp
+++ b/src/corelib/tools/qhash.cpp
@@ -259,9 +259,7 @@ static uint qt_create_qhash_seed()
quintptr seedPtr = reinterpret_cast<quintptr>(&seed);
seed ^= seedPtr;
-#if QT_POINTER_SIZE == 8
- seed ^= (seedPtr >> 32);
-#endif
+ seed ^= (qulonglong(seedPtr) >> 32); // no-op on 32-bit platforms
#endif // QT_BOOTSTRAPPED
return seed;
@@ -2227,12 +2225,6 @@ uint qHash(long double key, uint seed) Q_DECL_NOTHROW
*/
/*!
- \fn bool QMultiHash::contains(const Key &key) const
- \overload
- \sa QHash::contains()
-*/
-
-/*!
\fn int QMultiHash::remove(const Key &key, const T &value)
\since 4.3
@@ -2243,12 +2235,6 @@ uint qHash(long double key, uint seed) Q_DECL_NOTHROW
*/
/*!
- \fn int QMultiHash::remove(const Key &key)
- \overload
- \sa QHash::remove()
-*/
-
-/*!
\fn int QMultiHash::count(const Key &key, const T &value) const
\since 4.3
@@ -2258,18 +2244,6 @@ uint qHash(long double key, uint seed) Q_DECL_NOTHROW
*/
/*!
- \fn int QMultiHash::count(const Key &key) const
- \overload
- \sa QHash::count()
-*/
-
-/*!
- \fn int QMultiHash::count() const
- \overload
- \sa QHash::count()
-*/
-
-/*!
\fn typename QHash<Key, T>::iterator QMultiHash::find(const Key &key, const T &value)
\since 4.3
@@ -2283,24 +2257,12 @@ uint qHash(long double key, uint seed) Q_DECL_NOTHROW
*/
/*!
- \fn typename QHash<Key, T>::iterator QMultiHash::find(const Key &key)
- \overload
- \sa QHash::find()
-*/
-
-/*!
\fn typename QHash<Key, T>::const_iterator QMultiHash::find(const Key &key, const T &value) const
\since 4.3
\overload
*/
/*!
- \fn typename QHash<Key, T>::const_iterator QMultiHash::find(const Key &key) const
- \overload
- \sa QHash::find()
-*/
-
-/*!
\fn typename QHash<Key, T>::const_iterator QMultiHash::constFind(const Key &key, const T &value) const
\since 4.3
@@ -2313,10 +2275,4 @@ uint qHash(long double key, uint seed) Q_DECL_NOTHROW
\sa QHash::constFind()
*/
-/*!
- \fn typename QHash<Key, T>::const_iterator QMultiHash::constFind(const Key &key) const
- \overload
- \sa QHash::constFind()
-*/
-
QT_END_NAMESPACE
diff --git a/src/corelib/tools/qhash.h b/src/corelib/tools/qhash.h
index 59a5251c50..771e81c8f4 100644
--- a/src/corelib/tools/qhash.h
+++ b/src/corelib/tools/qhash.h
@@ -977,7 +977,7 @@ public:
inline QMultiHash operator+(const QMultiHash &other) const
{ QMultiHash result = *this; result += other; return result; }
-#if !defined(Q_NO_USING_KEYWORD) && !defined(Q_CC_RVCT)
+#if !defined(Q_CC_RVCT)
// RVCT compiler doesn't handle using-keyword right when used functions are overloaded in child class
using QHash<Key, T>::contains;
using QHash<Key, T>::remove;
diff --git a/src/corelib/tools/qlist.cpp b/src/corelib/tools/qlist.cpp
index fe5e0f33b4..b91fd38a5f 100644
--- a/src/corelib/tools/qlist.cpp
+++ b/src/corelib/tools/qlist.cpp
@@ -55,6 +55,8 @@ const QListData::Data QListData::shared_null = { Q_REFCOUNT_INITIALIZE_STATIC, 0
static int grow(int size)
{
+ if (size_t(size) > (MaxAllocSize - QListData::DataHeaderSize) / sizeof(void *))
+ qBadAlloc();
// dear compiler: don't optimize me out.
volatile int x = qAllocMore(size * sizeof(void *), QListData::DataHeaderSize) / sizeof(void *);
return x;
diff --git a/src/corelib/tools/qlist.h b/src/corelib/tools/qlist.h
index e33be9a2f1..533f1d6dbc 100644
--- a/src/corelib/tools/qlist.h
+++ b/src/corelib/tools/qlist.h
@@ -628,9 +628,7 @@ inline void QList<T>::swap(int i, int j)
Q_ASSERT_X(i >= 0 && i < p.size() && j >= 0 && j < p.size(),
"QList<T>::swap", "index out of range");
detach();
- void *t = d->array[d->begin + i];
- d->array[d->begin + i] = d->array[d->begin + j];
- d->array[d->begin + j] = t;
+ std::swap(d->array[d->begin + i], d->array[d->begin + j]);
}
template <typename T>
@@ -773,11 +771,10 @@ Q_OUTOFLINE_TEMPLATE bool QList<T>::operator==(const QList<T> &l) const
return true;
if (p.size() != l.p.size())
return false;
- Node *i = reinterpret_cast<Node *>(p.end());
- Node *b = reinterpret_cast<Node *>(p.begin());
- Node *li = reinterpret_cast<Node *>(l.p.end());
- while (i != b) {
- --i; --li;
+ Node *i = reinterpret_cast<Node *>(p.begin());
+ Node *e = reinterpret_cast<Node *>(p.end());
+ Node *li = reinterpret_cast<Node *>(l.p.begin());
+ for (; i != e; ++i, ++li) {
if (!(i->t() == li->t()))
return false;
}
@@ -925,9 +922,9 @@ Q_OUTOFLINE_TEMPLATE int QList<T>::lastIndexOf(const T &t, int from) const
template <typename T>
Q_OUTOFLINE_TEMPLATE bool QList<T>::contains(const T &t) const
{
- Node *b = reinterpret_cast<Node *>(p.begin());
- Node *i = reinterpret_cast<Node *>(p.end());
- while (i-- != b)
+ Node *e = reinterpret_cast<Node *>(p.end());
+ Node *i = reinterpret_cast<Node *>(p.begin());
+ for (; i != e; ++i)
if (i->t() == t)
return true;
return false;
@@ -937,9 +934,9 @@ template <typename T>
Q_OUTOFLINE_TEMPLATE int QList<T>::count(const T &t) const
{
int c = 0;
- Node *b = reinterpret_cast<Node *>(p.begin());
- Node *i = reinterpret_cast<Node *>(p.end());
- while (i-- != b)
+ Node *e = reinterpret_cast<Node *>(p.end());
+ Node *i = reinterpret_cast<Node *>(p.begin());
+ for (; i != e; ++i)
if (i->t() == t)
++c;
return c;
diff --git a/src/corelib/tools/qmap.cpp b/src/corelib/tools/qmap.cpp
index 38b4c0ad7e..ef5fbac377 100644
--- a/src/corelib/tools/qmap.cpp
+++ b/src/corelib/tools/qmap.cpp
@@ -1798,12 +1798,6 @@ void QMapDataBase::freeData(QMapDataBase *d)
*/
/*!
- \fn bool QMultiMap::contains(const Key &key) const
- \overload
- \sa QMap::contains()
-*/
-
-/*!
\fn int QMultiMap::remove(const Key &key, const T &value)
\since 4.3
@@ -1814,12 +1808,6 @@ void QMapDataBase::freeData(QMapDataBase *d)
*/
/*!
- \fn int QMultiMap::remove(const Key &key)
- \overload
- \sa QMap::remove()
-*/
-
-/*!
\fn int QMultiMap::count(const Key &key, const T &value) const
\since 4.3
@@ -1829,18 +1817,6 @@ void QMapDataBase::freeData(QMapDataBase *d)
*/
/*!
- \fn int QMultiMap::count(const Key &key) const
- \overload
- \sa QMap::count()
-*/
-
-/*!
- \fn int QMultiMap::count() const
- \overload
- \sa QMap::count()
-*/
-
-/*!
\fn typename QMap<Key, T>::iterator QMultiMap::find(const Key &key, const T &value)
\since 4.3
@@ -1857,12 +1833,6 @@ void QMapDataBase::freeData(QMapDataBase *d)
*/
/*!
- \fn typename QMap<Key, T>::iterator QMultiMap::find(const Key &key)
- \overload
- \sa QMap::find()
-*/
-
-/*!
\fn typename QMap<Key, T>::const_iterator QMultiMap::find(const Key &key, const T &value) const
\since 4.3
\overload
@@ -1880,13 +1850,6 @@ void QMapDataBase::freeData(QMapDataBase *d)
*/
/*!
- \fn typename QMap<Key, T>::const_iterator QMultiMap::find(const Key &key) const
- \since 4.3
- \overload
- \sa QMap::find()
-*/
-
-/*!
\fn typename QMap<Key, T>::const_iterator QMultiMap::constFind(const Key &key, const T &value) const
\since 4.3
@@ -1899,10 +1862,4 @@ void QMapDataBase::freeData(QMapDataBase *d)
\sa QMap::constFind()
*/
-/*!
- \fn typename QMap<Key, T>::const_iterator QMultiMap::constFind(const Key &key) const
- \overload
- \sa QMap::constFind()
-*/
-
QT_END_NAMESPACE
diff --git a/src/corelib/tools/qmap.h b/src/corelib/tools/qmap.h
index a776e2eb4d..ce550c540b 100644
--- a/src/corelib/tools/qmap.h
+++ b/src/corelib/tools/qmap.h
@@ -1157,7 +1157,7 @@ public:
inline QMultiMap operator+(const QMultiMap &other) const
{ QMultiMap result = *this; result += other; return result; }
-#if !defined(Q_NO_USING_KEYWORD) && !defined(Q_CC_RVCT)
+#if !defined(Q_CC_RVCT)
// RVCT compiler doesn't handle using-keyword right when used functions are overloaded in child class
using QMap<Key, T>::contains;
using QMap<Key, T>::remove;
diff --git a/src/corelib/tools/qmargins.h b/src/corelib/tools/qmargins.h
index 33a2766345..400f0f76df 100644
--- a/src/corelib/tools/qmargins.h
+++ b/src/corelib/tools/qmargins.h
@@ -55,19 +55,19 @@ public:
Q_DECL_CONSTEXPR int right() const;
Q_DECL_CONSTEXPR int bottom() const;
- void setLeft(int left);
- void setTop(int top);
- void setRight(int right);
- void setBottom(int bottom);
-
- QMargins &operator+=(const QMargins &margins);
- QMargins &operator-=(const QMargins &margins);
- QMargins &operator+=(int);
- QMargins &operator-=(int);
- QMargins &operator*=(int);
- QMargins &operator/=(int);
- QMargins &operator*=(qreal);
- QMargins &operator/=(qreal);
+ Q_DECL_RELAXED_CONSTEXPR void setLeft(int left);
+ Q_DECL_RELAXED_CONSTEXPR void setTop(int top);
+ Q_DECL_RELAXED_CONSTEXPR void setRight(int right);
+ Q_DECL_RELAXED_CONSTEXPR void setBottom(int bottom);
+
+ Q_DECL_RELAXED_CONSTEXPR QMargins &operator+=(const QMargins &margins);
+ Q_DECL_RELAXED_CONSTEXPR QMargins &operator-=(const QMargins &margins);
+ Q_DECL_RELAXED_CONSTEXPR QMargins &operator+=(int);
+ Q_DECL_RELAXED_CONSTEXPR QMargins &operator-=(int);
+ Q_DECL_RELAXED_CONSTEXPR QMargins &operator*=(int);
+ Q_DECL_RELAXED_CONSTEXPR QMargins &operator/=(int);
+ Q_DECL_RELAXED_CONSTEXPR QMargins &operator*=(qreal);
+ Q_DECL_RELAXED_CONSTEXPR QMargins &operator/=(qreal);
private:
int m_left;
@@ -114,16 +114,16 @@ Q_DECL_CONSTEXPR inline int QMargins::bottom() const
{ return m_bottom; }
-inline void QMargins::setLeft(int aleft)
+Q_DECL_RELAXED_CONSTEXPR inline void QMargins::setLeft(int aleft)
{ m_left = aleft; }
-inline void QMargins::setTop(int atop)
+Q_DECL_RELAXED_CONSTEXPR inline void QMargins::setTop(int atop)
{ m_top = atop; }
-inline void QMargins::setRight(int aright)
+Q_DECL_RELAXED_CONSTEXPR inline void QMargins::setRight(int aright)
{ m_right = aright; }
-inline void QMargins::setBottom(int abottom)
+Q_DECL_RELAXED_CONSTEXPR inline void QMargins::setBottom(int abottom)
{ m_bottom = abottom; }
Q_DECL_CONSTEXPR inline bool operator==(const QMargins &m1, const QMargins &m2)
@@ -210,17 +210,17 @@ Q_DECL_CONSTEXPR inline QMargins operator/(const QMargins &margins, qreal diviso
qRound(margins.right() / divisor), qRound(margins.bottom() / divisor));
}
-inline QMargins &QMargins::operator+=(const QMargins &margins)
+Q_DECL_RELAXED_CONSTEXPR inline QMargins &QMargins::operator+=(const QMargins &margins)
{
return *this = *this + margins;
}
-inline QMargins &QMargins::operator-=(const QMargins &margins)
+Q_DECL_RELAXED_CONSTEXPR inline QMargins &QMargins::operator-=(const QMargins &margins)
{
return *this = *this - margins;
}
-inline QMargins &QMargins::operator+=(int margin)
+Q_DECL_RELAXED_CONSTEXPR inline QMargins &QMargins::operator+=(int margin)
{
m_left += margin;
m_top += margin;
@@ -229,7 +229,7 @@ inline QMargins &QMargins::operator+=(int margin)
return *this;
}
-inline QMargins &QMargins::operator-=(int margin)
+Q_DECL_RELAXED_CONSTEXPR inline QMargins &QMargins::operator-=(int margin)
{
m_left -= margin;
m_top -= margin;
@@ -238,22 +238,22 @@ inline QMargins &QMargins::operator-=(int margin)
return *this;
}
-inline QMargins &QMargins::operator*=(int factor)
+Q_DECL_RELAXED_CONSTEXPR inline QMargins &QMargins::operator*=(int factor)
{
return *this = *this * factor;
}
-inline QMargins &QMargins::operator/=(int divisor)
+Q_DECL_RELAXED_CONSTEXPR inline QMargins &QMargins::operator/=(int divisor)
{
return *this = *this / divisor;
}
-inline QMargins &QMargins::operator*=(qreal factor)
+Q_DECL_RELAXED_CONSTEXPR inline QMargins &QMargins::operator*=(qreal factor)
{
return *this = *this * factor;
}
-inline QMargins &QMargins::operator/=(qreal divisor)
+Q_DECL_RELAXED_CONSTEXPR inline QMargins &QMargins::operator/=(qreal divisor)
{
return *this = *this / divisor;
}
@@ -290,17 +290,17 @@ public:
Q_DECL_CONSTEXPR qreal right() const;
Q_DECL_CONSTEXPR qreal bottom() const;
- void setLeft(qreal left);
- void setTop(qreal top);
- void setRight(qreal right);
- void setBottom(qreal bottom);
+ Q_DECL_RELAXED_CONSTEXPR void setLeft(qreal left);
+ Q_DECL_RELAXED_CONSTEXPR void setTop(qreal top);
+ Q_DECL_RELAXED_CONSTEXPR void setRight(qreal right);
+ Q_DECL_RELAXED_CONSTEXPR void setBottom(qreal bottom);
- QMarginsF &operator+=(const QMarginsF &margins);
- QMarginsF &operator-=(const QMarginsF &margins);
- QMarginsF &operator+=(qreal addend);
- QMarginsF &operator-=(qreal subtrahend);
- QMarginsF &operator*=(qreal factor);
- QMarginsF &operator/=(qreal divisor);
+ Q_DECL_RELAXED_CONSTEXPR QMarginsF &operator+=(const QMarginsF &margins);
+ Q_DECL_RELAXED_CONSTEXPR QMarginsF &operator-=(const QMarginsF &margins);
+ Q_DECL_RELAXED_CONSTEXPR QMarginsF &operator+=(qreal addend);
+ Q_DECL_RELAXED_CONSTEXPR QMarginsF &operator-=(qreal subtrahend);
+ Q_DECL_RELAXED_CONSTEXPR QMarginsF &operator*=(qreal factor);
+ Q_DECL_RELAXED_CONSTEXPR QMarginsF &operator/=(qreal divisor);
Q_DECL_CONSTEXPR inline QMargins toMargins() const;
@@ -350,16 +350,16 @@ Q_DECL_CONSTEXPR inline qreal QMarginsF::bottom() const
{ return m_bottom; }
-inline void QMarginsF::setLeft(qreal aleft)
+Q_DECL_RELAXED_CONSTEXPR inline void QMarginsF::setLeft(qreal aleft)
{ m_left = aleft; }
-inline void QMarginsF::setTop(qreal atop)
+Q_DECL_RELAXED_CONSTEXPR inline void QMarginsF::setTop(qreal atop)
{ m_top = atop; }
-inline void QMarginsF::setRight(qreal aright)
+Q_DECL_RELAXED_CONSTEXPR inline void QMarginsF::setRight(qreal aright)
{ m_right = aright; }
-inline void QMarginsF::setBottom(qreal abottom)
+Q_DECL_RELAXED_CONSTEXPR inline void QMarginsF::setBottom(qreal abottom)
{ m_bottom = abottom; }
Q_DECL_CONSTEXPR inline bool operator==(const QMarginsF &lhs, const QMarginsF &rhs)
@@ -423,17 +423,17 @@ Q_DECL_CONSTEXPR inline QMarginsF operator/(const QMarginsF &lhs, qreal divisor)
lhs.right() / divisor, lhs.bottom() / divisor);
}
-inline QMarginsF &QMarginsF::operator+=(const QMarginsF &margins)
+Q_DECL_RELAXED_CONSTEXPR inline QMarginsF &QMarginsF::operator+=(const QMarginsF &margins)
{
return *this = *this + margins;
}
-inline QMarginsF &QMarginsF::operator-=(const QMarginsF &margins)
+Q_DECL_RELAXED_CONSTEXPR inline QMarginsF &QMarginsF::operator-=(const QMarginsF &margins)
{
return *this = *this - margins;
}
-inline QMarginsF &QMarginsF::operator+=(qreal addend)
+Q_DECL_RELAXED_CONSTEXPR inline QMarginsF &QMarginsF::operator+=(qreal addend)
{
m_left += addend;
m_top += addend;
@@ -442,7 +442,7 @@ inline QMarginsF &QMarginsF::operator+=(qreal addend)
return *this;
}
-inline QMarginsF &QMarginsF::operator-=(qreal subtrahend)
+Q_DECL_RELAXED_CONSTEXPR inline QMarginsF &QMarginsF::operator-=(qreal subtrahend)
{
m_left -= subtrahend;
m_top -= subtrahend;
@@ -451,12 +451,12 @@ inline QMarginsF &QMarginsF::operator-=(qreal subtrahend)
return *this;
}
-inline QMarginsF &QMarginsF::operator*=(qreal factor)
+Q_DECL_RELAXED_CONSTEXPR inline QMarginsF &QMarginsF::operator*=(qreal factor)
{
return *this = *this * factor;
}
-inline QMarginsF &QMarginsF::operator/=(qreal divisor)
+Q_DECL_RELAXED_CONSTEXPR inline QMarginsF &QMarginsF::operator/=(qreal divisor)
{
return *this = *this / divisor;
}
diff --git a/src/corelib/tools/qpair.h b/src/corelib/tools/qpair.h
index b2217e4dd0..ae33d598d4 100644
--- a/src/corelib/tools/qpair.h
+++ b/src/corelib/tools/qpair.h
@@ -52,13 +52,13 @@ struct QPair
template <typename TT1, typename TT2>
Q_DECL_CONSTEXPR QPair(const QPair<TT1, TT2> &p) : first(p.first), second(p.second) {}
template <typename TT1, typename TT2>
- QPair &operator=(const QPair<TT1, TT2> &p)
+ Q_DECL_RELAXED_CONSTEXPR QPair &operator=(const QPair<TT1, TT2> &p)
{ first = p.first; second = p.second; return *this; }
#ifdef Q_COMPILER_RVALUE_REFS
template <typename TT1, typename TT2>
Q_DECL_CONSTEXPR QPair(QPair<TT1, TT2> &&p) : first(std::move(p.first)), second(std::move(p.second)) {}
template <typename TT1, typename TT2>
- QPair &operator=(QPair<TT1, TT2> &&p)
+ Q_DECL_RELAXED_CONSTEXPR QPair &operator=(QPair<TT1, TT2> &&p)
{ first = std::move(p.first); second = std::move(p.second); return *this; }
#endif
diff --git a/src/corelib/tools/qpoint.h b/src/corelib/tools/qpoint.h
index 5cf97b9052..70474b6d59 100644
--- a/src/corelib/tools/qpoint.h
+++ b/src/corelib/tools/qpoint.h
@@ -49,22 +49,22 @@ public:
Q_DECL_CONSTEXPR inline int x() const;
Q_DECL_CONSTEXPR inline int y() const;
- inline void setX(int x);
- inline void setY(int y);
+ Q_DECL_RELAXED_CONSTEXPR inline void setX(int x);
+ Q_DECL_RELAXED_CONSTEXPR inline void setY(int y);
Q_DECL_CONSTEXPR inline int manhattanLength() const;
- inline int &rx();
- inline int &ry();
+ Q_DECL_RELAXED_CONSTEXPR inline int &rx();
+ Q_DECL_RELAXED_CONSTEXPR inline int &ry();
- inline QPoint &operator+=(const QPoint &p);
- inline QPoint &operator-=(const QPoint &p);
+ Q_DECL_RELAXED_CONSTEXPR inline QPoint &operator+=(const QPoint &p);
+ Q_DECL_RELAXED_CONSTEXPR inline QPoint &operator-=(const QPoint &p);
- inline QPoint &operator*=(float factor);
- inline QPoint &operator*=(double factor);
- inline QPoint &operator*=(int factor);
+ Q_DECL_RELAXED_CONSTEXPR inline QPoint &operator*=(float factor);
+ Q_DECL_RELAXED_CONSTEXPR inline QPoint &operator*=(double factor);
+ Q_DECL_RELAXED_CONSTEXPR inline QPoint &operator*=(int factor);
- inline QPoint &operator/=(qreal divisor);
+ Q_DECL_RELAXED_CONSTEXPR inline QPoint &operator/=(qreal divisor);
Q_DECL_CONSTEXPR static inline int dotProduct(const QPoint &p1, const QPoint &p2)
{ return p1.xp * p2.xp + p1.yp * p2.yp; }
@@ -116,34 +116,34 @@ Q_DECL_CONSTEXPR inline int QPoint::x() const
Q_DECL_CONSTEXPR inline int QPoint::y() const
{ return yp; }
-inline void QPoint::setX(int xpos)
+Q_DECL_RELAXED_CONSTEXPR inline void QPoint::setX(int xpos)
{ xp = xpos; }
-inline void QPoint::setY(int ypos)
+Q_DECL_RELAXED_CONSTEXPR inline void QPoint::setY(int ypos)
{ yp = ypos; }
inline int Q_DECL_CONSTEXPR QPoint::manhattanLength() const
{ return qAbs(x())+qAbs(y()); }
-inline int &QPoint::rx()
+Q_DECL_RELAXED_CONSTEXPR inline int &QPoint::rx()
{ return xp; }
-inline int &QPoint::ry()
+Q_DECL_RELAXED_CONSTEXPR inline int &QPoint::ry()
{ return yp; }
-inline QPoint &QPoint::operator+=(const QPoint &p)
+Q_DECL_RELAXED_CONSTEXPR inline QPoint &QPoint::operator+=(const QPoint &p)
{ xp+=p.xp; yp+=p.yp; return *this; }
-inline QPoint &QPoint::operator-=(const QPoint &p)
+Q_DECL_RELAXED_CONSTEXPR inline QPoint &QPoint::operator-=(const QPoint &p)
{ xp-=p.xp; yp-=p.yp; return *this; }
-inline QPoint &QPoint::operator*=(float factor)
+Q_DECL_RELAXED_CONSTEXPR inline QPoint &QPoint::operator*=(float factor)
{ xp = qRound(xp*factor); yp = qRound(yp*factor); return *this; }
-inline QPoint &QPoint::operator*=(double factor)
+Q_DECL_RELAXED_CONSTEXPR inline QPoint &QPoint::operator*=(double factor)
{ xp = qRound(xp*factor); yp = qRound(yp*factor); return *this; }
-inline QPoint &QPoint::operator*=(int factor)
+Q_DECL_RELAXED_CONSTEXPR inline QPoint &QPoint::operator*=(int factor)
{ xp = xp*factor; yp = yp*factor; return *this; }
Q_DECL_CONSTEXPR inline bool operator==(const QPoint &p1, const QPoint &p2)
@@ -182,7 +182,7 @@ Q_DECL_CONSTEXPR inline const QPoint operator+(const QPoint &p)
Q_DECL_CONSTEXPR inline const QPoint operator-(const QPoint &p)
{ return QPoint(-p.xp, -p.yp); }
-inline QPoint &QPoint::operator/=(qreal c)
+Q_DECL_RELAXED_CONSTEXPR inline QPoint &QPoint::operator/=(qreal c)
{
xp = qRound(xp/c);
yp = qRound(yp/c);
@@ -215,16 +215,16 @@ public:
Q_DECL_CONSTEXPR inline qreal x() const;
Q_DECL_CONSTEXPR inline qreal y() const;
- inline void setX(qreal x);
- inline void setY(qreal y);
+ Q_DECL_RELAXED_CONSTEXPR inline void setX(qreal x);
+ Q_DECL_RELAXED_CONSTEXPR inline void setY(qreal y);
- inline qreal &rx();
- inline qreal &ry();
+ Q_DECL_RELAXED_CONSTEXPR inline qreal &rx();
+ Q_DECL_RELAXED_CONSTEXPR inline qreal &ry();
- inline QPointF &operator+=(const QPointF &p);
- inline QPointF &operator-=(const QPointF &p);
- inline QPointF &operator*=(qreal c);
- inline QPointF &operator/=(qreal c);
+ Q_DECL_RELAXED_CONSTEXPR inline QPointF &operator+=(const QPointF &p);
+ Q_DECL_RELAXED_CONSTEXPR inline QPointF &operator-=(const QPointF &p);
+ Q_DECL_RELAXED_CONSTEXPR inline QPointF &operator*=(qreal c);
+ Q_DECL_RELAXED_CONSTEXPR inline QPointF &operator/=(qreal c);
Q_DECL_CONSTEXPR static inline qreal dotProduct(const QPointF &p1, const QPointF &p2)
{ return p1.xp * p2.xp + p1.yp * p2.yp; }
@@ -289,39 +289,39 @@ Q_DECL_CONSTEXPR inline qreal QPointF::y() const
return yp;
}
-inline void QPointF::setX(qreal xpos)
+Q_DECL_RELAXED_CONSTEXPR inline void QPointF::setX(qreal xpos)
{
xp = xpos;
}
-inline void QPointF::setY(qreal ypos)
+Q_DECL_RELAXED_CONSTEXPR inline void QPointF::setY(qreal ypos)
{
yp = ypos;
}
-inline qreal &QPointF::rx()
+Q_DECL_RELAXED_CONSTEXPR inline qreal &QPointF::rx()
{
return xp;
}
-inline qreal &QPointF::ry()
+Q_DECL_RELAXED_CONSTEXPR inline qreal &QPointF::ry()
{
return yp;
}
-inline QPointF &QPointF::operator+=(const QPointF &p)
+Q_DECL_RELAXED_CONSTEXPR inline QPointF &QPointF::operator+=(const QPointF &p)
{
xp+=p.xp;
yp+=p.yp;
return *this;
}
-inline QPointF &QPointF::operator-=(const QPointF &p)
+Q_DECL_RELAXED_CONSTEXPR inline QPointF &QPointF::operator-=(const QPointF &p)
{
xp-=p.xp; yp-=p.yp; return *this;
}
-inline QPointF &QPointF::operator*=(qreal c)
+Q_DECL_RELAXED_CONSTEXPR inline QPointF &QPointF::operator*=(qreal c)
{
xp*=c; yp*=c; return *this;
}
@@ -366,7 +366,7 @@ Q_DECL_CONSTEXPR inline const QPointF operator-(const QPointF &p)
return QPointF(-p.xp, -p.yp);
}
-inline QPointF &QPointF::operator/=(qreal divisor)
+Q_DECL_RELAXED_CONSTEXPR inline QPointF &QPointF::operator/=(qreal divisor)
{
xp/=divisor;
yp/=divisor;
diff --git a/src/corelib/tools/qrect.h b/src/corelib/tools/qrect.h
index b5be5724af..9b86a9f8fc 100644
--- a/src/corelib/tools/qrect.h
+++ b/src/corelib/tools/qrect.h
@@ -64,17 +64,17 @@ public:
Q_DECL_CONSTEXPR inline int x() const;
Q_DECL_CONSTEXPR inline int y() const;
- inline void setLeft(int pos);
- inline void setTop(int pos);
- inline void setRight(int pos);
- inline void setBottom(int pos);
- inline void setX(int x);
- inline void setY(int y);
-
- inline void setTopLeft(const QPoint &p);
- inline void setBottomRight(const QPoint &p);
- inline void setTopRight(const QPoint &p);
- inline void setBottomLeft(const QPoint &p);
+ Q_DECL_RELAXED_CONSTEXPR inline void setLeft(int pos);
+ Q_DECL_RELAXED_CONSTEXPR inline void setTop(int pos);
+ Q_DECL_RELAXED_CONSTEXPR inline void setRight(int pos);
+ Q_DECL_RELAXED_CONSTEXPR inline void setBottom(int pos);
+ Q_DECL_RELAXED_CONSTEXPR inline void setX(int x);
+ Q_DECL_RELAXED_CONSTEXPR inline void setY(int y);
+
+ Q_DECL_RELAXED_CONSTEXPR inline void setTopLeft(const QPoint &p);
+ Q_DECL_RELAXED_CONSTEXPR inline void setBottomRight(const QPoint &p);
+ Q_DECL_RELAXED_CONSTEXPR inline void setTopRight(const QPoint &p);
+ Q_DECL_RELAXED_CONSTEXPR inline void setBottomLeft(const QPoint &p);
Q_DECL_CONSTEXPR inline QPoint topLeft() const;
Q_DECL_CONSTEXPR inline QPoint bottomRight() const;
@@ -82,39 +82,39 @@ public:
Q_DECL_CONSTEXPR inline QPoint bottomLeft() const;
Q_DECL_CONSTEXPR inline QPoint center() const;
- inline void moveLeft(int pos);
- inline void moveTop(int pos);
- inline void moveRight(int pos);
- inline void moveBottom(int pos);
- inline void moveTopLeft(const QPoint &p);
- inline void moveBottomRight(const QPoint &p);
- inline void moveTopRight(const QPoint &p);
- inline void moveBottomLeft(const QPoint &p);
- inline void moveCenter(const QPoint &p);
-
- inline void translate(int dx, int dy);
- inline void translate(const QPoint &p);
+ Q_DECL_RELAXED_CONSTEXPR inline void moveLeft(int pos);
+ Q_DECL_RELAXED_CONSTEXPR inline void moveTop(int pos);
+ Q_DECL_RELAXED_CONSTEXPR inline void moveRight(int pos);
+ Q_DECL_RELAXED_CONSTEXPR inline void moveBottom(int pos);
+ Q_DECL_RELAXED_CONSTEXPR inline void moveTopLeft(const QPoint &p);
+ Q_DECL_RELAXED_CONSTEXPR inline void moveBottomRight(const QPoint &p);
+ Q_DECL_RELAXED_CONSTEXPR inline void moveTopRight(const QPoint &p);
+ Q_DECL_RELAXED_CONSTEXPR inline void moveBottomLeft(const QPoint &p);
+ Q_DECL_RELAXED_CONSTEXPR inline void moveCenter(const QPoint &p);
+
+ Q_DECL_RELAXED_CONSTEXPR inline void translate(int dx, int dy);
+ Q_DECL_RELAXED_CONSTEXPR inline void translate(const QPoint &p);
Q_DECL_CONSTEXPR inline QRect translated(int dx, int dy) const Q_REQUIRED_RESULT;
Q_DECL_CONSTEXPR inline QRect translated(const QPoint &p) const Q_REQUIRED_RESULT;
- inline void moveTo(int x, int t);
- inline void moveTo(const QPoint &p);
+ Q_DECL_RELAXED_CONSTEXPR inline void moveTo(int x, int t);
+ Q_DECL_RELAXED_CONSTEXPR inline void moveTo(const QPoint &p);
- inline void setRect(int x, int y, int w, int h);
- inline void getRect(int *x, int *y, int *w, int *h) const;
+ Q_DECL_RELAXED_CONSTEXPR inline void setRect(int x, int y, int w, int h);
+ Q_DECL_RELAXED_CONSTEXPR inline void getRect(int *x, int *y, int *w, int *h) const;
- inline void setCoords(int x1, int y1, int x2, int y2);
- inline void getCoords(int *x1, int *y1, int *x2, int *y2) const;
+ Q_DECL_RELAXED_CONSTEXPR inline void setCoords(int x1, int y1, int x2, int y2);
+ Q_DECL_RELAXED_CONSTEXPR inline void getCoords(int *x1, int *y1, int *x2, int *y2) const;
- inline void adjust(int x1, int y1, int x2, int y2);
+ Q_DECL_RELAXED_CONSTEXPR inline void adjust(int x1, int y1, int x2, int y2);
Q_DECL_CONSTEXPR inline QRect adjusted(int x1, int y1, int x2, int y2) const Q_REQUIRED_RESULT;
Q_DECL_CONSTEXPR inline QSize size() const;
Q_DECL_CONSTEXPR inline int width() const;
Q_DECL_CONSTEXPR inline int height() const;
- inline void setWidth(int w);
- inline void setHeight(int h);
- inline void setSize(const QSize &s);
+ Q_DECL_RELAXED_CONSTEXPR inline void setWidth(int w);
+ Q_DECL_RELAXED_CONSTEXPR inline void setHeight(int h);
+ Q_DECL_RELAXED_CONSTEXPR inline void setSize(const QSize &s);
QRect operator|(const QRect &r) const;
QRect operator&(const QRect &r) const;
@@ -131,8 +131,8 @@ public:
Q_DECL_CONSTEXPR inline QRect marginsAdded(const QMargins &margins) const;
Q_DECL_CONSTEXPR inline QRect marginsRemoved(const QMargins &margins) const;
- inline QRect &operator+=(const QMargins &margins);
- inline QRect &operator-=(const QMargins &margins);
+ Q_DECL_RELAXED_CONSTEXPR inline QRect &operator+=(const QMargins &margins);
+ Q_DECL_RELAXED_CONSTEXPR inline QRect &operator-=(const QMargins &margins);
#if QT_DEPRECATED_SINCE(5, 0)
QT_DEPRECATED QRect unite(const QRect &r) const Q_REQUIRED_RESULT { return united(r); }
@@ -202,34 +202,34 @@ Q_DECL_CONSTEXPR inline int QRect::x() const
Q_DECL_CONSTEXPR inline int QRect::y() const
{ return y1; }
-inline void QRect::setLeft(int pos)
+Q_DECL_RELAXED_CONSTEXPR inline void QRect::setLeft(int pos)
{ x1 = pos; }
-inline void QRect::setTop(int pos)
+Q_DECL_RELAXED_CONSTEXPR inline void QRect::setTop(int pos)
{ y1 = pos; }
-inline void QRect::setRight(int pos)
+Q_DECL_RELAXED_CONSTEXPR inline void QRect::setRight(int pos)
{ x2 = pos; }
-inline void QRect::setBottom(int pos)
+Q_DECL_RELAXED_CONSTEXPR inline void QRect::setBottom(int pos)
{ y2 = pos; }
-inline void QRect::setTopLeft(const QPoint &p)
+Q_DECL_RELAXED_CONSTEXPR inline void QRect::setTopLeft(const QPoint &p)
{ x1 = p.x(); y1 = p.y(); }
-inline void QRect::setBottomRight(const QPoint &p)
+Q_DECL_RELAXED_CONSTEXPR inline void QRect::setBottomRight(const QPoint &p)
{ x2 = p.x(); y2 = p.y(); }
-inline void QRect::setTopRight(const QPoint &p)
+Q_DECL_RELAXED_CONSTEXPR inline void QRect::setTopRight(const QPoint &p)
{ x2 = p.x(); y1 = p.y(); }
-inline void QRect::setBottomLeft(const QPoint &p)
+Q_DECL_RELAXED_CONSTEXPR inline void QRect::setBottomLeft(const QPoint &p)
{ x1 = p.x(); y2 = p.y(); }
-inline void QRect::setX(int ax)
+Q_DECL_RELAXED_CONSTEXPR inline void QRect::setX(int ax)
{ x1 = ax; }
-inline void QRect::setY(int ay)
+Q_DECL_RELAXED_CONSTEXPR inline void QRect::setY(int ay)
{ y1 = ay; }
Q_DECL_CONSTEXPR inline QPoint QRect::topLeft() const
@@ -256,7 +256,7 @@ Q_DECL_CONSTEXPR inline int QRect::height() const
Q_DECL_CONSTEXPR inline QSize QRect::size() const
{ return QSize(width(), height()); }
-inline void QRect::translate(int dx, int dy)
+Q_DECL_RELAXED_CONSTEXPR inline void QRect::translate(int dx, int dy)
{
x1 += dx;
y1 += dy;
@@ -264,7 +264,7 @@ inline void QRect::translate(int dx, int dy)
y2 += dy;
}
-inline void QRect::translate(const QPoint &p)
+Q_DECL_RELAXED_CONSTEXPR inline void QRect::translate(const QPoint &p)
{
x1 += p.x();
y1 += p.y();
@@ -278,7 +278,7 @@ Q_DECL_CONSTEXPR inline QRect QRect::translated(int dx, int dy) const
Q_DECL_CONSTEXPR inline QRect QRect::translated(const QPoint &p) const
{ return QRect(QPoint(x1 + p.x(), y1 + p.y()), QPoint(x2 + p.x(), y2 + p.y())); }
-inline void QRect::moveTo(int ax, int ay)
+Q_DECL_RELAXED_CONSTEXPR inline void QRect::moveTo(int ax, int ay)
{
x2 += ax - x1;
y2 += ay - y1;
@@ -286,7 +286,7 @@ inline void QRect::moveTo(int ax, int ay)
y1 = ay;
}
-inline void QRect::moveTo(const QPoint &p)
+Q_DECL_RELAXED_CONSTEXPR inline void QRect::moveTo(const QPoint &p)
{
x2 += p.x() - x1;
y2 += p.y() - y1;
@@ -294,49 +294,49 @@ inline void QRect::moveTo(const QPoint &p)
y1 = p.y();
}
-inline void QRect::moveLeft(int pos)
+Q_DECL_RELAXED_CONSTEXPR inline void QRect::moveLeft(int pos)
{ x2 += (pos - x1); x1 = pos; }
-inline void QRect::moveTop(int pos)
+Q_DECL_RELAXED_CONSTEXPR inline void QRect::moveTop(int pos)
{ y2 += (pos - y1); y1 = pos; }
-inline void QRect::moveRight(int pos)
+Q_DECL_RELAXED_CONSTEXPR inline void QRect::moveRight(int pos)
{
x1 += (pos - x2);
x2 = pos;
}
-inline void QRect::moveBottom(int pos)
+Q_DECL_RELAXED_CONSTEXPR inline void QRect::moveBottom(int pos)
{
y1 += (pos - y2);
y2 = pos;
}
-inline void QRect::moveTopLeft(const QPoint &p)
+Q_DECL_RELAXED_CONSTEXPR inline void QRect::moveTopLeft(const QPoint &p)
{
moveLeft(p.x());
moveTop(p.y());
}
-inline void QRect::moveBottomRight(const QPoint &p)
+Q_DECL_RELAXED_CONSTEXPR inline void QRect::moveBottomRight(const QPoint &p)
{
moveRight(p.x());
moveBottom(p.y());
}
-inline void QRect::moveTopRight(const QPoint &p)
+Q_DECL_RELAXED_CONSTEXPR inline void QRect::moveTopRight(const QPoint &p)
{
moveRight(p.x());
moveTop(p.y());
}
-inline void QRect::moveBottomLeft(const QPoint &p)
+Q_DECL_RELAXED_CONSTEXPR inline void QRect::moveBottomLeft(const QPoint &p)
{
moveLeft(p.x());
moveBottom(p.y());
}
-inline void QRect::moveCenter(const QPoint &p)
+Q_DECL_RELAXED_CONSTEXPR inline void QRect::moveCenter(const QPoint &p)
{
int w = x2 - x1;
int h = y2 - y1;
@@ -346,7 +346,7 @@ inline void QRect::moveCenter(const QPoint &p)
y2 = y1 + h;
}
-inline void QRect::getRect(int *ax, int *ay, int *aw, int *ah) const
+Q_DECL_RELAXED_CONSTEXPR inline void QRect::getRect(int *ax, int *ay, int *aw, int *ah) const
{
*ax = x1;
*ay = y1;
@@ -354,7 +354,7 @@ inline void QRect::getRect(int *ax, int *ay, int *aw, int *ah) const
*ah = y2 - y1 + 1;
}
-inline void QRect::setRect(int ax, int ay, int aw, int ah)
+Q_DECL_RELAXED_CONSTEXPR inline void QRect::setRect(int ax, int ay, int aw, int ah)
{
x1 = ax;
y1 = ay;
@@ -362,7 +362,7 @@ inline void QRect::setRect(int ax, int ay, int aw, int ah)
y2 = (ay + ah - 1);
}
-inline void QRect::getCoords(int *xp1, int *yp1, int *xp2, int *yp2) const
+Q_DECL_RELAXED_CONSTEXPR inline void QRect::getCoords(int *xp1, int *yp1, int *xp2, int *yp2) const
{
*xp1 = x1;
*yp1 = y1;
@@ -370,7 +370,7 @@ inline void QRect::getCoords(int *xp1, int *yp1, int *xp2, int *yp2) const
*yp2 = y2;
}
-inline void QRect::setCoords(int xp1, int yp1, int xp2, int yp2)
+Q_DECL_RELAXED_CONSTEXPR inline void QRect::setCoords(int xp1, int yp1, int xp2, int yp2)
{
x1 = xp1;
y1 = yp1;
@@ -381,7 +381,7 @@ inline void QRect::setCoords(int xp1, int yp1, int xp2, int yp2)
Q_DECL_CONSTEXPR inline QRect QRect::adjusted(int xp1, int yp1, int xp2, int yp2) const
{ return QRect(QPoint(x1 + xp1, y1 + yp1), QPoint(x2 + xp2, y2 + yp2)); }
-inline void QRect::adjust(int dx1, int dy1, int dx2, int dy2)
+Q_DECL_RELAXED_CONSTEXPR inline void QRect::adjust(int dx1, int dy1, int dx2, int dy2)
{
x1 += dx1;
y1 += dy1;
@@ -389,13 +389,13 @@ inline void QRect::adjust(int dx1, int dy1, int dx2, int dy2)
y2 += dy2;
}
-inline void QRect::setWidth(int w)
+Q_DECL_RELAXED_CONSTEXPR inline void QRect::setWidth(int w)
{ x2 = (x1 + w - 1); }
-inline void QRect::setHeight(int h)
+Q_DECL_RELAXED_CONSTEXPR inline void QRect::setHeight(int h)
{ y2 = (y1 + h - 1); }
-inline void QRect::setSize(const QSize &s)
+Q_DECL_RELAXED_CONSTEXPR inline void QRect::setSize(const QSize &s)
{
x2 = (s.width() + x1 - 1);
y2 = (s.height() + y1 - 1);
@@ -473,13 +473,13 @@ Q_DECL_CONSTEXPR inline QRect QRect::marginsRemoved(const QMargins &margins) con
QPoint(x2 - margins.right(), y2 - margins.bottom()));
}
-inline QRect &QRect::operator+=(const QMargins &margins)
+Q_DECL_RELAXED_CONSTEXPR inline QRect &QRect::operator+=(const QMargins &margins)
{
*this = marginsAdded(margins);
return *this;
}
-inline QRect &QRect::operator-=(const QMargins &margins)
+Q_DECL_RELAXED_CONSTEXPR inline QRect &QRect::operator-=(const QMargins &margins)
{
*this = marginsRemoved(margins);
return *this;
@@ -511,12 +511,12 @@ public:
Q_DECL_CONSTEXPR inline qreal x() const;
Q_DECL_CONSTEXPR inline qreal y() const;
- inline void setLeft(qreal pos);
- inline void setTop(qreal pos);
- inline void setRight(qreal pos);
- inline void setBottom(qreal pos);
- inline void setX(qreal pos) { setLeft(pos); }
- inline void setY(qreal pos) { setTop(pos); }
+ Q_DECL_RELAXED_CONSTEXPR inline void setLeft(qreal pos);
+ Q_DECL_RELAXED_CONSTEXPR inline void setTop(qreal pos);
+ Q_DECL_RELAXED_CONSTEXPR inline void setRight(qreal pos);
+ Q_DECL_RELAXED_CONSTEXPR inline void setBottom(qreal pos);
+ Q_DECL_RELAXED_CONSTEXPR inline void setX(qreal pos) { setLeft(pos); }
+ Q_DECL_RELAXED_CONSTEXPR inline void setY(qreal pos) { setTop(pos); }
Q_DECL_CONSTEXPR inline QPointF topLeft() const { return QPointF(xp, yp); }
Q_DECL_CONSTEXPR inline QPointF bottomRight() const { return QPointF(xp+w, yp+h); }
@@ -524,45 +524,45 @@ public:
Q_DECL_CONSTEXPR inline QPointF bottomLeft() const { return QPointF(xp, yp+h); }
Q_DECL_CONSTEXPR inline QPointF center() const;
- inline void setTopLeft(const QPointF &p);
- inline void setBottomRight(const QPointF &p);
- inline void setTopRight(const QPointF &p);
- inline void setBottomLeft(const QPointF &p);
+ Q_DECL_RELAXED_CONSTEXPR inline void setTopLeft(const QPointF &p);
+ Q_DECL_RELAXED_CONSTEXPR inline void setBottomRight(const QPointF &p);
+ Q_DECL_RELAXED_CONSTEXPR inline void setTopRight(const QPointF &p);
+ Q_DECL_RELAXED_CONSTEXPR inline void setBottomLeft(const QPointF &p);
- inline void moveLeft(qreal pos);
- inline void moveTop(qreal pos);
- inline void moveRight(qreal pos);
- inline void moveBottom(qreal pos);
- inline void moveTopLeft(const QPointF &p);
- inline void moveBottomRight(const QPointF &p);
- inline void moveTopRight(const QPointF &p);
- inline void moveBottomLeft(const QPointF &p);
- inline void moveCenter(const QPointF &p);
+ Q_DECL_RELAXED_CONSTEXPR inline void moveLeft(qreal pos);
+ Q_DECL_RELAXED_CONSTEXPR inline void moveTop(qreal pos);
+ Q_DECL_RELAXED_CONSTEXPR inline void moveRight(qreal pos);
+ Q_DECL_RELAXED_CONSTEXPR inline void moveBottom(qreal pos);
+ Q_DECL_RELAXED_CONSTEXPR inline void moveTopLeft(const QPointF &p);
+ Q_DECL_RELAXED_CONSTEXPR inline void moveBottomRight(const QPointF &p);
+ Q_DECL_RELAXED_CONSTEXPR inline void moveTopRight(const QPointF &p);
+ Q_DECL_RELAXED_CONSTEXPR inline void moveBottomLeft(const QPointF &p);
+ Q_DECL_RELAXED_CONSTEXPR inline void moveCenter(const QPointF &p);
- inline void translate(qreal dx, qreal dy);
- inline void translate(const QPointF &p);
+ Q_DECL_RELAXED_CONSTEXPR inline void translate(qreal dx, qreal dy);
+ Q_DECL_RELAXED_CONSTEXPR inline void translate(const QPointF &p);
Q_DECL_CONSTEXPR inline QRectF translated(qreal dx, qreal dy) const Q_REQUIRED_RESULT;
Q_DECL_CONSTEXPR inline QRectF translated(const QPointF &p) const Q_REQUIRED_RESULT;
- inline void moveTo(qreal x, qreal y);
- inline void moveTo(const QPointF &p);
+ Q_DECL_RELAXED_CONSTEXPR inline void moveTo(qreal x, qreal y);
+ Q_DECL_RELAXED_CONSTEXPR inline void moveTo(const QPointF &p);
- inline void setRect(qreal x, qreal y, qreal w, qreal h);
- inline void getRect(qreal *x, qreal *y, qreal *w, qreal *h) const;
+ Q_DECL_RELAXED_CONSTEXPR inline void setRect(qreal x, qreal y, qreal w, qreal h);
+ Q_DECL_RELAXED_CONSTEXPR inline void getRect(qreal *x, qreal *y, qreal *w, qreal *h) const;
- inline void setCoords(qreal x1, qreal y1, qreal x2, qreal y2);
- inline void getCoords(qreal *x1, qreal *y1, qreal *x2, qreal *y2) const;
+ Q_DECL_RELAXED_CONSTEXPR inline void setCoords(qreal x1, qreal y1, qreal x2, qreal y2);
+ Q_DECL_RELAXED_CONSTEXPR inline void getCoords(qreal *x1, qreal *y1, qreal *x2, qreal *y2) const;
- inline void adjust(qreal x1, qreal y1, qreal x2, qreal y2);
+ Q_DECL_RELAXED_CONSTEXPR inline void adjust(qreal x1, qreal y1, qreal x2, qreal y2);
Q_DECL_CONSTEXPR inline QRectF adjusted(qreal x1, qreal y1, qreal x2, qreal y2) const Q_REQUIRED_RESULT;
Q_DECL_CONSTEXPR inline QSizeF size() const;
Q_DECL_CONSTEXPR inline qreal width() const;
Q_DECL_CONSTEXPR inline qreal height() const;
- inline void setWidth(qreal w);
- inline void setHeight(qreal h);
- inline void setSize(const QSizeF &s);
+ Q_DECL_RELAXED_CONSTEXPR inline void setWidth(qreal w);
+ Q_DECL_RELAXED_CONSTEXPR inline void setHeight(qreal h);
+ Q_DECL_RELAXED_CONSTEXPR inline void setSize(const QSizeF &s);
QRectF operator|(const QRectF &r) const;
QRectF operator&(const QRectF &r) const;
@@ -578,8 +578,8 @@ public:
Q_DECL_CONSTEXPR inline QRectF marginsAdded(const QMarginsF &margins) const;
Q_DECL_CONSTEXPR inline QRectF marginsRemoved(const QMarginsF &margins) const;
- inline QRectF &operator+=(const QMarginsF &margins);
- inline QRectF &operator-=(const QMarginsF &margins);
+ Q_DECL_RELAXED_CONSTEXPR inline QRectF &operator+=(const QMarginsF &margins);
+ Q_DECL_RELAXED_CONSTEXPR inline QRectF &operator-=(const QMarginsF &margins);
#if QT_DEPRECATED_SINCE(5, 0)
QT_DEPRECATED QRectF unite(const QRectF &r) const Q_REQUIRED_RESULT { return united(r); }
@@ -652,42 +652,42 @@ Q_DECL_CONSTEXPR inline qreal QRectF::x() const
Q_DECL_CONSTEXPR inline qreal QRectF::y() const
{ return yp; }
-inline void QRectF::setLeft(qreal pos) { qreal diff = pos - xp; xp += diff; w -= diff; }
+Q_DECL_RELAXED_CONSTEXPR inline void QRectF::setLeft(qreal pos) { qreal diff = pos - xp; xp += diff; w -= diff; }
-inline void QRectF::setRight(qreal pos) { w = pos - xp; }
+Q_DECL_RELAXED_CONSTEXPR inline void QRectF::setRight(qreal pos) { w = pos - xp; }
-inline void QRectF::setTop(qreal pos) { qreal diff = pos - yp; yp += diff; h -= diff; }
+Q_DECL_RELAXED_CONSTEXPR inline void QRectF::setTop(qreal pos) { qreal diff = pos - yp; yp += diff; h -= diff; }
-inline void QRectF::setBottom(qreal pos) { h = pos - yp; }
+Q_DECL_RELAXED_CONSTEXPR inline void QRectF::setBottom(qreal pos) { h = pos - yp; }
-inline void QRectF::setTopLeft(const QPointF &p) { setLeft(p.x()); setTop(p.y()); }
+Q_DECL_RELAXED_CONSTEXPR inline void QRectF::setTopLeft(const QPointF &p) { setLeft(p.x()); setTop(p.y()); }
-inline void QRectF::setTopRight(const QPointF &p) { setRight(p.x()); setTop(p.y()); }
+Q_DECL_RELAXED_CONSTEXPR inline void QRectF::setTopRight(const QPointF &p) { setRight(p.x()); setTop(p.y()); }
-inline void QRectF::setBottomLeft(const QPointF &p) { setLeft(p.x()); setBottom(p.y()); }
+Q_DECL_RELAXED_CONSTEXPR inline void QRectF::setBottomLeft(const QPointF &p) { setLeft(p.x()); setBottom(p.y()); }
-inline void QRectF::setBottomRight(const QPointF &p) { setRight(p.x()); setBottom(p.y()); }
+Q_DECL_RELAXED_CONSTEXPR inline void QRectF::setBottomRight(const QPointF &p) { setRight(p.x()); setBottom(p.y()); }
Q_DECL_CONSTEXPR inline QPointF QRectF::center() const
{ return QPointF(xp + w/2, yp + h/2); }
-inline void QRectF::moveLeft(qreal pos) { xp = pos; }
+Q_DECL_RELAXED_CONSTEXPR inline void QRectF::moveLeft(qreal pos) { xp = pos; }
-inline void QRectF::moveTop(qreal pos) { yp = pos; }
+Q_DECL_RELAXED_CONSTEXPR inline void QRectF::moveTop(qreal pos) { yp = pos; }
-inline void QRectF::moveRight(qreal pos) { xp = pos - w; }
+Q_DECL_RELAXED_CONSTEXPR inline void QRectF::moveRight(qreal pos) { xp = pos - w; }
-inline void QRectF::moveBottom(qreal pos) { yp = pos - h; }
+Q_DECL_RELAXED_CONSTEXPR inline void QRectF::moveBottom(qreal pos) { yp = pos - h; }
-inline void QRectF::moveTopLeft(const QPointF &p) { moveLeft(p.x()); moveTop(p.y()); }
+Q_DECL_RELAXED_CONSTEXPR inline void QRectF::moveTopLeft(const QPointF &p) { moveLeft(p.x()); moveTop(p.y()); }
-inline void QRectF::moveTopRight(const QPointF &p) { moveRight(p.x()); moveTop(p.y()); }
+Q_DECL_RELAXED_CONSTEXPR inline void QRectF::moveTopRight(const QPointF &p) { moveRight(p.x()); moveTop(p.y()); }
-inline void QRectF::moveBottomLeft(const QPointF &p) { moveLeft(p.x()); moveBottom(p.y()); }
+Q_DECL_RELAXED_CONSTEXPR inline void QRectF::moveBottomLeft(const QPointF &p) { moveLeft(p.x()); moveBottom(p.y()); }
-inline void QRectF::moveBottomRight(const QPointF &p) { moveRight(p.x()); moveBottom(p.y()); }
+Q_DECL_RELAXED_CONSTEXPR inline void QRectF::moveBottomRight(const QPointF &p) { moveRight(p.x()); moveBottom(p.y()); }
-inline void QRectF::moveCenter(const QPointF &p) { xp = p.x() - w/2; yp = p.y() - h/2; }
+Q_DECL_RELAXED_CONSTEXPR inline void QRectF::moveCenter(const QPointF &p) { xp = p.x() - w/2; yp = p.y() - h/2; }
Q_DECL_CONSTEXPR inline qreal QRectF::width() const
{ return w; }
@@ -698,25 +698,25 @@ Q_DECL_CONSTEXPR inline qreal QRectF::height() const
Q_DECL_CONSTEXPR inline QSizeF QRectF::size() const
{ return QSizeF(w, h); }
-inline void QRectF::translate(qreal dx, qreal dy)
+Q_DECL_RELAXED_CONSTEXPR inline void QRectF::translate(qreal dx, qreal dy)
{
xp += dx;
yp += dy;
}
-inline void QRectF::translate(const QPointF &p)
+Q_DECL_RELAXED_CONSTEXPR inline void QRectF::translate(const QPointF &p)
{
xp += p.x();
yp += p.y();
}
-inline void QRectF::moveTo(qreal ax, qreal ay)
+Q_DECL_RELAXED_CONSTEXPR inline void QRectF::moveTo(qreal ax, qreal ay)
{
xp = ax;
yp = ay;
}
-inline void QRectF::moveTo(const QPointF &p)
+Q_DECL_RELAXED_CONSTEXPR inline void QRectF::moveTo(const QPointF &p)
{
xp = p.x();
yp = p.y();
@@ -728,7 +728,7 @@ Q_DECL_CONSTEXPR inline QRectF QRectF::translated(qreal dx, qreal dy) const
Q_DECL_CONSTEXPR inline QRectF QRectF::translated(const QPointF &p) const
{ return QRectF(xp + p.x(), yp + p.y(), w, h); }
-inline void QRectF::getRect(qreal *ax, qreal *ay, qreal *aaw, qreal *aah) const
+Q_DECL_RELAXED_CONSTEXPR inline void QRectF::getRect(qreal *ax, qreal *ay, qreal *aaw, qreal *aah) const
{
*ax = this->xp;
*ay = this->yp;
@@ -736,7 +736,7 @@ inline void QRectF::getRect(qreal *ax, qreal *ay, qreal *aaw, qreal *aah) const
*aah = this->h;
}
-inline void QRectF::setRect(qreal ax, qreal ay, qreal aaw, qreal aah)
+Q_DECL_RELAXED_CONSTEXPR inline void QRectF::setRect(qreal ax, qreal ay, qreal aaw, qreal aah)
{
this->xp = ax;
this->yp = ay;
@@ -744,7 +744,7 @@ inline void QRectF::setRect(qreal ax, qreal ay, qreal aaw, qreal aah)
this->h = aah;
}
-inline void QRectF::getCoords(qreal *xp1, qreal *yp1, qreal *xp2, qreal *yp2) const
+Q_DECL_RELAXED_CONSTEXPR inline void QRectF::getCoords(qreal *xp1, qreal *yp1, qreal *xp2, qreal *yp2) const
{
*xp1 = xp;
*yp1 = yp;
@@ -752,7 +752,7 @@ inline void QRectF::getCoords(qreal *xp1, qreal *yp1, qreal *xp2, qreal *yp2) co
*yp2 = yp + h;
}
-inline void QRectF::setCoords(qreal xp1, qreal yp1, qreal xp2, qreal yp2)
+Q_DECL_RELAXED_CONSTEXPR inline void QRectF::setCoords(qreal xp1, qreal yp1, qreal xp2, qreal yp2)
{
xp = xp1;
yp = yp1;
@@ -760,19 +760,19 @@ inline void QRectF::setCoords(qreal xp1, qreal yp1, qreal xp2, qreal yp2)
h = yp2 - yp1;
}
-inline void QRectF::adjust(qreal xp1, qreal yp1, qreal xp2, qreal yp2)
+Q_DECL_RELAXED_CONSTEXPR inline void QRectF::adjust(qreal xp1, qreal yp1, qreal xp2, qreal yp2)
{ xp += xp1; yp += yp1; w += xp2 - xp1; h += yp2 - yp1; }
Q_DECL_CONSTEXPR inline QRectF QRectF::adjusted(qreal xp1, qreal yp1, qreal xp2, qreal yp2) const
{ return QRectF(xp + xp1, yp + yp1, w + xp2 - xp1, h + yp2 - yp1); }
-inline void QRectF::setWidth(qreal aw)
+Q_DECL_RELAXED_CONSTEXPR inline void QRectF::setWidth(qreal aw)
{ this->w = aw; }
-inline void QRectF::setHeight(qreal ah)
+Q_DECL_RELAXED_CONSTEXPR inline void QRectF::setHeight(qreal ah)
{ this->h = ah; }
-inline void QRectF::setSize(const QSizeF &s)
+Q_DECL_RELAXED_CONSTEXPR inline void QRectF::setSize(const QSizeF &s)
{
w = s.width();
h = s.height();
@@ -852,13 +852,13 @@ Q_DECL_CONSTEXPR inline QRectF QRectF::marginsRemoved(const QMarginsF &margins)
QSizeF(w - margins.left() - margins.right(), h - margins.top() - margins.bottom()));
}
-inline QRectF &QRectF::operator+=(const QMarginsF &margins)
+Q_DECL_RELAXED_CONSTEXPR inline QRectF &QRectF::operator+=(const QMarginsF &margins)
{
*this = marginsAdded(margins);
return *this;
}
-inline QRectF &QRectF::operator-=(const QMarginsF &margins)
+Q_DECL_RELAXED_CONSTEXPR inline QRectF &QRectF::operator-=(const QMarginsF &margins)
{
*this = marginsRemoved(margins);
return *this;
diff --git a/src/corelib/tools/qregularexpression.cpp b/src/corelib/tools/qregularexpression.cpp
index 33894927fe..228ee5b842 100644
--- a/src/corelib/tools/qregularexpression.cpp
+++ b/src/corelib/tools/qregularexpression.cpp
@@ -835,6 +835,8 @@ struct QRegularExpressionPrivate : QSharedData
};
QRegularExpressionMatchPrivate *doMatch(const QString &subject,
+ int subjectStartPos,
+ int subjectLength,
int offset,
QRegularExpression::MatchType matchType,
QRegularExpression::MatchOptions matchOptions,
@@ -872,6 +874,8 @@ struct QRegularExpressionMatchPrivate : QSharedData
{
QRegularExpressionMatchPrivate(const QRegularExpression &re,
const QString &subject,
+ int subjectStart,
+ int subjectLength,
QRegularExpression::MatchType matchType,
QRegularExpression::MatchOptions matchOptions,
int capturingCount = 0);
@@ -884,6 +888,9 @@ struct QRegularExpressionMatchPrivate : QSharedData
// for each captured substring
QVector<int> capturedOffsets;
+ const int subjectStart;
+ const int subjectLength;
+
const QRegularExpression::MatchType matchType;
const QRegularExpression::MatchOptions matchOptions;
@@ -1219,14 +1226,21 @@ static int pcre16SafeExec(const pcre16 *code, const pcre16_extra *extra,
/*!
\internal
- Performs a match of type \a matchType on the given \a subject string with
- options \a matchOptions and returns the QRegularExpressionMatchPrivate of
- the result. It also advances a match if a previous result is given as \a
+ Performs a match on the substring of the given \a subject string,
+ substring which starts from \a subjectStart and up to
+ (but not including) \a subjectStart + \a subjectLength. The match
+ will be of type \a matchType and using the options \a matchOptions;
+ the matching \a offset is relative the substring,
+ and if negative, it's taken as an offset from the end of the substring.
+
+ It also advances a match if a previous result is given as \a
previous. The \a subject string goes a Unicode validity check if
\a checkSubjectString is CheckSubjectString and the match options don't
include DontCheckSubjectStringMatchOption (PCRE doesn't like illegal
UTF-16 sequences).
+ Returns the QRegularExpressionMatchPrivate of the result.
+
Advancing a match is a tricky algorithm. If the previous match matched a
non-empty string, we just do an ordinary match at the offset position.
@@ -1239,6 +1253,8 @@ static int pcre16SafeExec(const pcre16 *code, const pcre16_extra *extra,
must advance over it.
*/
QRegularExpressionMatchPrivate *QRegularExpressionPrivate::doMatch(const QString &subject,
+ int subjectStart,
+ int subjectLength,
int offset,
QRegularExpression::MatchType matchType,
QRegularExpression::MatchOptions matchOptions,
@@ -1246,21 +1262,22 @@ QRegularExpressionMatchPrivate *QRegularExpressionPrivate::doMatch(const QString
const QRegularExpressionMatchPrivate *previous) const
{
if (offset < 0)
- offset += subject.length();
+ offset += subjectLength;
QRegularExpression re(*const_cast<QRegularExpressionPrivate *>(this));
- if (offset < 0 || offset > subject.length())
- return new QRegularExpressionMatchPrivate(re, subject, matchType, matchOptions);
+ if (offset < 0 || offset > subjectLength)
+ return new QRegularExpressionMatchPrivate(re, subject, subjectStart, subjectLength, matchType, matchOptions);
if (!compiledPattern) {
qWarning("QRegularExpressionPrivate::doMatch(): called on an invalid QRegularExpression object");
- return new QRegularExpressionMatchPrivate(re, subject, matchType, matchOptions);
+ return new QRegularExpressionMatchPrivate(re, subject, subjectStart, subjectLength, matchType, matchOptions);
}
// skip optimizing and doing the actual matching if NoMatch type was requested
if (matchType == QRegularExpression::NoMatch) {
QRegularExpressionMatchPrivate *priv = new QRegularExpressionMatchPrivate(re, subject,
+ subjectStart, subjectLength,
matchType, matchOptions);
priv->isValid = true;
return priv;
@@ -1268,6 +1285,7 @@ QRegularExpressionMatchPrivate *QRegularExpressionPrivate::doMatch(const QString
// capturingCount doesn't include the implicit "0" capturing group
QRegularExpressionMatchPrivate *priv = new QRegularExpressionMatchPrivate(re, subject,
+ subjectStart, subjectLength,
matchType, matchOptions,
capturingCount + 1);
@@ -1307,45 +1325,49 @@ QRegularExpressionMatchPrivate *QRegularExpressionPrivate::doMatch(const QString
int * const captureOffsets = priv->capturedOffsets.data();
const int captureOffsetsCount = priv->capturedOffsets.size();
+ int realOffset = offset + subjectStart;
+ const int realSubjectLength = subjectLength + subjectStart;
+
const unsigned short * const subjectUtf16 = subject.utf16();
- const int subjectLength = subject.length();
int result;
if (!previousMatchWasEmpty) {
result = pcre16SafeExec(compiledPattern, currentStudyData,
- subjectUtf16, subjectLength,
- offset, pcreOptions,
+ subjectUtf16, realSubjectLength,
+ realOffset, pcreOptions,
captureOffsets, captureOffsetsCount);
} else {
result = pcre16SafeExec(compiledPattern, currentStudyData,
- subjectUtf16, subjectLength,
- offset, pcreOptions | PCRE_NOTEMPTY_ATSTART | PCRE_ANCHORED,
+ subjectUtf16, realSubjectLength,
+ realOffset, pcreOptions | PCRE_NOTEMPTY_ATSTART | PCRE_ANCHORED,
captureOffsets, captureOffsetsCount);
if (result == PCRE_ERROR_NOMATCH) {
- ++offset;
+ ++realOffset;
if (usingCrLfNewlines
- && offset < subjectLength
- && subjectUtf16[offset - 1] == QLatin1Char('\r')
- && subjectUtf16[offset] == QLatin1Char('\n')) {
- ++offset;
- } else if (offset < subjectLength
- && QChar::isLowSurrogate(subjectUtf16[offset])) {
- ++offset;
+ && realOffset < realSubjectLength
+ && subjectUtf16[realOffset - 1] == QLatin1Char('\r')
+ && subjectUtf16[realOffset] == QLatin1Char('\n')) {
+ ++realOffset;
+ } else if (realOffset < realSubjectLength
+ && QChar::isLowSurrogate(subjectUtf16[realOffset])) {
+ ++realOffset;
}
result = pcre16SafeExec(compiledPattern, currentStudyData,
- subjectUtf16, subjectLength,
- offset, pcreOptions,
+ subjectUtf16, realSubjectLength,
+ realOffset, pcreOptions,
captureOffsets, captureOffsetsCount);
}
}
#ifdef QREGULAREXPRESSION_DEBUG
qDebug() << "Matching" << pattern << "against" << subject
- << offset << matchType << matchOptions << previousMatchWasEmpty
+ << "starting at" << subjectStart << "len" << subjectLength << "real len" << realSubjectLength
+ << "offset" << offset << "real offset" << realOffset
+ << matchType << matchOptions << previousMatchWasEmpty
<< "result" << result;
#endif
@@ -1383,10 +1405,13 @@ QRegularExpressionMatchPrivate *QRegularExpressionPrivate::doMatch(const QString
*/
QRegularExpressionMatchPrivate::QRegularExpressionMatchPrivate(const QRegularExpression &re,
const QString &subject,
+ int subjectStart,
+ int subjectLength,
QRegularExpression::MatchType matchType,
QRegularExpression::MatchOptions matchOptions,
int capturingCount)
: regularExpression(re), subject(subject),
+ subjectStart(subjectStart), subjectLength(subjectLength),
matchType(matchType), matchOptions(matchOptions),
capturedCount(0),
hasMatch(false), hasPartialMatch(false), isValid(false)
@@ -1412,6 +1437,8 @@ QRegularExpressionMatch QRegularExpressionMatchPrivate::nextMatch() const
// then that subject was already checked at least once (when this object
// was created, or when the object that created this one was created, etc.)
QRegularExpressionMatchPrivate *nextPrivate = regularExpression.d->doMatch(subject,
+ subjectStart,
+ subjectLength,
capturedOffsets.at(1),
matchType,
matchOptions,
@@ -1684,7 +1711,33 @@ QRegularExpressionMatch QRegularExpression::match(const QString &subject,
{
d.data()->compilePattern();
- QRegularExpressionMatchPrivate *priv = d->doMatch(subject, offset, matchType, matchOptions);
+ QRegularExpressionMatchPrivate *priv = d->doMatch(subject, 0, subject.length(), offset, matchType, matchOptions);
+ return QRegularExpressionMatch(*priv);
+}
+
+/*!
+ \since 5.5
+ \overload
+
+ Attempts to match the regular expression against the given \a subjectRef
+ string reference, starting at the position \a offset inside the subject, using a
+ match of type \a matchType and honoring the given \a matchOptions.
+
+ The returned QRegularExpressionMatch object contains the results of the
+ match.
+
+ \sa QRegularExpressionMatch, {normal matching}
+*/
+QRegularExpressionMatch QRegularExpression::match(const QStringRef &subjectRef,
+ int offset,
+ MatchType matchType,
+ MatchOptions matchOptions) const
+{
+ d.data()->compilePattern();
+
+ const QString subject = subjectRef.string() ? *subjectRef.string() : QString();
+
+ QRegularExpressionMatchPrivate *priv = d->doMatch(subject, subjectRef.position(), subjectRef.length(), offset, matchType, matchOptions);
return QRegularExpressionMatch(*priv);
}
@@ -1714,6 +1767,34 @@ QRegularExpressionMatchIterator QRegularExpression::globalMatch(const QString &s
}
/*!
+ \since 5.5
+ \overload
+
+ Attempts to perform a global match of the regular expression against the
+ given \a subjectRef string reference, starting at the position \a offset inside the
+ subject, using a match of type \a matchType and honoring the given \a
+ matchOptions.
+
+ The returned QRegularExpressionMatchIterator is positioned before the
+ first match result (if any).
+
+ \sa QRegularExpressionMatchIterator, {global matching}
+*/
+QRegularExpressionMatchIterator QRegularExpression::globalMatch(const QStringRef &subjectRef,
+ int offset,
+ MatchType matchType,
+ MatchOptions matchOptions) const
+{
+ QRegularExpressionMatchIteratorPrivate *priv =
+ new QRegularExpressionMatchIteratorPrivate(*this,
+ matchType,
+ matchOptions,
+ match(subjectRef, offset, matchType, matchOptions));
+
+ return QRegularExpressionMatchIterator(*priv);
+}
+
+/*!
\since 5.4
Forces an immediate optimization of the pattern, including
@@ -1823,6 +1904,8 @@ QString QRegularExpression::escape(const QString &str)
QRegularExpressionMatch::QRegularExpressionMatch()
: d(new QRegularExpressionMatchPrivate(QRegularExpression(),
QString(),
+ 0,
+ 0,
QRegularExpression::NoMatch,
QRegularExpression::NoMatchOption))
{
diff --git a/src/corelib/tools/qregularexpression.h b/src/corelib/tools/qregularexpression.h
index 66538f22b3..f332227094 100644
--- a/src/corelib/tools/qregularexpression.h
+++ b/src/corelib/tools/qregularexpression.h
@@ -112,11 +112,21 @@ public:
MatchType matchType = NormalMatch,
MatchOptions matchOptions = NoMatchOption) const;
+ QRegularExpressionMatch match(const QStringRef &subjectRef,
+ int offset = 0,
+ MatchType matchType = NormalMatch,
+ MatchOptions matchOptions = NoMatchOption) const;
+
QRegularExpressionMatchIterator globalMatch(const QString &subject,
int offset = 0,
MatchType matchType = NormalMatch,
MatchOptions matchOptions = NoMatchOption) const;
+ QRegularExpressionMatchIterator globalMatch(const QStringRef &subjectRef,
+ int offset = 0,
+ MatchType matchType = NormalMatch,
+ MatchOptions matchOptions = NoMatchOption) const;
+
void optimize() const;
static QString escape(const QString &str);
diff --git a/src/corelib/tools/qringbuffer_p.h b/src/corelib/tools/qringbuffer_p.h
index 2279f1bc2a..58227d6755 100644
--- a/src/corelib/tools/qringbuffer_p.h
+++ b/src/corelib/tools/qringbuffer_p.h
@@ -91,11 +91,20 @@ public:
int blockSize = buffers.first().size() - head;
if (tailBuffer == 0 || blockSize > bytes) {
- bufferSize -= bytes;
- if (bufferSize <= 0)
- clear(); // try to minify/squeeze us
- else
+ // keep a single block around if it does not exceed
+ // the basic block size, to avoid repeated allocations
+ // between uses of the buffer
+ if (bufferSize <= bytes) {
+ if (buffers.first().size() <= basicBlockSize) {
+ bufferSize = 0;
+ head = tail = 0;
+ } else {
+ clear(); // try to minify/squeeze us
+ }
+ } else {
head += bytes;
+ bufferSize -= bytes;
+ }
return;
}
@@ -113,7 +122,7 @@ public:
// if need buffer reallocation
if (tail + bytes > buffers.last().size()) {
- if (tail >= basicBlockSize) {
+ if (tail + bytes > buffers.last().capacity() && tail >= basicBlockSize) {
// shrink this buffer to its current size
buffers.last().resize(tail);
@@ -139,11 +148,20 @@ public:
inline void chop(int bytes) {
while (bytes > 0) {
if (tailBuffer == 0 || tail > bytes) {
- bufferSize -= bytes;
- if (bufferSize <= 0)
- clear(); // try to minify/squeeze us
- else
+ // keep a single block around if it does not exceed
+ // the basic block size, to avoid repeated allocations
+ // between uses of the buffer
+ if (bufferSize <= bytes) {
+ if (buffers.first().size() <= basicBlockSize) {
+ bufferSize = 0;
+ head = tail = 0;
+ } else {
+ clear(); // try to minify/squeeze us
+ }
+ } else {
tail -= bytes;
+ bufferSize -= bytes;
+ }
return;
}
@@ -156,7 +174,7 @@ public:
}
inline bool isEmpty() const {
- return tailBuffer == 0 && tail == 0;
+ return bufferSize == 0;
}
inline int getChar() {
@@ -175,10 +193,14 @@ public:
inline void ungetChar(char c) {
--head;
if (head < 0) {
- buffers.prepend(QByteArray());
+ if (bufferSize != 0) {
+ buffers.prepend(QByteArray());
+ ++tailBuffer;
+ } else {
+ tail = basicBlockSize;
+ }
buffers.first().resize(basicBlockSize);
head = basicBlockSize - 1;
- ++tailBuffer;
}
buffers.first()[head] = c;
++bufferSize;
diff --git a/src/corelib/tools/qsize.h b/src/corelib/tools/qsize.h
index 6b5cf2dd7d..90222ba822 100644
--- a/src/corelib/tools/qsize.h
+++ b/src/corelib/tools/qsize.h
@@ -51,8 +51,8 @@ public:
Q_DECL_CONSTEXPR inline int width() const;
Q_DECL_CONSTEXPR inline int height() const;
- inline void setWidth(int w);
- inline void setHeight(int h);
+ Q_DECL_RELAXED_CONSTEXPR inline void setWidth(int w);
+ Q_DECL_RELAXED_CONSTEXPR inline void setHeight(int h);
void transpose();
Q_DECL_CONSTEXPR inline QSize transposed() const;
@@ -64,12 +64,12 @@ public:
Q_DECL_CONSTEXPR inline QSize expandedTo(const QSize &) const;
Q_DECL_CONSTEXPR inline QSize boundedTo(const QSize &) const;
- inline int &rwidth();
- inline int &rheight();
+ Q_DECL_RELAXED_CONSTEXPR inline int &rwidth();
+ Q_DECL_RELAXED_CONSTEXPR inline int &rheight();
- inline QSize &operator+=(const QSize &);
- inline QSize &operator-=(const QSize &);
- inline QSize &operator*=(qreal c);
+ Q_DECL_RELAXED_CONSTEXPR inline QSize &operator+=(const QSize &);
+ Q_DECL_RELAXED_CONSTEXPR inline QSize &operator-=(const QSize &);
+ Q_DECL_RELAXED_CONSTEXPR inline QSize &operator*=(qreal c);
inline QSize &operator/=(qreal c);
friend inline Q_DECL_CONSTEXPR bool operator==(const QSize &, const QSize &);
@@ -119,10 +119,10 @@ Q_DECL_CONSTEXPR inline int QSize::width() const
Q_DECL_CONSTEXPR inline int QSize::height() const
{ return ht; }
-inline void QSize::setWidth(int w)
+Q_DECL_RELAXED_CONSTEXPR inline void QSize::setWidth(int w)
{ wd = w; }
-inline void QSize::setHeight(int h)
+Q_DECL_RELAXED_CONSTEXPR inline void QSize::setHeight(int h)
{ ht = h; }
Q_DECL_CONSTEXPR inline QSize QSize::transposed() const
@@ -137,19 +137,19 @@ inline void QSize::scale(const QSize &s, Qt::AspectRatioMode mode)
inline QSize QSize::scaled(int w, int h, Qt::AspectRatioMode mode) const
{ return scaled(QSize(w, h), mode); }
-inline int &QSize::rwidth()
+Q_DECL_RELAXED_CONSTEXPR inline int &QSize::rwidth()
{ return wd; }
-inline int &QSize::rheight()
+Q_DECL_RELAXED_CONSTEXPR inline int &QSize::rheight()
{ return ht; }
-inline QSize &QSize::operator+=(const QSize &s)
+Q_DECL_RELAXED_CONSTEXPR inline QSize &QSize::operator+=(const QSize &s)
{ wd+=s.wd; ht+=s.ht; return *this; }
-inline QSize &QSize::operator-=(const QSize &s)
+Q_DECL_RELAXED_CONSTEXPR inline QSize &QSize::operator-=(const QSize &s)
{ wd-=s.wd; ht-=s.ht; return *this; }
-inline QSize &QSize::operator*=(qreal c)
+Q_DECL_RELAXED_CONSTEXPR inline QSize &QSize::operator*=(qreal c)
{ wd = qRound(wd*c); ht = qRound(ht*c); return *this; }
Q_DECL_CONSTEXPR inline bool operator==(const QSize &s1, const QSize &s2)
@@ -211,8 +211,8 @@ public:
Q_DECL_CONSTEXPR inline qreal width() const;
Q_DECL_CONSTEXPR inline qreal height() const;
- inline void setWidth(qreal w);
- inline void setHeight(qreal h);
+ Q_DECL_RELAXED_CONSTEXPR inline void setWidth(qreal w);
+ Q_DECL_RELAXED_CONSTEXPR inline void setHeight(qreal h);
void transpose();
Q_DECL_CONSTEXPR inline QSizeF transposed() const;
@@ -224,12 +224,12 @@ public:
Q_DECL_CONSTEXPR inline QSizeF expandedTo(const QSizeF &) const;
Q_DECL_CONSTEXPR inline QSizeF boundedTo(const QSizeF &) const;
- inline qreal &rwidth();
- inline qreal &rheight();
+ Q_DECL_RELAXED_CONSTEXPR inline qreal &rwidth();
+ Q_DECL_RELAXED_CONSTEXPR inline qreal &rheight();
- inline QSizeF &operator+=(const QSizeF &);
- inline QSizeF &operator-=(const QSizeF &);
- inline QSizeF &operator*=(qreal c);
+ Q_DECL_RELAXED_CONSTEXPR inline QSizeF &operator+=(const QSizeF &);
+ Q_DECL_RELAXED_CONSTEXPR inline QSizeF &operator-=(const QSizeF &);
+ Q_DECL_RELAXED_CONSTEXPR inline QSizeF &operator*=(qreal c);
inline QSizeF &operator/=(qreal c);
friend Q_DECL_CONSTEXPR inline bool operator==(const QSizeF &, const QSizeF &);
@@ -284,10 +284,10 @@ Q_DECL_CONSTEXPR inline qreal QSizeF::width() const
Q_DECL_CONSTEXPR inline qreal QSizeF::height() const
{ return ht; }
-inline void QSizeF::setWidth(qreal w)
+Q_DECL_RELAXED_CONSTEXPR inline void QSizeF::setWidth(qreal w)
{ wd = w; }
-inline void QSizeF::setHeight(qreal h)
+Q_DECL_RELAXED_CONSTEXPR inline void QSizeF::setHeight(qreal h)
{ ht = h; }
Q_DECL_CONSTEXPR inline QSizeF QSizeF::transposed() const
@@ -302,19 +302,19 @@ inline void QSizeF::scale(const QSizeF &s, Qt::AspectRatioMode mode)
inline QSizeF QSizeF::scaled(qreal w, qreal h, Qt::AspectRatioMode mode) const
{ return scaled(QSizeF(w, h), mode); }
-inline qreal &QSizeF::rwidth()
+Q_DECL_RELAXED_CONSTEXPR inline qreal &QSizeF::rwidth()
{ return wd; }
-inline qreal &QSizeF::rheight()
+Q_DECL_RELAXED_CONSTEXPR inline qreal &QSizeF::rheight()
{ return ht; }
-inline QSizeF &QSizeF::operator+=(const QSizeF &s)
+Q_DECL_RELAXED_CONSTEXPR inline QSizeF &QSizeF::operator+=(const QSizeF &s)
{ wd += s.wd; ht += s.ht; return *this; }
-inline QSizeF &QSizeF::operator-=(const QSizeF &s)
+Q_DECL_RELAXED_CONSTEXPR inline QSizeF &QSizeF::operator-=(const QSizeF &s)
{ wd -= s.wd; ht -= s.ht; return *this; }
-inline QSizeF &QSizeF::operator*=(qreal c)
+Q_DECL_RELAXED_CONSTEXPR inline QSizeF &QSizeF::operator*=(qreal c)
{ wd *= c; ht *= c; return *this; }
Q_DECL_CONSTEXPR inline bool operator==(const QSizeF &s1, const QSizeF &s2)
diff --git a/src/corelib/tools/qstring.cpp b/src/corelib/tools/qstring.cpp
index 9921d5cfbb..e830ed36e5 100644
--- a/src/corelib/tools/qstring.cpp
+++ b/src/corelib/tools/qstring.cpp
@@ -70,6 +70,7 @@
#include "qchar.cpp"
#include "qstringmatcher.cpp"
#include "qstringiterator_p.h"
+#include "qstringalgorithms_p.h"
#include "qthreadstorage.h"
#ifdef Q_OS_WIN
@@ -731,12 +732,30 @@ inline char qToLower(char ch)
const QString::Null QString::null = { };
/*!
+ \macro QT_RESTRICTED_CAST_FROM_ASCII
+ \relates QString
+
+ Defining this macro disables most automatic conversions from source
+ literals and 8-bit data to unicode QStrings, but allows the use of
+ the \c{QChar(char)} and \c{QString(const char (&ch)[N]} constructors,
+ and the \c{QString::operator=(const char (&ch)[N])} assignment operator
+ giving most of the type-safety benefits of QT_NO_CAST_FROM_ASCII
+ but does not require user code to wrap character and string literals
+ with QLatin1Char, QLatin1String or similar.
+
+ Using this macro together with source strings outside the 7-bit range,
+ non-literals, or literals with embedded NUL characters is undefined.
+
+ \sa QT_NO_CAST_FROM_ASCII, QT_NO_CAST_TO_ASCII
+*/
+
+/*!
\macro QT_NO_CAST_FROM_ASCII
\relates QString
Disables automatic conversions from 8-bit strings (char *) to unicode QStrings
- \sa QT_NO_CAST_TO_ASCII, QT_NO_CAST_FROM_BYTEARRAY
+ \sa QT_NO_CAST_TO_ASCII, QT_RESTRICTED_CAST_FROM_ASCII, QT_NO_CAST_FROM_BYTEARRAY
*/
/*!
@@ -745,7 +764,7 @@ const QString::Null QString::null = { };
disables automatic conversion from QString to 8-bit strings (char *)
- \sa QT_NO_CAST_FROM_ASCII, QT_NO_CAST_FROM_BYTEARRAY
+ \sa QT_NO_CAST_FROM_ASCII, QT_RESTRICTED_CAST_FROM_ASCII, QT_NO_CAST_FROM_BYTEARRAY
*/
/*!
@@ -759,7 +778,7 @@ const QString::Null QString::null = { };
Note: This only works for compilers that support warnings for
deprecated API.
- \sa QT_NO_CAST_TO_ASCII, QT_NO_CAST_FROM_ASCII
+ \sa QT_NO_CAST_TO_ASCII, QT_NO_CAST_FROM_ASCII, QT_RESTRICTED_CAST_FROM_ASCII
*/
/*!
@@ -993,6 +1012,9 @@ const QString::Null QString::null = { };
\list
\li \c QT_NO_CAST_FROM_ASCII disables automatic conversions from
C string literals and pointers to Unicode.
+ \li \c QT_RESTRICTED_CAST_FROM_ASCII allows automatic conversions
+ from C characters and character arrays, but disables automatic
+ conversions from character pointers to Unicode.
\li \c QT_NO_CAST_TO_ASCII disables automatic conversion from QString
to C strings.
\endlist
@@ -1310,6 +1332,12 @@ const QString::Null QString::null = { };
can be useful if you want to ensure that all user-visible strings
go through QObject::tr(), for example.
+ \note Defining QT_RESTRICTED_CAST_FROM_ASCII also disables
+ this constructor, but enables a \c{QString(const char (&ch)[N])}
+ constructor instead. Using non-literal input, or input with
+ embedded NUL characters, or non-7-bit characters is undefined
+ in this case.
+
\sa fromLatin1(), fromLocal8Bit(), fromUtf8()
*/
@@ -1656,8 +1684,11 @@ void QString::resize(int size)
void QString::reallocData(uint alloc, bool grow)
{
- if (grow)
+ if (grow) {
+ if (alloc > (uint(MaxAllocSize) - sizeof(Data)) / sizeof(QChar))
+ qBadAlloc();
alloc = qAllocMore(alloc * sizeof(QChar), sizeof(Data)) / sizeof(QChar);
+ }
if (d->ref.isShared() || IS_RAW_DATA(d)) {
Data::AllocationOptions allocOptions(d->capacityReserved ? Data::CapacityReserved : 0);
@@ -1748,10 +1779,11 @@ QString &QString::operator=(const QString &other)
Assigns \a str to this string. The const char pointer is converted
to Unicode using the fromUtf8() function.
- You can disable this operator by defining \c
- QT_NO_CAST_FROM_ASCII when you compile your applications. This
- can be useful if you want to ensure that all user-visible strings
+ You can disable this operator by defining \c QT_NO_CAST_FROM_ASCII
+ or \c QT_RESTRICTED_CAST_FROM_ASCII when you compile your applications.
+ This can be useful if you want to ensure that all user-visible strings
go through QObject::tr(), for example.
+
*/
/*! \fn QString &QString::operator=(char ch)
@@ -3664,14 +3696,39 @@ int QString::count(const QRegExp& rx) const
*/
int QString::indexOf(const QRegularExpression& re, int from) const
{
+ return indexOf(re, from, Q_NULLPTR);
+}
+
+/*!
+ \overload
+ \since 5.5
+
+ Returns the index position of the first match of the regular
+ expression \a re in the string, searching forward from index
+ position \a from. Returns -1 if \a re didn't match anywhere.
+
+ If the match is successful and \a rmatch is not a null pointer, it also
+ writes the results of the match into the QRegularExpressionMatch object
+ pointed to by \a rmatch.
+
+ Example:
+
+ \snippet qstring/main.cpp 97
+*/
+int QString::indexOf(const QRegularExpression &re, int from, QRegularExpressionMatch *rmatch) const
+{
if (!re.isValid()) {
qWarning("QString::indexOf: invalid QRegularExpression object");
return -1;
}
QRegularExpressionMatch match = re.match(*this, from);
- if (match.hasMatch())
- return match.capturedStart();
+ if (match.hasMatch()) {
+ const int ret = match.capturedStart();
+ if (rmatch)
+ *rmatch = qMove(match);
+ return ret;
+ }
return -1;
}
@@ -3690,22 +3747,45 @@ int QString::indexOf(const QRegularExpression& re, int from) const
*/
int QString::lastIndexOf(const QRegularExpression &re, int from) const
{
+ return lastIndexOf(re, from, Q_NULLPTR);
+}
+
+/*!
+ \overload
+ \since 5.5
+
+ Returns the index position of the last match of the regular
+ expression \a re in the string, which starts before the index
+ position \a from. Returns -1 if \a re didn't match anywhere.
+
+ If the match is successful and \a rmatch is not a null pointer, it also
+ writes the results of the match into the QRegularExpressionMatch object
+ pointed to by \a rmatch.
+
+ Example:
+
+ \snippet qstring/main.cpp 98
+*/
+int QString::lastIndexOf(const QRegularExpression &re, int from, QRegularExpressionMatch *rmatch) const
+{
if (!re.isValid()) {
qWarning("QString::lastIndexOf: invalid QRegularExpression object");
return -1;
}
int endpos = (from < 0) ? (size() + from + 1) : (from + 1);
-
QRegularExpressionMatchIterator iterator = re.globalMatch(*this);
int lastIndex = -1;
while (iterator.hasNext()) {
QRegularExpressionMatch match = iterator.next();
int start = match.capturedStart();
- if (start < endpos)
+ if (start < endpos) {
lastIndex = start;
- else
+ if (rmatch)
+ *rmatch = qMove(match);
+ } else {
break;
+ }
}
return lastIndex;
@@ -3719,12 +3799,7 @@ int QString::lastIndexOf(const QRegularExpression &re, int from) const
*/
bool QString::contains(const QRegularExpression &re) const
{
- if (!re.isValid()) {
- qWarning("QString::contains: invalid QRegularExpression object");
- return false;
- }
- QRegularExpressionMatch match = re.match(*this);
- return match.hasMatch();
+ return contains(re, Q_NULLPTR);
}
/*!
@@ -3744,13 +3819,13 @@ bool QString::contains(const QRegularExpression &re) const
bool QString::contains(const QRegularExpression &re, QRegularExpressionMatch *match) const
{
if (!re.isValid()) {
- qWarning("QString::contains: invalid QRegularExpresssion object");
+ qWarning("QString::contains: invalid QRegularExpression object");
return false;
}
QRegularExpressionMatch m = re.match(*this);
bool hasMatch = m.hasMatch();
if (hasMatch && match)
- *match = m;
+ *match = qMove(m);
return hasMatch;
}
@@ -3912,12 +3987,14 @@ QString QString::section(const QString &sep, int start, int end, SectionFlags fl
#if !(defined(QT_NO_REGEXP) && defined(QT_NO_REGULAREXPRESSION))
class qt_section_chunk {
public:
- qt_section_chunk(int l, QString s) { length = l; string = s; }
+ qt_section_chunk() {}
+ qt_section_chunk(int l, QString s) : length(l), string(qMove(s)) {}
int length;
QString string;
};
+Q_DECLARE_TYPEINFO(qt_section_chunk, Q_MOVABLE_TYPE);
-static QString extractSections(const QList<qt_section_chunk> &sections,
+static QString extractSections(const QVector<qt_section_chunk> &sections,
int start,
int end,
QString::SectionFlags flags)
@@ -4003,7 +4080,7 @@ QString QString::section(const QRegExp &reg, int start, int end, SectionFlags fl
sep.setCaseSensitivity((flags & SectionCaseInsensitiveSeps) ? Qt::CaseInsensitive
: Qt::CaseSensitive);
- QList<qt_section_chunk> sections;
+ QVector<qt_section_chunk> sections;
int n = length(), m = 0, last_m = 0, last_len = 0;
while ((m = sep.indexIn(*this, m)) != -1) {
sections.append(qt_section_chunk(last_len, QString(uc + last_m, m - last_m)));
@@ -4048,7 +4125,7 @@ QString QString::section(const QRegularExpression &re, int start, int end, Secti
if (flags & SectionCaseInsensitiveSeps)
sep.setPatternOptions(sep.patternOptions() | QRegularExpression::CaseInsensitiveOption);
- QList<qt_section_chunk> sections;
+ QVector<qt_section_chunk> sections;
int n = length(), m = 0, last_m = 0, last_len = 0;
QRegularExpressionMatchIterator iterator = sep.globalMatch(*this);
while (iterator.hasNext()) {
@@ -4626,6 +4703,8 @@ QString& QString::setUnicode(const QChar *unicode, int size)
*/
/*!
+ \fn QString QString::simplified() const
+
Returns a string that has whitespace removed from the start
and the end, and that has each sequence of internal whitespace
replaced with a single space.
@@ -4640,83 +4719,19 @@ QString& QString::setUnicode(const QChar *unicode, int size)
\sa trimmed()
*/
-QString QString::simplified() const
+QString QString::simplified_helper(const QString &str)
{
- if (d->size == 0)
- return *this;
-
- const QChar * const start = reinterpret_cast<QChar *>(d->data());
- const QChar *from = start;
- const QChar *fromEnd = start + d->size;
- forever {
- QChar ch = *from;
- if (!ch.isSpace())
- break;
- if (++from == fromEnd) {
- // All-whitespace string
- QStringDataPtr empty = { Data::allocate(0) };
- return QString(empty);
- }
- }
- // This loop needs no underflow check, as we already determined that
- // the string contains non-whitespace. If the string has exactly one
- // non-whitespace, it will be checked twice - we can live with that.
- while (fromEnd[-1].isSpace())
- fromEnd--;
- // The rest of the function depends on the fact that we already know
- // that the last character in the source is no whitespace.
- const QChar *copyFrom = from;
- int copyCount;
- forever {
- if (++from == fromEnd) {
- // Only leading and/or trailing whitespace, if any at all
- return mid(copyFrom - start, from - copyFrom);
- }
- QChar ch = *from;
- if (!ch.isSpace())
- continue;
- if (ch != QLatin1Char(' ')) {
- copyCount = from - copyFrom;
- break;
- }
- ch = *++from;
- if (ch.isSpace()) {
- copyCount = from - copyFrom - 1;
- break;
- }
- }
- // 'from' now points at the non-trailing whitespace which made the
- // string not simplified in the first place. 'copyCount' is the number
- // of already simplified characters - at least one, obviously -
- // without a trailing space.
- QString result((fromEnd - from) + copyCount, Qt::Uninitialized);
- QChar *to = reinterpret_cast<QChar *>(result.d->data());
- ::memcpy(to, copyFrom, copyCount * 2);
- to += copyCount;
- fromEnd--;
- QChar ch;
- forever {
- *to++ = QLatin1Char(' ');
- do {
- ch = *++from;
- } while (ch.isSpace());
- if (from == fromEnd)
- break;
- do {
- *to++ = ch;
- ch = *++from;
- if (from == fromEnd)
- goto done;
- } while (!ch.isSpace());
+ return QStringAlgorithms<const QString>::simplified_helper(str);
+}
- }
- done:
- *to++ = ch;
- result.truncate(to - reinterpret_cast<QChar *>(result.d->data()));
- return result;
+QString QString::simplified_helper(QString &str)
+{
+ return QStringAlgorithms<QString>::simplified_helper(str);
}
/*!
+ \fn QString QString::trimmed() const
+
Returns a string that has whitespace removed from the start and
the end.
@@ -4732,27 +4747,14 @@ QString QString::simplified() const
\sa simplified()
*/
-QString QString::trimmed() const
+QString QString::trimmed_helper(const QString &str)
{
- if (d->size == 0)
- return *this;
- const QChar *s = (const QChar*)d->data();
- if (!s->isSpace() && !s[d->size-1].isSpace())
- return *this;
- int start = 0;
- int end = d->size - 1;
- while (start<=end && s[start].isSpace()) // skip white space from start
- start++;
- if (start <= end) { // only white space
- while (end && s[end].isSpace()) // skip white space from end
- end--;
- }
- int l = end - start + 1;
- if (l <= 0) {
- QStringDataPtr empty = { Data::allocate(0) };
- return QString(empty);
- }
- return QString(s + start, l);
+ return QStringAlgorithms<const QString>::trimmed_helper(str);
+}
+
+QString QString::trimmed_helper(QString &str)
+{
+ return QStringAlgorithms<QString>::trimmed_helper(str);
}
/*! \fn const QChar QString::at(int position) const
@@ -5519,6 +5521,8 @@ QString QString::rightJustified(int width, QChar fill, bool truncate) const
}
/*!
+ \fn QString QString::toLower() const
+
Returns a lowercase copy of the string.
\snippet qstring/main.cpp 75
@@ -5529,132 +5533,118 @@ QString QString::rightJustified(int width, QChar fill, bool truncate) const
\sa toUpper(), QLocale::toLower()
*/
-QString QString::toLower() const
+namespace QUnicodeTables {
+struct LowercaseTraits
{
- const ushort *p = d->data();
- if (!p)
- return *this;
+ static signed short caseDiff(const Properties *prop)
+ { return prop->lowerCaseDiff; }
+ static bool caseSpecial(const Properties *prop)
+ { return prop->lowerCaseSpecial; }
+};
- const ushort *e = p + d->size;
- // this avoids out of bounds check in the loop
- while (e != p && QChar::isHighSurrogate(*(e - 1)))
- --e;
+struct UppercaseTraits
+{
+ static signed short caseDiff(const Properties *prop)
+ { return prop->upperCaseDiff; }
+ static bool caseSpecial(const Properties *prop)
+ { return prop->upperCaseSpecial; }
+};
- const QUnicodeTables::Properties *prop;
- while (p != e) {
- if (QChar::isHighSurrogate(*p) && QChar::isLowSurrogate(p[1])) {
- ushort high = *p++;
- prop = qGetProp(QChar::surrogateToUcs4(high, *p));
+struct CasefoldTraits
+{
+ static signed short caseDiff(const Properties *prop)
+ { return prop->caseFoldDiff; }
+ static bool caseSpecial(const Properties *prop)
+ { return prop->caseFoldSpecial; }
+};
+
+template <typename Traits, typename T>
+#ifdef Q_CC_MSVC
+__declspec(noinline)
+#elif defined(Q_CC_GNU)
+__attribute__((noinline))
+#endif
+static QString detachAndConvertCase(T &str, QStringIterator it)
+{
+ QString s = qMove(str); // will copy if T is const QString
+ QChar *pp = s.begin() + it.index(); // will detach if necessary
+ uint uc = it.nextUnchecked();
+ forever {
+ const QUnicodeTables::Properties *prop = qGetProp(uc);
+ signed short caseDiff = Traits::caseDiff(prop);
+
+ if (Q_UNLIKELY(Traits::caseSpecial(prop))) {
+ // slow path
+ const ushort *specialCase = specialCaseMap + caseDiff;
+ ushort length = *specialCase++;
+ int pos = pp - s.constBegin();
+ s.replace(pos, 1, reinterpret_cast<const QChar *>(specialCase), length);
+ pp = const_cast<QChar *>(s.constBegin()) + pos + length;
+ } else if (QChar::requiresSurrogates(uc)) {
+ *pp++ = QChar::highSurrogate(uc + caseDiff);
+ *pp++ = QChar::lowSurrogate(uc + caseDiff);
} else {
- prop = qGetProp(*p);
+ *pp++ = QChar(uc + caseDiff);
}
- if (prop->lowerCaseDiff) {
- if (QChar::isLowSurrogate(*p))
- --p; // safe; diff is 0 for surrogates
- QString s(d->size, Qt::Uninitialized);
- memcpy(s.d->data(), d->data(), (p - d->data())*sizeof(ushort));
- ushort *pp = s.d->data() + (p - d->data());
- while (p != e) {
- if (QChar::isHighSurrogate(*p) && QChar::isLowSurrogate(p[1])) {
- *pp = *p++;
- prop = qGetProp(QChar::surrogateToUcs4(*pp++, *p));
- } else {
- prop = qGetProp(*p);
- }
- if (prop->lowerCaseSpecial) {
- const ushort *specialCase = specialCaseMap + prop->lowerCaseDiff;
- ushort length = *specialCase++;
- int pos = pp - s.d->data();
- s.resize(s.d->size + length - 1);
- pp = s.d->data() + pos;
- while (length--)
- *pp++ = *specialCase++;
- } else {
- *pp++ = *p + prop->lowerCaseDiff;
- }
- ++p;
- }
-
- // this restores high surrogate parts eaten above, if any
- while (e != d->data() + d->size)
- *pp++ = *e++;
+ if (!it.hasNext())
return s;
- }
- ++p;
+
+ uc = it.nextUnchecked();
}
- return *this;
}
-/*!
- Returns the case folded equivalent of the string. For most Unicode
- characters this is the same as toLower().
-*/
-QString QString::toCaseFolded() const
+template <typename Traits, typename T>
+static QString convertCase(T &str)
{
- const ushort *p = d->data();
- if (!p)
- return *this;
+ const QChar *p = str.constBegin();
+ const QChar *e = p + str.size();
- const ushort *e = p + d->size;
// this avoids out of bounds check in the loop
- while (e != p && QChar::isHighSurrogate(*(e - 1)))
+ while (e != p && e[-1].isHighSurrogate())
--e;
const QUnicodeTables::Properties *prop;
- while (p != e) {
- if (QChar::isHighSurrogate(*p) && QChar::isLowSurrogate(p[1])) {
- ushort high = *p++;
- prop = qGetProp(QChar::surrogateToUcs4(high, *p));
- } else {
- prop = qGetProp(*p);
- }
- if (prop->caseFoldDiff) {
- if (QChar::isLowSurrogate(*p))
- --p; // safe; diff is 0 for surrogates
- QString s(d->size, Qt::Uninitialized);
- memcpy(s.d->data(), d->data(), (p - d->data())*sizeof(ushort));
- ushort *pp = s.d->data() + (p - d->data());
- while (p != e) {
- if (QChar::isHighSurrogate(*p) && QChar::isLowSurrogate(p[1])) {
- *pp = *p++;
- prop = qGetProp(QChar::surrogateToUcs4(*pp++, *p));
- } else {
- prop = qGetProp(*p);
- }
- if (prop->caseFoldSpecial) {
- const ushort *specialCase = specialCaseMap + prop->caseFoldDiff;
- ushort length = *specialCase++;
-#if 0
- int pos = pp - s.d->data;
- s.resize(s.d->size + length - 1);
- pp = s.d->data + pos;
- while (length--)
- *pp++ = *specialCase++;
-#else
- //### we currently don't support full case foldings
- Q_ASSERT(length == 1);
- Q_UNUSED(length)
- *pp++ = *specialCase;
-#endif
- } else {
- *pp++ = *p + prop->caseFoldDiff;
- }
- ++p;
- }
+ QStringIterator it(p, e);
+ for ( ; it.hasNext(); it.advanceUnchecked()) {
+ prop = qGetProp(it.peekNextUnchecked());
+ if (Traits::caseDiff(prop))
+ return detachAndConvertCase<Traits>(str, it);
+ }
+ return qMove(str);
+}
+} // namespace QUnicodeTables
- // this restores high surrogate parts eaten above, if any
- while (e != d->data() + d->size)
- *pp++ = *e++;
+QString QString::toLower_helper(const QString &str)
+{
+ return QUnicodeTables::convertCase<QUnicodeTables::LowercaseTraits>(str);
+}
- return s;
- }
- ++p;
- }
- return *this;
+QString QString::toLower_helper(QString &str)
+{
+ return QUnicodeTables::convertCase<QUnicodeTables::LowercaseTraits>(str);
}
/*!
+ \fn QString QString::toCaseFolded() const
+
+ Returns the case folded equivalent of the string. For most Unicode
+ characters this is the same as toLower().
+*/
+
+QString QString::toCaseFolded_helper(const QString &str)
+{
+ return QUnicodeTables::convertCase<QUnicodeTables::CasefoldTraits>(str);
+}
+
+QString QString::toCaseFolded_helper(QString &str)
+{
+ return QUnicodeTables::convertCase<QUnicodeTables::CasefoldTraits>(str);
+}
+
+/*!
+ \fn QString QString::toUpper() const
+
Returns an uppercase copy of the string.
\snippet qstring/main.cpp 81
@@ -5664,63 +5654,18 @@ QString QString::toCaseFolded() const
\sa toLower(), QLocale::toLower()
*/
-QString QString::toUpper() const
-{
- const ushort *p = d->data();
- if (!p)
- return *this;
- const ushort *e = p + d->size;
- // this avoids out of bounds check in the loop
- while (e != p && QChar::isHighSurrogate(*(e - 1)))
- --e;
-
- const QUnicodeTables::Properties *prop;
- while (p != e) {
- if (QChar::isHighSurrogate(*p) && QChar::isLowSurrogate(p[1])) {
- ushort high = *p++;
- prop = qGetProp(QChar::surrogateToUcs4(high, *p));
- } else {
- prop = qGetProp(*p);
- }
- if (prop->upperCaseDiff) {
- if (QChar::isLowSurrogate(*p))
- --p; // safe; diff is 0 for surrogates
- QString s(d->size, Qt::Uninitialized);
- memcpy(s.d->data(), d->data(), (p - d->data())*sizeof(ushort));
- ushort *pp = s.d->data() + (p - d->data());
- while (p != e) {
- if (QChar::isHighSurrogate(*p) && QChar::isLowSurrogate(p[1])) {
- *pp = *p++;
- prop = qGetProp(QChar::surrogateToUcs4(*pp++, *p));
- } else {
- prop = qGetProp(*p);
- }
- if (prop->upperCaseSpecial) {
- const ushort *specialCase = specialCaseMap + prop->upperCaseDiff;
- ushort length = *specialCase++;
- int pos = pp - s.d->data();
- s.resize(s.d->size + length - 1);
- pp = s.d->data() + pos;
- while (length--)
- *pp++ = *specialCase++;
- } else {
- *pp++ = *p + prop->upperCaseDiff;
- }
- ++p;
- }
-
- // this restores high surrogate parts eaten above, if any
- while (e != d->data() + d->size)
- *pp++ = *e++;
+QString QString::toUpper_helper(const QString &str)
+{
+ return QUnicodeTables::convertCase<QUnicodeTables::UppercaseTraits>(str);
+}
- return s;
- }
- ++p;
- }
- return *this;
+QString QString::toUpper_helper(QString &str)
+{
+ return QUnicodeTables::convertCase<QUnicodeTables::UppercaseTraits>(str);
}
+
// ### Qt 6: Consider whether this function shouldn't be removed See task 202871.
/*!
Safely builds a formatted string from the format string \a cformat
@@ -9843,20 +9788,15 @@ QVector<uint> QStringRef::toUcs4() const
*/
QStringRef QStringRef::trimmed() const
{
- if (m_size == 0 || m_string == 0)
+ const QChar *begin = cbegin();
+ const QChar *end = cend();
+ QStringAlgorithms<const QStringRef>::trimmed_helper_positions(begin, end);
+ if (begin == cbegin() && end == cend())
return *this;
- const QChar *s = m_string->constData() + m_position;
- int start = 0;
- int end = m_size - 1;
- while (start <= end && s[start].isSpace()) // skip white space from start
- start++;
- if (start <= end) { // only white space
- while (end && s[end].isSpace()) // skip white space from end
- end--;
- }
- int l = end - start + 1;
- Q_ASSERT(l >= 0);
- return QStringRef(m_string, m_position + start, l);
+ if (begin == end)
+ return QStringRef();
+ int position = m_position + (begin - cbegin());
+ return QStringRef(m_string, position, end - begin);
}
/*!
diff --git a/src/corelib/tools/qstring.h b/src/corelib/tools/qstring.h
index a12946e23c..4d51521b12 100644
--- a/src/corelib/tools/qstring.h
+++ b/src/corelib/tools/qstring.h
@@ -34,6 +34,10 @@
#ifndef QSTRING_H
#define QSTRING_H
+#if defined(QT_NO_CAST_FROM_ASCII) && defined(QT_RESTRICTED_CAST_FROM_ASCII)
+#error QT_NO_CAST_FROM_ASCII and QT_RESTRICTED_CAST_FROM_ASCII must not be defined at the same time
+#endif
+
#include <QtCore/qchar.h>
#include <QtCore/qbytearray.h>
#include <QtCore/qrefcount.h>
@@ -93,7 +97,7 @@ public:
inline bool operator>=(const QString &s) const;
inline bool operator<=(const QString &s) const;
-#ifndef QT_NO_CAST_FROM_ASCII
+#if !defined(QT_NO_CAST_FROM_ASCII) && !defined(QT_RESTRICTED_CAST_FROM_ASCII)
inline QT_ASCII_CAST_WARN bool operator==(const char *s) const;
inline QT_ASCII_CAST_WARN bool operator!=(const char *s) const;
inline QT_ASCII_CAST_WARN bool operator<(const char *s) const;
@@ -107,7 +111,7 @@ public:
inline QT_ASCII_CAST_WARN bool operator>(const QByteArray &s) const;
inline QT_ASCII_CAST_WARN bool operator<=(const QByteArray &s) const;
inline QT_ASCII_CAST_WARN bool operator>=(const QByteArray &s) const;
-#endif // QT_NO_CAST_FROM_ASCII
+#endif // !defined(QT_NO_CAST_FROM_ASCII) && !defined(QT_RESTRICTED_CAST_FROM_ASCII)
private:
int m_size;
@@ -327,7 +331,9 @@ public:
#ifndef QT_NO_REGULAREXPRESSION
int indexOf(const QRegularExpression &re, int from = 0) const;
+ int indexOf(const QRegularExpression &re, int from, QRegularExpressionMatch *rmatch) const; // ### Qt 6: merge overloads
int lastIndexOf(const QRegularExpression &re, int from = -1) const;
+ int lastIndexOf(const QRegularExpression &re, int from, QRegularExpressionMatch *rmatch) const; // ### Qt 6: merge overloads
bool contains(const QRegularExpression &re) const;
bool contains(const QRegularExpression &re, QRegularExpressionMatch *match) const; // ### Qt 6: merge overloads
int count(const QRegularExpression &re) const;
@@ -369,12 +375,44 @@ public:
QString leftJustified(int width, QChar fill = QLatin1Char(' '), bool trunc = false) const Q_REQUIRED_RESULT;
QString rightJustified(int width, QChar fill = QLatin1Char(' '), bool trunc = false) const Q_REQUIRED_RESULT;
+#if defined(Q_COMPILER_REF_QUALIFIERS) && !defined(QT_COMPILING_QSTRING_COMPAT_CPP)
+# if defined(Q_CC_GNU)
+ // required due to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61941
+# pragma push_macro("Q_REQUIRED_RESULT")
+# undef Q_REQUIRED_RESULT
+# define Q_REQUIRED_RESULT
+# define Q_REQUIRED_RESULT_pushed
+# endif
+ QString toLower() const & Q_REQUIRED_RESULT
+ { return toLower_helper(*this); }
+ QString toLower() && Q_REQUIRED_RESULT
+ { return toLower_helper(*this); }
+ QString toUpper() const & Q_REQUIRED_RESULT
+ { return toUpper_helper(*this); }
+ QString toUpper() && Q_REQUIRED_RESULT
+ { return toUpper_helper(*this); }
+ QString toCaseFolded() const & Q_REQUIRED_RESULT
+ { return toCaseFolded_helper(*this); }
+ QString toCaseFolded() && Q_REQUIRED_RESULT
+ { return toCaseFolded_helper(*this); }
+ QString trimmed() const & Q_REQUIRED_RESULT
+ { return trimmed_helper(*this); }
+ QString trimmed() && Q_REQUIRED_RESULT
+ { return trimmed_helper(*this); }
+ QString simplified() const & Q_REQUIRED_RESULT
+ { return simplified_helper(*this); }
+ QString simplified() && Q_REQUIRED_RESULT
+ { return simplified_helper(*this); }
+# ifdef Q_REQUIRED_RESULT_pushed
+# pragma pop_macro("Q_REQUIRED_RESULT")
+# endif
+#else
QString toLower() const Q_REQUIRED_RESULT;
QString toUpper() const Q_REQUIRED_RESULT;
QString toCaseFolded() const Q_REQUIRED_RESULT;
-
QString trimmed() const Q_REQUIRED_RESULT;
QString simplified() const Q_REQUIRED_RESULT;
+#endif
QString toHtmlEscaped() const Q_REQUIRED_RESULT;
QString &insert(int i, QChar c);
@@ -596,7 +634,16 @@ public:
inline bool operator>=(QLatin1String s) const { return !operator<(s); }
// ASCII compatibility
-#ifndef QT_NO_CAST_FROM_ASCII
+#if defined(QT_RESTRICTED_CAST_FROM_ASCII)
+ template <int N>
+ inline QString(const char (&ch)[N])
+ : d(fromAscii_helper(ch, N - 1))
+ {}
+ template <int N>
+ inline QString &operator=(const char (&ch)[N])
+ { return (*this = fromLatin1(ch, N - 1)); }
+#endif
+#if !defined(QT_NO_CAST_FROM_ASCII) && !defined(QT_RESTRICTED_CAST_FROM_ASCII)
inline QT_ASCII_CAST_WARN QString(const char *ch)
: d(fromAscii_helper(ch, ch ? int(strlen(ch)) : -1))
{}
@@ -734,6 +781,16 @@ private:
Qt::CaseSensitivity cs = Qt::CaseSensitive);
static int localeAwareCompare_helper(const QChar *data1, int length1,
const QChar *data2, int length2);
+ static QString toLower_helper(const QString &str);
+ static QString toLower_helper(QString &str);
+ static QString toUpper_helper(const QString &str);
+ static QString toUpper_helper(QString &str);
+ static QString toCaseFolded_helper(const QString &str);
+ static QString toCaseFolded_helper(QString &str);
+ static QString trimmed_helper(const QString &str);
+ static QString trimmed_helper(QString &str);
+ static QString simplified_helper(const QString &str);
+ static QString simplified_helper(QString &str);
static Data *fromLatin1_helper(const char *str, int size = -1);
static Data *fromAscii_helper(const char *str, int size = -1);
static QString fromUtf8_helper(const char *str, int size);
@@ -867,11 +924,8 @@ inline QString QString::arg(const QString &a1, const QString &a2, const QString
inline QString QString::section(QChar asep, int astart, int aend, SectionFlags aflags) const
{ return section(QString(asep), astart, aend, aflags); }
-#ifdef Q_CC_MSVC
-// "conditional expression is constant"
-#pragma warning(push)
-#pragma warning(disable : 4127)
-#endif
+QT_WARNING_PUSH
+QT_WARNING_DISABLE_MSVC(4127) // "conditional expression is constant"
inline int QString::toWCharArray(wchar_t *array) const
{
@@ -882,9 +936,7 @@ inline int QString::toWCharArray(wchar_t *array) const
return toUcs4_helper(d->data(), size(), reinterpret_cast<uint *>(array));
}
-#ifdef Q_CC_MSVC
-#pragma warning(pop)
-#endif
+QT_WARNING_POP
inline QString QString::fromWCharArray(const wchar_t *string, int size)
{
@@ -1083,7 +1135,7 @@ inline bool QLatin1String::operator>=(const QString &s) const
inline bool QLatin1String::operator<=(const QString &s) const
{ return s >= *this; }
-#ifndef QT_NO_CAST_FROM_ASCII
+#if !defined(QT_NO_CAST_FROM_ASCII) && !defined(QT_RESTRICTED_CAST_FROM_ASCII)
inline bool QString::operator==(const char *s) const
{ return QString::compare_helper(constData(), size(), s, -1) == 0; }
inline bool QString::operator!=(const char *s) const
@@ -1174,7 +1226,7 @@ inline bool QByteArray::operator<=(const QString &s) const
{ return QString::compare_helper(s.constData(), s.size(), constData(), qstrnlen(constData(), size())) <= 0; }
inline bool QByteArray::operator>=(const QString &s) const
{ return QString::compare_helper(s.constData(), s.size(), constData(), qstrnlen(constData(), size())) >= 0; }
-#endif // QT_NO_CAST_FROM_ASCII
+#endif // !defined(QT_NO_CAST_FROM_ASCII) && !defined(QT_RESTRICTED_CAST_FROM_ASCII)
#ifndef QT_NO_CAST_TO_ASCII
inline QByteArray &QByteArray::append(const QString &s)
@@ -1202,7 +1254,7 @@ inline const QString operator+(const QString &s1, QChar s2)
{ QString t(s1); t += s2; return t; }
inline const QString operator+(QChar s1, const QString &s2)
{ QString t(s1); t += s2; return t; }
-# ifndef QT_NO_CAST_FROM_ASCII
+# if !defined(QT_NO_CAST_FROM_ASCII) && !defined(QT_RESTRICTED_CAST_FROM_ASCII)
inline QT_ASCII_CAST_WARN const QString operator+(const QString &s1, const char *s2)
{ QString t(s1); t += QString::fromUtf8(s2); return t; }
inline QT_ASCII_CAST_WARN const QString operator+(const char *s1, const QString &s2)
@@ -1355,7 +1407,7 @@ public:
inline const QChar at(int i) const
{ Q_ASSERT(uint(i) < uint(size())); return m_string->at(i + m_position); }
-#ifndef QT_NO_CAST_FROM_ASCII
+#if !defined(QT_NO_CAST_FROM_ASCII) && !defined(QT_RESTRICTED_CAST_FROM_ASCII)
// ASCII compatibility
inline QT_ASCII_CAST_WARN bool operator==(const char *s) const;
inline QT_ASCII_CAST_WARN bool operator!=(const char *s) const;
@@ -1429,7 +1481,7 @@ inline bool operator<=(const QStringRef &s1, const QStringRef &s2)
inline bool operator>=(const QStringRef &s1, const QStringRef &s2)
{ return !(s1 < s2); }
-#ifndef QT_NO_CAST_FROM_ASCII
+#if !defined(QT_NO_CAST_FROM_ASCII) && !defined(QT_RESTRICTED_CAST_FROM_ASCII)
inline QT_ASCII_CAST_WARN bool QStringRef::operator==(const char *s) const
{ return QString::compare_helper(constData(), size(), s, -1) == 0; }
inline QT_ASCII_CAST_WARN bool QStringRef::operator!=(const char *s) const
@@ -1455,7 +1507,7 @@ inline QT_ASCII_CAST_WARN bool operator>(const char *s1, const QStringRef &s2)
{ return QString::compare_helper(s2.constData(), s2.size(), s1, -1) <= 0; }
inline QT_ASCII_CAST_WARN bool operator>=(const char *s1, const QStringRef &s2)
{ return QString::compare_helper(s2.constData(), s2.size(), s1, -1) >= 0; }
-#endif // QT_NO_CAST_FROM_ASCII
+#endif // !defined(QT_NO_CAST_FROM_ASCII) && !defined(QT_RESTRICTED_CAST_FROM_ASCII)
inline int QString::compare(const QStringRef &s, Qt::CaseSensitivity cs) const
{ return QString::compare_helper(constData(), length(), s.constData(), s.length(), cs); }
diff --git a/src/corelib/tools/qstring_compat.cpp b/src/corelib/tools/qstring_compat.cpp
index c776092569..d4f21e483a 100644
--- a/src/corelib/tools/qstring_compat.cpp
+++ b/src/corelib/tools/qstring_compat.cpp
@@ -31,16 +31,42 @@
**
****************************************************************************/
-#if defined(QSTRING_H)
+#if defined(QSTRING_H) || defined(QBYTEARRAY_H)
# error "This file cannot be compiled with pre-compiled headers"
#endif
#define QT_COMPILING_QSTRING_COMPAT_CPP
+#include "qbytearray.h"
#include "qstring.h"
QT_BEGIN_NAMESPACE
// all these implementations must be the same as the inline versions in qstring.h
+QString QString::trimmed() const
+{
+ return trimmed_helper(*this);
+}
+
+QString QString::simplified() const
+{
+ return simplified_helper(*this);
+}
+
+QString QString::toLower() const
+{
+ return toLower_helper(*this);
+}
+
+QString QString::toCaseFolded() const
+{
+ return toCaseFolded_helper(*this);
+}
+
+QString QString::toUpper() const
+{
+ return toUpper_helper(*this);
+}
+
QByteArray QString::toLatin1() const
{
return toLatin1_helper(*this);
@@ -56,4 +82,25 @@ QByteArray QString::toUtf8() const
return toUtf8_helper(*this);
}
+// ditto, for qbytearray.h (because we're lazy)
+QByteArray QByteArray::toLower() const
+{
+ return toLower_helper(*this);
+}
+
+QByteArray QByteArray::toUpper() const
+{
+ return toUpper_helper(*this);
+}
+
+QByteArray QByteArray::trimmed() const
+{
+ return trimmed_helper(*this);
+}
+
+QByteArray QByteArray::simplified() const
+{
+ return simplified_helper(*this);
+}
+
QT_END_NAMESPACE
diff --git a/src/corelib/tools/qstringalgorithms_p.h b/src/corelib/tools/qstringalgorithms_p.h
new file mode 100644
index 0000000000..2911055f6a
--- /dev/null
+++ b/src/corelib/tools/qstringalgorithms_p.h
@@ -0,0 +1,156 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Intel Corporation.
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtCore module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QSTRINGALGORITHMS_P_H
+#define QSTRINGALGORITHMS_P_H
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists for the convenience
+// of internal files. This header file may change from version to version
+// without notice, or even be removed.
+//
+// We mean it.
+//
+
+#include "qstring.h"
+#include "qlocale_p.h" // for ascii_isspace
+
+QT_BEGIN_NAMESPACE
+
+template <typename StringType> struct QStringAlgorithms
+{
+ typedef typename StringType::value_type Char;
+ typedef typename StringType::size_type size_type;
+ typedef typename QtPrivate::remove_cv<StringType>::type NakedStringType;
+ static const bool isConst = QtPrivate::is_const<StringType>::value;
+
+ static inline bool isSpace(char ch) { return ascii_isspace(ch); }
+ static inline bool isSpace(QChar ch) { return ch.isSpace(); }
+
+ // Surrogate pairs are not handled in either of the functions below. That is
+ // not a problem because there are no space characters (Zs, Zl, Zp) outside the
+ // Basic Multilingual Plane.
+
+ static inline StringType trimmed_helper_inplace(NakedStringType &str, const Char *begin, const Char *end)
+ {
+ // in-place trimming:
+ Char *data = const_cast<Char *>(str.cbegin());
+ if (begin != data)
+ memmove(data, begin, (end - begin) * sizeof(Char));
+ str.resize(end - begin);
+ return qMove(str);
+ }
+
+ static inline StringType trimmed_helper_inplace(const NakedStringType &, const Char *, const Char *)
+ {
+ // can't happen
+ Q_UNREACHABLE();
+ return StringType();
+ }
+
+ static inline void trimmed_helper_positions(const Char *&begin, const Char *&end)
+ {
+ // skip white space from start
+ while (begin < end && isSpace(*begin))
+ begin++;
+ // skip white space from end
+ if (begin < end) {
+ while (begin < end && isSpace(end[-1]))
+ end--;
+ }
+ }
+
+ static inline StringType trimmed_helper(StringType &str)
+ {
+ const Char *begin = str.cbegin();
+ const Char *end = str.cend();
+ trimmed_helper_positions(begin, end);
+
+ if (begin == str.cbegin() && end == str.cend())
+ return str;
+ if (begin == end)
+ return StringType();
+ if (!isConst && str.isDetached())
+ return trimmed_helper_inplace(str, begin, end);
+ return StringType(begin, end - begin);
+ }
+
+ static inline StringType simplified_helper(StringType &str)
+ {
+ if (str.isEmpty())
+ return str;
+ const Char *src = str.cbegin();
+ const Char *end = str.cend();
+ NakedStringType result = isConst ?
+ StringType(str.size(), Qt::Uninitialized) :
+ qMove(str);
+
+ Char *dst = const_cast<Char *>(result.cbegin());
+ Char *ptr = dst;
+ forever {
+ while (src != end && isSpace(*src))
+ ++src;
+ while (src != end && !isSpace(*src))
+ *ptr++ = *src++;
+ if (src != end)
+ *ptr++ = QChar::Space;
+ else
+ break;
+ }
+ if (ptr != dst && ptr[-1] == QChar::Space)
+ --ptr;
+
+ int newlen = ptr - dst;
+ if (isConst && newlen == str.size()) {
+ // nothing happened, return the original
+ return str;
+ }
+ result.resize(newlen);
+ return result;
+ }
+};
+
+QT_END_NAMESPACE
+
+#endif // QSTRINGALGORITHMS_P_H
diff --git a/src/corelib/tools/qstringiterator_p.h b/src/corelib/tools/qstringiterator_p.h
index b80193b790..3f431daf6f 100644
--- a/src/corelib/tools/qstringiterator_p.h
+++ b/src/corelib/tools/qstringiterator_p.h
@@ -74,6 +74,11 @@ public:
return pos;
}
+ inline int index() const
+ {
+ return pos - i;
+ }
+
inline void setPosition(QString::const_iterator position)
{
Q_ASSERT_X(i <= position && position <= e, Q_FUNC_INFO, "position out of bounds");
diff --git a/src/corelib/tools/qstringlist.cpp b/src/corelib/tools/qstringlist.cpp
index 4e5393e0b0..192306c059 100644
--- a/src/corelib/tools/qstringlist.cpp
+++ b/src/corelib/tools/qstringlist.cpp
@@ -516,28 +516,6 @@ QString QtPrivate::QStringList_join(const QStringList *that, const QChar *sep, i
the latter string list.
*/
-#ifndef QT_NO_DATASTREAM
-/*!
- \fn QDataStream &operator>>(QDataStream &in, QStringList &list)
- \relates QStringList
-
- Reads a string list from the given \a in stream into the specified
- \a list.
-
- \sa {Serializing Qt Data Types}
-*/
-
-/*!
- \fn QDataStream &operator<<(QDataStream &out, const QStringList &list)
- \relates QStringList
-
- Writes the given string \a list to the specified \a out stream.
-
- \sa {Serializing Qt Data Types}
-*/
-#endif // QT_NO_DATASTREAM
-
-
#ifndef QT_NO_REGEXP
static int indexOfMutating(const QStringList *that, QRegExp &rx, int from)
{
@@ -704,29 +682,6 @@ int QtPrivate::QStringList_lastIndexOf(const QStringList *that, const QRegularEx
#endif // QT_BOOTSTRAPPED
/*!
- \fn int QStringList::indexOf(const QString &value, int from = 0) const
-
- Returns the index position of the first occurrence of \a value in
- the list, searching forward from index position \a from. Returns
- -1 if no item matched.
-
- \sa lastIndexOf(), contains(), QList::indexOf()
-*/
-
-/*!
- \fn int QStringList::lastIndexOf(const QString &value, int from = -1) const
-
- Returns the index position of the last occurrence of \a value in
- the list, searching backward from index position \a from. If \a
- from is -1 (the default), the search starts at the last item.
- Returns -1 if no item matched.
-
- By default, this function is case sensitive.
-
- \sa indexOf(), QList::lastIndexOf()
-*/
-
-/*!
\fn int QStringList::removeDuplicates()
\since 4.5
diff --git a/src/corelib/tools/qstringlist.h b/src/corelib/tools/qstringlist.h
index b24a261a7c..cce67820f8 100644
--- a/src/corelib/tools/qstringlist.h
+++ b/src/corelib/tools/qstringlist.h
@@ -108,15 +108,8 @@ public:
#endif // QT_NO_REGULAREXPRESSION
#endif // QT_BOOTSTRAPPED
-#if !defined(Q_NO_USING_KEYWORD)
using QList<QString>::indexOf;
using QList<QString>::lastIndexOf;
-#else
- inline int indexOf(const QString &str, int from = 0) const
- { return QList<QString>::indexOf(str, from); }
- inline int lastIndexOf(const QString &str, int from = -1) const
- { return QList<QString>::lastIndexOf(str, from); }
-#endif
};
Q_DECLARE_TYPEINFO(QStringList, Q_MOVABLE_TYPE);
@@ -245,17 +238,6 @@ inline int QStringList::lastIndexOf(const QRegularExpression &rx, int from) cons
#endif // QT_NO_REGULAREXPRESSION
#endif // QT_BOOTSTRAPPED
-#ifndef QT_NO_DATASTREAM
-inline QDataStream &operator>>(QDataStream &in, QStringList &list)
-{
- return operator>>(in, static_cast<QList<QString> &>(list));
-}
-inline QDataStream &operator<<(QDataStream &out, const QStringList &list)
-{
- return operator<<(out, static_cast<const QList<QString> &>(list));
-}
-#endif // QT_NO_DATASTREAM
-
QT_END_NAMESPACE
#endif // QSTRINGLIST_H
diff --git a/src/corelib/tools/qtimeline.h b/src/corelib/tools/qtimeline.h
index 8e577c2651..c0b245ed8d 100644
--- a/src/corelib/tools/qtimeline.h
+++ b/src/corelib/tools/qtimeline.h
@@ -137,7 +137,7 @@ Q_SIGNALS:
);
protected:
- void timerEvent(QTimerEvent *event);
+ void timerEvent(QTimerEvent *event) Q_DECL_OVERRIDE;
private:
Q_DISABLE_COPY(QTimeLine)
diff --git a/src/corelib/tools/qtimezone.cpp b/src/corelib/tools/qtimezone.cpp
index 8f3db74131..fb5af2bf4a 100644
--- a/src/corelib/tools/qtimezone.cpp
+++ b/src/corelib/tools/qtimezone.cpp
@@ -56,6 +56,8 @@ static QTimeZonePrivate *newBackendTimeZone()
#else
#if defined Q_OS_MAC
return new QMacTimeZonePrivate();
+#elif defined Q_OS_ANDROID
+ return new QAndroidTimeZonePrivate();
#elif defined Q_OS_UNIX
return new QTzTimeZonePrivate();
// Registry based timezone backend not available on WinRT
@@ -81,6 +83,8 @@ static QTimeZonePrivate *newBackendTimeZone(const QByteArray &ianaId)
#else
#if defined Q_OS_MAC
return new QMacTimeZonePrivate(ianaId);
+#elif defined Q_OS_ANDROID
+ return new QAndroidTimeZonePrivate(ianaId);
#elif defined Q_OS_UNIX
return new QTzTimeZonePrivate(ianaId);
// Registry based timezone backend not available on WinRT
diff --git a/src/corelib/tools/qtimezoneprivate_android.cpp b/src/corelib/tools/qtimezoneprivate_android.cpp
new file mode 100644
index 0000000000..9d9bfc612d
--- /dev/null
+++ b/src/corelib/tools/qtimezoneprivate_android.cpp
@@ -0,0 +1,287 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Drew Parsons <dparsons@emerall.com>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtCore module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL21$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 or version 3 as published by the Free
+** Software Foundation and appearing in the file LICENSE.LGPLv21 and
+** LICENSE.LGPLv3 included in the packaging of this file. Please review the
+** following information to ensure the GNU Lesser General Public License
+** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtCore/QSet>
+#include "qtimezone.h"
+#include "qtimezoneprivate_p.h"
+
+QT_BEGIN_NAMESPACE
+
+/*
+ Private
+
+ Android implementation
+*/
+
+// Create the system default time zone
+QAndroidTimeZonePrivate::QAndroidTimeZonePrivate()
+ : QTimeZonePrivate()
+{
+ // start with system time zone
+ androidTimeZone = QJNIObjectPrivate::callStaticObjectMethod("java.util.TimeZone", "getDefault", "()Ljava/util/TimeZone;");
+ init("UTC");
+}
+
+// Create a named time zone
+QAndroidTimeZonePrivate::QAndroidTimeZonePrivate(const QByteArray &ianaId)
+ : QTimeZonePrivate()
+{
+ init(ianaId);
+}
+
+QAndroidTimeZonePrivate::QAndroidTimeZonePrivate(const QAndroidTimeZonePrivate &other)
+ : QTimeZonePrivate(other)
+{
+ androidTimeZone = other.androidTimeZone;
+ m_id = other.id();
+}
+
+QAndroidTimeZonePrivate::~QAndroidTimeZonePrivate()
+{
+}
+
+
+void QAndroidTimeZonePrivate::init(const QByteArray &ianaId)
+{
+ QJNIObjectPrivate jo_ianaId = QJNIObjectPrivate::fromString( QString::fromUtf8(ianaId) );
+ androidTimeZone = QJNIObjectPrivate::callStaticObjectMethod( "java.util.TimeZone", "getTimeZone", "(Ljava/lang/String;)Ljava/util/TimeZone;", static_cast<jstring>(jo_ianaId.object()) );
+
+ if (ianaId.isEmpty())
+ m_id = systemTimeZoneId();
+ else
+ m_id = ianaId;
+}
+
+QTimeZonePrivate *QAndroidTimeZonePrivate::clone()
+{
+ return new QAndroidTimeZonePrivate(*this);
+}
+
+
+QString QAndroidTimeZonePrivate::displayName(QTimeZone::TimeType timeType, QTimeZone::NameType nameType,
+ const QLocale &locale) const
+{
+ QString name;
+
+ if (androidTimeZone.isValid()) {
+ jboolean daylightTime = (timeType == QTimeZone::DaylightTime); // treat QTimeZone::GenericTime as QTimeZone::StandardTime
+
+ // treat all NameTypes as java TimeZone style LONG (value 1), except of course QTimeZone::ShortName which is style SHORT (value 0);
+ jint style = (nameType == QTimeZone::ShortName ? 0 : 1);
+
+ QJNIObjectPrivate jlanguage = QJNIObjectPrivate::fromString(QLocale::languageToString(locale.language()));
+ QJNIObjectPrivate jcountry = QJNIObjectPrivate::fromString(QLocale::countryToString(locale.country()));
+ QJNIObjectPrivate jvariant = QJNIObjectPrivate::fromString(QLocale::scriptToString(locale.script()));
+ QJNIObjectPrivate jlocale("java.util.Locale", "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V", static_cast<jstring>(jlanguage.object()), static_cast<jstring>(jcountry.object()), static_cast<jstring>(jvariant.object()));
+
+ QJNIObjectPrivate jname = androidTimeZone.callObjectMethod("getDisplayName", "(ZILjava/util/Locale;)Ljava/lang/String;", daylightTime, style, jlocale.object());
+
+ name = jname.toString();
+ }
+
+ return name;
+}
+
+QString QAndroidTimeZonePrivate::abbreviation(qint64 atMSecsSinceEpoch) const
+{
+ if ( isDaylightTime( atMSecsSinceEpoch ) )
+ return displayName(QTimeZone::DaylightTime, QTimeZone::ShortName, QLocale() );
+ else
+ return displayName(QTimeZone::StandardTime, QTimeZone::ShortName, QLocale() );
+}
+
+int QAndroidTimeZonePrivate::offsetFromUtc(qint64 atMSecsSinceEpoch) const
+{
+ // offsetFromUtc( ) is invoked when androidTimeZone may not yet be set at startup,
+ // so a validity test is needed here
+ if ( androidTimeZone.isValid() )
+ // the java method getOffset() returns milliseconds, but QTimeZone returns seconds
+ return androidTimeZone.callMethod<jint>( "getOffset", "(J)I", static_cast<jlong>(atMSecsSinceEpoch) ) / 1000;
+ else
+ return 0;
+}
+
+int QAndroidTimeZonePrivate::standardTimeOffset(qint64 atMSecsSinceEpoch) const
+{
+ // the java method does not use a reference time
+ Q_UNUSED( atMSecsSinceEpoch );
+ if ( androidTimeZone.isValid() )
+ // the java method getRawOffset() returns milliseconds, but QTimeZone returns seconds
+ return androidTimeZone.callMethod<jint>( "getRawOffset" ) / 1000;
+ else
+ return 0;
+}
+
+int QAndroidTimeZonePrivate::daylightTimeOffset(qint64 atMSecsSinceEpoch) const
+{
+ return ( offsetFromUtc(atMSecsSinceEpoch) - standardTimeOffset(atMSecsSinceEpoch) );
+}
+
+bool QAndroidTimeZonePrivate::hasDaylightTime() const
+{
+ if ( androidTimeZone.isValid() )
+ /* note: the Java function only tests for future daylight transtions, not past */
+ return androidTimeZone.callMethod<jboolean>("useDaylightTime" );
+ else
+ return false;
+}
+
+bool QAndroidTimeZonePrivate::isDaylightTime(qint64 atMSecsSinceEpoch) const
+{
+ if ( androidTimeZone.isValid() ) {
+ QJNIObjectPrivate jDate( "java/util/Date", "(J)V", static_cast<jlong>(atMSecsSinceEpoch) );
+ return androidTimeZone.callMethod<jboolean>("inDaylightTime", "(Ljava/util/Date;)Z", jDate.object() );
+ }
+ else
+ return false;
+}
+
+QTimeZonePrivate::Data QAndroidTimeZonePrivate::data(qint64 forMSecsSinceEpoch) const
+{
+ if (androidTimeZone.isValid()) {
+ Data data;
+ data.atMSecsSinceEpoch = forMSecsSinceEpoch;
+ data.standardTimeOffset = standardTimeOffset(forMSecsSinceEpoch);
+ data.offsetFromUtc = offsetFromUtc(forMSecsSinceEpoch);
+ data.daylightTimeOffset = data.offsetFromUtc - data.standardTimeOffset;
+ data.abbreviation = abbreviation(forMSecsSinceEpoch);
+ return data;
+ } else {
+ return invalidData();
+ }
+}
+
+bool QAndroidTimeZonePrivate::hasTransitions() const
+{
+ // java.util.TimeZone does not directly provide transitions
+ return false;
+}
+
+QTimeZonePrivate::Data QAndroidTimeZonePrivate::nextTransition(qint64 afterMSecsSinceEpoch) const
+{
+ // transitions not available on Android, so return an invalid data object
+ Q_UNUSED( afterMSecsSinceEpoch );
+ return invalidData();
+}
+
+QTimeZonePrivate::Data QAndroidTimeZonePrivate::previousTransition(qint64 beforeMSecsSinceEpoch) const
+{
+ // transitions not available on Android, so return an invalid data object
+ Q_UNUSED( beforeMSecsSinceEpoch );
+ return invalidData();
+}
+
+// Since Android does not provide an API to access transitions,
+// dataForLocalTime needs to be reimplemented without direct use of transitions
+QTimeZonePrivate::Data QAndroidTimeZonePrivate::dataForLocalTime(qint64 forLocalMSecs) const
+{
+ if (!androidTimeZone.isValid()) {
+ return invalidData();
+ } else {
+ qint64 UTCepochMSecs;
+
+ // compare the UTC time with standard offset against normal daylight offset of one hour
+ qint64 standardUTCMSecs(forLocalMSecs - (standardTimeOffset(forLocalMSecs) * 1000));
+ qint64 daylightUTCMsecs;
+
+ // Check if daylight time does apply,
+ // checking also for daylight time boundaries
+ if (isDaylightTime(standardUTCMSecs)) {
+ // If daylight does apply, then standardUTCMSecs will be an hour or so ahead of the real epoch time
+ // so check that time
+ daylightUTCMsecs = standardUTCMSecs - daylightTimeOffset(standardUTCMSecs)*1000;
+ if (isDaylightTime(daylightUTCMsecs)) {
+ // daylight time confirmed
+ UTCepochMSecs = daylightUTCMsecs;
+ } else {
+ // daylight time has just finished
+ UTCepochMSecs = standardUTCMSecs;
+ }
+ } else {
+ // Standard time indicated, but check for a false negative.
+ // Would a standard one-hour daylight offset indicate daylight time?
+ daylightUTCMsecs = standardUTCMSecs - 3600000; // 3600000 MSECS_PER_HOUR
+ if (isDaylightTime(daylightUTCMsecs)) {
+ // daylight time may have just started,
+ // but double check against timezone's own daylight offset
+ // (don't necessarily assume a one-hour offset)
+ daylightUTCMsecs = standardUTCMSecs - daylightTimeOffset(daylightUTCMsecs)*1000;
+ if (isDaylightTime(daylightUTCMsecs)) {
+ // daylight time confirmed
+ UTCepochMSecs = daylightUTCMsecs;
+ } else {
+ // false positive, apply standard time after all
+ UTCepochMSecs = standardUTCMSecs;
+ }
+ } else {
+ // confirmed standard time
+ UTCepochMSecs = standardUTCMSecs;
+ }
+ }
+
+ return data(UTCepochMSecs);
+ }
+}
+
+QByteArray QAndroidTimeZonePrivate::systemTimeZoneId() const
+{
+ QJNIObjectPrivate androidSystemTimeZone = QJNIObjectPrivate::callStaticObjectMethod("java.util.TimeZone", "getDefault", "()Ljava/util/TimeZone;");
+ QJNIObjectPrivate systemTZIdAndroid = androidSystemTimeZone.callObjectMethod<jstring>("getID");
+ QByteArray systemTZid = systemTZIdAndroid.toString().toUtf8();
+
+ return systemTZid;
+}
+
+QSet<QByteArray> QAndroidTimeZonePrivate::availableTimeZoneIds() const
+{
+ QSet<QByteArray> availableTimeZoneIdList;
+ QJNIObjectPrivate androidAvailableIdList = QJNIObjectPrivate::callStaticObjectMethod("java.util.TimeZone", "getAvailableIDs", "()[Ljava/lang/String;");
+
+ QJNIEnvironmentPrivate jniEnv;
+ int androidTZcount = jniEnv->GetArrayLength( static_cast<jarray>(androidAvailableIdList.object()) );
+
+ // need separate jobject and QAndroidJniObject here so that we can delete (DeleteLocalRef) the reference to the jobject
+ // (or else the JNI reference table fills after 512 entries from GetObjectArrayElement)
+ jobject androidTZobject;
+ QJNIObjectPrivate androidTZ;
+ for (int i=0; i<androidTZcount; i++ ) {
+ androidTZobject = jniEnv->GetObjectArrayElement( static_cast<jobjectArray>( androidAvailableIdList.object() ), i );
+ androidTZ = androidTZobject;
+ availableTimeZoneIdList.insert( androidTZ.toString().toUtf8() );
+ jniEnv->DeleteLocalRef(androidTZobject);
+ }
+
+ return availableTimeZoneIdList;
+}
+
+QT_END_NAMESPACE
diff --git a/src/corelib/tools/qtimezoneprivate_p.h b/src/corelib/tools/qtimezoneprivate_p.h
index 5ba42de560..6494ffe148 100644
--- a/src/corelib/tools/qtimezoneprivate_p.h
+++ b/src/corelib/tools/qtimezoneprivate_p.h
@@ -65,6 +65,10 @@ class NSTimeZone;
#include <qt_windows.h>
#endif // Q_OS_WIN
+#ifdef Q_OS_ANDROID
+#include <QtCore/private/qjni_p.h>
+#endif
+
QT_BEGIN_NAMESPACE
class Q_CORE_EXPORT QTimeZonePrivate : public QSharedData
@@ -256,7 +260,7 @@ private:
};
#endif // QT_USE_ICU
-#if defined Q_OS_UNIX && !defined Q_OS_MAC
+#if defined Q_OS_UNIX && !defined Q_OS_MAC && !defined Q_OS_ANDROID
class Q_AUTOTEST_EXPORT QTzTimeZonePrivate Q_DECL_FINAL : public QTimeZonePrivate
{
public:
@@ -424,6 +428,50 @@ private:
};
#endif // Q_OS_WIN
+#ifdef Q_OS_ANDROID
+class QAndroidTimeZonePrivate Q_DECL_FINAL : public QTimeZonePrivate
+{
+public:
+ // Create default time zone
+ QAndroidTimeZonePrivate();
+ // Create named time zone
+ QAndroidTimeZonePrivate(const QByteArray &ianaId);
+ QAndroidTimeZonePrivate(const QAndroidTimeZonePrivate &other);
+ ~QAndroidTimeZonePrivate();
+
+ QTimeZonePrivate *clone();
+
+ QString displayName(QTimeZone::TimeType timeType, QTimeZone::NameType nameType,
+ const QLocale &locale) const Q_DECL_OVERRIDE;
+ QString abbreviation(qint64 atMSecsSinceEpoch) const Q_DECL_OVERRIDE;
+
+ int offsetFromUtc(qint64 atMSecsSinceEpoch) const Q_DECL_OVERRIDE;
+ int standardTimeOffset(qint64 atMSecsSinceEpoch) const Q_DECL_OVERRIDE;
+ int daylightTimeOffset(qint64 atMSecsSinceEpoch) const Q_DECL_OVERRIDE;
+
+ bool hasDaylightTime() const Q_DECL_OVERRIDE;
+ bool isDaylightTime(qint64 atMSecsSinceEpoch) const Q_DECL_OVERRIDE;
+
+ Data data(qint64 forMSecsSinceEpoch) const Q_DECL_OVERRIDE;
+
+ bool hasTransitions() const Q_DECL_OVERRIDE;
+ Data nextTransition(qint64 afterMSecsSinceEpoch) const Q_DECL_OVERRIDE;
+ Data previousTransition(qint64 beforeMSecsSinceEpoch) const Q_DECL_OVERRIDE;
+
+ Data dataForLocalTime(qint64 forLocalMSecs) const Q_DECL_OVERRIDE;
+
+ QByteArray systemTimeZoneId() const Q_DECL_OVERRIDE;
+
+ QSet<QByteArray> availableTimeZoneIds() const Q_DECL_OVERRIDE;
+
+private:
+ void init(const QByteArray &zoneId);
+
+ QJNIObjectPrivate androidTimeZone;
+
+};
+#endif // Q_OS_ANDROID
+
QT_END_NAMESPACE
#endif // QTIMEZONEPRIVATE_P_H
diff --git a/src/corelib/tools/qtools_p.h b/src/corelib/tools/qtools_p.h
index 3876d3822c..53d5228c3b 100644
--- a/src/corelib/tools/qtools_p.h
+++ b/src/corelib/tools/qtools_p.h
@@ -46,9 +46,40 @@
//
#include "QtCore/qglobal.h"
+#include <limits>
QT_BEGIN_NAMESPACE
+namespace QtMiscUtils {
+inline char toHexUpper(uint value)
+{
+ static const char hexdigits[] = "0123456789ABCDEF";
+ return hexdigits[value & 0xF];
+}
+
+inline char toHexLower(uint value)
+{
+ static const char hexdigits[] = "0123456789abcdef";
+ return hexdigits[value & 0xF];
+}
+
+inline int fromHex(uint c)
+{
+ if ((c >= '0') && (c <= '9'))
+ return c - '0';
+ if ((c >= 'A') && (c <= 'F'))
+ return c - 'A' + 10;
+ if ((c >= 'a') && (c <= 'f'))
+ return c - 'a' + 10;
+ return -1;
+}
+}
+
+// We typically need an extra bit for qNextPowerOfTwo when determining the next allocation size.
+enum {
+ MaxAllocSize = (1 << (std::numeric_limits<int>::digits - 1)) - 1
+};
+
// implemented in qbytearray.cpp
int Q_CORE_EXPORT qAllocMore(int alloc, int extra) Q_DECL_NOTHROW;
diff --git a/src/corelib/tools/qvector.cpp b/src/corelib/tools/qvector.cpp
index 99e1db1cab..50c90ad746 100644
--- a/src/corelib/tools/qvector.cpp
+++ b/src/corelib/tools/qvector.cpp
@@ -463,6 +463,18 @@
\sa operator<<(), prepend(), insert()
*/
+/*! \fn void QVector::append(const QVector<T> &value)
+
+ \overload
+
+ \since 5.5
+
+ Appends the items of the \a value vector to this vector.
+
+ \sa operator<<(), operator+=()
+*/
+
+
/*! \fn void QVector::prepend(const T &value)
Inserts \a value at the beginning of the vector.
diff --git a/src/corelib/tools/qvector.h b/src/corelib/tools/qvector.h
index 07c66bc393..c00bd07a72 100644
--- a/src/corelib/tools/qvector.h
+++ b/src/corelib/tools/qvector.h
@@ -128,6 +128,7 @@ public:
T &operator[](int i);
const T &operator[](int i) const;
void append(const T &t);
+ inline void append(const QVector<T> &l) { *this += l; }
void prepend(const T &t);
void insert(int i, const T &t);
void insert(int i, int n, const T &t);
@@ -327,9 +328,11 @@ inline QVector<T>::QVector(const QVector<T> &v)
} else {
if (v.d->capacityReserved) {
d = Data::allocate(v.d->alloc);
+ Q_CHECK_PTR(d);
d->capacityReserved = true;
} else {
d = Data::allocate(v.d->size);
+ Q_CHECK_PTR(d);
}
if (d->alloc) {
copyConstruct(v.d->begin(), v.d->end(), d->begin());
@@ -439,6 +442,7 @@ QVector<T>::QVector(int asize)
Q_ASSERT_X(asize >= 0, "QVector::QVector", "Size must be greater than or equal to 0.");
if (Q_LIKELY(asize > 0)) {
d = Data::allocate(asize);
+ Q_CHECK_PTR(d);
d->size = asize;
defaultConstruct(d->begin(), d->end());
} else {
@@ -452,6 +456,7 @@ QVector<T>::QVector(int asize, const T &t)
Q_ASSERT_X(asize >= 0, "QVector::QVector", "Size must be greater than or equal to 0.");
if (asize > 0) {
d = Data::allocate(asize);
+ Q_CHECK_PTR(d);
d->size = asize;
T* i = d->end();
while (i != d->begin())
@@ -467,6 +472,7 @@ QVector<T>::QVector(std::initializer_list<T> args)
{
if (args.size() > 0) {
d = Data::allocate(args.size());
+ Q_CHECK_PTR(d);
// std::initializer_list<T>::iterator is guaranteed to be
// const T* ([support.initlist]/1), so can be memcpy'ed away from by copyConstruct
copyConstruct(args.begin(), args.end(), d->begin());
@@ -707,13 +713,10 @@ bool QVector<T>::operator==(const QVector<T> &v) const
return true;
if (d->size != v.d->size)
return false;
- T* b = d->begin();
- T* i = b + d->size;
- T* j = v.d->end();
- while (i != b)
- if (!(*--i == *--j))
- return false;
- return true;
+ const T *vb = v.d->begin();
+ const T *b = d->begin();
+ const T *e = d->end();
+ return std::equal(b, e, vb);
}
template <typename T>
@@ -791,12 +794,9 @@ int QVector<T>::lastIndexOf(const T &t, int from) const
template <typename T>
bool QVector<T>::contains(const T &t) const
{
- T* b = d->begin();
- T* i = d->end();
- while (i != b)
- if (*--i == t)
- return true;
- return false;
+ const T *b = d->begin();
+ const T *e = d->end();
+ return std::find(b, e, t) != e;
}
template <typename T>
diff --git a/src/corelib/tools/tools.pri b/src/corelib/tools/tools.pri
index cef802fa76..01b514d329 100644
--- a/src/corelib/tools/tools.pri
+++ b/src/corelib/tools/tools.pri
@@ -57,6 +57,7 @@ HEADERS += \
tools/qsize.h \
tools/qstack.h \
tools/qstring.h \
+ tools/qstringalgorithms_p.h \
tools/qstringbuilder.h \
tools/qstringiterator_p.h \
tools/qstringlist.h \
@@ -128,13 +129,19 @@ false: SOURCES += $$NO_PCH_SOURCES # Hack for QtCreator
OBJECTIVE_SOURCES += tools/qlocale_mac.mm \
tools/qtimezoneprivate_mac.mm \
tools/qstring_mac.mm \
- tools/qbytearray_mac.mm
+ tools/qbytearray_mac.mm \
+ tools/qdatetime_mac.mm
}
else:blackberry {
SOURCES += tools/qelapsedtimer_unix.cpp tools/qlocale_blackberry.cpp tools/qtimezoneprivate_tz.cpp
HEADERS += tools/qlocale_blackberry.h
}
-else:unix:SOURCES += tools/qelapsedtimer_unix.cpp tools/qlocale_unix.cpp tools/qtimezoneprivate_tz.cpp
+else:android {
+ SOURCES += tools/qelapsedtimer_unix.cpp tools/qlocale_unix.cpp tools/qtimezoneprivate_android.cpp
+}
+else:unix {
+ SOURCES += tools/qelapsedtimer_unix.cpp tools/qlocale_unix.cpp tools/qtimezoneprivate_tz.cpp
+}
else:win32 {
SOURCES += tools/qelapsedtimer_win.cpp tools/qlocale_win.cpp
!winrt: SOURCES += tools/qtimezoneprivate_win.cpp
diff --git a/src/corelib/xml/qxmlstream.cpp b/src/corelib/xml/qxmlstream.cpp
index 94f6a8bcde..9928098a33 100644
--- a/src/corelib/xml/qxmlstream.cpp
+++ b/src/corelib/xml/qxmlstream.cpp
@@ -2393,15 +2393,6 @@ QXmlStreamAttribute& QXmlStreamAttribute::operator=(const QXmlStreamAttribute &o
*/
/*!
- \fn void QXmlStreamAttributes::append(const QXmlStreamAttribute &attribute)
-
- Appends the given \a attribute to the end of the vector.
-
- \sa QVector::append()
-*/
-
-
-/*!
\typedef QXmlStreamNotationDeclarations
\relates QXmlStreamNotationDeclaration
diff --git a/src/corelib/xml/qxmlstream.h b/src/corelib/xml/qxmlstream.h
index 77f99c5d16..9a5756a431 100644
--- a/src/corelib/xml/qxmlstream.h
+++ b/src/corelib/xml/qxmlstream.h
@@ -125,12 +125,7 @@ public:
return !value(namespaceUri, name).isNull();
}
-#if !defined(Q_NO_USING_KEYWORD)
using QVector<QXmlStreamAttribute>::append;
-#else
- inline void append(const QXmlStreamAttribute &attribute)
- { QVector<QXmlStreamAttribute>::append(attribute); }
-#endif
};
class Q_CORE_EXPORT QXmlStreamNamespaceDeclaration {
diff --git a/src/dbus/qdbusabstractinterface.h b/src/dbus/qdbusabstractinterface.h
index e01cfad36b..7ad0048246 100644
--- a/src/dbus/qdbusabstractinterface.h
+++ b/src/dbus/qdbusabstractinterface.h
@@ -56,7 +56,7 @@ class QDBusAbstractInterfacePrivate;
class Q_DBUS_EXPORT QDBusAbstractInterfaceBase: public QObject
{
public:
- int qt_metacall(QMetaObject::Call, int, void**);
+ int qt_metacall(QMetaObject::Call, int, void**) Q_DECL_OVERRIDE;
protected:
QDBusAbstractInterfaceBase(QDBusAbstractInterfacePrivate &dd, QObject *parent);
private:
@@ -136,8 +136,8 @@ protected:
const QDBusConnection &connection, QObject *parent);
QDBusAbstractInterface(QDBusAbstractInterfacePrivate &, QObject *parent);
- void connectNotify(const QMetaMethod &signal);
- void disconnectNotify(const QMetaMethod &signal);
+ void connectNotify(const QMetaMethod &signal) Q_DECL_OVERRIDE;
+ void disconnectNotify(const QMetaMethod &signal) Q_DECL_OVERRIDE;
QVariant internalPropGet(const char *propname) const;
void internalPropSet(const char *propname, const QVariant &value);
QDBusMessage internalConstCall(QDBus::CallMode mode,
diff --git a/src/dbus/qdbusargument_p.h b/src/dbus/qdbusargument_p.h
index 12039307e1..5f8c13c2c5 100644
--- a/src/dbus/qdbusargument_p.h
+++ b/src/dbus/qdbusargument_p.h
@@ -97,7 +97,7 @@ public:
class QDBusMarshaller: public QDBusArgumentPrivate
{
public:
- QDBusMarshaller(int flags) : QDBusArgumentPrivate(flags), parent(0), ba(0), closeCode(0), ok(true)
+ QDBusMarshaller(int flags) : QDBusArgumentPrivate(flags), parent(0), ba(0), closeCode(0), ok(true), skipSignature(false)
{ direction = Marshalling; }
~QDBusMarshaller();
@@ -145,6 +145,7 @@ public:
QString errorString;
char closeCode;
bool ok;
+ bool skipSignature;
private:
Q_DISABLE_COPY(QDBusMarshaller)
diff --git a/src/dbus/qdbusconnection.h b/src/dbus/qdbusconnection.h
index 66fb514865..59f6429d4f 100644
--- a/src/dbus/qdbusconnection.h
+++ b/src/dbus/qdbusconnection.h
@@ -35,6 +35,7 @@
#define QDBUSCONNECTION_H
#include <QtDBus/qdbusmacros.h>
+#include <QtCore/qobjectdefs.h>
#include <QtCore/qstring.h>
#ifndef QT_NO_DBUS
diff --git a/src/dbus/qdbusconnection_p.h b/src/dbus/qdbusconnection_p.h
index 00c3aced0e..dc83ee9af5 100644
--- a/src/dbus/qdbusconnection_p.h
+++ b/src/dbus/qdbusconnection_p.h
@@ -253,8 +253,8 @@ private:
QString getNameOwnerNoCache(const QString &service);
protected:
- void customEvent(QEvent *e);
- void timerEvent(QTimerEvent *e);
+ void customEvent(QEvent *e) Q_DECL_OVERRIDE;
+ void timerEvent(QTimerEvent *e) Q_DECL_OVERRIDE;
public slots:
// public slots
diff --git a/src/dbus/qdbusconnectioninterface.h b/src/dbus/qdbusconnectioninterface.h
index ed267ecc79..a6b18b7dc1 100644
--- a/src/dbus/qdbusconnectioninterface.h
+++ b/src/dbus/qdbusconnectioninterface.h
@@ -106,8 +106,8 @@ Q_SIGNALS:
void NameLost(const QString &);
void NameOwnerChanged(const QString &, const QString &, const QString &);
protected:
- void connectNotify(const QMetaMethod &);
- void disconnectNotify(const QMetaMethod &);
+ void connectNotify(const QMetaMethod &) Q_DECL_OVERRIDE;
+ void disconnectNotify(const QMetaMethod &) Q_DECL_OVERRIDE;
#endif
};
diff --git a/src/dbus/qdbusintegrator.cpp b/src/dbus/qdbusintegrator.cpp
index dd92602dce..1978e259fd 100644
--- a/src/dbus/qdbusintegrator.cpp
+++ b/src/dbus/qdbusintegrator.cpp
@@ -1022,7 +1022,7 @@ QDBusConnectionPrivate::QDBusConnectionPrivate(QObject *p)
{
static const bool threads = q_dbus_threads_init_default();
if (::isDebugging == -1)
- ::isDebugging = qgetenv("QDBUS_DEBUG").toInt();
+ ::isDebugging = qEnvironmentVariableIntValue("QDBUS_DEBUG");
Q_UNUSED(threads)
#ifdef QDBUS_THREAD_DEBUG
diff --git a/src/dbus/qdbusintegrator_p.h b/src/dbus/qdbusintegrator_p.h
index 38aad9fa86..116d77cca6 100644
--- a/src/dbus/qdbusintegrator_p.h
+++ b/src/dbus/qdbusintegrator_p.h
@@ -90,7 +90,7 @@ public:
: QMetaCallEvent(0, id, 0, sender, -1), connection(c), message(msg), metaTypes(types), flags(f)
{ }
- void placeMetaCall(QObject *object)
+ void placeMetaCall(QObject *object) Q_DECL_OVERRIDE
{
QDBusConnectionPrivate::d(connection)->deliverCall(object, flags, message, metaTypes, id());
}
@@ -113,7 +113,7 @@ public:
{ }
~QDBusActivateObjectEvent();
- void placeMetaCall(QObject *);
+ void placeMetaCall(QObject *) Q_DECL_OVERRIDE;
private:
QDBusConnection connection; // just for refcounting
diff --git a/src/dbus/qdbusinterface.h b/src/dbus/qdbusinterface.h
index 04adaced88..8e6fe02f1f 100644
--- a/src/dbus/qdbusinterface.h
+++ b/src/dbus/qdbusinterface.h
@@ -55,9 +55,9 @@ public:
QObject *parent = 0);
~QDBusInterface();
- virtual const QMetaObject *metaObject() const;
- virtual void *qt_metacast(const char *);
- virtual int qt_metacall(QMetaObject::Call, int, void **);
+ virtual const QMetaObject *metaObject() const Q_DECL_OVERRIDE;
+ virtual void *qt_metacast(const char *) Q_DECL_OVERRIDE;
+ virtual int qt_metacall(QMetaObject::Call, int, void **) Q_DECL_OVERRIDE;
private:
Q_DECLARE_PRIVATE(QDBusInterface)
diff --git a/src/dbus/qdbusmarshaller.cpp b/src/dbus/qdbusmarshaller.cpp
index 0e21e2f282..60b6db6aa6 100644
--- a/src/dbus/qdbusmarshaller.cpp
+++ b/src/dbus/qdbusmarshaller.cpp
@@ -62,55 +62,65 @@ inline QString QDBusMarshaller::currentSignature()
inline void QDBusMarshaller::append(uchar arg)
{
- qIterAppend(&iterator, ba, DBUS_TYPE_BYTE, &arg);
+ if (!skipSignature)
+ qIterAppend(&iterator, ba, DBUS_TYPE_BYTE, &arg);
}
inline void QDBusMarshaller::append(bool arg)
{
dbus_bool_t cast = arg;
- qIterAppend(&iterator, ba, DBUS_TYPE_BOOLEAN, &cast);
+ if (!skipSignature)
+ qIterAppend(&iterator, ba, DBUS_TYPE_BOOLEAN, &cast);
}
inline void QDBusMarshaller::append(short arg)
{
- qIterAppend(&iterator, ba, DBUS_TYPE_INT16, &arg);
+ if (!skipSignature)
+ qIterAppend(&iterator, ba, DBUS_TYPE_INT16, &arg);
}
inline void QDBusMarshaller::append(ushort arg)
{
- qIterAppend(&iterator, ba, DBUS_TYPE_UINT16, &arg);
+ if (!skipSignature)
+ qIterAppend(&iterator, ba, DBUS_TYPE_UINT16, &arg);
}
inline void QDBusMarshaller::append(int arg)
{
- qIterAppend(&iterator, ba, DBUS_TYPE_INT32, &arg);
+ if (!skipSignature)
+ qIterAppend(&iterator, ba, DBUS_TYPE_INT32, &arg);
}
inline void QDBusMarshaller::append(uint arg)
{
- qIterAppend(&iterator, ba, DBUS_TYPE_UINT32, &arg);
+ if (!skipSignature)
+ qIterAppend(&iterator, ba, DBUS_TYPE_UINT32, &arg);
}
inline void QDBusMarshaller::append(qlonglong arg)
{
- qIterAppend(&iterator, ba, DBUS_TYPE_INT64, &arg);
+ if (!skipSignature)
+ qIterAppend(&iterator, ba, DBUS_TYPE_INT64, &arg);
}
inline void QDBusMarshaller::append(qulonglong arg)
{
- qIterAppend(&iterator, ba, DBUS_TYPE_UINT64, &arg);
+ if (!skipSignature)
+ qIterAppend(&iterator, ba, DBUS_TYPE_UINT64, &arg);
}
inline void QDBusMarshaller::append(double arg)
{
- qIterAppend(&iterator, ba, DBUS_TYPE_DOUBLE, &arg);
+ if (!skipSignature)
+ qIterAppend(&iterator, ba, DBUS_TYPE_DOUBLE, &arg);
}
void QDBusMarshaller::append(const QString &arg)
{
QByteArray data = arg.toUtf8();
const char *cdata = data.constData();
- qIterAppend(&iterator, ba, DBUS_TYPE_STRING, &cdata);
+ if (!skipSignature)
+ qIterAppend(&iterator, ba, DBUS_TYPE_STRING, &cdata);
}
inline void QDBusMarshaller::append(const QDBusObjectPath &arg)
@@ -120,7 +130,8 @@ inline void QDBusMarshaller::append(const QDBusObjectPath &arg)
error(QLatin1String("Invalid object path passed in arguments"));
} else {
const char *cdata = data.constData();
- qIterAppend(&iterator, ba, DBUS_TYPE_OBJECT_PATH, &cdata);
+ if (!skipSignature)
+ qIterAppend(&iterator, ba, DBUS_TYPE_OBJECT_PATH, &cdata);
}
}
@@ -131,7 +142,8 @@ inline void QDBusMarshaller::append(const QDBusSignature &arg)
error(QLatin1String("Invalid signature passed in arguments"));
} else {
const char *cdata = data.constData();
- qIterAppend(&iterator, ba, DBUS_TYPE_SIGNATURE, &cdata);
+ if (!skipSignature)
+ qIterAppend(&iterator, ba, DBUS_TYPE_SIGNATURE, &cdata);
}
}
@@ -141,14 +153,16 @@ inline void QDBusMarshaller::append(const QDBusUnixFileDescriptor &arg)
if (!ba && fd == -1) {
error(QLatin1String("Invalid file descriptor passed in arguments"));
} else {
- qIterAppend(&iterator, ba, DBUS_TYPE_UNIX_FD, &fd);
+ if (!skipSignature)
+ qIterAppend(&iterator, ba, DBUS_TYPE_UNIX_FD, &fd);
}
}
inline void QDBusMarshaller::append(const QByteArray &arg)
{
if (ba) {
- *ba += DBUS_TYPE_ARRAY_AS_STRING DBUS_TYPE_BYTE_AS_STRING;
+ if (!skipSignature)
+ *ba += DBUS_TYPE_ARRAY_AS_STRING DBUS_TYPE_BYTE_AS_STRING;
return;
}
@@ -163,7 +177,8 @@ inline void QDBusMarshaller::append(const QByteArray &arg)
inline bool QDBusMarshaller::append(const QDBusVariant &arg)
{
if (ba) {
- *ba += DBUS_TYPE_VARIANT_AS_STRING;
+ if (!skipSignature)
+ *ba += DBUS_TYPE_VARIANT_AS_STRING;
return true;
}
@@ -206,7 +221,8 @@ inline bool QDBusMarshaller::append(const QDBusVariant &arg)
inline void QDBusMarshaller::append(const QStringList &arg)
{
if (ba) {
- *ba += DBUS_TYPE_ARRAY_AS_STRING DBUS_TYPE_STRING_AS_STRING;
+ if (!skipSignature)
+ *ba += DBUS_TYPE_ARRAY_AS_STRING DBUS_TYPE_STRING_AS_STRING;
return;
}
@@ -288,25 +304,30 @@ void QDBusMarshaller::open(QDBusMarshaller &sub, int code, const char *signature
sub.ba = ba;
sub.ok = true;
sub.capabilities = capabilities;
+ sub.skipSignature = skipSignature;
- if (ba)
- switch (code) {
- case DBUS_TYPE_ARRAY:
- *ba += char(code);
- *ba += signature;
- // fall through
-
- case DBUS_TYPE_DICT_ENTRY:
- sub.closeCode = 0;
- break;
-
- case DBUS_TYPE_STRUCT:
- *ba += DBUS_STRUCT_BEGIN_CHAR;
- sub.closeCode = DBUS_STRUCT_END_CHAR;
- break;
+ if (ba) {
+ if (!skipSignature) {
+ switch (code) {
+ case DBUS_TYPE_ARRAY:
+ *ba += char(code);
+ *ba += signature;
+ // fall through
+
+ case DBUS_TYPE_DICT_ENTRY:
+ sub.closeCode = 0;
+ sub.skipSignature = true;
+ break;
+
+ case DBUS_TYPE_STRUCT:
+ *ba += DBUS_STRUCT_BEGIN_CHAR;
+ sub.closeCode = DBUS_STRUCT_END_CHAR;
+ break;
+ }
}
- else
+ } else {
q_dbus_message_iter_open_container(&iterator, code, signature, &sub.iterator);
+ }
}
QDBusMarshaller *QDBusMarshaller::beginCommon(int code, const char *signature)
@@ -338,7 +359,7 @@ QDBusMarshaller *QDBusMarshaller::endCommon()
void QDBusMarshaller::close()
{
if (ba) {
- if (closeCode)
+ if (!skipSignature && closeCode)
*ba += closeCode;
} else if (parent) {
q_dbus_message_iter_close_container(&parent->iterator, &iterator);
diff --git a/src/dbus/qdbusmetaobject.cpp b/src/dbus/qdbusmetaobject.cpp
index 9f07817df0..1fe5428f06 100644
--- a/src/dbus/qdbusmetaobject.cpp
+++ b/src/dbus/qdbusmetaobject.cpp
@@ -123,17 +123,6 @@ QDBusMetaObjectGenerator::QDBusMetaObjectGenerator(const QString &interfaceName,
static int registerComplexDBusType(const char *typeName)
{
struct QDBusRawTypeHandler {
- static void destroy(void *)
- {
- qFatal("Cannot destroy placeholder type QDBusRawType");
- }
-
- static void *create(const void *)
- {
- qFatal("Cannot create placeholder type QDBusRawType");
- return 0;
- }
-
static void destruct(void *)
{
qFatal("Cannot destruct placeholder type QDBusRawType");
@@ -146,8 +135,7 @@ static int registerComplexDBusType(const char *typeName)
}
};
- return QMetaType::registerNormalizedType(typeName, QDBusRawTypeHandler::destroy,
- QDBusRawTypeHandler::create,
+ return QMetaType::registerNormalizedType(typeName,
QDBusRawTypeHandler::destruct,
QDBusRawTypeHandler::construct,
sizeof(void *),
diff --git a/src/dbus/qdbuspendingreply.h b/src/dbus/qdbuspendingreply.h
index 2f7932af2f..8558c0a51d 100644
--- a/src/dbus/qdbuspendingreply.h
+++ b/src/dbus/qdbuspendingreply.h
@@ -139,9 +139,8 @@ public:
inline int count() const { return Count; }
-#if defined(Q_QDOC) || defined(Q_NO_USING_KEYWORD)
- inline QVariant argumentAt(int index) const
- { return QDBusPendingReplyData::argumentAt(index); }
+#if defined(Q_QDOC)
+ QVariant argumentAt(int index) const;
#else
using QDBusPendingReplyData::argumentAt;
#endif
diff --git a/src/gui/Qt5GuiConfigExtras.cmake.in b/src/gui/Qt5GuiConfigExtras.cmake.in
index 9a846d435e..07869efd7d 100644
--- a/src/gui/Qt5GuiConfigExtras.cmake.in
+++ b/src/gui/Qt5GuiConfigExtras.cmake.in
@@ -57,9 +57,6 @@ set(Qt5Gui_OPENGL_LIBRARIES Qt5::Gui_GLESv2)
set(_GL_INCDIRS $$CMAKE_GL_INCDIRS)
find_path(_qt5gui_OPENGL_INCLUDE_DIR $$CMAKE_GL_HEADER_NAME
PATHS ${_GL_INCDIRS}
-!!IF !mac
- NO_DEFAULT_PATH
-!!ENDIF
)
if (NOT _qt5gui_OPENGL_INCLUDE_DIR)
message(FATAL_ERROR \"Failed to find \\\"$$CMAKE_GL_HEADER_NAME\\\" in \\\"${_GL_INCDIRS}\\\".\")
diff --git a/src/gui/accessible/qaccessible.cpp b/src/gui/accessible/qaccessible.cpp
index a7053aa3da..7abe40d30c 100644
--- a/src/gui/accessible/qaccessible.cpp
+++ b/src/gui/accessible/qaccessible.cpp
@@ -455,14 +455,13 @@ QT_BEGIN_NAMESPACE
Synonym for unsigned, used by the QAccessibleInterface cache.
*/
+#ifndef QT_NO_ACCESSIBILITY
/* accessible widgets plugin discovery stuff */
-#ifndef QT_NO_ACCESSIBILITY
#ifndef QT_NO_LIBRARY
Q_GLOBAL_STATIC_WITH_ARGS(QFactoryLoader, loader,
(QAccessibleFactoryInterface_iid, QLatin1String("/accessible")))
#endif
-#endif
// FIXME turn this into one global static struct
Q_GLOBAL_STATIC(QList<QAccessible::InterfaceFactory>, qAccessibleFactories)
@@ -475,13 +474,11 @@ QAccessible::RootObjectHandler QAccessible::rootObjectHandler = 0;
static bool cleanupAdded = false;
-#ifndef QT_NO_ACCESSIBILITY
static QPlatformAccessibility *platformAccessibility()
{
QPlatformIntegration *pfIntegration = QGuiApplicationPrivate::platformIntegration();
return pfIntegration ? pfIntegration->accessibility() : 0;
}
-#endif
/*!
\fn QAccessible::QAccessible()
@@ -497,10 +494,8 @@ static QPlatformAccessibility *platformAccessibility()
*/
void QAccessible::cleanup()
{
-#ifndef QT_NO_ACCESSIBILITY
if (QPlatformAccessibility *pfAccessibility = platformAccessibility())
pfAccessibility->cleanup();
-#endif
}
static void qAccessibleCleanup()
@@ -684,7 +679,6 @@ QAccessibleInterface *QAccessible::queryAccessibleInterface(QObject *object)
return iface;
}
}
-#ifndef QT_NO_ACCESSIBILITY
#ifndef QT_NO_LIBRARY
// Find a QAccessiblePlugin (factory) for the class name. If there's
// no entry in the cache try to create it using the plugin loader.
@@ -708,18 +702,15 @@ QAccessibleInterface *QAccessible::queryAccessibleInterface(QObject *object)
return result;
}
#endif
-#endif
mo = mo->superClass();
}
-#ifndef QT_NO_ACCESSIBILITY
if (object == qApp) {
QAccessibleInterface *appInterface = new QAccessibleApplication;
QAccessibleCache::instance()->insert(object, appInterface);
Q_ASSERT(QAccessibleCache::instance()->objectToId.contains(qApp));
return appInterface;
}
-#endif
return 0;
}
@@ -789,10 +780,8 @@ QAccessibleInterface *QAccessible::accessibleInterface(Id id)
*/
bool QAccessible::isActive()
{
-#ifndef QT_NO_ACCESSIBILITY
if (QPlatformAccessibility *pfAccessibility = platformAccessibility())
return pfAccessibility->isActive();
-#endif
return false;
}
@@ -827,10 +816,8 @@ void QAccessible::setRootObject(QObject *object)
return;
}
-#ifndef QT_NO_ACCESSIBILITY
if (QPlatformAccessibility *pfAccessibility = platformAccessibility())
pfAccessibility->setRootObject(object);
-#endif
}
/*!
@@ -863,7 +850,6 @@ void QAccessible::updateAccessibility(QAccessibleEvent *event)
if (!isActive() || !event->accessibleInterface())
return;
-#ifndef QT_NO_ACCESSIBILITY
if (event->type() == QAccessible::TableModelChanged) {
QAccessibleInterface *iface = event->accessibleInterface();
if (iface && iface->tableInterface())
@@ -877,7 +863,6 @@ void QAccessible::updateAccessibility(QAccessibleEvent *event)
if (QPlatformAccessibility *pfAccessibility = platformAccessibility())
pfAccessibility->notifyAccessibilityUpdate(event);
-#endif
}
#if QT_DEPRECATED_SINCE(5, 0)
@@ -1824,7 +1809,7 @@ QDebug operator<<(QDebug d, const QAccessibleEvent &ev)
d.nospace() << ")";
return d.space();
}
-
+#endif // QT_NO_DEBUGSTREAM
/*!
\class QAccessibleTextInterface
@@ -2626,7 +2611,14 @@ struct QAccessibleActionStrings
decreaseAction(QStringLiteral(QT_TRANSLATE_NOOP("QAccessibleActionInterface", "Decrease"))),
showMenuAction(QStringLiteral(QT_TRANSLATE_NOOP("QAccessibleActionInterface", "ShowMenu"))),
setFocusAction(QStringLiteral(QT_TRANSLATE_NOOP("QAccessibleActionInterface", "SetFocus"))),
- toggleAction(QStringLiteral(QT_TRANSLATE_NOOP("QAccessibleActionInterface", "Toggle"))) {}
+ toggleAction(QStringLiteral(QT_TRANSLATE_NOOP("QAccessibleActionInterface", "Toggle"))),
+ scrollLeftAction(QStringLiteral(QT_TRANSLATE_NOOP("QAccessibleActionInterface", "Scroll Left"))),
+ scrollRightAction(QStringLiteral(QT_TRANSLATE_NOOP("QAccessibleActionInterface", "Scroll Right"))),
+ scrollUpAction(QStringLiteral(QT_TRANSLATE_NOOP("QAccessibleActionInterface", "Scroll Up"))),
+ scrollDownAction(QStringLiteral(QT_TRANSLATE_NOOP("QAccessibleActionInterface", "Scroll Down"))),
+ previousPageAction(QStringLiteral(QT_TRANSLATE_NOOP("QAccessibleActionInterface", "Previous Page"))),
+ nextPageAction(QStringLiteral(QT_TRANSLATE_NOOP("QAccessibleActionInterface", "Next Page")))
+ {}
const QString pressAction;
const QString increaseAction;
@@ -2634,6 +2626,12 @@ struct QAccessibleActionStrings
const QString showMenuAction;
const QString setFocusAction;
const QString toggleAction;
+ const QString scrollLeftAction;
+ const QString scrollRightAction;
+ const QString scrollUpAction;
+ const QString scrollDownAction;
+ const QString previousPageAction;
+ const QString nextPageAction;
QString localizedDescription(const QString &actionName)
{
@@ -2649,6 +2647,20 @@ struct QAccessibleActionStrings
return QAccessibleActionInterface::tr("Sets the focus");
else if (actionName == toggleAction)
return QAccessibleActionInterface::tr("Toggles the state");
+ else if (actionName == scrollLeftAction)
+ return QAccessibleActionInterface::tr("Scrolls to the left");
+ else if (actionName == scrollRightAction)
+ return QAccessibleActionInterface::tr("Scrolls to the right");
+ else if (actionName == scrollUpAction)
+ return QAccessibleActionInterface::tr("Scrolls up");
+ else if (actionName == scrollDownAction)
+ return QAccessibleActionInterface::tr("Scrolls down");
+ else if (actionName == previousPageAction)
+ return QAccessibleActionInterface::tr("Goes back a page");
+ else if (actionName == nextPageAction)
+ return QAccessibleActionInterface::tr("Goes to the next page");
+
+
return QString();
}
};
@@ -2719,14 +2731,67 @@ const QString &QAccessibleActionInterface::toggleAction()
return accessibleActionStrings()->toggleAction;
}
+/*!
+ Returns the name of the scroll left default action.
+ \sa actionNames(), localizedActionName()
+ */
+const QString &QAccessibleActionInterface::scrollLeftAction()
+{
+ return accessibleActionStrings()->scrollLeftAction;
+}
+
+/*!
+ Returns the name of the scroll right default action.
+ \sa actionNames(), localizedActionName()
+ */
+const QString &QAccessibleActionInterface::scrollRightAction()
+{
+ return accessibleActionStrings()->scrollRightAction;
+}
+
+/*!
+ Returns the name of the scroll up default action.
+ \sa actionNames(), localizedActionName()
+ */
+const QString &QAccessibleActionInterface::scrollUpAction()
+{
+ return accessibleActionStrings()->scrollUpAction;
+}
+
+/*!
+ Returns the name of the scroll down default action.
+ \sa actionNames(), localizedActionName()
+ */
+const QString &QAccessibleActionInterface::scrollDownAction()
+{
+ return accessibleActionStrings()->scrollDownAction;
+}
+
+/*!
+ Returns the name of the previous page default action.
+ \sa actionNames(), localizedActionName()
+ */
+const QString &QAccessibleActionInterface::previousPageAction()
+{
+ return accessibleActionStrings()->previousPageAction;
+}
+
+/*!
+ Returns the name of the next page default action.
+ \sa actionNames(), localizedActionName()
+ */
+const QString &QAccessibleActionInterface::nextPageAction()
+{
+ return accessibleActionStrings()->nextPageAction;
+}
+
/*! \internal */
QString qAccessibleLocalizedActionDescription(const QString &actionName)
{
return accessibleActionStrings()->localizedDescription(actionName);
}
-
-#endif
+#endif // QT_NO_ACCESSIBILITY
QT_END_NAMESPACE
diff --git a/src/gui/accessible/qaccessible.h b/src/gui/accessible/qaccessible.h
index 7b5d7a1bfd..1d935cbf2d 100644
--- a/src/gui/accessible/qaccessible.h
+++ b/src/gui/accessible/qaccessible.h
@@ -635,6 +635,12 @@ public:
static const QString &showMenuAction();
static const QString &setFocusAction();
static const QString &toggleAction();
+ static const QString &scrollLeftAction();
+ static const QString &scrollRightAction();
+ static const QString &scrollUpAction();
+ static const QString &scrollDownAction();
+ static const QString &nextPageAction();
+ static const QString &previousPageAction();
};
class Q_GUI_EXPORT QAccessibleImageInterface
diff --git a/src/gui/accessible/qaccessiblecache.cpp b/src/gui/accessible/qaccessiblecache.cpp
index cf5290ed38..825ef032cb 100644
--- a/src/gui/accessible/qaccessiblecache.cpp
+++ b/src/gui/accessible/qaccessiblecache.cpp
@@ -33,6 +33,8 @@
#include "qaccessiblecache_p.h"
+#ifndef QT_NO_ACCESSIBILITY
+
QT_BEGIN_NAMESPACE
/*!
@@ -119,3 +121,5 @@ void QAccessibleCache::deleteInterface(QAccessible::Id id, QObject *obj)
}
QT_END_NAMESPACE
+
+#endif
diff --git a/src/gui/accessible/qaccessiblecache_p.h b/src/gui/accessible/qaccessiblecache_p.h
index 97d2b41bbb..9866b8fdb1 100644
--- a/src/gui/accessible/qaccessiblecache_p.h
+++ b/src/gui/accessible/qaccessiblecache_p.h
@@ -51,6 +51,8 @@
#include "qaccessible.h"
+#ifndef QT_NO_ACCESSIBILITY
+
Q_FORWARD_DECLARE_OBJC_CLASS(QT_MANGLE_NAMESPACE(QMacAccessibilityElement));
QT_BEGIN_NAMESPACE
@@ -90,4 +92,6 @@ private:
QT_END_NAMESPACE
+#endif // QT_NO_ACCESSIBILITY
+
#endif
diff --git a/src/gui/gui.pro b/src/gui/gui.pro
index af84eb7342..aa05d72a3d 100644
--- a/src/gui/gui.pro
+++ b/src/gui/gui.pro
@@ -9,11 +9,13 @@ QMAKE_DOCS = $$PWD/doc/qtgui.qdocconf
MODULE_PLUGIN_TYPES = \
platforms \
+ xcbglintegrations \
platformthemes \
platforminputcontexts \
generic \
iconengines \
- imageformats
+ imageformats \
+ egldeviceintegrations
# This is here only because the platform plugin is no module, obviously.
win32:contains(QT_CONFIG, angle)|contains(QT_CONFIG, dynamicgl) {
diff --git a/src/gui/image/qbmphandler.cpp b/src/gui/image/qbmphandler.cpp
index 21c1a2f813..bf3563932d 100644
--- a/src/gui/image/qbmphandler.cpp
+++ b/src/gui/image/qbmphandler.cpp
@@ -791,6 +791,10 @@ bool QBmpHandler::write(const QImage &img)
case QImage::Format_ARGB32:
image = img;
break;
+ case QImage::Format_Alpha8:
+ case QImage::Format_Grayscale8:
+ image = img.convertToFormat(QImage::Format_Indexed8);
+ break;
default:
if (img.hasAlphaChannel())
image = img.convertToFormat(QImage::Format_ARGB32);
diff --git a/src/gui/image/qgifhandler_p.h b/src/gui/image/qgifhandler_p.h
index 40bff19e7a..08910bf111 100644
--- a/src/gui/image/qgifhandler_p.h
+++ b/src/gui/image/qgifhandler_p.h
@@ -63,22 +63,22 @@ public:
QGifHandler();
~QGifHandler();
- bool canRead() const;
- bool read(QImage *image);
- bool write(const QImage &image);
+ bool canRead() const Q_DECL_OVERRIDE;
+ bool read(QImage *image) Q_DECL_OVERRIDE;
+ bool write(const QImage &image) Q_DECL_OVERRIDE;
- QByteArray name() const;
+ QByteArray name() const Q_DECL_OVERRIDE;
static bool canRead(QIODevice *device);
- QVariant option(ImageOption option) const;
- void setOption(ImageOption option, const QVariant &value);
- bool supportsOption(ImageOption option) const;
+ QVariant option(ImageOption option) const Q_DECL_OVERRIDE;
+ void setOption(ImageOption option, const QVariant &value) Q_DECL_OVERRIDE;
+ bool supportsOption(ImageOption option) const Q_DECL_OVERRIDE;
- int imageCount() const;
- int loopCount() const;
- int nextImageDelay() const;
- int currentImageNumber() const;
+ int imageCount() const Q_DECL_OVERRIDE;
+ int loopCount() const Q_DECL_OVERRIDE;
+ int nextImageDelay() const Q_DECL_OVERRIDE;
+ int currentImageNumber() const Q_DECL_OVERRIDE;
private:
bool imageIsComing() const;
diff --git a/src/gui/image/qicon.cpp b/src/gui/image/qicon.cpp
index 6f6bf158c8..d885729cbd 100644
--- a/src/gui/image/qicon.cpp
+++ b/src/gui/image/qicon.cpp
@@ -1024,7 +1024,7 @@ void QIcon::addFile(const QString &fileName, const QSize &size, Mode mode, State
d->engine->addFile(fileName, size, mode, state);
// Check if a "@2x" file exists and add it.
- static bool disable2xImageLoading = !qgetenv("QT_HIGHDPI_DISABLE_2X_IMAGE_LOADING").isEmpty();
+ static bool disable2xImageLoading = !qEnvironmentVariableIsEmpty("QT_HIGHDPI_DISABLE_2X_IMAGE_LOADING");
if (!disable2xImageLoading && qApp->devicePixelRatio() > 1.0) {
int dotIndex = fileName.lastIndexOf(QLatin1Char('.'));
if (dotIndex != -1) {
diff --git a/src/gui/image/qicon_p.h b/src/gui/image/qicon_p.h
index 4896aa89c0..e5ae8ec431 100644
--- a/src/gui/image/qicon_p.h
+++ b/src/gui/image/qicon_p.h
@@ -104,18 +104,18 @@ public:
QPixmapIconEngine();
QPixmapIconEngine(const QPixmapIconEngine &);
~QPixmapIconEngine();
- void paint(QPainter *painter, const QRect &rect, QIcon::Mode mode, QIcon::State state);
- QPixmap pixmap(const QSize &size, QIcon::Mode mode, QIcon::State state);
+ void paint(QPainter *painter, const QRect &rect, QIcon::Mode mode, QIcon::State state) Q_DECL_OVERRIDE;
+ QPixmap pixmap(const QSize &size, QIcon::Mode mode, QIcon::State state) Q_DECL_OVERRIDE;
QPixmapIconEngineEntry *bestMatch(const QSize &size, QIcon::Mode mode, QIcon::State state, bool sizeOnly);
- QSize actualSize(const QSize &size, QIcon::Mode mode, QIcon::State state);
- void addPixmap(const QPixmap &pixmap, QIcon::Mode mode, QIcon::State state);
- void addFile(const QString &fileName, const QSize &size, QIcon::Mode mode, QIcon::State state);
-
- QString key() const;
- QIconEngine *clone() const;
- bool read(QDataStream &in);
- bool write(QDataStream &out) const;
- void virtual_hook(int id, void *data);
+ QSize actualSize(const QSize &size, QIcon::Mode mode, QIcon::State state) Q_DECL_OVERRIDE;
+ void addPixmap(const QPixmap &pixmap, QIcon::Mode mode, QIcon::State state) Q_DECL_OVERRIDE;
+ void addFile(const QString &fileName, const QSize &size, QIcon::Mode mode, QIcon::State state) Q_DECL_OVERRIDE;
+
+ QString key() const Q_DECL_OVERRIDE;
+ QIconEngine *clone() const Q_DECL_OVERRIDE;
+ bool read(QDataStream &in) Q_DECL_OVERRIDE;
+ bool write(QDataStream &out) const Q_DECL_OVERRIDE;
+ void virtual_hook(int id, void *data) Q_DECL_OVERRIDE;
private:
QPixmapIconEngineEntry *tryMatch(const QSize &size, QIcon::Mode mode, QIcon::State state);
diff --git a/src/gui/image/qimage.cpp b/src/gui/image/qimage.cpp
index 887a7c29eb..38fa2df906 100644
--- a/src/gui/image/qimage.cpp
+++ b/src/gui/image/qimage.cpp
@@ -653,7 +653,8 @@ bool QImageData::checkForAlphaPixels() const
The following image formats are available in Qt. Values from Format_ARGB8565_Premultiplied
to Format_ARGB4444_Premultiplied were added in Qt 4.4. Values Format_RGBX8888, Format_RGBA8888
and Format_RGBA8888_Premultiplied were added in Qt 5.2. Values Format_BGR30, Format_A2BGR30_Premultiplied,
- Format_RGB30, Format_A2RGB30_Premultiplied were added in Qt 5.4.
+ Format_RGB30, Format_A2RGB30_Premultiplied were added in Qt 5.4. Format_Alpha8 and Format_Grayscale8
+ were added in Qt 5.5.
See the notes after the table.
\value Format_Invalid The image is invalid.
@@ -709,6 +710,8 @@ bool QImageData::checkForAlphaPixels() const
\value Format_A2BGR30_Premultiplied The image is stored using a 32-bit premultiplied ABGR format (2-10-10-10).
\value Format_RGB30 The image is stored using a 32-bit RGB format (x-10-10-10).
\value Format_A2RGB30_Premultiplied The image is stored using a 32-bit premultiplied ARGB format (2-10-10-10).
+ \value Format_Alpha8 The image is stored using an 8-bit alpha only format.
+ \value Format_Grayscale8 The image is stored using an 8-bit grayscale format.
\note Drawing into a QImage with QImage::Format_Indexed8 is not
supported.
@@ -2352,6 +2355,10 @@ bool QImage::allGray() const
return false;
}
return true;
+ case Format_Alpha8:
+ return false;
+ case Format_Grayscale8:
+ return true;
case Format_RGB32:
case Format_ARGB32:
case Format_ARGB32_Premultiplied:
@@ -2405,9 +2412,9 @@ bool QImage::allGray() const
/*!
For 32-bit images, this function is equivalent to allGray().
- For 8-bpp images, this function returns \c true if color(i) is
- QRgb(i, i, i) for all indexes of the color table; otherwise
- returns \c false.
+ For color indexed images, this function returns \c true if
+ color(i) is QRgb(i, i, i) for all indexes of the color table;
+ otherwise returns \c false.
\sa allGray(), {QImage#Image Formats}{Image Formats}
*/
@@ -2416,12 +2423,19 @@ bool QImage::isGrayscale() const
if (!d)
return false;
+ if (d->format == QImage::Format_Alpha8)
+ return false;
+
+ if (d->format == QImage::Format_Grayscale8)
+ return true;
+
switch (depth()) {
case 32:
case 24:
case 16:
return allGray();
case 8: {
+ Q_ASSERT(d->format == QImage::Format_Indexed8);
for (int i = 0; i < colorCount(); i++)
if (d->colortable.at(i) != qRgb(i,i,i))
return false;
@@ -2998,6 +3012,9 @@ QImage QImage::rgbSwapped_helper() const
case NImageFormats:
Q_ASSERT(false);
break;
+ case Format_Alpha8:
+ case Format_Grayscale8:
+ return *this;
case Format_Mono:
case Format_MonoLSB:
case Format_Indexed8:
@@ -3084,6 +3101,9 @@ void QImage::rgbSwapped_inplace()
case NImageFormats:
Q_ASSERT(false);
break;
+ case Format_Alpha8:
+ case Format_Grayscale8:
+ return;
case Format_Mono:
case Format_MonoLSB:
case Format_Indexed8:
@@ -4017,7 +4037,7 @@ void QImage::setAlphaChannel(const QImage &alphaChannel)
return;
// Slight optimization since alphachannels are returned as 8-bit grays.
- if (alphaChannel.d->depth == 8 && alphaChannel.isGrayscale()) {
+ if (alphaChannel.format() == QImage::Format_Alpha8 ||( alphaChannel.d->depth == 8 && alphaChannel.isGrayscale())) {
const uchar *src_data = alphaChannel.d->data;
const uchar *dest_data = d->data;
for (int y=0; y<h; ++y) {
@@ -4075,9 +4095,13 @@ void QImage::setAlphaChannel(const QImage &alphaChannel)
Most usecases for this function can be replaced with QPainter and
using composition modes.
+ Note this returns a color-indexed image if you want the alpha channel in
+ the alpha8 format instead use convertToFormat(Format_Alpha8) on the source
+ image.
+
\warning This is an expensive function.
- \sa setAlphaChannel(), hasAlphaChannel(),
+ \sa setAlphaChannel(), hasAlphaChannel(), convertToFormat(),
{QPixmap#Pixmap Information}{Pixmap},
{QImage#Image Transformations}{Image Transformations}
*/
@@ -4087,6 +4111,9 @@ QImage QImage::alphaChannel() const
if (!d)
return QImage();
+ if (d->format == QImage::Format_Alpha8)
+ return *this;
+
int w = d->width;
int h = d->height;
@@ -4264,6 +4291,8 @@ static QImage rotated90(const QImage &image) {
reinterpret_cast<quint16*>(out.bits()),
out.bytesPerLine());
break;
+ case QImage::Format_Alpha8:
+ case QImage::Format_Grayscale8:
case QImage::Format_Indexed8:
qt_memrotate270(reinterpret_cast<const quint8*>(image.bits()),
w, h, image.bytesPerLine(),
@@ -4330,6 +4359,8 @@ static QImage rotated270(const QImage &image) {
reinterpret_cast<quint16*>(out.bits()),
out.bytesPerLine());
break;
+ case QImage::Format_Alpha8:
+ case QImage::Format_Grayscale8:
case QImage::Format_Indexed8:
qt_memrotate90(reinterpret_cast<const quint8*>(image.bits()),
w, h, image.bytesPerLine(),
@@ -4481,24 +4512,17 @@ QImage QImage::transformed(const QTransform &matrix, Qt::TransformationMode mode
dImage.d->dpmx = dotsPerMeterX();
dImage.d->dpmy = dotsPerMeterY();
- switch (bpp) {
- // initizialize the data
- case 8:
- if (dImage.d->colortable.size() < 256) {
- // colors are left in the color table, so pick that one as transparent
- dImage.d->colortable.append(0x0);
- memset(dImage.bits(), dImage.d->colortable.size() - 1, dImage.byteCount());
- } else {
- memset(dImage.bits(), 0, dImage.byteCount());
- }
- break;
- case 1:
- case 16:
- case 24:
- case 32:
- memset(dImage.bits(), 0x00, dImage.byteCount());
- break;
- }
+ // initizialize the data
+ if (d->format == QImage::Format_Indexed8) {
+ if (dImage.d->colortable.size() < 256) {
+ // colors are left in the color table, so pick that one as transparent
+ dImage.d->colortable.append(0x0);
+ memset(dImage.bits(), dImage.d->colortable.size() - 1, dImage.byteCount());
+ } else {
+ memset(dImage.bits(), 0, dImage.byteCount());
+ }
+ } else
+ memset(dImage.bits(), 0x00, dImage.byteCount());
if (target_format >= QImage::Format_RGB32) {
// Prevent QPainter from applying devicePixelRatio corrections
@@ -4942,6 +4966,32 @@ static Q_CONSTEXPR QPixelFormat pixelformats[] = {
/*PREMULTIPLIED*/ QPixelFormat::Premultiplied,
/*INTERPRETATION*/ QPixelFormat::UnsignedInteger,
/*BYTE ORDER*/ QPixelFormat::CurrentSystemEndian),
+ //QImage::Format_Alpha8:
+ QPixelFormat(QPixelFormat::Alpha,
+ /*First*/ 0,
+ /*SECOND*/ 0,
+ /*THIRD*/ 0,
+ /*FOURTH*/ 0,
+ /*FIFTH*/ 0,
+ /*ALPHA*/ 8,
+ /*ALPHA USAGE*/ QPixelFormat::UsesAlpha,
+ /*ALPHA POSITION*/ QPixelFormat::AtBeginning,
+ /*PREMULTIPLIED*/ QPixelFormat::Premultiplied,
+ /*INTERPRETATION*/ QPixelFormat::UnsignedByte,
+ /*BYTE ORDER*/ QPixelFormat::CurrentSystemEndian),
+ //QImage::Format_Grayscale8:
+ QPixelFormat(QPixelFormat::Grayscale,
+ /*GRAY*/ 8,
+ /*SECOND*/ 0,
+ /*THIRD*/ 0,
+ /*FOURTH*/ 0,
+ /*FIFTH*/ 0,
+ /*ALPHA*/ 0,
+ /*ALPHA USAGE*/ QPixelFormat::IgnoresAlpha,
+ /*ALPHA POSITION*/ QPixelFormat::AtBeginning,
+ /*PREMULTIPLIED*/ QPixelFormat::NotPremultiplied,
+ /*INTERPRETATION*/ QPixelFormat::UnsignedByte,
+ /*BYTE ORDER*/ QPixelFormat::CurrentSystemEndian),
};
Q_STATIC_ASSERT(sizeof(pixelformats) / sizeof(*pixelformats) == QImage::NImageFormats);
diff --git a/src/gui/image/qimage.h b/src/gui/image/qimage.h
index 55b8690c77..8984af12d1 100644
--- a/src/gui/image/qimage.h
+++ b/src/gui/image/qimage.h
@@ -106,20 +106,16 @@ public:
Format_RGBX8888,
Format_RGBA8888,
Format_RGBA8888_Premultiplied,
-#if 0
- // reserved for future use
- Format_RGB15,
- Format_Grayscale16,
- Format_Grayscale8,
- Format_Grayscale4,
- Format_Grayscale4LSB,
- Format_Grayscale2,
- Format_Grayscale2LSB
-#endif
Format_BGR30,
Format_A2BGR30_Premultiplied,
Format_RGB30,
Format_A2RGB30_Premultiplied,
+ Format_Alpha8,
+ Format_Grayscale8,
+#if 0
+ // reserved for future use
+ Format_Grayscale16,
+#endif
#ifndef Q_QDOC
NImageFormats
#endif
@@ -155,7 +151,7 @@ public:
bool isNull() const;
- int devType() const;
+ int devType() const Q_DECL_OVERRIDE;
bool operator==(const QImage &) const;
bool operator!=(const QImage &) const;
@@ -288,7 +284,7 @@ public:
#endif
qint64 cacheKey() const;
- QPaintEngine *paintEngine() const;
+ QPaintEngine *paintEngine() const Q_DECL_OVERRIDE;
// Auxiliary data
int dotsPerMeterX() const;
@@ -321,7 +317,7 @@ public:
#endif
protected:
- virtual int metric(PaintDeviceMetric metric) const;
+ virtual int metric(PaintDeviceMetric metric) const Q_DECL_OVERRIDE;
QImage mirrored_helper(bool horizontal, bool vertical) const;
QImage rgbSwapped_helper() const;
void mirrored_inplace(bool horizontal, bool vertical);
@@ -353,13 +349,9 @@ inline void QImage::setPixel(const QPoint &pt, uint index_or_rgb) { setPixel(pt.
#if QT_DEPRECATED_SINCE(5, 0)
-#if defined(Q_CC_GNU) && !defined(Q_CC_INTEL) && (__GNUC__ * 100 + __GNUC_MINOR__ >= 406)
-# pragma GCC diagnostic push
-# pragma GCC diagnostic ignored "-Wdeprecated-declarations"
-#elif defined(Q_CC_MSVC)
-# pragma warning(push)
-# pragma warning(disable: 4996)
-#endif
+QT_WARNING_PUSH
+QT_WARNING_DISABLE_GCC("-Wdeprecated-declarations")
+QT_WARNING_DISABLE_MSVC(4996)
inline QString QImage::text(const char* key, const char* lang) const
{
@@ -431,11 +423,7 @@ inline void QImage::setText(const char* key, const char* lang, const QString &s)
setText(k, s);
}
-#if defined(Q_CC_GNU) && !defined(Q_CC_INTEL) && (__GNUC__ * 100 + __GNUC_MINOR__ >= 406)
-# pragma GCC diagnostic pop
-#elif defined(Q_CC_MSVC)
-# pragma warning(pop)
-#endif
+QT_WARNING_POP
inline int QImage::numColors() const
{
diff --git a/src/gui/image/qimage_conversions.cpp b/src/gui/image/qimage_conversions.cpp
index 858a0d9f21..2e8fc1963d 100644
--- a/src/gui/image/qimage_conversions.cpp
+++ b/src/gui/image/qimage_conversions.cpp
@@ -1861,11 +1861,154 @@ static void convert_Mono_to_Indexed8(QImageData *dest, const QImageData *src, Qt
}
}
+static void convert_Indexed8_to_Alpha8(QImageData *dest, const QImageData *src, Qt::ImageConversionFlags)
+{
+ Q_ASSERT(src->format == QImage::Format_Indexed8);
+ Q_ASSERT(dest->format == QImage::Format_Alpha8);
+
+ uchar translate[256];
+ const QVector<QRgb> &colors = src->colortable;
+ bool simpleCase = (colors.size() == 256);
+ for (int i = 0; i < colors.size(); ++i) {
+ uchar alpha = qAlpha(colors[i]);
+ translate[i] = alpha;
+ simpleCase = simpleCase && (alpha == i);
+ }
+
+ if (simpleCase)
+ memcpy(dest->data, src->data, src->bytes_per_line * src->height);
+ else {
+ int size = src->bytes_per_line * src->height;
+ for (int i = 0; i < size; ++i) {
+ dest->data[i] = translate[src->data[i]];
+ }
+ }
+}
+
+static void convert_Indexed8_to_Grayscale8(QImageData *dest, const QImageData *src, Qt::ImageConversionFlags)
+{
+ Q_ASSERT(src->format == QImage::Format_Indexed8);
+ Q_ASSERT(dest->format == QImage::Format_Grayscale8);
+
+ uchar translate[256];
+ const QVector<QRgb> &colors = src->colortable;
+ bool simpleCase = (colors.size() == 256);
+ for (int i = 0; i < colors.size(); ++i) {
+ uchar gray = qGray(colors[i]);
+ translate[i] = gray;
+ simpleCase = simpleCase && (gray == i);
+ }
+
+ if (simpleCase)
+ memcpy(dest->data, src->data, src->bytes_per_line * src->height);
+ else {
+ int size = src->bytes_per_line * src->height;
+ for (int i = 0; i < size; ++i) {
+ dest->data[i] = translate[src->data[i]];
+ }
+ }
+}
+
+static bool convert_Indexed8_to_Alpha8_inplace(QImageData *data, Qt::ImageConversionFlags)
+{
+ Q_ASSERT(data->format == QImage::Format_Indexed8);
+
+ // Just check if this is an Alpha8 in Indexed8 disguise.
+ const QVector<QRgb> &colors = data->colortable;
+ if (colors.size() != 256)
+ return false;
+ for (int i = 0; i < colors.size(); ++i) {
+ if (i != qAlpha(colors[i]))
+ return false;
+ }
+
+ data->colortable.clear();
+ data->format = QImage::Format_Alpha8;
+
+ return true;
+}
+
+static bool convert_Indexed8_to_Grayscale8_inplace(QImageData *data, Qt::ImageConversionFlags)
+{
+ Q_ASSERT(data->format == QImage::Format_Indexed8);
+
+ // Just check if this is a Grayscale8 in Indexed8 disguise.
+ const QVector<QRgb> &colors = data->colortable;
+ if (colors.size() != 256)
+ return false;
+ for (int i = 0; i < colors.size(); ++i) {
+ if (i != qGray(colors[i]))
+ return false;
+ }
+
+ data->colortable.clear();
+ data->format = QImage::Format_Grayscale8;
+
+ return true;
+}
+
+static void convert_Alpha8_to_Indexed8(QImageData *dest, const QImageData *src, Qt::ImageConversionFlags)
+{
+ Q_ASSERT(src->format == QImage::Format_Alpha8);
+ Q_ASSERT(dest->format == QImage::Format_Indexed8);
+
+ memcpy(dest->data, src->data, src->bytes_per_line * src->height);
+
+ QVector<QRgb> colors(256);
+ for (int i=0; i<256; ++i)
+ colors[i] = qRgba(0, 0, 0, i);
+
+ dest->colortable = colors;
+}
+
+static void convert_Grayscale8_to_Indexed8(QImageData *dest, const QImageData *src, Qt::ImageConversionFlags)
+{
+ Q_ASSERT(src->format == QImage::Format_Grayscale8);
+ Q_ASSERT(dest->format == QImage::Format_Indexed8);
+
+ memcpy(dest->data, src->data, src->bytes_per_line * src->height);
+
+ QVector<QRgb> colors(256);
+ for (int i=0; i<256; ++i)
+ colors[i] = qRgb(i, i, i);
+
+ dest->colortable = colors;
+}
+
+static bool convert_Alpha8_to_Indexed8_inplace(QImageData *data, Qt::ImageConversionFlags)
+{
+ Q_ASSERT(data->format == QImage::Format_Alpha8);
+
+ QVector<QRgb> colors(256);
+ for (int i=0; i<256; ++i)
+ colors[i] = qRgba(0, 0, 0, i);
+
+ data->colortable = colors;
+ data->format = QImage::Format_Indexed8;
+
+ return true;
+}
+
+static bool convert_Grayscale8_to_Indexed8_inplace(QImageData *data, Qt::ImageConversionFlags)
+{
+ Q_ASSERT(data->format == QImage::Format_Grayscale8);
+
+ QVector<QRgb> colors(256);
+ for (int i=0; i<256; ++i)
+ colors[i] = qRgb(i, i, i);
+
+ data->colortable = colors;
+ data->format = QImage::Format_Indexed8;
+
+ return true;
+}
+
+
// first index source, second dest
Image_Converter qimage_converter_map[QImage::NImageFormats][QImage::NImageFormats] =
{
{
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
},
{
0,
@@ -1886,7 +2029,7 @@ Image_Converter qimage_converter_map[QImage::NImageFormats][QImage::NImageFormat
0,
0,
0,
- 0, 0, 0, 0, 0
+ 0, 0, 0, 0, 0, 0, 0
}, // Format_Mono
{
@@ -1908,7 +2051,7 @@ Image_Converter qimage_converter_map[QImage::NImageFormats][QImage::NImageFormat
0,
0,
0,
- 0, 0, 0, 0, 0
+ 0, 0, 0, 0, 0, 0, 0
}, // Format_MonoLSB
{
@@ -1930,7 +2073,9 @@ Image_Converter qimage_converter_map[QImage::NImageFormats][QImage::NImageFormat
0,
0,
0,
- 0, 0, 0, 0, 0
+ 0, 0, 0, 0, 0,
+ convert_Indexed8_to_Alpha8,
+ convert_Indexed8_to_Grayscale8,
}, // Format_Indexed8
{
@@ -1957,6 +2102,7 @@ Image_Converter qimage_converter_map[QImage::NImageFormats][QImage::NImageFormat
convert_RGB_to_RGB30<PixelOrderBGR>,
convert_RGB_to_RGB30<PixelOrderRGB>,
convert_RGB_to_RGB30<PixelOrderRGB>,
+ 0, 0
}, // Format_RGB32
{
@@ -1983,6 +2129,7 @@ Image_Converter qimage_converter_map[QImage::NImageFormats][QImage::NImageFormat
0,
convert_RGB_to_RGB30<PixelOrderRGB>,
0,
+ 0, 0
}, // Format_ARGB32
{
@@ -2009,6 +2156,7 @@ Image_Converter qimage_converter_map[QImage::NImageFormats][QImage::NImageFormat
convert_ARGB_to_A2RGB30<PixelOrderBGR>,
convert_ARGB_PM_to_RGB30<PixelOrderRGB>,
convert_ARGB_to_A2RGB30<PixelOrderRGB>,
+ 0, 0
}, // Format_ARGB32_Premultiplied
{
@@ -2030,7 +2178,7 @@ Image_Converter qimage_converter_map[QImage::NImageFormats][QImage::NImageFormat
0,
0,
0,
- 0, 0, 0, 0, 0
+ 0, 0, 0, 0, 0, 0, 0
}, // Format_RGB16
{
@@ -2052,7 +2200,7 @@ Image_Converter qimage_converter_map[QImage::NImageFormats][QImage::NImageFormat
0,
0,
0,
- 0, 0, 0, 0, 0
+ 0, 0, 0, 0, 0, 0, 0
}, // Format_ARGB8565_Premultiplied
{
@@ -2074,7 +2222,7 @@ Image_Converter qimage_converter_map[QImage::NImageFormats][QImage::NImageFormat
0,
0,
0,
- 0, 0, 0, 0, 0
+ 0, 0, 0, 0, 0, 0, 0
}, // Format_RGB666
{
@@ -2096,7 +2244,7 @@ Image_Converter qimage_converter_map[QImage::NImageFormats][QImage::NImageFormat
0,
0,
0,
- 0, 0, 0, 0, 0
+ 0, 0, 0, 0, 0, 0, 0
}, // Format_ARGB6666_Premultiplied
{
@@ -2118,7 +2266,7 @@ Image_Converter qimage_converter_map[QImage::NImageFormats][QImage::NImageFormat
0,
0,
0,
- 0, 0, 0, 0, 0
+ 0, 0, 0, 0, 0, 0, 0
}, // Format_RGB555
{
@@ -2140,7 +2288,7 @@ Image_Converter qimage_converter_map[QImage::NImageFormats][QImage::NImageFormat
0,
0,
0,
- 0, 0, 0, 0, 0
+ 0, 0, 0, 0, 0, 0, 0
}, // Format_ARGB8555_Premultiplied
{
@@ -2162,7 +2310,7 @@ Image_Converter qimage_converter_map[QImage::NImageFormats][QImage::NImageFormat
0,
0,
0,
- 0, 0, 0, 0, 0
+ 0, 0, 0, 0, 0, 0, 0
}, // Format_RGB888
{
@@ -2184,7 +2332,7 @@ Image_Converter qimage_converter_map[QImage::NImageFormats][QImage::NImageFormat
0,
0,
0,
- 0, 0, 0, 0, 0
+ 0, 0, 0, 0, 0, 0, 0
}, // Format_RGB444
{
@@ -2205,7 +2353,7 @@ Image_Converter qimage_converter_map[QImage::NImageFormats][QImage::NImageFormat
0,
0,
0,
- 0, 0, 0, 0, 0
+ 0, 0, 0, 0, 0, 0, 0
}, // Format_ARGB4444_Premultiplied
{
0,
@@ -2227,7 +2375,7 @@ Image_Converter qimage_converter_map[QImage::NImageFormats][QImage::NImageFormat
0,
mask_alpha_converter_RGBx,
mask_alpha_converter_RGBx,
- 0, 0, 0, 0
+ 0, 0, 0, 0, 0, 0
}, // Format_RGBX8888
{
0,
@@ -2254,7 +2402,7 @@ Image_Converter qimage_converter_map[QImage::NImageFormats][QImage::NImageFormat
0,
0,
#endif
- 0, 0, 0, 0
+ 0, 0, 0, 0, 0, 0
}, // Format_RGBA8888
{
@@ -2283,7 +2431,7 @@ Image_Converter qimage_converter_map[QImage::NImageFormats][QImage::NImageFormat
0,
0,
#endif
- 0, 0, 0, 0
+ 0, 0, 0, 0, 0, 0
}, // Format_RGBA8888_Premultiplied
{
@@ -2309,7 +2457,8 @@ Image_Converter qimage_converter_map[QImage::NImageFormats][QImage::NImageFormat
0,
convert_passthrough,
convert_BGR30_to_RGB30,
- convert_BGR30_to_RGB30
+ convert_BGR30_to_RGB30,
+ 0, 0
}, // Format_BGR30
{
0,
@@ -2334,7 +2483,8 @@ Image_Converter qimage_converter_map[QImage::NImageFormats][QImage::NImageFormat
convert_A2RGB30_PM_to_RGB30,
0,
0,
- convert_BGR30_to_RGB30
+ convert_BGR30_to_RGB30,
+ 0, 0
}, // Format_BGR30A2_Premultiplied
{
0,
@@ -2360,6 +2510,7 @@ Image_Converter qimage_converter_map[QImage::NImageFormats][QImage::NImageFormat
0,
0,
convert_passthrough,
+ 0, 0
}, // Format_RGB30
{
0,
@@ -2385,19 +2536,61 @@ Image_Converter qimage_converter_map[QImage::NImageFormats][QImage::NImageFormat
convert_BGR30_to_RGB30,
convert_A2RGB30_PM_to_RGB30,
0,
+ 0,
+ 0,
}, // Format_RGB30A2_Premultiplied
+ {
+ 0,
+ 0,
+ 0,
+ convert_Alpha8_to_Indexed8,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0, 0, 0, 0, 0, 0, 0
+ }, // Format_Alpha8
+ {
+ 0,
+ 0,
+ 0,
+ convert_Grayscale8_to_Indexed8,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0, 0, 0, 0, 0, 0, 0
+ } // Format_Grayscale8
};
InPlace_Image_Converter qimage_inplace_converter_map[QImage::NImageFormats][QImage::NImageFormats] =
{
{
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
},
{
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
}, // Format_Mono
{
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
}, // Format_MonoLSB
{
0,
@@ -2418,7 +2611,9 @@ InPlace_Image_Converter qimage_inplace_converter_map[QImage::NImageFormats][QIma
0,
0,
0,
- 0, 0, 0, 0, 0
+ 0, 0, 0, 0, 0,
+ convert_Indexed8_to_Alpha8_inplace,
+ convert_Indexed8_to_Grayscale8_inplace,
}, // Format_Indexed8
{
0,
@@ -2439,7 +2634,7 @@ InPlace_Image_Converter qimage_inplace_converter_map[QImage::NImageFormats][QIma
0,
0,
0,
- 0, 0, 0, 0, 0
+ 0, 0, 0, 0, 0, 0, 0
}, // Format_RGB32
{
0,
@@ -2464,7 +2659,7 @@ InPlace_Image_Converter qimage_inplace_converter_map[QImage::NImageFormats][QIma
0,
0,
convert_ARGB_to_RGBA_inplace,
- 0, 0, 0, 0, 0
+ 0, 0, 0, 0, 0, 0, 0
}, // Format_ARGB32
{
0,
@@ -2486,34 +2681,34 @@ InPlace_Image_Converter qimage_inplace_converter_map[QImage::NImageFormats][QIma
0,
0,
convert_ARGB_to_RGBA_inplace,
- 0, 0, 0, 0
+ 0, 0, 0, 0, 0, 0
}, // Format_ARGB32_Premultiplied
{
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
}, // Format_RGB16
{
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
}, // Format_ARGB8565_Premultiplied
{
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
}, // Format_RGB666
{
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
}, // Format_ARGB6666_Premultiplied
{
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
}, // Format_RGB555
{
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
}, // Format_ARGB8555_Premultiplied
{
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
}, // Format_RGB888
{
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
}, // Format_RGB444
{
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
}, // Format_ARGB4444_Premultiplied
{
0,
@@ -2535,7 +2730,7 @@ InPlace_Image_Converter qimage_inplace_converter_map[QImage::NImageFormats][QIma
0,
convert_passthrough_inplace<QImage::Format_RGBA8888>,
convert_passthrough_inplace<QImage::Format_RGBA8888_Premultiplied>,
- 0, 0, 0, 0
+ 0, 0, 0, 0, 0, 0
}, // Format_RGBX8888
{
0,
@@ -2557,7 +2752,7 @@ InPlace_Image_Converter qimage_inplace_converter_map[QImage::NImageFormats][QIma
0,
0,
0,
- 0, 0, 0, 0
+ 0, 0, 0, 0, 0, 0
}, // Format_RGBA8888
{
0,
@@ -2579,7 +2774,7 @@ InPlace_Image_Converter qimage_inplace_converter_map[QImage::NImageFormats][QIma
0,
0,
0,
- 0, 0, 0, 0
+ 0, 0, 0, 0, 0, 0
}, // Format_RGBA8888_Premultiplied
{
0,
@@ -2604,7 +2799,8 @@ InPlace_Image_Converter qimage_inplace_converter_map[QImage::NImageFormats][QIma
0,
convert_passthrough_inplace<QImage::Format_A2BGR30_Premultiplied>,
convert_BGR30_to_RGB30_inplace,
- convert_BGR30_to_RGB30_inplace
+ convert_BGR30_to_RGB30_inplace,
+ 0, 0
}, // Format_BGR30
{
0,
@@ -2629,7 +2825,8 @@ InPlace_Image_Converter qimage_inplace_converter_map[QImage::NImageFormats][QIma
convert_A2RGB30_PM_to_RGB30_inplace,
0,
0,
- convert_BGR30_to_RGB30_inplace
+ convert_BGR30_to_RGB30_inplace,
+ 0, 0
}, // Format_BGR30A2_Premultiplied
{
0,
@@ -2654,7 +2851,8 @@ InPlace_Image_Converter qimage_inplace_converter_map[QImage::NImageFormats][QIma
convert_BGR30_to_RGB30_inplace,
convert_BGR30_to_RGB30_inplace,
0,
- convert_passthrough_inplace<QImage::Format_A2RGB30_Premultiplied>
+ convert_passthrough_inplace<QImage::Format_A2RGB30_Premultiplied>,
+ 0, 0
}, // Format_RGB30
{
0,
@@ -2679,8 +2877,61 @@ InPlace_Image_Converter qimage_inplace_converter_map[QImage::NImageFormats][QIma
0,
convert_BGR30_to_RGB30_inplace,
convert_A2RGB30_PM_to_RGB30_inplace,
- 0
+ 0,
+ 0, 0
}, // Format_RGB30A2_Premultiplied
+ {
+ 0,
+ 0,
+ 0,
+ convert_Alpha8_to_Indexed8_inplace,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0, 0
+ }, // Format_Alpha8
+ {
+ 0,
+ 0,
+ 0,
+ convert_Grayscale8_to_Indexed8_inplace,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0, 0
+ } // Format_Grayscale8
};
void qInitImageConversions()
diff --git a/src/gui/image/qimage_p.h b/src/gui/image/qimage_p.h
index 7e2d4305ef..47e68b14a5 100644
--- a/src/gui/image/qimage_p.h
+++ b/src/gui/image/qimage_p.h
@@ -131,6 +131,8 @@ inline int qt_depthForFormat(QImage::Format format)
depth = 1;
break;
case QImage::Format_Indexed8:
+ case QImage::Format_Alpha8:
+ case QImage::Format_Grayscale8:
depth = 8;
break;
case QImage::Format_RGB32:
diff --git a/src/gui/image/qimagereader.cpp b/src/gui/image/qimagereader.cpp
index a7a08a6fee..ad84b0a091 100644
--- a/src/gui/image/qimagereader.cpp
+++ b/src/gui/image/qimagereader.cpp
@@ -1290,7 +1290,7 @@ bool QImageReader::read(QImage *image)
}
// successful read; check for "@2x" file name suffix and set device pixel ratio.
- static bool disable2xImageLoading = !qgetenv("QT_HIGHDPI_DISABLE_2X_IMAGE_LOADING").isEmpty();
+ static bool disable2xImageLoading = !qEnvironmentVariableIsEmpty("QT_HIGHDPI_DISABLE_2X_IMAGE_LOADING");
if (!disable2xImageLoading && QFileInfo(fileName()).baseName().endsWith(QLatin1String("@2x"))) {
image->setDevicePixelRatio(2.0);
}
diff --git a/src/gui/image/qjpeghandler.cpp b/src/gui/image/qjpeghandler.cpp
index 87992bcced..ae30de634a 100644
--- a/src/gui/image/qjpeghandler.cpp
+++ b/src/gui/image/qjpeghandler.cpp
@@ -220,7 +220,7 @@ inline static bool read_jpeg_format(QImage::Format &format, j_decompress_ptr cin
bool result = true;
switch (cinfo->output_components) {
case 1:
- format = QImage::Format_Indexed8;
+ format = QImage::Format_Grayscale8;
break;
case 3:
case 4:
@@ -240,7 +240,7 @@ static bool ensureValidImage(QImage *dest, struct jpeg_decompress_struct *info,
QImage::Format format;
switch (info->output_components) {
case 1:
- format = QImage::Format_Indexed8;
+ format = QImage::Format_Grayscale8;
break;
case 3:
case 4:
@@ -250,16 +250,9 @@ static bool ensureValidImage(QImage *dest, struct jpeg_decompress_struct *info,
return false; // unsupported format
}
- if (dest->size() != size || dest->format() != format) {
+ if (dest->size() != size || dest->format() != format)
*dest = QImage(size, format);
- if (format == QImage::Format_Indexed8) {
- dest->setColorCount(256);
- for (int i = 0; i < 256; i++)
- dest->setColor(i, qRgb(i,i,i));
- }
- }
-
return !dest->isNull();
}
@@ -550,6 +543,9 @@ static bool write_jpeg_image(const QImage &image, QIODevice *device, volatile in
bool success = false;
const QVector<QRgb> cmap = image.colorTable();
+ if (image.format() == QImage::Format_Invalid || image.format() == QImage::Format_Alpha8)
+ return false;
+
struct jpeg_compress_struct cinfo;
JSAMPROW row_pointer[1];
row_pointer[0] = 0;
@@ -573,19 +569,23 @@ static bool write_jpeg_image(const QImage &image, QIODevice *device, volatile in
cinfo.image_width = image.width();
cinfo.image_height = image.height();
- bool gray=false;
+ bool gray = false;
switch (image.format()) {
case QImage::Format_Mono:
case QImage::Format_MonoLSB:
case QImage::Format_Indexed8:
gray = true;
- for (int i = image.colorCount(); gray && i--;) {
- gray = gray & (qRed(cmap[i]) == qGreen(cmap[i]) &&
- qRed(cmap[i]) == qBlue(cmap[i]));
+ for (int i = image.colorCount(); gray && i; i--) {
+ gray = gray & qIsGray(cmap[i-1]);
}
cinfo.input_components = gray ? 1 : 3;
cinfo.in_color_space = gray ? JCS_GRAYSCALE : JCS_RGB;
break;
+ case QImage::Format_Grayscale8:
+ gray = true;
+ cinfo.input_components = 1;
+ cinfo.in_color_space = JCS_GRAYSCALE;
+ break;
default:
cinfo.input_components = 3;
cinfo.in_color_space = JCS_RGB;
@@ -670,6 +670,9 @@ static bool write_jpeg_image(const QImage &image, QIODevice *device, volatile in
}
}
break;
+ case QImage::Format_Grayscale8:
+ memcpy(row, image.constScanLine(cinfo.next_scanline), w);
+ break;
case QImage::Format_RGB888:
memcpy(row, image.constScanLine(cinfo.next_scanline), w * 3);
break;
diff --git a/src/gui/image/qjpeghandler_p.h b/src/gui/image/qjpeghandler_p.h
index 85b903bf44..12f2553f92 100644
--- a/src/gui/image/qjpeghandler_p.h
+++ b/src/gui/image/qjpeghandler_p.h
@@ -58,17 +58,17 @@ public:
QJpegHandler();
~QJpegHandler();
- bool canRead() const;
- bool read(QImage *image);
- bool write(const QImage &image);
+ bool canRead() const Q_DECL_OVERRIDE;
+ bool read(QImage *image) Q_DECL_OVERRIDE;
+ bool write(const QImage &image) Q_DECL_OVERRIDE;
- QByteArray name() const;
+ QByteArray name() const Q_DECL_OVERRIDE;
static bool canRead(QIODevice *device);
- QVariant option(ImageOption option) const;
- void setOption(ImageOption option, const QVariant &value);
- bool supportsOption(ImageOption option) const;
+ QVariant option(ImageOption option) const Q_DECL_OVERRIDE;
+ void setOption(ImageOption option, const QVariant &value) Q_DECL_OVERRIDE;
+ bool supportsOption(ImageOption option) const Q_DECL_OVERRIDE;
private:
QJpegHandlerPrivate *d;
diff --git a/src/gui/image/qpaintengine_pic_p.h b/src/gui/image/qpaintengine_pic_p.h
index ef8b5643d1..168be55927 100644
--- a/src/gui/image/qpaintengine_pic_p.h
+++ b/src/gui/image/qpaintengine_pic_p.h
@@ -62,10 +62,10 @@ public:
QPicturePaintEngine();
~QPicturePaintEngine();
- bool begin(QPaintDevice *pdev);
- bool end();
+ bool begin(QPaintDevice *pdev) Q_DECL_OVERRIDE;
+ bool end() Q_DECL_OVERRIDE;
- void updateState(const QPaintEngineState &state);
+ void updateState(const QPaintEngineState &state) Q_DECL_OVERRIDE;
void updatePen(const QPen &pen);
void updateBrush(const QBrush &brush);
@@ -80,23 +80,18 @@ public:
void updateClipEnabled(bool enabled);
void updateOpacity(qreal opacity);
- void drawEllipse(const QRectF &rect);
- void drawPath(const QPainterPath &path);
- void drawPolygon(const QPointF *points, int numPoints, PolygonDrawMode mode);
-#ifdef Q_NO_USING_KEYWORD
- inline void drawPolygon(const QPoint *points, int pointCount, PolygonDrawMode mode)
- { QPaintEngine::drawPolygon(points, pointCount, mode); }
-#else
+ void drawEllipse(const QRectF &rect) Q_DECL_OVERRIDE;
+ void drawPath(const QPainterPath &path) Q_DECL_OVERRIDE;
+ void drawPolygon(const QPointF *points, int numPoints, PolygonDrawMode mode) Q_DECL_OVERRIDE;
using QPaintEngine::drawPolygon;
-#endif
- void drawPixmap(const QRectF &r, const QPixmap &pm, const QRectF &sr);
- void drawTiledPixmap(const QRectF &r, const QPixmap &pixmap, const QPointF &s);
+ void drawPixmap(const QRectF &r, const QPixmap &pm, const QRectF &sr) Q_DECL_OVERRIDE;
+ void drawTiledPixmap(const QRectF &r, const QPixmap &pixmap, const QPointF &s) Q_DECL_OVERRIDE;
void drawImage(const QRectF &r, const QImage &image, const QRectF &sr,
- Qt::ImageConversionFlags flags = Qt::AutoColor);
- void drawTextItem(const QPointF &p, const QTextItem &ti);
+ Qt::ImageConversionFlags flags = Qt::AutoColor) Q_DECL_OVERRIDE;
+ void drawTextItem(const QPointF &p, const QTextItem &ti) Q_DECL_OVERRIDE;
- Type type() const { return Picture; }
+ Type type() const Q_DECL_OVERRIDE { return Picture; }
protected:
QPicturePaintEngine(QPaintEnginePrivate &dptr);
diff --git a/src/gui/image/qpicture.cpp b/src/gui/image/qpicture.cpp
index bb37461b4f..bdfb987567 100644
--- a/src/gui/image/qpicture.cpp
+++ b/src/gui/image/qpicture.cpp
@@ -450,8 +450,8 @@ public:
QFakeDevice() { dpi_x = qt_defaultDpiX(); dpi_y = qt_defaultDpiY(); }
void setDpiX(int dpi) { dpi_x = dpi; }
void setDpiY(int dpi) { dpi_y = dpi; }
- QPaintEngine *paintEngine() const { return 0; }
- int metric(PaintDeviceMetric m) const
+ QPaintEngine *paintEngine() const Q_DECL_OVERRIDE { return 0; }
+ int metric(PaintDeviceMetric m) const Q_DECL_OVERRIDE
{
switch(m) {
case PdmPhysicalDpiX:
diff --git a/src/gui/image/qpicture.h b/src/gui/image/qpicture.h
index 1ad20a4e70..2ce8b3b75e 100644
--- a/src/gui/image/qpicture.h
+++ b/src/gui/image/qpicture.h
@@ -55,7 +55,7 @@ public:
bool isNull() const;
- int devType() const;
+ int devType() const Q_DECL_OVERRIDE;
uint size() const;
const char* data() const;
virtual void setData(const char* data, uint size);
@@ -88,12 +88,12 @@ public:
static QStringList inputFormatList();
static QStringList outputFormatList();
- QPaintEngine *paintEngine() const;
+ QPaintEngine *paintEngine() const Q_DECL_OVERRIDE;
protected:
QPicture(QPicturePrivate &data);
- int metric(PaintDeviceMetric m) const;
+ int metric(PaintDeviceMetric m) const Q_DECL_OVERRIDE;
private:
bool exec(QPainter *p, QDataStream &ds, int i);
diff --git a/src/gui/image/qpixmap.h b/src/gui/image/qpixmap.h
index dce64bd2dd..ce3a42abc4 100644
--- a/src/gui/image/qpixmap.h
+++ b/src/gui/image/qpixmap.h
@@ -75,7 +75,7 @@ public:
operator QVariant() const;
bool isNull() const;
- int devType() const;
+ int devType() const Q_DECL_OVERRIDE;
int width() const;
int height() const;
@@ -154,7 +154,7 @@ public:
bool isQBitmap() const;
- QPaintEngine *paintEngine() const;
+ QPaintEngine *paintEngine() const Q_DECL_OVERRIDE;
inline bool operator!() const { return isNull(); }
@@ -164,7 +164,7 @@ public:
#endif
protected:
- int metric(PaintDeviceMetric) const;
+ int metric(PaintDeviceMetric) const Q_DECL_OVERRIDE;
static QPixmap fromImageInPlace(QImage &image, Qt::ImageConversionFlags flags = Qt::AutoColor);
private:
diff --git a/src/gui/image/qpixmap_blitter_p.h b/src/gui/image/qpixmap_blitter_p.h
index ec6c1eb8e5..069efbf593 100644
--- a/src/gui/image/qpixmap_blitter_p.h
+++ b/src/gui/image/qpixmap_blitter_p.h
@@ -62,17 +62,17 @@ public:
QBlittable *blittable() const;
void setBlittable(QBlittable *blittable);
- void resize(int width, int height);
- int metric(QPaintDevice::PaintDeviceMetric metric) const;
- void fill(const QColor &color);
- QImage *buffer();
- QImage toImage() const;
- bool hasAlphaChannel() const;
- void fromImage(const QImage &image, Qt::ImageConversionFlags flags);
- qreal devicePixelRatio() const;
- void setDevicePixelRatio(qreal scaleFactor);
-
- QPaintEngine *paintEngine() const;
+ void resize(int width, int height) Q_DECL_OVERRIDE;
+ int metric(QPaintDevice::PaintDeviceMetric metric) const Q_DECL_OVERRIDE;
+ void fill(const QColor &color) Q_DECL_OVERRIDE;
+ QImage *buffer() Q_DECL_OVERRIDE;
+ QImage toImage() const Q_DECL_OVERRIDE;
+ bool hasAlphaChannel() const Q_DECL_OVERRIDE;
+ void fromImage(const QImage &image, Qt::ImageConversionFlags flags) Q_DECL_OVERRIDE;
+ qreal devicePixelRatio() const Q_DECL_OVERRIDE;
+ void setDevicePixelRatio(qreal scaleFactor) Q_DECL_OVERRIDE;
+
+ QPaintEngine *paintEngine() const Q_DECL_OVERRIDE;
void markRasterOverlay(const QRectF &);
void markRasterOverlay(const QPointF &, const QTextItem &);
diff --git a/src/gui/image/qpixmap_raster.cpp b/src/gui/image/qpixmap_raster.cpp
index 65e7fb0096..9c9db1c9c1 100644
--- a/src/gui/image/qpixmap_raster.cpp
+++ b/src/gui/image/qpixmap_raster.cpp
@@ -203,9 +203,14 @@ void QRasterPlatformPixmap::fill(const QColor &color)
pixel = qPremultiply(color.rgba());
const QPixelLayout *layout = &qPixelLayouts[image.format()];
layout->convertFromARGB32PM(&pixel, &pixel, 1, layout, 0);
- } else {
+ } else if (image.format() == QImage::Format_Alpha8) {
+ pixel = qAlpha(color.rgba());
+ } else if (image.format() == QImage::Format_Grayscale8) {
+ pixel = qGray(color.rgba());
+ } else
+ {
pixel = 0;
- // ### what about 8 bits
+ // ### what about 8 bit indexed?
}
image.fill(pixel);
diff --git a/src/gui/image/qpixmap_raster_p.h b/src/gui/image/qpixmap_raster_p.h
index ffb4b591de..cbbd681314 100644
--- a/src/gui/image/qpixmap_raster_p.h
+++ b/src/gui/image/qpixmap_raster_p.h
@@ -56,28 +56,28 @@ public:
QRasterPlatformPixmap(PixelType type);
~QRasterPlatformPixmap();
- QPlatformPixmap *createCompatiblePlatformPixmap() const;
-
- void resize(int width, int height);
- bool fromData(const uchar *buffer, uint len, const char *format, Qt::ImageConversionFlags flags);
- void fromImage(const QImage &image, Qt::ImageConversionFlags flags);
- void fromImageInPlace(QImage &image, Qt::ImageConversionFlags flags);
- void fromImageReader(QImageReader *imageReader, Qt::ImageConversionFlags flags);
-
- void copy(const QPlatformPixmap *data, const QRect &rect);
- bool scroll(int dx, int dy, const QRect &rect);
- void fill(const QColor &color);
- bool hasAlphaChannel() const;
- QImage toImage() const;
- QImage toImage(const QRect &rect) const;
- QPaintEngine* paintEngine() const;
- QImage* buffer();
- qreal devicePixelRatio() const;
- void setDevicePixelRatio(qreal scaleFactor);
+ QPlatformPixmap *createCompatiblePlatformPixmap() const Q_DECL_OVERRIDE;
+
+ void resize(int width, int height) Q_DECL_OVERRIDE;
+ bool fromData(const uchar *buffer, uint len, const char *format, Qt::ImageConversionFlags flags) Q_DECL_OVERRIDE;
+ void fromImage(const QImage &image, Qt::ImageConversionFlags flags) Q_DECL_OVERRIDE;
+ void fromImageInPlace(QImage &image, Qt::ImageConversionFlags flags) Q_DECL_OVERRIDE;
+ void fromImageReader(QImageReader *imageReader, Qt::ImageConversionFlags flags) Q_DECL_OVERRIDE;
+
+ void copy(const QPlatformPixmap *data, const QRect &rect) Q_DECL_OVERRIDE;
+ bool scroll(int dx, int dy, const QRect &rect) Q_DECL_OVERRIDE;
+ void fill(const QColor &color) Q_DECL_OVERRIDE;
+ bool hasAlphaChannel() const Q_DECL_OVERRIDE;
+ QImage toImage() const Q_DECL_OVERRIDE;
+ QImage toImage(const QRect &rect) const Q_DECL_OVERRIDE;
+ QPaintEngine* paintEngine() const Q_DECL_OVERRIDE;
+ QImage* buffer() Q_DECL_OVERRIDE;
+ qreal devicePixelRatio() const Q_DECL_OVERRIDE;
+ void setDevicePixelRatio(qreal scaleFactor) Q_DECL_OVERRIDE;
protected:
- int metric(QPaintDevice::PaintDeviceMetric metric) const;
+ int metric(QPaintDevice::PaintDeviceMetric metric) const Q_DECL_OVERRIDE;
void createPixmapForImage(QImage &sourceImage, Qt::ImageConversionFlags flags, bool inPlace);
void setImage(const QImage &image);
QImage image;
diff --git a/src/gui/image/qpixmapcache.cpp b/src/gui/image/qpixmapcache.cpp
index 170a295cf8..d4b5cee74c 100644
--- a/src/gui/image/qpixmapcache.cpp
+++ b/src/gui/image/qpixmapcache.cpp
@@ -159,7 +159,7 @@ public:
QPMCache();
~QPMCache();
- void timerEvent(QTimerEvent *);
+ void timerEvent(QTimerEvent *) Q_DECL_OVERRIDE;
bool insert(const QString& key, const QPixmap &pixmap, int cost);
QPixmapCache::Key insert(const QPixmap &pixmap, int cost);
bool replace(const QPixmapCache::Key &key, const QPixmap &pixmap, int cost);
diff --git a/src/gui/image/qpnghandler.cpp b/src/gui/image/qpnghandler.cpp
index 17a0dd3eb9..d09ed0fda7 100644
--- a/src/gui/image/qpnghandler.cpp
+++ b/src/gui/image/qpnghandler.cpp
@@ -295,6 +295,15 @@ void setup_qt(QImage& image, png_structp png_ptr, png_infop info_ptr, QSize scal
png_set_swap_alpha(png_ptr);
png_read_update_info(png_ptr, info_ptr);
+ } else if (bit_depth == 8 && !png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS)) {
+ png_set_expand(png_ptr);
+ if (image.size() != QSize(width, height) || image.format() != QImage::Format_Grayscale8) {
+ image = QImage(width, height, QImage::Format_Grayscale8);
+ if (image.isNull())
+ return;
+ }
+
+ png_read_update_info(png_ptr, info_ptr);
} else {
if (bit_depth == 16)
png_set_strip_16(png_ptr);
@@ -666,6 +675,8 @@ QImage::Format QPngHandlerPrivate::readImageFormat()
format = QImage::Format_Mono;
} else if (bit_depth == 16 && png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS)) {
format = QImage::Format_ARGB32;
+ } else if (bit_depth == 8 && !png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS)) {
+ format = QImage::Format_Grayscale8;
} else {
format = QImage::Format_Indexed8;
}
@@ -857,6 +868,8 @@ bool Q_INTERNAL_WIN_NO_THROW QPNGImageWriter::writeImage(const QImage& image, vo
else
color_type = PNG_COLOR_TYPE_PALETTE;
}
+ else if (image.format() == QImage::Format_Grayscale8)
+ color_type = PNG_COLOR_TYPE_GRAY;
else if (image.hasAlphaChannel())
color_type = PNG_COLOR_TYPE_RGB_ALPHA;
else
@@ -955,6 +968,7 @@ bool Q_INTERNAL_WIN_NO_THROW QPNGImageWriter::writeImage(const QImage& image, vo
case QImage::Format_Mono:
case QImage::Format_MonoLSB:
case QImage::Format_Indexed8:
+ case QImage::Format_Grayscale8:
case QImage::Format_RGB32:
case QImage::Format_ARGB32:
case QImage::Format_RGB888:
diff --git a/src/gui/image/qppmhandler.cpp b/src/gui/image/qppmhandler.cpp
index 314abca9f0..e1c76cce7f 100644
--- a/src/gui/image/qppmhandler.cpp
+++ b/src/gui/image/qppmhandler.cpp
@@ -122,7 +122,7 @@ static bool read_pbm_body(QIODevice *device, char type, int w, int h, int mcc, Q
case '2': // ascii PGM
case '5': // raw PGM
nbits = 8;
- format = QImage::Format_Indexed8;
+ format = QImage::Format_Grayscale8;
break;
case '3': // ascii PPM
case '6': // raw PPM
@@ -200,13 +200,13 @@ static bool read_pbm_body(QIODevice *device, char type, int w, int h, int mcc, Q
*p++ = b;
}
} else if (nbits == 8) {
- if (mcc == maxc) {
+ if (mcc == 255) {
while (n--) {
*p++ = read_pbm_int(device);
}
} else {
while (n--) {
- *p++ = read_pbm_int(device) * maxc / mcc;
+ *p++ = read_pbm_int(device) * 255 / mcc;
}
}
} else { // 32 bits
@@ -233,14 +233,10 @@ static bool read_pbm_body(QIODevice *device, char type, int w, int h, int mcc, Q
}
}
- if (nbits == 1) { // bitmap
+ if (format == QImage::Format_Mono) {
outImage->setColorCount(2);
- outImage->setColor(0, qRgb(255,255,255)); // white
- outImage->setColor(1, qRgb(0,0,0)); // black
- } else if (nbits == 8) { // graymap
- outImage->setColorCount(maxc+1);
- for (int i=0; i<=maxc; i++)
- outImage->setColor(i, qRgb(i*255/maxc,i*255/maxc,i*255/maxc));
+ outImage->setColor(0, qRgb(255,255,255)); // white
+ outImage->setColor(1, qRgb(0,0,0)); // black
}
return true;
@@ -257,6 +253,8 @@ static bool write_pbm_image(QIODevice *out, const QImage &sourceImage, const QBy
if (format == "pbm") {
image = image.convertToFormat(QImage::Format_Mono);
+ } else if (gray) {
+ image = image.convertToFormat(QImage::Format_Grayscale8);
} else {
switch (image.format()) {
case QImage::Format_Mono:
@@ -317,63 +315,77 @@ static bool write_pbm_image(QIODevice *out, const QImage &sourceImage, const QBy
str.append("255\n");
if (out->write(str, str.length()) != str.length())
return false;
- QVector<QRgb> color = image.colorTable();
- uint bpl = w*(gray ? 1 : 3);
- uchar *buf = new uchar[bpl];
- for (uint y=0; y<h; y++) {
- uchar *b = image.scanLine(y);
- uchar *p = buf;
- uchar *end = buf+bpl;
- if (gray) {
- while (p < end) {
- uchar g = (uchar)qGray(color[*b++]);
- *p++ = g;
+ uint bpl = w * (gray ? 1 : 3);
+ uchar *buf = new uchar[bpl];
+ if (image.format() == QImage::Format_Indexed8) {
+ QVector<QRgb> color = image.colorTable();
+ for (uint y=0; y<h; y++) {
+ uchar *b = image.scanLine(y);
+ uchar *p = buf;
+ uchar *end = buf+bpl;
+ if (gray) {
+ while (p < end) {
+ uchar g = (uchar)qGray(color[*b++]);
+ *p++ = g;
+ }
+ } else {
+ while (p < end) {
+ QRgb rgb = color[*b++];
+ *p++ = qRed(rgb);
+ *p++ = qGreen(rgb);
+ *p++ = qBlue(rgb);
+ }
}
- } else {
- while (p < end) {
- QRgb rgb = color[*b++];
- *p++ = qRed(rgb);
- *p++ = qGreen(rgb);
- *p++ = qBlue(rgb);
+ if (bpl != (uint)out->write((char*)buf, bpl))
+ return false;
+ }
+ } else {
+ for (uint y=0; y<h; y++) {
+ uchar *b = image.scanLine(y);
+ uchar *p = buf;
+ uchar *end = buf + bpl;
+ if (gray) {
+ while (p < end)
+ *p++ = *b++;
+ } else {
+ while (p < end) {
+ uchar color = *b++;
+ *p++ = color;
+ *p++ = color;
+ *p++ = color;
+ }
}
+ if (bpl != (uint)out->write((char*)buf, bpl))
+ return false;
}
- if (bpl != (uint)out->write((char*)buf, bpl))
- return false;
}
delete [] buf;
- }
break;
+ }
case 32: {
- str.insert(1, gray ? '5' : '6');
+ str.insert(1, '6');
str.append("255\n");
if (out->write(str, str.length()) != str.length())
return false;
- uint bpl = w*(gray ? 1 : 3);
+ uint bpl = w * 3;
uchar *buf = new uchar[bpl];
for (uint y=0; y<h; y++) {
QRgb *b = (QRgb*)image.scanLine(y);
uchar *p = buf;
uchar *end = buf+bpl;
- if (gray) {
- while (p < end) {
- uchar g = (uchar)qGray(*b++);
- *p++ = g;
- }
- } else {
- while (p < end) {
- QRgb rgb = *b++;
- *p++ = qRed(rgb);
- *p++ = qGreen(rgb);
- *p++ = qBlue(rgb);
- }
+ while (p < end) {
+ QRgb rgb = *b++;
+ *p++ = qRed(rgb);
+ *p++ = qGreen(rgb);
+ *p++ = qBlue(rgb);
}
if (bpl != (uint)out->write((char*)buf, bpl))
return false;
}
delete [] buf;
- }
break;
+ }
default:
return false;
@@ -488,11 +500,11 @@ QVariant QPpmHandler::option(ImageOption option) const
switch (type) {
case '1': // ascii PBM
case '4': // raw PBM
- format = QImage::Format_Mono;
- break;
+ format = QImage::Format_Mono;
+ break;
case '2': // ascii PGM
case '5': // raw PGM
- format = QImage::Format_Indexed8;
+ format = QImage::Format_Grayscale8;
break;
case '3': // ascii PPM
case '6': // raw PPM
diff --git a/src/gui/itemmodels/qstandarditemmodel.cpp b/src/gui/itemmodels/qstandarditemmodel.cpp
index 44ee710268..4102230e1b 100644
--- a/src/gui/itemmodels/qstandarditemmodel.cpp
+++ b/src/gui/itemmodels/qstandarditemmodel.cpp
@@ -2909,12 +2909,6 @@ void QStandardItemModel::sort(int column, Qt::SortOrder order)
}
/*!
- \fn QObject *QStandardItemModel::parent() const
- \internal
-*/
-
-
-/*!
\reimp
*/
QStringList QStandardItemModel::mimeTypes() const
diff --git a/src/gui/itemmodels/qstandarditemmodel.h b/src/gui/itemmodels/qstandarditemmodel.h
index 8a71182bd6..75e6a71a6c 100644
--- a/src/gui/itemmodels/qstandarditemmodel.h
+++ b/src/gui/itemmodels/qstandarditemmodel.h
@@ -316,43 +316,39 @@ public:
void setItemRoleNames(const QHash<int,QByteArray> &roleNames);
- QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const;
- QModelIndex parent(const QModelIndex &child) const;
+ QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const Q_DECL_OVERRIDE;
+ QModelIndex parent(const QModelIndex &child) const Q_DECL_OVERRIDE;
- int rowCount(const QModelIndex &parent = QModelIndex()) const;
- int columnCount(const QModelIndex &parent = QModelIndex()) const;
- bool hasChildren(const QModelIndex &parent = QModelIndex()) const;
+ int rowCount(const QModelIndex &parent = QModelIndex()) const Q_DECL_OVERRIDE;
+ int columnCount(const QModelIndex &parent = QModelIndex()) const Q_DECL_OVERRIDE;
+ bool hasChildren(const QModelIndex &parent = QModelIndex()) const Q_DECL_OVERRIDE;
// Qt 6: Remove
- QModelIndex sibling(int row, int column, const QModelIndex &idx) const;
+ QModelIndex sibling(int row, int column, const QModelIndex &idx) const Q_DECL_OVERRIDE;
- QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
- bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole);
+ QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const Q_DECL_OVERRIDE;
+ bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole) Q_DECL_OVERRIDE;
QVariant headerData(int section, Qt::Orientation orientation,
- int role = Qt::DisplayRole) const;
+ int role = Qt::DisplayRole) const Q_DECL_OVERRIDE;
bool setHeaderData(int section, Qt::Orientation orientation, const QVariant &value,
- int role = Qt::EditRole);
+ int role = Qt::EditRole) Q_DECL_OVERRIDE;
- bool insertRows(int row, int count, const QModelIndex &parent = QModelIndex());
- bool insertColumns(int column, int count, const QModelIndex &parent = QModelIndex());
- bool removeRows(int row, int count, const QModelIndex &parent = QModelIndex());
- bool removeColumns(int column, int count, const QModelIndex &parent = QModelIndex());
+ bool insertRows(int row, int count, const QModelIndex &parent = QModelIndex()) Q_DECL_OVERRIDE;
+ bool insertColumns(int column, int count, const QModelIndex &parent = QModelIndex()) Q_DECL_OVERRIDE;
+ bool removeRows(int row, int count, const QModelIndex &parent = QModelIndex()) Q_DECL_OVERRIDE;
+ bool removeColumns(int column, int count, const QModelIndex &parent = QModelIndex()) Q_DECL_OVERRIDE;
- Qt::ItemFlags flags(const QModelIndex &index) const;
- Qt::DropActions supportedDropActions() const;
+ Qt::ItemFlags flags(const QModelIndex &index) const Q_DECL_OVERRIDE;
+ Qt::DropActions supportedDropActions() const Q_DECL_OVERRIDE;
- QMap<int, QVariant> itemData(const QModelIndex &index) const;
- bool setItemData(const QModelIndex &index, const QMap<int, QVariant> &roles);
+ QMap<int, QVariant> itemData(const QModelIndex &index) const Q_DECL_OVERRIDE;
+ bool setItemData(const QModelIndex &index, const QMap<int, QVariant> &roles) Q_DECL_OVERRIDE;
void clear();
-#ifdef Q_NO_USING_KEYWORD
- inline QObject *parent() const { return QObject::parent(); }
-#else
using QObject::parent;
-#endif
- void sort(int column, Qt::SortOrder order = Qt::AscendingOrder);
+ void sort(int column, Qt::SortOrder order = Qt::AscendingOrder) Q_DECL_OVERRIDE;
QStandardItem *itemFromIndex(const QModelIndex &index) const;
QModelIndex indexFromItem(const QStandardItem *item) const;
@@ -401,9 +397,9 @@ public:
int sortRole() const;
void setSortRole(int role);
- QStringList mimeTypes() const;
- QMimeData *mimeData(const QModelIndexList &indexes) const;
- bool dropMimeData (const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent);
+ QStringList mimeTypes() const Q_DECL_OVERRIDE;
+ QMimeData *mimeData(const QModelIndexList &indexes) const Q_DECL_OVERRIDE;
+ bool dropMimeData (const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) Q_DECL_OVERRIDE;
Q_SIGNALS:
void itemChanged(QStandardItem *item);
diff --git a/src/gui/kernel/qdnd_p.h b/src/gui/kernel/qdnd_p.h
index 573035ce24..92d489184e 100644
--- a/src/gui/kernel/qdnd_p.h
+++ b/src/gui/kernel/qdnd_p.h
@@ -70,8 +70,8 @@ public:
QInternalMimeData();
~QInternalMimeData();
- bool hasFormat(const QString &mimeType) const;
- QStringList formats() const;
+ bool hasFormat(const QString &mimeType) const Q_DECL_OVERRIDE;
+ QStringList formats() const Q_DECL_OVERRIDE;
static bool canReadData(const QString &mimeType);
@@ -80,7 +80,7 @@ public:
static QByteArray renderDataHelper(const QString &mimeType, const QMimeData *data);
protected:
- QVariant retrieveData(const QString &mimeType, QVariant::Type type) const;
+ QVariant retrieveData(const QString &mimeType, QVariant::Type type) const Q_DECL_OVERRIDE;
virtual bool hasFormat_sys(const QString &mimeType) const = 0;
virtual QStringList formats_sys() const = 0;
diff --git a/src/gui/kernel/qevent.cpp b/src/gui/kernel/qevent.cpp
index 60e7b97f12..f845bf89c9 100644
--- a/src/gui/kernel/qevent.cpp
+++ b/src/gui/kernel/qevent.cpp
@@ -1324,6 +1324,55 @@ QExposeEvent::~QExposeEvent()
}
/*!
+ \class QPlatformSurfaceEvent
+ \since 5.5
+ \brief The QPlatformSurfaceEvent class is used to notify about native platform surface events.
+ \inmodule QtGui
+
+ \ingroup events
+
+ Platform window events are synchronously sent to windows and offscreen surfaces when their
+ underlying native surfaces are created or are about to be destroyed.
+
+ Applications can respond to these events to know when the underlying platform
+ surface exists.
+*/
+
+/*!
+ \enum QPlatformSurfaceEvent::SurfaceEventType
+
+ This enum describes the type of platform surface event. The possible types are:
+
+ \value SurfaceCreated The underlying native surface has been created
+ \value SurfaceAboutToBeDestroyed The underlying native surface will be destroyed immediately after this event
+
+ The \c SurfaceAboutToBeDestroyed event type is useful as a means of stopping rendering to
+ a platform window before it is destroyed.
+*/
+
+/*!
+ \fn QPlatformSurfaceEvent::SurfaceEventType QPlatformSurfaceEvent::surfaceEventType() const
+
+ Returns the specific type of platform surface event.
+*/
+
+/*!
+ Constructs a platform surface event for the given \a surfaceEventType.
+*/
+QPlatformSurfaceEvent::QPlatformSurfaceEvent(SurfaceEventType surfaceEventType)
+ : QEvent(PlatformSurface)
+ , m_surfaceEventType(surfaceEventType)
+{
+}
+
+/*!
+ \internal
+*/
+QPlatformSurfaceEvent::~QPlatformSurfaceEvent()
+{
+}
+
+/*!
\fn const QRegion &QExposeEvent::region() const
Returns the window area that has been exposed. The region is given in local coordinates.
@@ -3556,6 +3605,8 @@ static const char *eventClassName(QEvent::Type t)
return "QGraphicsSceneEvent";
case QEvent::Timer:
return "QTimerEvent";
+ case QEvent::PlatformSurface:
+ return "QPlatformSurfaceEvent";
default:
break;
}
@@ -3814,6 +3865,18 @@ QDebug operator<<(QDebug dbg, const QEvent *e)
case QEvent::Timer:
dbg << "QTimerEvent(id=" << static_cast<const QTimerEvent *>(e)->timerId() << ')';
break;
+ case QEvent::PlatformSurface:
+ dbg << "QPlatformSurfaceEvent(surfaceEventType=";
+ switch (static_cast<const QPlatformSurfaceEvent *>(e)->surfaceEventType()) {
+ case QPlatformSurfaceEvent::SurfaceCreated:
+ dbg << "SurfaceCreated";
+ break;
+ case QPlatformSurfaceEvent::SurfaceAboutToBeDestroyed:
+ dbg << "SurfaceAboutToBeDestroyed";
+ break;
+ }
+ dbg << ')';
+ break;
default:
dbg << eventClassName(type) << '(' << eventTypeName(type) << ", "
<< (const void *)e << ", type = " << e->type() << ')';
diff --git a/src/gui/kernel/qevent.h b/src/gui/kernel/qevent.h
index 6fca54e2b6..0b6d96a590 100644
--- a/src/gui/kernel/qevent.h
+++ b/src/gui/kernel/qevent.h
@@ -162,6 +162,8 @@ protected:
class Q_GUI_EXPORT QWheelEvent : public QInputEvent
{
public:
+ enum { DefaultDeltasPerStep = 120 };
+
QWheelEvent(const QPointF &pos, int delta,
Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers,
Qt::Orientation orient = Qt::Vertical);
@@ -408,6 +410,23 @@ protected:
QRegion rgn;
};
+class Q_GUI_EXPORT QPlatformSurfaceEvent : public QEvent
+{
+public:
+ enum SurfaceEventType {
+ SurfaceCreated,
+ SurfaceAboutToBeDestroyed
+ };
+
+ explicit QPlatformSurfaceEvent(SurfaceEventType surfaceEventType);
+ ~QPlatformSurfaceEvent();
+
+ inline SurfaceEventType surfaceEventType() const { return m_surfaceEventType; }
+
+protected:
+ SurfaceEventType m_surfaceEventType;
+};
+
class Q_GUI_EXPORT QResizeEvent : public QEvent
{
public:
diff --git a/src/gui/kernel/qguiapplication.cpp b/src/gui/kernel/qguiapplication.cpp
index dc5501eaf5..9ddb9e15ee 100644
--- a/src/gui/kernel/qguiapplication.cpp
+++ b/src/gui/kernel/qguiapplication.cpp
@@ -215,11 +215,6 @@ static inline void clearFontUnlocked()
QGuiApplicationPrivate::app_font = 0;
}
-static inline bool isPopupWindow(const QWindow *w)
-{
- return (w->flags() & Qt::WindowType_Mask) == Qt::Popup;
-}
-
// Geometry specification for top level windows following the convention of the
// -geometry command line arguments in X11 (see XParseGeometry).
struct QWindowGeometrySpecification
@@ -671,7 +666,7 @@ static void updateBlockedStatusRecursion(QWindow *window, bool shouldBeBlocked)
void QGuiApplicationPrivate::updateBlockedStatus(QWindow *window)
{
bool shouldBeBlocked = false;
- if (!isPopupWindow(window) && !self->modalWindowList.isEmpty())
+ if (!QWindowPrivate::get(window)->isPopup() && !self->modalWindowList.isEmpty())
shouldBeBlocked = self->isWindowBlocked(window);
updateBlockedStatusRecursion(window, shouldBeBlocked);
}
@@ -681,7 +676,7 @@ void QGuiApplicationPrivate::showModalWindow(QWindow *modal)
self->modalWindowList.prepend(modal);
// Send leave for currently entered window if it should be blocked
- if (currentMouseWindow && !isPopupWindow(currentMouseWindow)) {
+ if (currentMouseWindow && !QWindowPrivate::get(currentMouseWindow)->isPopup()) {
bool shouldBeBlocked = self->isWindowBlocked(currentMouseWindow);
if (shouldBeBlocked) {
// Remove the new window from modalWindowList temporarily so leave can go through
@@ -1094,6 +1089,8 @@ static void init_plugins(const QList<QByteArray> &pluginList)
QLatin1String(pluginSpec.mid(colonPos+1)));
if (plugin)
QGuiApplicationPrivate::generic_plugin_list.append(plugin);
+ else
+ qWarning() << "No such plugin for spec " << pluginSpec;
}
}
@@ -1259,8 +1256,11 @@ void QGuiApplicationPrivate::init()
}
// Load environment exported generic plugins
- foreach (const QByteArray &plugin, qgetenv("QT_QPA_GENERIC_PLUGINS").split(','))
- pluginList << plugin;
+ QByteArray envPlugins = qgetenv("QT_QPA_GENERIC_PLUGINS");
+ if (!envPlugins.isEmpty()) {
+ foreach (const QByteArray &plugin, envPlugins.split(','))
+ pluginList << plugin;
+ }
if (platform_integration == 0)
createPlatformIntegration();
@@ -1366,6 +1366,8 @@ QGuiApplicationPrivate::~QGuiApplicationPrivate()
}
#endif
+ platform_integration->destroy();
+
delete platform_theme;
platform_theme = 0;
delete platform_integration;
@@ -1511,18 +1513,6 @@ int QGuiApplication::exec()
*/
bool QGuiApplication::notify(QObject *object, QEvent *event)
{
-#ifndef QT_NO_SHORTCUT
- if (event->type() == QEvent::KeyPress) {
- // Try looking for a Shortcut before sending key events
- QWindow *w = qobject_cast<QWindow *>(object);
- QObject *focus = w ? w->focusObject() : 0;
- if (!focus)
- focus = object;
- if (QGuiApplicationPrivate::instance()->shortcutMap.tryShortcutEvent(focus, static_cast<QKeyEvent *>(event)))
- return true;
- }
-#endif
-
if (object->isWindowType())
QGuiApplicationPrivate::sendQWindowEventToQPlatformWindow(static_cast<QWindow *>(object), event);
return QCoreApplication::notify(object, event);
@@ -1686,7 +1676,8 @@ void QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::Mo
// will update the global mouse position and cause the second event to be a button only event.
QWindowSystemInterfacePrivate::MouseEvent moveEvent(e->window.data(),
e->timestamp, e->type, e->localPos, e->globalPos, buttons, e->modifiers, e->source);
- moveEvent.synthetic = e->synthetic;
+ if (e->flags & QWindowSystemInterfacePrivate::WindowSystemEvent::Synthetic)
+ moveEvent.flags |= QWindowSystemInterfacePrivate::WindowSystemEvent::Synthetic;
processMouseEvent(&moveEvent);
Q_ASSERT(e->globalPos == QGuiApplicationPrivate::lastCursorPosition);
// continue with processing mouse button change event
@@ -1698,7 +1689,7 @@ void QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::Mo
QPointF localPoint = e->localPos;
QPointF globalPoint = e->globalPos;
- if (e->nullWindow) {
+ if (e->nullWindow()) {
window = QGuiApplication::topLevelAt(globalPoint.toPoint());
if (window) {
QPointF delta = globalPoint - globalPoint.toPoint();
@@ -1751,7 +1742,7 @@ void QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::Mo
ev.setTimestamp(e->timestamp);
setMouseEventSource(&ev, e->source);
#ifndef QT_NO_CURSOR
- if (!e->synthetic) {
+ if (!e->synthetic()) {
if (const QScreen *screen = window->screen())
if (QPlatformCursor *cursor = screen->handle()->cursor())
cursor->pointerEvent(ev);
@@ -1769,7 +1760,7 @@ void QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::Mo
}
QGuiApplication::sendSpontaneousEvent(window, &ev);
- if (!e->synthetic && !ev.isAccepted()
+ if (!e->synthetic() && !ev.isAccepted()
&& !frameStrut
&& qApp->testAttribute(Qt::AA_SynthesizeTouchForUnhandledMouseEvents)) {
if (!m_fakeTouchDevice) {
@@ -1800,12 +1791,12 @@ void QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::Mo
QList<QTouchEvent::TouchPoint> touchPoints = QWindowSystemInterfacePrivate::convertTouchPoints(points, &type);
QWindowSystemInterfacePrivate::TouchEvent fake(window, e->timestamp, type, m_fakeTouchDevice, touchPoints, e->modifiers);
- fake.synthetic = true;
+ fake.flags |= QWindowSystemInterfacePrivate::WindowSystemEvent::Synthetic;
processTouchEvent(&fake);
}
if (doubleClick) {
mousePressButton = Qt::NoButton;
- if (!e->window.isNull() || e->nullWindow) { // QTBUG-36364, check if window closed in response to press
+ if (!e->window.isNull() || e->nullWindow()) { // QTBUG-36364, check if window closed in response to press
const QEvent::Type doubleClickType = frameStrut ? QEvent::NonClientAreaMouseButtonDblClick : QEvent::MouseButtonDblClick;
QMouseEvent dblClickEvent(doubleClickType, localPoint, localPoint, globalPoint,
button, buttons, e->modifiers);
@@ -1823,7 +1814,7 @@ void QGuiApplicationPrivate::processWheelEvent(QWindowSystemInterfacePrivate::Wh
QPointF globalPoint = e->globalPos;
QPointF localPoint = e->localPos;
- if (e->nullWindow) {
+ if (e->nullWindow()) {
window = QGuiApplication::topLevelAt(globalPoint.toPoint());
if (window) {
QPointF delta = globalPoint - globalPoint.toPoint();
@@ -1854,7 +1845,7 @@ void QGuiApplicationPrivate::processKeyEvent(QWindowSystemInterfacePrivate::KeyE
{
QWindow *window = e->window.data();
modifier_buttons = e->modifiers;
- if (e->nullWindow
+ if (e->nullWindow()
#if defined(Q_OS_ANDROID) && !defined(Q_OS_ANDROID_NO_SDK)
|| e->key == Qt::Key_Back || e->key == Qt::Key_Menu
#endif
@@ -2095,7 +2086,7 @@ void QGuiApplicationPrivate::processTabletEvent(QWindowSystemInterfacePrivate::T
// subsequent events up to the release are delivered to that same window.
// If window is given, just send to that.
if (type == QEvent::TabletPress) {
- if (e->nullWindow) {
+ if (e->nullWindow()) {
window = QGuiApplication::topLevelAt(e->global.toPoint());
localValid = false;
}
@@ -2103,7 +2094,7 @@ void QGuiApplicationPrivate::processTabletEvent(QWindowSystemInterfacePrivate::T
return;
tabletPressTarget = window;
} else {
- if (e->nullWindow) {
+ if (e->nullWindow()) {
window = tabletPressTarget;
localValid = false;
}
@@ -2240,7 +2231,7 @@ void QGuiApplicationPrivate::processTouchEvent(QWindowSystemInterfacePrivate::To
touchEvent.setWindow(*winIt);
QGuiApplication::sendSpontaneousEvent(*winIt, &touchEvent);
}
- if (!self->synthesizedMousePoints.isEmpty() && !e->synthetic) {
+ if (!self->synthesizedMousePoints.isEmpty() && !e->synthetic()) {
for (QHash<QWindow *, SynthesizedMouseData>::const_iterator synthIt = self->synthesizedMousePoints.constBegin(),
synthItEnd = self->synthesizedMousePoints.constEnd(); synthIt != synthItEnd; ++synthIt) {
if (!synthIt->window)
@@ -2252,7 +2243,7 @@ void QGuiApplicationPrivate::processTouchEvent(QWindowSystemInterfacePrivate::To
buttons & ~Qt::LeftButton,
e->modifiers,
Qt::MouseEventSynthesizedByQt);
- fake.synthetic = true;
+ fake.flags |= QWindowSystemInterfacePrivate::WindowSystemEvent::Synthetic;
processMouseEvent(&fake);
}
self->synthesizedMousePoints.clear();
@@ -2431,7 +2422,7 @@ void QGuiApplicationPrivate::processTouchEvent(QWindowSystemInterfacePrivate::To
}
QGuiApplication::sendSpontaneousEvent(w, &touchEvent);
- if (!e->synthetic && !touchEvent.isAccepted() && synthesizeMouseFromTouchEventsEnabled()) {
+ if (!e->synthetic() && !touchEvent.isAccepted() && synthesizeMouseFromTouchEventsEnabled()) {
// exclude touchpads as those generate their own mouse events
if (touchEvent.device()->type() != QTouchDevice::TouchPad) {
Qt::MouseButtons b = eventType == QEvent::TouchEnd ? Qt::NoButton : Qt::LeftButton;
@@ -2454,7 +2445,7 @@ void QGuiApplicationPrivate::processTouchEvent(QWindowSystemInterfacePrivate::To
b | (buttons & ~Qt::LeftButton),
e->modifiers,
Qt::MouseEventSynthesizedByQt);
- fake.synthetic = true;
+ fake.flags |= QWindowSystemInterfacePrivate::WindowSystemEvent::Synthetic;
processMouseEvent(&fake);
break;
}
diff --git a/src/gui/kernel/qguiapplication.h b/src/gui/kernel/qguiapplication.h
index 713f2f2669..ff6d5f5fba 100644
--- a/src/gui/kernel/qguiapplication.h
+++ b/src/gui/kernel/qguiapplication.h
@@ -143,7 +143,7 @@ public:
static Qt::ApplicationState applicationState();
static int exec();
- bool notify(QObject *, QEvent *);
+ bool notify(QObject *, QEvent *) Q_DECL_OVERRIDE;
#ifndef QT_NO_SESSIONMANAGER
// session management
@@ -170,8 +170,8 @@ Q_SIGNALS:
void paletteChanged(const QPalette &pal);
protected:
- bool event(QEvent *);
- bool compressEvent(QEvent *, QObject *receiver, QPostEventList *);
+ bool event(QEvent *) Q_DECL_OVERRIDE;
+ bool compressEvent(QEvent *, QObject *receiver, QPostEventList *) Q_DECL_OVERRIDE;
QGuiApplication(QGuiApplicationPrivate &p);
diff --git a/src/gui/kernel/qguiapplication_p.h b/src/gui/kernel/qguiapplication_p.h
index eed3d5c10e..165cd18580 100644
--- a/src/gui/kernel/qguiapplication_p.h
+++ b/src/gui/kernel/qguiapplication_p.h
@@ -81,7 +81,7 @@ public:
virtual void notifyLayoutDirectionChange();
virtual void notifyActiveWindowChange(QWindow *previous);
- virtual bool shouldQuit();
+ virtual bool shouldQuit() Q_DECL_OVERRIDE;
bool shouldQuitInternal(const QWindowList &processedWindows);
virtual bool tryCloseAllWindows();
diff --git a/src/gui/kernel/qkeysequence.cpp b/src/gui/kernel/qkeysequence.cpp
index 209d1dd499..4a4ce22f35 100644
--- a/src/gui/kernel/qkeysequence.cpp
+++ b/src/gui/kernel/qkeysequence.cpp
@@ -289,6 +289,7 @@ void Q_GUI_EXPORT qt_set_sequence_auto_mnemonic(bool b) { qt_sequence_no_mnemoni
\row \li DeleteCompleteLine \li (none) \li (none) \li Ctrl+U \li Ctrl+U
\row \li InsertParagraphSeparator \li Enter \li Enter \li Enter \li Enter
\row \li InsertLineSeparator \li Shift+Enter \li Meta+Enter, Meta+O \li Shift+Enter \li Shift+Enter
+ \row \li Backspace \li (none) \li Meta+H \li (none) \li (none)
\endtable
Note that, since the key sequences used for the standard shortcuts differ
@@ -663,6 +664,9 @@ static const struct {
{ Qt::Key_Play, QT_TRANSLATE_NOOP("QShortcut", "Play") },
{ Qt::Key_Zoom, QT_TRANSLATE_NOOP("QShortcut", "Zoom") },
{ Qt::Key_Exit, QT_TRANSLATE_NOOP("QShortcut", "Exit") },
+ { Qt::Key_TouchpadToggle, QT_TRANSLATE_NOOP("QShortcut", "Touchpad Toggle") },
+ { Qt::Key_TouchpadOn, QT_TRANSLATE_NOOP("QShortcut", "Touchpad On") },
+ { Qt::Key_TouchpadOff, QT_TRANSLATE_NOOP("QShortcut", "Touchpad Off") },
{ 0, 0 }
};
@@ -679,6 +683,7 @@ static const struct {
\value AddTab Add new tab.
\value Back Navigate back.
+ \value Backspace Delete previous character.
\value Bold Bold text.
\value Close Close document/tab.
\value Copy Copy.
diff --git a/src/gui/kernel/qkeysequence.h b/src/gui/kernel/qkeysequence.h
index 5a2ce5a8b9..fd2a3e9d7b 100644
--- a/src/gui/kernel/qkeysequence.h
+++ b/src/gui/kernel/qkeysequence.h
@@ -134,7 +134,8 @@ public:
Quit,
FullScreen,
Deselect,
- DeleteCompleteLine
+ DeleteCompleteLine,
+ Backspace
};
enum SequenceFormat {
diff --git a/src/gui/kernel/qoffscreensurface.cpp b/src/gui/kernel/qoffscreensurface.cpp
index 5cf77de5d8..fb1dfd8df5 100644
--- a/src/gui/kernel/qoffscreensurface.cpp
+++ b/src/gui/kernel/qoffscreensurface.cpp
@@ -180,6 +180,9 @@ void QOffscreenSurface::create()
d->offscreenWindow->setGeometry(0, 0, d->size.width(), d->size.height());
d->offscreenWindow->create();
}
+
+ QPlatformSurfaceEvent e(QPlatformSurfaceEvent::SurfaceCreated);
+ QGuiApplication::sendEvent(this, &e);
}
}
@@ -191,6 +194,10 @@ void QOffscreenSurface::create()
void QOffscreenSurface::destroy()
{
Q_D(QOffscreenSurface);
+
+ QPlatformSurfaceEvent e(QPlatformSurfaceEvent::SurfaceAboutToBeDestroyed);
+ QGuiApplication::sendEvent(this, &e);
+
delete d->platformOffscreenSurface;
d->platformOffscreenSurface = 0;
if (d->offscreenWindow) {
diff --git a/src/gui/kernel/qoffscreensurface.h b/src/gui/kernel/qoffscreensurface.h
index a4ba51320b..a5dae71ae5 100644
--- a/src/gui/kernel/qoffscreensurface.h
+++ b/src/gui/kernel/qoffscreensurface.h
@@ -54,7 +54,7 @@ public:
explicit QOffscreenSurface(QScreen *screen = 0);
virtual ~QOffscreenSurface();
- SurfaceType surfaceType() const;
+ SurfaceType surfaceType() const Q_DECL_OVERRIDE;
void create();
void destroy();
@@ -62,10 +62,10 @@ public:
bool isValid() const;
void setFormat(const QSurfaceFormat &format);
- QSurfaceFormat format() const;
+ QSurfaceFormat format() const Q_DECL_OVERRIDE;
QSurfaceFormat requestedFormat() const;
- QSize size() const;
+ QSize size() const Q_DECL_OVERRIDE;
QScreen *screen() const;
void setScreen(QScreen *screen);
@@ -80,7 +80,7 @@ private Q_SLOTS:
private:
- QPlatformSurface *surfaceHandle() const;
+ QPlatformSurface *surfaceHandle() const Q_DECL_OVERRIDE;
Q_DISABLE_COPY(QOffscreenSurface)
};
diff --git a/src/gui/kernel/qopenglcontext.cpp b/src/gui/kernel/qopenglcontext.cpp
index 5918f30660..1cd67b19d2 100644
--- a/src/gui/kernel/qopenglcontext.cpp
+++ b/src/gui/kernel/qopenglcontext.cpp
@@ -596,6 +596,7 @@ bool QOpenGLContext::create()
d->platformGLContext = QGuiApplicationPrivate::platformIntegration()->createPlatformOpenGLContext(this);
if (!d->platformGLContext)
return false;
+ d->platformGLContext->initialize();
d->platformGLContext->setContext(this);
if (!d->platformGLContext->isSharing())
d->shareContext = 0;
diff --git a/src/gui/kernel/qopenglcontext_p.h b/src/gui/kernel/qopenglcontext_p.h
index 975553e7cd..c4eb6545bc 100644
--- a/src/gui/kernel/qopenglcontext_p.h
+++ b/src/gui/kernel/qopenglcontext_p.h
@@ -105,12 +105,12 @@ public:
GLuint id() const { return m_id; }
protected:
- void invalidateResource()
+ void invalidateResource() Q_DECL_OVERRIDE
{
m_id = 0;
}
- void freeResource(QOpenGLContext *context);
+ void freeResource(QOpenGLContext *context) Q_DECL_OVERRIDE;
private:
GLuint m_id;
diff --git a/src/gui/kernel/qopenglwindow.cpp b/src/gui/kernel/qopenglwindow.cpp
index c37974c429..c58e296b5a 100644
--- a/src/gui/kernel/qopenglwindow.cpp
+++ b/src/gui/kernel/qopenglwindow.cpp
@@ -166,10 +166,13 @@ class QOpenGLWindowPrivate : public QPaintDeviceWindowPrivate
{
Q_DECLARE_PUBLIC(QOpenGLWindow)
public:
- QOpenGLWindowPrivate(QOpenGLWindow::UpdateBehavior updateBehavior)
+ QOpenGLWindowPrivate(QOpenGLContext *shareContext, QOpenGLWindow::UpdateBehavior updateBehavior)
: updateBehavior(updateBehavior)
, hasFboBlit(false)
+ , shareContext(shareContext)
{
+ if (!shareContext)
+ this->shareContext = qt_gl_global_share_context();
}
~QOpenGLWindowPrivate()
@@ -201,7 +204,7 @@ public:
if (!context) {
context.reset(new QOpenGLContext);
- context->setShareContext(qt_gl_global_share_context());
+ context->setShareContext(shareContext);
context->setFormat(q->requestedFormat());
if (!context->create())
qWarning("QOpenGLWindow::beginPaint: Failed to create context");
@@ -299,6 +302,7 @@ public:
QOpenGLWindow::UpdateBehavior updateBehavior;
bool hasFboBlit;
QScopedPointer<QOpenGLContext> context;
+ QOpenGLContext *shareContext;
QScopedPointer<QOpenGLFramebufferObject> fbo;
QScopedPointer<QOpenGLWindowPaintDevice> paintDevice;
QOpenGLTextureBlitter blitter;
@@ -317,12 +321,22 @@ void QOpenGLWindowPaintDevice::ensureActiveTarget()
\sa QOpenGLWindow::UpdateBehavior
*/
QOpenGLWindow::QOpenGLWindow(QOpenGLWindow::UpdateBehavior updateBehavior, QWindow *parent)
- : QPaintDeviceWindow(*(new QOpenGLWindowPrivate(updateBehavior)), parent)
+ : QPaintDeviceWindow(*(new QOpenGLWindowPrivate(Q_NULLPTR, updateBehavior)), parent)
{
setSurfaceType(QSurface::OpenGLSurface);
}
/*!
+ Constructs a new QOpenGLWindow with the given \a parent and \a updateBehavior. The QOpenGLWindow's context will share with \a shareContext.
+
+ \sa QOpenGLWindow::UpdateBehavior shareContext
+*/
+QOpenGLWindow::QOpenGLWindow(QOpenGLContext *shareContext, UpdateBehavior updateBehavior, QWindow *parent)
+ : QPaintDeviceWindow(*(new QOpenGLWindowPrivate(shareContext, updateBehavior)), parent)
+{
+ setSurfaceType(QSurface::OpenGLSurface);
+}
+/*!
\return the update behavior for this QOpenGLWindow.
*/
QOpenGLWindow::UpdateBehavior QOpenGLWindow::updateBehavior() const
@@ -414,6 +428,15 @@ QOpenGLContext *QOpenGLWindow::context() const
}
/*!
+ \return The QOpenGLContext requested to be shared with this window's QOpenGLContext.
+*/
+QOpenGLContext *QOpenGLWindow::shareContext() const
+{
+ Q_D(const QOpenGLWindow);
+ return d->shareContext;
+}
+
+/*!
The framebuffer object handle used by this window.
When the update behavior is set to \c NoPartialUpdate, there is no separate
diff --git a/src/gui/kernel/qopenglwindow.h b/src/gui/kernel/qopenglwindow.h
index 3b0b399b0a..6b64271b7b 100644
--- a/src/gui/kernel/qopenglwindow.h
+++ b/src/gui/kernel/qopenglwindow.h
@@ -59,6 +59,7 @@ public:
};
explicit QOpenGLWindow(UpdateBehavior updateBehavior = NoPartialUpdate, QWindow *parent = 0);
+ explicit QOpenGLWindow(QOpenGLContext *shareContext, UpdateBehavior updateBehavior = NoPartialUpdate, QWindow *parent = 0);
UpdateBehavior updateBehavior() const;
bool isValid() const;
@@ -67,6 +68,7 @@ public:
void doneCurrent();
QOpenGLContext *context() const;
+ QOpenGLContext *shareContext() const;
GLuint defaultFramebufferObject() const;
diff --git a/src/gui/kernel/qpaintdevicewindow.cpp b/src/gui/kernel/qpaintdevicewindow.cpp
index cf8653426f..d5b15ed5f5 100644
--- a/src/gui/kernel/qpaintdevicewindow.cpp
+++ b/src/gui/kernel/qpaintdevicewindow.cpp
@@ -76,7 +76,7 @@ void QPaintDeviceWindow::update(const QRect &rect)
{
Q_D(QPaintDeviceWindow);
d->dirtyRegion += rect;
- d->triggerUpdate();
+ requestUpdate();
}
/*!
@@ -89,7 +89,7 @@ void QPaintDeviceWindow::update(const QRegion &region)
{
Q_D(QPaintDeviceWindow);
d->dirtyRegion += region;
- d->triggerUpdate();
+ requestUpdate();
}
/*!
@@ -179,7 +179,6 @@ bool QPaintDeviceWindow::event(QEvent *event)
Q_D(QPaintDeviceWindow);
if (event->type() == QEvent::UpdateRequest) {
- d->paintEventSent = false;
if (handle()) // platform window may be gone when the window is closed during app exit
d->handleUpdateEvent();
return true;
diff --git a/src/gui/kernel/qpaintdevicewindow_p.h b/src/gui/kernel/qpaintdevicewindow_p.h
index 1935bb6db5..865861125b 100644
--- a/src/gui/kernel/qpaintdevicewindow_p.h
+++ b/src/gui/kernel/qpaintdevicewindow_p.h
@@ -46,8 +46,6 @@ class Q_GUI_EXPORT QPaintDeviceWindowPrivate : public QWindowPrivate
Q_DECLARE_PUBLIC(QPaintDeviceWindow)
public:
- QPaintDeviceWindowPrivate() : paintEventSent(false) { }
-
virtual void beginPaint(const QRegion &region)
{
Q_UNUSED(region);
@@ -82,15 +80,6 @@ public:
return true;
}
- void triggerUpdate()
- {
- Q_Q(QPaintDeviceWindow);
- if (!paintEventSent) {
- QCoreApplication::postEvent(q, new QEvent(QEvent::UpdateRequest));
- paintEventSent = true;
- }
- }
-
void doFlush(const QRegion &region)
{
QRegion toFlush = region;
@@ -113,7 +102,6 @@ public:
private:
QRegion dirtyRegion;
- bool paintEventSent;
};
diff --git a/src/gui/kernel/qpixelformat.cpp b/src/gui/kernel/qpixelformat.cpp
index cfa8a96d69..7e50a0cd41 100644
--- a/src/gui/kernel/qpixelformat.cpp
+++ b/src/gui/kernel/qpixelformat.cpp
@@ -69,6 +69,7 @@ QT_BEGIN_NAMESPACE
\enum QPixelFormat::ColorModel
This enum type is used to describe the color model of the pixelformat.
+ Alpha was added in 5.5.
\value RGB The color model is RGB.
@@ -86,6 +87,8 @@ QT_BEGIN_NAMESPACE
\value HSV The color model is HSV.
\value YUV The color model is YUV.
+
+ \value Alpha There is no color model, only alpha is used.
*/
/*!
@@ -282,6 +285,21 @@ QT_BEGIN_NAMESPACE
*/
/*!
+ \fn QPixelFormat qPixelFormatAlpha(uchar channelSize,
+ QPixelFormat::TypeInterpretation typeInterpretation = QPixelFormat::UnsignedInteger)
+ \relates QPixelFormat
+ \since 5.5
+
+ Constructor function for creating an Alpha format. A mask format can be
+ described by passing 1 to \a channelSize. Its also possible to define very
+ accurate alpha formats using doubles to describe each pixel by passing 8
+ as \a channelSize and FloatingPoint as \a typeInterpretation.
+
+ \sa QPixelFormat::TypeInterpretation
+*/
+
+
+/*!
\fn QPixelFormat qPixelFormatCmyk(uchar channelSize,
uchar alphaSize = 0,
QPixelFormat::AlphaUsage alphaUsage = QPixelFormat::IgnoresAlpha,
diff --git a/src/gui/kernel/qpixelformat.h b/src/gui/kernel/qpixelformat.h
index f55c97c7c0..b7a4377a69 100644
--- a/src/gui/kernel/qpixelformat.h
+++ b/src/gui/kernel/qpixelformat.h
@@ -103,7 +103,8 @@ public:
CMYK,
HSL,
HSV,
- YUV
+ YUV,
+ Alpha
};
enum AlphaUsage {
@@ -304,6 +305,22 @@ Q_DECL_CONSTEXPR inline QPixelFormat qPixelFormatGrayscale(uchar channelSize,
typeInt);
}
+Q_DECL_CONSTEXPR inline QPixelFormat qPixelFormatAlpha(uchar channelSize,
+ QPixelFormat::TypeInterpretation typeInt=QPixelFormat::UnsignedInteger) Q_DECL_NOTHROW
+{
+ return QPixelFormat(QPixelFormat::Alpha,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ channelSize,
+ QPixelFormat::UsesAlpha,
+ QPixelFormat::AtBeginning,
+ QPixelFormat::NotPremultiplied,
+ typeInt);
+}
+
Q_DECL_CONSTEXPR inline QPixelFormat qPixelFormatCmyk(uchar channelSize,
uchar alfa=0,
QPixelFormat::AlphaUsage usage=QPixelFormat::IgnoresAlpha,
diff --git a/src/gui/kernel/qplatformintegration.cpp b/src/gui/kernel/qplatformintegration.cpp
index 39b031ef6d..86edb9bd28 100644
--- a/src/gui/kernel/qplatformintegration.cpp
+++ b/src/gui/kernel/qplatformintegration.cpp
@@ -324,6 +324,16 @@ void QPlatformIntegration::initialize()
}
/*!
+ Called before the platform integration is deleted. Useful when cleanup relies on virtual
+ functions.
+
+ \since 5.5
+*/
+void QPlatformIntegration::destroy()
+{
+}
+
+/*!
Returns the platforms input context.
The default implementation returns 0, implying no input method support.
@@ -429,7 +439,7 @@ QList<int> QPlatformIntegration::possibleKeys(const QKeyEvent *) const
This adds the screen to QGuiApplication::screens(), and emits the
QGuiApplication::screenAdded() signal.
- The screen is automatically removed when the QPlatformScreen is destroyed.
+ The screen should be deleted by calling QPlatformIntegration::destroyScreen().
*/
void QPlatformIntegration::screenAdded(QPlatformScreen *ps)
{
@@ -439,6 +449,22 @@ void QPlatformIntegration::screenAdded(QPlatformScreen *ps)
emit qGuiApp->screenAdded(screen);
}
+/*!
+ Should be called by the implementation whenever a screen is removed.
+
+ This removes the screen from QGuiApplication::screens(), and deletes it.
+
+ Failing to call this and manually deleting the QPlatformScreen instead may
+ lead to a crash due to a pure virtual call.
+*/
+void QPlatformIntegration::destroyScreen(QPlatformScreen *screen)
+{
+ QGuiApplicationPrivate::screen_list.removeOne(screen->d_func()->screen);
+ delete screen->d_func()->screen;
+ screen->d_func()->screen = Q_NULLPTR;
+ delete screen;
+}
+
QStringList QPlatformIntegration::themeNames() const
{
return QStringList();
diff --git a/src/gui/kernel/qplatformintegration.h b/src/gui/kernel/qplatformintegration.h
index d510240fa4..dbef939b8b 100644
--- a/src/gui/kernel/qplatformintegration.h
+++ b/src/gui/kernel/qplatformintegration.h
@@ -109,6 +109,7 @@ public:
// Event dispatcher:
virtual QAbstractEventDispatcher *createEventDispatcher() const = 0;
virtual void initialize();
+ virtual void destroy();
//Deeper window system integrations
virtual QPlatformFontDatabase *fontDatabase() const;
@@ -170,6 +171,7 @@ public:
protected:
void screenAdded(QPlatformScreen *screen);
+ void destroyScreen(QPlatformScreen *screen);
};
QT_END_NAMESPACE
diff --git a/src/gui/kernel/qplatformoffscreensurface.h b/src/gui/kernel/qplatformoffscreensurface.h
index 07bb710eb8..abd51313b9 100644
--- a/src/gui/kernel/qplatformoffscreensurface.h
+++ b/src/gui/kernel/qplatformoffscreensurface.h
@@ -63,7 +63,7 @@ public:
QPlatformScreen *screen() const;
- virtual QSurfaceFormat format() const;
+ virtual QSurfaceFormat format() const Q_DECL_OVERRIDE;
virtual bool isValid() const;
protected:
diff --git a/src/gui/kernel/qplatformopenglcontext.cpp b/src/gui/kernel/qplatformopenglcontext.cpp
index 527bfdd983..bf0dccd440 100644
--- a/src/gui/kernel/qplatformopenglcontext.cpp
+++ b/src/gui/kernel/qplatformopenglcontext.cpp
@@ -89,6 +89,16 @@ QPlatformOpenGLContext::~QPlatformOpenGLContext()
}
/*!
+ Called after a new instance is constructed. The default implementation does nothing.
+
+ Subclasses can use this function to perform additional initialization that relies on
+ virtual functions.
+ */
+void QPlatformOpenGLContext::initialize()
+{
+}
+
+/*!
Reimplement in subclass if your platform uses framebuffer objects for surfaces.
The default implementation returns 0.
diff --git a/src/gui/kernel/qplatformopenglcontext.h b/src/gui/kernel/qplatformopenglcontext.h
index 261b6921a4..0a2bacfbde 100644
--- a/src/gui/kernel/qplatformopenglcontext.h
+++ b/src/gui/kernel/qplatformopenglcontext.h
@@ -63,6 +63,8 @@ public:
QPlatformOpenGLContext();
virtual ~QPlatformOpenGLContext();
+ virtual void initialize();
+
virtual QSurfaceFormat format() const = 0;
virtual void swapBuffers(QPlatformSurface *surface) = 0;
diff --git a/src/gui/kernel/qplatformscreen.cpp b/src/gui/kernel/qplatformscreen.cpp
index 71710d1cb1..fa6d785b04 100644
--- a/src/gui/kernel/qplatformscreen.cpp
+++ b/src/gui/kernel/qplatformscreen.cpp
@@ -52,9 +52,11 @@ QPlatformScreen::QPlatformScreen()
QPlatformScreen::~QPlatformScreen()
{
Q_D(QPlatformScreen);
-
- QGuiApplicationPrivate::screen_list.removeOne(d->screen);
- delete d->screen;
+ if (d->screen) {
+ qWarning("Manually deleting a QPlatformScreen. Call QPlatformIntegration::destroyScreen instead.");
+ QGuiApplicationPrivate::screen_list.removeOne(d->screen);
+ delete d->screen;
+ }
}
/*!
diff --git a/src/gui/kernel/qplatformsystemtrayicon.cpp b/src/gui/kernel/qplatformsystemtrayicon.cpp
index ba1ccc379d..a8fe4e04fb 100644
--- a/src/gui/kernel/qplatformsystemtrayicon.cpp
+++ b/src/gui/kernel/qplatformsystemtrayicon.cpp
@@ -118,7 +118,7 @@ QPlatformSystemTrayIcon::~QPlatformSystemTrayIcon()
*/
/*!
- \fn void QPlatformSystemTrayIcon::showMessage(const QString &msg, const QString &title,
+ \fn void QPlatformSystemTrayIcon::showMessage(const QString &title, const QString &msg,
const QIcon &icon, MessageIcon iconType, int msecs)
Shows a balloon message for the entry with the given \a title, message \a msg and \a icon for
the time specified in \a msecs. \a iconType is used as a hint for the implementing platform.
diff --git a/src/gui/kernel/qplatformsystemtrayicon.h b/src/gui/kernel/qplatformsystemtrayicon.h
index 1317708cd1..d77bfa9f8f 100644
--- a/src/gui/kernel/qplatformsystemtrayicon.h
+++ b/src/gui/kernel/qplatformsystemtrayicon.h
@@ -69,7 +69,7 @@ public:
virtual void updateToolTip(const QString &tooltip) = 0;
virtual void updateMenu(QPlatformMenu *menu) = 0;
virtual QRect geometry() const = 0;
- virtual void showMessage(const QString &msg, const QString &title,
+ virtual void showMessage(const QString &title, const QString &msg,
const QIcon &icon, MessageIcon iconType, int msecs) = 0;
virtual bool isSystemTrayAvailable() const = 0;
diff --git a/src/gui/kernel/qplatformtheme.cpp b/src/gui/kernel/qplatformtheme.cpp
index 646bd90e56..92c1b09406 100644
--- a/src/gui/kernel/qplatformtheme.cpp
+++ b/src/gui/kernel/qplatformtheme.cpp
@@ -320,7 +320,8 @@ const QKeyBinding QPlatformThemePrivate::keyBindings[] = {
{QKeySequence::FullScreen, 1, Qt::CTRL | Qt::Key_F11, KB_Gnome},
{QKeySequence::FullScreen, 1, Qt::Key_F11, KB_Win | KB_KDE},
{QKeySequence::Deselect, 0, Qt::CTRL | Qt::SHIFT | Qt::Key_A, KB_X11},
- {QKeySequence::DeleteCompleteLine, 0, Qt::CTRL | Qt::Key_U, KB_X11}
+ {QKeySequence::DeleteCompleteLine, 0, Qt::CTRL | Qt::Key_U, KB_X11},
+ {QKeySequence::Backspace, 0, Qt::META | Qt::Key_H, KB_Mac}
};
const uint QPlatformThemePrivate::numberOfKeyBindings = sizeof(QPlatformThemePrivate::keyBindings)/(sizeof(QKeyBinding));
@@ -502,9 +503,11 @@ QVariant QPlatformTheme::defaultThemeHint(ThemeHint hint)
case MouseDoubleClickDistance:
{
bool ok = false;
- int dist = qgetenv("QT_DBL_CLICK_DIST").toInt(&ok);
+ const int dist = qEnvironmentVariableIntValue("QT_DBL_CLICK_DIST", &ok);
return QVariant(ok ? dist : 5);
}
+ case WheelScrollLines:
+ return QVariant(3);
}
return QVariant();
}
diff --git a/src/gui/kernel/qplatformtheme.h b/src/gui/kernel/qplatformtheme.h
index a41dd8f257..be1eacf002 100644
--- a/src/gui/kernel/qplatformtheme.h
+++ b/src/gui/kernel/qplatformtheme.h
@@ -101,7 +101,8 @@ public:
DialogSnapToDefaultButton,
ContextMenuOnMouseRelease,
MousePressAndHoldInterval,
- MouseDoubleClickDistance
+ MouseDoubleClickDistance,
+ WheelScrollLines
};
enum DialogType {
diff --git a/src/gui/kernel/qplatformwindow.cpp b/src/gui/kernel/qplatformwindow.cpp
index 754395592c..167bd44f0e 100644
--- a/src/gui/kernel/qplatformwindow.cpp
+++ b/src/gui/kernel/qplatformwindow.cpp
@@ -453,7 +453,7 @@ bool QPlatformWindow::frameStrutEventsEnabled() const
QString QPlatformWindow::formatWindowTitle(const QString &title, const QString &separator)
{
QString fullTitle = title;
- if (QGuiApplicationPrivate::displayName) {
+ if (QGuiApplicationPrivate::displayName && !title.endsWith(*QGuiApplicationPrivate::displayName)) {
// Append display name, if set.
if (!fullTitle.isEmpty())
fullTitle += separator;
@@ -595,6 +595,36 @@ QRect QPlatformWindow::initialGeometry(const QWindow *w,
}
/*!
+ Requests an QEvent::UpdateRequest event. The event will be
+ delivered to the QWindow.
+
+ QPlatformWindow subclasses can re-implement this function to
+ provide display refresh synchronized updates. The event
+ should be delivered using QWindowPrivate::deliverUpdateRequest()
+ to not get out of sync with the the internal state of QWindow.
+
+ The default implementation posts an UpdateRequest event to the
+ window after 5 ms. The additional time is there to give the event
+ loop a bit of idle time to gather system events.
+
+*/
+void QPlatformWindow::requestUpdate()
+{
+ static int timeout = -1;
+ if (timeout == -1) {
+ bool ok = false;
+ timeout = qEnvironmentVariableIntValue("QT_QPA_UPDATE_IDLE_TIME", &ok);
+ if (!ok)
+ timeout = 5;
+ }
+
+ QWindow *w = window();
+ QWindowPrivate *wp = (QWindowPrivate *) QObjectPrivate::get(w);
+ Q_ASSERT(wp->updateTimer == 0);
+ wp->updateTimer = w->startTimer(timeout, Qt::PreciseTimer);
+}
+
+/*!
\class QPlatformWindow
\since 4.8
\internal
diff --git a/src/gui/kernel/qplatformwindow.h b/src/gui/kernel/qplatformwindow.h
index 5c351a69d2..d66bf31569 100644
--- a/src/gui/kernel/qplatformwindow.h
+++ b/src/gui/kernel/qplatformwindow.h
@@ -72,7 +72,7 @@ public:
QPlatformScreen *screen() const;
- virtual QSurfaceFormat format() const;
+ virtual QSurfaceFormat format() const Q_DECL_OVERRIDE;
virtual void setGeometry(const QRect &rect);
virtual QRect geometry() const;
@@ -129,6 +129,7 @@ public:
static QRect initialGeometry(const QWindow *w,
const QRect &initialGeometry, int defaultWidth, int defaultHeight);
+ virtual void requestUpdate();
protected:
static QString formatWindowTitle(const QString &title, const QString &separator);
QPlatformScreen *screenForGeometry(const QRect &newGeometry) const;
diff --git a/src/gui/kernel/qshapedpixmapdndwindow_p.h b/src/gui/kernel/qshapedpixmapdndwindow_p.h
index 04198c83cb..4c3d49e853 100644
--- a/src/gui/kernel/qshapedpixmapdndwindow_p.h
+++ b/src/gui/kernel/qshapedpixmapdndwindow_p.h
@@ -66,7 +66,7 @@ public:
void updateGeometry();
protected:
- void exposeEvent(QExposeEvent *);
+ void exposeEvent(QExposeEvent *) Q_DECL_OVERRIDE;
private:
QBackingStore *m_backingStore;
diff --git a/src/gui/kernel/qshortcutmap.cpp b/src/gui/kernel/qshortcutmap.cpp
index cad707ab70..b3e71c77fa 100644
--- a/src/gui/kernel/qshortcutmap.cpp
+++ b/src/gui/kernel/qshortcutmap.cpp
@@ -310,6 +310,10 @@ QKeySequence::SequenceMatch QShortcutMap::state()
Uses ShortcutOverride event to see if any widgets want to override
the event. If not, uses nextState(QKeyEvent) to check for a grabbed
Shortcut, and dispatchEvent() is found and identical.
+
+ \note that this function should only be called from QWindowSystemInterface,
+ otherwise it will result in duplicate events.
+
\sa nextState, dispatchEvent
*/
bool QShortcutMap::tryShortcutEvent(QObject *o, QKeyEvent *e)
diff --git a/src/gui/kernel/qsimpledrag_p.h b/src/gui/kernel/qsimpledrag_p.h
index 8ef8f99616..c506fa8676 100644
--- a/src/gui/kernel/qsimpledrag_p.h
+++ b/src/gui/kernel/qsimpledrag_p.h
@@ -64,9 +64,9 @@ class Q_GUI_EXPORT QBasicDrag : public QPlatformDrag, public QObject
public:
virtual ~QBasicDrag();
- virtual Qt::DropAction drag(QDrag *drag);
+ virtual Qt::DropAction drag(QDrag *drag) Q_DECL_OVERRIDE;
- virtual bool eventFilter(QObject *o, QEvent *e);
+ virtual bool eventFilter(QObject *o, QEvent *e) Q_DECL_OVERRIDE;
protected:
QBasicDrag();
@@ -106,13 +106,13 @@ class Q_GUI_EXPORT QSimpleDrag : public QBasicDrag
{
public:
QSimpleDrag();
- virtual QMimeData *platformDropData();
+ virtual QMimeData *platformDropData() Q_DECL_OVERRIDE;
protected:
- virtual void startDrag();
- virtual void cancel();
- virtual void move(const QMouseEvent *me);
- virtual void drop(const QMouseEvent *me);
+ virtual void startDrag() Q_DECL_OVERRIDE;
+ virtual void cancel() Q_DECL_OVERRIDE;
+ virtual void move(const QMouseEvent *me) Q_DECL_OVERRIDE;
+ virtual void drop(const QMouseEvent *me) Q_DECL_OVERRIDE;
private:
QWindow *m_current_window;
diff --git a/src/gui/kernel/qsurface.h b/src/gui/kernel/qsurface.h
index 58b7ce018e..0c02a3564c 100644
--- a/src/gui/kernel/qsurface.h
+++ b/src/gui/kernel/qsurface.h
@@ -36,7 +36,7 @@
#include <QtCore/qnamespace.h>
#include <QtGui/qsurfaceformat.h>
-
+#include <QtCore/qmetatype.h>
#include <QtCore/qsize.h>
QT_BEGIN_NAMESPACE
@@ -82,4 +82,6 @@ protected:
QT_END_NAMESPACE
+Q_DECLARE_METATYPE(QSurface*)
+
#endif //QSURFACE_H
diff --git a/src/gui/kernel/qwindow.cpp b/src/gui/kernel/qwindow.cpp
index a4b5376b6f..ced39bbe10 100644
--- a/src/gui/kernel/qwindow.cpp
+++ b/src/gui/kernel/qwindow.cpp
@@ -404,6 +404,11 @@ void QWindowPrivate::create(bool recursive)
window->d_func()->platformWindow->setParent(platformWindow);
}
}
+
+ if (platformWindow) {
+ QPlatformSurfaceEvent e(QPlatformSurfaceEvent::SurfaceCreated);
+ QGuiApplication::sendEvent(q, &e);
+ }
}
}
@@ -1603,6 +1608,10 @@ void QWindow::destroy()
bool wasVisible = isVisible();
setVisible(false);
+
+ QPlatformSurfaceEvent e(QPlatformSurfaceEvent::SurfaceAboutToBeDestroyed);
+ QGuiApplication::sendEvent(this, &e);
+
delete d->platformWindow;
d->resizeEventPending = true;
d->receivedExpose = false;
@@ -2052,12 +2061,56 @@ bool QWindow::event(QEvent *ev)
break;
#endif
+ case QEvent::Timer: {
+ Q_D(QWindow);
+ if (static_cast<QTimerEvent *>(ev)->timerId() == d->updateTimer) {
+ killTimer(d->updateTimer);
+ d->updateTimer = 0;
+ d->deliverUpdateRequest();
+ } else {
+ QObject::event(ev);
+ }
+ break;
+ }
+
default:
return QObject::event(ev);
}
return true;
}
+void QWindowPrivate::deliverUpdateRequest()
+{
+ Q_Q(QWindow);
+ updateRequestPending = false;
+ QEvent request(QEvent::UpdateRequest);
+ QCoreApplication::sendEvent(q, &request);
+}
+
+/*!
+ Schedules a QEvent::UpdateRequest event to be delivered to this window.
+
+ The event is delivered in sync with the display vsync on platforms
+ where this is possible. When driving animations, this function should
+ be called once after drawing has completed.
+
+ Calling this function multiple times will result in a single event
+ being delivered to the window.
+
+ Subclasses of QWindow should reimplement QWindow::event(), intercept
+ the event and call the application's rendering code, then call the
+ base class implementation.
+*/
+
+void QWindow::requestUpdate()
+{
+ Q_D(QWindow);
+ if (d->updateRequestPending || !d->platformWindow)
+ return;
+ d->updateRequestPending = true;
+ d->platformWindow->requestUpdate();
+}
+
/*!
Override this to handle key press events (\a ev).
@@ -2237,24 +2290,22 @@ void QWindowPrivate::maybeQuitOnLastWindowClosed()
Q_Q(QWindow);
// Attempt to close the application only if this has WA_QuitOnClose set and a non-visible parent
bool quitOnClose = QGuiApplication::quitOnLastWindowClosed() && !q->parent();
-
- if (quitOnClose) {
- QWindowList list = QGuiApplication::topLevelWindows();
- bool lastWindowClosed = true;
- for (int i = 0; i < list.size(); ++i) {
- QWindow *w = list.at(i);
- if (!w->isVisible() || w->transientParent())
- continue;
- lastWindowClosed = false;
- break;
- }
- if (lastWindowClosed) {
- QGuiApplicationPrivate::emitLastWindowClosed();
+ QWindowList list = QGuiApplication::topLevelWindows();
+ bool lastWindowClosed = true;
+ for (int i = 0; i < list.size(); ++i) {
+ QWindow *w = list.at(i);
+ if (!w->isVisible() || w->transientParent())
+ continue;
+ lastWindowClosed = false;
+ break;
+ }
+ if (lastWindowClosed) {
+ QGuiApplicationPrivate::emitLastWindowClosed();
+ if (quitOnClose) {
QCoreApplicationPrivate *applicationPrivate = static_cast<QCoreApplicationPrivate*>(QObjectPrivate::get(QCoreApplication::instance()));
applicationPrivate->maybeQuit();
}
}
-
}
QWindow *QWindowPrivate::topLevelWindow() const
diff --git a/src/gui/kernel/qwindow.h b/src/gui/kernel/qwindow.h
index 473d275b56..350cd8af24 100644
--- a/src/gui/kernel/qwindow.h
+++ b/src/gui/kernel/qwindow.h
@@ -128,7 +128,7 @@ public:
virtual ~QWindow();
void setSurfaceType(SurfaceType surfaceType);
- SurfaceType surfaceType() const;
+ SurfaceType surfaceType() const Q_DECL_OVERRIDE;
bool isVisible() const;
@@ -149,7 +149,7 @@ public:
void setModality(Qt::WindowModality modality);
void setFormat(const QSurfaceFormat &format);
- QSurfaceFormat format() const;
+ QSurfaceFormat format() const Q_DECL_OVERRIDE;
QSurfaceFormat requestedFormat() const;
void setFlags(Qt::WindowFlags flags);
@@ -286,6 +286,8 @@ public Q_SLOTS:
Q_REVISION(1) void alert(int msec);
+ Q_REVISION(3) void requestUpdate();
+
Q_SIGNALS:
void screenChanged(QScreen *screen);
void modalityChanged(Qt::WindowModality modality);
@@ -326,7 +328,7 @@ protected:
virtual void hideEvent(QHideEvent *);
// TODO Qt 6 - add closeEvent virtual handler
- virtual bool event(QEvent *);
+ virtual bool event(QEvent *) Q_DECL_OVERRIDE;
virtual void keyPressEvent(QKeyEvent *);
virtual void keyReleaseEvent(QKeyEvent *);
virtual void mousePressEvent(QMouseEvent *);
@@ -346,7 +348,7 @@ protected:
private:
Q_PRIVATE_SLOT(d_func(), void _q_clearAlert())
- QPlatformSurface *surfaceHandle() const;
+ QPlatformSurface *surfaceHandle() const Q_DECL_OVERRIDE;
Q_DISABLE_COPY(QWindow)
diff --git a/src/gui/kernel/qwindow_p.h b/src/gui/kernel/qwindow_p.h
index bc5dfa4876..c496d7716b 100644
--- a/src/gui/kernel/qwindow_p.h
+++ b/src/gui/kernel/qwindow_p.h
@@ -86,6 +86,8 @@ public:
, maximumSize(QWINDOWSIZE_MAX, QWINDOWSIZE_MAX)
, modality(Qt::NonModal)
, blockedByModalWindow(false)
+ , updateRequestPending(false)
+ , updateTimer(0)
, transientParent(0)
, topLevelScreen(0)
#ifndef QT_NO_CURSOR
@@ -109,6 +111,8 @@ public:
void applyCursor();
#endif
+ void deliverUpdateRequest();
+
QPoint globalPosition() const {
Q_Q(const QWindow);
QPoint offset = q->position();
@@ -134,6 +138,10 @@ public:
virtual void clearFocusObject();
virtual QRectF closestAcceptableGeometry(const QRectF &rect) const;
+ bool isPopup() const { return (windowFlags & Qt::WindowType_Mask) == Qt::Popup; }
+
+ static QWindowPrivate *get(QWindow *window) { return window->d_func(); }
+
QWindow::SurfaceType surfaceType;
Qt::WindowFlags windowFlags;
QWindow *parentWindow;
@@ -163,6 +171,9 @@ public:
Qt::WindowModality modality;
bool blockedByModalWindow;
+ bool updateRequestPending;
+ int updateTimer;
+
QPointer<QWindow> transientParent;
QScreen *topLevelScreen;
diff --git a/src/gui/kernel/qwindowsysteminterface.cpp b/src/gui/kernel/qwindowsysteminterface.cpp
index 722a695481..a564f507d8 100644
--- a/src/gui/kernel/qwindowsysteminterface.cpp
+++ b/src/gui/kernel/qwindowsysteminterface.cpp
@@ -201,6 +201,11 @@ bool QWindowSystemInterface::tryHandleShortcutEvent(QWindow *w, ulong timestamp,
#ifndef QT_NO_SHORTCUT
QGuiApplicationPrivate::modifier_buttons = mods;
+ if (!w)
+ w = QGuiApplication::focusWindow();
+ if (!w)
+ return false;
+
QObject *focus = w->focusObject();
if (!focus)
focus = w;
@@ -220,6 +225,28 @@ bool QWindowSystemInterface::tryHandleShortcutEvent(QWindow *w, ulong timestamp,
#endif
}
+// used by QTestLib to directly send shortcuts to objects
+bool QWindowSystemInterface::tryHandleShortcutEventToObject(QObject *o, ulong timestamp, int k, Qt::KeyboardModifiers mods,
+ const QString &text, bool autorep, ushort count)
+{
+#ifndef QT_NO_SHORTCUT
+ QGuiApplicationPrivate::modifier_buttons = mods;
+
+ QKeyEvent qevent(QEvent::ShortcutOverride, k, mods, text, autorep, count);
+ qevent.setTimestamp(timestamp);
+ return QGuiApplicationPrivate::instance()->shortcutMap.tryShortcutEvent(o, &qevent);
+#else
+ Q_UNUSED(w)
+ Q_UNUSED(timestamp)
+ Q_UNUSED(k)
+ Q_UNUSED(mods)
+ Q_UNUSED(text)
+ Q_UNUSED(autorep)
+ Q_UNUSED(count)
+ return false;
+#endif
+}
+
bool QWindowSystemInterface::tryHandleExtendedShortcutEvent(QWindow *w, int k, Qt::KeyboardModifiers mods,
quint32 nativeScanCode, quint32 nativeVirtualKey, quint32 nativeModifiers,
const QString &text, bool autorep, ushort count)
@@ -265,6 +292,9 @@ void QWindowSystemInterface::handleKeyEvent(QWindow *w, QEvent::Type t, int k, Q
void QWindowSystemInterface::handleKeyEvent(QWindow *tlw, ulong timestamp, QEvent::Type t, int k, Qt::KeyboardModifiers mods, const QString & text, bool autorep, ushort count)
{
+ if (t == QEvent::KeyPress && QWindowSystemInterface::tryHandleShortcutEvent(tlw, timestamp, k, mods, text))
+ return;
+
QWindowSystemInterfacePrivate::KeyEvent * e =
new QWindowSystemInterfacePrivate::KeyEvent(tlw, timestamp, t, k, mods, text, autorep, count);
QWindowSystemInterfacePrivate::handleWindowSystemEvent(e);
@@ -286,8 +316,12 @@ void QWindowSystemInterface::handleExtendedKeyEvent(QWindow *tlw, ulong timestam
quint32 nativeScanCode, quint32 nativeVirtualKey,
quint32 nativeModifiers,
const QString& text, bool autorep,
- ushort count)
+ ushort count, bool tryShortcutOverride)
{
+ // on OS X we try the shortcut override even earlier and thus shouldn't handle it here
+ if (tryShortcutOverride && type == QEvent::KeyPress && QWindowSystemInterface::tryHandleShortcutEvent(tlw, timestamp, key, modifiers, text))
+ return;
+
QWindowSystemInterfacePrivate::KeyEvent * e =
new QWindowSystemInterfacePrivate::KeyEvent(tlw, timestamp, type, key, modifiers,
nativeScanCode, nativeVirtualKey, nativeModifiers, text, autorep, count);
@@ -746,7 +780,8 @@ void QWindowSystemInterface::handleEnterWhatsThisEvent()
#ifndef QT_NO_DEBUG_STREAM
Q_GUI_EXPORT QDebug operator<<(QDebug dbg, const QWindowSystemInterface::TouchPoint &p) {
- dbg.nospace() << "TouchPoint(" << p.id << " @" << p.normalPosition << " press " << p.pressure << " vel " << p.velocity << " state " << (int)p.state;
+ dbg.nospace() << "TouchPoint(" << p.id << " @" << p.area << " normalized " << p.normalPosition
+ << " press " << p.pressure << " vel " << p.velocity << " state " << (int)p.state;
return dbg.space();
}
#endif
@@ -760,6 +795,11 @@ Q_GUI_EXPORT void qt_handleKeyEvent(QWindow *w, QEvent::Type t, int k, Qt::Keybo
QWindowSystemInterface::handleKeyEvent(w, t, k, mods, text, autorep, count);
}
+Q_GUI_EXPORT bool qt_sendShortcutOverrideEvent(QObject *o, ulong timestamp, int k, Qt::KeyboardModifiers mods, const QString &text = QString(), bool autorep = false, ushort count = 1)
+{
+ return QWindowSystemInterface::tryHandleShortcutEventToObject(o, timestamp, k, mods, text, autorep, count);
+}
+
static QWindowSystemInterface::TouchPoint touchPoint(const QTouchEvent::TouchPoint& pt)
{
QWindowSystemInterface::TouchPoint p;
diff --git a/src/gui/kernel/qwindowsysteminterface.h b/src/gui/kernel/qwindowsysteminterface.h
index 30c236b51f..7bb3938fe6 100644
--- a/src/gui/kernel/qwindowsysteminterface.h
+++ b/src/gui/kernel/qwindowsysteminterface.h
@@ -83,6 +83,9 @@ public:
static bool tryHandleShortcutEvent(QWindow *w, ulong timestamp, int k, Qt::KeyboardModifiers mods,
const QString & text = QString(), bool autorep = false, ushort count = 1);
+ static bool tryHandleShortcutEventToObject(QObject *o, ulong timestamp, int k, Qt::KeyboardModifiers mods,
+ const QString & text = QString(), bool autorep = false, ushort count = 1);
+
static bool tryHandleExtendedShortcutEvent(QWindow *w, int k, Qt::KeyboardModifiers mods,
quint32 nativeScanCode, quint32 nativeVirtualKey, quint32 nativeModifiers,
const QString & text = QString(), bool autorep = false, ushort count = 1);
@@ -102,7 +105,7 @@ public:
quint32 nativeScanCode, quint32 nativeVirtualKey,
quint32 nativeModifiers,
const QString& text = QString(), bool autorep = false,
- ushort count = 1);
+ ushort count = 1, bool tryShortcutOverride = true);
static void handleWheelEvent(QWindow *w, const QPointF & local, const QPointF & global, QPoint pixelDelta, QPoint angleDelta, Qt::KeyboardModifiers mods = Qt::NoModifier, Qt::ScrollPhase phase = Qt::ScrollUpdate);
static void handleWheelEvent(QWindow *w, ulong timestamp, const QPointF & local, const QPointF & global, QPoint pixelDelta, QPoint angleDelta, Qt::KeyboardModifiers mods = Qt::NoModifier, Qt::ScrollPhase phase = Qt::ScrollUpdate);
diff --git a/src/gui/kernel/qwindowsysteminterface_p.h b/src/gui/kernel/qwindowsysteminterface_p.h
index c3f41da835..57411d8101 100644
--- a/src/gui/kernel/qwindowsysteminterface_p.h
+++ b/src/gui/kernel/qwindowsysteminterface_p.h
@@ -93,11 +93,20 @@ public:
class WindowSystemEvent {
public:
+ enum {
+ Synthetic = 0x1,
+ NullWindow = 0x2
+ };
+
explicit WindowSystemEvent(EventType t)
- : type(t), synthetic(false) { }
+ : type(t), flags(0) { }
virtual ~WindowSystemEvent() { }
+
+ bool synthetic() const { return flags & Synthetic; }
+ bool nullWindow() const { return flags & NullWindow; }
+
EventType type;
- bool synthetic;
+ int flags;
};
class CloseEvent : public WindowSystemEvent {
@@ -188,9 +197,12 @@ public:
class UserEvent : public WindowSystemEvent {
public:
UserEvent(QWindow * w, ulong time, EventType t)
- : WindowSystemEvent(t), window(w), nullWindow(w == 0), timestamp(time) { }
+ : WindowSystemEvent(t), window(w), timestamp(time)
+ {
+ if (!w)
+ flags |= NullWindow;
+ }
QPointer<QWindow> window;
- bool nullWindow;
unsigned long timestamp;
};
diff --git a/src/gui/opengl/qopenglengineshadermanager.cpp b/src/gui/opengl/qopenglengineshadermanager.cpp
index 5bdb2f35ac..15ae720c26 100644
--- a/src/gui/opengl/qopenglengineshadermanager.cpp
+++ b/src/gui/opengl/qopenglengineshadermanager.cpp
@@ -61,13 +61,13 @@ public:
delete m_shaders;
}
- void invalidateResource()
+ void invalidateResource() Q_DECL_OVERRIDE
{
delete m_shaders;
m_shaders = 0;
}
- void freeResource(QOpenGLContext *)
+ void freeResource(QOpenGLContext *) Q_DECL_OVERRIDE
{
}
@@ -154,6 +154,8 @@ QOpenGLEngineSharedShaders::QOpenGLEngineSharedShaders(QOpenGLContext* context)
code[ImageSrcFragmentShader] = qopenglslImageSrcFragmentShader;
code[ImageSrcWithPatternFragmentShader] = qopenglslImageSrcWithPatternFragmentShader;
code[NonPremultipliedImageSrcFragmentShader] = qopenglslNonPremultipliedImageSrcFragmentShader;
+ code[GrayscaleImageSrcFragmentShader] = qopenglslGrayscaleImageSrcFragmentShader;
+ code[AlphaImageSrcFragmentShader] = qopenglslAlphaImageSrcFragmentShader;
code[CustomImageSrcFragmentShader] = qopenglslCustomSrcFragmentShader; // Calls "customShader", which must be appended
code[SolidBrushSrcFragmentShader] = qopenglslSolidBrushSrcFragmentShader;
if (context->isOpenGLES())
@@ -700,6 +702,16 @@ bool QOpenGLEngineShaderManager::useCorrectShaderProg()
requiredProgram.positionVertexShader = QOpenGLEngineSharedShaders::PositionOnlyVertexShader;
texCoords = true;
break;
+ case QOpenGLEngineShaderManager::GrayscaleImageSrc:
+ requiredProgram.srcPixelFragShader = QOpenGLEngineSharedShaders::GrayscaleImageSrcFragmentShader;
+ requiredProgram.positionVertexShader = QOpenGLEngineSharedShaders::PositionOnlyVertexShader;
+ texCoords = true;
+ break;
+ case QOpenGLEngineShaderManager::AlphaImageSrc:
+ requiredProgram.srcPixelFragShader = QOpenGLEngineSharedShaders::AlphaImageSrcFragmentShader;
+ requiredProgram.positionVertexShader = QOpenGLEngineSharedShaders::PositionOnlyVertexShader;
+ texCoords = true;
+ break;
case QOpenGLEngineShaderManager::PatternSrc:
requiredProgram.srcPixelFragShader = QOpenGLEngineSharedShaders::ImageSrcWithPatternFragmentShader;
requiredProgram.positionVertexShader = QOpenGLEngineSharedShaders::PositionOnlyVertexShader;
diff --git a/src/gui/opengl/qopenglengineshadermanager_p.h b/src/gui/opengl/qopenglengineshadermanager_p.h
index 2ae0ae0866..56aa18cb6b 100644
--- a/src/gui/opengl/qopenglengineshadermanager_p.h
+++ b/src/gui/opengl/qopenglengineshadermanager_p.h
@@ -288,6 +288,8 @@ public:
ImageSrcFragmentShader,
ImageSrcWithPatternFragmentShader,
NonPremultipliedImageSrcFragmentShader,
+ GrayscaleImageSrcFragmentShader,
+ AlphaImageSrcFragmentShader,
CustomImageSrcFragmentShader,
SolidBrushSrcFragmentShader,
TextureBrushSrcFragmentShader,
@@ -414,7 +416,9 @@ public:
ImageSrc = Qt::TexturePattern+1,
NonPremultipliedImageSrc = Qt::TexturePattern+2,
PatternSrc = Qt::TexturePattern+3,
- TextureSrcWithPattern = Qt::TexturePattern+4
+ TextureSrcWithPattern = Qt::TexturePattern+4,
+ GrayscaleImageSrc = Qt::TexturePattern+5,
+ AlphaImageSrc = Qt::TexturePattern+6,
};
enum Uniform {
diff --git a/src/gui/opengl/qopenglengineshadersource_p.h b/src/gui/opengl/qopenglengineshadersource_p.h
index bc81fe4c77..acda09a8ee 100644
--- a/src/gui/opengl/qopenglengineshadersource_p.h
+++ b/src/gui/opengl/qopenglengineshadersource_p.h
@@ -367,6 +367,22 @@ static const char* const qopenglslNonPremultipliedImageSrcFragmentShader = "\n\
return sample; \n\
}\n";
+static const char* const qopenglslGrayscaleImageSrcFragmentShader = "\n\
+ varying highp vec2 textureCoords; \n\
+ uniform sampler2D imageTexture; \n\
+ lowp vec4 srcPixel() \n\
+ { \n\
+ return texture2D(imageTexture, textureCoords).rrra; \n\
+ }\n";
+
+static const char* const qopenglslAlphaImageSrcFragmentShader = "\n\
+ varying highp vec2 textureCoords; \n\
+ uniform sampler2D imageTexture; \n\
+ lowp vec4 srcPixel() \n\
+ { \n\
+ return vec4(0, 0, 0, texture2D(imageTexture, textureCoords).r); \n\
+ }\n";
+
static const char* const qopenglslShockingPinkSrcFragmentShader = "\n\
lowp vec4 srcPixel() \n\
{ \n\
diff --git a/src/gui/opengl/qopenglextensions_p.h b/src/gui/opengl/qopenglextensions_p.h
index 23cfe16467..0d0cfd26ba 100644
--- a/src/gui/opengl/qopenglextensions_p.h
+++ b/src/gui/opengl/qopenglextensions_p.h
@@ -81,7 +81,8 @@ public:
MapBuffer = 0x00040000,
GeometryShaders = 0x00080000,
MapBufferRange = 0x00100000,
- Sized8Formats = 0x00200000
+ Sized8Formats = 0x00200000,
+ DiscardFramebuffer = 0x00400000
};
Q_DECLARE_FLAGS(OpenGLExtensions, OpenGLExtension)
@@ -102,6 +103,8 @@ public:
void glGetBufferSubData(GLenum target, qopengl_GLintptr offset, qopengl_GLsizeiptr size, GLvoid *data);
+ void glDiscardFramebufferEXT (GLenum target, GLsizei numAttachments, const GLenum *attachments);
+
private:
static bool isInitialized(const QOpenGLFunctionsPrivate *d) { return d != 0; }
};
@@ -124,6 +127,7 @@ public:
GLenum internalFormat,
GLsizei width, GLsizei height);
void (QOPENGLF_APIENTRYP GetBufferSubData)(GLenum target, qopengl_GLintptr offset, qopengl_GLsizeiptr size, GLvoid *data);
+ void (QOPENGLF_APIENTRYP DiscardFramebuffer)(GLenum target, GLsizei numAttachments, const GLenum *attachments);
};
inline GLvoid *QOpenGLExtensions::glMapBuffer(GLenum target, GLenum access)
@@ -182,6 +186,14 @@ inline void QOpenGLExtensions::glGetBufferSubData(GLenum target, qopengl_GLintpt
Q_OPENGL_FUNCTIONS_DEBUG
}
+
+inline void QOpenGLExtensions::glDiscardFramebufferEXT (GLenum target, GLsizei numAttachments, const GLenum *attachments)
+{
+ Q_D(QOpenGLExtensions);
+ Q_ASSERT(QOpenGLExtensions::isInitialized(d));
+ d->DiscardFramebuffer(target,numAttachments, attachments);
+ Q_OPENGL_FUNCTIONS_DEBUG
+}
QT_END_NAMESPACE
#endif // QOPENGL_EXTENSIONS_P_H
diff --git a/src/gui/opengl/qopenglfunctions.cpp b/src/gui/opengl/qopenglfunctions.cpp
index 44b56699df..99604ca8b2 100644
--- a/src/gui/opengl/qopenglfunctions.cpp
+++ b/src/gui/opengl/qopenglfunctions.cpp
@@ -173,6 +173,7 @@ QT_BEGIN_NAMESPACE
\value NPOTTextures Non power of two textures are available.
\value NPOTTextureRepeat Non power of two textures can use GL_REPEAT as wrap parameter.
\value FixedFunctionPipeline The fixed function pipeline is available.
+ \value TextureRGFormats The GL_RED and GL_RG texture formats are available.
*/
// Hidden private fields for additional extension data.
@@ -185,13 +186,13 @@ struct QOpenGLFunctionsPrivateEx : public QOpenGLExtensionsPrivate, public QOpen
, m_extensions(-1)
{}
- void invalidateResource()
+ void invalidateResource() Q_DECL_OVERRIDE
{
m_features = -1;
m_extensions = -1;
}
- void freeResource(QOpenGLContext *)
+ void freeResource(QOpenGLContext *) Q_DECL_OVERRIDE
{
// no gl resources to free
}
@@ -284,10 +285,12 @@ static int qt_gl_resolve_features()
if (extensions.match("GL_OES_texture_npot"))
features |= QOpenGLFunctions::NPOTTextures |
QOpenGLFunctions::NPOTTextureRepeat;
+ if (ctx->format().majorVersion() >= 3 || extensions.match("GL_EXT_texture_rg"))
+ features |= QOpenGLFunctions::TextureRGFormats;
return features;
} else {
// OpenGL
- int features = 0;
+ int features = QOpenGLFunctions::TextureRGFormats;
QSurfaceFormat format = QOpenGLContext::currentContext()->format();
QOpenGLExtensionMatcher extensions;
@@ -412,6 +415,9 @@ static int qt_gl_resolve_extensions()
// We don't match GL_APPLE_texture_format_BGRA8888 here because it has different semantics.
if (extensionMatcher.match("GL_IMG_texture_format_BGRA8888") || extensionMatcher.match("GL_EXT_texture_format_BGRA8888"))
extensions |= QOpenGLExtensions::BGRATextureFormat;
+
+ if (extensionMatcher.match("GL_EXT_discard_framebuffer"))
+ extensions |= QOpenGLExtensions::DiscardFramebuffer;
} else {
extensions |= QOpenGLExtensions::ElementIndexUint | QOpenGLExtensions::MapBuffer;
@@ -3254,6 +3260,11 @@ static void QOPENGLF_APIENTRY qopenglfResolveGetBufferSubData(GLenum target, qop
(target, offset, size, data);
}
+static void QOPENGLF_APIENTRY qopenglfResolveDiscardFramebuffer(GLenum target, GLsizei numAttachments, const GLenum *attachments)
+{
+ RESOLVE_FUNC_VOID(ResolveEXT, DiscardFramebuffer)(target, numAttachments, attachments);
+}
+
#if !defined(QT_OPENGL_ES_2) && !defined(QT_OPENGL_DYNAMIC)
// Special translation functions for ES-specific calls on desktop GL
@@ -3492,6 +3503,7 @@ QOpenGLExtensionsPrivate::QOpenGLExtensionsPrivate(QOpenGLContext *ctx)
BlitFramebuffer = qopenglfResolveBlitFramebuffer;
RenderbufferStorageMultisample = qopenglfResolveRenderbufferStorageMultisample;
GetBufferSubData = qopenglfResolveGetBufferSubData;
+ DiscardFramebuffer = qopenglfResolveDiscardFramebuffer;
}
QT_END_NAMESPACE
diff --git a/src/gui/opengl/qopenglfunctions.h b/src/gui/opengl/qopenglfunctions.h
index 479a280abe..85d255fe61 100644
--- a/src/gui/opengl/qopenglfunctions.h
+++ b/src/gui/opengl/qopenglfunctions.h
@@ -240,7 +240,8 @@ public:
StencilSeparate = 0x0800,
NPOTTextures = 0x1000,
NPOTTextureRepeat = 0x2000,
- FixedFunctionPipeline = 0x4000
+ FixedFunctionPipeline = 0x4000,
+ TextureRGFormats = 0x8000
};
Q_DECLARE_FLAGS(OpenGLFeatures, OpenGLFeature)
diff --git a/src/gui/opengl/qopenglgradientcache_p.h b/src/gui/opengl/qopenglgradientcache_p.h
index fc6df0b97f..c414b485a1 100644
--- a/src/gui/opengl/qopenglgradientcache_p.h
+++ b/src/gui/opengl/qopenglgradientcache_p.h
@@ -77,8 +77,8 @@ public:
GLuint getBuffer(const QGradient &gradient, qreal opacity);
inline int paletteSize() const { return 1024; }
- void invalidateResource();
- void freeResource(QOpenGLContext *ctx);
+ void invalidateResource() Q_DECL_OVERRIDE;
+ void freeResource(QOpenGLContext *ctx) Q_DECL_OVERRIDE;
private:
inline int maxCacheSize() const { return 60; }
diff --git a/src/gui/opengl/qopenglpaintengine.cpp b/src/gui/opengl/qopenglpaintengine.cpp
index 8eeaa316d0..6ed2fe58b9 100644
--- a/src/gui/opengl/qopenglpaintengine.cpp
+++ b/src/gui/opengl/qopenglpaintengine.cpp
@@ -1496,6 +1496,20 @@ void QOpenGL2PaintEngineEx::drawImage(const QRectF& dest, const QImage& image, c
d->shaderManager->setSrcPixelType(QOpenGLEngineShaderManager::NonPremultipliedImageSrc);
bindOption = 0;
break;
+ case QImage::Format_Alpha8:
+ if (ctx->functions()->hasOpenGLFeature(QOpenGLFunctions::TextureRGFormats)) {
+ d->shaderManager->setSrcPixelType(QOpenGLEngineShaderManager::AlphaImageSrc);
+ bindOption = QOpenGLTextureCache::UseRedFor8BitBindOption;
+ } else
+ d->shaderManager->setSrcPixelType(QOpenGLEngineShaderManager::ImageSrc);
+ break;
+ case QImage::Format_Grayscale8:
+ if (ctx->functions()->hasOpenGLFeature(QOpenGLFunctions::TextureRGFormats)) {
+ d->shaderManager->setSrcPixelType(QOpenGLEngineShaderManager::GrayscaleImageSrc);
+ bindOption = QOpenGLTextureCache::UseRedFor8BitBindOption;
+ } else
+ d->shaderManager->setSrcPixelType(QOpenGLEngineShaderManager::ImageSrc);
+ break;
default:
d->shaderManager->setSrcPixelType(QOpenGLEngineShaderManager::ImageSrc);
break;
@@ -1586,10 +1600,8 @@ void QOpenGL2PaintEngineEx::drawTextItem(const QPointF &p, const QTextItem &text
{
QStaticTextItem staticTextItem;
- staticTextItem.chars = const_cast<QChar *>(ti.chars);
staticTextItem.setFontEngine(ti.fontEngine);
staticTextItem.glyphs = glyphs.data();
- staticTextItem.numChars = ti.num_chars;
staticTextItem.numGlyphs = glyphs.size();
staticTextItem.glyphPositions = positions.data();
diff --git a/src/gui/opengl/qopenglpaintengine_p.h b/src/gui/opengl/qopenglpaintengine_p.h
index 9722ea3196..e8557e61cd 100644
--- a/src/gui/opengl/qopenglpaintengine_p.h
+++ b/src/gui/opengl/qopenglpaintengine_p.h
@@ -106,37 +106,37 @@ public:
QOpenGL2PaintEngineEx();
~QOpenGL2PaintEngineEx();
- bool begin(QPaintDevice *device);
+ bool begin(QPaintDevice *device) Q_DECL_OVERRIDE;
void ensureActive();
- bool end();
-
- virtual void clipEnabledChanged();
- virtual void penChanged();
- virtual void brushChanged();
- virtual void brushOriginChanged();
- virtual void opacityChanged();
- virtual void compositionModeChanged();
- virtual void renderHintsChanged();
- virtual void transformChanged();
-
- virtual void drawPixmap(const QRectF &r, const QPixmap &pm, const QRectF &sr);
+ bool end() Q_DECL_OVERRIDE;
+
+ virtual void clipEnabledChanged() Q_DECL_OVERRIDE;
+ virtual void penChanged() Q_DECL_OVERRIDE;
+ virtual void brushChanged() Q_DECL_OVERRIDE;
+ virtual void brushOriginChanged() Q_DECL_OVERRIDE;
+ virtual void opacityChanged() Q_DECL_OVERRIDE;
+ virtual void compositionModeChanged() Q_DECL_OVERRIDE;
+ virtual void renderHintsChanged() Q_DECL_OVERRIDE;
+ virtual void transformChanged() Q_DECL_OVERRIDE;
+
+ virtual void drawPixmap(const QRectF &r, const QPixmap &pm, const QRectF &sr) Q_DECL_OVERRIDE;
virtual void drawPixmapFragments(const QPainter::PixmapFragment *fragments, int fragmentCount, const QPixmap &pixmap,
- QPainter::PixmapFragmentHints hints);
+ QPainter::PixmapFragmentHints hints) Q_DECL_OVERRIDE;
virtual void drawImage(const QRectF &r, const QImage &pm, const QRectF &sr,
- Qt::ImageConversionFlags flags = Qt::AutoColor);
- virtual void drawTextItem(const QPointF &p, const QTextItem &textItem);
- virtual void fill(const QVectorPath &path, const QBrush &brush);
- virtual void stroke(const QVectorPath &path, const QPen &pen);
- virtual void clip(const QVectorPath &path, Qt::ClipOperation op);
+ Qt::ImageConversionFlags flags = Qt::AutoColor) Q_DECL_OVERRIDE;
+ virtual void drawTextItem(const QPointF &p, const QTextItem &textItem) Q_DECL_OVERRIDE;
+ virtual void fill(const QVectorPath &path, const QBrush &brush) Q_DECL_OVERRIDE;
+ virtual void stroke(const QVectorPath &path, const QPen &pen) Q_DECL_OVERRIDE;
+ virtual void clip(const QVectorPath &path, Qt::ClipOperation op) Q_DECL_OVERRIDE;
- virtual void drawStaticTextItem(QStaticTextItem *textItem);
+ virtual void drawStaticTextItem(QStaticTextItem *textItem) Q_DECL_OVERRIDE;
bool drawTexture(const QRectF &r, GLuint textureId, const QSize &size, const QRectF &sr);
- Type type() const { return OpenGL2; }
+ Type type() const Q_DECL_OVERRIDE { return OpenGL2; }
- virtual void setState(QPainterState *s);
- virtual QPainterState *createState(QPainterState *orig) const;
+ virtual void setState(QPainterState *s) Q_DECL_OVERRIDE;
+ virtual QPainterState *createState(QPainterState *orig) const Q_DECL_OVERRIDE;
inline QOpenGL2PaintEngineState *state() {
return static_cast<QOpenGL2PaintEngineState *>(QPaintEngineEx::state());
}
@@ -144,16 +144,16 @@ public:
return static_cast<const QOpenGL2PaintEngineState *>(QPaintEngineEx::state());
}
- void beginNativePainting();
- void endNativePainting();
+ void beginNativePainting() Q_DECL_OVERRIDE;
+ void endNativePainting() Q_DECL_OVERRIDE;
void invalidateState();
void setRenderTextActive(bool);
bool isNativePaintingActive() const;
- bool requiresPretransformedGlyphPositions(QFontEngine *, const QTransform &) const { return false; }
- bool shouldDrawCachedGlyphs(QFontEngine *, const QTransform &) const;
+ bool requiresPretransformedGlyphPositions(QFontEngine *, const QTransform &) const Q_DECL_OVERRIDE { return false; }
+ bool shouldDrawCachedGlyphs(QFontEngine *, const QTransform &) const Q_DECL_OVERRIDE;
private:
Q_DISABLE_COPY(QOpenGL2PaintEngineEx)
@@ -250,7 +250,7 @@ public:
void updateClipScissorTest();
void setScissor(const QRect &rect);
void regenerateClip();
- void systemStateChanged();
+ void systemStateChanged() Q_DECL_OVERRIDE;
void setVertexAttribArrayEnabled(int arrayIndex, bool enabled = true);
void syncGlState();
diff --git a/src/gui/opengl/qopenglshaderprogram.cpp b/src/gui/opengl/qopenglshaderprogram.cpp
index 5ea7a10e0d..2d99833fdf 100644
--- a/src/gui/opengl/qopenglshaderprogram.cpp
+++ b/src/gui/opengl/qopenglshaderprogram.cpp
@@ -39,6 +39,7 @@
#include <QtCore/qfile.h>
#include <QtCore/qvarlengtharray.h>
#include <QtCore/qvector.h>
+#include <QtCore/qregularexpression.h>
#include <QtGui/qtransform.h>
#include <QtGui/QColor>
#include <QtGui/QSurfaceFormat>
@@ -47,6 +48,8 @@
#include <QtGui/qopenglfunctions_4_0_core.h>
#endif
+#include <algorithm>
+
QT_BEGIN_NAMESPACE
/*!
@@ -401,6 +404,96 @@ static const char redefineHighp[] =
"#endif\n";
#endif
+struct QVersionDirectivePosition
+{
+ Q_DECL_CONSTEXPR QVersionDirectivePosition(int position = 0, int line = -1)
+ : position(position)
+ , line(line)
+ {
+ }
+
+ Q_DECL_CONSTEXPR bool hasPosition() const
+ {
+ return position > 0;
+ }
+
+ const int position;
+ const int line;
+};
+
+static QVersionDirectivePosition findVersionDirectivePosition(const char *source)
+{
+ Q_ASSERT(source);
+
+ QString working = QString::fromUtf8(source);
+
+ // According to the GLSL spec the #version directive must not be
+ // preceded by anything but whitespace and comments.
+ // In order to not get confused by #version directives within a
+ // multiline comment, we need to run a minimal preprocessor first.
+ enum {
+ Normal,
+ CommentStarting,
+ MultiLineComment,
+ SingleLineComment,
+ CommentEnding
+ } state = Normal;
+
+ for (QChar *c = working.begin(); c != working.end(); ++c) {
+ switch (state) {
+ case Normal:
+ if (*c == QLatin1Char('/'))
+ state = CommentStarting;
+ break;
+ case CommentStarting:
+ if (*c == QLatin1Char('*'))
+ state = MultiLineComment;
+ else if (*c == QLatin1Char('/'))
+ state = SingleLineComment;
+ else
+ state = Normal;
+ break;
+ case MultiLineComment:
+ if (*c == QLatin1Char('*'))
+ state = CommentEnding;
+ else if (*c == QLatin1Char('#'))
+ *c = QLatin1Char('_');
+ break;
+ case SingleLineComment:
+ if (*c == QLatin1Char('\n'))
+ state = Normal;
+ else if (*c == QLatin1Char('#'))
+ *c = QLatin1Char('_');
+ break;
+ case CommentEnding:
+ if (*c == QLatin1Char('/')) {
+ state = Normal;
+ } else {
+ if (*c == QLatin1Char('#'))
+ *c = QLatin1Char('_');
+ if (*c != QLatin1Char('*'))
+ state = MultiLineComment;
+ }
+ break;
+ }
+ }
+
+ // Search for #version directive
+ int splitPosition = 0;
+ int linePosition = 1;
+
+ static const QRegularExpression pattern(QStringLiteral("^\\s*#\\s*version.*(\\n)?"),
+ QRegularExpression::MultilineOption
+ | QRegularExpression::OptimizeOnFirstUsageOption);
+ QRegularExpressionMatch match = pattern.match(working);
+ if (match.hasMatch()) {
+ splitPosition = match.capturedEnd();
+ linePosition += int(std::count(working.begin(), working.begin() + splitPosition, QLatin1Char('\n')));
+ }
+
+ return QVersionDirectivePosition(splitPosition, linePosition);
+}
+
/*!
Sets the \a source code for this shader and compiles it.
Returns \c true if the source was successfully compiled, false otherwise.
@@ -410,26 +503,24 @@ static const char redefineHighp[] =
bool QOpenGLShader::compileSourceCode(const char *source)
{
Q_D(QOpenGLShader);
- if (d->shaderGuard && d->shaderGuard->id()) {
- QVarLengthArray<const char *, 4> src;
- QVarLengthArray<GLint, 4> srclen;
- int headerLen = 0;
- while (source && source[headerLen] == '#') {
- // Skip #version and #extension directives at the start of
- // the shader code. We need to insert the qualifierDefines
- // and redefineHighp just after them.
- if (qstrncmp(source + headerLen, "#version", 8) != 0 &&
- qstrncmp(source + headerLen, "#extension", 10) != 0) {
- break;
- }
- while (source[headerLen] != '\0' && source[headerLen] != '\n')
- ++headerLen;
- if (source[headerLen] == '\n')
- ++headerLen;
- }
- if (headerLen > 0) {
- src.append(source);
- srclen.append(GLint(headerLen));
+ // This method breaks the shader code into two parts:
+ // 1. Up to and including an optional #version directive.
+ // 2. The rest.
+ // If a #version directive exists, qualifierDefines and redefineHighp
+ // are inserted after. Otherwise they are inserted right at the start.
+ // In both cases a #line directive is appended in order to compensate
+ // for line number changes in case of compiler errors.
+
+ if (d->shaderGuard && d->shaderGuard->id() && source) {
+ const QVersionDirectivePosition versionDirectivePosition = findVersionDirectivePosition(source);
+
+ QVarLengthArray<const char *, 5> sourceChunks;
+ QVarLengthArray<GLint, 5> sourceChunkLengths;
+
+ if (versionDirectivePosition.hasPosition()) {
+ // Append source up to #version directive
+ sourceChunks.append(source);
+ sourceChunkLengths.append(GLint(versionDirectivePosition.position));
}
// The precision qualifiers are useful on OpenGL/ES systems,
@@ -442,20 +533,28 @@ bool QOpenGLShader::compileSourceCode(const char *source)
|| true
#endif
) {
- src.append(qualifierDefines);
- srclen.append(GLint(sizeof(qualifierDefines) - 1));
+ sourceChunks.append(qualifierDefines);
+ sourceChunkLengths.append(GLint(sizeof(qualifierDefines) - 1));
}
#ifdef QOpenGL_REDEFINE_HIGHP
if (d->shaderType == Fragment && !ctx_d->workaround_missingPrecisionQualifiers
&& QOpenGLContext::currentContext()->isOpenGLES()) {
- src.append(redefineHighp);
- srclen.append(GLint(sizeof(redefineHighp) - 1));
+ sourceChunks.append(redefineHighp);
+ sourceChunkLengths.append(GLint(sizeof(redefineHighp) - 1));
}
#endif
- src.append(source + headerLen);
- srclen.append(GLint(qstrlen(source + headerLen)));
- d->glfuncs->glShaderSource(d->shaderGuard->id(), src.size(), src.data(), srclen.data());
+
+ // Append #line directive in order to compensate for text insertion
+ QByteArray lineDirective = QStringLiteral("#line %1\n").arg(versionDirectivePosition.line).toUtf8();
+ sourceChunks.append(lineDirective.constData());
+ sourceChunkLengths.append(GLint(lineDirective.length()));
+
+ // Append rest of shader code
+ sourceChunks.append(source + versionDirectivePosition.position);
+ sourceChunkLengths.append(GLint(qstrlen(source + versionDirectivePosition.position)));
+
+ d->glfuncs->glShaderSource(d->shaderGuard->id(), sourceChunks.size(), sourceChunks.data(), sourceChunkLengths.data());
return d->compile(this);
} else {
return false;
diff --git a/src/gui/opengl/qopengltexture.cpp b/src/gui/opengl/qopengltexture.cpp
index b96bc6f346..30ca7fce66 100644
--- a/src/gui/opengl/qopengltexture.cpp
+++ b/src/gui/opengl/qopengltexture.cpp
@@ -294,16 +294,166 @@ int QOpenGLTexturePrivate::evaluateMipLevels() const
}
}
-void QOpenGLTexturePrivate::allocateStorage()
+static bool isSizedTextureFormat(QOpenGLTexture::TextureFormat internalFormat)
+{
+ switch (internalFormat) {
+ case QOpenGLTexture::NoFormat:
+ return false;
+
+ case QOpenGLTexture::R8_UNorm:
+ case QOpenGLTexture::RG8_UNorm:
+ case QOpenGLTexture::RGB8_UNorm:
+ case QOpenGLTexture::RGBA8_UNorm:
+ case QOpenGLTexture::R16_UNorm:
+ case QOpenGLTexture::RG16_UNorm:
+ case QOpenGLTexture::RGB16_UNorm:
+ case QOpenGLTexture::RGBA16_UNorm:
+ case QOpenGLTexture::R8_SNorm:
+ case QOpenGLTexture::RG8_SNorm:
+ case QOpenGLTexture::RGB8_SNorm:
+ case QOpenGLTexture::RGBA8_SNorm:
+ case QOpenGLTexture::R16_SNorm:
+ case QOpenGLTexture::RG16_SNorm:
+ case QOpenGLTexture::RGB16_SNorm:
+ case QOpenGLTexture::RGBA16_SNorm:
+ case QOpenGLTexture::R8U:
+ case QOpenGLTexture::RG8U:
+ case QOpenGLTexture::RGB8U:
+ case QOpenGLTexture::RGBA8U:
+ case QOpenGLTexture::R16U:
+ case QOpenGLTexture::RG16U:
+ case QOpenGLTexture::RGB16U:
+ case QOpenGLTexture::RGBA16U:
+ case QOpenGLTexture::R32U:
+ case QOpenGLTexture::RG32U:
+ case QOpenGLTexture::RGB32U:
+ case QOpenGLTexture::RGBA32U:
+ case QOpenGLTexture::R8I:
+ case QOpenGLTexture::RG8I:
+ case QOpenGLTexture::RGB8I:
+ case QOpenGLTexture::RGBA8I:
+ case QOpenGLTexture::R16I:
+ case QOpenGLTexture::RG16I:
+ case QOpenGLTexture::RGB16I:
+ case QOpenGLTexture::RGBA16I:
+ case QOpenGLTexture::R32I:
+ case QOpenGLTexture::RG32I:
+ case QOpenGLTexture::RGB32I:
+ case QOpenGLTexture::RGBA32I:
+ case QOpenGLTexture::R16F:
+ case QOpenGLTexture::RG16F:
+ case QOpenGLTexture::RGB16F:
+ case QOpenGLTexture::RGBA16F:
+ case QOpenGLTexture::R32F:
+ case QOpenGLTexture::RG32F:
+ case QOpenGLTexture::RGB32F:
+ case QOpenGLTexture::RGBA32F:
+ case QOpenGLTexture::RGB9E5:
+ case QOpenGLTexture::RG11B10F:
+ case QOpenGLTexture::RG3B2:
+ case QOpenGLTexture::R5G6B5:
+ case QOpenGLTexture::RGB5A1:
+ case QOpenGLTexture::RGBA4:
+ case QOpenGLTexture::RGB10A2:
+
+ case QOpenGLTexture::D16:
+ case QOpenGLTexture::D24:
+ case QOpenGLTexture::D32:
+ case QOpenGLTexture::D32F:
+
+ case QOpenGLTexture::D24S8:
+ case QOpenGLTexture::D32FS8X24:
+
+ case QOpenGLTexture::S8:
+
+ case QOpenGLTexture::RGB_DXT1:
+ case QOpenGLTexture::RGBA_DXT1:
+ case QOpenGLTexture::RGBA_DXT3:
+ case QOpenGLTexture::RGBA_DXT5:
+ case QOpenGLTexture::R_ATI1N_UNorm:
+ case QOpenGLTexture::R_ATI1N_SNorm:
+ case QOpenGLTexture::RG_ATI2N_UNorm:
+ case QOpenGLTexture::RG_ATI2N_SNorm:
+ case QOpenGLTexture::RGB_BP_UNSIGNED_FLOAT:
+ case QOpenGLTexture::RGB_BP_SIGNED_FLOAT:
+ case QOpenGLTexture::RGB_BP_UNorm:
+ case QOpenGLTexture::SRGB8:
+ case QOpenGLTexture::SRGB8_Alpha8:
+ case QOpenGLTexture::SRGB_DXT1:
+ case QOpenGLTexture::SRGB_Alpha_DXT1:
+ case QOpenGLTexture::SRGB_Alpha_DXT3:
+ case QOpenGLTexture::SRGB_Alpha_DXT5:
+ case QOpenGLTexture::SRGB_BP_UNorm:
+ case QOpenGLTexture::R11_EAC_UNorm:
+ case QOpenGLTexture::R11_EAC_SNorm:
+ case QOpenGLTexture::RG11_EAC_UNorm:
+ case QOpenGLTexture::RG11_EAC_SNorm:
+ case QOpenGLTexture::RGB8_ETC2:
+ case QOpenGLTexture::SRGB8_ETC2:
+ case QOpenGLTexture::RGB8_PunchThrough_Alpha1_ETC2:
+ case QOpenGLTexture::SRGB8_PunchThrough_Alpha1_ETC2:
+ case QOpenGLTexture::RGBA8_ETC2_EAC:
+ case QOpenGLTexture::SRGB8_Alpha8_ETC2_EAC:
+ return true;
+
+ case QOpenGLTexture::DepthFormat:
+ case QOpenGLTexture::AlphaFormat:
+
+ case QOpenGLTexture::RGBFormat:
+ case QOpenGLTexture::RGBAFormat:
+
+ case QOpenGLTexture::LuminanceFormat:
+
+ case QOpenGLTexture::LuminanceAlphaFormat:
+ return false;
+ }
+
+ Q_UNREACHABLE();
+ return false;
+}
+
+static bool isTextureTargetMultisample(QOpenGLTexture::Target target)
+{
+ switch (target) {
+ case QOpenGLTexture::Target1D:
+ case QOpenGLTexture::Target1DArray:
+ case QOpenGLTexture::Target2D:
+ case QOpenGLTexture::Target2DArray:
+ case QOpenGLTexture::Target3D:
+ case QOpenGLTexture::TargetCubeMap:
+ case QOpenGLTexture::TargetCubeMapArray:
+ return false;
+
+ case QOpenGLTexture::Target2DMultisample:
+ case QOpenGLTexture::Target2DMultisampleArray:
+ return true;
+
+ case QOpenGLTexture::TargetRectangle:
+ case QOpenGLTexture::TargetBuffer:
+ return false;
+ }
+
+ Q_UNREACHABLE();
+ return false;
+}
+
+void QOpenGLTexturePrivate::allocateStorage(QOpenGLTexture::PixelFormat pixelFormat, QOpenGLTexture::PixelType pixelType)
{
// Resolve the actual number of mipmap levels we can use
mipLevels = evaluateMipLevels();
- // Use immutable storage whenever possible, falling back to mutable when not available
- if (features.testFlag(QOpenGLTexture::ImmutableStorage))
+ // Use immutable storage whenever possible, falling back to mutable
+ // Note that if multisample textures are not supported at all, we'll still fail into
+ // the mutable storage allocation
+ const bool useImmutableStorage = isSizedTextureFormat(format)
+ && (isTextureTargetMultisample(target)
+ ? features.testFlag(QOpenGLTexture::ImmutableMultisampleStorage)
+ : features.testFlag(QOpenGLTexture::ImmutableStorage));
+
+ if (useImmutableStorage)
allocateImmutableStorage();
else
- allocateMutableStorage();
+ allocateMutableStorage(pixelFormat, pixelType);
}
static QOpenGLTexture::PixelFormat pixelFormatCompatibleWithInternalFormat(QOpenGLTexture::TextureFormat internalFormat)
@@ -313,59 +463,167 @@ static QOpenGLTexture::PixelFormat pixelFormatCompatibleWithInternalFormat(QOpen
return QOpenGLTexture::NoSourceFormat;
case QOpenGLTexture::R8_UNorm:
+ return QOpenGLTexture::Red;
+
case QOpenGLTexture::RG8_UNorm:
+ return QOpenGLTexture::RG;
+
case QOpenGLTexture::RGB8_UNorm:
+ return QOpenGLTexture::RGB;
+
case QOpenGLTexture::RGBA8_UNorm:
+ return QOpenGLTexture::RGBA;
+
case QOpenGLTexture::R16_UNorm:
+ return QOpenGLTexture::Red;
+
case QOpenGLTexture::RG16_UNorm:
+ return QOpenGLTexture::RG;
+
case QOpenGLTexture::RGB16_UNorm:
+ return QOpenGLTexture::RGB;
+
case QOpenGLTexture::RGBA16_UNorm:
+ return QOpenGLTexture::RGBA;
+
case QOpenGLTexture::R8_SNorm:
+ return QOpenGLTexture::Red;
+
case QOpenGLTexture::RG8_SNorm:
+ return QOpenGLTexture::RG;
+
case QOpenGLTexture::RGB8_SNorm:
+ return QOpenGLTexture::RGB;
+
case QOpenGLTexture::RGBA8_SNorm:
+ return QOpenGLTexture::RGBA;
+
case QOpenGLTexture::R16_SNorm:
+ return QOpenGLTexture::Red;
+
case QOpenGLTexture::RG16_SNorm:
+ return QOpenGLTexture::RG;
+
case QOpenGLTexture::RGB16_SNorm:
+ return QOpenGLTexture::RGB;
+
case QOpenGLTexture::RGBA16_SNorm:
+ return QOpenGLTexture::RGBA;
+
case QOpenGLTexture::R8U:
+ return QOpenGLTexture::Red_Integer;
+
case QOpenGLTexture::RG8U:
+ return QOpenGLTexture::RG_Integer;
+
case QOpenGLTexture::RGB8U:
+ return QOpenGLTexture::RGB_Integer;
+
case QOpenGLTexture::RGBA8U:
+ return QOpenGLTexture::RGBA_Integer;
+
case QOpenGLTexture::R16U:
+ return QOpenGLTexture::Red_Integer;
+
case QOpenGLTexture::RG16U:
+ return QOpenGLTexture::RG_Integer;
+
case QOpenGLTexture::RGB16U:
+ return QOpenGLTexture::RGB_Integer;
+
case QOpenGLTexture::RGBA16U:
+ return QOpenGLTexture::RGBA_Integer;
+
case QOpenGLTexture::R32U:
+ return QOpenGLTexture::Red_Integer;
+
case QOpenGLTexture::RG32U:
+ return QOpenGLTexture::RG_Integer;
+
case QOpenGLTexture::RGB32U:
+ return QOpenGLTexture::RGB_Integer;
+
case QOpenGLTexture::RGBA32U:
+ return QOpenGLTexture::RGBA_Integer;
+
case QOpenGLTexture::R8I:
+ return QOpenGLTexture::Red_Integer;
+
case QOpenGLTexture::RG8I:
+ return QOpenGLTexture::RG_Integer;
+
case QOpenGLTexture::RGB8I:
+ return QOpenGLTexture::RGB_Integer;
+
case QOpenGLTexture::RGBA8I:
+ return QOpenGLTexture::RGBA_Integer;
+
case QOpenGLTexture::R16I:
+ return QOpenGLTexture::Red_Integer;
+
case QOpenGLTexture::RG16I:
+ return QOpenGLTexture::RG_Integer;
+
case QOpenGLTexture::RGB16I:
+ return QOpenGLTexture::RGB_Integer;
+
case QOpenGLTexture::RGBA16I:
+ return QOpenGLTexture::RGBA_Integer;
+
case QOpenGLTexture::R32I:
+ return QOpenGLTexture::Red_Integer;
+
case QOpenGLTexture::RG32I:
+ return QOpenGLTexture::RG_Integer;
+
case QOpenGLTexture::RGB32I:
+ return QOpenGLTexture::RGB_Integer;
+
case QOpenGLTexture::RGBA32I:
+ return QOpenGLTexture::RGBA_Integer;
+
case QOpenGLTexture::R16F:
+ return QOpenGLTexture::Red;
+
case QOpenGLTexture::RG16F:
+ return QOpenGLTexture::RG;
+
case QOpenGLTexture::RGB16F:
+ return QOpenGLTexture::RGB;
+
case QOpenGLTexture::RGBA16F:
+ return QOpenGLTexture::RGBA;
+
case QOpenGLTexture::R32F:
+ return QOpenGLTexture::Red;
+
case QOpenGLTexture::RG32F:
+ return QOpenGLTexture::RG;
+
case QOpenGLTexture::RGB32F:
+ return QOpenGLTexture::RGB;
+
case QOpenGLTexture::RGBA32F:
+ return QOpenGLTexture::RGBA;
+
case QOpenGLTexture::RGB9E5:
+ return QOpenGLTexture::RGB;
+
case QOpenGLTexture::RG11B10F:
+ return QOpenGLTexture::RGB;
+
case QOpenGLTexture::RG3B2:
+ return QOpenGLTexture::RGB;
+
case QOpenGLTexture::R5G6B5:
+ return QOpenGLTexture::RGB;
+
case QOpenGLTexture::RGB5A1:
+ return QOpenGLTexture::RGBA;
+
case QOpenGLTexture::RGBA4:
+ return QOpenGLTexture::RGBA;
+
case QOpenGLTexture::RGB10A2:
return QOpenGLTexture::RGBA;
@@ -402,6 +660,26 @@ static QOpenGLTexture::PixelFormat pixelFormatCompatibleWithInternalFormat(QOpen
case QOpenGLTexture::SRGB_BP_UNorm:
return QOpenGLTexture::RGBA;
+ case QOpenGLTexture::R11_EAC_UNorm:
+ case QOpenGLTexture::R11_EAC_SNorm:
+ return QOpenGLTexture::Red;
+
+ case QOpenGLTexture::RG11_EAC_UNorm:
+ case QOpenGLTexture::RG11_EAC_SNorm:
+ return QOpenGLTexture::RG;
+
+ case QOpenGLTexture::RGB8_ETC2:
+ case QOpenGLTexture::SRGB8_ETC2:
+ return QOpenGLTexture::RGB;
+
+ case QOpenGLTexture::RGB8_PunchThrough_Alpha1_ETC2:
+ case QOpenGLTexture::SRGB8_PunchThrough_Alpha1_ETC2:
+ return QOpenGLTexture::RGBA;
+
+ case QOpenGLTexture::RGBA8_ETC2_EAC:
+ case QOpenGLTexture::SRGB8_Alpha8_ETC2_EAC:
+ return QOpenGLTexture::RGBA;
+
case QOpenGLTexture::DepthFormat:
return QOpenGLTexture::Depth;
@@ -437,6 +715,8 @@ static QOpenGLTexture::PixelType pixelTypeCompatibleWithInternalFormat(QOpenGLTe
case QOpenGLTexture::RG16_UNorm:
case QOpenGLTexture::RGB16_UNorm:
case QOpenGLTexture::RGBA16_UNorm:
+ return QOpenGLTexture::UInt8;
+
case QOpenGLTexture::R8_SNorm:
case QOpenGLTexture::RG8_SNorm:
case QOpenGLTexture::RGB8_SNorm:
@@ -445,6 +725,8 @@ static QOpenGLTexture::PixelType pixelTypeCompatibleWithInternalFormat(QOpenGLTe
case QOpenGLTexture::RG16_SNorm:
case QOpenGLTexture::RGB16_SNorm:
case QOpenGLTexture::RGBA16_SNorm:
+ return QOpenGLTexture::Int8;
+
case QOpenGLTexture::R8U:
case QOpenGLTexture::RG8U:
case QOpenGLTexture::RGB8U:
@@ -457,6 +739,8 @@ static QOpenGLTexture::PixelType pixelTypeCompatibleWithInternalFormat(QOpenGLTe
case QOpenGLTexture::RG32U:
case QOpenGLTexture::RGB32U:
case QOpenGLTexture::RGBA32U:
+ return QOpenGLTexture::UInt8;
+
case QOpenGLTexture::R8I:
case QOpenGLTexture::RG8I:
case QOpenGLTexture::RGB8I:
@@ -469,28 +753,50 @@ static QOpenGLTexture::PixelType pixelTypeCompatibleWithInternalFormat(QOpenGLTe
case QOpenGLTexture::RG32I:
case QOpenGLTexture::RGB32I:
case QOpenGLTexture::RGBA32I:
+ return QOpenGLTexture::Int8;
+
case QOpenGLTexture::R16F:
case QOpenGLTexture::RG16F:
case QOpenGLTexture::RGB16F:
case QOpenGLTexture::RGBA16F:
+ return QOpenGLTexture::Float16;
+
case QOpenGLTexture::R32F:
case QOpenGLTexture::RG32F:
case QOpenGLTexture::RGB32F:
case QOpenGLTexture::RGBA32F:
+ return QOpenGLTexture::Float32;
+
case QOpenGLTexture::RGB9E5:
+ return QOpenGLTexture::UInt16_RGB5A1_Rev;
+
case QOpenGLTexture::RG11B10F:
+ return QOpenGLTexture::UInt32_RG11B10F;
+
case QOpenGLTexture::RG3B2:
+ return QOpenGLTexture::UInt8_RG3B2;
+
case QOpenGLTexture::R5G6B5:
+ return QOpenGLTexture::UInt16_R5G6B5;
+
case QOpenGLTexture::RGB5A1:
+ return QOpenGLTexture::UInt16_RGB5A1;
+
case QOpenGLTexture::RGBA4:
+ return QOpenGLTexture::UInt16_RGBA4;
+
case QOpenGLTexture::RGB10A2:
- return QOpenGLTexture::UInt8;
+ return QOpenGLTexture::UInt32_RGB10A2;
case QOpenGLTexture::D16:
+ return QOpenGLTexture::UInt16;
+
case QOpenGLTexture::D24:
case QOpenGLTexture::D32:
+ return QOpenGLTexture::UInt32;
+
case QOpenGLTexture::D32F:
- return QOpenGLTexture::UInt8;
+ return QOpenGLTexture::Float32;
case QOpenGLTexture::D24S8:
return QOpenGLTexture::UInt32_D24S8;
@@ -519,6 +825,16 @@ static QOpenGLTexture::PixelType pixelTypeCompatibleWithInternalFormat(QOpenGLTe
case QOpenGLTexture::SRGB_Alpha_DXT3:
case QOpenGLTexture::SRGB_Alpha_DXT5:
case QOpenGLTexture::SRGB_BP_UNorm:
+ case QOpenGLTexture::R11_EAC_UNorm:
+ case QOpenGLTexture::R11_EAC_SNorm:
+ case QOpenGLTexture::RG11_EAC_UNorm:
+ case QOpenGLTexture::RG11_EAC_SNorm:
+ case QOpenGLTexture::RGB8_ETC2:
+ case QOpenGLTexture::SRGB8_ETC2:
+ case QOpenGLTexture::RGB8_PunchThrough_Alpha1_ETC2:
+ case QOpenGLTexture::SRGB8_PunchThrough_Alpha1_ETC2:
+ case QOpenGLTexture::RGBA8_ETC2_EAC:
+ case QOpenGLTexture::SRGB8_Alpha8_ETC2_EAC:
return QOpenGLTexture::UInt8;
case QOpenGLTexture::DepthFormat:
@@ -534,11 +850,8 @@ static QOpenGLTexture::PixelType pixelTypeCompatibleWithInternalFormat(QOpenGLTe
return QOpenGLTexture::NoPixelType;
}
-void QOpenGLTexturePrivate::allocateMutableStorage()
+void QOpenGLTexturePrivate::allocateMutableStorage(QOpenGLTexture::PixelFormat pixelFormat, QOpenGLTexture::PixelType pixelType)
{
- const QOpenGLTexture::PixelFormat pixelFormat = pixelFormatCompatibleWithInternalFormat(format);
- const QOpenGLTexture::PixelType pixelType = pixelTypeCompatibleWithInternalFormat(format);
-
switch (target) {
case QOpenGLTexture::TargetBuffer:
// Buffer textures get their storage from an external OpenGL buffer
@@ -747,7 +1060,7 @@ void QOpenGLTexturePrivate::allocateImmutableStorage()
break;
case QOpenGLTexture::Target2DMultisample:
- if (features.testFlag(QOpenGLTexture::TextureMultisample)) {
+ if (features.testFlag(QOpenGLTexture::ImmutableMultisampleStorage)) {
texFuncs->glTextureStorage2DMultisample(textureId, target, bindingTarget, samples, format,
dimensions[0], dimensions[1],
fixedSamplePositions);
@@ -758,7 +1071,7 @@ void QOpenGLTexturePrivate::allocateImmutableStorage()
break;
case QOpenGLTexture::Target2DMultisampleArray:
- if (features.testFlag(QOpenGLTexture::TextureMultisample)
+ if (features.testFlag(QOpenGLTexture::ImmutableMultisampleStorage)
&& features.testFlag(QOpenGLTexture::TextureArrays)) {
texFuncs->glTextureStorage3DMultisample(textureId, target, bindingTarget, samples, format,
dimensions[0], dimensions[1], layers,
@@ -1525,6 +1838,16 @@ QOpenGLTexture *QOpenGLTexturePrivate::createTextureView(QOpenGLTexture::Target
\value RGB_BP_UNSIGNED_FLOAT Equivalent to GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB
\value RGB_BP_SIGNED_FLOAT Equivalent to GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB
\value RGB_BP_UNorm Equivalent to GL_COMPRESSED_RGBA_BPTC_UNORM_ARB
+ \value R11_EAC_UNorm Equivalent to GL_COMPRESSED_R11_EAC
+ \value R11_EAC_SNorm Equivalent to GL_COMPRESSED_SIGNED_R11_EAC
+ \value RG11_EAC_UNorm Equivalent to GL_COMPRESSED_RG11_EAC
+ \value RG11_EAC_SNorm Equivalent to GL_COMPRESSED_SIGNED_RG11_EAC
+ \value RGB8_ETC2 Equivalent to GL_COMPRESSED_RGB8_ETC2
+ \value SRGB8_ETC2 Equivalent to GL_COMPRESSED_SRGB8_ETC2
+ \value RGB8_PunchThrough_Alpha1_ETC2 Equivalent to GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2
+ \value SRGB8_PunchThrough_Alpha1_ETC2 Equivalent to GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2
+ \value RGBA8_ETC2_EAC Equivalent to GL_COMPRESSED_RGBA8_ETC2_EAC
+ \value SRGB8_Alpha8_ETC2_EAC Equivalent to GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC
\value SRGB8 Equivalent to GL_SRGB8
\value SRGB8_Alpha8 Equivalent to GL_SRGB8_ALPHA8
@@ -2050,6 +2373,16 @@ void QOpenGLTexture::setFormat(TextureFormat format)
d->formatClass = FormatClass_S3TC_DXT5_RGBA;
break;
+ case QOpenGLTexture::R11_EAC_UNorm:
+ case QOpenGLTexture::R11_EAC_SNorm:
+ case QOpenGLTexture::RG11_EAC_UNorm:
+ case QOpenGLTexture::RG11_EAC_SNorm:
+ case QOpenGLTexture::RGB8_ETC2:
+ case QOpenGLTexture::SRGB8_ETC2:
+ case QOpenGLTexture::RGB8_PunchThrough_Alpha1_ETC2:
+ case QOpenGLTexture::SRGB8_PunchThrough_Alpha1_ETC2:
+ case QOpenGLTexture::RGBA8_ETC2_EAC:
+ case QOpenGLTexture::SRGB8_Alpha8_ETC2_EAC:
case RG3B2:
case R5G6B5:
case RGB5A1:
@@ -2436,17 +2769,58 @@ bool QOpenGLTexture::isFixedSamplePositions() const
Once storage has been allocated for the texture then pixel data
can be uploaded via one of the setData() overloads.
+ \note If immutable texture storage is not available,
+ then a default pixel format and pixel type will be used to
+ create the mutable storage. You can use the other
+ allocateStorage() overload to specify exactly the pixel format
+ and the pixel type to use when allocating mutable storage;
+ this is particulary useful under certain OpenGL ES implementations
+ (notably, OpenGL ES 2), where the pixel format and the pixel type
+ used at allocation time must perfectly match the format
+ and the type passed to any subsequent setData() call.
+
\sa isStorageAllocated(), setData()
*/
void QOpenGLTexture::allocateStorage()
{
Q_D(QOpenGLTexture);
if (d->create()) {
- d->allocateStorage();
+ const QOpenGLTexture::PixelFormat pixelFormat = pixelFormatCompatibleWithInternalFormat(d->format);
+ const QOpenGLTexture::PixelType pixelType = pixelTypeCompatibleWithInternalFormat(d->format);
+ d->allocateStorage(pixelFormat, pixelType);
}
}
/*!
+ \since 5.5
+
+ Allocates server-side storage for this texture object taking
+ into account, the format, dimensions, mipmap levels, array
+ layers and cubemap faces.
+
+ Once storage has been allocated it is no longer possible to change
+ these properties.
+
+ If supported QOpenGLTexture makes use of immutable texture
+ storage. However, if immutable texture storage is not available,
+ then the specified \a pixelFormat and \a pixelType will be used
+ to allocate mutable storage; note that in certain OpenGL implementations
+ (notably, OpenGL ES 2) they must perfectly match the format
+ and the type passed to any subsequent setData() call.
+
+ Once storage has been allocated for the texture then pixel data
+ can be uploaded via one of the setData() overloads.
+
+ \sa isStorageAllocated(), setData()
+*/
+void QOpenGLTexture::allocateStorage(QOpenGLTexture::PixelFormat pixelFormat, QOpenGLTexture::PixelType pixelType)
+{
+ Q_D(QOpenGLTexture);
+ if (d->create())
+ d->allocateStorage(pixelFormat, pixelType);
+}
+
+/*!
Returns \c true if server-side storage for this texture as been
allocated.
@@ -2547,7 +2921,7 @@ void QOpenGLTexture::setData(int mipLevel, int layer, CubeMapFace cubeFace,
Q_ASSERT(d->textureId);
if (!isStorageAllocated()) {
qWarning("Cannot set data on a texture that does not have storage allocated.\n"
- "To do so call allocate() before this function");
+ "To do so call allocateStorage() before this function");
return;
}
d->setData(mipLevel, layer, cubeFace, sourceFormat, sourceType, data, options);
@@ -2606,7 +2980,7 @@ void QOpenGLTexture::setData(int mipLevel, int layer, CubeMapFace cubeFace,
Q_ASSERT(d->textureId);
if (!isStorageAllocated()) {
qWarning("Cannot set data on a texture that does not have storage allocated.\n"
- "To do so call allocate() before this function");
+ "To do so call allocateStorage() before this function");
return;
}
d->setData(mipLevel, layer, cubeFace, sourceFormat, sourceType, data, options);
@@ -2672,7 +3046,7 @@ void QOpenGLTexture::setData(const QImage& image, MipMapGeneration genMipMaps)
setSize(image.width(), image.height());
setMipLevels(genMipMaps == GenerateMipMaps ? maximumMipLevels() : 1);
- allocateStorage();
+ allocateStorage(QOpenGLTexture::RGBA, QOpenGLTexture::UInt8);
// Upload pixel data and generate mipmaps
QImage glImage = image.convertToFormat(QImage::Format_RGBA8888);
@@ -2699,7 +3073,7 @@ void QOpenGLTexture::setCompressedData(int mipLevel, int layer, CubeMapFace cube
Q_ASSERT(d->textureId);
if (!isStorageAllocated()) {
qWarning("Cannot set data on a texture that does not have storage allocated.\n"
- "To do so call allocate() before this function");
+ "To do so call allocateStorage() before this function");
return;
}
d->setCompressedData(mipLevel, layer, cubeFace, dataSize, data, options);
@@ -2751,7 +3125,7 @@ void QOpenGLTexture::setCompressedData(int mipLevel, int layer, CubeMapFace cube
Q_ASSERT(d->textureId);
if (!isStorageAllocated()) {
qWarning("Cannot set data on a texture that does not have storage allocated.\n"
- "To do so call allocate() before this function");
+ "To do so call allocateStorage() before this function");
return;
}
d->setCompressedData(mipLevel, layer, cubeFace, dataSize, data, options);
@@ -2830,7 +3204,8 @@ bool QOpenGLTexture::hasFeature(Feature feature)
case ImmutableStorage:
supported = f.version() >= qMakePair(4, 2)
- || ctx->hasExtension(QByteArrayLiteral("GL_ARB_texture_storage"));
+ || ctx->hasExtension(QByteArrayLiteral("GL_ARB_texture_storage"))
+ || ctx->hasExtension(QByteArrayLiteral("GL_EXT_texture_storage"));
break;
case TextureCubeMapArrays:
@@ -2877,9 +3252,6 @@ bool QOpenGLTexture::hasFeature(Feature feature)
case MaxFeatureFlag:
break;
-
- default:
- break;
}
}
@@ -2887,21 +3259,59 @@ bool QOpenGLTexture::hasFeature(Feature feature)
#endif
{
switch (feature) {
+ case ImmutableStorage:
+ supported = f.version() >= qMakePair(3, 0)
+ || ctx->hasExtension(QByteArrayLiteral("EXT_texture_storage"));
+ break;
+
+ case ImmutableMultisampleStorage:
+ supported = f.version() >= qMakePair(3, 1);
+ break;
+
+ case TextureRectangle:
+ break;
+
+ case TextureArrays:
+ supported = f.version() >= qMakePair(3, 0);
+ break;
+
case Texture3D:
- supported = ctx->hasExtension(QByteArrayLiteral("GL_OES_texture_3D"));
+ supported = f.version() >= qMakePair(3, 0)
+ || ctx->hasExtension(QByteArrayLiteral("GL_OES_texture_3D"));
+ break;
+
+ case TextureMultisample:
+ supported = f.version() >= qMakePair(3, 1);
break;
+
+ case TextureBuffer:
+ break;
+
+ case TextureCubeMapArrays:
+ break;
+
+ case Swizzle:
+ supported = f.version() >= qMakePair(3, 0);
+ break;
+
+ case StencilTexturing:
+ break;
+
case AnisotropicFiltering:
supported = ctx->hasExtension(QByteArrayLiteral("GL_EXT_texture_filter_anisotropic"));
break;
+
case NPOTTextures:
case NPOTTextureRepeat:
- supported = f.version() >= qMakePair(3,0);
- if (!supported) {
- supported = ctx->hasExtension(QByteArrayLiteral("GL_OES_texture_npot"));
- if (!supported)
- supported = ctx->hasExtension(QByteArrayLiteral("GL_ARB_texture_non_power_of_two"));
- }
- default:
+ supported = f.version() >= qMakePair(3,0)
+ || ctx->hasExtension(QByteArrayLiteral("GL_OES_texture_npot"))
+ || ctx->hasExtension(QByteArrayLiteral("GL_ARB_texture_non_power_of_two"));
+ break;
+
+ case Texture1D:
+ break;
+
+ case MaxFeatureFlag:
break;
}
}
diff --git a/src/gui/opengl/qopengltexture.h b/src/gui/opengl/qopengltexture.h
index a0b23c211c..1cf5fdc12a 100644
--- a/src/gui/opengl/qopengltexture.h
+++ b/src/gui/opengl/qopengltexture.h
@@ -88,29 +88,6 @@ public:
DontResetTextureUnit
};
- explicit QOpenGLTexture(Target target);
- explicit QOpenGLTexture(const QImage& image, MipMapGeneration genMipMaps = GenerateMipMaps);
- ~QOpenGLTexture();
-
- Target target() const;
-
- // Creation and destruction
- bool create();
- void destroy();
- bool isCreated() const;
- GLuint textureId() const;
-
- // Binding and releasing
- void bind();
- void bind(uint unit, TextureUnitReset reset = DontResetTextureUnit);
- void release();
- void release(uint unit, TextureUnitReset reset = DontResetTextureUnit);
-
- bool isBound() const;
- bool isBound(uint unit);
- static GLuint boundTextureId(BindingTarget target);
- static GLuint boundTextureId(uint unit, BindingTarget target);
-
enum TextureFormat {
NoFormat = 0, // GL_NONE
@@ -209,6 +186,16 @@ public:
RGB_BP_UNSIGNED_FLOAT = 0x8E8F, // GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB
RGB_BP_SIGNED_FLOAT = 0x8E8E, // GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB
RGB_BP_UNorm = 0x8E8C, // GL_COMPRESSED_RGBA_BPTC_UNORM_ARB
+ R11_EAC_UNorm = 0x9270, // GL_COMPRESSED_R11_EAC
+ R11_EAC_SNorm = 0x9271, // GL_COMPRESSED_SIGNED_R11_EAC
+ RG11_EAC_UNorm = 0x9272, // GL_COMPRESSED_RG11_EAC
+ RG11_EAC_SNorm = 0x9273, // GL_COMPRESSED_SIGNED_RG11_EAC
+ RGB8_ETC2 = 0x9274, // GL_COMPRESSED_RGB8_ETC2
+ SRGB8_ETC2 = 0x9275, // GL_COMPRESSED_SRGB8_ETC2
+ RGB8_PunchThrough_Alpha1_ETC2 = 0x9276, // GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2
+ SRGB8_PunchThrough_Alpha1_ETC2 = 0x9277, // GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2
+ RGBA8_ETC2_EAC = 0x9278, // GL_COMPRESSED_RGBA8_ETC2_EAC
+ SRGB8_Alpha8_ETC2_EAC = 0x9279, // GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC
// sRGB formats
SRGB8 = 0x8C41, // GL_SRGB8
@@ -254,32 +241,6 @@ public:
};
#endif
- // Storage allocation
- void setFormat(TextureFormat format);
- TextureFormat format() const;
- void setSize(int width, int height = 1, int depth = 1);
- int width() const;
- int height() const;
- int depth() const;
- void setMipLevels(int levels);
- int mipLevels() const;
- int maximumMipLevels() const;
- void setLayers(int layers);
- int layers() const;
- int faces() const;
- void setSamples(int samples);
- int samples() const;
- void setFixedSamplePositions(bool fixed);
- bool isFixedSamplePositions() const;
- void allocateStorage();
- bool isStorageAllocated() const;
-
- QOpenGLTexture *createTextureView(Target target,
- TextureFormat viewFormat,
- int minimumMipmapLevel, int maximumMipmapLevel,
- int minimumLayer, int maximumLayer) const;
- bool isTextureView() const;
-
enum CubeMapFace {
CubeMapPositiveX = 0x8515, // GL_TEXTURE_CUBE_MAP_POSITIVE_X
CubeMapNegativeX = 0x8516, // GL_TEXTURE_CUBE_MAP_NEGATIVE_X
@@ -340,6 +301,107 @@ public:
Float32_D32_UInt32_S8_X24 = 0x8DAD // GL_FLOAT_32_UNSIGNED_INT_24_8_REV
};
+ enum SwizzleComponent {
+ SwizzleRed = 0x8E42, // GL_TEXTURE_SWIZZLE_R
+ SwizzleGreen = 0x8E43, // GL_TEXTURE_SWIZZLE_G
+ SwizzleBlue = 0x8E44, // GL_TEXTURE_SWIZZLE_B
+ SwizzleAlpha = 0x8E45 // GL_TEXTURE_SWIZZLE_A
+ };
+
+ enum SwizzleValue {
+ RedValue = 0x1903, // GL_RED
+ GreenValue = 0x1904, // GL_GREEN
+ BlueValue = 0x1905, // GL_BLUE
+ AlphaValue = 0x1906, // GL_ALPHA
+ ZeroValue = 0, // GL_ZERO
+ OneValue = 1 // GL_ONE
+ };
+
+ enum WrapMode {
+ Repeat = 0x2901, // GL_REPEAT
+ MirroredRepeat = 0x8370, // GL_MIRRORED_REPEAT
+ ClampToEdge = 0x812F, // GL_CLAMP_TO_EDGE
+ ClampToBorder = 0x812D // GL_CLAMP_TO_BORDER
+ };
+
+ enum CoordinateDirection {
+ DirectionS = 0x2802, // GL_TEXTURE_WRAP_S
+ DirectionT = 0x2803, // GL_TEXTURE_WRAP_T
+ DirectionR = 0x8072 // GL_TEXTURE_WRAP_R
+ };
+
+ // Features
+ enum Feature {
+ ImmutableStorage = 0x00000001,
+ ImmutableMultisampleStorage = 0x00000002,
+ TextureRectangle = 0x00000004,
+ TextureArrays = 0x00000008,
+ Texture3D = 0x00000010,
+ TextureMultisample = 0x00000020,
+ TextureBuffer = 0x00000040,
+ TextureCubeMapArrays = 0x00000080,
+ Swizzle = 0x00000100,
+ StencilTexturing = 0x00000200,
+ AnisotropicFiltering = 0x00000400,
+ NPOTTextures = 0x00000800,
+ NPOTTextureRepeat = 0x00001000,
+ Texture1D = 0x00002000,
+#ifndef Q_QDOC
+ MaxFeatureFlag = 0x00004000
+#endif
+ };
+ Q_DECLARE_FLAGS(Features, Feature)
+
+ explicit QOpenGLTexture(Target target);
+ explicit QOpenGLTexture(const QImage& image, MipMapGeneration genMipMaps = GenerateMipMaps);
+ ~QOpenGLTexture();
+
+ Target target() const;
+
+ // Creation and destruction
+ bool create();
+ void destroy();
+ bool isCreated() const;
+ GLuint textureId() const;
+
+ // Binding and releasing
+ void bind();
+ void bind(uint unit, TextureUnitReset reset = DontResetTextureUnit);
+ void release();
+ void release(uint unit, TextureUnitReset reset = DontResetTextureUnit);
+
+ bool isBound() const;
+ bool isBound(uint unit);
+ static GLuint boundTextureId(BindingTarget target);
+ static GLuint boundTextureId(uint unit, BindingTarget target);
+
+ // Storage allocation
+ void setFormat(TextureFormat format);
+ TextureFormat format() const;
+ void setSize(int width, int height = 1, int depth = 1);
+ int width() const;
+ int height() const;
+ int depth() const;
+ void setMipLevels(int levels);
+ int mipLevels() const;
+ int maximumMipLevels() const;
+ void setLayers(int layers);
+ int layers() const;
+ int faces() const;
+ void setSamples(int samples);
+ int samples() const;
+ void setFixedSamplePositions(bool fixed);
+ bool isFixedSamplePositions() const;
+ void allocateStorage();
+ void allocateStorage(PixelFormat pixelFormat, PixelType pixelType);
+ bool isStorageAllocated() const;
+
+ QOpenGLTexture *createTextureView(Target target,
+ TextureFormat viewFormat,
+ int minimumMipmapLevel, int maximumMipmapLevel,
+ int minimumLayer, int maximumLayer) const;
+ bool isTextureView() const;
+
// Pixel transfer
// ### Qt 6: remove the non-const void * overloads
#if QT_DEPRECATED_SINCE(5, 3)
@@ -397,28 +459,6 @@ public:
// Helpful overloads for setData
void setData(const QImage& image, MipMapGeneration genMipMaps = GenerateMipMaps);
- // Features
- enum Feature {
- ImmutableStorage = 0x00000001,
- ImmutableMultisampleStorage = 0x00000002,
- TextureRectangle = 0x00000004,
- TextureArrays = 0x00000008,
- Texture3D = 0x00000010,
- TextureMultisample = 0x00000020,
- TextureBuffer = 0x00000040,
- TextureCubeMapArrays = 0x00000080,
- Swizzle = 0x00000100,
- StencilTexturing = 0x00000200,
- AnisotropicFiltering = 0x00000400,
- NPOTTextures = 0x00000800,
- NPOTTextureRepeat = 0x00001000,
- Texture1D = 0x00002000,
-#ifndef Q_QDOC
- MaxFeatureFlag = 0x00004000
-#endif
- };
- Q_DECLARE_FLAGS(Features, Feature)
-
static bool hasFeature(Feature feature);
// Texture Parameters
@@ -435,22 +475,6 @@ public:
void generateMipMaps();
void generateMipMaps(int baseLevel, bool resetBaseLevel = true);
- enum SwizzleComponent {
- SwizzleRed = 0x8E42, // GL_TEXTURE_SWIZZLE_R
- SwizzleGreen = 0x8E43, // GL_TEXTURE_SWIZZLE_G
- SwizzleBlue = 0x8E44, // GL_TEXTURE_SWIZZLE_B
- SwizzleAlpha = 0x8E45 // GL_TEXTURE_SWIZZLE_A
- };
-
- enum SwizzleValue {
- RedValue = 0x1903, // GL_RED
- GreenValue = 0x1904, // GL_GREEN
- BlueValue = 0x1905, // GL_BLUE
- AlphaValue = 0x1906, // GL_ALPHA
- ZeroValue = 0, // GL_ZERO
- OneValue = 1 // GL_ONE
- };
-
void setSwizzleMask(SwizzleComponent component, SwizzleValue value);
void setSwizzleMask(SwizzleValue r, SwizzleValue g,
SwizzleValue b, SwizzleValue a);
@@ -484,19 +508,6 @@ public:
void setMaximumAnisotropy(float anisotropy);
float maximumAnisotropy() const;
- enum WrapMode {
- Repeat = 0x2901, // GL_REPEAT
- MirroredRepeat = 0x8370, // GL_MIRRORED_REPEAT
- ClampToEdge = 0x812F, // GL_CLAMP_TO_EDGE
- ClampToBorder = 0x812D // GL_CLAMP_TO_BORDER
- };
-
- enum CoordinateDirection {
- DirectionS = 0x2802, // GL_TEXTURE_WRAP_S
- DirectionT = 0x2803, // GL_TEXTURE_WRAP_T
- DirectionR = 0x8072 // GL_TEXTURE_WRAP_R
- };
-
void setWrapMode(WrapMode mode);
void setWrapMode(CoordinateDirection direction, WrapMode mode);
WrapMode wrapMode(CoordinateDirection direction) const;
diff --git a/src/gui/opengl/qopengltexture_p.h b/src/gui/opengl/qopengltexture_p.h
index b584d3ec8f..3b70010231 100644
--- a/src/gui/opengl/qopengltexture_p.h
+++ b/src/gui/opengl/qopengltexture_p.h
@@ -87,8 +87,8 @@ public:
bool isBound() const;
bool isBound(uint unit) const;
- void allocateStorage();
- void allocateMutableStorage();
+ void allocateStorage(QOpenGLTexture::PixelFormat pixelFormat, QOpenGLTexture::PixelType pixelType);
+ void allocateMutableStorage(QOpenGLTexture::PixelFormat pixelFormat, QOpenGLTexture::PixelType pixelType);
void allocateImmutableStorage();
void setData(int mipLevel, int layer, QOpenGLTexture::CubeMapFace cubeFace,
QOpenGLTexture::PixelFormat sourceFormat, QOpenGLTexture::PixelType sourceType,
diff --git a/src/gui/opengl/qopengltexturecache.cpp b/src/gui/opengl/qopengltexturecache.cpp
index 3b24e1f576..f85a26cd6e 100644
--- a/src/gui/opengl/qopengltexturecache.cpp
+++ b/src/gui/opengl/qopengltexturecache.cpp
@@ -41,6 +41,10 @@
QT_BEGIN_NAMESPACE
+#ifndef GL_RED
+#define GL_RED 0x1903
+#endif
+
#ifndef GL_RGB10_A2
#define GL_RGB10_A2 0x8059
#endif
@@ -273,6 +277,35 @@ GLuint QOpenGLTextureCache::bindTexture(QOpenGLContext *context, qint64 key, con
pixelType = GL_UNSIGNED_BYTE;
targetFormat = image.format();
break;
+ case QImage::Format_Indexed8:
+ if (options & UseRedFor8BitBindOption) {
+ externalFormat = internalFormat = GL_RED;
+ pixelType = GL_UNSIGNED_BYTE;
+ targetFormat = image.format();
+ }
+ break;
+ case QImage::Format_Alpha8:
+ if (options & UseRedFor8BitBindOption) {
+ externalFormat = internalFormat = GL_RED;
+ pixelType = GL_UNSIGNED_BYTE;
+ targetFormat = image.format();
+ } else if (context->isOpenGLES() || context->format().profile() != QSurfaceFormat::CoreProfile) {
+ externalFormat = internalFormat = GL_ALPHA;
+ pixelType = GL_UNSIGNED_BYTE;
+ targetFormat = image.format();
+ }
+ break;
+ case QImage::Format_Grayscale8:
+ if (options & UseRedFor8BitBindOption) {
+ externalFormat = internalFormat = GL_RED;
+ pixelType = GL_UNSIGNED_BYTE;
+ targetFormat = image.format();
+ } else if (context->isOpenGLES() || context->format().profile() != QSurfaceFormat::CoreProfile) {
+ externalFormat = internalFormat = GL_LUMINANCE;
+ pixelType = GL_UNSIGNED_BYTE;
+ targetFormat = image.format();
+ }
+ break;
default:
break;
}
diff --git a/src/gui/opengl/qopengltexturecache_p.h b/src/gui/opengl/qopengltexturecache_p.h
index f856054a85..7cff13911c 100644
--- a/src/gui/opengl/qopengltexturecache_p.h
+++ b/src/gui/opengl/qopengltexturecache_p.h
@@ -78,6 +78,7 @@ public:
enum BindOption {
NoBindOption = 0x0000,
PremultipliedAlphaBindOption = 0x0001,
+ UseRedFor8BitBindOption = 0x0002,
};
Q_DECLARE_FLAGS(BindOptions, BindOption)
@@ -86,8 +87,8 @@ public:
void invalidate(qint64 key);
- void invalidateResource();
- void freeResource(QOpenGLContext *ctx);
+ void invalidateResource() Q_DECL_OVERRIDE;
+ void freeResource(QOpenGLContext *ctx) Q_DECL_OVERRIDE;
private:
GLuint bindTexture(QOpenGLContext *context, qint64 key, const QImage &image, QOpenGLTextureCache::BindOptions options);
diff --git a/src/gui/opengl/qopengltextureglyphcache_p.h b/src/gui/opengl/qopengltextureglyphcache_p.h
index f61f264526..cfa73f1a83 100644
--- a/src/gui/opengl/qopengltextureglyphcache_p.h
+++ b/src/gui/opengl/qopengltextureglyphcache_p.h
@@ -74,7 +74,7 @@ public:
#endif
}
- void freeResource(QOpenGLContext *context)
+ void freeResource(QOpenGLContext *context) Q_DECL_OVERRIDE
{
QOpenGLContext *ctx = context;
#ifdef QT_GL_TEXTURE_GLYPH_CACHE_DEBUG
@@ -86,7 +86,7 @@ public:
ctx->functions()->glDeleteTextures(1, &m_texture);
}
- void invalidateResource()
+ void invalidateResource() Q_DECL_OVERRIDE
{
m_texture = 0;
m_fbo = 0;
@@ -106,12 +106,12 @@ public:
QOpenGLTextureGlyphCache(QFontEngine::GlyphFormat glyphFormat, const QTransform &matrix);
~QOpenGLTextureGlyphCache();
- virtual void createTextureData(int width, int height);
- virtual void resizeTextureData(int width, int height);
- virtual void fillTexture(const Coord &c, glyph_t glyph, QFixed subPixelPosition);
- virtual int glyphPadding() const;
- virtual int maxTextureWidth() const;
- virtual int maxTextureHeight() const;
+ virtual void createTextureData(int width, int height) Q_DECL_OVERRIDE;
+ virtual void resizeTextureData(int width, int height) Q_DECL_OVERRIDE;
+ virtual void fillTexture(const Coord &c, glyph_t glyph, QFixed subPixelPosition) Q_DECL_OVERRIDE;
+ virtual int glyphPadding() const Q_DECL_OVERRIDE;
+ virtual int maxTextureWidth() const Q_DECL_OVERRIDE;
+ virtual int maxTextureHeight() const Q_DECL_OVERRIDE;
inline GLuint texture() const {
QOpenGLTextureGlyphCache *that = const_cast<QOpenGLTextureGlyphCache *>(this);
diff --git a/src/gui/opengl/qopengltexturehelper.cpp b/src/gui/opengl/qopengltexturehelper.cpp
index 29cecf0ea8..1eeab64911 100644
--- a/src/gui/opengl/qopengltexturehelper.cpp
+++ b/src/gui/opengl/qopengltexturehelper.cpp
@@ -200,8 +200,13 @@ QOpenGLTextureHelper::QOpenGLTextureHelper(QOpenGLContext *context)
TexImage2DMultisample = 0;
// OpenGL 4.2
+#ifdef QT_OPENGL_ES_3
+ TexStorage3D = ::glTexStorage3D;
+ TexStorage2D = ::glTexStorage2D;
+#else
TexStorage3D = 0;
TexStorage2D = 0;
+#endif
TexStorage1D = 0;
// OpenGL 4.3
diff --git a/src/gui/opengl/qopenglvertexarrayobject.cpp b/src/gui/opengl/qopenglvertexarrayobject.cpp
index 5520dfed08..d8979fd98f 100644
--- a/src/gui/opengl/qopenglvertexarrayobject.cpp
+++ b/src/gui/opengl/qopenglvertexarrayobject.cpp
@@ -146,6 +146,11 @@ bool QOpenGLVertexArrayObjectPrivate::create()
qWarning("QOpenGLVertexArrayObject::create() requires a valid current OpenGL context");
return false;
}
+
+ //Fail early, if context is the same as ctx, it means we have tried to initialize for this context and failed
+ if (ctx == context)
+ return false;
+
context = ctx;
QObject::connect(context, SIGNAL(aboutToBeDestroyed()), q, SLOT(_q_contextAboutToBeDestroyed()));
diff --git a/src/gui/opengl/qtriangulator.cpp b/src/gui/opengl/qtriangulator.cpp
index f44c8adcf5..74b8f01985 100644
--- a/src/gui/opengl/qtriangulator.cpp
+++ b/src/gui/opengl/qtriangulator.cpp
@@ -441,8 +441,8 @@ T QMaxHeap<T>::pop()
// Copied from qhash.cpp
static const uchar prime_deltas[] = {
- 0, 0, 1, 3, 1, 5, 3, 3, 1, 9, 7, 5, 3, 9, 25, 3,
- 1, 21, 3, 21, 7, 15, 9, 5, 3, 29, 15, 0, 0, 0, 0, 0
+ 0, 0, 1, 3, 1, 5, 3, 3, 1, 9, 7, 5, 3, 17, 27, 3,
+ 1, 29, 3, 21, 7, 17, 15, 9, 43, 35, 15, 0, 0, 0, 0, 0
};
// Copied from qhash.cpp
@@ -457,7 +457,7 @@ static inline int primeForCount(int count)
int high = 32;
for (int i = 0; i < 5; ++i) {
int mid = (high + low) / 2;
- if (count >= 1 << mid)
+ if (uint(count) >= (1u << mid))
low = mid;
else
high = mid;
diff --git a/src/gui/painting/painting.pri b/src/gui/painting/painting.pri
index a5a395cce2..588a2f0a88 100644
--- a/src/gui/painting/painting.pri
+++ b/src/gui/painting/painting.pri
@@ -41,6 +41,7 @@ HEADERS += \
painting/qrasterdefs_p.h \
painting/qrasterizer_p.h \
painting/qregion.h \
+ painting/qrgb.h \
painting/qstroker_p.h \
painting/qtextureglyphcache_p.h \
painting/qtransform.h \
diff --git a/src/gui/painting/qblendfunctions.cpp b/src/gui/painting/qblendfunctions.cpp
index 2da5dbb356..e174d1f1cd 100644
--- a/src/gui/painting/qblendfunctions.cpp
+++ b/src/gui/painting/qblendfunctions.cpp
@@ -764,7 +764,9 @@ SrcOverScaleFunc qScaleFunctions[QImage::NImageFormats][QImage::NImageFormats] =
0, // Format_BGRs30,
0, // Format_A2BGR30_Premultiplied,
0, // Format_RGB30,
- 0 // Format_A2RGB30_Premultiplied,
+ 0, // Format_A2RGB30_Premultiplied,
+ 0, // Format_Alpha8
+ 0, // Format_Grayscale8
},
{ // Format_Mono
0, // Format_Invalid,
@@ -789,7 +791,9 @@ SrcOverScaleFunc qScaleFunctions[QImage::NImageFormats][QImage::NImageFormats] =
0, // Format_BGR30,
0, // Format_A2BGR30_Premultiplied,
0, // Format_RGB30,
- 0 // Format_A2RGB30_Premultiplied,
+ 0, // Format_A2RGB30_Premultiplied,
+ 0, // Format_Alpha8
+ 0, // Format_Grayscale8
},
{ // Format_MonoLSB
0, // Format_Invalid,
@@ -814,7 +818,9 @@ SrcOverScaleFunc qScaleFunctions[QImage::NImageFormats][QImage::NImageFormats] =
0, // Format_BGR30,
0, // Format_A2BGR30_Premultiplied,
0, // Format_RGB30,
- 0 // Format_A2RGB30_Premultiplied,
+ 0, // Format_A2RGB30_Premultiplied,
+ 0, // Format_Alpha8
+ 0, // Format_Grayscale8
},
{ // Format_Indexed8
0, // Format_Invalid,
@@ -839,7 +845,9 @@ SrcOverScaleFunc qScaleFunctions[QImage::NImageFormats][QImage::NImageFormats] =
0, // Format_BGR30,
0, // Format_A2BGR30_Premultiplied,
0, // Format_RGB30,
- 0 // Format_A2RGB30_Premultiplied,
+ 0, // Format_A2RGB30_Premultiplied,
+ 0, // Format_Alpha8
+ 0, // Format_Grayscale8
},
{ // Format_RGB32
0, // Format_Invalid,
@@ -864,7 +872,9 @@ SrcOverScaleFunc qScaleFunctions[QImage::NImageFormats][QImage::NImageFormats] =
0, // Format_BGR30,
0, // Format_A2BGR30_Premultiplied,
0, // Format_RGB30,
- 0 // Format_A2RGB30_Premultiplied,
+ 0, // Format_A2RGB30_Premultiplied,
+ 0, // Format_Alpha8
+ 0, // Format_Grayscale8
},
{ // Format_ARGB32
0, // Format_Invalid,
@@ -889,7 +899,9 @@ SrcOverScaleFunc qScaleFunctions[QImage::NImageFormats][QImage::NImageFormats] =
0, // Format_BGR30,
0, // Format_A2BGR30_Premultiplied,
0, // Format_RGB30,
- 0 // Format_A2RGB30_Premultiplied,
+ 0, // Format_A2RGB30_Premultiplied,
+ 0, // Format_Alpha8
+ 0, // Format_Grayscale8
},
{ // Format_ARGB32_Premultiplied
0, // Format_Invalid,
@@ -914,7 +926,9 @@ SrcOverScaleFunc qScaleFunctions[QImage::NImageFormats][QImage::NImageFormats] =
0, // Format_BGR30,
0, // Format_A2BGR30_Premultiplied,
0, // Format_RGB30,
- 0 // Format_A2RGB30_Premultiplied,
+ 0, // Format_A2RGB30_Premultiplied,
+ 0, // Format_Alpha8
+ 0, // Format_Grayscale8
},
{ // Format_RGB16
0, // Format_Invalid,
@@ -939,7 +953,9 @@ SrcOverScaleFunc qScaleFunctions[QImage::NImageFormats][QImage::NImageFormats] =
0, // Format_BGR30,
0, // Format_A2BGR30_Premultiplied,
0, // Format_RGB30,
- 0 // Format_A2RGB30_Premultiplied,
+ 0, // Format_A2RGB30_Premultiplied,
+ 0, // Format_Alpha8
+ 0, // Format_Grayscale8
},
{ // Format_ARGB8565_Premultiplied
0, // Format_Invalid,
@@ -964,7 +980,9 @@ SrcOverScaleFunc qScaleFunctions[QImage::NImageFormats][QImage::NImageFormats] =
0, // Format_BGR30,
0, // Format_A2BGR30_Premultiplied,
0, // Format_RGB30,
- 0 // Format_A2RGB30_Premultiplied,
+ 0, // Format_A2RGB30_Premultiplied,
+ 0, // Format_Alpha8
+ 0, // Format_Grayscale8
},
{ // Format_RGB666
0, // Format_Invalid,
@@ -989,7 +1007,9 @@ SrcOverScaleFunc qScaleFunctions[QImage::NImageFormats][QImage::NImageFormats] =
0, // Format_BGR30,
0, // Format_A2BGR30_Premultiplied,
0, // Format_RGB30,
- 0 // Format_A2RGB30_Premultiplied,
+ 0, // Format_A2RGB30_Premultiplied,
+ 0, // Format_Alpha8
+ 0, // Format_Grayscale8
},
{ // Format_ARGB6666_Premultiplied
0, // Format_Invalid,
@@ -1014,7 +1034,9 @@ SrcOverScaleFunc qScaleFunctions[QImage::NImageFormats][QImage::NImageFormats] =
0, // Format_BGR30,
0, // Format_A2BGR30_Premultiplied,
0, // Format_RGB30,
- 0 // Format_A2RGB30_Premultiplied,
+ 0, // Format_A2RGB30_Premultiplied,
+ 0, // Format_Alpha8
+ 0, // Format_Grayscale8
},
{ // Format_RGB555
0, // Format_Invalid,
@@ -1039,7 +1061,9 @@ SrcOverScaleFunc qScaleFunctions[QImage::NImageFormats][QImage::NImageFormats] =
0, // Format_BGR30,
0, // Format_A2BGR30_Premultiplied,
0, // Format_RGB30,
- 0 // Format_A2RGB30_Premultiplied,
+ 0, // Format_A2RGB30_Premultiplied,
+ 0, // Format_Alpha8
+ 0, // Format_Grayscale8
},
{ // Format_ARGB8555_Premultiplied
0, // Format_Invalid,
@@ -1064,7 +1088,9 @@ SrcOverScaleFunc qScaleFunctions[QImage::NImageFormats][QImage::NImageFormats] =
0, // Format_BGR30,
0, // Format_A2BGR30_Premultiplied,
0, // Format_RGB30,
- 0 // Format_A2RGB30_Premultiplied,
+ 0, // Format_A2RGB30_Premultiplied,
+ 0, // Format_Alpha8
+ 0, // Format_Grayscale8
},
{ // Format_RGB888
0, // Format_Invalid,
@@ -1089,7 +1115,9 @@ SrcOverScaleFunc qScaleFunctions[QImage::NImageFormats][QImage::NImageFormats] =
0, // Format_BGR30,
0, // Format_A2BGR30_Premultiplied,
0, // Format_RGB30,
- 0 // Format_A2RGB30_Premultiplied,
+ 0, // Format_A2RGB30_Premultiplied,
+ 0, // Format_Alpha8
+ 0, // Format_Grayscale8
},
{ // Format_RGB444
0, // Format_Invalid,
@@ -1114,7 +1142,9 @@ SrcOverScaleFunc qScaleFunctions[QImage::NImageFormats][QImage::NImageFormats] =
0, // Format_BGR30,
0, // Format_A2BGR30_Premultiplied,
0, // Format_RGB30,
- 0 // Format_A2RGB30_Premultiplied,
+ 0, // Format_A2RGB30_Premultiplied,
+ 0, // Format_Alpha8
+ 0, // Format_Grayscale8
},
{ // Format_ARGB4444_Premultiplied
0, // Format_Invalid,
@@ -1139,7 +1169,9 @@ SrcOverScaleFunc qScaleFunctions[QImage::NImageFormats][QImage::NImageFormats] =
0, // Format_BGR30,
0, // Format_A2BGR30_Premultiplied,
0, // Format_RGB30,
- 0 // Format_A2RGB30_Premultiplied,
+ 0, // Format_A2RGB30_Premultiplied,
+ 0, // Format_Alpha8
+ 0, // Format_Grayscale8
},
{ // Format_RGBX8888
0, // Format_Invalid,
@@ -1170,7 +1202,9 @@ SrcOverScaleFunc qScaleFunctions[QImage::NImageFormats][QImage::NImageFormats] =
0, // Format_BGR30,
0, // Format_A2BGR30_Premultiplied,
0, // Format_RGB30,
- 0 // Format_A2RGB30_Premultiplied,
+ 0, // Format_A2RGB30_Premultiplied,
+ 0, // Format_Alpha8
+ 0, // Format_Grayscale8
},
{ // Format_RGBA8888
0, // Format_Invalid,
@@ -1195,7 +1229,9 @@ SrcOverScaleFunc qScaleFunctions[QImage::NImageFormats][QImage::NImageFormats] =
0, // Format_BGR30,
0, // Format_A2BGR30_Premultiplied,
0, // Format_RGB30,
- 0 // Format_A2RGB30_Premultiplied,
+ 0, // Format_A2RGB30_Premultiplied,
+ 0, // Format_Alpha8
+ 0, // Format_Grayscale8
},
{ // Format_RGBA8888_Premultiplied
0, // Format_Invalid,
@@ -1226,7 +1262,9 @@ SrcOverScaleFunc qScaleFunctions[QImage::NImageFormats][QImage::NImageFormats] =
0, // Format_BGR30,
0, // Format_A2BGR30_Premultiplied,
0, // Format_RGB30,
- 0 // Format_A2RGB30_Premultiplied,
+ 0, // Format_A2RGB30_Premultiplied,
+ 0, // Format_Alpha8
+ 0, // Format_Grayscale8
},
{ // Format_BGR30
0, // Format_Invalid,
@@ -1251,7 +1289,9 @@ SrcOverScaleFunc qScaleFunctions[QImage::NImageFormats][QImage::NImageFormats] =
0, // Format_BGR30,
0, // Format_A2BGR30_Premultiplied,
0, // Format_RGB30,
- 0 // Format_A2RGB30_Premultiplied,
+ 0, // Format_A2RGB30_Premultiplied,
+ 0, // Format_Alpha8
+ 0, // Format_Grayscale8
},
{ // Format_A2BGR30_Premultiplied
0, // Format_Invalid,
@@ -1276,7 +1316,9 @@ SrcOverScaleFunc qScaleFunctions[QImage::NImageFormats][QImage::NImageFormats] =
0, // Format_BGR30,
0, // Format_A2BGR30_Premultiplied,
0, // Format_RGB30,
- 0 // Format_A2RGB30_Premultiplied,
+ 0, // Format_A2RGB30_Premultiplied,
+ 0, // Format_Alpha8
+ 0, // Format_Grayscale8
},
{ // Format_RGB30
0, // Format_Invalid,
@@ -1301,7 +1343,9 @@ SrcOverScaleFunc qScaleFunctions[QImage::NImageFormats][QImage::NImageFormats] =
0, // Format_BGR30,
0, // Format_A2BGR30_Premultiplied,
0, // Format_RGB30,
- 0 // Format_A2RGB30_Premultiplied,
+ 0, // Format_A2RGB30_Premultiplied,
+ 0, // Format_Alpha8
+ 0, // Format_Grayscale8
},
{ // Format_A2RGB30_Premultiplied
0, // Format_Invalid,
@@ -1326,8 +1370,64 @@ SrcOverScaleFunc qScaleFunctions[QImage::NImageFormats][QImage::NImageFormats] =
0, // Format_BGR30,
0, // Format_A2BGR30_Premultiplied,
0, // Format_RGB30,
- 0 // Format_A2RGB30_Premultiplied,
+ 0, // Format_A2RGB30_Premultiplied,
+ 0, // Format_Alpha8
+ 0, // Format_Grayscale8
+ },
+ { // Format_Alpha8
+ 0, // Format_Invalid,
+ 0, // Format_Mono,
+ 0, // Format_MonoLSB,
+ 0, // Format_Indexed8,
+ 0, // Format_RGB32,
+ 0, // Format_ARGB32,
+ 0, // Format_ARGB32_Premultiplied,
+ 0, // Format_RGB16,
+ 0, // Format_ARGB8565_Premultiplied,
+ 0, // Format_RGB666,
+ 0, // Format_ARGB6666_Premultiplied,
+ 0, // Format_RGB555,
+ 0, // Format_ARGB8555_Premultiplied,
+ 0, // Format_RGB888,
+ 0, // Format_RGB444,
+ 0, // Format_ARGB4444_Premultiplied,
+ 0, // Format_RGBX8888,
+ 0, // Format_RGBA8888,
+ 0, // Format_RGBA8888_Premultiplied,
+ 0, // Format_BGR30,
+ 0, // Format_A2BGR30_Premultiplied,
+ 0, // Format_RGB30,
+ 0, // Format_A2RGB30_Premultiplied,
+ 0, // Format_Alpha8
+ 0, // Format_Grayscale8
},
+ { // Format_Grayscale8
+ 0, // Format_Invalid,
+ 0, // Format_Mono,
+ 0, // Format_MonoLSB,
+ 0, // Format_Indexed8,
+ 0, // Format_RGB32,
+ 0, // Format_ARGB32,
+ 0, // Format_ARGB32_Premultiplied,
+ 0, // Format_RGB16,
+ 0, // Format_ARGB8565_Premultiplied,
+ 0, // Format_RGB666,
+ 0, // Format_ARGB6666_Premultiplied,
+ 0, // Format_RGB555,
+ 0, // Format_ARGB8555_Premultiplied,
+ 0, // Format_RGB888,
+ 0, // Format_RGB444,
+ 0, // Format_ARGB4444_Premultiplied,
+ 0, // Format_RGBX8888,
+ 0, // Format_RGBA8888,
+ 0, // Format_RGBA8888_Premultiplied,
+ 0, // Format_BGR30,
+ 0, // Format_A2BGR30_Premultiplied,
+ 0, // Format_RGB30,
+ 0, // Format_A2RGB30_Premultiplied,
+ 0, // Format_Alpha8
+ 0, // Format_Grayscale8
+ }
};
@@ -1355,7 +1455,9 @@ SrcOverBlendFunc qBlendFunctions[QImage::NImageFormats][QImage::NImageFormats] =
0, // Format_BGR30,
0, // Format_A2BGR30_Premultiplied,
0, // Format_RGB30,
- 0 // Format_A2RGB30_Premultiplied,
+ 0, // Format_A2RGB30_Premultiplied,
+ 0, // Format_Alpha8
+ 0, // Format_Grayscale8
},
{ // Format_Mono
0, // Format_Invalid,
@@ -1380,7 +1482,9 @@ SrcOverBlendFunc qBlendFunctions[QImage::NImageFormats][QImage::NImageFormats] =
0, // Format_BGR30,
0, // Format_A2BGR30_Premultiplied,
0, // Format_RGB30,
- 0 // Format_A2RGB30_Premultiplied,
+ 0, // Format_A2RGB30_Premultiplied,
+ 0, // Format_Alpha8
+ 0, // Format_Grayscale8
},
{ // Format_MonoLSB
0, // Format_Invalid,
@@ -1405,7 +1509,9 @@ SrcOverBlendFunc qBlendFunctions[QImage::NImageFormats][QImage::NImageFormats] =
0, // Format_BGR30,
0, // Format_A2BGR30_Premultiplied,
0, // Format_RGB30,
- 0 // Format_A2RGB30_Premultiplied,
+ 0, // Format_A2RGB30_Premultiplied,
+ 0, // Format_Alpha8
+ 0, // Format_Grayscale8
},
{ // Format_Indexed8
0, // Format_Invalid,
@@ -1430,7 +1536,9 @@ SrcOverBlendFunc qBlendFunctions[QImage::NImageFormats][QImage::NImageFormats] =
0, // Format_BGR30,
0, // Format_A2BGR30_Premultiplied,
0, // Format_RGB30,
- 0 // Format_A2RGB30_Premultiplied,
+ 0, // Format_A2RGB30_Premultiplied,
+ 0, // Format_Alpha8
+ 0, // Format_Grayscale8
},
{ // Format_RGB32
0, // Format_Invalid,
@@ -1455,7 +1563,9 @@ SrcOverBlendFunc qBlendFunctions[QImage::NImageFormats][QImage::NImageFormats] =
0, // Format_BGR30,
0, // Format_A2BGR30_Premultiplied,
0, // Format_RGB30,
- 0 // Format_A2RGB30_Premultiplied,
+ 0, // Format_A2RGB30_Premultiplied,
+ 0, // Format_Alpha8
+ 0, // Format_Grayscale8
},
{ // Format_ARGB32
0, // Format_Invalid,
@@ -1480,7 +1590,9 @@ SrcOverBlendFunc qBlendFunctions[QImage::NImageFormats][QImage::NImageFormats] =
0, // Format_BGR30,
0, // Format_A2BGR30_Premultiplied,
0, // Format_RGB30,
- 0 // Format_A2RGB30_Premultiplied,
+ 0, // Format_A2RGB30_Premultiplied,
+ 0, // Format_Alpha8
+ 0, // Format_Grayscale8
},
{ // Format_ARGB32_Premultiplied
0, // Format_Invalid,
@@ -1505,7 +1617,9 @@ SrcOverBlendFunc qBlendFunctions[QImage::NImageFormats][QImage::NImageFormats] =
0, // Format_BGR30,
0, // Format_A2BGR30_Premultiplied,
0, // Format_RGB30,
- 0 // Format_A2RGB30_Premultiplied,
+ 0, // Format_A2RGB30_Premultiplied,
+ 0, // Format_Alpha8
+ 0, // Format_Grayscale8
},
{ // Format_RGB16
0, // Format_Invalid,
@@ -1530,7 +1644,9 @@ SrcOverBlendFunc qBlendFunctions[QImage::NImageFormats][QImage::NImageFormats] =
0, // Format_BGR30,
0, // Format_A2BGR30_Premultiplied,
0, // Format_RGB30,
- 0 // Format_A2RGB30_Premultiplied,
+ 0, // Format_A2RGB30_Premultiplied,
+ 0, // Format_Alpha8
+ 0, // Format_Grayscale8
},
{ // Format_ARGB8565_Premultiplied
0, // Format_Invalid,
@@ -1555,7 +1671,9 @@ SrcOverBlendFunc qBlendFunctions[QImage::NImageFormats][QImage::NImageFormats] =
0, // Format_BGR30,
0, // Format_A2BGR30_Premultiplied,
0, // Format_RGB30,
- 0 // Format_A2RGB30_Premultiplied,
+ 0, // Format_A2RGB30_Premultiplied,
+ 0, // Format_Alpha8
+ 0, // Format_Grayscale8
},
{ // Format_RGB666
0, // Format_Invalid,
@@ -1580,7 +1698,9 @@ SrcOverBlendFunc qBlendFunctions[QImage::NImageFormats][QImage::NImageFormats] =
0, // Format_BGR30,
0, // Format_A2BGR30_Premultiplied,
0, // Format_RGB30,
- 0 // Format_A2RGB30_Premultiplied,
+ 0, // Format_A2RGB30_Premultiplied,
+ 0, // Format_Alpha8
+ 0, // Format_Grayscale8
},
{ // Format_ARGB6666_Premultiplied
0, // Format_Invalid,
@@ -1605,7 +1725,9 @@ SrcOverBlendFunc qBlendFunctions[QImage::NImageFormats][QImage::NImageFormats] =
0, // Format_BGR30,
0, // Format_A2BGR30_Premultiplied,
0, // Format_RGB30,
- 0 // Format_A2RGB30_Premultiplied,
+ 0, // Format_A2RGB30_Premultiplied,
+ 0, // Format_Alpha8
+ 0, // Format_Grayscale8
},
{ // Format_RGB555
0, // Format_Invalid,
@@ -1630,7 +1752,9 @@ SrcOverBlendFunc qBlendFunctions[QImage::NImageFormats][QImage::NImageFormats] =
0, // Format_BGR30,
0, // Format_A2BGR30_Premultiplied,
0, // Format_RGB30,
- 0 // Format_A2RGB30_Premultiplied,
+ 0, // Format_A2RGB30_Premultiplied,
+ 0, // Format_Alpha8
+ 0, // Format_Grayscale8
},
{ // Format_ARGB8555_Premultiplied
0, // Format_Invalid,
@@ -1655,7 +1779,9 @@ SrcOverBlendFunc qBlendFunctions[QImage::NImageFormats][QImage::NImageFormats] =
0, // Format_BGR30,
0, // Format_A2BGR30_Premultiplied,
0, // Format_RGB30,
- 0 // Format_A2RGB30_Premultiplied,
+ 0, // Format_A2RGB30_Premultiplied,
+ 0, // Format_Alpha8
+ 0, // Format_Grayscale8
},
{ // Format_RGB888
0, // Format_Invalid,
@@ -1680,7 +1806,9 @@ SrcOverBlendFunc qBlendFunctions[QImage::NImageFormats][QImage::NImageFormats] =
0, // Format_BGR30,
0, // Format_A2BGR30_Premultiplied,
0, // Format_RGB30,
- 0 // Format_A2RGB30_Premultiplied,
+ 0, // Format_A2RGB30_Premultiplied,
+ 0, // Format_Alpha8
+ 0, // Format_Grayscale8
},
{ // Format_RGB444
0, // Format_Invalid,
@@ -1705,7 +1833,9 @@ SrcOverBlendFunc qBlendFunctions[QImage::NImageFormats][QImage::NImageFormats] =
0, // Format_BGR30,
0, // Format_A2BGR30_Premultiplied,
0, // Format_RGB30,
- 0 // Format_A2RGB30_Premultiplied,
+ 0, // Format_A2RGB30_Premultiplied,
+ 0, // Format_Alpha8
+ 0, // Format_Grayscale8
},
{ // Format_ARGB4444_Premultiplied
0, // Format_Invalid,
@@ -1730,7 +1860,9 @@ SrcOverBlendFunc qBlendFunctions[QImage::NImageFormats][QImage::NImageFormats] =
0, // Format_BGR30,
0, // Format_A2BGR30_Premultiplied,
0, // Format_RGB30,
- 0 // Format_A2RGB30_Premultiplied,
+ 0, // Format_A2RGB30_Premultiplied,
+ 0, // Format_Alpha8
+ 0, // Format_Grayscale8
},
{ // Format_RGBX8888
0, // Format_Invalid,
@@ -1761,7 +1893,9 @@ SrcOverBlendFunc qBlendFunctions[QImage::NImageFormats][QImage::NImageFormats] =
0, // Format_BGR30,
0, // Format_A2BGR30_Premultiplied,
0, // Format_RGB30,
- 0 // Format_A2RGB30_Premultiplied,
+ 0, // Format_A2RGB30_Premultiplied,
+ 0, // Format_Alpha8
+ 0, // Format_Grayscale8
},
{ // Format_RGBA8888
0, // Format_Invalid,
@@ -1786,7 +1920,9 @@ SrcOverBlendFunc qBlendFunctions[QImage::NImageFormats][QImage::NImageFormats] =
0, // Format_BGR30,
0, // Format_A2BGR30_Premultiplied,
0, // Format_RGB30,
- 0 // Format_A2RGB30_Premultiplied,
+ 0, // Format_A2RGB30_Premultiplied,
+ 0, // Format_Alpha8
+ 0, // Format_Grayscale8
},
{ // Format_RGBA8888_Premultiplied
0, // Format_Invalid,
@@ -1818,6 +1954,8 @@ SrcOverBlendFunc qBlendFunctions[QImage::NImageFormats][QImage::NImageFormats] =
0, // Format_A2BGR30_Premultiplied,
0, // Format_RGB30,
0, // Format_A2RGB30_Premultiplied,
+ 0, // Format_Alpha8
+ 0, // Format_Grayscale8
},
{ // Format_BGR30
0, // Format_Invalid,
@@ -1843,6 +1981,7 @@ SrcOverBlendFunc qBlendFunctions[QImage::NImageFormats][QImage::NImageFormats] =
qt_blend_a2rgb30pm_on_a2rgb30pm, // Format_A2RGB30_Premultiplied,
qt_blend_a2bgr30pm_on_a2rgb30pm, // Format_RGB30,
qt_blend_a2bgr30pm_on_a2rgb30pm, // Format_A2RGB30_Premultiplied,
+ 0, 0,
},
{ // Format_A2BGR30_Premultiplied
0, // Format_Invalid,
@@ -1868,6 +2007,7 @@ SrcOverBlendFunc qBlendFunctions[QImage::NImageFormats][QImage::NImageFormats] =
qt_blend_a2rgb30pm_on_a2rgb30pm, // Format_A2BGR30_Premultiplied,
qt_blend_a2bgr30pm_on_a2rgb30pm, // Format_RGB30,
qt_blend_a2bgr30pm_on_a2rgb30pm, // Format_A2RGB30_Premultiplied,
+ 0, 0,
},
{ // Format_RGB30
0, // Format_Invalid,
@@ -1893,6 +2033,7 @@ SrcOverBlendFunc qBlendFunctions[QImage::NImageFormats][QImage::NImageFormats] =
qt_blend_a2bgr30pm_on_a2rgb30pm, // Format_A2BGR30_Premultiplied,
qt_blend_rgb30_on_rgb30, // Format_RGB30,
qt_blend_a2rgb30pm_on_a2rgb30pm, // Format_A2RGB30_Premultiplied,
+ 0, 0,
},
{ // Format_A2RGB30_Premultiplied
0, // Format_Invalid,
@@ -1917,8 +2058,63 @@ SrcOverBlendFunc qBlendFunctions[QImage::NImageFormats][QImage::NImageFormats] =
qt_blend_a2bgr30pm_on_a2rgb30pm, // Format_BGR30,
qt_blend_a2bgr30pm_on_a2rgb30pm, // Format_A2BGR30_Premultiplied,
qt_blend_rgb30_on_rgb30, // Format_RGB30,
- qt_blend_a2rgb30pm_on_a2rgb30pm // Format_A2RGB30_Premultiplied,
+ qt_blend_a2rgb30pm_on_a2rgb30pm, // Format_A2RGB30_Premultiplied,
+ 0, 0,
+ },
+ { // Format_Alpha8
+ 0, // Format_Invalid,
+ 0, // Format_Mono,
+ 0, // Format_MonoLSB,
+ 0, // Format_Indexed8,
+ 0, // Format_RGB32,
+ 0, // Format_ARGB32,
+ 0, // Format_ARGB32_Premultiplied,
+ 0, // Format_RGB16,
+ 0, // Format_ARGB8565_Premultiplied,
+ 0, // Format_RGB666,
+ 0, // Format_ARGB6666_Premultiplied,
+ 0, // Format_RGB555,
+ 0, // Format_ARGB8555_Premultiplied,
+ 0, // Format_RGB888,
+ 0, // Format_RGB444,
+ 0, // Format_ARGB4444_Premultiplied,
+ 0, // Format_RGBX8888,
+ 0, // Format_RGBA8888,
+ 0, // Format_RGBA8888_Premultiplied,
+ 0, // Format_BGR30,
+ 0, // Format_A2BGR30_Premultiplied,
+ 0, // Format_RGB30,
+ 0, // Format_A2RGB30_Premultiplied,
+ 0, // Format_Alpha8
+ 0, // Format_Grayscale8
},
+ { // Format_Grayscale8
+ 0, // Format_Invalid,
+ 0, // Format_Mono,
+ 0, // Format_MonoLSB,
+ 0, // Format_Indexed8,
+ 0, // Format_RGB32,
+ 0, // Format_ARGB32,
+ 0, // Format_ARGB32_Premultiplied,
+ 0, // Format_RGB16,
+ 0, // Format_ARGB8565_Premultiplied,
+ 0, // Format_RGB666,
+ 0, // Format_ARGB6666_Premultiplied,
+ 0, // Format_RGB555,
+ 0, // Format_ARGB8555_Premultiplied,
+ 0, // Format_RGB888,
+ 0, // Format_RGB444,
+ 0, // Format_ARGB4444_Premultiplied,
+ 0, // Format_RGBX8888,
+ 0, // Format_RGBA8888,
+ 0, // Format_RGBA8888_Premultiplied,
+ 0, // Format_BGR30,
+ 0, // Format_A2BGR30_Premultiplied,
+ 0, // Format_RGB30,
+ 0, // Format_A2RGB30_Premultiplied,
+ 0, // Format_Alpha8
+ 0, // Format_Grayscale8
+ }
};
SrcOverTransformFunc qTransformFunctions[QImage::NImageFormats][QImage::NImageFormats] = {
@@ -1945,7 +2141,9 @@ SrcOverTransformFunc qTransformFunctions[QImage::NImageFormats][QImage::NImageFo
0, // Format_BGR30,
0, // Format_A2BGR30_Premultiplied,
0, // Format_RGB30,
- 0 // Format_A2RGB30_Premultiplied,
+ 0, // Format_A2RGB30_Premultiplied,
+ 0, // Format_Alpha8
+ 0, // Format_Grayscale8
},
{ // Format_Mono
0, // Format_Invalid,
@@ -1970,7 +2168,9 @@ SrcOverTransformFunc qTransformFunctions[QImage::NImageFormats][QImage::NImageFo
0, // Format_BGR30,
0, // Format_A2BGR30_Premultiplied,
0, // Format_RGB30,
- 0 // Format_A2RGB30_Premultiplied,
+ 0, // Format_A2RGB30_Premultiplied,
+ 0, // Format_Alpha8
+ 0, // Format_Grayscale8
},
{ // Format_MonoLSB
0, // Format_Invalid,
@@ -1995,7 +2195,9 @@ SrcOverTransformFunc qTransformFunctions[QImage::NImageFormats][QImage::NImageFo
0, // Format_BGR30,
0, // Format_A2BGR30_Premultiplied,
0, // Format_RGB30,
- 0 // Format_A2RGB30_Premultiplied,
+ 0, // Format_A2RGB30_Premultiplied,
+ 0, // Format_Alpha8
+ 0, // Format_Grayscale8
},
{ // Format_Indexed8
0, // Format_Invalid,
@@ -2020,7 +2222,9 @@ SrcOverTransformFunc qTransformFunctions[QImage::NImageFormats][QImage::NImageFo
0, // Format_BGR30,
0, // Format_A2BGR30_Premultiplied,
0, // Format_RGB30,
- 0 // Format_A2RGB30_Premultiplied,
+ 0, // Format_A2RGB30_Premultiplied,
+ 0, // Format_Alpha8
+ 0, // Format_Grayscale8
},
{ // Format_RGB32
0, // Format_Invalid,
@@ -2045,7 +2249,9 @@ SrcOverTransformFunc qTransformFunctions[QImage::NImageFormats][QImage::NImageFo
0, // Format_BGR30,
0, // Format_A2BGR30_Premultiplied,
0, // Format_RGB30,
- 0 // Format_A2RGB30_Premultiplied,
+ 0, // Format_A2RGB30_Premultiplied,
+ 0, // Format_Alpha8
+ 0, // Format_Grayscale8
},
{ // Format_ARGB32
0, // Format_Invalid,
@@ -2070,7 +2276,9 @@ SrcOverTransformFunc qTransformFunctions[QImage::NImageFormats][QImage::NImageFo
0, // Format_BGR30,
0, // Format_A2BGR30_Premultiplied,
0, // Format_RGB30,
- 0 // Format_A2RGB30_Premultiplied,
+ 0, // Format_A2RGB30_Premultiplied,
+ 0, // Format_Alpha8
+ 0, // Format_Grayscale8
},
{ // Format_ARGB32_Premultiplied
0, // Format_Invalid,
@@ -2095,7 +2303,9 @@ SrcOverTransformFunc qTransformFunctions[QImage::NImageFormats][QImage::NImageFo
0, // Format_BGR30,
0, // Format_A2BGR30_Premultiplied,
0, // Format_RGB30,
- 0 // Format_A2RGB30_Premultiplied,
+ 0, // Format_A2RGB30_Premultiplied,
+ 0, // Format_Alpha8
+ 0, // Format_Grayscale8
},
{ // Format_RGB16
0, // Format_Invalid,
@@ -2120,7 +2330,9 @@ SrcOverTransformFunc qTransformFunctions[QImage::NImageFormats][QImage::NImageFo
0, // Format_BGR30,
0, // Format_A2BGR30_Premultiplied,
0, // Format_RGB30,
- 0 // Format_A2RGB30_Premultiplied,
+ 0, // Format_A2RGB30_Premultiplied,
+ 0, // Format_Alpha8
+ 0, // Format_Grayscale8
},
{ // Format_ARGB8565_Premultiplied
0, // Format_Invalid,
@@ -2145,7 +2357,9 @@ SrcOverTransformFunc qTransformFunctions[QImage::NImageFormats][QImage::NImageFo
0, // Format_BGR30,
0, // Format_A2BGR30_Premultiplied,
0, // Format_RGB30,
- 0 // Format_A2RGB30_Premultiplied,
+ 0, // Format_A2RGB30_Premultiplied,
+ 0, // Format_Alpha8
+ 0, // Format_Grayscale8
},
{ // Format_RGB666
0, // Format_Invalid,
@@ -2170,7 +2384,9 @@ SrcOverTransformFunc qTransformFunctions[QImage::NImageFormats][QImage::NImageFo
0, // Format_BGR30,
0, // Format_A2BGR30_Premultiplied,
0, // Format_RGB30,
- 0 // Format_A2RGB30_Premultiplied,
+ 0, // Format_A2RGB30_Premultiplied,
+ 0, // Format_Alpha8
+ 0, // Format_Grayscale8
},
{ // Format_ARGB6666_Premultiplied
0, // Format_Invalid,
@@ -2195,7 +2411,9 @@ SrcOverTransformFunc qTransformFunctions[QImage::NImageFormats][QImage::NImageFo
0, // Format_BGR30,
0, // Format_A2BGR30_Premultiplied,
0, // Format_RGB30,
- 0 // Format_A2RGB30_Premultiplied,
+ 0, // Format_A2RGB30_Premultiplied,
+ 0, // Format_Alpha8
+ 0, // Format_Grayscale8
},
{ // Format_RGB555
0, // Format_Invalid,
@@ -2220,7 +2438,9 @@ SrcOverTransformFunc qTransformFunctions[QImage::NImageFormats][QImage::NImageFo
0, // Format_BGR30,
0, // Format_A2BGR30_Premultiplied,
0, // Format_RGB30,
- 0 // Format_A2RGB30_Premultiplied,
+ 0, // Format_A2RGB30_Premultiplied,
+ 0, // Format_Alpha8
+ 0, // Format_Grayscale8
},
{ // Format_ARGB8555_Premultiplied
0, // Format_Invalid,
@@ -2245,7 +2465,9 @@ SrcOverTransformFunc qTransformFunctions[QImage::NImageFormats][QImage::NImageFo
0, // Format_BGR30,
0, // Format_A2BGR30_Premultiplied,
0, // Format_RGB30,
- 0 // Format_A2RGB30_Premultiplied,
+ 0, // Format_A2RGB30_Premultiplied,
+ 0, // Format_Alpha8
+ 0, // Format_Grayscale8
},
{ // Format_RGB888
0, // Format_Invalid,
@@ -2270,7 +2492,9 @@ SrcOverTransformFunc qTransformFunctions[QImage::NImageFormats][QImage::NImageFo
0, // Format_BGR30,
0, // Format_A2BGR30_Premultiplied,
0, // Format_RGB30,
- 0 // Format_A2RGB30_Premultiplied,
+ 0, // Format_A2RGB30_Premultiplied,
+ 0, // Format_Alpha8
+ 0, // Format_Grayscale8
},
{ // Format_RGB444
0, // Format_Invalid,
@@ -2295,7 +2519,9 @@ SrcOverTransformFunc qTransformFunctions[QImage::NImageFormats][QImage::NImageFo
0, // Format_BGR30,
0, // Format_A2BGR30_Premultiplied,
0, // Format_RGB30,
- 0 // Format_A2RGB30_Premultiplied,
+ 0, // Format_A2RGB30_Premultiplied,
+ 0, // Format_Alpha8
+ 0, // Format_Grayscale8
},
{ // Format_ARGB4444_Premultiplied
0, // Format_Invalid,
@@ -2320,7 +2546,9 @@ SrcOverTransformFunc qTransformFunctions[QImage::NImageFormats][QImage::NImageFo
0, // Format_BGR30,
0, // Format_A2BGR30_Premultiplied,
0, // Format_RGB30,
- 0 // Format_A2RGB30_Premultiplied,
+ 0, // Format_A2RGB30_Premultiplied,
+ 0, // Format_Alpha8
+ 0, // Format_Grayscale8
},
{ // Format_RGBX8888
0, // Format_Invalid,
@@ -2351,7 +2579,9 @@ SrcOverTransformFunc qTransformFunctions[QImage::NImageFormats][QImage::NImageFo
0, // Format_BGR30,
0, // Format_A2BGR30_Premultiplied,
0, // Format_RGB30,
- 0 // Format_A2RGB30_Premultiplied,
+ 0, // Format_A2RGB30_Premultiplied,
+ 0, // Format_Alpha8
+ 0, // Format_Grayscale8
},
{ // Format_RGBA8888
0, // Format_Invalid,
@@ -2376,7 +2606,9 @@ SrcOverTransformFunc qTransformFunctions[QImage::NImageFormats][QImage::NImageFo
0, // Format_BGR30,
0, // Format_A2BGR30_Premultiplied,
0, // Format_RGB30,
- 0 // Format_A2RGB30_Premultiplied,
+ 0, // Format_A2RGB30_Premultiplied,
+ 0, // Format_Alpha8
+ 0, // Format_Grayscale8
},
{ // Format_RGBA8888_Premultiplied
0, // Format_Invalid,
@@ -2407,7 +2639,9 @@ SrcOverTransformFunc qTransformFunctions[QImage::NImageFormats][QImage::NImageFo
0, // Format_BGR30,
0, // Format_A2BGR30_Premultiplied,
0, // Format_RGB30,
- 0 // Format_A2RGB30_Premultiplied,
+ 0, // Format_A2RGB30_Premultiplied,
+ 0, // Format_Alpha8
+ 0, // Format_Grayscale8
},
{ // Format_BGR30
0, // Format_Invalid,
@@ -2432,7 +2666,9 @@ SrcOverTransformFunc qTransformFunctions[QImage::NImageFormats][QImage::NImageFo
0, // Format_BGR30,
0, // Format_A2BGR30_Premultiplied,
0, // Format_RGB30,
- 0 // Format_A2RGB30_Premultiplied,
+ 0, // Format_A2RGB30_Premultiplied,
+ 0, // Format_Alpha8
+ 0, // Format_Grayscale8
},
{ // Format_A2BGR30_Premultiplied
0, // Format_Invalid,
@@ -2457,7 +2693,9 @@ SrcOverTransformFunc qTransformFunctions[QImage::NImageFormats][QImage::NImageFo
0, // Format_BGR30,
0, // Format_A2BGR30_Premultiplied,
0, // Format_RGB30,
- 0 // Format_A2RGB30_Premultiplied,
+ 0, // Format_A2RGB30_Premultiplied,
+ 0, // Format_Alpha8
+ 0, // Format_Grayscale8
},
{ // Format_RGB30
0, // Format_Invalid,
@@ -2482,7 +2720,9 @@ SrcOverTransformFunc qTransformFunctions[QImage::NImageFormats][QImage::NImageFo
0, // Format_BGR30,
0, // Format_A2BGR30_Premultiplied,
0, // Format_RGB30,
- 0 // Format_A2RGB30_Premultiplied,
+ 0, // Format_A2RGB30_Premultiplied,
+ 0, // Format_Alpha8
+ 0, // Format_Grayscale8
},
{ // Format_A2RGB30_Premultiplied
0, // Format_Invalid,
@@ -2507,7 +2747,63 @@ SrcOverTransformFunc qTransformFunctions[QImage::NImageFormats][QImage::NImageFo
0, // Format_BGR30,
0, // Format_A2BGR30_Premultiplied,
0, // Format_RGB30,
- 0 // Format_A2RGB30_Premultiplied,
+ 0, // Format_A2RGB30_Premultiplied,
+ 0, // Format_Alpha8
+ 0, // Format_Grayscale8
+ },
+ { // Format_Alpha8
+ 0, // Format_Invalid,
+ 0, // Format_Mono,
+ 0, // Format_MonoLSB,
+ 0, // Format_Indexed8,
+ 0, // Format_RGB32,
+ 0, // Format_ARGB32,
+ 0, // Format_ARGB32_Premultiplied,
+ 0, // Format_RGB16,
+ 0, // Format_ARGB8565_Premultiplied,
+ 0, // Format_RGB666,
+ 0, // Format_ARGB6666_Premultiplied,
+ 0, // Format_RGB555,
+ 0, // Format_ARGB8555_Premultiplied,
+ 0, // Format_RGB888,
+ 0, // Format_RGB444,
+ 0, // Format_ARGB4444_Premultiplied,
+ 0, // Format_RGBX8888,
+ 0, // Format_RGBA8888,
+ 0, // Format_RGBA8888_Premultiplied,
+ 0, // Format_BGR30,
+ 0, // Format_A2BGR30_Premultiplied,
+ 0, // Format_RGB30,
+ 0, // Format_A2RGB30_Premultiplied,
+ 0, // Format_Alpha8
+ 0, // Format_Grayscale8
+ },
+ { // Format_Grayscale8
+ 0, // Format_Invalid,
+ 0, // Format_Mono,
+ 0, // Format_MonoLSB,
+ 0, // Format_Indexed8,
+ 0, // Format_RGB32,
+ 0, // Format_ARGB32,
+ 0, // Format_ARGB32_Premultiplied,
+ 0, // Format_RGB16,
+ 0, // Format_ARGB8565_Premultiplied,
+ 0, // Format_RGB666,
+ 0, // Format_ARGB6666_Premultiplied,
+ 0, // Format_RGB555,
+ 0, // Format_ARGB8555_Premultiplied,
+ 0, // Format_RGB888,
+ 0, // Format_RGB444,
+ 0, // Format_ARGB4444_Premultiplied,
+ 0, // Format_RGBX8888,
+ 0, // Format_RGBA8888,
+ 0, // Format_RGBA8888_Premultiplied,
+ 0, // Format_BGR30,
+ 0, // Format_A2BGR30_Premultiplied,
+ 0, // Format_RGB30,
+ 0, // Format_A2RGB30_Premultiplied,
+ 0, // Format_Alpha8
+ 0, // Format_Grayscale8
},
};
diff --git a/src/gui/painting/qbrush.h b/src/gui/painting/qbrush.h
index ff652fe288..3dc2230afc 100644
--- a/src/gui/painting/qbrush.h
+++ b/src/gui/painting/qbrush.h
@@ -235,7 +235,7 @@ private:
qreal cx, cy, angle;
} conical;
} m_data;
- void *dummy;
+ void *dummy; // ### Qt 6: replace with actual content (CoordinateMode, InterpolationMode, ...)
};
inline void QGradient::setSpread(Spread aspread)
diff --git a/src/gui/painting/qcolor.h b/src/gui/painting/qcolor.h
index b68504c865..926d05707e 100644
--- a/src/gui/painting/qcolor.h
+++ b/src/gui/painting/qcolor.h
@@ -65,7 +65,7 @@ public:
QColor(QRgb rgb);
QColor(const QString& name);
QColor(const char *name);
- QColor(const QColor &color);
+ QColor(const QColor &color); // ### Qt 6: remove, the trivial one is fine.
QColor(Spec spec);
bool isValid() const;
diff --git a/src/gui/painting/qdrawhelper.cpp b/src/gui/painting/qdrawhelper.cpp
index 9c1b2e707d..bd53952d1b 100644
--- a/src/gui/painting/qdrawhelper.cpp
+++ b/src/gui/painting/qdrawhelper.cpp
@@ -527,6 +527,22 @@ static const uint *QT_FASTCALL convertRGBA8888ToARGB32PM(uint *buffer, const uin
return buffer;
}
+static const uint *QT_FASTCALL convertAlpha8ToRGB32(uint *buffer, const uint *src, int count,
+ const QPixelLayout *, const QRgb *)
+{
+ for (int i = 0; i < count; ++i)
+ buffer[i] = qRgba(0, 0, 0, src[i]);
+ return buffer;
+}
+
+static const uint *QT_FASTCALL convertGrayscale8ToRGB32(uint *buffer, const uint *src, int count,
+ const QPixelLayout *, const QRgb *)
+{
+ for (int i = 0; i < count; ++i)
+ buffer[i] = qRgb(src[i], src[i], src[i]);
+ return buffer;
+}
+
static const uint *QT_FASTCALL convertARGB32FromARGB32PM(uint *buffer, const uint *src, int count,
const QPixelLayout *, const QRgb *)
{
@@ -603,6 +619,30 @@ static const uint *QT_FASTCALL convertRGB30FromARGB32PM(uint *buffer, const uint
return buffer;
}
+static const uint *QT_FASTCALL convertAlpha8FromARGB32PM(uint *buffer, const uint *src, int count,
+ const QPixelLayout *, const QRgb *)
+{
+ for (int i = 0; i < count; ++i)
+ buffer[i] = qAlpha(src[i]);
+ return buffer;
+}
+
+static const uint *QT_FASTCALL convertGrayscale8FromRGB32(uint *buffer, const uint *src, int count,
+ const QPixelLayout *, const QRgb *)
+{
+ for (int i = 0; i < count; ++i)
+ buffer[i] = qGray(src[i]);
+ return buffer;
+}
+
+static const uint *QT_FASTCALL convertGrayscale8FromARGB32PM(uint *buffer, const uint *src, int count,
+ const QPixelLayout *, const QRgb *)
+{
+ for (int i = 0; i < count; ++i)
+ buffer[i] = qGray(qUnpremultiply(src[i]));
+ return buffer;
+}
+
template <QPixelLayout::BPP bpp> static
uint QT_FASTCALL fetchPixel(const uchar *src, int index);
@@ -756,6 +796,8 @@ QPixelLayout qPixelLayouts[QImage::NImageFormats] = {
{ 10, 20, 10, 10, 10, 0, 2, 30, true, QPixelLayout::BPP32, convertA2RGB30PMToARGB32PM<PixelOrderBGR>, convertA2RGB30PMFromARGB32PM<PixelOrderBGR>, 0 }, // Format_A2BGR30_Premultiplied
{ 10, 0, 10, 10, 10, 20, 0, 30, false, QPixelLayout::BPP32, convertA2RGB30PMToARGB32PM<PixelOrderRGB>, convertRGB30FromARGB32PM<PixelOrderRGB>, convertRGB30FromRGB32<PixelOrderRGB> }, // Format_RGB30
{ 10, 0, 10, 10, 10, 20, 2, 30, true, QPixelLayout::BPP32, convertA2RGB30PMToARGB32PM<PixelOrderRGB>, convertA2RGB30PMFromARGB32PM<PixelOrderRGB>, 0 }, // Format_A2RGB30_Premultiplied
+ { 0, 0, 0, 0, 0, 0, 8, 0, false, QPixelLayout::BPP8, convertAlpha8ToRGB32, convertAlpha8FromARGB32PM, 0 }, // Format_Alpha8
+ { 0, 0, 0, 0, 0, 0, 0, 0, false, QPixelLayout::BPP8, convertGrayscale8ToRGB32, convertGrayscale8FromARGB32PM, convertGrayscale8FromRGB32 } // Format_Grayscale8
};
FetchPixelsFunc qFetchPixels[QPixelLayout::BPPCount] = {
@@ -867,6 +909,8 @@ static DestFetchProc destFetchProc[QImage::NImageFormats] =
destFetch, // Format_A2BGR30_Premultiplied
destFetch, // Format_RGB30
destFetch, // Format_A2RGB30_Premultiplied
+ destFetch, // Format_Alpha8
+ destFetch, // Format_Grayscale8
};
/*
@@ -1011,6 +1055,8 @@ static DestStoreProc destStoreProc[QImage::NImageFormats] =
destStore, // Format_A2BGR30_Premultiplied
destStore, // Format_RGB30
destStore, // Format_A2RGB30_Premultiplied
+ destStore, // Format_Alpha8
+ destStore, // Format_Grayscale8
};
/*
@@ -2266,6 +2312,8 @@ static SourceFetchProc sourceFetch[NBlendTypes][QImage::NImageFormats] = {
fetchUntransformed, // Format_A2BGR30_Premultiplied
fetchUntransformed, // Format_RGB30
fetchUntransformed, // Format_A2RGB30_Premultiplied
+ fetchUntransformed, // Alpha8
+ fetchUntransformed, // Grayscale8
},
// Tiled
{
@@ -2291,7 +2339,9 @@ static SourceFetchProc sourceFetch[NBlendTypes][QImage::NImageFormats] = {
fetchUntransformed, // BGR30
fetchUntransformed, // A2BGR30_Premultiplied
fetchUntransformed, // RGB30
- fetchUntransformed // A2RGB30_Premultiplied
+ fetchUntransformed, // A2RGB30_Premultiplied
+ fetchUntransformed, // Alpha8
+ fetchUntransformed, // Grayscale8
},
// Transformed
{
@@ -2318,6 +2368,8 @@ static SourceFetchProc sourceFetch[NBlendTypes][QImage::NImageFormats] = {
fetchTransformed<BlendTransformed>, // A2BGR30_Premultiplied
fetchTransformed<BlendTransformed>, // RGB30
fetchTransformed<BlendTransformed>, // A2RGB30_Premultiplied
+ fetchTransformed<BlendTransformed>, // Alpah8
+ fetchTransformed<BlendTransformed>, // Grayscale8
},
{
0, // TransformedTiled
@@ -2343,6 +2395,8 @@ static SourceFetchProc sourceFetch[NBlendTypes][QImage::NImageFormats] = {
fetchTransformed<BlendTransformedTiled>, // A2BGR30_Premultiplied
fetchTransformed<BlendTransformedTiled>, // RGB30
fetchTransformed<BlendTransformedTiled>, // A2RGB30_Premultiplied
+ fetchTransformed<BlendTransformedTiled>, // Alpha8
+ fetchTransformed<BlendTransformedTiled>, // Grayscale8
},
{
0, // Bilinear
@@ -2368,6 +2422,8 @@ static SourceFetchProc sourceFetch[NBlendTypes][QImage::NImageFormats] = {
fetchTransformedBilinear<BlendTransformedBilinear>, // A2BGR30_Premultiplied
fetchTransformedBilinear<BlendTransformedBilinear>, // RGB30
fetchTransformedBilinear<BlendTransformedBilinear>, // A2RGB30_Premultiplied
+ fetchTransformedBilinear<BlendTransformedBilinear>, // Alpha8
+ fetchTransformedBilinear<BlendTransformedBilinear>, // Grayscale8
},
{
0, // BilinearTiled
@@ -2392,7 +2448,9 @@ static SourceFetchProc sourceFetch[NBlendTypes][QImage::NImageFormats] = {
fetchTransformedBilinear<BlendTransformedBilinearTiled>, // BGR30
fetchTransformedBilinear<BlendTransformedBilinearTiled>, // A2BGR30_Premultiplied
fetchTransformedBilinear<BlendTransformedBilinearTiled>, // RGB30
- fetchTransformedBilinear<BlendTransformedBilinearTiled> // A2RGB30_Premultiplied
+ fetchTransformedBilinear<BlendTransformedBilinearTiled>, // A2RGB30_Premultiplied
+ fetchTransformedBilinear<BlendTransformedBilinearTiled>, // Alpha8
+ fetchTransformedBilinear<BlendTransformedBilinearTiled>, // Grayscale8
},
};
@@ -5815,6 +5873,8 @@ static const ProcessSpans processTextureSpans[NBlendTypes][QImage::NImageFormats
blend_untransformed_generic,
blend_untransformed_generic,
blend_untransformed_generic,
+ blend_untransformed_generic,
+ blend_untransformed_generic,
},
// Tiled
{
@@ -5841,6 +5901,8 @@ static const ProcessSpans processTextureSpans[NBlendTypes][QImage::NImageFormats
blend_tiled_generic,
blend_tiled_generic,
blend_tiled_generic,
+ blend_tiled_generic,
+ blend_tiled_generic,
},
// Transformed
{
@@ -5867,6 +5929,8 @@ static const ProcessSpans processTextureSpans[NBlendTypes][QImage::NImageFormats
blend_src_generic,
blend_src_generic,
blend_src_generic,
+ blend_src_generic,
+ blend_src_generic,
},
// TransformedTiled
{
@@ -5892,6 +5956,7 @@ static const ProcessSpans processTextureSpans[NBlendTypes][QImage::NImageFormats
blend_src_generic,
blend_src_generic,
blend_src_generic,
+ blend_src_generic,
blend_src_generic
},
// Bilinear
@@ -5919,6 +5984,8 @@ static const ProcessSpans processTextureSpans[NBlendTypes][QImage::NImageFormats
blend_src_generic,
blend_src_generic,
blend_src_generic,
+ blend_src_generic,
+ blend_src_generic,
},
// BilinearTiled
{
@@ -5945,6 +6012,8 @@ static const ProcessSpans processTextureSpans[NBlendTypes][QImage::NImageFormats
blend_src_generic, // A2BGR30_Premultiplied
blend_src_generic, // RGB30
blend_src_generic, // A2RGB30_Premultiplied
+ blend_src_generic, // Alpha8
+ blend_src_generic, // Grayscale8
}
};
@@ -6468,6 +6537,22 @@ static void qt_rectfill_nonpremul_rgba(QRasterBuffer *rasterBuffer,
ARGB2RGBA(qUnpremultiply(color)), x, y, width, height, rasterBuffer->bytesPerLine());
}
+static void qt_rectfill_alpha(QRasterBuffer *rasterBuffer,
+ int x, int y, int width, int height,
+ quint32 color)
+{
+ qt_rectfill<quint8>(reinterpret_cast<quint8 *>(rasterBuffer->buffer()),
+ qAlpha(color), x, y, width, height, rasterBuffer->bytesPerLine());
+}
+
+static void qt_rectfill_gray(QRasterBuffer *rasterBuffer,
+ int x, int y, int width, int height,
+ quint32 color)
+{
+ qt_rectfill<quint8>(reinterpret_cast<quint8 *>(rasterBuffer->buffer()),
+ qGray(color), x, y, width, height, rasterBuffer->bytesPerLine());
+}
+
// Map table for destination image format. Contains function pointers
// for blends of various types unto the destination
@@ -6652,6 +6737,20 @@ DrawHelper qDrawHelper[QImage::NImageFormats] =
0,
0
},
+ // Format_Alpha8
+ {
+ blend_color_generic,
+ blend_src_generic,
+ 0, 0, 0,
+ qt_rectfill_alpha
+ },
+ // Format_Grayscale8
+ {
+ blend_color_generic,
+ blend_src_generic,
+ 0, 0, 0,
+ qt_rectfill_gray
+ },
};
#if defined(Q_CC_MSVC) && !defined(_MIPS_)
diff --git a/src/gui/painting/qdrawhelper_sse2.cpp b/src/gui/painting/qdrawhelper_sse2.cpp
index 77889b3c35..95552afbee 100644
--- a/src/gui/painting/qdrawhelper_sse2.cpp
+++ b/src/gui/painting/qdrawhelper_sse2.cpp
@@ -484,9 +484,7 @@ void qt_bitmapblit16_sse2(QRasterBuffer *rasterBuffer, int x, int y,
const int destStride = rasterBuffer->bytesPerLine() / sizeof(quint16);
const __m128i c128 = _mm_set1_epi16(c);
-#if defined(Q_CC_MSVC)
-# pragma warning(disable: 4309) // truncation of constant value
-#endif
+QT_WARNING_DISABLE_MSVC(4309) // truncation of constant value
const __m128i maskmask = _mm_set_epi16(0x0101, 0x0202, 0x0404, 0x0808,
0x1010, 0x2020, 0x4040, 0x8080);
const __m128i maskadd = _mm_set_epi16(0x7f7f, 0x7e7e, 0x7c7c, 0x7878,
diff --git a/src/gui/painting/qdrawhelper_sse_p.h b/src/gui/painting/qdrawhelper_sse_p.h
index a1f878b5c0..de1a1d86be 100644
--- a/src/gui/painting/qdrawhelper_sse_p.h
+++ b/src/gui/painting/qdrawhelper_sse_p.h
@@ -124,9 +124,7 @@ inline void qt_bitmapblit16_sse_template(QRasterBuffer *rasterBuffer,
const int destStride = rasterBuffer->bytesPerLine() / sizeof(quint16);
const __m64 c64 = _mm_set1_pi16(c);
-#ifdef Q_CC_MSVC
-# pragma warning(disable: 4309) // truncation of constant value
-#endif
+QT_WARNING_DISABLE_MSVC(4309) // truncation of constant value
const __m64 maskmask1 = _mm_set_pi16(0x1010, 0x2020, 0x4040, 0x8080);
const __m64 maskadd1 = _mm_set_pi16(0x7070, 0x6060, 0x4040, 0x0000);
diff --git a/src/gui/painting/qmemrotate.cpp b/src/gui/painting/qmemrotate.cpp
index b55f3b0dcc..442eda14ad 100644
--- a/src/gui/painting/qmemrotate.cpp
+++ b/src/gui/painting/qmemrotate.cpp
@@ -473,6 +473,21 @@ QT_IMPL_MEMROTATE(quint16)
QT_IMPL_MEMROTATE(quint24)
QT_IMPL_MEMROTATE(quint8)
+void qt_memrotate90_8(const uchar *srcPixels, int w, int h, int sbpl, uchar *destPixels, int dbpl)
+{
+ qt_memrotate90(srcPixels, w, h, sbpl, destPixels, dbpl);
+}
+
+void qt_memrotate180_8(const uchar *srcPixels, int w, int h, int sbpl, uchar *destPixels, int dbpl)
+{
+ qt_memrotate180(srcPixels, w, h, sbpl, destPixels, dbpl);
+}
+
+void qt_memrotate270_8(const uchar *srcPixels, int w, int h, int sbpl, uchar *destPixels, int dbpl)
+{
+ qt_memrotate270(srcPixels, w, h, sbpl, destPixels, dbpl);
+}
+
void qt_memrotate90_16(const uchar *srcPixels, int w, int h, int sbpl, uchar *destPixels, int dbpl)
{
qt_memrotate90((const ushort *)srcPixels, w, h, sbpl, (ushort *)destPixels, dbpl);
@@ -529,6 +544,8 @@ MemRotateFunc qMemRotateFunctions[QImage::NImageFormats][3] =
{ qt_memrotate90_32, qt_memrotate180_32, qt_memrotate270_32 }, // Format_A2BGR30_Premultiplied,
{ qt_memrotate90_32, qt_memrotate180_32, qt_memrotate270_32 }, // Format_RGB30,
{ qt_memrotate90_32, qt_memrotate180_32, qt_memrotate270_32 }, // Format_A2RGB30_Premultiplied,
+ { qt_memrotate90_8, qt_memrotate180_8, qt_memrotate270_8 }, // Format_Alpha8,
+ { qt_memrotate90_8, qt_memrotate180_8, qt_memrotate270_8 }, // Format_Grayscale8,
};
QT_END_NAMESPACE
diff --git a/src/gui/painting/qpaintbuffer.cpp b/src/gui/painting/qpaintbuffer.cpp
index be147ec842..56b3e37762 100644
--- a/src/gui/painting/qpaintbuffer.cpp
+++ b/src/gui/painting/qpaintbuffer.cpp
@@ -545,7 +545,7 @@ class QPaintBufferEnginePrivate : public QPaintEngineExPrivate
{
Q_DECLARE_PUBLIC(QPaintBufferEngine)
public:
- void systemStateChanged() {
+ void systemStateChanged() Q_DECL_OVERRIDE {
Q_Q(QPaintBufferEngine);
q->buffer->addCommand(QPaintBufferPrivate::Cmd_SystemStateChanged, QVariant(systemClip));
}
@@ -1327,8 +1327,8 @@ public:
QFakeDevice() { dpi_x = qt_defaultDpiX(); dpi_y = qt_defaultDpiY(); }
void setDpiX(int dpi) { dpi_x = dpi; }
void setDpiY(int dpi) { dpi_y = dpi; }
- QPaintEngine *paintEngine() const { return 0; }
- int metric(PaintDeviceMetric m) const
+ QPaintEngine *paintEngine() const Q_DECL_OVERRIDE { return 0; }
+ int metric(PaintDeviceMetric m) const Q_DECL_OVERRIDE
{
switch(m) {
case PdmPhysicalDpiX:
diff --git a/src/gui/painting/qpaintengineex_p.h b/src/gui/painting/qpaintengineex_p.h
index 82fcd9765a..8a273a6b86 100644
--- a/src/gui/painting/qpaintengineex_p.h
+++ b/src/gui/painting/qpaintengineex_p.h
@@ -98,22 +98,22 @@ public:
virtual void drawRoundedRect(const QRectF &rect, qreal xrad, qreal yrad, Qt::SizeMode mode);
- virtual void drawRects(const QRect *rects, int rectCount);
- virtual void drawRects(const QRectF *rects, int rectCount);
+ virtual void drawRects(const QRect *rects, int rectCount) Q_DECL_OVERRIDE;
+ virtual void drawRects(const QRectF *rects, int rectCount) Q_DECL_OVERRIDE;
- virtual void drawLines(const QLine *lines, int lineCount);
- virtual void drawLines(const QLineF *lines, int lineCount);
+ virtual void drawLines(const QLine *lines, int lineCount) Q_DECL_OVERRIDE;
+ virtual void drawLines(const QLineF *lines, int lineCount) Q_DECL_OVERRIDE;
- virtual void drawEllipse(const QRectF &r);
- virtual void drawEllipse(const QRect &r);
+ virtual void drawEllipse(const QRectF &r) Q_DECL_OVERRIDE;
+ virtual void drawEllipse(const QRect &r) Q_DECL_OVERRIDE;
- virtual void drawPath(const QPainterPath &path);
+ virtual void drawPath(const QPainterPath &path) Q_DECL_OVERRIDE;
- virtual void drawPoints(const QPointF *points, int pointCount);
- virtual void drawPoints(const QPoint *points, int pointCount);
+ virtual void drawPoints(const QPointF *points, int pointCount) Q_DECL_OVERRIDE;
+ virtual void drawPoints(const QPoint *points, int pointCount) Q_DECL_OVERRIDE;
- virtual void drawPolygon(const QPointF *points, int pointCount, PolygonDrawMode mode);
- virtual void drawPolygon(const QPoint *points, int pointCount, PolygonDrawMode mode);
+ virtual void drawPolygon(const QPointF *points, int pointCount, PolygonDrawMode mode) Q_DECL_OVERRIDE;
+ virtual void drawPolygon(const QPoint *points, int pointCount, PolygonDrawMode mode) Q_DECL_OVERRIDE;
virtual void drawPixmap(const QRectF &r, const QPixmap &pm, const QRectF &sr) = 0;
virtual void drawPixmap(const QPointF &pos, const QPixmap &pm);
@@ -122,12 +122,12 @@ public:
Qt::ImageConversionFlags flags = Qt::AutoColor) = 0;
virtual void drawImage(const QPointF &pos, const QImage &image);
- virtual void drawTiledPixmap(const QRectF &r, const QPixmap &pixmap, const QPointF &s);
+ virtual void drawTiledPixmap(const QRectF &r, const QPixmap &pixmap, const QPointF &s) Q_DECL_OVERRIDE;
virtual void drawPixmapFragments(const QPainter::PixmapFragment *fragments, int fragmentCount, const QPixmap &pixmap,
QFlags<QPainter::PixmapFragmentHint> hints);
- virtual void updateState(const QPaintEngineState &state);
+ virtual void updateState(const QPaintEngineState &state) Q_DECL_OVERRIDE;
virtual void drawStaticTextItem(QStaticTextItem *);
diff --git a/src/gui/painting/qpainter.cpp b/src/gui/painting/qpainter.cpp
index d40a2b9456..b99a32df27 100644
--- a/src/gui/painting/qpainter.cpp
+++ b/src/gui/painting/qpainter.cpp
@@ -200,11 +200,8 @@ void QPainterPrivate::checkEmulation()
QPainterPrivate::~QPainterPrivate()
{
delete emulationEngine;
- for (int i=0; i<states.size(); ++i)
- delete states.at(i);
-
- if (dummyState)
- delete dummyState;
+ qDeleteAll(states);
+ delete dummyState;
}
@@ -456,7 +453,7 @@ void QPainterPrivate::draw_helper(const QPainterPath &originalPath, DrawOperatio
p.drawPath(originalPath);
#ifndef QT_NO_DEBUG
- static bool do_fallback_overlay = qgetenv("QT_PAINT_FALLBACK_OVERLAY").size() > 0;
+ static bool do_fallback_overlay = !qEnvironmentVariableIsEmpty("QT_PAINT_FALLBACK_OVERLAY");
if (do_fallback_overlay) {
QImage block(8, 8, QImage::Format_ARGB32_Premultiplied);
QPainter pt(&block);
@@ -3432,8 +3429,7 @@ void QPainter::drawPath(const QPainterPath &path)
\fn void QPainter::drawLine(int x1, int y1, int x2, int y2)
\overload
- Draws a line from (\a x1, \a y1) to (\a x2, \a y2) and sets the
- current pen position to (\a x2, \a y2).
+ Draws a line from (\a x1, \a y1) to (\a x2, \a y2).
*/
/*!
@@ -7027,7 +7023,7 @@ void QPainter::setRenderHint(RenderHint hint, bool on)
#endif
#ifndef QT_NO_DEBUG
- static const bool antialiasingDisabled = qgetenv("QT_NO_ANTIALIASING").toInt();
+ static const bool antialiasingDisabled = qEnvironmentVariableIntValue("QT_NO_ANTIALIASING");
if (hint == QPainter::Antialiasing && antialiasingDisabled)
return;
#endif
diff --git a/src/gui/painting/qpdf.cpp b/src/gui/painting/qpdf.cpp
index 473231b142..2efaec41ef 100644
--- a/src/gui/painting/qpdf.cpp
+++ b/src/gui/painting/qpdf.cpp
@@ -2317,6 +2317,14 @@ int QPdfEnginePrivate::addBrushPattern(const QTransform &m, bool *specifyColor,
return patternObj;
}
+static inline bool is_monochrome(const QVector<QRgb> &colorTable)
+{
+ return colorTable.size() == 2
+ && colorTable.at(0) == QColor(Qt::black).rgba()
+ && colorTable.at(1) == QColor(Qt::white).rgba()
+ ;
+}
+
/*!
* Adds an image to the pdf and return the pdf-object id. Returns -1 if adding the image failed.
*/
@@ -2331,10 +2339,7 @@ int QPdfEnginePrivate::addImage(const QImage &img, bool *bitmap, qint64 serial_n
QImage image = img;
QImage::Format format = image.format();
- if (image.depth() == 1 && *bitmap && img.colorTable().size() == 2
- && img.colorTable().at(0) == QColor(Qt::black).rgba()
- && img.colorTable().at(1) == QColor(Qt::white).rgba())
- {
+ if (image.depth() == 1 && *bitmap && is_monochrome(img.colorTable())) {
if (format == QImage::Format_MonoLSB)
image = image.convertToFormat(QImage::Format_Mono);
format = QImage::Format_Mono;
diff --git a/src/gui/painting/qpdf_p.h b/src/gui/painting/qpdf_p.h
index 0fffa608ac..5547a28bcd 100644
--- a/src/gui/painting/qpdf_p.h
+++ b/src/gui/painting/qpdf_p.h
@@ -177,26 +177,26 @@ public:
int resolution() const;
// reimplementations QPaintEngine
- bool begin(QPaintDevice *pdev);
- bool end();
+ bool begin(QPaintDevice *pdev) Q_DECL_OVERRIDE;
+ bool end() Q_DECL_OVERRIDE;
- void drawPoints(const QPointF *points, int pointCount);
- void drawLines(const QLineF *lines, int lineCount);
- void drawRects(const QRectF *rects, int rectCount);
- void drawPolygon(const QPointF *points, int pointCount, PolygonDrawMode mode);
- void drawPath (const QPainterPath & path);
+ void drawPoints(const QPointF *points, int pointCount) Q_DECL_OVERRIDE;
+ void drawLines(const QLineF *lines, int lineCount) Q_DECL_OVERRIDE;
+ void drawRects(const QRectF *rects, int rectCount) Q_DECL_OVERRIDE;
+ void drawPolygon(const QPointF *points, int pointCount, PolygonDrawMode mode) Q_DECL_OVERRIDE;
+ void drawPath (const QPainterPath & path) Q_DECL_OVERRIDE;
- void drawTextItem(const QPointF &p, const QTextItem &textItem);
+ void drawTextItem(const QPointF &p, const QTextItem &textItem) Q_DECL_OVERRIDE;
- void drawPixmap (const QRectF & rectangle, const QPixmap & pixmap, const QRectF & sr);
+ void drawPixmap (const QRectF & rectangle, const QPixmap & pixmap, const QRectF & sr) Q_DECL_OVERRIDE;
void drawImage(const QRectF &r, const QImage &pm, const QRectF &sr,
- Qt::ImageConversionFlags flags = Qt::AutoColor);
- void drawTiledPixmap (const QRectF & rectangle, const QPixmap & pixmap, const QPointF & point);
+ Qt::ImageConversionFlags flags = Qt::AutoColor) Q_DECL_OVERRIDE;
+ void drawTiledPixmap (const QRectF & rectangle, const QPixmap & pixmap, const QPointF & point) Q_DECL_OVERRIDE;
- void updateState(const QPaintEngineState &state);
+ void updateState(const QPaintEngineState &state) Q_DECL_OVERRIDE;
int metric(QPaintDevice::PaintDeviceMetric metricType) const;
- Type type() const;
+ Type type() const Q_DECL_OVERRIDE;
// end reimplementations QPaintEngine
// Printer stuff...
diff --git a/src/gui/painting/qrgb.h b/src/gui/painting/qrgb.h
index 6b0516e557..e6bda490ff 100644
--- a/src/gui/painting/qrgb.h
+++ b/src/gui/painting/qrgb.h
@@ -72,9 +72,11 @@ inline Q_DECL_CONSTEXPR int qGray(QRgb rgb) // convert RGB to gra
inline Q_DECL_CONSTEXPR bool qIsGray(QRgb rgb)
{ return qRed(rgb) == qGreen(rgb) && qRed(rgb) == qBlue(rgb); }
+template <int ProcessorWordSize>
+inline QRgb qPremultiply_impl(QRgb x);
-#if Q_PROCESSOR_WORDSIZE == 8 // 64-bit version
-inline QRgb qPremultiply(QRgb x)
+template <> // 64-bit version
+inline QRgb qPremultiply_impl<8>(QRgb x)
{
const uint a = qAlpha(x);
quint64 t = (((quint64(x)) | ((quint64(x)) << 24)) & 0x00ff00ff00ff00ff) * a;
@@ -82,8 +84,9 @@ inline QRgb qPremultiply(QRgb x)
t &= 0x000000ff00ff00ff;
return (uint(t)) | (uint(t >> 24)) | (a << 24);
}
-#else // 32-bit version
-inline QRgb qPremultiply(QRgb x)
+
+template <> // 32-bit version
+inline QRgb qPremultiply_impl<4>(QRgb x)
{
const uint a = qAlpha(x);
uint t = (x & 0xff00ff) * a;
@@ -96,7 +99,8 @@ inline QRgb qPremultiply(QRgb x)
x |= t | (a << 24);
return x;
}
-#endif
+
+inline QRgb qPremultiply(QRgb x) { return qPremultiply_impl<Q_PROCESSOR_WORDSIZE>(x); }
Q_GUI_EXPORT extern const uint qt_inv_premul_factor[];
diff --git a/src/gui/painting/qtextureglyphcache.cpp b/src/gui/painting/qtextureglyphcache.cpp
index be46a0fba3..38e714bfcc 100644
--- a/src/gui/painting/qtextureglyphcache.cpp
+++ b/src/gui/painting/qtextureglyphcache.cpp
@@ -285,13 +285,7 @@ void QImageTextureGlyphCache::createTextureData(int width, int height)
m_image = QImage(width, height, QImage::Format_Mono);
break;
case QFontEngine::Format_A8: {
- m_image = QImage(width, height, QImage::Format_Indexed8);
- m_image.fill(0);
- QVector<QRgb> colors(256);
- QRgb *it = colors.data();
- for (int i=0; i<256; ++i, ++it)
- *it = 0xff000000 | i | (i<<8) | (i<<16);
- m_image.setColorTable(colors);
+ m_image = QImage(width, height, QImage::Format_Alpha8);
break; }
case QFontEngine::Format_A32:
m_image = QImage(width, height, QImage::Format_RGB32);
diff --git a/src/gui/painting/qtextureglyphcache_p.h b/src/gui/painting/qtextureglyphcache_p.h
index 2d2fcdfc93..efa3b8d902 100644
--- a/src/gui/painting/qtextureglyphcache_p.h
+++ b/src/gui/painting/qtextureglyphcache_p.h
@@ -158,9 +158,9 @@ class Q_GUI_EXPORT QImageTextureGlyphCache : public QTextureGlyphCache
public:
QImageTextureGlyphCache(QFontEngine::GlyphFormat format, const QTransform &matrix)
: QTextureGlyphCache(format, matrix) { }
- virtual void createTextureData(int width, int height);
- virtual void resizeTextureData(int width, int height);
- virtual void fillTexture(const Coord &c, glyph_t glyph, QFixed subPixelPosition);
+ virtual void createTextureData(int width, int height) Q_DECL_OVERRIDE;
+ virtual void resizeTextureData(int width, int height) Q_DECL_OVERRIDE;
+ virtual void fillTexture(const Coord &c, glyph_t glyph, QFixed subPixelPosition) Q_DECL_OVERRIDE;
inline const QImage &image() const { return m_image; }
diff --git a/src/gui/text/qdistancefield.cpp b/src/gui/text/qdistancefield.cpp
index b2d0298e04..10fe1a2c84 100644
--- a/src/gui/text/qdistancefield.cpp
+++ b/src/gui/text/qdistancefield.cpp
@@ -34,6 +34,7 @@
#include "qdistancefield_p.h"
#include <qmath.h>
#include <private/qdatabuffer_p.h>
+#include <private/qimage_p.h>
#include <private/qpathsimplifier_p.h>
QT_BEGIN_NAMESPACE
@@ -987,12 +988,12 @@ QImage QDistanceField::toImage(QImage::Format format) const
if (isNull())
return QImage();
- QImage image(d->width, d->height, format == QImage::Format_Indexed8 ?
+ QImage image(d->width, d->height, qt_depthForFormat(format) == 8 ?
format : QImage::Format_ARGB32_Premultiplied);
if (image.isNull())
return image;
- if (format == QImage::Format_Indexed8) {
+ if (image.depth() == 8) {
for (int y = 0; y < d->height; ++y)
memcpy(image.scanLine(y), scanLine(y), d->width);
} else {
diff --git a/src/gui/text/qfont.cpp b/src/gui/text/qfont.cpp
index b867dc6ef2..249276bb69 100644
--- a/src/gui/text/qfont.cpp
+++ b/src/gui/text/qfont.cpp
@@ -1033,10 +1033,14 @@ int QFont::weight() const
This enum contains the predefined font weights:
+ \value Thin 0
+ \value ExtraLight 12
\value Light 25
\value Normal 50
+ \value Medium 57
\value DemiBold 63
\value Bold 75
+ \value ExtraBold 81
\value Black 87
*/
@@ -1063,7 +1067,7 @@ void QFont::setWeight(int weight)
\fn bool QFont::bold() const
Returns \c true if weight() is a value greater than
- \l{Weight}{QFont::Normal}; otherwise returns \c false.
+ \l{Weight}{QFont::Medium}; otherwise returns \c false.
\sa weight(), setBold(), QFontInfo::bold()
*/
@@ -1877,7 +1881,7 @@ QStringList QFont::substitutions()
return ret;
}
-
+#ifndef QT_NO_DATASTREAM
/* \internal
Internal function. Converts boolean font settings to an unsigned
8-bit number. Used for serialization etc.
@@ -1920,8 +1924,6 @@ static quint8 get_extended_font_bits(const QFontPrivate *f)
return bits;
}
-#ifndef QT_NO_DATASTREAM
-
/* \internal
Internal function. Sets boolean font settings from an unsigned
8-bit number. Used for serialization etc.
diff --git a/src/gui/text/qfont.h b/src/gui/text/qfont.h
index 2a84fa680d..df2815ae73 100644
--- a/src/gui/text/qfont.h
+++ b/src/gui/text/qfont.h
@@ -86,12 +86,17 @@ public:
PreferFullHinting = 3
};
+ // Mapping OpenType weight value.
enum Weight {
- Light = 25,
- Normal = 50,
- DemiBold = 63,
- Bold = 75,
- Black = 87
+ Thin = 0, // 100
+ ExtraLight = 12, // 200
+ Light = 25, // 300
+ Normal = 50, // 400
+ Medium = 57, // 500
+ DemiBold = 63, // 600
+ Bold = 75, // 700
+ ExtraBold = 81, // 800
+ Black = 87 // 900
};
enum Style {
@@ -313,7 +318,7 @@ Q_DECLARE_SHARED(QFont)
Q_GUI_EXPORT uint qHash(const QFont &font, uint seed = 0) Q_DECL_NOTHROW;
inline bool QFont::bold() const
-{ return weight() > Normal; }
+{ return weight() > Medium; }
inline void QFont::setBold(bool enable)
diff --git a/src/gui/text/qfont_p.h b/src/gui/text/qfont_p.h
index 0d5223821a..630c08dfa4 100644
--- a/src/gui/text/qfont_p.h
+++ b/src/gui/text/qfont_p.h
@@ -277,7 +277,7 @@ public:
private:
void increaseCost(uint cost);
void decreaseCost(uint cost);
- void timerEvent(QTimerEvent *event);
+ void timerEvent(QTimerEvent *event) Q_DECL_OVERRIDE;
static const uint min_cost;
uint total_cost, max_cost;
diff --git a/src/gui/text/qfontdatabase.cpp b/src/gui/text/qfontdatabase.cpp
index 99814dba82..16b0b8d76d 100644
--- a/src/gui/text/qfontdatabase.cpp
+++ b/src/gui/text/qfontdatabase.cpp
@@ -50,7 +50,6 @@
#include <QtCore/qmath.h>
#include <stdlib.h>
-#include <limits.h>
#include <algorithm>
@@ -84,60 +83,91 @@ static int getFontWeight(const QString &weightString)
{
QString s = weightString.toLower();
+ // Order here is important. We want to match the common cases first, but we
+ // must also take care to acknowledge the cost of our tests.
+ //
+ // As a result, we test in two orders; the order of commonness, and the
+ // order of "expense".
+ //
+ // A simple string test is the cheapest, so let's do that first.
// Test in decreasing order of commonness
- if (s == QLatin1String("normal")
- || s.compare(QCoreApplication::translate("QFontDatabase", "Normal"), Qt::CaseInsensitive) == 0)
+ if (s == QLatin1String("normal") || s == QLatin1String("regular"))
return QFont::Normal;
- if (s == QLatin1String("medium"))
- return qt_mediumFontWeight;
- if (s == QLatin1String("bold")
- || s.compare(QCoreApplication::translate("QFontDatabase", "Bold"), Qt::CaseInsensitive) == 0)
+ if (s == QLatin1String("bold"))
return QFont::Bold;
- if (s == QLatin1String("demibold") || s == QLatin1String("demi bold")
- || s.compare(QCoreApplication::translate("QFontDatabase", "Demi Bold"), Qt::CaseInsensitive) == 0)
+ if (s == QLatin1String("semibold") || s == QLatin1String("semi bold")
+ || s == QLatin1String("demibold") || s == QLatin1String("demi bold"))
return QFont::DemiBold;
- if (s == QLatin1String("black")
- || s.compare(QCoreApplication::translate("QFontDatabase", "Black"), Qt::CaseInsensitive) == 0)
+ if (s == QLatin1String("medium"))
+ return QFont::Medium;
+ if (s == QLatin1String("black"))
return QFont::Black;
if (s == QLatin1String("light"))
return QFont::Light;
if (s == QLatin1String("thin"))
- return qt_thinFontWeight;
- if (s == QLatin1String("extralight"))
- return qt_extralightFontWeight;
-
- if (s.contains(QLatin1String("bold"))
- || s.contains(QCoreApplication::translate("QFontDatabase", "Bold"), Qt::CaseInsensitive)) {
- if (s.contains(QLatin1String("demi"))
- || s.compare(QCoreApplication::translate("QFontDatabase", "Demi"), Qt::CaseInsensitive) == 0)
- return (int) QFont::DemiBold;
- return (int) QFont::Bold;
+ return QFont::Thin;
+ const QStringRef s2 = s.midRef(2);
+ if (s.startsWith(QLatin1String("ex")) || s.startsWith(QLatin1String("ul"))) {
+ if (s2 == QLatin1String("tralight") || s == QLatin1String("tra light"))
+ return QFont::ExtraLight;
+ if (s2 == QLatin1String("trabold") || s2 == QLatin1String("tra bold"))
+ return QFont::ExtraBold;
}
- if (s.contains(QLatin1String("light"))
- || s.compare(QCoreApplication::translate("QFontDatabase", "Light"), Qt::CaseInsensitive) == 0)
- return (int) QFont::Light;
-
- if (s.contains(QLatin1String("black"))
- || s.compare(QCoreApplication::translate("QFontDatabase", "Black"), Qt::CaseInsensitive) == 0)
- return (int) QFont::Black;
-
- return (int) QFont::Normal;
-}
-
-// convert 0 ~ 1000 integer to QFont::Weight
-QFont::Weight weightFromInteger(int weight)
-{
- if (weight < 400)
+ // Next up, let's see if contains() matches: slightly more expensive, but
+ // still fast enough.
+ if (s.contains(QLatin1String("bold"))) {
+ if (s.contains(QLatin1String("demi")))
+ return QFont::DemiBold;
+ return QFont::Bold;
+ }
+ if (s.contains(QLatin1String("light")))
return QFont::Light;
- else if (weight < 600)
+ if (s.contains(QLatin1String("black")))
+ return QFont::Black;
+
+ // Now, we perform string translations & comparisons with those.
+ // These are (very) slow compared to simple string ops, so we do these last.
+ // As using translated values for such things is not very common, this should
+ // not be too bad.
+ if (s.compare(QCoreApplication::translate("QFontDatabase", "Normal", "The Normal or Regular font weight"), Qt::CaseInsensitive) == 0)
return QFont::Normal;
- else if (weight < 700)
- return QFont::DemiBold;
- else if (weight < 800)
+ const QString translatedBold = QCoreApplication::translate("QFontDatabase", "Bold").toLower();
+ if (s == translatedBold)
return QFont::Bold;
- else
+ if (s.compare(QCoreApplication::translate("QFontDatabase", "Demi Bold"), Qt::CaseInsensitive) == 0)
+ return QFont::DemiBold;
+ if (s.compare(QCoreApplication::translate("QFontDatabase", "Medium", "The Medium font weight"), Qt::CaseInsensitive) == 0)
+ return QFont::Medium;
+ if (s.compare(QCoreApplication::translate("QFontDatabase", "Black"), Qt::CaseInsensitive) == 0)
return QFont::Black;
+ const QString translatedLight = QCoreApplication::translate("QFontDatabase", "Light").toLower();
+ if (s == translatedLight)
+ return QFont::Light;
+ if (s.compare(QCoreApplication::translate("QFontDatabase", "Thin"), Qt::CaseInsensitive) == 0)
+ return QFont::Thin;
+ if (s.compare(QCoreApplication::translate("QFontDatabase", "Extra Light"), Qt::CaseInsensitive) == 0)
+ return QFont::ExtraLight;
+ if (s.compare(QCoreApplication::translate("QFontDatabase", "Extra Bold"), Qt::CaseInsensitive) == 0)
+ return QFont::ExtraBold;
+
+ // And now the contains() checks for the translated strings.
+ const QString translatedExtra = QCoreApplication::translate("QFontDatabase", "Extra").toLower();
+ if (s.contains(translatedBold)) {
+ QString translatedDemi = QCoreApplication::translate("QFontDatabase", "Demi").toLower();
+ if (s .contains(translatedDemi))
+ return QFont::DemiBold;
+ if (s.contains(translatedExtra))
+ return QFont::ExtraBold;
+ return QFont::Bold;
+ }
+
+ if (s.contains(translatedLight)) {
+ if (s.contains(translatedExtra))
+ return QFont::ExtraLight;
+ return QFont::Light;
+ }
+ return QFont::Normal;
}
struct QtFontEncoding
@@ -428,8 +458,6 @@ public:
bool isApplicationFont(const QString &fileName);
void invalidate();
-
- QStringList fallbackFamilies;
};
void QFontDatabasePrivate::invalidate()
@@ -624,18 +652,6 @@ static void initFontDef(const QtFontDesc &desc, const QFontDef &request, QFontDe
fontDef->ignorePitch = false;
}
-static void getEngineData(const QFontPrivate *d, const QFontDef &def)
-{
- // look for the requested font in the engine data cache
- d->engineData = QFontCache::instance()->findEngineData(def);
- if (!d->engineData) {
- // create a new one
- d->engineData = new QFontEngineData;
- QFontCache::instance()->insertEngineData(def, d->engineData);
- }
- d->engineData->ref.ref();
-}
-
static QStringList familyList(const QFontDef &req)
{
// list of families to try
@@ -800,7 +816,7 @@ static inline void load(const QString & = QString(), int = -1)
static
QFontEngine *loadSingleEngine(int script,
const QFontDef &request,
- QtFontFoundry *foundry,
+ QtFontFamily *family, QtFontFoundry *foundry,
QtFontStyle *style, QtFontSize *size)
{
Q_UNUSED(foundry);
@@ -819,6 +835,24 @@ QFontEngine *loadSingleEngine(int script,
QFontCache::Key key(def,script);
QFontEngine *engine = QFontCache::instance()->findEngine(key);
if (!engine) {
+ if (script != QChar::Script_Common) {
+ // fast path: check if engine was loaded for another script
+ key.script = QChar::Script_Common;
+ engine = QFontCache::instance()->findEngine(key);
+ key.script = script;
+ if (engine) {
+ Q_ASSERT(engine->type() != QFontEngine::Multi);
+ // Also check for OpenType tables when using complex scripts
+ if (Q_UNLIKELY(!engine->supportsScript(QChar::Script(script)))) {
+ qWarning(" OpenType support missing for script %d", script);
+ return 0;
+ }
+
+ QFontCache::instance()->insertEngine(key, engine);
+ return engine;
+ }
+ }
+
// If the font data's native stretch matches the requested stretch we need to set stretch to 100
// to avoid the fontengine synthesizing stretch. If they didn't match exactly we need to calculate
// the new stretch factor. This only done if not matched by styleName.
@@ -838,6 +872,13 @@ QFontEngine *loadSingleEngine(int script,
}
QFontCache::instance()->insertEngine(key, engine);
+
+ if (!engine->symbol && script != QChar::Script_Common && (family->writingSystems[QFontDatabase::Latin] & QtFontFamily::Supported) != 0) {
+ // cache engine for Common script as well
+ key.script = QChar::Script_Common;
+ if (!QFontCache::instance()->findEngine(key))
+ QFontCache::instance()->insertEngine(key, engine);
+ }
}
}
return engine;
@@ -848,7 +889,7 @@ QFontEngine *loadEngine(int script, const QFontDef &request,
QtFontFamily *family, QtFontFoundry *foundry,
QtFontStyle *style, QtFontSize *size)
{
- QFontEngine *engine = loadSingleEngine(script, request, foundry, style, size);
+ QFontEngine *engine = loadSingleEngine(script, request, family, foundry, style, size);
Q_ASSERT(!engine || engine->type() != QFontEngine::Multi);
if (engine && !(request.styleStrategy & QFont::NoFontMerging) && !engine->symbol) {
// make sure that the db has all fallback families
@@ -863,10 +904,8 @@ QFontEngine *loadEngine(int script, const QFontDef &request,
}
QStringList fallbacks = request.fallBackFamilies;
- if (family && !family->fallbackFamilies.isEmpty())
+ if (family)
fallbacks += family->fallbackFamilies;
- else
- fallbacks += privateDb()->fallbackFamilies;
QPlatformFontDatabase *pfdb = QGuiApplicationPrivate::platformIntegration()->fontDatabase();
QFontEngineMulti *pfMultiEngine = pfdb->fontEngineMulti(engine, QChar::Script(script));
@@ -1117,7 +1156,10 @@ static int match(int script, const QFontDef &request,
load(family_name, script);
- const size_t writingSystem = std::find(scriptForWritingSystem, scriptForWritingSystem + QFontDatabase::WritingSystemsCount, script) - scriptForWritingSystem;
+ size_t writingSystem = std::find(scriptForWritingSystem, scriptForWritingSystem +
+ QFontDatabase::WritingSystemsCount, script) - scriptForWritingSystem;
+ if (writingSystem >= QFontDatabase::WritingSystemsCount)
+ writingSystem = QFontDatabase::Any;
QFontDatabasePrivate *db = privateDb();
for (int x = 0; x < db->count; ++x) {
@@ -1136,7 +1178,7 @@ static int match(int script, const QFontDef &request,
load(test.family->name, script);
// Check if family is supported in the script we want
- if (script != QChar::Script_Common && !(test.family->writingSystems[writingSystem] & QtFontFamily::Supported))
+ if (writingSystem != QFontDatabase::Any && !(test.family->writingSystems[writingSystem] & QtFontFamily::Supported))
continue;
// as we know the script is supported, we can be sure
@@ -1145,7 +1187,7 @@ static int match(int script, const QFontDef &request,
bestFoundry(script, score, request.styleStrategy,
test.family, foundry_name, styleKey, request.pixelSize, pitch,
&test, force_encoding_id, request.styleName);
- if (test.foundry == 0) {
+ if (test.foundry == 0 && !foundry_name.isEmpty()) {
// the specific foundry was not found, so look for
// any foundry matching our requirements
newscore = bestFoundry(script, score, request.styleStrategy, test.family,
@@ -1562,6 +1604,15 @@ bool QFontDatabase::isSmoothlyScalable(const QString &family, const QString &sty
QtFontStyle::Key styleKey(style);
QtFontFamily *f = d->family(familyName);
+ if (!f) {
+ for (int i = 0; i < d->count; i++) {
+ if (d->families[i]->matchesFamilyName(familyName)) {
+ f = d->families[i];
+ f->ensurePopulated();
+ break;
+ }
+ }
+ }
if (!f) return smoothScalable;
for (int j = 0; j < f->count; j++) {
@@ -1639,7 +1690,7 @@ QList<int> QFontDatabase::pointSizes(const QString &family,
for (int l = 0; l < style->count; l++) {
const QtFontSize *size = style->pixelSizes + l;
- if (size->pixelSize != 0 && size->pixelSize != USHRT_MAX) {
+ if (size->pixelSize != 0 && size->pixelSize != SMOOTH_SCALABLE) {
const uint pointSize = qRound(size->pixelSize * 72.0 / dpi);
if (! sizes.contains(pointSize))
sizes.append(pointSize);
@@ -1742,7 +1793,7 @@ QList<int> QFontDatabase::smoothSizes(const QString &family,
for (int l = 0; l < style->count; l++) {
const QtFontSize *size = style->pixelSizes + l;
- if (size->pixelSize != 0 && size->pixelSize != USHRT_MAX) {
+ if (size->pixelSize != 0 && size->pixelSize != SMOOTH_SCALABLE) {
const uint pointSize = qRound(size->pixelSize * 72.0 / dpi);
if (! sizes.contains(pointSize))
sizes.append(pointSize);
@@ -2572,19 +2623,27 @@ void QFontDatabase::load(const QFontPrivate *d, int script)
if (req.stretch == 0)
req.stretch = 100;
+ if (!d->engineData) {
+ // look for the requested font in the engine data cache
+ d->engineData = QFontCache::instance()->findEngineData(req);
+ if (!d->engineData) {
+ // create a new one
+ d->engineData = new QFontEngineData;
+ QFontCache::instance()->insertEngineData(req, d->engineData);
+ }
+ d->engineData->ref.ref();
+ }
+
+ // the cached engineData could have already loaded the engine we want
+ if (d->engineData->engines[script])
+ return;
+
// Until we specifically asked not to, try looking for Multi font engine
// first, the last '1' indicates that we want Multi font engine instead
// of single ones
bool multi = !(req.styleStrategy & QFont::NoFontMerging);
QFontCache::Key key(req, script, multi ? 1 : 0);
- if (!d->engineData)
- getEngineData(d, req);
-
- // the cached engineData could have already loaded the engine we want
- if (d->engineData->engines[script])
- return;
-
QFontEngine *fe = QFontCache::instance()->findEngine(key);
// list of families to try
diff --git a/src/gui/text/qfontdatabase.h b/src/gui/text/qfontdatabase.h
index d7d8745f12..5688ce6b7a 100644
--- a/src/gui/text/qfontdatabase.h
+++ b/src/gui/text/qfontdatabase.h
@@ -159,7 +159,7 @@ private:
friend class QFontPrivate;
friend class QFontDialog;
friend class QFontDialogPrivate;
- friend class QFontEngineMultiBasicImpl;
+ friend class QFontEngineMulti;
QFontDatabasePrivate *d;
};
diff --git a/src/gui/text/qfontengine.cpp b/src/gui/text/qfontengine.cpp
index b2a7a8e91f..e686c9fe81 100644
--- a/src/gui/text/qfontengine.cpp
+++ b/src/gui/text/qfontengine.cpp
@@ -761,7 +761,7 @@ QImage QFontEngine::alphaMapForGlyph(glyph_t glyph, const QTransform &t)
{
QImage i = alphaMapForGlyph(glyph);
if (t.type() > QTransform::TxTranslate)
- i = i.transformed(t).convertToFormat(QImage::Format_Indexed8);
+ i = i.transformed(t).convertToFormat(QImage::Format_Alpha8);
Q_ASSERT(i.depth() <= 8); // To verify that transformed didn't change the format...
return i;
@@ -774,7 +774,7 @@ QImage QFontEngine::alphaMapForGlyph(glyph_t glyph, QFixed subPixelPosition, con
QImage i = alphaMapForGlyph(glyph, subPixelPosition);
if (t.type() > QTransform::TxTranslate)
- i = i.transformed(t).convertToFormat(QImage::Format_Indexed8);
+ i = i.transformed(t).convertToFormat(QImage::Format_Alpha8);
Q_ASSERT(i.depth() <= 8); // To verify that transformed didn't change the format...
return i;
@@ -785,12 +785,11 @@ QImage QFontEngine::alphaRGBMapForGlyph(glyph_t glyph, QFixed /*subPixelPosition
QImage alphaMask = alphaMapForGlyph(glyph, t);
QImage rgbMask(alphaMask.width(), alphaMask.height(), QImage::Format_RGB32);
- QVector<QRgb> colorTable = alphaMask.colorTable();
for (int y=0; y<alphaMask.height(); ++y) {
uint *dst = (uint *) rgbMask.scanLine(y);
uchar *src = (uchar *) alphaMask.scanLine(y);
for (int x=0; x<alphaMask.width(); ++x) {
- int val = qAlpha(colorTable.at(src[x]));
+ int val = src[x];
dst[x] = qRgb(val, val, val);
}
}
@@ -871,20 +870,16 @@ QImage QFontEngine::alphaMapForGlyph(glyph_t glyph)
p.drawPath(path);
p.end();
- QImage indexed(im.width(), im.height(), QImage::Format_Indexed8);
- QVector<QRgb> colors(256);
- for (int i=0; i<256; ++i)
- colors[i] = qRgba(0, 0, 0, i);
- indexed.setColorTable(colors);
+ QImage alphaMap(im.width(), im.height(), QImage::Format_Alpha8);
for (int y=0; y<im.height(); ++y) {
- uchar *dst = (uchar *) indexed.scanLine(y);
+ uchar *dst = (uchar *) alphaMap.scanLine(y);
uint *src = (uint *) im.scanLine(y);
for (int x=0; x<im.width(); ++x)
dst[x] = qAlpha(src[x]);
}
- return indexed;
+ return alphaMap;
}
void QFontEngine::removeGlyphFromCache(glyph_t)
@@ -1535,14 +1530,10 @@ bool QFontEngineBox::canRender(const QChar *, int) const
QImage QFontEngineBox::alphaMapForGlyph(glyph_t)
{
- QImage image(_size, _size, QImage::Format_Indexed8);
- QVector<QRgb> colors(256);
- for (int i=0; i<256; ++i)
- colors[i] = qRgba(0, 0, 0, i);
- image.setColorTable(colors);
+ QImage image(_size, _size, QImage::Format_Alpha8);
image.fill(0);
- // can't use qpainter for index8; so use setPixel to draw our rectangle.
+ // FIXME: use qpainter
for (int i=2; i <= _size-3; ++i) {
image.setPixel(i, 2, 255);
image.setPixel(i, _size-3, 255);
@@ -1563,34 +1554,108 @@ static inline uchar highByte(glyph_t glyph)
static inline glyph_t stripped(glyph_t glyph)
{ return glyph & 0x00ffffff; }
-QFontEngineMulti::QFontEngineMulti(int engineCount)
- : QFontEngine(Multi)
+QFontEngineMulti::QFontEngineMulti(QFontEngine *engine, int script, const QStringList &fallbackFamilies)
+ : QFontEngine(Multi),
+ m_fallbackFamilies(fallbackFamilies),
+ m_script(script),
+ m_fallbackFamiliesQueried(!m_fallbackFamilies.isEmpty())
{
- engines.fill(0, engineCount);
- cache_cost = 0;
+ Q_ASSERT(engine && engine->type() != QFontEngine::Multi);
+
+ if (m_fallbackFamilies.isEmpty()) {
+ // defer obtaining the fallback families until loadEngine(1)
+ m_fallbackFamilies << QString();
+ }
+
+ m_engines.resize(m_fallbackFamilies.size() + 1);
+
+ engine->ref.ref();
+ m_engines[0] = engine;
+
+ fontDef = engine->fontDef;
+ cache_cost = engine->cache_cost;
}
QFontEngineMulti::~QFontEngineMulti()
{
- for (int i = 0; i < engines.size(); ++i) {
- QFontEngine *fontEngine = engines.at(i);
+ for (int i = 0; i < m_engines.size(); ++i) {
+ QFontEngine *fontEngine = m_engines.at(i);
if (fontEngine && !fontEngine->ref.deref())
delete fontEngine;
}
}
+void QFontEngineMulti::ensureFallbackFamiliesQueried()
+{
+ if (QPlatformIntegration *integration = QGuiApplicationPrivate::platformIntegration()) {
+ const QStringList fallbackFamilies = integration->fontDatabase()->fallbacksForFamily(fontDef.family,
+ QFont::Style(fontDef.style),
+ QFont::AnyStyle,
+ QChar::Script(m_script));
+ setFallbackFamiliesList(fallbackFamilies);
+ }
+}
+
+void QFontEngineMulti::setFallbackFamiliesList(const QStringList &fallbackFamilies)
+{
+ Q_ASSERT(!m_fallbackFamiliesQueried);
+
+ m_fallbackFamilies = fallbackFamilies;
+ if (m_fallbackFamilies.isEmpty()) {
+ // turns out we lied about having any fallback at all
+ Q_ASSERT(m_engines.size() == 2); // see c-tor for details
+ QFontEngine *engine = m_engines.at(0);
+ engine->ref.ref();
+ m_engines[1] = engine;
+ m_fallbackFamilies << fontDef.family;
+ } else {
+ m_engines.resize(m_fallbackFamilies.size() + 1);
+ }
+
+ m_fallbackFamiliesQueried = true;
+}
+
+void QFontEngineMulti::ensureEngineAt(int at)
+{
+ Q_ASSERT(m_fallbackFamiliesQueried);
+ Q_ASSERT(at < m_engines.size());
+ if (!m_engines.at(at)) {
+ QFontEngine *engine = loadEngine(at);
+ if (!engine)
+ engine = new QFontEngineBox(fontDef.pixelSize);
+ Q_ASSERT(engine && engine->type() != QFontEngine::Multi);
+ engine->ref.ref();
+ m_engines[at] = engine;
+ }
+}
+
+QFontEngine *QFontEngineMulti::loadEngine(int at)
+{
+ QFontDef request(fontDef);
+ request.styleStrategy |= QFont::NoFontMerging;
+ request.family = fallbackFamilyAt(at - 1);
+
+ if (QFontEngine *engine = QFontDatabase::findFont(m_script, /*fontprivate = */0, request, /*multi = */false)) {
+ engine->fontDef = request;
+ return engine;
+ }
+
+ return 0;
+}
+
glyph_t QFontEngineMulti::glyphIndex(uint ucs4) const
{
glyph_t glyph = engine(0)->glyphIndex(ucs4);
if (glyph == 0 && ucs4 != QChar::LineSeparator) {
- const_cast<QFontEngineMulti *>(this)->ensureFallbackFamiliesQueried();
- for (int x = 1, n = qMin(engines.size(), 256); x < n; ++x) {
- QFontEngine *engine = engines.at(x);
+ if (!m_fallbackFamiliesQueried)
+ const_cast<QFontEngineMulti *>(this)->ensureFallbackFamiliesQueried();
+ for (int x = 1, n = qMin(m_engines.size(), 256); x < n; ++x) {
+ QFontEngine *engine = m_engines.at(x);
if (!engine) {
if (!shouldLoadFontEngineForCharacter(x, ucs4))
continue;
- const_cast<QFontEngineMulti *>(this)->loadEngine(x);
- engine = engines.at(x);
+ const_cast<QFontEngineMulti *>(this)->ensureEngineAt(x);
+ engine = m_engines.at(x);
}
Q_ASSERT(engine != 0);
if (engine->type() == Box)
@@ -1615,20 +1680,22 @@ bool QFontEngineMulti::stringToCMap(const QChar *str, int len,
if (!engine(0)->stringToCMap(str, len, glyphs, nglyphs, flags))
return false;
- const_cast<QFontEngineMulti *>(this)->ensureFallbackFamiliesQueried();
int glyph_pos = 0;
QStringIterator it(str, str + len);
while (it.hasNext()) {
const uint ucs4 = it.peekNext();
if (glyphs->glyphs[glyph_pos] == 0 && ucs4 != QChar::LineSeparator) {
- for (int x = 1, n = qMin(engines.size(), 256); x < n; ++x) {
- if (engines.at(x) == 0 && !shouldLoadFontEngineForCharacter(x, ucs4))
- continue;
-
- QFontEngine *engine = engines.at(x);
+ if (!m_fallbackFamiliesQueried)
+ const_cast<QFontEngineMulti *>(this)->ensureFallbackFamiliesQueried();
+ for (int x = 1, n = qMin(m_engines.size(), 256); x < n; ++x) {
+ QFontEngine *engine = m_engines.at(x);
if (!engine) {
- const_cast<QFontEngineMulti *>(this)->loadEngine(x);
- engine = engines.at(x);
+ if (!shouldLoadFontEngineForCharacter(x, ucs4))
+ continue;
+ const_cast<QFontEngineMulti *>(this)->ensureEngineAt(x);
+ engine = m_engines.at(x);
+ if (!engine)
+ continue;
}
Q_ASSERT(engine != 0);
if (engine->type() == Box)
@@ -1883,7 +1950,6 @@ void QFontEngineMulti::doKerning(QGlyphLayout *glyphs, QFontEngine::ShaperFlags
glyph_metrics_t QFontEngineMulti::boundingBox(glyph_t glyph)
{
const int which = highByte(glyph);
- Q_ASSERT(which < engines.size());
return engine(which)->boundingBox(stripped(glyph));
}
@@ -1962,111 +2028,34 @@ bool QFontEngineMulti::canRender(const QChar *string, int len) const
QImage QFontEngineMulti::alphaMapForGlyph(glyph_t glyph)
{
const int which = highByte(glyph);
- Q_ASSERT(which < engines.size());
return engine(which)->alphaMapForGlyph(stripped(glyph));
}
QImage QFontEngineMulti::alphaMapForGlyph(glyph_t glyph, QFixed subPixelPosition)
{
const int which = highByte(glyph);
- Q_ASSERT(which < engines.size());
return engine(which)->alphaMapForGlyph(stripped(glyph), subPixelPosition);
}
QImage QFontEngineMulti::alphaMapForGlyph(glyph_t glyph, const QTransform &t)
{
const int which = highByte(glyph);
- Q_ASSERT(which < engines.size());
return engine(which)->alphaMapForGlyph(stripped(glyph), t);
}
QImage QFontEngineMulti::alphaMapForGlyph(glyph_t glyph, QFixed subPixelPosition, const QTransform &t)
{
const int which = highByte(glyph);
- Q_ASSERT(which < engines.size());
return engine(which)->alphaMapForGlyph(stripped(glyph), subPixelPosition, t);
}
QImage QFontEngineMulti::alphaRGBMapForGlyph(glyph_t glyph, QFixed subPixelPosition, const QTransform &t)
{
const int which = highByte(glyph);
- Q_ASSERT(which < engines.size());
return engine(which)->alphaRGBMapForGlyph(stripped(glyph), subPixelPosition, t);
}
/*
- Creates a new multi engine.
-
- This function takes ownership of the QFontEngine, increasing it's refcount.
-*/
-QFontEngineMultiBasicImpl::QFontEngineMultiBasicImpl(QFontEngine *fe, int _script, const QStringList &fallbacks)
- : QFontEngineMulti(fallbacks.size() + 1),
- fallbackFamilies(fallbacks), script(_script)
- , fallbacksQueried(true)
-{
- init(fe);
-}
-
-QFontEngineMultiBasicImpl::QFontEngineMultiBasicImpl(QFontEngine *fe, int _script)
- : QFontEngineMulti(2)
- , script(_script)
- , fallbacksQueried(false)
-{
- fallbackFamilies << QString();
- init(fe);
-}
-
-void QFontEngineMultiBasicImpl::init(QFontEngine *fe)
-{
- Q_ASSERT(fe && fe->type() != QFontEngine::Multi);
- engines[0] = fe;
- fe->ref.ref();
- fontDef = engines[0]->fontDef;
- cache_cost = fe->cache_cost;
-}
-
-void QFontEngineMultiBasicImpl::loadEngine(int at)
-{
- ensureFallbackFamiliesQueried();
- Q_ASSERT(at < engines.size());
- Q_ASSERT(engines.at(at) == 0);
- QFontDef request = fontDef;
- request.styleStrategy |= QFont::NoFontMerging;
- request.family = fallbackFamilies.at(at-1);
- engines[at] = QFontDatabase::findFont(script,
- /*fontprivate = */0,
- request, /*multi = */false);
- Q_ASSERT(engines[at]);
- engines[at]->ref.ref();
- engines[at]->fontDef = request;
-}
-void QFontEngineMultiBasicImpl::ensureFallbackFamiliesQueried()
-{
- if (fallbacksQueried)
- return;
- QStringList fallbacks = QGuiApplicationPrivate::instance()->platformIntegration()->fontDatabase()->fallbacksForFamily(engine(0)->fontDef.family, QFont::Style(engine(0)->fontDef.style)
- , QFont::AnyStyle, QChar::Script(script));
- setFallbackFamiliesList(fallbacks);
-}
-
-void QFontEngineMultiBasicImpl::setFallbackFamiliesList(const QStringList &fallbacks)
-{
- // Original FontEngine to restore after the fill.
- QFontEngine *fe = engines[0];
- fallbackFamilies = fallbacks;
- if (!fallbackFamilies.isEmpty()) {
- engines.fill(0, fallbackFamilies.size() + 1);
- engines[0] = fe;
- } else {
- // Turns out we lied about having any fallback at all.
- fallbackFamilies << fe->fontDef.family;
- engines[1] = fe;
- fe->ref.ref();
- }
- fallbacksQueried = true;
-}
-
-/*
This is used indirectly by Qt WebKit when using QTextLayout::setRawFont
The purpose of this is to provide the necessary font fallbacks when drawing complex
@@ -2074,7 +2063,7 @@ void QFontEngineMultiBasicImpl::setFallbackFamiliesList(const QStringList &fallb
the same raw font over and over again, we want to cache the corresponding multi font engine
as it may contain fallback font engines already.
*/
-QFontEngine* QFontEngineMultiBasicImpl::createMultiFontEngine(QFontEngine *fe, int script)
+QFontEngine *QFontEngineMulti::createMultiFontEngine(QFontEngine *fe, int script)
{
QFontEngine *engine = 0;
QFontCache::Key key(fe->fontDef, script, /*multi = */true);
diff --git a/src/gui/text/qfontengine_ft.cpp b/src/gui/text/qfontengine_ft.cpp
index 792bfadb5e..5c1af8bb40 100644
--- a/src/gui/text/qfontengine_ft.cpp
+++ b/src/gui/text/qfontengine_ft.cpp
@@ -1775,7 +1775,7 @@ QImage *QFontEngineFT::lockedAlphaMapForGlyph(glyph_t glyphIndex, QFixed subPixe
format = QImage::Format_Mono;
break;
case Format_A8:
- format = QImage::Format_Indexed8;
+ format = QImage::Format_Alpha8;
break;
case Format_A32:
format = QImage::Format_ARGB32;
@@ -1918,13 +1918,8 @@ QImage QFontEngineFT::alphaMapForGlyph(glyph_t g, QFixed subPixelPosition, const
const int pitch = antialias ? (glyph->width + 3) & ~3 : ((glyph->width + 31)/32) * 4;
- QImage img(glyph->width, glyph->height, antialias ? QImage::Format_Indexed8 : QImage::Format_Mono);
- if (antialias) {
- QVector<QRgb> colors(256);
- for (int i=0; i<256; ++i)
- colors[i] = qRgba(0, 0, 0, i);
- img.setColorTable(colors);
- } else {
+ QImage img(glyph->width, glyph->height, antialias ? QImage::Format_Alpha8 : QImage::Format_Mono);
+ if (!antialias) {
QVector<QRgb> colors(2);
colors[0] = qRgba(0, 0, 0, 0);
colors[1] = qRgba(0, 0, 0, 255);
diff --git a/src/gui/text/qfontengine_ft_p.h b/src/gui/text/qfontengine_ft_p.h
index 383902c784..e33f0fc0f5 100644
--- a/src/gui/text/qfontengine_ft_p.h
+++ b/src/gui/text/qfontengine_ft_p.h
@@ -188,67 +188,67 @@ private:
mutable int fast_glyph_count;
};
- virtual QFontEngine::FaceId faceId() const;
- virtual QFontEngine::Properties properties() const;
- virtual QFixed emSquareSize() const;
- virtual bool supportsSubPixelPositions() const
+ virtual QFontEngine::FaceId faceId() const Q_DECL_OVERRIDE;
+ virtual QFontEngine::Properties properties() const Q_DECL_OVERRIDE;
+ virtual QFixed emSquareSize() const Q_DECL_OVERRIDE;
+ virtual bool supportsSubPixelPositions() const Q_DECL_OVERRIDE
{
return default_hint_style == HintLight ||
default_hint_style == HintNone;
}
- virtual bool getSfntTableData(uint tag, uchar *buffer, uint *length) const;
- virtual int synthesized() const;
+ virtual bool getSfntTableData(uint tag, uchar *buffer, uint *length) const Q_DECL_OVERRIDE;
+ virtual int synthesized() const Q_DECL_OVERRIDE;
- virtual QFixed ascent() const;
- virtual QFixed descent() const;
- virtual QFixed leading() const;
- virtual QFixed xHeight() const;
- virtual QFixed averageCharWidth() const;
+ virtual QFixed ascent() const Q_DECL_OVERRIDE;
+ virtual QFixed descent() const Q_DECL_OVERRIDE;
+ virtual QFixed leading() const Q_DECL_OVERRIDE;
+ virtual QFixed xHeight() const Q_DECL_OVERRIDE;
+ virtual QFixed averageCharWidth() const Q_DECL_OVERRIDE;
- virtual qreal maxCharWidth() const;
- virtual qreal minLeftBearing() const;
- virtual qreal minRightBearing() const;
- virtual QFixed lineThickness() const;
- virtual QFixed underlinePosition() const;
+ virtual qreal maxCharWidth() const Q_DECL_OVERRIDE;
+ virtual qreal minLeftBearing() const Q_DECL_OVERRIDE;
+ virtual qreal minRightBearing() const Q_DECL_OVERRIDE;
+ virtual QFixed lineThickness() const Q_DECL_OVERRIDE;
+ virtual QFixed underlinePosition() const Q_DECL_OVERRIDE;
- virtual glyph_t glyphIndex(uint ucs4) const;
- void doKerning(QGlyphLayout *, ShaperFlags) const;
+ virtual glyph_t glyphIndex(uint ucs4) const Q_DECL_OVERRIDE;
+ void doKerning(QGlyphLayout *, ShaperFlags) const Q_DECL_OVERRIDE;
- virtual void getUnscaledGlyph(glyph_t glyph, QPainterPath *path, glyph_metrics_t *metrics);
+ virtual void getUnscaledGlyph(glyph_t glyph, QPainterPath *path, glyph_metrics_t *metrics) Q_DECL_OVERRIDE;
- virtual bool supportsTransformation(const QTransform &transform) const;
+ virtual bool supportsTransformation(const QTransform &transform) const Q_DECL_OVERRIDE;
virtual void addGlyphsToPath(glyph_t *glyphs, QFixedPoint *positions, int nglyphs,
- QPainterPath *path, QTextItem::RenderFlags flags);
+ QPainterPath *path, QTextItem::RenderFlags flags) Q_DECL_OVERRIDE;
virtual void addOutlineToPath(qreal x, qreal y, const QGlyphLayout &glyphs,
- QPainterPath *path, QTextItem::RenderFlags flags);
+ QPainterPath *path, QTextItem::RenderFlags flags) Q_DECL_OVERRIDE;
- virtual bool stringToCMap(const QChar *str, int len, QGlyphLayout *glyphs, int *nglyphs, ShaperFlags flags) const;
+ virtual bool stringToCMap(const QChar *str, int len, QGlyphLayout *glyphs, int *nglyphs, ShaperFlags flags) const Q_DECL_OVERRIDE;
- virtual glyph_metrics_t boundingBox(const QGlyphLayout &glyphs);
- virtual glyph_metrics_t boundingBox(glyph_t glyph);
- virtual glyph_metrics_t boundingBox(glyph_t glyph, const QTransform &matrix);
+ virtual glyph_metrics_t boundingBox(const QGlyphLayout &glyphs) Q_DECL_OVERRIDE;
+ virtual glyph_metrics_t boundingBox(glyph_t glyph) Q_DECL_OVERRIDE;
+ virtual glyph_metrics_t boundingBox(glyph_t glyph, const QTransform &matrix) Q_DECL_OVERRIDE;
- virtual void recalcAdvances(QGlyphLayout *glyphs, ShaperFlags flags) const;
- virtual QImage alphaMapForGlyph(glyph_t g) { return alphaMapForGlyph(g, 0); }
- virtual QImage alphaMapForGlyph(glyph_t, QFixed);
- QImage alphaMapForGlyph(glyph_t glyph, QFixed subPixelPosition, const QTransform &t);
- virtual QImage alphaRGBMapForGlyph(glyph_t, QFixed subPixelPosition, const QTransform &t);
+ virtual void recalcAdvances(QGlyphLayout *glyphs, ShaperFlags flags) const Q_DECL_OVERRIDE;
+ virtual QImage alphaMapForGlyph(glyph_t g) Q_DECL_OVERRIDE { return alphaMapForGlyph(g, 0); }
+ virtual QImage alphaMapForGlyph(glyph_t, QFixed) Q_DECL_OVERRIDE;
+ QImage alphaMapForGlyph(glyph_t glyph, QFixed subPixelPosition, const QTransform &t) Q_DECL_OVERRIDE;
+ virtual QImage alphaRGBMapForGlyph(glyph_t, QFixed subPixelPosition, const QTransform &t) Q_DECL_OVERRIDE;
virtual glyph_metrics_t alphaMapBoundingBox(glyph_t glyph,
QFixed subPixelPosition,
const QTransform &matrix,
- QFontEngine::GlyphFormat format);
+ QFontEngine::GlyphFormat format) Q_DECL_OVERRIDE;
virtual QImage *lockedAlphaMapForGlyph(glyph_t glyph, QFixed subPixelPosition,
GlyphFormat neededFormat, const QTransform &t,
- QPoint *offset);
- virtual bool hasInternalCaching() const { return cacheEnabled; }
- virtual void unlockAlphaMapForGlyph();
+ QPoint *offset) Q_DECL_OVERRIDE;
+ virtual bool hasInternalCaching() const Q_DECL_OVERRIDE { return cacheEnabled; }
+ virtual void unlockAlphaMapForGlyph() Q_DECL_OVERRIDE;
- virtual void removeGlyphFromCache(glyph_t glyph);
- virtual int glyphMargin(QFontEngine::GlyphFormat /* format */) { return 0; }
+ virtual void removeGlyphFromCache(glyph_t glyph) Q_DECL_OVERRIDE;
+ virtual int glyphMargin(QFontEngine::GlyphFormat /* format */) Q_DECL_OVERRIDE { return 0; }
- virtual int glyphCount() const;
+ virtual int glyphCount() const Q_DECL_OVERRIDE;
enum Scaling {
Scaled,
@@ -278,12 +278,12 @@ private:
bool init(FaceId faceId, bool antialias, GlyphFormat format,
QFreetypeFace *freetypeFace);
- virtual int getPointInOutline(glyph_t glyph, int flags, quint32 point, QFixed *xpos, QFixed *ypos, quint32 *nPoints);
+ virtual int getPointInOutline(glyph_t glyph, int flags, quint32 point, QFixed *xpos, QFixed *ypos, quint32 *nPoints) Q_DECL_OVERRIDE;
- virtual void setDefaultHintStyle(HintStyle style);
+ virtual void setDefaultHintStyle(HintStyle style) Q_DECL_OVERRIDE;
- virtual QFontEngine *cloneWithSize(qreal pixelSize) const;
+ virtual QFontEngine *cloneWithSize(qreal pixelSize) const Q_DECL_OVERRIDE;
bool initFromFontEngine(const QFontEngineFT *fontEngine);
HintStyle defaultHintStyle() const { return default_hint_style; }
diff --git a/src/gui/text/qfontengine_p.h b/src/gui/text/qfontengine_p.h
index 9364b82bed..cd42cc89d7 100644
--- a/src/gui/text/qfontengine_p.h
+++ b/src/gui/text/qfontengine_p.h
@@ -78,10 +78,6 @@ enum HB_Compat_Error {
typedef void (*qt_destroy_func_t) (void *user_data);
typedef bool (*qt_get_font_table_func_t) (void *user_data, uint tag, uchar *buffer, uint *length);
-const QFont::Weight qt_mediumFontWeight = static_cast<QFont::Weight>(57);
-const QFont::Weight qt_extralightFontWeight = static_cast<QFont::Weight>(12);
-const QFont::Weight qt_thinFontWeight = static_cast<QFont::Weight>(0);
-
class Q_GUI_EXPORT QFontEngine
{
public:
@@ -351,26 +347,26 @@ public:
QFontEngineBox(int size);
~QFontEngineBox();
- virtual glyph_t glyphIndex(uint ucs4) const;
- virtual bool stringToCMap(const QChar *str, int len, QGlyphLayout *glyphs, int *nglyphs, ShaperFlags flags) const;
- virtual void recalcAdvances(QGlyphLayout *, ShaperFlags) const;
+ virtual glyph_t glyphIndex(uint ucs4) const Q_DECL_OVERRIDE;
+ virtual bool stringToCMap(const QChar *str, int len, QGlyphLayout *glyphs, int *nglyphs, ShaperFlags flags) const Q_DECL_OVERRIDE;
+ virtual void recalcAdvances(QGlyphLayout *, ShaperFlags) const Q_DECL_OVERRIDE;
void draw(QPaintEngine *p, qreal x, qreal y, const QTextItemInt &si);
- virtual void addOutlineToPath(qreal x, qreal y, const QGlyphLayout &glyphs, QPainterPath *path, QTextItem::RenderFlags flags);
-
- virtual glyph_metrics_t boundingBox(const QGlyphLayout &glyphs);
- virtual glyph_metrics_t boundingBox(glyph_t glyph);
- virtual QFontEngine *cloneWithSize(qreal pixelSize) const;
-
- virtual QFixed ascent() const;
- virtual QFixed descent() const;
- virtual QFixed leading() const;
- virtual qreal maxCharWidth() const;
- virtual qreal minLeftBearing() const { return 0; }
- virtual qreal minRightBearing() const { return 0; }
- virtual QImage alphaMapForGlyph(glyph_t);
+ virtual void addOutlineToPath(qreal x, qreal y, const QGlyphLayout &glyphs, QPainterPath *path, QTextItem::RenderFlags flags) Q_DECL_OVERRIDE;
+
+ virtual glyph_metrics_t boundingBox(const QGlyphLayout &glyphs) Q_DECL_OVERRIDE;
+ virtual glyph_metrics_t boundingBox(glyph_t glyph) Q_DECL_OVERRIDE;
+ virtual QFontEngine *cloneWithSize(qreal pixelSize) const Q_DECL_OVERRIDE;
+
+ virtual QFixed ascent() const Q_DECL_OVERRIDE;
+ virtual QFixed descent() const Q_DECL_OVERRIDE;
+ virtual QFixed leading() const Q_DECL_OVERRIDE;
+ virtual qreal maxCharWidth() const Q_DECL_OVERRIDE;
+ virtual qreal minLeftBearing() const Q_DECL_OVERRIDE { return 0; }
+ virtual qreal minRightBearing() const Q_DECL_OVERRIDE { return 0; }
+ virtual QImage alphaMapForGlyph(glyph_t) Q_DECL_OVERRIDE;
- virtual bool canRender(const QChar *string, int len) const;
+ virtual bool canRender(const QChar *string, int len) const Q_DECL_OVERRIDE;
inline int size() const { return _size; }
@@ -385,79 +381,61 @@ private:
class Q_GUI_EXPORT QFontEngineMulti : public QFontEngine
{
public:
- explicit QFontEngineMulti(int engineCount);
+ explicit QFontEngineMulti(QFontEngine *engine, int script, const QStringList &fallbackFamilies = QStringList());
~QFontEngineMulti();
- virtual glyph_t glyphIndex(uint ucs4) const;
- virtual bool stringToCMap(const QChar *str, int len, QGlyphLayout *glyphs, int *nglyphs, ShaperFlags flags) const;
-
- virtual glyph_metrics_t boundingBox(const QGlyphLayout &glyphs);
- virtual glyph_metrics_t boundingBox(glyph_t glyph);
-
- virtual void recalcAdvances(QGlyphLayout *, ShaperFlags) const;
- virtual void doKerning(QGlyphLayout *, ShaperFlags) const;
- virtual void addOutlineToPath(qreal, qreal, const QGlyphLayout &, QPainterPath *, QTextItem::RenderFlags flags);
- virtual void getGlyphBearings(glyph_t glyph, qreal *leftBearing = 0, qreal *rightBearing = 0);
+ virtual glyph_t glyphIndex(uint ucs4) const Q_DECL_OVERRIDE;
+ virtual bool stringToCMap(const QChar *str, int len, QGlyphLayout *glyphs, int *nglyphs, ShaperFlags flags) const Q_DECL_OVERRIDE;
- virtual QFixed ascent() const;
- virtual QFixed descent() const;
- virtual QFixed leading() const;
- virtual QFixed xHeight() const;
- virtual QFixed averageCharWidth() const;
- virtual QImage alphaMapForGlyph(glyph_t);
- virtual QImage alphaMapForGlyph(glyph_t glyph, QFixed subPixelPosition);
- virtual QImage alphaMapForGlyph(glyph_t, const QTransform &t);
- virtual QImage alphaMapForGlyph(glyph_t, QFixed subPixelPosition, const QTransform &t);
- virtual QImage alphaRGBMapForGlyph(glyph_t, QFixed subPixelPosition, const QTransform &t);
+ virtual glyph_metrics_t boundingBox(const QGlyphLayout &glyphs) Q_DECL_OVERRIDE;
+ virtual glyph_metrics_t boundingBox(glyph_t glyph) Q_DECL_OVERRIDE;
- virtual QFixed lineThickness() const;
- virtual QFixed underlinePosition() const;
- virtual qreal maxCharWidth() const;
- virtual qreal minLeftBearing() const;
- virtual qreal minRightBearing() const;
+ virtual void recalcAdvances(QGlyphLayout *, ShaperFlags) const Q_DECL_OVERRIDE;
+ virtual void doKerning(QGlyphLayout *, ShaperFlags) const Q_DECL_OVERRIDE;
+ virtual void addOutlineToPath(qreal, qreal, const QGlyphLayout &, QPainterPath *, QTextItem::RenderFlags flags) Q_DECL_OVERRIDE;
+ virtual void getGlyphBearings(glyph_t glyph, qreal *leftBearing = 0, qreal *rightBearing = 0) Q_DECL_OVERRIDE;
- virtual bool canRender(const QChar *string, int len) const;
+ virtual QFixed ascent() const Q_DECL_OVERRIDE;
+ virtual QFixed descent() const Q_DECL_OVERRIDE;
+ virtual QFixed leading() const Q_DECL_OVERRIDE;
+ virtual QFixed xHeight() const Q_DECL_OVERRIDE;
+ virtual QFixed averageCharWidth() const Q_DECL_OVERRIDE;
+ virtual QImage alphaMapForGlyph(glyph_t) Q_DECL_OVERRIDE;
+ virtual QImage alphaMapForGlyph(glyph_t glyph, QFixed subPixelPosition) Q_DECL_OVERRIDE;
+ virtual QImage alphaMapForGlyph(glyph_t, const QTransform &t) Q_DECL_OVERRIDE;
+ virtual QImage alphaMapForGlyph(glyph_t, QFixed subPixelPosition, const QTransform &t) Q_DECL_OVERRIDE;
+ virtual QImage alphaRGBMapForGlyph(glyph_t, QFixed subPixelPosition, const QTransform &t) Q_DECL_OVERRIDE;
- QFontEngine *engine(int at) const
- {Q_ASSERT(at < engines.size()); return engines.at(at); }
+ virtual QFixed lineThickness() const Q_DECL_OVERRIDE;
+ virtual QFixed underlinePosition() const Q_DECL_OVERRIDE;
+ virtual qreal maxCharWidth() const Q_DECL_OVERRIDE;
+ virtual qreal minLeftBearing() const Q_DECL_OVERRIDE;
+ virtual qreal minRightBearing() const Q_DECL_OVERRIDE;
- inline void ensureEngineAt(int at)
- {
- if (at >= engines.size() || engines.at(at) == 0)
- loadEngine(at);
- }
+ virtual bool canRender(const QChar *string, int len) const Q_DECL_OVERRIDE;
- virtual bool shouldLoadFontEngineForCharacter(int at, uint ucs4) const;
- virtual void setFallbackFamiliesList(const QStringList &) {}
+ inline int fallbackFamilyCount() const { return m_fallbackFamilies.size(); }
+ inline QString fallbackFamilyAt(int at) const { return m_fallbackFamilies.at(at); }
-protected:
- friend class QRawFont;
- virtual void loadEngine(int at) = 0;
- virtual void ensureFallbackFamiliesQueried() {}
- QVector<QFontEngine *> engines;
-};
+ void setFallbackFamiliesList(const QStringList &fallbackFamilies);
-class Q_GUI_EXPORT QFontEngineMultiBasicImpl : public QFontEngineMulti
-{
-public:
- QFontEngineMultiBasicImpl(QFontEngine *fe, int script, const QStringList &fallbacks);
- QFontEngineMultiBasicImpl(QFontEngine *fe, int script);
+ inline QFontEngine *engine(int at) const
+ { Q_ASSERT(at < m_engines.size()); return m_engines.at(at); }
- void loadEngine(int at);
- static QFontEngine* createMultiFontEngine(QFontEngine *fe, int script);
+ void ensureEngineAt(int at);
- int fallbackFamilyCount() const { return fallbackFamilies.size(); }
- QString fallbackFamilyAt(int at) const { return fallbackFamilies.at(at); }
+ static QFontEngine *createMultiFontEngine(QFontEngine *fe, int script);
+protected:
virtual void ensureFallbackFamiliesQueried();
- virtual void setFallbackFamiliesList(const QStringList &fallbacks);
+ virtual bool shouldLoadFontEngineForCharacter(int at, uint ucs4) const;
+ virtual QFontEngine *loadEngine(int at);
private:
- void init(QFontEngine *fe);
-
- mutable QStringList fallbackFamilies;
- int script;
- mutable bool fallbacksQueried;
+ QVector<QFontEngine *> m_engines;
+ QStringList m_fallbackFamilies;
+ const int m_script;
+ bool m_fallbackFamiliesQueried;
};
class QTestFontEngine : public QFontEngineBox
diff --git a/src/gui/text/qfontengine_qpf2.cpp b/src/gui/text/qfontengine_qpf2.cpp
index 4785902c99..8e924102e5 100644
--- a/src/gui/text/qfontengine_qpf2.cpp
+++ b/src/gui/text/qfontengine_qpf2.cpp
@@ -396,7 +396,7 @@ QImage QFontEngineQPF2::alphaMapForGlyph(glyph_t g)
const uchar *bits = ((const uchar *) glyph) + sizeof(Glyph);
- QImage image(bits,glyph->width, glyph->height, glyph->bytesPerLine, QImage::Format_Indexed8);
+ QImage image(bits,glyph->width, glyph->height, glyph->bytesPerLine, QImage::Format_Alpha8);
return image;
}
diff --git a/src/gui/text/qfontengine_qpf2_p.h b/src/gui/text/qfontengine_qpf2_p.h
index e8c3989b58..68e20e2ed0 100644
--- a/src/gui/text/qfontengine_qpf2_p.h
+++ b/src/gui/text/qfontengine_qpf2_p.h
@@ -152,29 +152,29 @@ public:
QFontEngineQPF2(const QFontDef &def, const QByteArray &data);
~QFontEngineQPF2();
- FaceId faceId() const { return face_id; }
- bool getSfntTableData(uint tag, uchar *buffer, uint *length) const;
+ FaceId faceId() const Q_DECL_OVERRIDE { return face_id; }
+ bool getSfntTableData(uint tag, uchar *buffer, uint *length) const Q_DECL_OVERRIDE;
- virtual glyph_t glyphIndex(uint ucs4) const;
- bool stringToCMap(const QChar *str, int len, QGlyphLayout *glyphs, int *nglyphs, ShaperFlags flags) const;
- void recalcAdvances(QGlyphLayout *, ShaperFlags) const;
+ virtual glyph_t glyphIndex(uint ucs4) const Q_DECL_OVERRIDE;
+ bool stringToCMap(const QChar *str, int len, QGlyphLayout *glyphs, int *nglyphs, ShaperFlags flags) const Q_DECL_OVERRIDE;
+ void recalcAdvances(QGlyphLayout *, ShaperFlags) const Q_DECL_OVERRIDE;
- void addOutlineToPath(qreal x, qreal y, const QGlyphLayout &glyphs, QPainterPath *path, QTextItem::RenderFlags flags);
- QImage alphaMapForGlyph(glyph_t t);
+ void addOutlineToPath(qreal x, qreal y, const QGlyphLayout &glyphs, QPainterPath *path, QTextItem::RenderFlags flags) Q_DECL_OVERRIDE;
+ QImage alphaMapForGlyph(glyph_t t) Q_DECL_OVERRIDE;
- glyph_metrics_t boundingBox(const QGlyphLayout &glyphs);
- glyph_metrics_t boundingBox(glyph_t glyph);
+ glyph_metrics_t boundingBox(const QGlyphLayout &glyphs) Q_DECL_OVERRIDE;
+ glyph_metrics_t boundingBox(glyph_t glyph) Q_DECL_OVERRIDE;
- QFixed ascent() const;
- QFixed descent() const;
- QFixed leading() const;
- qreal maxCharWidth() const;
- qreal minLeftBearing() const;
- qreal minRightBearing() const;
- QFixed underlinePosition() const;
- QFixed lineThickness() const;
+ QFixed ascent() const Q_DECL_OVERRIDE;
+ QFixed descent() const Q_DECL_OVERRIDE;
+ QFixed leading() const Q_DECL_OVERRIDE;
+ qreal maxCharWidth() const Q_DECL_OVERRIDE;
+ qreal minLeftBearing() const Q_DECL_OVERRIDE;
+ qreal minRightBearing() const Q_DECL_OVERRIDE;
+ QFixed underlinePosition() const Q_DECL_OVERRIDE;
+ QFixed lineThickness() const Q_DECL_OVERRIDE;
- virtual int glyphCount() const { return glyphMapEntries; }
+ virtual int glyphCount() const Q_DECL_OVERRIDE { return glyphMapEntries; }
bool isValid() const;
diff --git a/src/gui/text/qfragmentmap_p.h b/src/gui/text/qfragmentmap_p.h
index 012d3c25ce..a19e3d9ea3 100644
--- a/src/gui/text/qfragmentmap_p.h
+++ b/src/gui/text/qfragmentmap_p.h
@@ -249,6 +249,8 @@ uint QFragmentMapData<Fragment>::createFragment()
uint freePos = head->freelist;
if (freePos == head->allocated) {
// need to create some free space
+ if (freePos >= uint(MaxAllocSize) / fragmentSize)
+ qBadAlloc();
uint needed = qAllocMore((freePos+1)*fragmentSize, 0);
Q_ASSERT(needed/fragmentSize > head->allocated);
Fragment *newFragments = (Fragment *)realloc(fragments, needed);
diff --git a/src/gui/text/qplatformfontdatabase.cpp b/src/gui/text/qplatformfontdatabase.cpp
index f18ddbab8a..8f47933e6d 100644
--- a/src/gui/text/qplatformfontdatabase.cpp
+++ b/src/gui/text/qplatformfontdatabase.cpp
@@ -314,7 +314,7 @@ void QPlatformFontDatabase::invalidate()
*/
QFontEngineMulti *QPlatformFontDatabase::fontEngineMulti(QFontEngine *fontEngine, QChar::Script script)
{
- return new QFontEngineMultiBasicImpl(fontEngine, script);
+ return new QFontEngineMulti(fontEngine, script);
}
/*!
@@ -599,6 +599,34 @@ QSupportedWritingSystems QPlatformFontDatabase::writingSystemsFromTrueTypeBits(q
}
/*!
+ Helper function that returns the Qt font weight matching a given opentype integer value.
+
+ \since 5.5
+*/
+
+// convert 0 ~ 1000 integer to QFont::Weight
+QFont::Weight QPlatformFontDatabase::weightFromInteger(int weight)
+{
+ if (weight < 150)
+ return QFont::Thin;
+ if (weight < 250)
+ return QFont::ExtraLight;
+ if (weight < 350)
+ return QFont::Light;
+ if (weight < 450)
+ return QFont::Normal;
+ if (weight < 550)
+ return QFont::Medium;
+ if (weight < 650)
+ return QFont::DemiBold;
+ if (weight < 750)
+ return QFont::Bold;
+ if (weight < 850)
+ return QFont::ExtraBold;
+ return QFont::Black;
+}
+
+/*!
Helper function that register the \a alias for the \a familyName.
\since 5.2
diff --git a/src/gui/text/qplatformfontdatabase.h b/src/gui/text/qplatformfontdatabase.h
index a75d55f91a..2497ec2ff3 100644
--- a/src/gui/text/qplatformfontdatabase.h
+++ b/src/gui/text/qplatformfontdatabase.h
@@ -110,6 +110,7 @@ public:
// helper
static QSupportedWritingSystems writingSystemsFromTrueTypeBits(quint32 unicodeRange[4], quint32 codePageRange[2]);
+ static QFont::Weight weightFromInteger(int weight);
//callback
static void registerQPF2Font(const QByteArray &dataArray, void *handle);
diff --git a/src/gui/text/qstatictext.cpp b/src/gui/text/qstatictext.cpp
index a7868f36ab..913cd08a0e 100644
--- a/src/gui/text/qstatictext.cpp
+++ b/src/gui/text/qstatictext.cpp
@@ -393,7 +393,7 @@ QSizeF QStaticText::size() const
}
QStaticTextPrivate::QStaticTextPrivate()
- : textWidth(-1.0), items(0), itemCount(0), glyphPool(0), positionPool(0), charPool(0),
+ : textWidth(-1.0), items(0), itemCount(0), glyphPool(0), positionPool(0),
needsRelayout(true), useBackendOptimizations(false), textFormat(Qt::AutoText),
untransformedCoordinates(false)
{
@@ -401,7 +401,7 @@ QStaticTextPrivate::QStaticTextPrivate()
QStaticTextPrivate::QStaticTextPrivate(const QStaticTextPrivate &other)
: text(other.text), font(other.font), textWidth(other.textWidth), matrix(other.matrix),
- items(0), itemCount(0), glyphPool(0), positionPool(0), charPool(0), textOption(other.textOption),
+ items(0), itemCount(0), glyphPool(0), positionPool(0), textOption(other.textOption),
needsRelayout(true), useBackendOptimizations(other.useBackendOptimizations),
textFormat(other.textFormat), untransformedCoordinates(other.untransformedCoordinates)
{
@@ -412,7 +412,6 @@ QStaticTextPrivate::~QStaticTextPrivate()
delete[] items;
delete[] glyphPool;
delete[] positionPool;
- delete[] charPool;
}
QStaticTextPrivate *QStaticTextPrivate::get(const QStaticText *q)
@@ -431,7 +430,7 @@ namespace {
{
}
- virtual void updateState(const QPaintEngineState &newState)
+ virtual void updateState(const QPaintEngineState &newState) Q_DECL_OVERRIDE
{
if (newState.state() & QPaintEngine::DirtyPen
&& newState.pen().color() != m_currentColor) {
@@ -440,15 +439,13 @@ namespace {
}
}
- virtual void drawTextItem(const QPointF &position, const QTextItem &textItem)
+ virtual void drawTextItem(const QPointF &position, const QTextItem &textItem) Q_DECL_OVERRIDE
{
const QTextItemInt &ti = static_cast<const QTextItemInt &>(textItem);
QStaticTextItem currentItem;
currentItem.setFontEngine(ti.fontEngine);
currentItem.font = ti.font();
- currentItem.charOffset = m_chars.size();
- currentItem.numChars = ti.num_chars;
currentItem.glyphOffset = m_glyphs.size(); // Store offset into glyph pool
currentItem.positionOffset = m_glyphs.size(); // Offset into position pool
currentItem.useBackendOptimizations = m_useBackendOptimizations;
@@ -468,7 +465,6 @@ namespace {
m_glyphs.resize(m_glyphs.size() + size);
m_positions.resize(m_glyphs.size());
- m_chars.resize(m_chars.size() + ti.num_chars);
glyph_t *glyphsDestination = m_glyphs.data() + currentItem.glyphOffset;
memcpy(glyphsDestination, glyphs.constData(), sizeof(glyph_t) * currentItem.numGlyphs);
@@ -476,21 +472,18 @@ namespace {
QFixedPoint *positionsDestination = m_positions.data() + currentItem.positionOffset;
memcpy(positionsDestination, positions.constData(), sizeof(QFixedPoint) * currentItem.numGlyphs);
- QChar *charsDestination = m_chars.data() + currentItem.charOffset;
- memcpy(charsDestination, ti.chars, sizeof(QChar) * currentItem.numChars);
-
m_items.append(currentItem);
}
- virtual void drawPolygon(const QPointF *, int , PolygonDrawMode )
+ virtual void drawPolygon(const QPointF *, int , PolygonDrawMode ) Q_DECL_OVERRIDE
{
/* intentionally empty */
}
- virtual bool begin(QPaintDevice *) { return true; }
- virtual bool end() { return true; }
- virtual void drawPixmap(const QRectF &, const QPixmap &, const QRectF &) {}
- virtual Type type() const
+ virtual bool begin(QPaintDevice *) Q_DECL_OVERRIDE { return true; }
+ virtual bool end() Q_DECL_OVERRIDE { return true; }
+ virtual void drawPixmap(const QRectF &, const QPixmap &, const QRectF &) Q_DECL_OVERRIDE {}
+ virtual Type type() const Q_DECL_OVERRIDE
{
return User;
}
@@ -510,16 +503,10 @@ namespace {
return m_glyphs;
}
- QVector<QChar> chars() const
- {
- return m_chars;
- }
-
private:
QVector<QStaticTextItem> m_items;
QVector<QFixedPoint> m_positions;
QVector<glyph_t> m_glyphs;
- QVector<QChar> m_chars;
bool m_dirtyPen;
bool m_useBackendOptimizations;
@@ -541,7 +528,7 @@ namespace {
delete m_paintEngine;
}
- int metric(PaintDeviceMetric m) const
+ int metric(PaintDeviceMetric m) const Q_DECL_OVERRIDE
{
int val;
switch (m) {
@@ -575,7 +562,7 @@ namespace {
return val;
}
- virtual QPaintEngine *paintEngine() const
+ virtual QPaintEngine *paintEngine() const Q_DECL_OVERRIDE
{
return m_paintEngine;
}
@@ -595,11 +582,6 @@ namespace {
return m_paintEngine->items();
}
- QVector<QChar> chars() const
- {
- return m_paintEngine->chars();
- }
-
private:
DrawTextItemRecorder *m_paintEngine;
};
@@ -677,7 +659,6 @@ void QStaticTextPrivate::init()
delete[] items;
delete[] glyphPool;
delete[] positionPool;
- delete[] charPool;
position = QPointF(0, 0);
@@ -693,7 +674,6 @@ void QStaticTextPrivate::init()
QVector<QStaticTextItem> deviceItems = device.items();
QVector<QFixedPoint> positions = device.positions();
QVector<glyph_t> glyphs = device.glyphs();
- QVector<QChar> chars = device.chars();
itemCount = deviceItems.size();
items = new QStaticTextItem[itemCount];
@@ -704,15 +684,11 @@ void QStaticTextPrivate::init()
positionPool = new QFixedPoint[positions.size()];
memcpy(positionPool, positions.constData(), positions.size() * sizeof(QFixedPoint));
- charPool = new QChar[chars.size()];
- memcpy(charPool, chars.constData(), chars.size() * sizeof(QChar));
-
for (int i=0; i<itemCount; ++i) {
items[i] = deviceItems.at(i);
items[i].glyphs = glyphPool + items[i].glyphOffset;
items[i].glyphPositions = positionPool + items[i].positionOffset;
- items[i].chars = charPool + items[i].charOffset;
}
needsRelayout = false;
diff --git a/src/gui/text/qstatictext_p.h b/src/gui/text/qstatictext_p.h
index 29db8836d9..694a2e4baa 100644
--- a/src/gui/text/qstatictext_p.h
+++ b/src/gui/text/qstatictext_p.h
@@ -70,7 +70,7 @@ public:
class Q_GUI_EXPORT QStaticTextItem
{
public:
- QStaticTextItem() : chars(0), numChars(0), useBackendOptimizations(false),
+ QStaticTextItem() : useBackendOptimizations(false),
userDataNeedsUpdate(0), usesRawFont(0),
m_fontEngine(0), m_userData(0) {}
@@ -83,9 +83,7 @@ public:
{
glyphPositions = other.glyphPositions;
glyphs = other.glyphs;
- chars = other.chars;
numGlyphs = other.numGlyphs;
- numChars = other.numChars;
font = other.font;
color = other.color;
useBackendOptimizations = other.useBackendOptimizations;
@@ -125,28 +123,22 @@ public:
glyph_t *glyphs; // 4 bytes per glyph
int glyphOffset;
};
- union {
- QChar *chars; // 2 bytes per glyph
- int charOffset;
- };
// =================
- // 14 bytes per glyph
+ // 12 bytes per glyph
- // 12 bytes for pointers
+ // 8 bytes for pointers
int numGlyphs; // 4 bytes per item
- int numChars; // 4 bytes per item
QFont font; // 8 bytes per item
QColor color; // 10 bytes per item
char useBackendOptimizations : 1; // 1 byte per item
char userDataNeedsUpdate : 1; //
char usesRawFont : 1; //
- // ================
- // 51 bytes per item
private: // Needs special handling in setters, so private to avoid abuse
QFontEngine *m_fontEngine; // 4 bytes per item
QStaticTextUserData *m_userData; // 8 bytes per item
-
+ // ================
+ // 43 bytes per item
};
class QStaticText;
@@ -179,7 +171,6 @@ public:
glyph_t *glyphPool; // 4 bytes per text
QFixedPoint *positionPool; // 4 bytes per text
- QChar *charPool; // 4 bytes per text
QTextOption textOption; // 28 bytes per text
@@ -188,7 +179,7 @@ public:
unsigned char textFormat : 2;
unsigned char untransformedCoordinates : 1;
// ================
- // 195 bytes per text
+ // 191 bytes per text
static QStaticTextPrivate *get(const QStaticText *q);
};
diff --git a/src/gui/text/qtextdocument.cpp b/src/gui/text/qtextdocument.cpp
index ea2b794feb..bd5877c924 100644
--- a/src/gui/text/qtextdocument.cpp
+++ b/src/gui/text/qtextdocument.cpp
@@ -40,6 +40,7 @@
#include "qtextlist.h"
#include <qdebug.h>
#include <qregexp.h>
+#include <qregularexpression.h>
#include <qvarlengtharray.h>
#include <qtextcodec.h>
#include <qthread.h>
@@ -1243,6 +1244,39 @@ void QTextDocument::setHtml(const QString &html)
\sa metaInformation(), setMetaInformation()
*/
+static bool findInBlock(const QTextBlock &block, const QString &expression, int offset,
+ QTextDocument::FindFlags options, QTextCursor *cursor)
+{
+ QString text = block.text();
+ text.replace(QChar::Nbsp, QLatin1Char(' '));
+ Qt::CaseSensitivity sensitivity = options & QTextDocument::FindCaseSensitively ? Qt::CaseSensitive : Qt::CaseInsensitive;
+ int idx = -1;
+
+ while (offset >= 0 && offset <= text.length()) {
+ idx = (options & QTextDocument::FindBackward) ?
+ text.lastIndexOf(expression, offset, sensitivity) : text.indexOf(expression, offset, sensitivity);
+ if (idx == -1)
+ return false;
+
+ if (options & QTextDocument::FindWholeWords) {
+ const int start = idx;
+ const int end = start + expression.length();
+ if ((start != 0 && text.at(start - 1).isLetterOrNumber())
+ || (end != text.length() && text.at(end).isLetterOrNumber())) {
+ //if this is not a whole word, continue the search in the string
+ offset = (options & QTextDocument::FindBackward) ? idx-1 : end+1;
+ idx = -1;
+ continue;
+ }
+ }
+ //we have a hit, return the cursor for that.
+ *cursor = QTextCursor(block.docHandle(), block.position() + idx);
+ cursor->setPosition(cursor->position() + expression.length(), QTextCursor::KeepAnchor);
+ return true;
+ }
+ return false;
+}
+
/*!
\fn QTextCursor QTextDocument::find(const QString &subString, int position, FindFlags options) const
@@ -1261,16 +1295,44 @@ void QTextDocument::setHtml(const QString &html)
*/
QTextCursor QTextDocument::find(const QString &subString, int from, FindFlags options) const
{
- QRegExp expr(subString);
- expr.setPatternSyntax(QRegExp::FixedString);
- expr.setCaseSensitivity((options & QTextDocument::FindCaseSensitively) ? Qt::CaseSensitive : Qt::CaseInsensitive);
+ Q_D(const QTextDocument);
+
+ if (subString.isEmpty())
+ return QTextCursor();
+
+ int pos = from;
+ //the cursor is positioned between characters, so for a backward search
+ //do not include the character given in the position.
+ if (options & FindBackward) {
+ --pos ;
+ if (pos < subString.size())
+ return QTextCursor();
+ }
- return find(expr, from, options);
+ QTextCursor cursor;
+ QTextBlock block = d->blocksFind(pos);
+ int blockOffset = pos - block.position();
+
+ if (!(options & FindBackward)) {
+ while (block.isValid()) {
+ if (findInBlock(block, subString, blockOffset, options, &cursor))
+ return cursor;
+ block = block.next();
+ blockOffset = 0;
+ }
+ } else {
+ while (block.isValid()) {
+ if (findInBlock(block, subString, blockOffset, options, &cursor))
+ return cursor;
+ block = block.previous();
+ blockOffset = block.length() - 2;
+ }
+ }
+
+ return QTextCursor();
}
/*!
- \fn QTextCursor QTextDocument::find(const QString &subString, const QTextCursor &cursor, FindFlags options) const
-
Finds the next occurrence of the string, \a subString, in the document.
The search starts at the position of the given \a cursor, and proceeds
forwards through the document unless specified otherwise in the search
@@ -1285,25 +1347,23 @@ QTextCursor QTextDocument::find(const QString &subString, int from, FindFlags op
By default the search is case-sensitive, and can match text anywhere in the
document.
*/
-QTextCursor QTextDocument::find(const QString &subString, const QTextCursor &from, FindFlags options) const
+QTextCursor QTextDocument::find(const QString &subString, const QTextCursor &cursor, FindFlags options) const
{
int pos = 0;
- if (!from.isNull()) {
+ if (!cursor.isNull()) {
if (options & QTextDocument::FindBackward)
- pos = from.selectionStart();
+ pos = cursor.selectionStart();
else
- pos = from.selectionEnd();
+ pos = cursor.selectionEnd();
}
- QRegExp expr(subString);
- expr.setPatternSyntax(QRegExp::FixedString);
- expr.setCaseSensitivity((options & QTextDocument::FindCaseSensitively) ? Qt::CaseSensitive : Qt::CaseInsensitive);
- return find(expr, pos, options);
+ return find(subString, pos, options);
}
+#ifndef QT_NO_REGEXP
static bool findInBlock(const QTextBlock &block, const QRegExp &expression, int offset,
- QTextDocument::FindFlags options, QTextCursor &cursor)
+ QTextDocument::FindFlags options, QTextCursor *cursor)
{
QRegExp expr(expression);
QString text = block.text();
@@ -1328,22 +1388,18 @@ static bool findInBlock(const QTextBlock &block, const QRegExp &expression, int
}
}
//we have a hit, return the cursor for that.
- break;
+ *cursor = QTextCursor(block.docHandle(), block.position() + idx);
+ cursor->setPosition(cursor->position() + expr.matchedLength(), QTextCursor::KeepAnchor);
+ return true;
}
- if (idx == -1)
- return false;
- cursor = QTextCursor(block.docHandle(), block.position() + idx);
- cursor.setPosition(cursor.position() + expr.matchedLength(), QTextCursor::KeepAnchor);
- return true;
+ return false;
}
/*!
- \fn QTextCursor QTextDocument::find(const QRegExp & expr, int position, FindFlags options) const
-
\overload
Finds the next occurrence, matching the regular expression, \a expr, in the document.
- The search starts at the given \a position, and proceeds forwards
+ The search starts at the given \a from position, and proceeds forwards
through the document unless specified otherwise in the search options.
The \a options control the type of search performed. The FindCaseSensitively
option is ignored for this overload, use QRegExp::caseSensitivity instead.
@@ -1351,7 +1407,7 @@ static bool findInBlock(const QTextBlock &block, const QRegExp &expression, int
Returns a cursor with the match selected if a match was found; otherwise
returns a null cursor.
- If the \a position is 0 (the default) the search begins from the beginning
+ If the \a from position is 0 (the default) the search begins from the beginning
of the document; otherwise it begins at the specified position.
*/
QTextCursor QTextDocument::find(const QRegExp & expr, int from, FindFlags options) const
@@ -1372,19 +1428,17 @@ QTextCursor QTextDocument::find(const QRegExp & expr, int from, FindFlags option
QTextCursor cursor;
QTextBlock block = d->blocksFind(pos);
-
+ int blockOffset = pos - block.position();
if (!(options & FindBackward)) {
- int blockOffset = qMax(0, pos - block.position());
while (block.isValid()) {
- if (findInBlock(block, expr, blockOffset, options, cursor))
+ if (findInBlock(block, expr, blockOffset, options, &cursor))
return cursor;
- blockOffset = 0;
block = block.next();
+ blockOffset = 0;
}
} else {
- int blockOffset = pos - block.position();
while (block.isValid()) {
- if (findInBlock(block, expr, blockOffset, options, cursor))
+ if (findInBlock(block, expr, blockOffset, options, &cursor))
return cursor;
block = block.previous();
blockOffset = block.length() - 1;
@@ -1395,10 +1449,10 @@ QTextCursor QTextDocument::find(const QRegExp & expr, int from, FindFlags option
}
/*!
- \fn QTextCursor QTextDocument::find(const QRegExp &expr, const QTextCursor &cursor, FindFlags options) const
+ \overload
Finds the next occurrence, matching the regular expression, \a expr, in the document.
- The search starts at the position of the given \a cursor, and proceeds
+ The search starts at the position of the given \a from cursor, and proceeds
forwards through the document unless specified otherwise in the search
options. The \a options control the type of search performed. The FindCaseSensitively
option is ignored for this overload, use QRegExp::caseSensitivity instead.
@@ -1406,24 +1460,147 @@ QTextCursor QTextDocument::find(const QRegExp & expr, int from, FindFlags option
Returns a cursor with the match selected if a match was found; otherwise
returns a null cursor.
- If the given \a cursor has a selection, the search begins after the
+ If the given \a from cursor has a selection, the search begins after the
selection; otherwise it begins at the cursor's position.
By default the search is case-sensitive, and can match text anywhere in the
document.
*/
-QTextCursor QTextDocument::find(const QRegExp &expr, const QTextCursor &from, FindFlags options) const
+QTextCursor QTextDocument::find(const QRegExp &expr, const QTextCursor &cursor, FindFlags options) const
{
int pos = 0;
- if (!from.isNull()) {
+ if (!cursor.isNull()) {
if (options & QTextDocument::FindBackward)
- pos = from.selectionStart();
+ pos = cursor.selectionStart();
else
- pos = from.selectionEnd();
+ pos = cursor.selectionEnd();
}
return find(expr, pos, options);
}
+#endif // QT_REGEXP
+
+#ifndef QT_NO_REGULAREXPRESSION
+static bool findInBlock(const QTextBlock &block, const QRegularExpression &expression, int offset,
+ QTextDocument::FindFlags options, QTextCursor *cursor)
+{
+ QRegularExpression expr(expression);
+ if (!(options & QTextDocument::FindCaseSensitively))
+ expr.setPatternOptions(expr.patternOptions() | QRegularExpression::CaseInsensitiveOption);
+ else
+ expr.setPatternOptions(expr.patternOptions() & ~QRegularExpression::CaseInsensitiveOption);
+
+ QString text = block.text();
+ text.replace(QChar::Nbsp, QLatin1Char(' '));
+ QRegularExpressionMatch match;
+ int idx = -1;
+
+ while (offset >= 0 && offset <= text.length()) {
+ idx = (options & QTextDocument::FindBackward) ?
+ text.lastIndexOf(expr, offset, &match) : text.indexOf(expr, offset, &match);
+ if (idx == -1)
+ return false;
+
+ if (options & QTextDocument::FindWholeWords) {
+ const int start = idx;
+ const int end = start + match.capturedLength();
+ if ((start != 0 && text.at(start - 1).isLetterOrNumber())
+ || (end != text.length() && text.at(end).isLetterOrNumber())) {
+ //if this is not a whole word, continue the search in the string
+ offset = (options & QTextDocument::FindBackward) ? idx-1 : end+1;
+ idx = -1;
+ continue;
+ }
+ }
+ //we have a hit, return the cursor for that.
+ *cursor = QTextCursor(block.docHandle(), block.position() + idx);
+ cursor->setPosition(cursor->position() + match.capturedLength(), QTextCursor::KeepAnchor);
+ return true;
+ }
+ return false;
+}
+
+/*!
+ \since 5.5
+
+ Finds the next occurrence, matching the regular expression, \a expr, in the document.
+ The search starts at the given \a from position, and proceeds forwards
+ through the document unless specified otherwise in the search options.
+ The \a options control the type of search performed.
+
+ Returns a cursor with the match selected if a match was found; otherwise
+ returns a null cursor.
+
+ If the \a from position is 0 (the default) the search begins from the beginning
+ of the document; otherwise it begins at the specified position.
+*/
+QTextCursor QTextDocument::find(const QRegularExpression &expr, int from, FindFlags options) const
+{
+ Q_D(const QTextDocument);
+
+ if (!expr.isValid())
+ return QTextCursor();
+
+ int pos = from;
+ //the cursor is positioned between characters, so for a backward search
+ //do not include the character given in the position.
+ if (options & FindBackward) {
+ --pos ;
+ if (pos < 0)
+ return QTextCursor();
+ }
+
+ QTextCursor cursor;
+ QTextBlock block = d->blocksFind(pos);
+ int blockOffset = pos - block.position();
+ if (!(options & FindBackward)) {
+ while (block.isValid()) {
+ if (findInBlock(block, expr, blockOffset, options, &cursor))
+ return cursor;
+ block = block.next();
+ blockOffset = 0;
+ }
+ } else {
+ while (block.isValid()) {
+ if (findInBlock(block, expr, blockOffset, options, &cursor))
+ return cursor;
+ block = block.previous();
+ blockOffset = block.length() - 1;
+ }
+ }
+
+ return QTextCursor();
+}
+
+/*!
+ \since 5.5
+
+ Finds the next occurrence, matching the regular expression, \a expr, in the document.
+ The search starts at the position of the given \a cursor, and proceeds
+ forwards through the document unless specified otherwise in the search
+ options. The \a options control the type of search performed.
+
+ Returns a cursor with the match selected if a match was found; otherwise
+ returns a null cursor.
+
+ If the given \a cursor has a selection, the search begins after the
+ selection; otherwise it begins at the cursor's position.
+
+ By default the search is case-sensitive, and can match text anywhere in the
+ document.
+*/
+QTextCursor QTextDocument::find(const QRegularExpression &expr, const QTextCursor &cursor, FindFlags options) const
+{
+ int pos = 0;
+ if (!cursor.isNull()) {
+ if (options & QTextDocument::FindBackward)
+ pos = cursor.selectionStart();
+ else
+ pos = cursor.selectionEnd();
+ }
+ return find(expr, pos, options);
+}
+#endif // QT_NO_REGULAREXPRESSION
/*!
\fn QTextObject *QTextDocument::createObject(const QTextFormat &format)
diff --git a/src/gui/text/qtextdocument.h b/src/gui/text/qtextdocument.h
index 2329a9e721..271c29b16b 100644
--- a/src/gui/text/qtextdocument.h
+++ b/src/gui/text/qtextdocument.h
@@ -160,10 +160,17 @@ public:
Q_DECLARE_FLAGS(FindFlags, FindFlag)
QTextCursor find(const QString &subString, int from = 0, FindFlags options = 0) const;
- QTextCursor find(const QString &subString, const QTextCursor &from, FindFlags options = 0) const;
+ QTextCursor find(const QString &subString, const QTextCursor &cursor, FindFlags options = 0) const;
+#ifndef QT_NO_REGEXP
QTextCursor find(const QRegExp &expr, int from = 0, FindFlags options = 0) const;
- QTextCursor find(const QRegExp &expr, const QTextCursor &from, FindFlags options = 0) const;
+ QTextCursor find(const QRegExp &expr, const QTextCursor &cursor, FindFlags options = 0) const;
+#endif
+
+#ifndef QT_NO_REGULAREXPRESSION
+ QTextCursor find(const QRegularExpression &expr, int from = 0, FindFlags options = 0) const;
+ QTextCursor find(const QRegularExpression &expr, const QTextCursor &cursor, FindFlags options = 0) const;
+#endif
QTextFrame *frameAt(int pos) const;
QTextFrame *rootFrame() const;
diff --git a/src/gui/text/qtextdocument_p.cpp b/src/gui/text/qtextdocument_p.cpp
index 8ff15106e3..d30ff78b8f 100644
--- a/src/gui/text/qtextdocument_p.cpp
+++ b/src/gui/text/qtextdocument_p.cpp
@@ -125,14 +125,12 @@ static bool isValidBlockSeparator(QChar ch)
|| ch == QTextEndOfFrame;
}
-#if !defined(QT_NO_DEBUG) || defined(QT_FORCE_ASSERTS)
static bool noBlockInString(const QString &str)
{
return !str.contains(QChar::ParagraphSeparator)
&& !str.contains(QTextBeginningOfFrame)
&& !str.contains(QTextEndOfFrame);
}
-#endif
bool QTextUndoCommand::tryMerge(const QTextUndoCommand &other)
{
diff --git a/src/gui/text/qtextdocumentlayout_p.h b/src/gui/text/qtextdocumentlayout_p.h
index f72a177d13..70c256ce89 100644
--- a/src/gui/text/qtextdocumentlayout_p.h
+++ b/src/gui/text/qtextdocumentlayout_p.h
@@ -66,11 +66,11 @@ public:
explicit QTextDocumentLayout(QTextDocument *doc);
// from the abstract layout
- void draw(QPainter *painter, const PaintContext &context);
- int hitTest(const QPointF &point, Qt::HitTestAccuracy accuracy) const;
+ void draw(QPainter *painter, const PaintContext &context) Q_DECL_OVERRIDE;
+ int hitTest(const QPointF &point, Qt::HitTestAccuracy accuracy) const Q_DECL_OVERRIDE;
- int pageCount() const;
- QSizeF documentSize() const;
+ int pageCount() const Q_DECL_OVERRIDE;
+ QSizeF documentSize() const Q_DECL_OVERRIDE;
void setCursorWidth(int width);
int cursorWidth() const;
@@ -81,8 +81,8 @@ public:
// internal for QTextEdit's NoWrap mode
void setViewport(const QRectF &viewport);
- virtual QRectF frameBoundingRect(QTextFrame *frame) const;
- virtual QRectF blockBoundingRect(const QTextBlock &block) const;
+ virtual QRectF frameBoundingRect(QTextFrame *frame) const Q_DECL_OVERRIDE;
+ virtual QRectF blockBoundingRect(const QTextBlock &block) const Q_DECL_OVERRIDE;
QRectF tableBoundingRect(QTextTable *table) const;
QRectF tableCellBoundingRect(QTextTable *table, const QTextTableCell &cell) const;
@@ -97,12 +97,12 @@ public:
bool contentHasAlignment() const;
protected:
- void documentChanged(int from, int oldLength, int length);
- void resizeInlineObject(QTextInlineObject item, int posInDocument, const QTextFormat &format);
- void positionInlineObject(QTextInlineObject item, int posInDocument, const QTextFormat &format);
+ void documentChanged(int from, int oldLength, int length) Q_DECL_OVERRIDE;
+ void resizeInlineObject(QTextInlineObject item, int posInDocument, const QTextFormat &format) Q_DECL_OVERRIDE;
+ void positionInlineObject(QTextInlineObject item, int posInDocument, const QTextFormat &format) Q_DECL_OVERRIDE;
void drawInlineObject(QPainter *p, const QRectF &rect, QTextInlineObject item,
- int posInDocument, const QTextFormat &format);
- virtual void timerEvent(QTimerEvent *e);
+ int posInDocument, const QTextFormat &format) Q_DECL_OVERRIDE;
+ virtual void timerEvent(QTimerEvent *e) Q_DECL_OVERRIDE;
private:
QRectF doLayout(int from, int oldLength, int length);
void layoutFinished();
diff --git a/src/gui/text/qtextengine.cpp b/src/gui/text/qtextengine.cpp
index d156124b98..ff84bc0cca 100644
--- a/src/gui/text/qtextengine.cpp
+++ b/src/gui/text/qtextengine.cpp
@@ -1950,7 +1950,7 @@ QFontEngine *QTextEngine::fontEngine(const QScriptItem &si, QFixed *ascent, QFix
if (feCache.prevFontEngine && feCache.prevFontEngine->type() == QFontEngine::Multi && feCache.prevScript == script) {
engine = feCache.prevFontEngine;
} else {
- engine = QFontEngineMultiBasicImpl::createMultiFontEngine(rawFont.d->fontEngine, script);
+ engine = QFontEngineMulti::createMultiFontEngine(rawFont.d->fontEngine, script);
feCache.prevFontEngine = engine;
feCache.prevScript = script;
engine->ref.ref();
@@ -1965,7 +1965,7 @@ QFontEngine *QTextEngine::fontEngine(const QScriptItem &si, QFixed *ascent, QFix
} else {
QFontEngine *scEngine = rawFont.d->fontEngine->cloneWithSize(smallCapsFraction * rawFont.pixelSize());
scEngine->ref.ref();
- scaledEngine = QFontEngineMultiBasicImpl::createMultiFontEngine(scEngine, script);
+ scaledEngine = QFontEngineMulti::createMultiFontEngine(scEngine, script);
scaledEngine->ref.ref();
feCache.prevScaledFontEngine = scaledEngine;
// If scEngine is not ref'ed by scaledEngine, make sure it is deallocated and not leaked.
diff --git a/src/gui/text/qtextformat.cpp b/src/gui/text/qtextformat.cpp
index cecfd85df1..1502758ee8 100644
--- a/src/gui/text/qtextformat.cpp
+++ b/src/gui/text/qtextformat.cpp
@@ -258,20 +258,6 @@ private:
friend QDataStream &operator>>(QDataStream &, QTextFormat &);
};
-// this is only safe because sizeof(int) == sizeof(float)
-static inline uint hash(float d)
-{
-#ifdef Q_CC_GNU
- // this is a GCC extension and isn't guaranteed to work in other compilers
- // the reinterpret_cast below generates a strict-aliasing warning with GCC
- union { float f; uint u; } cvt;
- cvt.f = d;
- return cvt.u;
-#else
- return reinterpret_cast<uint&>(d);
-#endif
-}
-
static inline uint hash(const QColor &color)
{
return (color.isValid()) ? color.rgba() : 0x234109;
@@ -279,7 +265,7 @@ static inline uint hash(const QColor &color)
static inline uint hash(const QPen &pen)
{
- return hash(pen.color()) + hash(pen.widthF());
+ return hash(pen.color()) + qHash(pen.widthF());
}
static inline uint hash(const QBrush &brush)
@@ -292,7 +278,7 @@ static inline uint variantHash(const QVariant &variant)
// simple and fast hash functions to differentiate between type and value
switch (variant.userType()) { // sorted by occurrence frequency
case QVariant::String: return qHash(variant.toString());
- case QVariant::Double: return hash(variant.toDouble());
+ case QVariant::Double: return qHash(variant.toDouble());
case QVariant::Int: return 0x811890 + variant.toInt();
case QVariant::Brush:
return 0x01010101 + hash(qvariant_cast<QBrush>(variant));
@@ -303,7 +289,7 @@ static inline uint variantHash(const QVariant &variant)
case QVariant::Color: return hash(qvariant_cast<QColor>(variant));
case QVariant::TextLength:
return 0x377 + hash(qvariant_cast<QTextLength>(variant).rawValue());
- case QMetaType::Float: return hash(variant.toFloat());
+ case QMetaType::Float: return qHash(variant.toFloat());
case QVariant::Invalid: return 0;
default: break;
}
diff --git a/src/gui/text/qtexthtmlparser.cpp b/src/gui/text/qtexthtmlparser.cpp
index e1a7781722..47b090edc9 100644
--- a/src/gui/text/qtexthtmlparser.cpp
+++ b/src/gui/text/qtexthtmlparser.cpp
@@ -1713,14 +1713,14 @@ public:
inline QTextHtmlStyleSelector(const QTextHtmlParser *parser)
: parser(parser) { nameCaseSensitivity = Qt::CaseInsensitive; }
- virtual QStringList nodeNames(NodePtr node) const;
- virtual QString attribute(NodePtr node, const QString &name) const;
- virtual bool hasAttributes(NodePtr node) const;
- virtual bool isNullNode(NodePtr node) const;
- virtual NodePtr parentNode(NodePtr node) const;
- virtual NodePtr previousSiblingNode(NodePtr node) const;
- virtual NodePtr duplicateNode(NodePtr node) const;
- virtual void freeNode(NodePtr node) const;
+ virtual QStringList nodeNames(NodePtr node) const Q_DECL_OVERRIDE;
+ virtual QString attribute(NodePtr node, const QString &name) const Q_DECL_OVERRIDE;
+ virtual bool hasAttributes(NodePtr node) const Q_DECL_OVERRIDE;
+ virtual bool isNullNode(NodePtr node) const Q_DECL_OVERRIDE;
+ virtual NodePtr parentNode(NodePtr node) const Q_DECL_OVERRIDE;
+ virtual NodePtr previousSiblingNode(NodePtr node) const Q_DECL_OVERRIDE;
+ virtual NodePtr duplicateNode(NodePtr node) const Q_DECL_OVERRIDE;
+ virtual void freeNode(NodePtr node) const Q_DECL_OVERRIDE;
private:
const QTextHtmlParser *parser;
diff --git a/src/gui/text/qtextimagehandler_p.h b/src/gui/text/qtextimagehandler_p.h
index c986c81f8b..e3e37ba1c1 100644
--- a/src/gui/text/qtextimagehandler_p.h
+++ b/src/gui/text/qtextimagehandler_p.h
@@ -60,8 +60,8 @@ class Q_GUI_EXPORT QTextImageHandler : public QObject,
public:
explicit QTextImageHandler(QObject *parent = 0);
- virtual QSizeF intrinsicSize(QTextDocument *doc, int posInDocument, const QTextFormat &format);
- virtual void drawObject(QPainter *p, const QRectF &rect, QTextDocument *doc, int posInDocument, const QTextFormat &format);
+ virtual QSizeF intrinsicSize(QTextDocument *doc, int posInDocument, const QTextFormat &format) Q_DECL_OVERRIDE;
+ virtual void drawObject(QPainter *p, const QRectF &rect, QTextDocument *doc, int posInDocument, const QTextFormat &format) Q_DECL_OVERRIDE;
QImage image(QTextDocument *doc, const QTextImageFormat &imageFormat);
};
diff --git a/src/gui/text/qtextodfwriter.cpp b/src/gui/text/qtextodfwriter.cpp
index ef7bbb44ff..2c61d2cfd4 100644
--- a/src/gui/text/qtextodfwriter.cpp
+++ b/src/gui/text/qtextodfwriter.cpp
@@ -88,7 +88,7 @@ public:
if (contentStream)
contentStream->close();
}
- virtual void addFile(const QString &, const QString &, const QByteArray &)
+ virtual void addFile(const QString &, const QString &, const QByteArray &) Q_DECL_OVERRIDE
{
// we ignore this...
}
@@ -131,7 +131,7 @@ public:
zip.close();
}
- virtual void addFile(const QString &fileName, const QString &mimeType, const QByteArray &bytes)
+ virtual void addFile(const QString &fileName, const QString &mimeType, const QByteArray &bytes) Q_DECL_OVERRIDE
{
zip.addFile(fileName, bytes);
addFile(fileName, mimeType);
diff --git a/src/gui/text/qtexttable_p.h b/src/gui/text/qtexttable_p.h
index 0459242ae9..48c72eeef1 100644
--- a/src/gui/text/qtexttable_p.h
+++ b/src/gui/text/qtexttable_p.h
@@ -58,8 +58,8 @@ public:
~QTextTablePrivate();
static QTextTable *createTable(QTextDocumentPrivate *, int pos, int rows, int cols, const QTextTableFormat &tableFormat);
- void fragmentAdded(QChar type, uint fragment);
- void fragmentRemoved(QChar type, uint fragment);
+ void fragmentAdded(QChar type, uint fragment) Q_DECL_OVERRIDE;
+ void fragmentRemoved(QChar type, uint fragment) Q_DECL_OVERRIDE;
void update() const;
diff --git a/src/gui/util/qabstractlayoutstyleinfo.cpp b/src/gui/util/qabstractlayoutstyleinfo.cpp
index 4338a0ccbf..af4ad0470b 100644
--- a/src/gui/util/qabstractlayoutstyleinfo.cpp
+++ b/src/gui/util/qabstractlayoutstyleinfo.cpp
@@ -35,11 +35,4 @@
QT_BEGIN_NAMESPACE
-bool QAbstractLayoutStyleInfo::hasChanged() const
-{
- if (m_changed == Unknown)
- m_changed = hasChangedCore() ? Changed : Unchanged;
- return m_changed == Changed;
-}
-
QT_END_NAMESPACE
diff --git a/src/gui/util/qabstractlayoutstyleinfo_p.h b/src/gui/util/qabstractlayoutstyleinfo_p.h
index 3479c47c4e..d64cb94aa4 100644
--- a/src/gui/util/qabstractlayoutstyleinfo_p.h
+++ b/src/gui/util/qabstractlayoutstyleinfo_p.h
@@ -53,13 +53,8 @@ QT_BEGIN_NAMESPACE
class Q_GUI_EXPORT QAbstractLayoutStyleInfo {
public:
- typedef enum {
- Unknown = 0,
- Changed,
- Unchanged
- } ChangedState;
- QAbstractLayoutStyleInfo() : m_isWindow(false), m_changed(Changed) {}
+ QAbstractLayoutStyleInfo() : m_isWindow(false) {}
virtual ~QAbstractLayoutStyleInfo() {}
virtual qreal combinedLayoutSpacing(QLayoutPolicy::ControlTypes /*controls1*/,
QLayoutPolicy::ControlTypes /*controls2*/, Qt::Orientation /*orientation*/) const {
@@ -74,15 +69,9 @@ public:
virtual qreal spacing(Qt::Orientation orientation) const = 0;
- virtual bool hasChangedCore() const = 0;
+ virtual bool hasChangedCore() const { return false; } // ### Remove when usage is gone from subclasses
- void updateChanged(ChangedState change) {
- m_changed = change;
- }
-
- bool hasChanged() const;
-
- virtual void invalidate() { updateChanged(Changed);}
+ virtual void invalidate() { }
virtual qreal windowMargin(Qt::Orientation orientation) const = 0;
@@ -92,7 +81,9 @@ public:
protected:
unsigned m_isWindow : 1;
- mutable unsigned m_changed : 2;
+ mutable unsigned m_hSpacingState: 2;
+ mutable unsigned m_vSpacingState: 2;
+ mutable qreal m_spacing[2];
};
QT_END_NAMESPACE
diff --git a/src/gui/util/qgridlayoutengine.cpp b/src/gui/util/qgridlayoutengine.cpp
index 65f2297fce..b58096a231 100644
--- a/src/gui/util/qgridlayoutengine.cpp
+++ b/src/gui/util/qgridlayoutengine.cpp
@@ -1367,7 +1367,7 @@ void QGridLayoutEngine::fillRowData(QGridLayoutRowData *rowData,
rowStretch = qMax(rowStretch, itemStretch);
} else {
QGridLayoutMultiCellData &multiCell =
- rowData->multiCellMap[qMakePair(row, effectiveRowSpan)];
+ rowData->multiCellMap[qMakePair(row, itemRowSpan)];
box = &multiCell.q_box;
multiCell.q_stretch = itemStretch;
}
@@ -1590,7 +1590,7 @@ Qt::Orientation QGridLayoutEngine::constraintOrientation() const
void QGridLayoutEngine::ensureGeometries(const QSizeF &size,
const QAbstractLayoutStyleInfo *styleInfo) const
{
- if (!styleInfo->hasChanged() && q_cachedSize == size)
+ if (q_cachedSize == size)
return;
q_cachedSize = size;
diff --git a/src/gui/util/qvalidator.h b/src/gui/util/qvalidator.h
index f09c349ac8..d78a96de3f 100644
--- a/src/gui/util/qvalidator.h
+++ b/src/gui/util/qvalidator.h
@@ -90,8 +90,8 @@ public:
QIntValidator(int bottom, int top, QObject *parent = 0);
~QIntValidator();
- QValidator::State validate(QString &, int &) const;
- void fixup(QString &input) const;
+ QValidator::State validate(QString &, int &) const Q_DECL_OVERRIDE;
+ void fixup(QString &input) const Q_DECL_OVERRIDE;
void setBottom(int);
void setTop(int);
@@ -132,7 +132,7 @@ public:
StandardNotation,
ScientificNotation
};
- QValidator::State validate(QString &, int &) const;
+ QValidator::State validate(QString &, int &) const Q_DECL_OVERRIDE;
virtual void setRange(double bottom, double top, int decimals = 0);
void setBottom(double);
@@ -171,7 +171,7 @@ public:
explicit QRegExpValidator(const QRegExp& rx, QObject *parent = 0);
~QRegExpValidator();
- virtual QValidator::State validate(QString& input, int& pos) const;
+ virtual QValidator::State validate(QString& input, int& pos) const Q_DECL_OVERRIDE;
void setRegExp(const QRegExp& rx);
const QRegExp& regExp() const { return r; }
diff --git a/src/network/access/qhttpmultipart_p.h b/src/network/access/qhttpmultipart_p.h
index f00883afd0..307843ea27 100644
--- a/src/network/access/qhttpmultipart_p.h
+++ b/src/network/access/qhttpmultipart_p.h
@@ -117,30 +117,30 @@ public:
~QHttpMultiPartIODevice() {
}
- virtual bool atEnd() const {
+ virtual bool atEnd() const Q_DECL_OVERRIDE {
return readPointer == size();
}
- virtual qint64 bytesAvailable() const {
+ virtual qint64 bytesAvailable() const Q_DECL_OVERRIDE {
return size() - readPointer;
}
- virtual void close() {
+ virtual void close() Q_DECL_OVERRIDE {
readPointer = 0;
partOffsets.clear();
deviceSize = -1;
QIODevice::close();
}
- virtual qint64 bytesToWrite() const {
+ virtual qint64 bytesToWrite() const Q_DECL_OVERRIDE {
return 0;
}
- virtual qint64 size() const;
- virtual bool isSequential() const;
- virtual bool reset();
- virtual qint64 readData(char *data, qint64 maxSize);
- virtual qint64 writeData(const char *data, qint64 maxSize);
+ virtual qint64 size() const Q_DECL_OVERRIDE;
+ virtual bool isSequential() const Q_DECL_OVERRIDE;
+ virtual bool reset() Q_DECL_OVERRIDE;
+ virtual qint64 readData(char *data, qint64 maxSize) Q_DECL_OVERRIDE;
+ virtual qint64 writeData(const char *data, qint64 maxSize) Q_DECL_OVERRIDE;
QHttpMultiPartPrivate *multiPart;
qint64 readPointer;
diff --git a/src/network/access/qhttpnetworkconnection.cpp b/src/network/access/qhttpnetworkconnection.cpp
index 365ce55f2b..6caf118c59 100644
--- a/src/network/access/qhttpnetworkconnection.cpp
+++ b/src/network/access/qhttpnetworkconnection.cpp
@@ -385,11 +385,12 @@ void QHttpNetworkConnectionPrivate::copyCredentials(int fromChannel, QAuthentica
Q_ASSERT(auth);
// NTLM is a multi phase authentication. Copying credentials between authenticators would mess things up.
- if (!isProxy && channels[fromChannel].authMethod == QAuthenticatorPrivate::Ntlm)
- return;
- if (isProxy && channels[fromChannel].proxyAuthMethod == QAuthenticatorPrivate::Ntlm)
- return;
-
+ if (fromChannel >= 0) {
+ if (!isProxy && channels[fromChannel].authMethod == QAuthenticatorPrivate::Ntlm)
+ return;
+ if (isProxy && channels[fromChannel].proxyAuthMethod == QAuthenticatorPrivate::Ntlm)
+ return;
+ }
// select another channel
QAuthenticator* otherAuth = 0;
diff --git a/src/network/access/qhttpnetworkconnection_p.h b/src/network/access/qhttpnetworkconnection_p.h
index e34c15d729..a65f9018fe 100644
--- a/src/network/access/qhttpnetworkconnection_p.h
+++ b/src/network/access/qhttpnetworkconnection_p.h
@@ -79,6 +79,7 @@ QT_BEGIN_NAMESPACE
class QHttpNetworkRequest;
class QHttpNetworkReply;
+class QHttpThreadDelegate;
class QByteArray;
class QHostInfo;
@@ -148,6 +149,7 @@ public:
private:
Q_DECLARE_PRIVATE(QHttpNetworkConnection)
Q_DISABLE_COPY(QHttpNetworkConnection)
+ friend class QHttpThreadDelegate;
friend class QHttpNetworkReply;
friend class QHttpNetworkReplyPrivate;
friend class QHttpNetworkConnectionChannel;
diff --git a/src/network/access/qhttpnetworkreply_p.h b/src/network/access/qhttpnetworkreply_p.h
index 6163f6c789..7a13358a4b 100644
--- a/src/network/access/qhttpnetworkreply_p.h
+++ b/src/network/access/qhttpnetworkreply_p.h
@@ -82,18 +82,18 @@ public:
explicit QHttpNetworkReply(const QUrl &url = QUrl(), QObject *parent = 0);
virtual ~QHttpNetworkReply();
- QUrl url() const;
- void setUrl(const QUrl &url);
+ QUrl url() const Q_DECL_OVERRIDE;
+ void setUrl(const QUrl &url) Q_DECL_OVERRIDE;
- int majorVersion() const;
- int minorVersion() const;
+ int majorVersion() const Q_DECL_OVERRIDE;
+ int minorVersion() const Q_DECL_OVERRIDE;
- qint64 contentLength() const;
- void setContentLength(qint64 length);
+ qint64 contentLength() const Q_DECL_OVERRIDE;
+ void setContentLength(qint64 length) Q_DECL_OVERRIDE;
- QList<QPair<QByteArray, QByteArray> > header() const;
- QByteArray headerField(const QByteArray &name, const QByteArray &defaultValue = QByteArray()) const;
- void setHeaderField(const QByteArray &name, const QByteArray &data);
+ QList<QPair<QByteArray, QByteArray> > header() const Q_DECL_OVERRIDE;
+ QByteArray headerField(const QByteArray &name, const QByteArray &defaultValue = QByteArray()) const Q_DECL_OVERRIDE;
+ void setHeaderField(const QByteArray &name, const QByteArray &data) Q_DECL_OVERRIDE;
void parseHeader(const QByteArray &header); // mainly for testing
QHttpNetworkRequest request() const;
diff --git a/src/network/access/qhttpnetworkrequest_p.h b/src/network/access/qhttpnetworkrequest_p.h
index d6683afa20..f39f3c7b6f 100644
--- a/src/network/access/qhttpnetworkrequest_p.h
+++ b/src/network/access/qhttpnetworkrequest_p.h
@@ -81,18 +81,18 @@ public:
QHttpNetworkRequest &operator=(const QHttpNetworkRequest &other);
bool operator==(const QHttpNetworkRequest &other) const;
- QUrl url() const;
- void setUrl(const QUrl &url);
+ QUrl url() const Q_DECL_OVERRIDE;
+ void setUrl(const QUrl &url) Q_DECL_OVERRIDE;
- int majorVersion() const;
- int minorVersion() const;
+ int majorVersion() const Q_DECL_OVERRIDE;
+ int minorVersion() const Q_DECL_OVERRIDE;
- qint64 contentLength() const;
- void setContentLength(qint64 length);
+ qint64 contentLength() const Q_DECL_OVERRIDE;
+ void setContentLength(qint64 length) Q_DECL_OVERRIDE;
- QList<QPair<QByteArray, QByteArray> > header() const;
- QByteArray headerField(const QByteArray &name, const QByteArray &defaultValue = QByteArray()) const;
- void setHeaderField(const QByteArray &name, const QByteArray &data);
+ QList<QPair<QByteArray, QByteArray> > header() const Q_DECL_OVERRIDE;
+ QByteArray headerField(const QByteArray &name, const QByteArray &defaultValue = QByteArray()) const Q_DECL_OVERRIDE;
+ void setHeaderField(const QByteArray &name, const QByteArray &data) Q_DECL_OVERRIDE;
Operation operation() const;
void setOperation(Operation operation);
diff --git a/src/network/access/qhttpthreaddelegate.cpp b/src/network/access/qhttpthreaddelegate.cpp
index 06d62fbbcb..e31f23c18c 100644
--- a/src/network/access/qhttpthreaddelegate.cpp
+++ b/src/network/access/qhttpthreaddelegate.cpp
@@ -187,7 +187,7 @@ public:
setShareable(true);
}
- virtual void dispose()
+ virtual void dispose() Q_DECL_OVERRIDE
{
#if 0 // sample code; do this right with the API
Q_ASSERT(!isWorking());
@@ -328,6 +328,16 @@ void QHttpThreadDelegate::startRequest()
// cache the QHttpNetworkConnection corresponding to this cache key
connections.localData()->addEntry(cacheKey, httpConnection);
+ } else {
+ if (httpRequest.withCredentials()) {
+ QNetworkAuthenticationCredential credential = authenticationManager->fetchCachedCredentials(httpRequest.url(), 0);
+ if (!credential.user.isEmpty() && !credential.password.isEmpty()) {
+ QAuthenticator auth;
+ auth.setUser(credential.user);
+ auth.setPassword(credential.password);
+ httpConnection->d_func()->copyCredentials(-1, &auth, false);
+ }
+ }
}
diff --git a/src/network/access/qhttpthreaddelegate_p.h b/src/network/access/qhttpthreaddelegate_p.h
index 16610828cb..b1367fec0c 100644
--- a/src/network/access/qhttpthreaddelegate_p.h
+++ b/src/network/access/qhttpthreaddelegate_p.h
@@ -202,7 +202,7 @@ public:
{
}
- const char* readPointer(qint64 maximumLength, qint64 &len)
+ const char* readPointer(qint64 maximumLength, qint64 &len) Q_DECL_OVERRIDE
{
if (m_amount > 0) {
len = m_amount;
@@ -222,7 +222,7 @@ public:
return 0;
}
- bool advanceReadPointer(qint64 a)
+ bool advanceReadPointer(qint64 a) Q_DECL_OVERRIDE
{
if (m_data == 0)
return false;
@@ -238,7 +238,7 @@ public:
return true;
}
- bool atEnd()
+ bool atEnd() Q_DECL_OVERRIDE
{
if (m_amount > 0)
return false;
@@ -246,7 +246,7 @@ public:
return m_atEnd;
}
- bool reset()
+ bool reset() Q_DECL_OVERRIDE
{
m_amount = 0;
m_data = 0;
@@ -257,7 +257,7 @@ public:
return b;
}
- qint64 size()
+ qint64 size() Q_DECL_OVERRIDE
{
return m_size;
}
diff --git a/src/network/access/qnetworkaccessauthenticationmanager.cpp b/src/network/access/qnetworkaccessauthenticationmanager.cpp
index c8ba8ae978..622ec6c082 100644
--- a/src/network/access/qnetworkaccessauthenticationmanager.cpp
+++ b/src/network/access/qnetworkaccessauthenticationmanager.cpp
@@ -89,7 +89,7 @@ public:
}
}
- virtual void dispose() { delete this; }
+ virtual void dispose() Q_DECL_OVERRIDE { delete this; }
};
#ifndef QT_NO_NETWORKPROXY
diff --git a/src/network/access/qnetworkaccesscache_p.h b/src/network/access/qnetworkaccesscache_p.h
index 171c2cda86..66b2e509bf 100644
--- a/src/network/access/qnetworkaccesscache_p.h
+++ b/src/network/access/qnetworkaccesscache_p.h
@@ -99,7 +99,7 @@ signals:
void entryReady(QNetworkAccessCache::CacheableObject *);
protected:
- void timerEvent(QTimerEvent *);
+ void timerEvent(QTimerEvent *) Q_DECL_OVERRIDE;
private:
// idea copied from qcache.h
diff --git a/src/network/access/qnetworkaccesscachebackend_p.h b/src/network/access/qnetworkaccesscachebackend_p.h
index f298b84471..c91e5a9206 100644
--- a/src/network/access/qnetworkaccesscachebackend_p.h
+++ b/src/network/access/qnetworkaccesscachebackend_p.h
@@ -58,12 +58,12 @@ public:
QNetworkAccessCacheBackend();
~QNetworkAccessCacheBackend();
- void open();
- void closeDownstreamChannel();
+ void open() Q_DECL_OVERRIDE;
+ void closeDownstreamChannel() Q_DECL_OVERRIDE;
void closeUpstreamChannel();
void upstreamReadyRead();
- void downstreamReadyWrite();
+ void downstreamReadyWrite() Q_DECL_OVERRIDE;
private:
bool sendCacheContents();
diff --git a/src/network/access/qnetworkaccessdebugpipebackend_p.h b/src/network/access/qnetworkaccessdebugpipebackend_p.h
index da8cc9a8d2..cb5a12722f 100644
--- a/src/network/access/qnetworkaccessdebugpipebackend_p.h
+++ b/src/network/access/qnetworkaccessdebugpipebackend_p.h
@@ -61,10 +61,10 @@ public:
QNetworkAccessDebugPipeBackend();
virtual ~QNetworkAccessDebugPipeBackend();
- virtual void open();
- virtual void closeDownstreamChannel();
+ virtual void open() Q_DECL_OVERRIDE;
+ virtual void closeDownstreamChannel() Q_DECL_OVERRIDE;
- virtual void downstreamReadyWrite();
+ virtual void downstreamReadyWrite() Q_DECL_OVERRIDE;
protected:
void pushFromSocketToDownstream();
@@ -96,7 +96,7 @@ class QNetworkAccessDebugPipeBackendFactory: public QNetworkAccessBackendFactory
public:
virtual QStringList supportedSchemes() const Q_DECL_OVERRIDE;
virtual QNetworkAccessBackend *create(QNetworkAccessManager::Operation op,
- const QNetworkRequest &request) const;
+ const QNetworkRequest &request) const Q_DECL_OVERRIDE;
};
#endif // QT_BUILD_INTERNAL
diff --git a/src/network/access/qnetworkaccessfilebackend_p.h b/src/network/access/qnetworkaccessfilebackend_p.h
index e0fe148aa0..3109bb55e7 100644
--- a/src/network/access/qnetworkaccessfilebackend_p.h
+++ b/src/network/access/qnetworkaccessfilebackend_p.h
@@ -59,10 +59,10 @@ public:
QNetworkAccessFileBackend();
virtual ~QNetworkAccessFileBackend();
- virtual void open();
- virtual void closeDownstreamChannel();
+ virtual void open() Q_DECL_OVERRIDE;
+ virtual void closeDownstreamChannel() Q_DECL_OVERRIDE;
- virtual void downstreamReadyWrite();
+ virtual void downstreamReadyWrite() Q_DECL_OVERRIDE;
public slots:
void uploadReadyReadSlot();
@@ -82,7 +82,7 @@ class QNetworkAccessFileBackendFactory: public QNetworkAccessBackendFactory
public:
virtual QStringList supportedSchemes() const Q_DECL_OVERRIDE;
virtual QNetworkAccessBackend *create(QNetworkAccessManager::Operation op,
- const QNetworkRequest &request) const;
+ const QNetworkRequest &request) const Q_DECL_OVERRIDE;
};
QT_END_NAMESPACE
diff --git a/src/network/access/qnetworkaccessftpbackend.cpp b/src/network/access/qnetworkaccessftpbackend.cpp
index 317d9f90d5..60dcf0f49e 100644
--- a/src/network/access/qnetworkaccessftpbackend.cpp
+++ b/src/network/access/qnetworkaccessftpbackend.cpp
@@ -90,7 +90,7 @@ public:
setShareable(false);
}
- void dispose()
+ void dispose() Q_DECL_OVERRIDE
{
connect(this, SIGNAL(done(bool)), this, SLOT(deleteLater()));
close();
diff --git a/src/network/access/qnetworkaccessftpbackend_p.h b/src/network/access/qnetworkaccessftpbackend_p.h
index 0371c456f3..d49ed2afdf 100644
--- a/src/network/access/qnetworkaccessftpbackend_p.h
+++ b/src/network/access/qnetworkaccessftpbackend_p.h
@@ -77,10 +77,10 @@ public:
QNetworkAccessFtpBackend();
virtual ~QNetworkAccessFtpBackend();
- virtual void open();
- virtual void closeDownstreamChannel();
+ virtual void open() Q_DECL_OVERRIDE;
+ virtual void closeDownstreamChannel() Q_DECL_OVERRIDE;
- virtual void downstreamReadyWrite();
+ virtual void downstreamReadyWrite() Q_DECL_OVERRIDE;
enum CacheCleanupMode {
ReleaseCachedConnection,
@@ -110,7 +110,7 @@ class QNetworkAccessFtpBackendFactory: public QNetworkAccessBackendFactory
public:
virtual QStringList supportedSchemes() const Q_DECL_OVERRIDE;
virtual QNetworkAccessBackend *create(QNetworkAccessManager::Operation op,
- const QNetworkRequest &request) const;
+ const QNetworkRequest &request) const Q_DECL_OVERRIDE;
};
QT_END_NAMESPACE
diff --git a/src/network/access/qnetworkdiskcache.h b/src/network/access/qnetworkdiskcache.h
index 8984c640e7..426c71b6d6 100644
--- a/src/network/access/qnetworkdiskcache.h
+++ b/src/network/access/qnetworkdiskcache.h
@@ -56,18 +56,18 @@ public:
qint64 maximumCacheSize() const;
void setMaximumCacheSize(qint64 size);
- qint64 cacheSize() const;
- QNetworkCacheMetaData metaData(const QUrl &url);
- void updateMetaData(const QNetworkCacheMetaData &metaData);
- QIODevice *data(const QUrl &url);
- bool remove(const QUrl &url);
- QIODevice *prepare(const QNetworkCacheMetaData &metaData);
- void insert(QIODevice *device);
+ qint64 cacheSize() const Q_DECL_OVERRIDE;
+ QNetworkCacheMetaData metaData(const QUrl &url) Q_DECL_OVERRIDE;
+ void updateMetaData(const QNetworkCacheMetaData &metaData) Q_DECL_OVERRIDE;
+ QIODevice *data(const QUrl &url) Q_DECL_OVERRIDE;
+ bool remove(const QUrl &url) Q_DECL_OVERRIDE;
+ QIODevice *prepare(const QNetworkCacheMetaData &metaData) Q_DECL_OVERRIDE;
+ void insert(QIODevice *device) Q_DECL_OVERRIDE;
QNetworkCacheMetaData fileMetaData(const QString &fileName) const;
public Q_SLOTS:
- void clear();
+ void clear() Q_DECL_OVERRIDE;
protected:
virtual qint64 expire();
diff --git a/src/network/access/qnetworkreply.cpp b/src/network/access/qnetworkreply.cpp
index 18ff05fcd7..d9b3acdd92 100644
--- a/src/network/access/qnetworkreply.cpp
+++ b/src/network/access/qnetworkreply.cpp
@@ -41,6 +41,7 @@ const int QNetworkReplyPrivate::progressSignalInterval = 100;
QNetworkReplyPrivate::QNetworkReplyPrivate()
: readBufferMaxSize(0),
+ emitAllUploadProgressSignals(false),
operation(QNetworkAccessManager::UnknownOperation),
errorCode(QNetworkReply::NoError)
, isFinished(false)
diff --git a/src/network/access/qnetworkreply.h b/src/network/access/qnetworkreply.h
index 4a32131775..453116ea0e 100644
--- a/src/network/access/qnetworkreply.h
+++ b/src/network/access/qnetworkreply.h
@@ -104,8 +104,8 @@ public:
~QNetworkReply();
// reimplemented from QIODevice
- virtual void close();
- virtual bool isSequential() const;
+ virtual void close() Q_DECL_OVERRIDE;
+ virtual bool isSequential() const Q_DECL_OVERRIDE;
// like QAbstractSocket:
qint64 readBufferSize() const;
@@ -158,7 +158,7 @@ Q_SIGNALS:
protected:
explicit QNetworkReply(QObject *parent = 0);
QNetworkReply(QNetworkReplyPrivate &dd, QObject *parent);
- virtual qint64 writeData(const char *data, qint64 len);
+ virtual qint64 writeData(const char *data, qint64 len) Q_DECL_OVERRIDE;
void setOperation(QNetworkAccessManager::Operation operation);
void setRequest(const QNetworkRequest &request);
diff --git a/src/network/access/qnetworkreply_p.h b/src/network/access/qnetworkreply_p.h
index 6a68ecfea3..1d7d027954 100644
--- a/src/network/access/qnetworkreply_p.h
+++ b/src/network/access/qnetworkreply_p.h
@@ -74,6 +74,7 @@ public:
qint64 readBufferMaxSize;
QElapsedTimer downloadProgressSignalChoke;
QElapsedTimer uploadProgressSignalChoke;
+ bool emitAllUploadProgressSignals;
const static int progressSignalInterval;
QNetworkAccessManager::Operation operation;
QNetworkReply::NetworkError errorCode;
diff --git a/src/network/access/qnetworkreplydataimpl_p.h b/src/network/access/qnetworkreplydataimpl_p.h
index 469203019a..bae3e58faf 100644
--- a/src/network/access/qnetworkreplydataimpl_p.h
+++ b/src/network/access/qnetworkreplydataimpl_p.h
@@ -60,15 +60,15 @@ class QNetworkReplyDataImpl: public QNetworkReply
public:
QNetworkReplyDataImpl(QObject *parent, const QNetworkRequest &req, const QNetworkAccessManager::Operation op);
~QNetworkReplyDataImpl();
- virtual void abort();
+ virtual void abort() Q_DECL_OVERRIDE;
// reimplemented from QNetworkReply
- virtual void close();
- virtual qint64 bytesAvailable() const;
- virtual bool isSequential () const;
- qint64 size() const;
+ virtual void close() Q_DECL_OVERRIDE;
+ virtual qint64 bytesAvailable() const Q_DECL_OVERRIDE;
+ virtual bool isSequential () const Q_DECL_OVERRIDE;
+ qint64 size() const Q_DECL_OVERRIDE;
- virtual qint64 readData(char *data, qint64 maxlen);
+ virtual qint64 readData(char *data, qint64 maxlen) Q_DECL_OVERRIDE;
Q_DECLARE_PRIVATE(QNetworkReplyDataImpl)
};
diff --git a/src/network/access/qnetworkreplyfileimpl_p.h b/src/network/access/qnetworkreplyfileimpl_p.h
index 715a48d508..b4526d0bf5 100644
--- a/src/network/access/qnetworkreplyfileimpl_p.h
+++ b/src/network/access/qnetworkreplyfileimpl_p.h
@@ -61,15 +61,15 @@ class QNetworkReplyFileImpl: public QNetworkReply
public:
QNetworkReplyFileImpl(QObject *parent, const QNetworkRequest &req, const QNetworkAccessManager::Operation op);
~QNetworkReplyFileImpl();
- virtual void abort();
+ virtual void abort() Q_DECL_OVERRIDE;
// reimplemented from QNetworkReply
- virtual void close();
- virtual qint64 bytesAvailable() const;
- virtual bool isSequential () const;
- qint64 size() const;
+ virtual void close() Q_DECL_OVERRIDE;
+ virtual qint64 bytesAvailable() const Q_DECL_OVERRIDE;
+ virtual bool isSequential () const Q_DECL_OVERRIDE;
+ qint64 size() const Q_DECL_OVERRIDE;
- virtual qint64 readData(char *data, qint64 maxlen);
+ virtual qint64 readData(char *data, qint64 maxlen) Q_DECL_OVERRIDE;
Q_DECLARE_PRIVATE(QNetworkReplyFileImpl)
};
diff --git a/src/network/access/qnetworkreplyhttpimpl.cpp b/src/network/access/qnetworkreplyhttpimpl.cpp
index 4ce7303dbb..48270b1f91 100644
--- a/src/network/access/qnetworkreplyhttpimpl.cpp
+++ b/src/network/access/qnetworkreplyhttpimpl.cpp
@@ -754,6 +754,9 @@ void QNetworkReplyHttpImplPrivate::postRequest()
QNetworkRequest::Automatic).toInt()) == QNetworkRequest::Manual)
httpRequest.setWithCredentials(false);
+ if (request.attribute(QNetworkRequest::EmitAllUploadProgressSignalsAttribute).toBool() == true)
+ emitAllUploadProgressSignals = true;
+
// Create the HTTP thread delegate
QHttpThreadDelegate *delegate = new QHttpThreadDelegate;
@@ -1866,14 +1869,16 @@ void QNetworkReplyHttpImplPrivate::emitReplyUploadProgress(qint64 bytesSent, qin
if (isFinished)
return;
- //choke signal emissions, except the first and last signals which are unconditional
- if (uploadProgressSignalChoke.isValid()) {
- if (bytesSent != bytesTotal && uploadProgressSignalChoke.elapsed() < progressSignalInterval) {
- return;
+ if (!emitAllUploadProgressSignals) {
+ //choke signal emissions, except the first and last signals which are unconditional
+ if (uploadProgressSignalChoke.isValid()) {
+ if (bytesSent != bytesTotal && uploadProgressSignalChoke.elapsed() < progressSignalInterval) {
+ return;
+ }
+ uploadProgressSignalChoke.restart();
+ } else {
+ uploadProgressSignalChoke.start();
}
- uploadProgressSignalChoke.restart();
- } else {
- uploadProgressSignalChoke.start();
}
emit q->uploadProgress(bytesSent, bytesTotal);
diff --git a/src/network/access/qnetworkreplyhttpimpl_p.h b/src/network/access/qnetworkreplyhttpimpl_p.h
index 77d9c5a368..73349f4e7a 100644
--- a/src/network/access/qnetworkreplyhttpimpl_p.h
+++ b/src/network/access/qnetworkreplyhttpimpl_p.h
@@ -78,14 +78,14 @@ public:
QNetworkReplyHttpImpl(QNetworkAccessManager* const, const QNetworkRequest&, QNetworkAccessManager::Operation&, QIODevice* outgoingData);
virtual ~QNetworkReplyHttpImpl();
- void close();
- void abort();
- qint64 bytesAvailable() const;
- bool isSequential () const;
- qint64 size() const;
- qint64 readData(char*, qint64);
- void setReadBufferSize(qint64 size);
- bool canReadLine () const;
+ void close() Q_DECL_OVERRIDE;
+ void abort() Q_DECL_OVERRIDE;
+ qint64 bytesAvailable() const Q_DECL_OVERRIDE;
+ bool isSequential () const Q_DECL_OVERRIDE;
+ qint64 size() const Q_DECL_OVERRIDE;
+ qint64 readData(char*, qint64) Q_DECL_OVERRIDE;
+ void setReadBufferSize(qint64 size) Q_DECL_OVERRIDE;
+ bool canReadLine () const Q_DECL_OVERRIDE;
Q_DECLARE_PRIVATE(QNetworkReplyHttpImpl)
Q_PRIVATE_SLOT(d_func(), void _q_startOperation())
@@ -129,10 +129,10 @@ public:
#ifndef QT_NO_SSL
protected:
- void ignoreSslErrors();
- void ignoreSslErrorsImplementation(const QList<QSslError> &errors);
- void setSslConfigurationImplementation(const QSslConfiguration &configuration);
- void sslConfigurationImplementation(QSslConfiguration &configuration) const;
+ void ignoreSslErrors() Q_DECL_OVERRIDE;
+ void ignoreSslErrorsImplementation(const QList<QSslError> &errors) Q_DECL_OVERRIDE;
+ void setSslConfigurationImplementation(const QSslConfiguration &configuration) Q_DECL_OVERRIDE;
+ void sslConfigurationImplementation(QSslConfiguration &configuration) const Q_DECL_OVERRIDE;
#endif
signals:
diff --git a/src/network/access/qnetworkreplyimpl.cpp b/src/network/access/qnetworkreplyimpl.cpp
index 5af3bb37be..3c7a911974 100644
--- a/src/network/access/qnetworkreplyimpl.cpp
+++ b/src/network/access/qnetworkreplyimpl.cpp
@@ -59,6 +59,8 @@ inline QNetworkReplyImplPrivate::QNetworkReplyImplPrivate()
, downloadBufferMaximumSize(0)
, downloadBuffer(0)
{
+ if (request.attribute(QNetworkRequest::EmitAllUploadProgressSignalsAttribute).toBool() == true)
+ emitAllUploadProgressSignals = true;
}
void QNetworkReplyImplPrivate::_q_startOperation()
@@ -542,14 +544,16 @@ void QNetworkReplyImplPrivate::emitUploadProgress(qint64 bytesSent, qint64 bytes
Q_Q(QNetworkReplyImpl);
bytesUploaded = bytesSent;
- //choke signal emissions, except the first and last signals which are unconditional
- if (uploadProgressSignalChoke.isValid()) {
- if (bytesSent != bytesTotal && uploadProgressSignalChoke.elapsed() < progressSignalInterval) {
- return;
+ if (!emitAllUploadProgressSignals) {
+ //choke signal emissions, except the first and last signals which are unconditional
+ if (uploadProgressSignalChoke.isValid()) {
+ if (bytesSent != bytesTotal && uploadProgressSignalChoke.elapsed() < progressSignalInterval) {
+ return;
+ }
+ uploadProgressSignalChoke.restart();
+ } else {
+ uploadProgressSignalChoke.start();
}
- uploadProgressSignalChoke.restart();
- } else {
- uploadProgressSignalChoke.start();
}
pauseNotificationHandling();
diff --git a/src/network/access/qnetworkreplyimpl_p.h b/src/network/access/qnetworkreplyimpl_p.h
index 9bd7c88c84..aa1d04f3f8 100644
--- a/src/network/access/qnetworkreplyimpl_p.h
+++ b/src/network/access/qnetworkreplyimpl_p.h
@@ -69,16 +69,16 @@ class QNetworkReplyImpl: public QNetworkReply
public:
QNetworkReplyImpl(QObject *parent = 0);
~QNetworkReplyImpl();
- virtual void abort();
+ virtual void abort() Q_DECL_OVERRIDE;
// reimplemented from QNetworkReply / QIODevice
- virtual void close();
- virtual qint64 bytesAvailable() const;
- virtual void setReadBufferSize(qint64 size);
- virtual bool canReadLine () const;
+ virtual void close() Q_DECL_OVERRIDE;
+ virtual qint64 bytesAvailable() const Q_DECL_OVERRIDE;
+ virtual void setReadBufferSize(qint64 size) Q_DECL_OVERRIDE;
+ virtual bool canReadLine () const Q_DECL_OVERRIDE;
- virtual qint64 readData(char *data, qint64 maxlen);
- virtual bool event(QEvent *);
+ virtual qint64 readData(char *data, qint64 maxlen) Q_DECL_OVERRIDE;
+ virtual bool event(QEvent *) Q_DECL_OVERRIDE;
Q_DECLARE_PRIVATE(QNetworkReplyImpl)
Q_PRIVATE_SLOT(d_func(), void _q_startOperation())
@@ -94,10 +94,10 @@ public:
#ifndef QT_NO_SSL
protected:
- void sslConfigurationImplementation(QSslConfiguration &configuration) const;
- void setSslConfigurationImplementation(const QSslConfiguration &configuration);
- virtual void ignoreSslErrors();
- virtual void ignoreSslErrorsImplementation(const QList<QSslError> &errors);
+ void sslConfigurationImplementation(QSslConfiguration &configuration) const Q_DECL_OVERRIDE;
+ void setSslConfigurationImplementation(const QSslConfiguration &configuration) Q_DECL_OVERRIDE;
+ virtual void ignoreSslErrors() Q_DECL_OVERRIDE;
+ virtual void ignoreSslErrorsImplementation(const QList<QSslError> &errors) Q_DECL_OVERRIDE;
#endif
};
@@ -214,9 +214,9 @@ public:
QNetworkAccessManager::Operation op);
~QDisabledNetworkReply();
- void abort() { }
+ void abort() Q_DECL_OVERRIDE { }
protected:
- qint64 readData(char *, qint64) { return -1; }
+ qint64 readData(char *, qint64) Q_DECL_OVERRIDE { return -1; }
};
#endif
diff --git a/src/network/access/qnetworkrequest.cpp b/src/network/access/qnetworkrequest.cpp
index c51470e25a..2c0486d615 100644
--- a/src/network/access/qnetworkrequest.cpp
+++ b/src/network/access/qnetworkrequest.cpp
@@ -249,6 +249,13 @@ QT_BEGIN_NAMESPACE
Indicates whether SPDY was used for receiving
this reply.
+ \value EmitAllUploadProgressSignalsAttribute
+ Requests only, type: QMetaType::Bool (default: false)
+ Indicates whether all upload signals should be emitted.
+ By default, the uploadProgress signal is emitted only
+ in 100 millisecond intervals.
+ (This value was introduced in 5.5.)
+
\value User
Special type. Additional information can be passed in
QVariants with types ranging from User to UserMax. The default
diff --git a/src/network/access/qnetworkrequest.h b/src/network/access/qnetworkrequest.h
index 0239ae7f4b..3221438db4 100644
--- a/src/network/access/qnetworkrequest.h
+++ b/src/network/access/qnetworkrequest.h
@@ -80,6 +80,7 @@ public:
BackgroundRequestAttribute,
SpdyAllowedAttribute,
SpdyWasUsedAttribute,
+ EmitAllUploadProgressSignalsAttribute,
User = 1000,
UserMax = 32767
diff --git a/src/network/bearer/qnetworksession.h b/src/network/bearer/qnetworksession.h
index 281e868145..86559af94e 100644
--- a/src/network/bearer/qnetworksession.h
+++ b/src/network/bearer/qnetworksession.h
@@ -124,8 +124,8 @@ Q_SIGNALS:
void usagePoliciesChanged(QNetworkSession::UsagePolicies usagePolicies);
protected:
- virtual void connectNotify(const QMetaMethod &signal);
- virtual void disconnectNotify(const QMetaMethod &signal);
+ virtual void connectNotify(const QMetaMethod &signal) Q_DECL_OVERRIDE;
+ virtual void disconnectNotify(const QMetaMethod &signal) Q_DECL_OVERRIDE;
private:
Q_DISABLE_COPY(QNetworkSession)
diff --git a/src/network/kernel/qauthenticator.cpp b/src/network/kernel/qauthenticator.cpp
index ecfdecc020..69bb55690e 100644
--- a/src/network/kernel/qauthenticator.cpp
+++ b/src/network/kernel/qauthenticator.cpp
@@ -53,14 +53,8 @@
#endif
#endif
-//#define NTLMV1_CLIENT
-
QT_BEGIN_NAMESPACE
-#ifdef NTLMV1_CLIENT
-#include "../../3rdparty/des/des.cpp"
-#endif
-
static QByteArray qNtlmPhase1();
static QByteArray qNtlmPhase3(QAuthenticatorPrivate *ctx, const QByteArray& phase2data);
#if defined(Q_OS_WIN) && !defined(Q_OS_WINRT)
@@ -848,8 +842,6 @@ QByteArray QAuthenticatorPrivate::digestMd5Response(const QByteArray &challenge,
*/
#define AVTIMESTAMP 7
-//#define NTLMV1_CLIENT
-
//************************Global variables***************************
@@ -1096,49 +1088,6 @@ static QString qStringFromUcs2Le(const QByteArray& src)
return QString((const QChar *)src.data(), src.size()/2);
}
-#ifdef NTLMV1_CLIENT
-static QByteArray qEncodeNtlmResponse(const QAuthenticatorPrivate *ctx, const QNtlmPhase2Block& ch)
-{
- QCryptographicHash md4(QCryptographicHash::Md4);
- QByteArray asUcs2Le = qStringAsUcs2Le(ctx->password);
- md4.addData(asUcs2Le.data(), asUcs2Le.size());
-
- unsigned char md4hash[22];
- memset(md4hash, 0, sizeof(md4hash));
- QByteArray hash = md4.result();
- Q_ASSERT(hash.size() == 16);
- memcpy(md4hash, hash.constData(), 16);
-
- QByteArray rc(24, 0);
- deshash((unsigned char *)rc.data(), md4hash, (unsigned char *)ch.challenge);
- deshash((unsigned char *)rc.data() + 8, md4hash + 7, (unsigned char *)ch.challenge);
- deshash((unsigned char *)rc.data() + 16, md4hash + 14, (unsigned char *)ch.challenge);
-
- hash.fill(0);
- return rc;
-}
-
-
-static QByteArray qEncodeLmResponse(const QAuthenticatorPrivate *ctx, const QNtlmPhase2Block& ch)
-{
- QByteArray hash(21, 0);
- QByteArray key(14, 0);
- qstrncpy(key.data(), ctx->password.toUpper().toLatin1(), 14);
- const char *block = "KGS!@#$%";
-
- deshash((unsigned char *)hash.data(), (unsigned char *)key.data(), (unsigned char *)block);
- deshash((unsigned char *)hash.data() + 8, (unsigned char *)key.data() + 7, (unsigned char *)block);
- key.fill(0);
-
- QByteArray rc(24, 0);
- deshash((unsigned char *)rc.data(), (unsigned char *)hash.data(), ch.challenge);
- deshash((unsigned char *)rc.data() + 8, (unsigned char *)hash.data() + 7, ch.challenge);
- deshash((unsigned char *)rc.data() + 16, (unsigned char *)hash.data() + 14, ch.challenge);
-
- hash.fill(0);
- return rc;
-}
-#endif
/*********************************************************************
* Function Name: qEncodeHmacMd5
@@ -1457,23 +1406,15 @@ static QByteArray qNtlmPhase3(QAuthenticatorPrivate *ctx, const QByteArray& phas
pb.workstationStr = ctx->workstation;
// Get LM response
-#ifdef NTLMV1_CLIENT
- pb.lmResponseBuf = qEncodeLmResponse(ctx, ch);
-#else
if (ch.targetInfo.len > 0) {
pb.lmResponseBuf = QByteArray();
} else {
pb.lmResponseBuf = qEncodeLmv2Response(ctx, ch, &pb);
}
-#endif
offset = qEncodeNtlmBuffer(pb.lmResponse, offset, pb.lmResponseBuf);
// Get NTLM response
-#ifdef NTLMV1_CLIENT
- pb.ntlmResponseBuf = qEncodeNtlmResponse(ctx, ch);
-#else
pb.ntlmResponseBuf = qEncodeNtlmv2Response(ctx, ch, &pb);
-#endif
offset = qEncodeNtlmBuffer(pb.ntlmResponse, offset, pb.ntlmResponseBuf);
diff --git a/src/network/kernel/qdnslookup_p.h b/src/network/kernel/qdnslookup_p.h
index ded1e51313..d2e3f5fb02 100644
--- a/src/network/kernel/qdnslookup_p.h
+++ b/src/network/kernel/qdnslookup_p.h
@@ -109,7 +109,7 @@ public:
, requestName(name)
, nameserver(nameserver)
{ }
- void run();
+ void run() Q_DECL_OVERRIDE;
signals:
void finished(const QDnsLookupReply &reply);
diff --git a/src/network/kernel/qhostinfo_p.h b/src/network/kernel/qhostinfo_p.h
index b51773f803..e36c630b59 100644
--- a/src/network/kernel/qhostinfo_p.h
+++ b/src/network/kernel/qhostinfo_p.h
@@ -146,7 +146,7 @@ class QHostInfoRunnable : public QRunnable
{
public:
QHostInfoRunnable (QString hn, int i);
- void run();
+ void run() Q_DECL_OVERRIDE;
QString toBeLookedUp;
int id;
@@ -177,7 +177,7 @@ public:
QHostInfoLookupManager();
~QHostInfoLookupManager();
- void clear();
+ void clear() Q_DECL_OVERRIDE;
void work();
// called from QHostInfo
diff --git a/src/network/socket/qabstractsocket.h b/src/network/socket/qabstractsocket.h
index 35e9ea1aac..fa4e7c9a28 100644
--- a/src/network/socket/qabstractsocket.h
+++ b/src/network/socket/qabstractsocket.h
@@ -140,10 +140,10 @@ public:
bool isValid() const;
- qint64 bytesAvailable() const;
- qint64 bytesToWrite() const;
+ qint64 bytesAvailable() const Q_DECL_OVERRIDE;
+ qint64 bytesToWrite() const Q_DECL_OVERRIDE;
- bool canReadLine() const;
+ bool canReadLine() const Q_DECL_OVERRIDE;
quint16 localPort() const;
QHostAddress localAddress() const;
@@ -168,15 +168,15 @@ public:
SocketError error() const;
// from QIODevice
- void close();
- bool isSequential() const;
- bool atEnd() const;
+ void close() Q_DECL_OVERRIDE;
+ bool isSequential() const Q_DECL_OVERRIDE;
+ bool atEnd() const Q_DECL_OVERRIDE;
bool flush();
// for synchronous access
virtual bool waitForConnected(int msecs = 30000);
- bool waitForReadyRead(int msecs = 30000);
- bool waitForBytesWritten(int msecs = 30000);
+ bool waitForReadyRead(int msecs = 30000) Q_DECL_OVERRIDE;
+ bool waitForBytesWritten(int msecs = 30000) Q_DECL_OVERRIDE;
virtual bool waitForDisconnected(int msecs = 30000);
#ifndef QT_NO_NETWORKPROXY
@@ -195,9 +195,9 @@ Q_SIGNALS:
#endif
protected:
- qint64 readData(char *data, qint64 maxlen);
- qint64 readLineData(char *data, qint64 maxlen);
- qint64 writeData(const char *data, qint64 len);
+ qint64 readData(char *data, qint64 maxlen) Q_DECL_OVERRIDE;
+ qint64 readLineData(char *data, qint64 maxlen) Q_DECL_OVERRIDE;
+ qint64 writeData(const char *data, qint64 len) Q_DECL_OVERRIDE;
void setSocketState(SocketState state);
void setSocketError(SocketError socketError);
diff --git a/src/network/socket/qhttpsocketengine_p.h b/src/network/socket/qhttpsocketengine_p.h
index 0448293981..6b837c2c90 100644
--- a/src/network/socket/qhttpsocketengine_p.h
+++ b/src/network/socket/qhttpsocketengine_p.h
@@ -73,63 +73,63 @@ public:
QHttpSocketEngine(QObject *parent = 0);
~QHttpSocketEngine();
- bool initialize(QAbstractSocket::SocketType type, QAbstractSocket::NetworkLayerProtocol protocol = QAbstractSocket::IPv4Protocol);
- bool initialize(qintptr socketDescriptor, QAbstractSocket::SocketState socketState = QAbstractSocket::ConnectedState);
+ bool initialize(QAbstractSocket::SocketType type, QAbstractSocket::NetworkLayerProtocol protocol = QAbstractSocket::IPv4Protocol) Q_DECL_OVERRIDE;
+ bool initialize(qintptr socketDescriptor, QAbstractSocket::SocketState socketState = QAbstractSocket::ConnectedState) Q_DECL_OVERRIDE;
void setProxy(const QNetworkProxy &networkProxy);
- qintptr socketDescriptor() const;
+ qintptr socketDescriptor() const Q_DECL_OVERRIDE;
- bool isValid() const;
+ bool isValid() const Q_DECL_OVERRIDE;
bool connectInternal();
- bool connectToHost(const QHostAddress &address, quint16 port);
- bool connectToHostByName(const QString &name, quint16 port);
- bool bind(const QHostAddress &address, quint16 port);
- bool listen();
- int accept();
- void close();
+ bool connectToHost(const QHostAddress &address, quint16 port) Q_DECL_OVERRIDE;
+ bool connectToHostByName(const QString &name, quint16 port) Q_DECL_OVERRIDE;
+ bool bind(const QHostAddress &address, quint16 port) Q_DECL_OVERRIDE;
+ bool listen() Q_DECL_OVERRIDE;
+ int accept() Q_DECL_OVERRIDE;
+ void close() Q_DECL_OVERRIDE;
- qint64 bytesAvailable() const;
+ qint64 bytesAvailable() const Q_DECL_OVERRIDE;
- qint64 read(char *data, qint64 maxlen);
- qint64 write(const char *data, qint64 len);
+ qint64 read(char *data, qint64 maxlen) Q_DECL_OVERRIDE;
+ qint64 write(const char *data, qint64 len) Q_DECL_OVERRIDE;
#ifndef QT_NO_UDPSOCKET
#ifndef QT_NO_NETWORKINTERFACE
bool joinMulticastGroup(const QHostAddress &groupAddress,
- const QNetworkInterface &interface);
+ const QNetworkInterface &interface) Q_DECL_OVERRIDE;
bool leaveMulticastGroup(const QHostAddress &groupAddress,
- const QNetworkInterface &interface);
- QNetworkInterface multicastInterface() const;
- bool setMulticastInterface(const QNetworkInterface &iface);
+ const QNetworkInterface &interface) Q_DECL_OVERRIDE;
+ QNetworkInterface multicastInterface() const Q_DECL_OVERRIDE;
+ bool setMulticastInterface(const QNetworkInterface &iface) Q_DECL_OVERRIDE;
#endif // QT_NO_NETWORKINTERFACE
qint64 readDatagram(char *data, qint64 maxlen, QHostAddress *addr = 0,
- quint16 *port = 0);
+ quint16 *port = 0) Q_DECL_OVERRIDE;
qint64 writeDatagram(const char *data, qint64 len, const QHostAddress &addr,
- quint16 port);
- bool hasPendingDatagrams() const;
- qint64 pendingDatagramSize() const;
+ quint16 port) Q_DECL_OVERRIDE;
+ bool hasPendingDatagrams() const Q_DECL_OVERRIDE;
+ qint64 pendingDatagramSize() const Q_DECL_OVERRIDE;
#endif // QT_NO_UDPSOCKET
- qint64 bytesToWrite() const;
+ qint64 bytesToWrite() const Q_DECL_OVERRIDE;
- int option(SocketOption option) const;
- bool setOption(SocketOption option, int value);
+ int option(SocketOption option) const Q_DECL_OVERRIDE;
+ bool setOption(SocketOption option, int value) Q_DECL_OVERRIDE;
- bool waitForRead(int msecs = 30000, bool *timedOut = 0);
- bool waitForWrite(int msecs = 30000, bool *timedOut = 0);
+ bool waitForRead(int msecs = 30000, bool *timedOut = 0) Q_DECL_OVERRIDE;
+ bool waitForWrite(int msecs = 30000, bool *timedOut = 0) Q_DECL_OVERRIDE;
bool waitForReadOrWrite(bool *readyToRead, bool *readyToWrite,
bool checkRead, bool checkWrite,
- int msecs = 30000, bool *timedOut = 0);
+ int msecs = 30000, bool *timedOut = 0) Q_DECL_OVERRIDE;
- bool isReadNotificationEnabled() const;
- void setReadNotificationEnabled(bool enable);
- bool isWriteNotificationEnabled() const;
- void setWriteNotificationEnabled(bool enable);
- bool isExceptionNotificationEnabled() const;
- void setExceptionNotificationEnabled(bool enable);
+ bool isReadNotificationEnabled() const Q_DECL_OVERRIDE;
+ void setReadNotificationEnabled(bool enable) Q_DECL_OVERRIDE;
+ bool isWriteNotificationEnabled() const Q_DECL_OVERRIDE;
+ void setWriteNotificationEnabled(bool enable) Q_DECL_OVERRIDE;
+ bool isExceptionNotificationEnabled() const Q_DECL_OVERRIDE;
+ void setExceptionNotificationEnabled(bool enable) Q_DECL_OVERRIDE;
public slots:
void slotSocketConnected();
@@ -186,8 +186,8 @@ class Q_AUTOTEST_EXPORT QHttpSocketEngineHandler : public QSocketEngineHandler
{
public:
virtual QAbstractSocketEngine *createSocketEngine(QAbstractSocket::SocketType socketType,
- const QNetworkProxy &, QObject *parent);
- virtual QAbstractSocketEngine *createSocketEngine(qintptr socketDescripter, QObject *parent);
+ const QNetworkProxy &, QObject *parent) Q_DECL_OVERRIDE;
+ virtual QAbstractSocketEngine *createSocketEngine(qintptr socketDescripter, QObject *parent) Q_DECL_OVERRIDE;
};
#endif
diff --git a/src/network/socket/qlocalsocket.h b/src/network/socket/qlocalsocket.h
index c0429d3a1f..c88f9d6ff8 100644
--- a/src/network/socket/qlocalsocket.h
+++ b/src/network/socket/qlocalsocket.h
@@ -85,12 +85,12 @@ public:
QString fullServerName() const;
void abort();
- virtual bool isSequential() const;
- virtual qint64 bytesAvailable() const;
- virtual qint64 bytesToWrite() const;
- virtual bool canReadLine() const;
+ virtual bool isSequential() const Q_DECL_OVERRIDE;
+ virtual qint64 bytesAvailable() const Q_DECL_OVERRIDE;
+ virtual qint64 bytesToWrite() const Q_DECL_OVERRIDE;
+ virtual bool canReadLine() const Q_DECL_OVERRIDE;
virtual bool open(OpenMode openMode = ReadWrite) Q_DECL_OVERRIDE;
- virtual void close();
+ virtual void close() Q_DECL_OVERRIDE;
LocalSocketError error() const;
bool flush();
bool isValid() const;
@@ -103,10 +103,10 @@ public:
qintptr socketDescriptor() const;
LocalSocketState state() const;
- bool waitForBytesWritten(int msecs = 30000);
+ bool waitForBytesWritten(int msecs = 30000) Q_DECL_OVERRIDE;
bool waitForConnected(int msecs = 30000);
bool waitForDisconnected(int msecs = 30000);
- bool waitForReadyRead(int msecs = 30000);
+ bool waitForReadyRead(int msecs = 30000) Q_DECL_OVERRIDE;
Q_SIGNALS:
void connected();
@@ -115,8 +115,8 @@ Q_SIGNALS:
void stateChanged(QLocalSocket::LocalSocketState socketState);
protected:
- virtual qint64 readData(char*, qint64);
- virtual qint64 writeData(const char*, qint64);
+ virtual qint64 readData(char*, qint64) Q_DECL_OVERRIDE;
+ virtual qint64 writeData(const char*, qint64) Q_DECL_OVERRIDE;
private:
Q_DISABLE_COPY(QLocalSocket)
diff --git a/src/network/socket/qnativesocketengine_p.h b/src/network/socket/qnativesocketengine_p.h
index 67412ca326..de638e4e76 100644
--- a/src/network/socket/qnativesocketengine_p.h
+++ b/src/network/socket/qnativesocketengine_p.h
@@ -105,42 +105,42 @@ public:
QNativeSocketEngine(QObject *parent = 0);
~QNativeSocketEngine();
- bool initialize(QAbstractSocket::SocketType type, QAbstractSocket::NetworkLayerProtocol protocol = QAbstractSocket::IPv4Protocol);
- bool initialize(qintptr socketDescriptor, QAbstractSocket::SocketState socketState = QAbstractSocket::ConnectedState);
+ bool initialize(QAbstractSocket::SocketType type, QAbstractSocket::NetworkLayerProtocol protocol = QAbstractSocket::IPv4Protocol) Q_DECL_OVERRIDE;
+ bool initialize(qintptr socketDescriptor, QAbstractSocket::SocketState socketState = QAbstractSocket::ConnectedState) Q_DECL_OVERRIDE;
- qintptr socketDescriptor() const;
+ qintptr socketDescriptor() const Q_DECL_OVERRIDE;
- bool isValid() const;
+ bool isValid() const Q_DECL_OVERRIDE;
- bool connectToHost(const QHostAddress &address, quint16 port);
- bool connectToHostByName(const QString &name, quint16 port);
- bool bind(const QHostAddress &address, quint16 port);
- bool listen();
- int accept();
- void close();
+ bool connectToHost(const QHostAddress &address, quint16 port) Q_DECL_OVERRIDE;
+ bool connectToHostByName(const QString &name, quint16 port) Q_DECL_OVERRIDE;
+ bool bind(const QHostAddress &address, quint16 port) Q_DECL_OVERRIDE;
+ bool listen() Q_DECL_OVERRIDE;
+ int accept() Q_DECL_OVERRIDE;
+ void close() Q_DECL_OVERRIDE;
#ifndef QT_NO_NETWORKINTERFACE
bool joinMulticastGroup(const QHostAddress &groupAddress,
- const QNetworkInterface &iface);
+ const QNetworkInterface &iface) Q_DECL_OVERRIDE;
bool leaveMulticastGroup(const QHostAddress &groupAddress,
- const QNetworkInterface &iface);
- QNetworkInterface multicastInterface() const;
- bool setMulticastInterface(const QNetworkInterface &iface);
+ const QNetworkInterface &iface) Q_DECL_OVERRIDE;
+ QNetworkInterface multicastInterface() const Q_DECL_OVERRIDE;
+ bool setMulticastInterface(const QNetworkInterface &iface) Q_DECL_OVERRIDE;
#endif
- qint64 bytesAvailable() const;
+ qint64 bytesAvailable() const Q_DECL_OVERRIDE;
- qint64 read(char *data, qint64 maxlen);
- qint64 write(const char *data, qint64 len);
+ qint64 read(char *data, qint64 maxlen) Q_DECL_OVERRIDE;
+ qint64 write(const char *data, qint64 len) Q_DECL_OVERRIDE;
qint64 readDatagram(char *data, qint64 maxlen, QHostAddress *addr = 0,
- quint16 *port = 0);
+ quint16 *port = 0) Q_DECL_OVERRIDE;
qint64 writeDatagram(const char *data, qint64 len, const QHostAddress &addr,
- quint16 port);
- bool hasPendingDatagrams() const;
- qint64 pendingDatagramSize() const;
+ quint16 port) Q_DECL_OVERRIDE;
+ bool hasPendingDatagrams() const Q_DECL_OVERRIDE;
+ qint64 pendingDatagramSize() const Q_DECL_OVERRIDE;
- qint64 bytesToWrite() const;
+ qint64 bytesToWrite() const Q_DECL_OVERRIDE;
qint64 receiveBufferSize() const;
void setReceiveBufferSize(qint64 bufferSize);
@@ -148,21 +148,21 @@ public:
qint64 sendBufferSize() const;
void setSendBufferSize(qint64 bufferSize);
- int option(SocketOption option) const;
- bool setOption(SocketOption option, int value);
+ int option(SocketOption option) const Q_DECL_OVERRIDE;
+ bool setOption(SocketOption option, int value) Q_DECL_OVERRIDE;
- bool waitForRead(int msecs = 30000, bool *timedOut = 0);
- bool waitForWrite(int msecs = 30000, bool *timedOut = 0);
+ bool waitForRead(int msecs = 30000, bool *timedOut = 0) Q_DECL_OVERRIDE;
+ bool waitForWrite(int msecs = 30000, bool *timedOut = 0) Q_DECL_OVERRIDE;
bool waitForReadOrWrite(bool *readyToRead, bool *readyToWrite,
bool checkRead, bool checkWrite,
- int msecs = 30000, bool *timedOut = 0);
-
- bool isReadNotificationEnabled() const;
- void setReadNotificationEnabled(bool enable);
- bool isWriteNotificationEnabled() const;
- void setWriteNotificationEnabled(bool enable);
- bool isExceptionNotificationEnabled() const;
- void setExceptionNotificationEnabled(bool enable);
+ int msecs = 30000, bool *timedOut = 0) Q_DECL_OVERRIDE;
+
+ bool isReadNotificationEnabled() const Q_DECL_OVERRIDE;
+ void setReadNotificationEnabled(bool enable) Q_DECL_OVERRIDE;
+ bool isWriteNotificationEnabled() const Q_DECL_OVERRIDE;
+ void setWriteNotificationEnabled(bool enable) Q_DECL_OVERRIDE;
+ bool isExceptionNotificationEnabled() const Q_DECL_OVERRIDE;
+ void setExceptionNotificationEnabled(bool enable) Q_DECL_OVERRIDE;
public Q_SLOTS:
// non-virtual override;
diff --git a/src/network/socket/qsocks5socketengine.cpp b/src/network/socket/qsocks5socketengine.cpp
index 1634352333..56652744fd 100644
--- a/src/network/socket/qsocks5socketengine.cpp
+++ b/src/network/socket/qsocks5socketengine.cpp
@@ -331,7 +331,7 @@ public:
QSocks5BindData *retrieve(qintptr socketDescriptor);
protected:
- void timerEvent(QTimerEvent * event);
+ void timerEvent(QTimerEvent * event) Q_DECL_OVERRIDE;
QMutex mutex;
int sweepTimerId;
diff --git a/src/network/socket/qsocks5socketengine_p.h b/src/network/socket/qsocks5socketengine_p.h
index fd6e187b98..bc02cbda23 100644
--- a/src/network/socket/qsocks5socketengine_p.h
+++ b/src/network/socket/qsocks5socketengine_p.h
@@ -61,63 +61,63 @@ public:
QSocks5SocketEngine(QObject *parent = 0);
~QSocks5SocketEngine();
- bool initialize(QAbstractSocket::SocketType type, QAbstractSocket::NetworkLayerProtocol protocol = QAbstractSocket::IPv4Protocol);
- bool initialize(qintptr socketDescriptor, QAbstractSocket::SocketState socketState = QAbstractSocket::ConnectedState);
+ bool initialize(QAbstractSocket::SocketType type, QAbstractSocket::NetworkLayerProtocol protocol = QAbstractSocket::IPv4Protocol) Q_DECL_OVERRIDE;
+ bool initialize(qintptr socketDescriptor, QAbstractSocket::SocketState socketState = QAbstractSocket::ConnectedState) Q_DECL_OVERRIDE;
void setProxy(const QNetworkProxy &networkProxy);
- qintptr socketDescriptor() const;
+ qintptr socketDescriptor() const Q_DECL_OVERRIDE;
- bool isValid() const;
+ bool isValid() const Q_DECL_OVERRIDE;
bool connectInternal();
- bool connectToHost(const QHostAddress &address, quint16 port);
- bool connectToHostByName(const QString &name, quint16 port);
- bool bind(const QHostAddress &address, quint16 port);
- bool listen();
- int accept();
- void close();
+ bool connectToHost(const QHostAddress &address, quint16 port) Q_DECL_OVERRIDE;
+ bool connectToHostByName(const QString &name, quint16 port) Q_DECL_OVERRIDE;
+ bool bind(const QHostAddress &address, quint16 port) Q_DECL_OVERRIDE;
+ bool listen() Q_DECL_OVERRIDE;
+ int accept() Q_DECL_OVERRIDE;
+ void close() Q_DECL_OVERRIDE;
- qint64 bytesAvailable() const;
+ qint64 bytesAvailable() const Q_DECL_OVERRIDE;
- qint64 read(char *data, qint64 maxlen);
- qint64 write(const char *data, qint64 len);
+ qint64 read(char *data, qint64 maxlen) Q_DECL_OVERRIDE;
+ qint64 write(const char *data, qint64 len) Q_DECL_OVERRIDE;
#ifndef QT_NO_UDPSOCKET
#ifndef QT_NO_NETWORKINTERFACE
bool joinMulticastGroup(const QHostAddress &groupAddress,
- const QNetworkInterface &interface);
+ const QNetworkInterface &interface) Q_DECL_OVERRIDE;
bool leaveMulticastGroup(const QHostAddress &groupAddress,
- const QNetworkInterface &interface);
- QNetworkInterface multicastInterface() const;
- bool setMulticastInterface(const QNetworkInterface &iface);
+ const QNetworkInterface &interface) Q_DECL_OVERRIDE;
+ QNetworkInterface multicastInterface() const Q_DECL_OVERRIDE;
+ bool setMulticastInterface(const QNetworkInterface &iface) Q_DECL_OVERRIDE;
#endif // QT_NO_NETWORKINTERFACE
qint64 readDatagram(char *data, qint64 maxlen, QHostAddress *addr = 0,
- quint16 *port = 0);
+ quint16 *port = 0) Q_DECL_OVERRIDE;
qint64 writeDatagram(const char *data, qint64 len, const QHostAddress &addr,
- quint16 port);
- bool hasPendingDatagrams() const;
- qint64 pendingDatagramSize() const;
+ quint16 port) Q_DECL_OVERRIDE;
+ bool hasPendingDatagrams() const Q_DECL_OVERRIDE;
+ qint64 pendingDatagramSize() const Q_DECL_OVERRIDE;
#endif // QT_NO_UDPSOCKET
- qint64 bytesToWrite() const;
+ qint64 bytesToWrite() const Q_DECL_OVERRIDE;
- int option(SocketOption option) const;
- bool setOption(SocketOption option, int value);
+ int option(SocketOption option) const Q_DECL_OVERRIDE;
+ bool setOption(SocketOption option, int value) Q_DECL_OVERRIDE;
- bool waitForRead(int msecs = 30000, bool *timedOut = 0);
- bool waitForWrite(int msecs = 30000, bool *timedOut = 0);
+ bool waitForRead(int msecs = 30000, bool *timedOut = 0) Q_DECL_OVERRIDE;
+ bool waitForWrite(int msecs = 30000, bool *timedOut = 0) Q_DECL_OVERRIDE;
bool waitForReadOrWrite(bool *readyToRead, bool *readyToWrite,
bool checkRead, bool checkWrite,
- int msecs = 30000, bool *timedOut = 0);
+ int msecs = 30000, bool *timedOut = 0) Q_DECL_OVERRIDE;
- bool isReadNotificationEnabled() const;
- void setReadNotificationEnabled(bool enable);
- bool isWriteNotificationEnabled() const;
- void setWriteNotificationEnabled(bool enable);
- bool isExceptionNotificationEnabled() const;
- void setExceptionNotificationEnabled(bool enable);
+ bool isReadNotificationEnabled() const Q_DECL_OVERRIDE;
+ void setReadNotificationEnabled(bool enable) Q_DECL_OVERRIDE;
+ bool isWriteNotificationEnabled() const Q_DECL_OVERRIDE;
+ void setWriteNotificationEnabled(bool enable) Q_DECL_OVERRIDE;
+ bool isExceptionNotificationEnabled() const Q_DECL_OVERRIDE;
+ void setExceptionNotificationEnabled(bool enable) Q_DECL_OVERRIDE;
private:
Q_DECLARE_PRIVATE(QSocks5SocketEngine)
@@ -160,11 +160,11 @@ class QSocks5PasswordAuthenticator : public QSocks5Authenticator
{
public:
QSocks5PasswordAuthenticator(const QString &userName, const QString &password);
- char methodId();
- bool beginAuthenticate(QTcpSocket *socket, bool *completed);
- bool continueAuthenticate(QTcpSocket *socket, bool *completed);
+ char methodId() Q_DECL_OVERRIDE;
+ bool beginAuthenticate(QTcpSocket *socket, bool *completed) Q_DECL_OVERRIDE;
+ bool continueAuthenticate(QTcpSocket *socket, bool *completed) Q_DECL_OVERRIDE;
- QString errorString();
+ QString errorString() Q_DECL_OVERRIDE;
private:
QString userName;
@@ -282,8 +282,8 @@ class Q_AUTOTEST_EXPORT QSocks5SocketEngineHandler : public QSocketEngineHandler
{
public:
virtual QAbstractSocketEngine *createSocketEngine(QAbstractSocket::SocketType socketType,
- const QNetworkProxy &, QObject *parent);
- virtual QAbstractSocketEngine *createSocketEngine(qintptr socketDescriptor, QObject *parent);
+ const QNetworkProxy &, QObject *parent) Q_DECL_OVERRIDE;
+ virtual QAbstractSocketEngine *createSocketEngine(qintptr socketDescriptor, QObject *parent) Q_DECL_OVERRIDE;
};
diff --git a/src/network/socket/qtcpserver.cpp b/src/network/socket/qtcpserver.cpp
index ad3d529a3e..abb00ed9db 100644
--- a/src/network/socket/qtcpserver.cpp
+++ b/src/network/socket/qtcpserver.cpp
@@ -134,8 +134,8 @@ public:
#endif
// from QAbstractSocketEngineReceiver
- void readNotification();
- void closeNotification() { readNotification(); }
+ void readNotification() Q_DECL_OVERRIDE;
+ void closeNotification() Q_DECL_OVERRIDE { readNotification(); }
inline void writeNotification() {}
inline void exceptionNotification() {}
inline void connectionNotification() {}
diff --git a/src/network/ssl/qsslconfiguration.cpp b/src/network/ssl/qsslconfiguration.cpp
index 7bb6e02b7e..9054d412f7 100644
--- a/src/network/ssl/qsslconfiguration.cpp
+++ b/src/network/ssl/qsslconfiguration.cpp
@@ -203,6 +203,7 @@ bool QSslConfiguration::operator==(const QSslConfiguration &other) const
d->sessionCipher == other.d->sessionCipher &&
d->sessionProtocol == other.d->sessionProtocol &&
d->ciphers == other.d->ciphers &&
+ d->ellipticCurves == other.d->ellipticCurves &&
d->caCertificates == other.d->caCertificates &&
d->protocol == other.d->protocol &&
d->peerVerifyMode == other.d->peerVerifyMode &&
@@ -243,6 +244,7 @@ bool QSslConfiguration::isNull() const
d->allowRootCertOnDemandLoading == true &&
d->caCertificates.count() == 0 &&
d->ciphers.count() == 0 &&
+ d->ellipticCurves.isEmpty() &&
d->localCertificateChain.isEmpty() &&
d->privateKey.isNull() &&
d->peerCertificate.isNull() &&
@@ -697,6 +699,50 @@ int QSslConfiguration::sessionTicketLifeTimeHint() const
}
/*!
+ \since 5.5
+
+ Returns this connection's current list of elliptic curves. This
+ list is used during the handshake phase for choosing an
+ elliptic curve (when using an elliptic curve cipher).
+ The returned list of curves is ordered by descending preference
+ (i.e., the first curve in the list is the most preferred one).
+
+ By default, the handshake phase can choose any of the curves
+ supported by this system's SSL libraries, which may vary from
+ system to system. The list of curves supported by this system's
+ SSL libraries is returned by QSslSocket::supportedEllipticCurves().
+
+ You can restrict the list of curves used for choosing the session cipher
+ for this socket by calling setEllipticCurves() with a subset of the
+ supported ciphers. You can revert to using the entire set by calling
+ setEllipticCurves() with the list returned by
+ QSslSocket::supportedEllipticCurves().
+
+ \sa setEllipticCurves
+ */
+QVector<QSslEllipticCurve> QSslConfiguration::ellipticCurves() const
+{
+ return d->ellipticCurves;
+}
+
+/*!
+ \since 5.5
+
+ Sets the list of elliptic curves to be used by this socket to \a curves,
+ which must contain a subset of the curves in the list returned by
+ supportedEllipticCurves().
+
+ Restricting the elliptic curves must be done before the handshake
+ phase, where the session cipher is chosen.
+
+ \sa ellipticCurves
+ */
+void QSslConfiguration::setEllipticCurves(const QVector<QSslEllipticCurve> &curves)
+{
+ d->ellipticCurves = curves;
+}
+
+/*!
\since 5.3
This function returns the protocol negotiated with the server
diff --git a/src/network/ssl/qsslconfiguration.h b/src/network/ssl/qsslconfiguration.h
index 0c4e122912..7bc7a32cb7 100644
--- a/src/network/ssl/qsslconfiguration.h
+++ b/src/network/ssl/qsslconfiguration.h
@@ -62,6 +62,7 @@ template<typename T> class QList;
class QSslCertificate;
class QSslCipher;
class QSslKey;
+class QSslEllipticCurve;
class QSslConfigurationPrivate;
class Q_NETWORK_EXPORT QSslConfiguration
@@ -122,6 +123,10 @@ public:
void setSessionTicket(const QByteArray &sessionTicket);
int sessionTicketLifeTimeHint() const;
+ // EC settings
+ QVector<QSslEllipticCurve> ellipticCurves() const;
+ void setEllipticCurves(const QVector<QSslEllipticCurve> &curves);
+
static QSslConfiguration defaultConfiguration();
static void setDefaultConfiguration(const QSslConfiguration &configuration);
diff --git a/src/network/ssl/qsslconfiguration_p.h b/src/network/ssl/qsslconfiguration_p.h
index 6880f59c4b..54a4786d9f 100644
--- a/src/network/ssl/qsslconfiguration_p.h
+++ b/src/network/ssl/qsslconfiguration_p.h
@@ -66,6 +66,7 @@
#include "qsslcertificate.h"
#include "qsslcipher.h"
#include "qsslkey.h"
+#include "qsslellipticcurve.h"
QT_BEGIN_NAMESPACE
@@ -107,6 +108,8 @@ public:
Q_AUTOTEST_EXPORT static const QSsl::SslOptions defaultSslOptions;
+ QVector<QSslEllipticCurve> ellipticCurves;
+
QByteArray sslSession;
int sslSessionTicketLifeTimeHint;
diff --git a/src/network/ssl/qsslcontext_openssl.cpp b/src/network/ssl/qsslcontext_openssl.cpp
index 92e726bc01..0a687082b7 100644
--- a/src/network/ssl/qsslcontext_openssl.cpp
+++ b/src/network/ssl/qsslcontext_openssl.cpp
@@ -2,6 +2,7 @@
**
** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
** Copyright (C) 2014 BlackBerry Limited. All rights reserved.
+** Copyright (C) 2014 Governikus GmbH & Co. KG.
** Contact: http://www.qt-project.org/legal
**
** This file is part of the QtNetwork module of the Qt Toolkit.
@@ -200,7 +201,7 @@ init_context:
// Initialize ciphers
QByteArray cipherString;
- int first = true;
+ bool first = true;
QList<QSslCipher> ciphers = sslContext->sslConfiguration.ciphers();
if (ciphers.isEmpty())
ciphers = QSslSocketPrivate::defaultCiphers();
@@ -321,13 +322,45 @@ init_context:
q_DH_free(dh);
#ifndef OPENSSL_NO_EC
- // Set temp ECDH params
- EC_KEY *ecdh = 0;
- ecdh = q_EC_KEY_new_by_curve_name(NID_X9_62_prime256v1);
- q_SSL_CTX_set_tmp_ecdh(sslContext->ctx, ecdh);
- q_EC_KEY_free(ecdh);
+#if OPENSSL_VERSION_NUMBER >= 0x10002000L
+ if (q_SSLeay() >= 0x10002000L) {
+ q_SSL_CTX_ctrl(sslContext->ctx, SSL_CTRL_SET_ECDH_AUTO, 1, NULL);
+ } else
+#endif
+ {
+ // Set temp ECDH params
+ EC_KEY *ecdh = 0;
+ ecdh = q_EC_KEY_new_by_curve_name(NID_X9_62_prime256v1);
+ q_SSL_CTX_set_tmp_ecdh(sslContext->ctx, ecdh);
+ q_EC_KEY_free(ecdh);
+ }
#endif // OPENSSL_NO_EC
+ const QVector<QSslEllipticCurve> qcurves = sslContext->sslConfiguration.ellipticCurves();
+ if (!qcurves.isEmpty()) {
+#if OPENSSL_VERSION_NUMBER >= 0x10002000L && !defined(OPENSSL_NO_EC)
+ // Set the curves to be used
+ if (q_SSLeay() >= 0x10002000L) {
+ // SSL_CTX_ctrl wants a non-const pointer as last argument,
+ // but let's avoid a copy into a temporary array
+ if (!q_SSL_CTX_ctrl(sslContext->ctx,
+ SSL_CTRL_SET_CURVES,
+ qcurves.size(),
+ const_cast<int *>(reinterpret_cast<const int *>(qcurves.data())))) {
+ sslContext->errorStr = QSslSocket::tr("Error when setting the elliptic curves (%1)").arg(QSslSocketBackendPrivate::getErrorsFromOpenSsl());
+ sslContext->errorCode = QSslError::UnspecifiedError;
+ return sslContext;
+ }
+ } else
+#endif // OPENSSL_VERSION_NUMBER >= 0x10002000L && !defined(OPENSSL_NO_EC)
+ {
+ // specific curves requested, but not possible to set -> error
+ sslContext->errorStr = QSslSocket::tr("Error when setting the elliptic curves (OpenSSL version too old, need at least v1.0.2)");
+ sslContext->errorCode = QSslError::UnspecifiedError;
+ return sslContext;
+ }
+ }
+
return sslContext;
}
diff --git a/src/network/ssl/qsslellipticcurve.cpp b/src/network/ssl/qsslellipticcurve.cpp
new file mode 100644
index 0000000000..7e122557df
--- /dev/null
+++ b/src/network/ssl/qsslellipticcurve.cpp
@@ -0,0 +1,173 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Governikus GmbH & Co. KG.
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtNetwork module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qsslellipticcurve.h"
+
+#ifndef QT_NO_DEBUG_STREAM
+#include <QDebug>
+#endif
+
+QT_BEGIN_NAMESPACE
+
+/*!
+ \class QSslEllipticCurve
+ \since 5.5
+
+ \brief Represents an elliptic curve for use by elliptic-curve cipher algorithms.
+
+ \reentrant
+ \ingroup network
+ \ingroup ssl
+ \inmodule QtNetwork
+
+ The class QSslEllipticCurve represents an elliptic curve for use by
+ elliptic-curve cipher algorithms.
+
+ Elliptic curves can be constructed from a "short name" (SN) (fromShortName()),
+ and by a call to QSslSocket::supportedEllipticCurves().
+
+ QSslEllipticCurve instances can be compared for equality and can be used as keys
+ in QHash and QSet. They cannot be used as key in a QMap.
+*/
+
+/*!
+ \fn QSslEllipticCurve::QSslEllipticCurve()
+
+ Constructs an invalid elliptic curve.
+
+ \sa isValid(), QSslSocket::supportedEllipticCurves()
+*/
+
+/*!
+ \fn QSslEllipticCurve QSslEllipticCurve::fromShortName(const QString &name)
+
+ Returns an QSslEllipticCurve instance representing the
+ named curve \a name. The \a name is the conventional short
+ name for the curve, as represented by RFC 4492 (for instance \c{secp521r1}),
+ or as NIST short names (for instance \c{P-256}). The actual set of
+ recognized names depends on the SSL implementation.
+
+ If the given \a name is not supported, returns an invalid QSslEllipticCurve instance.
+
+ \note The OpenSSL implementation of this function treats the name case-sensitively.
+
+ \sa shortName()
+*/
+
+
+/*!
+ \fn QString QSslEllipticCurve::shortName() const
+
+ Returns the conventional short name for this curve. If this
+ curve is invalid, returns an empty string.
+
+ \sa longName()
+*/
+
+/*!
+ \fn QString QSslEllipticCurve::longName() const
+
+ Returns the conventional long name for this curve. If this
+ curve is invalid, returns an empty string.
+
+ \sa shortName()
+*/
+
+/*!
+ \fn bool QSslEllipticCurve::isValid() const
+
+ Returns true if this elliptic curve is a valid curve, false otherwise.
+*/
+
+/*!
+ \fn bool QSslEllipticCurve::isTlsNamedCurve() const
+
+ Returns true if this elliptic curve is one of the named curves that can be
+ used in the key exchange when using an elliptic curve cipher with TLS;
+ false otherwise.
+*/
+
+/*!
+ \fn bool operator==(QSslEllipticCurve lhs, QSslEllipticCurve rhs)
+ \since 5.5
+ \relates QSslEllipticCurve
+
+ Returns true if the curve \a lhs represents the same curve of \a rhs;
+ false otherwise.
+*/
+
+/*!
+ \fn bool operator!=(QSslEllipticCurve lhs, QSslEllipticCurve rhs)
+ \since 5.5
+ \relates QSslEllipticCurve
+
+ Returns true if the curve \a lhs represents a different curve than \a rhs;
+ false otherwise.
+*/
+
+/*!
+ \fn uint qHash(QSslEllipticCurve curve, uint seed)
+ \since 5.5
+ \relates QHash
+
+ Returns an hash value for the curve \a curve, using \a seed to seed
+ the calculation.
+*/
+
+#ifndef QT_NO_DEBUG_STREAM
+/*!
+ \relates QSslEllipticCurve
+ \since 5.5
+
+ Writes the elliptic curve \a curve into the debug object \a debug for
+ debugging purposes.
+
+ \sa {Debugging Techniques}
+*/
+QDebug operator<<(QDebug debug, QSslEllipticCurve curve)
+{
+ QDebugStateSaver saver(debug);
+ debug.nospace() << "QSslEllipticCurve(" << curve.shortName() << ")";
+ return debug;
+}
+#endif
+
+QT_END_NAMESPACE
diff --git a/src/network/ssl/qsslellipticcurve.h b/src/network/ssl/qsslellipticcurve.h
new file mode 100644
index 0000000000..6d2a764d87
--- /dev/null
+++ b/src/network/ssl/qsslellipticcurve.h
@@ -0,0 +1,103 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Governikus GmbH & Co. KG.
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtNetwork module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QSSLELLIPTICCURVE_H
+#define QSSLELLIPTICCURVE_H
+
+#include <QtCore/QtGlobal>
+#include <QtCore/QString>
+#include <QtCore/QStringList>
+#include <QtCore/QMetaType>
+#include <QtCore/QVector>
+#include <QtCore/QHash>
+
+QT_BEGIN_NAMESPACE
+
+class QSslEllipticCurve;
+// qHash is a friend, but we can't use default arguments for friends (§8.3.6.4)
+Q_DECL_CONSTEXPR uint qHash(QSslEllipticCurve curve, uint seed = 0) Q_DECL_NOTHROW;
+
+class QSslEllipticCurve {
+public:
+ Q_DECL_CONSTEXPR QSslEllipticCurve()
+ : id(0)
+ {
+ }
+
+ Q_NETWORK_EXPORT static QSslEllipticCurve fromShortName(const QString &name);
+
+ Q_NETWORK_EXPORT QString shortName() const Q_REQUIRED_RESULT;
+ Q_NETWORK_EXPORT QString longName() const Q_REQUIRED_RESULT;
+
+ Q_DECL_CONSTEXPR bool isValid() const
+ {
+ return id != 0;
+ }
+
+ Q_NETWORK_EXPORT bool isTlsNamedCurve() const;
+
+private:
+ int id;
+
+ friend Q_DECL_CONSTEXPR bool operator==(QSslEllipticCurve lhs, QSslEllipticCurve rhs) Q_DECL_NOTHROW
+ { return lhs.id == rhs.id; }
+ friend Q_DECL_CONSTEXPR uint qHash(QSslEllipticCurve curve, uint seed) Q_DECL_NOTHROW
+ { return qHash(curve.id, seed); }
+
+ friend class QSslSocketPrivate;
+ friend class QSslSocketBackendPrivate;
+};
+
+Q_DECLARE_TYPEINFO(QSslEllipticCurve, Q_PRIMITIVE_TYPE);
+
+Q_DECL_CONSTEXPR inline bool operator!=(QSslEllipticCurve lhs, QSslEllipticCurve rhs) Q_DECL_NOTHROW
+{ return !operator==(lhs, rhs); }
+
+#ifndef QT_NO_DEBUG_STREAM
+class QDebug;
+Q_NETWORK_EXPORT QDebug operator<<(QDebug debug, QSslEllipticCurve curve);
+#endif
+
+QT_END_NAMESPACE
+
+Q_DECLARE_METATYPE(QSslEllipticCurve)
+
+#endif // QSSLELLIPTICCURVE_H
diff --git a/src/network/ssl/qsslellipticcurve_dummy.cpp b/src/network/ssl/qsslellipticcurve_dummy.cpp
new file mode 100644
index 0000000000..64ac1514ab
--- /dev/null
+++ b/src/network/ssl/qsslellipticcurve_dummy.cpp
@@ -0,0 +1,67 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Governikus GmbH & Co. KG.
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtNetwork module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qsslellipticcurve.h"
+
+QT_BEGIN_NAMESPACE
+
+QString QSslEllipticCurve::shortName() const
+{
+ return QString();
+}
+
+QString QSslEllipticCurve::longName() const
+{
+ return QString();
+}
+
+QSslEllipticCurve QSslEllipticCurve::fromShortName(const QString &name)
+{
+ Q_UNUSED(name);
+ return QSslEllipticCurve();
+}
+
+bool QSslEllipticCurve::isTlsNamedCurve() const
+{
+ return false;
+}
+
+QT_END_NAMESPACE
diff --git a/src/network/ssl/qsslellipticcurve_openssl.cpp b/src/network/ssl/qsslellipticcurve_openssl.cpp
new file mode 100644
index 0000000000..d8d1307b2e
--- /dev/null
+++ b/src/network/ssl/qsslellipticcurve_openssl.cpp
@@ -0,0 +1,167 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Governikus GmbH & Co. KG.
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtNetwork module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qsslellipticcurve.h"
+#include "qsslsocket_p.h"
+#include "qsslsocket_openssl_symbols_p.h"
+
+#include <openssl/ssl.h>
+#include <openssl/obj_mac.h>
+
+#include <algorithm>
+
+QT_BEGIN_NAMESPACE
+
+QString QSslEllipticCurve::shortName() const
+{
+ if (id == 0)
+ return QString();
+
+ QSslSocketPrivate::ensureInitialized();
+
+ QString result;
+#ifndef OPENSSL_NO_EC
+ result = QString::fromLatin1(q_OBJ_nid2sn(id));
+#endif
+ return result;
+}
+
+QString QSslEllipticCurve::longName() const
+{
+ if (id == 0)
+ return QString();
+
+ QSslSocketPrivate::ensureInitialized();
+
+ QString result;
+#ifndef OPENSSL_NO_EC
+ result = QString::fromLatin1(q_OBJ_nid2ln(id));
+#endif
+ return result;
+}
+
+QSslEllipticCurve QSslEllipticCurve::fromShortName(const QString &name)
+{
+ if (name.isEmpty())
+ return QSslEllipticCurve();
+
+ QSslSocketPrivate::ensureInitialized();
+
+ QSslEllipticCurve result;
+
+#ifndef OPENSSL_NO_EC
+ const QByteArray curveNameLatin1 = name.toLatin1();
+
+ int nid = q_OBJ_sn2nid(curveNameLatin1.data());
+
+#if OPENSSL_VERSION_NUMBER >= 0x10002000L
+ if (nid == 0 && q_SSLeay() >= 0x10002000L)
+ nid = q_EC_curve_nist2nid(curveNameLatin1.data());
+#endif // OPENSSL_VERSION_NUMBER >= 0x10002000L
+
+ result.id = nid;
+#endif
+
+ return result;
+}
+
+// The brainpool curve NIDs (RFC 7027) have been introduced in OpenSSL 1.0.2,
+// redefine them here to make Qt compile with previous versions of OpenSSL
+// (yet correctly recognize them as TLS named curves).
+// See crypto/objects/obj_mac.h
+#ifndef NID_brainpoolP256r1
+#define NID_brainpoolP256r1 927
+#endif
+
+#ifndef NID_brainpoolP384r1
+#define NID_brainpoolP384r1 931
+#endif
+
+#ifndef NID_brainpoolP512r1
+#define NID_brainpoolP512r1 933
+#endif
+
+// NIDs of named curves allowed in TLS as per RFCs 4492 and 7027,
+// see also https://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml#tls-parameters-8
+static const int tlsNamedCurveNIDs[] = {
+ // RFC 4492
+ NID_sect163k1,
+ NID_sect163r1,
+ NID_sect163r2,
+ NID_sect193r1,
+ NID_sect193r2,
+ NID_sect233k1,
+ NID_sect233r1,
+ NID_sect239k1,
+ NID_sect283k1,
+ NID_sect283r1,
+ NID_sect409k1,
+ NID_sect409r1,
+ NID_sect571k1,
+ NID_sect571r1,
+
+ NID_secp160k1,
+ NID_secp160r1,
+ NID_secp160r2,
+ NID_secp192k1,
+ NID_X9_62_prime192v1, // secp192r1
+ NID_secp224k1,
+ NID_secp224r1,
+ NID_secp256k1,
+ NID_X9_62_prime256v1, // secp256r1
+ NID_secp384r1,
+ NID_secp521r1,
+
+ // RFC 7027
+ NID_brainpoolP256r1,
+ NID_brainpoolP384r1,
+ NID_brainpoolP512r1
+};
+
+static const size_t tlsNamedCurveNIDCount = sizeof(tlsNamedCurveNIDs) / sizeof(tlsNamedCurveNIDs[0]);
+
+bool QSslEllipticCurve::isTlsNamedCurve() const
+{
+ const int * const tlsNamedCurveNIDsEnd = tlsNamedCurveNIDs + tlsNamedCurveNIDCount;
+ return std::find(tlsNamedCurveNIDs, tlsNamedCurveNIDsEnd, id) != tlsNamedCurveNIDsEnd;
+}
+
+QT_END_NAMESPACE
diff --git a/src/network/ssl/qsslsocket.cpp b/src/network/ssl/qsslsocket.cpp
index 31c7b3087e..3838e70310 100644
--- a/src/network/ssl/qsslsocket.cpp
+++ b/src/network/ssl/qsslsocket.cpp
@@ -321,6 +321,7 @@ public:
QMutex mutex;
QList<QSslCipher> supportedCiphers;
+ QVector<QSslEllipticCurve> supportedEllipticCurves;
QExplicitlySharedDataPointer<QSslConfigurationPrivate> config;
};
Q_GLOBAL_STATIC(QSslSocketGlobalData, globalData)
@@ -902,6 +903,7 @@ void QSslSocket::setSslConfiguration(const QSslConfiguration &configuration)
d->configuration.localCertificateChain = configuration.localCertificateChain();
d->configuration.privateKey = configuration.privateKey();
d->configuration.ciphers = configuration.ciphers();
+ d->configuration.ellipticCurves = configuration.ellipticCurves();
d->configuration.caCertificates = configuration.caCertificates();
d->configuration.peerVerifyDepth = configuration.peerVerifyDepth();
d->configuration.peerVerifyMode = configuration.peerVerifyMode();
@@ -1270,6 +1272,120 @@ QList<QSslCipher> QSslSocket::supportedCiphers()
}
/*!
+ \since 5.5
+
+ Returns this socket's current list of elliptic curves. This
+ list is used during the socket's handshake phase for choosing an
+ elliptic curve (when using an elliptic curve cipher).
+ The returned list of curves is ordered by descending preference
+ (i.e., the first curve in the list is the most preferred one).
+
+ By default, this list is empty. An empty default list means that the
+ handshake phase can choose any of the curves supported by this system's SSL
+ libraries (which may vary from system to system). The list of curves
+ supported by this system's SSL libraries is returned by
+ supportedEllipticCurves().
+
+ You can restrict the list of curves used for choosing the session cipher
+ for this socket by calling setEllipticCurves() with a subset of the
+ supported ciphers. You can revert to using the entire set by calling
+ setEllipticCurves() with the list returned by supportedEllipticCurves().
+
+ \sa setEllipticCurves(), defaultEllipticCurves(), setDefaultEllipticCurves(), supportedEllipticCurves()
+*/
+QVector<QSslEllipticCurve> QSslSocket::ellipticCurves() const
+{
+ Q_D(const QSslSocket);
+ return d->configuration.ellipticCurves;
+}
+
+/*!
+ \since 5.5
+
+ Sets the list of elliptic curves to be used by this socket to \a curves,
+ which must contain a subset of the curves in the list returned by
+ supportedEllipticCurves().
+
+ Restricting the elliptic curves must be done before the handshake
+ phase, where the session cipher is chosen.
+
+ If an empty list is set, then the handshake phase can choose any of the
+ curves supported by this system's SSL libraries (which may vary from system
+ to system). The list of curves supported by this system's SSL libraries is
+ returned by supportedEllipticCurves().
+
+ Use setCipher() in order to disable the usage of elliptic curve ciphers.
+
+ \sa ellipticCurves(), setDefaultEllipticCurves(), supportedEllipticCurves()
+*/
+void QSslSocket::setEllipticCurves(const QVector<QSslEllipticCurve> &curves)
+{
+ Q_D(QSslSocket);
+ d->configuration.ellipticCurves = curves;
+}
+
+/*!
+ \since 5.5
+
+ Sets the list of elliptic curves to be used by all sockets in this
+ application to \a curves, which must contain a subset of the curves in the
+ list returned by supportedEllipticCurves().
+
+ Restricting the default elliptic curves only affects SSL sockets
+ that perform their handshake phase after the default list has been changed.
+
+ If an empty list is set, then the handshake phase can choose any of the
+ curves supported by this system's SSL libraries (which may vary from system
+ to system). The list of curves supported by this system's SSL libraries is
+ returned by supportedEllipticCurves().
+
+ Use setDefaultCiphers() in order to disable the usage of elliptic curve ciphers.
+
+ \sa setEllipticCurves(), defaultEllipticCurves(), supportedEllipticCurves()
+*/
+void QSslSocket::setDefaultEllipticCurves(const QVector<QSslEllipticCurve> &curves)
+{
+ QSslSocketPrivate::setDefaultEllipticCurves(curves);
+}
+
+
+/*!
+ \since 5.5
+
+ Returns the default elliptic curves list for all sockets in
+ this application. This list is used during the socket's handshake
+ phase when negotiating with the peer to choose a session cipher.
+ The list is ordered by preference (i.e., the first curve in the
+ list is the most preferred one).
+
+ By default, this list is empty. An empty default list means that the
+ handshake phase can choose any of the curves supported by this system's SSL
+ libraries (which may vary from system to system). The list of curves
+ supported by this system's SSL libraries is returned by
+ supportedEllipticCurves().
+
+ \sa setDefaultEllipticCurves(), supportedEllipticCurves()
+*/
+QVector<QSslEllipticCurve> QSslSocket::defaultEllipticCurves()
+{
+ return QSslSocketPrivate::defaultEllipticCurves();
+}
+
+/*!
+ \since 5.5
+
+ Returns the list of elliptic curves supported by this
+ system. This list is set by the system's SSL libraries and may
+ vary from system to system.
+
+ \sa ellipticCurves(), setEllipticCurves(), defaultEllipticCurves()
+*/
+QVector<QSslEllipticCurve> QSslSocket::supportedEllipticCurves()
+{
+ return QSslSocketPrivate::supportedEllipticCurves();
+}
+
+/*!
Searches all files in the \a path for certificates encoded in the
specified \a format and adds them to this socket's CA certificate
database. \a path can be explicit, or it can contain wildcards in
@@ -2036,6 +2152,46 @@ void QSslSocketPrivate::setDefaultSupportedCiphers(const QList<QSslCipher> &ciph
/*!
\internal
*/
+QVector<QSslEllipticCurve> QSslSocketPrivate::defaultEllipticCurves()
+{
+ QSslSocketPrivate::ensureInitialized();
+ const QMutexLocker locker(&globalData()->mutex);
+ return globalData()->config->ellipticCurves;
+}
+
+/*!
+ \internal
+*/
+QVector<QSslEllipticCurve> QSslSocketPrivate::supportedEllipticCurves()
+{
+ QSslSocketPrivate::ensureInitialized();
+ const QMutexLocker locker(&globalData()->mutex);
+ return globalData()->supportedEllipticCurves;
+}
+
+/*!
+ \internal
+*/
+void QSslSocketPrivate::setDefaultEllipticCurves(const QVector<QSslEllipticCurve> &curves)
+{
+ const QMutexLocker locker(&globalData()->mutex);
+ globalData()->config.detach();
+ globalData()->config->ellipticCurves = curves;
+}
+
+/*!
+ \internal
+*/
+void QSslSocketPrivate::setDefaultSupportedEllipticCurves(const QVector<QSslEllipticCurve> &curves)
+{
+ const QMutexLocker locker(&globalData()->mutex);
+ globalData()->config.detach();
+ globalData()->supportedEllipticCurves = curves;
+}
+
+/*!
+ \internal
+*/
QList<QSslCertificate> QSslSocketPrivate::defaultCaCertificates()
{
QSslSocketPrivate::ensureInitialized();
@@ -2128,10 +2284,8 @@ void QSslConfigurationPrivate::deepCopyDefaultConfiguration(QSslConfigurationPri
QMutexLocker locker(&globalData()->mutex);
const QSslConfigurationPrivate *global = globalData()->config.constData();
- if (!global) {
- ptr = 0;
+ if (!global)
return;
- }
ptr->ref.store(1);
ptr->peerCertificate = global->peerCertificate;
@@ -2146,6 +2300,7 @@ void QSslConfigurationPrivate::deepCopyDefaultConfiguration(QSslConfigurationPri
ptr->peerVerifyMode = global->peerVerifyMode;
ptr->peerVerifyDepth = global->peerVerifyDepth;
ptr->sslOptions = global->sslOptions;
+ ptr->ellipticCurves = global->ellipticCurves;
}
/*!
diff --git a/src/network/ssl/qsslsocket.h b/src/network/ssl/qsslsocket.h
index 1fe12e5989..f5ab1527dc 100644
--- a/src/network/ssl/qsslsocket.h
+++ b/src/network/ssl/qsslsocket.h
@@ -51,6 +51,7 @@ class QDir;
class QSslCipher;
class QSslCertificate;
class QSslConfiguration;
+class QSslEllipticCurve;
class QSslSocketPrivate;
class Q_NETWORK_EXPORT QSslSocket : public QTcpSocket
@@ -72,20 +73,20 @@ public:
explicit QSslSocket(QObject *parent = 0);
~QSslSocket();
- void resume(); // to continue after proxy authentication required, SSL errors etc.
+ void resume() Q_DECL_OVERRIDE; // to continue after proxy authentication required, SSL errors etc.
// Autostarting the SSL client handshake.
void connectToHostEncrypted(const QString &hostName, quint16 port, OpenMode mode = ReadWrite, NetworkLayerProtocol protocol = AnyIPProtocol);
void connectToHostEncrypted(const QString &hostName, quint16 port, const QString &sslPeerName, OpenMode mode = ReadWrite, NetworkLayerProtocol protocol = AnyIPProtocol);
bool setSocketDescriptor(qintptr socketDescriptor, SocketState state = ConnectedState,
- OpenMode openMode = ReadWrite);
+ OpenMode openMode = ReadWrite) Q_DECL_OVERRIDE;
using QAbstractSocket::connectToHost;
- void connectToHost(const QString &hostName, quint16 port, OpenMode openMode = ReadWrite, NetworkLayerProtocol protocol = AnyIPProtocol);
- void disconnectFromHost();
+ void connectToHost(const QString &hostName, quint16 port, OpenMode openMode = ReadWrite, NetworkLayerProtocol protocol = AnyIPProtocol) Q_DECL_OVERRIDE;
+ void disconnectFromHost() Q_DECL_OVERRIDE;
- virtual void setSocketOption(QAbstractSocket::SocketOption option, const QVariant &value);
- virtual QVariant socketOption(QAbstractSocket::SocketOption option);
+ virtual void setSocketOption(QAbstractSocket::SocketOption option, const QVariant &value) Q_DECL_OVERRIDE;
+ virtual QVariant socketOption(QAbstractSocket::SocketOption option) Q_DECL_OVERRIDE;
SslMode mode() const;
bool isEncrypted() const;
@@ -103,16 +104,16 @@ public:
void setPeerVerifyName(const QString &hostName);
// From QIODevice
- qint64 bytesAvailable() const;
- qint64 bytesToWrite() const;
- bool canReadLine() const;
- void close();
- bool atEnd() const;
+ qint64 bytesAvailable() const Q_DECL_OVERRIDE;
+ qint64 bytesToWrite() const Q_DECL_OVERRIDE;
+ bool canReadLine() const Q_DECL_OVERRIDE;
+ void close() Q_DECL_OVERRIDE;
+ bool atEnd() const Q_DECL_OVERRIDE;
bool flush();
void abort();
// From QAbstractSocket:
- void setReadBufferSize(qint64 size);
+ void setReadBufferSize(qint64 size) Q_DECL_OVERRIDE;
// Similar to QIODevice's:
qint64 encryptedBytesAvailable() const;
@@ -149,6 +150,13 @@ public:
static QList<QSslCipher> defaultCiphers();
static QList<QSslCipher> supportedCiphers();
+ // EC settings.
+ QVector<QSslEllipticCurve> ellipticCurves() const;
+ void setEllipticCurves(const QVector<QSslEllipticCurve> &curves);
+ static void setDefaultEllipticCurves(const QVector<QSslEllipticCurve> &curves);
+ static QVector<QSslEllipticCurve> defaultEllipticCurves();
+ static QVector<QSslEllipticCurve> supportedEllipticCurves();
+
// CA settings.
bool addCaCertificates(const QString &path, QSsl::EncodingFormat format = QSsl::Pem,
QRegExp::PatternSyntax syntax = QRegExp::FixedString);
@@ -164,11 +172,11 @@ public:
static QList<QSslCertificate> defaultCaCertificates();
static QList<QSslCertificate> systemCaCertificates();
- bool waitForConnected(int msecs = 30000);
+ bool waitForConnected(int msecs = 30000) Q_DECL_OVERRIDE;
bool waitForEncrypted(int msecs = 30000);
- bool waitForReadyRead(int msecs = 30000);
- bool waitForBytesWritten(int msecs = 30000);
- bool waitForDisconnected(int msecs = 30000);
+ bool waitForReadyRead(int msecs = 30000) Q_DECL_OVERRIDE;
+ bool waitForBytesWritten(int msecs = 30000) Q_DECL_OVERRIDE;
+ bool waitForDisconnected(int msecs = 30000) Q_DECL_OVERRIDE;
QList<QSslError> sslErrors() const;
@@ -193,8 +201,8 @@ Q_SIGNALS:
void encryptedBytesWritten(qint64 totalBytes);
protected:
- qint64 readData(char *data, qint64 maxlen);
- qint64 writeData(const char *data, qint64 len);
+ qint64 readData(char *data, qint64 maxlen) Q_DECL_OVERRIDE;
+ qint64 writeData(const char *data, qint64 len) Q_DECL_OVERRIDE;
private:
Q_DECLARE_PRIVATE(QSslSocket)
diff --git a/src/network/ssl/qsslsocket_openssl.cpp b/src/network/ssl/qsslsocket_openssl.cpp
index 8833e3fdd8..bf348f6f9f 100644
--- a/src/network/ssl/qsslsocket_openssl.cpp
+++ b/src/network/ssl/qsslsocket_openssl.cpp
@@ -1,6 +1,7 @@
/****************************************************************************
**
** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Copyright (C) 2014 Governikus GmbH & Co. KG
** Contact: http://www.qt-project.org/legal
**
** This file is part of the QtNetwork module of the Qt Toolkit.
@@ -56,6 +57,7 @@
#include "qsslcertificate_p.h"
#include "qsslcipher_p.h"
#include "qsslkey_p.h"
+#include "qsslellipticcurve.h"
#include <QtCore/qdatetime.h>
#include <QtCore/qdebug.h>
@@ -480,6 +482,7 @@ void QSslSocketPrivate::ensureCiphersAndCertsLoaded()
s_loadedCiphersAndCerts = true;
resetDefaultCiphers();
+ resetDefaultEllipticCurves();
#ifndef QT_NO_LIBRARY
//load symbols needed to receive certificates from system store
@@ -628,6 +631,31 @@ void QSslSocketPrivate::resetDefaultCiphers()
setDefaultCiphers(defaultCiphers);
}
+void QSslSocketPrivate::resetDefaultEllipticCurves()
+{
+ QVector<QSslEllipticCurve> curves;
+
+#ifndef OPENSSL_NO_EC
+ const size_t curveCount = q_EC_get_builtin_curves(NULL, 0);
+
+ QVarLengthArray<EC_builtin_curve> builtinCurves(static_cast<int>(curveCount));
+
+ if (q_EC_get_builtin_curves(builtinCurves.data(), curveCount) == curveCount) {
+ for (size_t i = 0; i < curveCount; ++i) {
+ QSslEllipticCurve curve;
+ curve.id = builtinCurves[i].nid;
+ curves.append(curve);
+ }
+ }
+#endif // OPENSSL_NO_EC
+
+ // set the list of supported ECs, but not the list
+ // of *default* ECs. OpenSSL doesn't like forcing an EC for the wrong
+ // ciphersuite, so don't try it -- leave the empty list to mean
+ // "the implementation will choose the most suitable one".
+ setDefaultSupportedEllipticCurves(curves);
+}
+
QList<QSslCertificate> QSslSocketPrivate::systemCaCertificates()
{
ensureInitialized();
diff --git a/src/network/ssl/qsslsocket_openssl_p.h b/src/network/ssl/qsslsocket_openssl_p.h
index 29907e9ae7..69634ceab5 100644
--- a/src/network/ssl/qsslsocket_openssl_p.h
+++ b/src/network/ssl/qsslsocket_openssl_p.h
@@ -116,15 +116,15 @@ public:
QList<QPair<int, int> > errorList;
// Platform specific functions
- void startClientEncryption();
- void startServerEncryption();
- void transmit();
+ void startClientEncryption() Q_DECL_OVERRIDE;
+ void startServerEncryption() Q_DECL_OVERRIDE;
+ void transmit() Q_DECL_OVERRIDE;
bool startHandshake();
- void disconnectFromHost();
- void disconnected();
- QSslCipher sessionCipher() const;
- QSsl::SslProtocol sessionProtocol() const;
- void continueHandshake();
+ void disconnectFromHost() Q_DECL_OVERRIDE;
+ void disconnected() Q_DECL_OVERRIDE;
+ QSslCipher sessionCipher() const Q_DECL_OVERRIDE;
+ QSsl::SslProtocol sessionProtocol() const Q_DECL_OVERRIDE;
+ void continueHandshake() Q_DECL_OVERRIDE;
bool checkSslErrors();
#ifdef Q_OS_WIN
void fetchCaRootForCert(const QSslCertificate &cert);
diff --git a/src/network/ssl/qsslsocket_openssl_symbols.cpp b/src/network/ssl/qsslsocket_openssl_symbols.cpp
index ea6e84adef..91de3b2743 100644
--- a/src/network/ssl/qsslsocket_openssl_symbols.cpp
+++ b/src/network/ssl/qsslsocket_openssl_symbols.cpp
@@ -168,6 +168,7 @@ DEFINEFUNC(int, EVP_PKEY_type, int a, a, return NID_undef, return)
DEFINEFUNC2(int, i2d_X509, X509 *a, a, unsigned char **b, b, return -1, return)
DEFINEFUNC(const char *, OBJ_nid2sn, int a, a, return 0, return)
DEFINEFUNC(const char *, OBJ_nid2ln, int a, a, return 0, return)
+DEFINEFUNC(int, OBJ_sn2nid, const char *s, s, return 0, return)
DEFINEFUNC3(int, i2t_ASN1_OBJECT, char *a, a, int b, b, ASN1_OBJECT *c, c, return -1, return)
DEFINEFUNC4(int, OBJ_obj2txt, char *a, a, int b, b, ASN1_OBJECT *c, c, int d, d, return -1, return)
@@ -372,6 +373,10 @@ DEFINEFUNC3(BIGNUM *, BN_bin2bn, const unsigned char *s, s, int len, len, BIGNUM
#ifndef OPENSSL_NO_EC
DEFINEFUNC(EC_KEY *, EC_KEY_new_by_curve_name, int nid, nid, return 0, return)
DEFINEFUNC(void, EC_KEY_free, EC_KEY *ecdh, ecdh, return, DUMMYARG)
+DEFINEFUNC2(size_t, EC_get_builtin_curves, EC_builtin_curve * r, r, size_t nitems, nitems, return 0, return)
+#if OPENSSL_VERSION_NUMBER >= 0x10002000L
+DEFINEFUNC(int, EC_curve_nist2nid, const char *name, name, return 0, return)
+#endif // OPENSSL_VERSION_NUMBER >= 0x10002000L
#endif // OPENSSL_NO_EC
DEFINEFUNC5(int, PKCS12_parse, PKCS12 *p12, p12, const char *pass, pass, EVP_PKEY **pkey, pkey, \
@@ -729,6 +734,7 @@ bool q_resolveOpenSslSymbols()
RESOLVEFUNC(EVP_PKEY_type)
RESOLVEFUNC(OBJ_nid2sn)
RESOLVEFUNC(OBJ_nid2ln)
+ RESOLVEFUNC(OBJ_sn2nid)
RESOLVEFUNC(i2t_ASN1_OBJECT)
RESOLVEFUNC(OBJ_obj2txt)
RESOLVEFUNC(OBJ_obj2nid)
@@ -879,6 +885,11 @@ bool q_resolveOpenSslSymbols()
#ifndef OPENSSL_NO_EC
RESOLVEFUNC(EC_KEY_new_by_curve_name)
RESOLVEFUNC(EC_KEY_free)
+ RESOLVEFUNC(EC_get_builtin_curves)
+#if OPENSSL_VERSION_NUMBER >= 0x10002000L
+ if (q_SSLeay() >= 0x10002000L)
+ RESOLVEFUNC(EC_curve_nist2nid)
+#endif // OPENSSL_VERSION_NUMBER >= 0x10002000L
#endif // OPENSSL_NO_EC
RESOLVEFUNC(PKCS12_parse)
RESOLVEFUNC(d2i_PKCS12_bio)
diff --git a/src/network/ssl/qsslsocket_openssl_symbols_p.h b/src/network/ssl/qsslsocket_openssl_symbols_p.h
index e2e09e4feb..ee19345e4a 100644
--- a/src/network/ssl/qsslsocket_openssl_symbols_p.h
+++ b/src/network/ssl/qsslsocket_openssl_symbols_p.h
@@ -248,6 +248,7 @@ Q_AUTOTEST_EXPORT EVP_PKEY *q_EVP_PKEY_new();
int q_i2d_X509(X509 *a, unsigned char **b);
const char *q_OBJ_nid2sn(int a);
const char *q_OBJ_nid2ln(int a);
+int q_OBJ_sn2nid(const char *s);
int q_i2t_ASN1_OBJECT(char *buf, int buf_len, ASN1_OBJECT *obj);
int q_OBJ_obj2txt(char *buf, int buf_len, ASN1_OBJECT *obj, int no_name);
int q_OBJ_obj2nid(const ASN1_OBJECT *a);
@@ -435,6 +436,12 @@ BIGNUM *q_BN_bin2bn(const unsigned char *s, int len, BIGNUM *ret);
EC_KEY *q_EC_KEY_new_by_curve_name(int nid);
void q_EC_KEY_free(EC_KEY *ecdh);
#define q_SSL_CTX_set_tmp_ecdh(ctx, ecdh) q_SSL_CTX_ctrl((ctx), SSL_CTRL_SET_TMP_ECDH, 0, (char *)ecdh)
+
+// EC curves management
+size_t q_EC_get_builtin_curves(EC_builtin_curve *r, size_t nitems);
+#if OPENSSL_VERSION_NUMBER >= 0x10002000L
+int q_EC_curve_nist2nid(const char *name);
+#endif // OPENSSL_VERSION_NUMBER >= 0x10002000L
#endif // OPENSSL_NO_EC
// PKCS#12 support
diff --git a/src/network/ssl/qsslsocket_p.h b/src/network/ssl/qsslsocket_p.h
index 6e7a2c5520..3262b41bbd 100644
--- a/src/network/ssl/qsslsocket_p.h
+++ b/src/network/ssl/qsslsocket_p.h
@@ -135,6 +135,12 @@ public:
static void setDefaultSupportedCiphers(const QList<QSslCipher> &ciphers);
static void resetDefaultCiphers();
+ static QVector<QSslEllipticCurve> defaultEllipticCurves();
+ static QVector<QSslEllipticCurve> supportedEllipticCurves();
+ static void setDefaultEllipticCurves(const QVector<QSslEllipticCurve> &curves);
+ static void setDefaultSupportedEllipticCurves(const QVector<QSslEllipticCurve> &curves);
+ static void resetDefaultEllipticCurves();
+
static QList<QSslCertificate> defaultCaCertificates();
static QList<QSslCertificate> systemCaCertificates();
static void setDefaultCaCertificates(const QList<QSslCertificate> &certs);
@@ -180,8 +186,8 @@ public:
static QList<QByteArray> unixRootCertDirectories(); // used also by QSslContext
- virtual qint64 peek(char *data, qint64 maxSize);
- virtual QByteArray peek(qint64 maxSize);
+ virtual qint64 peek(char *data, qint64 maxSize) Q_DECL_OVERRIDE;
+ virtual QByteArray peek(qint64 maxSize) Q_DECL_OVERRIDE;
// Platform specific functions
virtual void startClientEncryption() = 0;
diff --git a/src/network/ssl/ssl.pri b/src/network/ssl/ssl.pri
index d0ba93b53f..961e29c062 100644
--- a/src/network/ssl/ssl.pri
+++ b/src/network/ssl/ssl.pri
@@ -9,6 +9,7 @@ contains(QT_CONFIG, ssl) | contains(QT_CONFIG, openssl) | contains(QT_CONFIG, op
ssl/qsslconfiguration_p.h \
ssl/qsslcipher.h \
ssl/qsslcipher_p.h \
+ ssl/qsslellipticcurve.h \
ssl/qsslerror.h \
ssl/qsslkey.h \
ssl/qsslkey_p.h \
@@ -21,6 +22,7 @@ contains(QT_CONFIG, ssl) | contains(QT_CONFIG, openssl) | contains(QT_CONFIG, op
ssl/qsslcertificate.cpp \
ssl/qsslconfiguration.cpp \
ssl/qsslcipher.cpp \
+ ssl/qsslellipticcurve.cpp \
ssl/qsslkey_p.cpp \
ssl/qsslerror.cpp \
ssl/qsslsocket.cpp \
@@ -32,7 +34,8 @@ contains(QT_CONFIG, ssl) | contains(QT_CONFIG, openssl) | contains(QT_CONFIG, op
ssl/qsslcertificate_winrt.cpp \
ssl/qsslkey_qt.cpp \
ssl/qsslkey_winrt.cpp \
- ssl/qsslsocket_winrt.cpp
+ ssl/qsslsocket_winrt.cpp \
+ ssl/qsslellipticcurve_dummy.cpp
}
}
@@ -42,6 +45,7 @@ contains(QT_CONFIG, openssl) | contains(QT_CONFIG, openssl-linked) {
ssl/qsslsocket_openssl_symbols_p.h
SOURCES += ssl/qsslcertificate_openssl.cpp \
ssl/qsslcontext_openssl.cpp \
+ ssl/qsslellipticcurve_openssl.cpp \
ssl/qsslkey_openssl.cpp \
ssl/qsslsocket_openssl.cpp \
ssl/qsslsocket_openssl_symbols.cpp
diff --git a/src/opengl/gl2paintengineex/qglengineshadermanager.cpp b/src/opengl/gl2paintengineex/qglengineshadermanager.cpp
index cc7c839abd..eba5dff8d4 100644
--- a/src/opengl/gl2paintengineex/qglengineshadermanager.cpp
+++ b/src/opengl/gl2paintengineex/qglengineshadermanager.cpp
@@ -60,13 +60,13 @@ public:
delete m_shaders;
}
- void invalidateResource()
+ void invalidateResource() Q_DECL_OVERRIDE
{
delete m_shaders;
m_shaders = 0;
}
- void freeResource(QOpenGLContext *)
+ void freeResource(QOpenGLContext *) Q_DECL_OVERRIDE
{
}
diff --git a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp
index 1fa5723d85..a12b5ee98d 100644
--- a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp
+++ b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp
@@ -1583,10 +1583,8 @@ void QGL2PaintEngineEx::drawTextItem(const QPointF &p, const QTextItem &textItem
{
QStaticTextItem staticTextItem;
- staticTextItem.chars = const_cast<QChar *>(ti.chars);
staticTextItem.setFontEngine(ti.fontEngine);
staticTextItem.glyphs = glyphs.data();
- staticTextItem.numChars = ti.num_chars;
staticTextItem.numGlyphs = glyphs.size();
staticTextItem.glyphPositions = positions.data();
diff --git a/src/opengl/gl2paintengineex/qpaintengineex_opengl2_p.h b/src/opengl/gl2paintengineex/qpaintengineex_opengl2_p.h
index ac1d63df17..162b6a6bd9 100644
--- a/src/opengl/gl2paintengineex/qpaintengineex_opengl2_p.h
+++ b/src/opengl/gl2paintengineex/qpaintengineex_opengl2_p.h
@@ -102,37 +102,37 @@ public:
QGL2PaintEngineEx();
~QGL2PaintEngineEx();
- bool begin(QPaintDevice *device);
+ bool begin(QPaintDevice *device) Q_DECL_OVERRIDE;
void ensureActive();
- bool end();
-
- virtual void clipEnabledChanged();
- virtual void penChanged();
- virtual void brushChanged();
- virtual void brushOriginChanged();
- virtual void opacityChanged();
- virtual void compositionModeChanged();
- virtual void renderHintsChanged();
- virtual void transformChanged();
-
- virtual void drawPixmap(const QRectF &r, const QPixmap &pm, const QRectF &sr);
+ bool end() Q_DECL_OVERRIDE;
+
+ virtual void clipEnabledChanged() Q_DECL_OVERRIDE;
+ virtual void penChanged() Q_DECL_OVERRIDE;
+ virtual void brushChanged() Q_DECL_OVERRIDE;
+ virtual void brushOriginChanged() Q_DECL_OVERRIDE;
+ virtual void opacityChanged() Q_DECL_OVERRIDE;
+ virtual void compositionModeChanged() Q_DECL_OVERRIDE;
+ virtual void renderHintsChanged() Q_DECL_OVERRIDE;
+ virtual void transformChanged() Q_DECL_OVERRIDE;
+
+ virtual void drawPixmap(const QRectF &r, const QPixmap &pm, const QRectF &sr) Q_DECL_OVERRIDE;
virtual void drawPixmapFragments(const QPainter::PixmapFragment *fragments, int fragmentCount, const QPixmap &pixmap,
- QPainter::PixmapFragmentHints hints);
+ QPainter::PixmapFragmentHints hints) Q_DECL_OVERRIDE;
virtual void drawImage(const QRectF &r, const QImage &pm, const QRectF &sr,
- Qt::ImageConversionFlags flags = Qt::AutoColor);
- virtual void drawTextItem(const QPointF &p, const QTextItem &textItem);
- virtual void fill(const QVectorPath &path, const QBrush &brush);
- virtual void stroke(const QVectorPath &path, const QPen &pen);
- virtual void clip(const QVectorPath &path, Qt::ClipOperation op);
+ Qt::ImageConversionFlags flags = Qt::AutoColor) Q_DECL_OVERRIDE;
+ virtual void drawTextItem(const QPointF &p, const QTextItem &textItem) Q_DECL_OVERRIDE;
+ virtual void fill(const QVectorPath &path, const QBrush &brush) Q_DECL_OVERRIDE;
+ virtual void stroke(const QVectorPath &path, const QPen &pen) Q_DECL_OVERRIDE;
+ virtual void clip(const QVectorPath &path, Qt::ClipOperation op) Q_DECL_OVERRIDE;
- virtual void drawStaticTextItem(QStaticTextItem *textItem);
+ virtual void drawStaticTextItem(QStaticTextItem *textItem) Q_DECL_OVERRIDE;
bool drawTexture(const QRectF &r, GLuint textureId, const QSize &size, const QRectF &sr);
- Type type() const { return OpenGL2; }
+ Type type() const Q_DECL_OVERRIDE { return OpenGL2; }
- virtual void setState(QPainterState *s);
- virtual QPainterState *createState(QPainterState *orig) const;
+ virtual void setState(QPainterState *s) Q_DECL_OVERRIDE;
+ virtual QPainterState *createState(QPainterState *orig) const Q_DECL_OVERRIDE;
inline QGL2PaintEngineState *state() {
return static_cast<QGL2PaintEngineState *>(QPaintEngineEx::state());
}
@@ -140,16 +140,16 @@ public:
return static_cast<const QGL2PaintEngineState *>(QPaintEngineEx::state());
}
- void beginNativePainting();
- void endNativePainting();
+ void beginNativePainting() Q_DECL_OVERRIDE;
+ void endNativePainting() Q_DECL_OVERRIDE;
void invalidateState();
void setRenderTextActive(bool);
bool isNativePaintingActive() const;
- bool requiresPretransformedGlyphPositions(QFontEngine *, const QTransform &) const { return false; }
- bool shouldDrawCachedGlyphs(QFontEngine *, const QTransform &) const;
+ bool requiresPretransformedGlyphPositions(QFontEngine *, const QTransform &) const Q_DECL_OVERRIDE { return false; }
+ bool shouldDrawCachedGlyphs(QFontEngine *, const QTransform &) const Q_DECL_OVERRIDE;
void setTranslateZ(GLfloat z);
@@ -238,7 +238,7 @@ public:
void updateClipScissorTest();
void setScissor(const QRect &rect);
void regenerateClip();
- void systemStateChanged();
+ void systemStateChanged() Q_DECL_OVERRIDE;
static QGLEngineShaderManager* shaderManagerForEngine(QGL2PaintEngineEx *engine) { return engine->d_func()->shaderManager; }
diff --git a/src/opengl/gl2paintengineex/qtextureglyphcache_gl_p.h b/src/opengl/gl2paintengineex/qtextureglyphcache_gl_p.h
index fe6f777af5..652cea8151 100644
--- a/src/opengl/gl2paintengineex/qtextureglyphcache_gl_p.h
+++ b/src/opengl/gl2paintengineex/qtextureglyphcache_gl_p.h
@@ -73,7 +73,7 @@ struct QGLGlyphTexture : public QOpenGLSharedResource
#endif
}
- void freeResource(QOpenGLContext *context)
+ void freeResource(QOpenGLContext *context) Q_DECL_OVERRIDE
{
const QGLContext *ctx = QGLContext::fromOpenGLContext(context);
#ifdef QT_GL_TEXTURE_GLYPH_CACHE_DEBUG
@@ -87,7 +87,7 @@ struct QGLGlyphTexture : public QOpenGLSharedResource
ctx->contextHandle()->functions()->glDeleteTextures(1, &m_texture);
}
- void invalidateResource()
+ void invalidateResource() Q_DECL_OVERRIDE
{
m_texture = 0;
m_fbo = 0;
@@ -107,12 +107,12 @@ public:
QGLTextureGlyphCache(QFontEngine::GlyphFormat format, const QTransform &matrix);
~QGLTextureGlyphCache();
- virtual void createTextureData(int width, int height);
- virtual void resizeTextureData(int width, int height);
- virtual void fillTexture(const Coord &c, glyph_t glyph, QFixed subPixelPosition);
- virtual int glyphPadding() const;
- virtual int maxTextureWidth() const;
- virtual int maxTextureHeight() const;
+ virtual void createTextureData(int width, int height) Q_DECL_OVERRIDE;
+ virtual void resizeTextureData(int width, int height) Q_DECL_OVERRIDE;
+ virtual void fillTexture(const Coord &c, glyph_t glyph, QFixed subPixelPosition) Q_DECL_OVERRIDE;
+ virtual int glyphPadding() const Q_DECL_OVERRIDE;
+ virtual int maxTextureWidth() const Q_DECL_OVERRIDE;
+ virtual int maxTextureHeight() const Q_DECL_OVERRIDE;
inline GLuint texture() const {
QGLTextureGlyphCache *that = const_cast<QGLTextureGlyphCache *>(this);
diff --git a/src/opengl/qgl.h b/src/opengl/qgl.h
index 482c215b51..cf35dc7e20 100644
--- a/src/opengl/qgl.h
+++ b/src/opengl/qgl.h
@@ -398,7 +398,7 @@ public:
const QFont & fnt = QFont());
void renderText(double x, double y, double z, const QString & str,
const QFont & fnt = QFont());
- QPaintEngine *paintEngine() const;
+ QPaintEngine *paintEngine() const Q_DECL_OVERRIDE;
GLuint bindTexture(const QImage &image, GLenum target, GLint format,
QGLContext::BindOptions options);
@@ -422,7 +422,7 @@ public Q_SLOTS:
virtual void updateOverlayGL();
protected:
- bool event(QEvent *);
+ bool event(QEvent *) Q_DECL_OVERRIDE;
virtual void initializeGL();
virtual void resizeGL(int w, int h);
virtual void paintGL();
@@ -434,8 +434,8 @@ protected:
void setAutoBufferSwap(bool on);
bool autoBufferSwap() const;
- void paintEvent(QPaintEvent*);
- void resizeEvent(QResizeEvent*);
+ void paintEvent(QPaintEvent*) Q_DECL_OVERRIDE;
+ void resizeEvent(QResizeEvent*) Q_DECL_OVERRIDE;
virtual void glInit();
virtual void glDraw();
diff --git a/src/opengl/qgl_p.h b/src/opengl/qgl_p.h
index 4cf656fd86..20b17fb4ae 100644
--- a/src/opengl/qgl_p.h
+++ b/src/opengl/qgl_p.h
@@ -134,7 +134,7 @@ public:
void initContext(QGLContext *context, const QGLWidget* shareWidget);
bool renderCxPm(QPixmap *pixmap);
void cleanupColormaps();
- void aboutToDestroy() {
+ void aboutToDestroy() Q_DECL_OVERRIDE {
if (glcx && !parent_changing)
glcx->reset();
}
@@ -482,12 +482,12 @@ public:
}
protected:
- void invalidateResource()
+ void invalidateResource() Q_DECL_OVERRIDE
{
m_id = 0;
}
- void freeResource(QOpenGLContext *context)
+ void freeResource(QOpenGLContext *context) Q_DECL_OVERRIDE
{
if (m_id) {
freeResource(QGLContext::fromOpenGLContext(context), m_id);
@@ -511,7 +511,7 @@ public:
}
protected:
- void freeResource(QGLContext *ctx, GLuint id)
+ void freeResource(QGLContext *ctx, GLuint id) Q_DECL_OVERRIDE
{
m_func(ctx, id);
}
diff --git a/src/opengl/qglframebufferobject.h b/src/opengl/qglframebufferobject.h
index 2382145da1..009254c903 100644
--- a/src/opengl/qglframebufferobject.h
+++ b/src/opengl/qglframebufferobject.h
@@ -78,7 +78,7 @@ public:
QImage toImage() const;
Attachment attachment() const;
- QPaintEngine *paintEngine() const;
+ QPaintEngine *paintEngine() const Q_DECL_OVERRIDE;
GLuint handle() const;
static bool bindDefault();
@@ -95,8 +95,8 @@ public:
GLenum filter = GL_NEAREST);
protected:
- int metric(PaintDeviceMetric metric) const;
- int devType() const { return QInternal::FramebufferObject; }
+ int metric(PaintDeviceMetric metric) const Q_DECL_OVERRIDE;
+ int devType() const Q_DECL_OVERRIDE { return QInternal::FramebufferObject; }
private:
Q_DISABLE_COPY(QGLFramebufferObject)
diff --git a/src/opengl/qglframebufferobject_p.h b/src/opengl/qglframebufferobject_p.h
index 95a64a1665..bf4bfef0b2 100644
--- a/src/opengl/qglframebufferobject_p.h
+++ b/src/opengl/qglframebufferobject_p.h
@@ -100,11 +100,11 @@ public:
class QGLFBOGLPaintDevice : public QGLPaintDevice
{
public:
- virtual QPaintEngine* paintEngine() const {return fbo->paintEngine();}
- virtual QSize size() const {return fbo->size();}
- virtual QGLContext* context() const;
- virtual QGLFormat format() const {return fboFormat;}
- virtual bool alphaRequested() const { return reqAlpha; }
+ virtual QPaintEngine* paintEngine() const Q_DECL_OVERRIDE {return fbo->paintEngine();}
+ virtual QSize size() const Q_DECL_OVERRIDE {return fbo->size();}
+ virtual QGLContext* context() const Q_DECL_OVERRIDE;
+ virtual QGLFormat format() const Q_DECL_OVERRIDE {return fboFormat;}
+ virtual bool alphaRequested() const Q_DECL_OVERRIDE { return reqAlpha; }
void setFBO(QGLFramebufferObject* f,
QGLFramebufferObject::Attachment attachment);
diff --git a/src/opengl/qglfunctions.cpp b/src/opengl/qglfunctions.cpp
index a397adbb60..8024d7e422 100644
--- a/src/opengl/qglfunctions.cpp
+++ b/src/opengl/qglfunctions.cpp
@@ -153,12 +153,12 @@ struct QGLFunctionsPrivateEx : public QGLFunctionsPrivate, public QOpenGLSharedR
delete funcs;
}
- void invalidateResource()
+ void invalidateResource() Q_DECL_OVERRIDE
{
m_features = -1;
}
- void freeResource(QOpenGLContext *)
+ void freeResource(QOpenGLContext *) Q_DECL_OVERRIDE
{
// no gl resources to free
}
diff --git a/src/opengl/qglpaintdevice_p.h b/src/opengl/qglpaintdevice_p.h
index f0855317ea..624cfacd89 100644
--- a/src/opengl/qglpaintdevice_p.h
+++ b/src/opengl/qglpaintdevice_p.h
@@ -58,7 +58,7 @@ public:
QGLPaintDevice();
virtual ~QGLPaintDevice();
- int devType() const {return QInternal::OpenGL;}
+ int devType() const Q_DECL_OVERRIDE {return QInternal::OpenGL;}
virtual void beginPaint();
virtual void ensureActiveTarget();
@@ -74,7 +74,7 @@ public:
static QGLPaintDevice* getDevice(QPaintDevice*);
protected:
- int metric(QPaintDevice::PaintDeviceMetric metric) const;
+ int metric(QPaintDevice::PaintDeviceMetric metric) const Q_DECL_OVERRIDE;
GLuint m_previousFBO;
GLuint m_thisFBO;
};
@@ -87,13 +87,13 @@ class Q_OPENGL_EXPORT QGLWidgetGLPaintDevice : public QGLPaintDevice
public:
QGLWidgetGLPaintDevice();
- virtual QPaintEngine* paintEngine() const;
+ virtual QPaintEngine* paintEngine() const Q_DECL_OVERRIDE;
// QGLWidgets need to do swapBufers in endPaint:
- virtual void beginPaint();
- virtual void endPaint();
- virtual QSize size() const;
- virtual QGLContext* context() const;
+ virtual void beginPaint() Q_DECL_OVERRIDE;
+ virtual void endPaint() Q_DECL_OVERRIDE;
+ virtual QSize size() const Q_DECL_OVERRIDE;
+ virtual QGLContext* context() const Q_DECL_OVERRIDE;
void setWidget(QGLWidget*);
diff --git a/src/opengl/qglpixelbuffer.h b/src/opengl/qglpixelbuffer.h
index d4b88598af..975fe4706e 100644
--- a/src/opengl/qglpixelbuffer.h
+++ b/src/opengl/qglpixelbuffer.h
@@ -75,14 +75,14 @@ public:
Qt::HANDLE handle() const;
QImage toImage() const;
- QPaintEngine *paintEngine() const;
+ QPaintEngine *paintEngine() const Q_DECL_OVERRIDE;
QGLFormat format() const;
static bool hasOpenGLPbuffers();
protected:
- int metric(PaintDeviceMetric metric) const;
- int devType() const { return QInternal::Pbuffer; }
+ int metric(PaintDeviceMetric metric) const Q_DECL_OVERRIDE;
+ int devType() const Q_DECL_OVERRIDE { return QInternal::Pbuffer; }
private:
Q_DISABLE_COPY(QGLPixelBuffer)
diff --git a/src/opengl/qgraphicsshadereffect.cpp b/src/opengl/qgraphicsshadereffect.cpp
index 928504ac73..07ae10bd30 100644
--- a/src/opengl/qgraphicsshadereffect.cpp
+++ b/src/opengl/qgraphicsshadereffect.cpp
@@ -139,7 +139,7 @@ public:
setSource(source);
}
- void setUniforms(QGLShaderProgram *program);
+ void setUniforms(QGLShaderProgram *program) Q_DECL_OVERRIDE;
QGraphicsShaderEffect *effect;
};
diff --git a/src/opengl/qgraphicsshadereffect_p.h b/src/opengl/qgraphicsshadereffect_p.h
index 794a9177fd..de00e28dc4 100644
--- a/src/opengl/qgraphicsshadereffect_p.h
+++ b/src/opengl/qgraphicsshadereffect_p.h
@@ -69,7 +69,7 @@ public:
void setPixelShaderFragment(const QByteArray& code);
protected:
- void draw(QPainter *painter);
+ void draw(QPainter *painter) Q_DECL_OVERRIDE;
void setUniformsDirty();
virtual void setUniforms(QGLShaderProgram *program);
diff --git a/src/platformsupport/accessibility/qaccessiblebridgeutils_p.h b/src/platformsupport/accessibility/qaccessiblebridgeutils_p.h
index bce2f90a09..e615e8a336 100644
--- a/src/platformsupport/accessibility/qaccessiblebridgeutils_p.h
+++ b/src/platformsupport/accessibility/qaccessiblebridgeutils_p.h
@@ -34,11 +34,11 @@
#ifndef QACCESSIBLEBRIDGEUTILS_H
#define QACCESSIBLEBRIDGEUTILS_H
-#ifndef QT_NO_ACCESSIBILITY
-
#include <QtCore/qstringlist.h>
#include <QtGui/qaccessible.h>
+#ifndef QT_NO_ACCESSIBILITY
+
QT_BEGIN_NAMESPACE
namespace QAccessibleBridgeUtils {
diff --git a/src/platformsupport/eglconvenience/eglconvenience.pri b/src/platformsupport/eglconvenience/eglconvenience.pri
index 8ada53d2c1..d102203d5e 100644
--- a/src/platformsupport/eglconvenience/eglconvenience.pri
+++ b/src/platformsupport/eglconvenience/eglconvenience.pri
@@ -16,16 +16,12 @@ contains(QT_CONFIG,egl) {
$$PWD/qeglplatformcursor_p.h \
$$PWD/qeglplatformwindow_p.h \
$$PWD/qeglplatformscreen_p.h \
- $$PWD/qeglcompositor_p.h \
- $$PWD/qeglplatformbackingstore_p.h \
$$PWD/qeglplatformintegration_p.h
SOURCES += \
$$PWD/qeglplatformcursor.cpp \
$$PWD/qeglplatformwindow.cpp \
$$PWD/qeglplatformscreen.cpp \
- $$PWD/qeglcompositor.cpp \
- $$PWD/qeglplatformbackingstore.cpp \
$$PWD/qeglplatformintegration.cpp
}
}
diff --git a/src/platformsupport/eglconvenience/qeglconvenience.cpp b/src/platformsupport/eglconvenience/qeglconvenience.cpp
index c1a491c80b..f3a135a499 100644
--- a/src/platformsupport/eglconvenience/qeglconvenience.cpp
+++ b/src/platformsupport/eglconvenience/qeglconvenience.cpp
@@ -303,7 +303,7 @@ EGLConfig QEglConfigChooser::chooseConfig()
} while (q_reduceConfigAttributes(&configureAttributes));
if (!cfg)
- qWarning("Cant find EGLConfig, returning null config");
+ qWarning("Cannot find EGLConfig, returning null config");
return cfg;
}
@@ -460,8 +460,8 @@ QSizeF q_physicalScreenSizeFromFb(int framebufferDevice, const QSize &screenSize
if (size.isEmpty()) {
// Note: in millimeters
- int width = qgetenv("QT_QPA_EGLFS_PHYSICAL_WIDTH").toInt();
- int height = qgetenv("QT_QPA_EGLFS_PHYSICAL_HEIGHT").toInt();
+ int width = qEnvironmentVariableIntValue("QT_QPA_EGLFS_PHYSICAL_WIDTH");
+ int height = qEnvironmentVariableIntValue("QT_QPA_EGLFS_PHYSICAL_HEIGHT");
if (width && height) {
size.setWidth(width);
@@ -513,8 +513,8 @@ QSize q_screenSizeFromFb(int framebufferDevice)
static QSize size;
if (size.isEmpty()) {
- int width = qgetenv("QT_QPA_EGLFS_WIDTH").toInt();
- int height = qgetenv("QT_QPA_EGLFS_HEIGHT").toInt();
+ int width = qEnvironmentVariableIntValue("QT_QPA_EGLFS_WIDTH");
+ int height = qEnvironmentVariableIntValue("QT_QPA_EGLFS_HEIGHT");
if (width && height) {
size.setWidth(width);
@@ -553,7 +553,7 @@ int q_screenDepthFromFb(int framebufferDevice)
Q_UNUSED(framebufferDevice)
#endif
const int defaultDepth = 32;
- static int depth = qgetenv("QT_QPA_EGLFS_DEPTH").toInt();
+ static int depth = qEnvironmentVariableIntValue("QT_QPA_EGLFS_DEPTH");
if (depth == 0) {
#ifdef Q_OS_LINUX
diff --git a/src/platformsupport/eglconvenience/qeglpbuffer_p.h b/src/platformsupport/eglconvenience/qeglpbuffer_p.h
index 0995b6d443..4a3682b582 100644
--- a/src/platformsupport/eglconvenience/qeglpbuffer_p.h
+++ b/src/platformsupport/eglconvenience/qeglpbuffer_p.h
@@ -56,8 +56,8 @@ public:
QEGLPbuffer(EGLDisplay display, const QSurfaceFormat &format, QOffscreenSurface *offscreenSurface);
~QEGLPbuffer();
- QSurfaceFormat format() const { return m_format; }
- bool isValid() const { return m_pbuffer != EGL_NO_SURFACE; }
+ QSurfaceFormat format() const Q_DECL_OVERRIDE { return m_format; }
+ bool isValid() const Q_DECL_OVERRIDE { return m_pbuffer != EGL_NO_SURFACE; }
EGLSurface pbuffer() const { return m_pbuffer; }
diff --git a/src/platformsupport/eglconvenience/qeglplatformcontext.cpp b/src/platformsupport/eglconvenience/qeglplatformcontext.cpp
index 7cc330092e..d7c4fd6764 100644
--- a/src/platformsupport/eglconvenience/qeglplatformcontext.cpp
+++ b/src/platformsupport/eglconvenience/qeglplatformcontext.cpp
@@ -177,17 +177,17 @@ void QEGLPlatformContext::init(const QSurfaceFormat &format, QPlatformOpenGLCont
}
if (m_eglContext == EGL_NO_CONTEXT) {
- qWarning("QEGLPlatformContext::init: eglError: %x, this: %p \n", eglGetError(), this);
+ qWarning("QEGLPlatformContext: Failed to create context: %x", eglGetError());
return;
}
- static const bool printConfig = qgetenv("QT_QPA_EGLFS_DEBUG").toInt();
+ static const bool printConfig = qEnvironmentVariableIntValue("QT_QPA_EGLFS_DEBUG");
if (printConfig) {
qDebug() << "Created context for format" << format << "with config:";
q_printEglConfig(m_eglDisplay, m_eglConfig);
}
- updateFormatFromGL();
+ // Cannot just call updateFormatFromGL() since it relies on virtuals. Defer it to initialize().
}
void QEGLPlatformContext::adopt(const QVariant &nativeHandle, QPlatformOpenGLContext *share)
@@ -238,18 +238,13 @@ void QEGLPlatformContext::adopt(const QVariant &nativeHandle, QPlatformOpenGLCon
updateFormatFromGL();
}
-void QEGLPlatformContext::updateFormatFromGL()
+void QEGLPlatformContext::initialize()
{
-#ifndef QT_NO_OPENGL
- // Have to save & restore to prevent QOpenGLContext::currentContext() from becoming
- // inconsistent after QOpenGLContext::create().
- EGLDisplay prevDisplay = eglGetCurrentDisplay();
- if (prevDisplay == EGL_NO_DISPLAY) // when no context is current
- prevDisplay = m_eglDisplay;
- EGLContext prevContext = eglGetCurrentContext();
- EGLSurface prevSurfaceDraw = eglGetCurrentSurface(EGL_DRAW);
- EGLSurface prevSurfaceRead = eglGetCurrentSurface(EGL_READ);
+ updateFormatFromGL();
+}
+EGLSurface QEGLPlatformContext::createTemporaryOffscreenSurface()
+{
// Make the context current to ensure the GL version query works. This needs a surface too.
const EGLint pbufferAttributes[] = {
EGL_WIDTH, 1,
@@ -257,15 +252,34 @@ void QEGLPlatformContext::updateFormatFromGL()
EGL_LARGEST_PBUFFER, EGL_FALSE,
EGL_NONE
};
+
// Cannot just pass m_eglConfig because it may not be suitable for pbuffers. Instead,
// do what QEGLPbuffer would do: request a config with the same attributes but with
// PBUFFER_BIT set.
EGLConfig config = q_configFromGLFormat(m_eglDisplay, m_format, false, EGL_PBUFFER_BIT);
- EGLSurface pbuffer = eglCreatePbufferSurface(m_eglDisplay, config, pbufferAttributes);
- if (pbuffer == EGL_NO_SURFACE)
- return;
- if (eglMakeCurrent(m_eglDisplay, pbuffer, pbuffer, m_eglContext)) {
+ return eglCreatePbufferSurface(m_eglDisplay, config, pbufferAttributes);
+}
+
+void QEGLPlatformContext::destroyTemporaryOffscreenSurface(EGLSurface surface)
+{
+ eglDestroySurface(m_eglDisplay, surface);
+}
+
+void QEGLPlatformContext::updateFormatFromGL()
+{
+#ifndef QT_NO_OPENGL
+ // Have to save & restore to prevent QOpenGLContext::currentContext() from becoming
+ // inconsistent after QOpenGLContext::create().
+ EGLDisplay prevDisplay = eglGetCurrentDisplay();
+ if (prevDisplay == EGL_NO_DISPLAY) // when no context is current
+ prevDisplay = m_eglDisplay;
+ EGLContext prevContext = eglGetCurrentContext();
+ EGLSurface prevSurfaceDraw = eglGetCurrentSurface(EGL_DRAW);
+ EGLSurface prevSurfaceRead = eglGetCurrentSurface(EGL_READ);
+
+ EGLSurface tempSurface = createTemporaryOffscreenSurface();
+ if (eglMakeCurrent(m_eglDisplay, tempSurface, tempSurface, m_eglContext)) {
if (m_format.renderableType() == QSurfaceFormat::OpenGL
|| m_format.renderableType() == QSurfaceFormat::OpenGLES) {
const GLubyte *s = glGetString(GL_VERSION);
@@ -303,7 +317,7 @@ void QEGLPlatformContext::updateFormatFromGL()
}
eglMakeCurrent(prevDisplay, prevSurfaceDraw, prevSurfaceRead, prevContext);
}
- eglDestroySurface(m_eglDisplay, pbuffer);
+ destroyTemporaryOffscreenSurface(tempSurface);
#endif // QT_NO_OPENGL
}
@@ -343,7 +357,7 @@ bool QEGLPlatformContext::makeCurrent(QPlatformSurface *surface)
eglSwapInterval(eglDisplay(), m_swapInterval);
}
} else {
- qWarning("QEGLPlatformContext::makeCurrent: eglError: %x, this: %p \n", eglGetError(), this);
+ qWarning("QEGLPlatformContext: eglMakeCurrent failed: %x", eglGetError());
}
return ok;
@@ -362,7 +376,7 @@ void QEGLPlatformContext::doneCurrent()
eglBindAPI(m_api);
bool ok = eglMakeCurrent(m_eglDisplay, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
if (!ok)
- qWarning("QEGLPlatformContext::doneCurrent(): eglError: %d, this: %p \n", eglGetError(), this);
+ qWarning("QEGLPlatformContext: eglMakeCurrent failed: %x", eglGetError());
}
void QEGLPlatformContext::swapBuffers(QPlatformSurface *surface)
@@ -371,7 +385,7 @@ void QEGLPlatformContext::swapBuffers(QPlatformSurface *surface)
EGLSurface eglSurface = eglSurfaceForPlatformSurface(surface);
bool ok = eglSwapBuffers(m_eglDisplay, eglSurface);
if (!ok)
- qWarning("QEGLPlatformContext::swapBuffers(): eglError: %d, this: %p \n", eglGetError(), this);
+ qWarning("QEGLPlatformContext: eglSwapBuffers failed: %x", eglGetError());
}
void (*QEGLPlatformContext::getProcAddress(const QByteArray &procName)) ()
diff --git a/src/platformsupport/eglconvenience/qeglplatformcontext_p.h b/src/platformsupport/eglconvenience/qeglplatformcontext_p.h
index 7825c7b3d7..c6d2fdec92 100644
--- a/src/platformsupport/eglconvenience/qeglplatformcontext_p.h
+++ b/src/platformsupport/eglconvenience/qeglplatformcontext_p.h
@@ -59,14 +59,15 @@ public:
EGLConfig *config = 0, const QVariant &nativeHandle = QVariant());
~QEGLPlatformContext();
- bool makeCurrent(QPlatformSurface *surface);
- void doneCurrent();
- void swapBuffers(QPlatformSurface *surface);
- void (*getProcAddress(const QByteArray &procName)) ();
+ void initialize() Q_DECL_OVERRIDE;
+ bool makeCurrent(QPlatformSurface *surface) Q_DECL_OVERRIDE;
+ void doneCurrent() Q_DECL_OVERRIDE;
+ void swapBuffers(QPlatformSurface *surface) Q_DECL_OVERRIDE;
+ void (*getProcAddress(const QByteArray &procName)) () Q_DECL_OVERRIDE;
- QSurfaceFormat format() const;
- bool isSharing() const { return m_shareContext != EGL_NO_CONTEXT; }
- bool isValid() const { return m_eglContext != EGL_NO_CONTEXT; }
+ QSurfaceFormat format() const Q_DECL_OVERRIDE;
+ bool isSharing() const Q_DECL_OVERRIDE { return m_shareContext != EGL_NO_CONTEXT; }
+ bool isValid() const Q_DECL_OVERRIDE { return m_eglContext != EGL_NO_CONTEXT; }
EGLContext eglContext() const;
EGLDisplay eglDisplay() const;
@@ -74,6 +75,8 @@ public:
protected:
virtual EGLSurface eglSurfaceForPlatformSurface(QPlatformSurface *surface) = 0;
+ virtual EGLSurface createTemporaryOffscreenSurface();
+ virtual void destroyTemporaryOffscreenSurface(EGLSurface surface);
private:
void init(const QSurfaceFormat &format, QPlatformOpenGLContext *share);
diff --git a/src/platformsupport/eglconvenience/qeglplatformcursor_p.h b/src/platformsupport/eglconvenience/qeglplatformcursor_p.h
index 83204748c1..bf2aeef378 100644
--- a/src/platformsupport/eglconvenience/qeglplatformcursor_p.h
+++ b/src/platformsupport/eglconvenience/qeglplatformcursor_p.h
@@ -92,6 +92,7 @@ private:
class QEGLPlatformCursor : public QPlatformCursor, protected QOpenGLFunctions
{
+ Q_OBJECT
public:
QEGLPlatformCursor(QPlatformScreen *screen);
~QEGLPlatformCursor();
diff --git a/src/platformsupport/eglconvenience/qeglplatformintegration.cpp b/src/platformsupport/eglconvenience/qeglplatformintegration.cpp
index 7d05b54c15..09011e6e58 100644
--- a/src/platformsupport/eglconvenience/qeglplatformintegration.cpp
+++ b/src/platformsupport/eglconvenience/qeglplatformintegration.cpp
@@ -43,6 +43,7 @@
#include <QtPlatformSupport/private/qgenericunixservices_p.h>
#include <QtPlatformSupport/private/qgenericunixeventdispatcher_p.h>
#include <QtPlatformSupport/private/qfbvthandler_p.h>
+#include <QtPlatformSupport/private/qopenglcompositorbackingstore_p.h>
#if !defined(QT_NO_EVDEV) && (!defined(Q_OS_ANDROID) || defined(Q_OS_ANDROID_NO_SDK))
#include <QtPlatformSupport/private/qevdevmousemanager_p.h>
@@ -50,12 +51,15 @@
#include <QtPlatformSupport/private/qevdevtouch_p.h>
#endif
+#if !defined(QT_NO_TSLIB) && (!defined(Q_OS_ANDROID) || defined(Q_OS_ANDROID_NO_SDK))
+#include <QtPlatformSupport/private/qtslib_p.h>
+#endif
+
#include <QtPlatformHeaders/qeglfsfunctions.h>
#include "qeglplatformintegration_p.h"
#include "qeglplatformcontext_p.h"
#include "qeglplatformwindow_p.h"
-#include "qeglplatformbackingstore_p.h"
#include "qeglplatformscreen_p.h"
#include "qeglplatformcursor_p.h"
@@ -84,8 +88,7 @@ QT_BEGIN_NAMESPACE
*/
QEGLPlatformIntegration::QEGLPlatformIntegration()
- : m_screen(0),
- m_display(EGL_NO_DISPLAY),
+ : m_display(EGL_NO_DISPLAY),
m_inputContext(0),
m_fontDb(new QGenericUnixFontDatabase),
m_services(new QGenericUnixServices),
@@ -95,9 +98,6 @@ QEGLPlatformIntegration::QEGLPlatformIntegration()
QEGLPlatformIntegration::~QEGLPlatformIntegration()
{
- delete m_screen;
- if (m_display != EGL_NO_DISPLAY)
- eglTerminate(m_display);
}
void QEGLPlatformIntegration::initialize()
@@ -110,14 +110,20 @@ void QEGLPlatformIntegration::initialize()
if (!eglInitialize(m_display, &major, &minor))
qFatal("Could not initialize egl display");
- m_screen = createScreen();
- screenAdded(m_screen);
-
m_inputContext = QPlatformInputContextFactory::create();
m_vtHandler.reset(new QFbVtHandler);
}
+void QEGLPlatformIntegration::destroy()
+{
+ foreach (QWindow *w, qGuiApp->topLevelWindows())
+ w->destroy();
+
+ if (m_display != EGL_NO_DISPLAY)
+ eglTerminate(m_display);
+}
+
QAbstractEventDispatcher *QEGLPlatformIntegration::createEventDispatcher() const
{
return createUnixEventDispatcher();
@@ -135,7 +141,9 @@ QPlatformFontDatabase *QEGLPlatformIntegration::fontDatabase() const
QPlatformBackingStore *QEGLPlatformIntegration::createPlatformBackingStore(QWindow *window) const
{
- return new QEGLPlatformBackingStore(window);
+ QOpenGLCompositorBackingStore *bs = new QOpenGLCompositorBackingStore(window);
+ static_cast<QEGLPlatformWindow *>(window->handle())->setBackingStore(bs);
+ return bs;
}
QPlatformWindow *QEGLPlatformIntegration::createPlatformWindow(QWindow *window) const
@@ -150,10 +158,9 @@ QPlatformWindow *QEGLPlatformIntegration::createPlatformWindow(QWindow *window)
QPlatformOpenGLContext *QEGLPlatformIntegration::createPlatformOpenGLContext(QOpenGLContext *context) const
{
- QEGLPlatformScreen *screen = static_cast<QEGLPlatformScreen *>(context->screen()->handle());
// If there is a "root" window into which raster and QOpenGLWidget content is
// composited, all other contexts must share with its context.
- QOpenGLContext *compositingContext = screen ? screen->compositingContext() : 0;
+ QOpenGLContext *compositingContext = QOpenGLCompositor::instance()->context();
QPlatformOpenGLContext *share = compositingContext ? compositingContext->handle() : context->shareHandle();
QVariant nativeHandle = context->nativeHandle();
QPlatformOpenGLContext *platformContext = createContext(context->format(),
@@ -219,7 +226,7 @@ void *QEGLPlatformIntegration::nativeResourceForIntegration(const QByteArray &re
switch (resourceType(resource)) {
case EglDisplay:
- result = m_screen->display();
+ result = display();
break;
case NativeDisplay:
result = reinterpret_cast<void*>(nativeDisplay());
@@ -257,7 +264,7 @@ void *QEGLPlatformIntegration::nativeResourceForWindow(const QByteArray &resourc
if (window && window->handle())
result = static_cast<QEGLPlatformScreen *>(window->handle()->screen())->display();
else
- result = m_screen->display();
+ result = display();
break;
case EglWindow:
if (window && window->handle())
@@ -345,11 +352,17 @@ void QEGLPlatformIntegration::createInputHandlers()
m_kbdMgr = new QEvdevKeyboardManager(QLatin1String("EvdevKeyboard"), QString() /* spec */, this);
QEvdevMouseManager *mouseMgr = new QEvdevMouseManager(QLatin1String("EvdevMouse"), QString() /* spec */, this);
Q_FOREACH (QScreen *screen, QGuiApplication::screens()) {
- QEGLPlatformCursor *cursor = static_cast<QEGLPlatformCursor *>(screen->handle()->cursor());
+ QEGLPlatformCursor *cursor = qobject_cast<QEGLPlatformCursor *>(screen->handle()->cursor());
if (cursor)
cursor->setMouseDeviceDiscovery(mouseMgr->deviceDiscovery());
}
- new QEvdevTouchScreenHandlerThread(QString() /* spec */, this);
+#ifndef QT_NO_TSLIB
+ const bool useTslib = qEnvironmentVariableIntValue("QT_QPA_EGLFS_TSLIB");
+ if (useTslib)
+ new QTsLibMouseHandler(QLatin1String("TsLib"), QString() /* spec */);
+ else
+#endif // QT_NO_TSLIB
+ new QEvdevTouchScreenHandlerThread(QString() /* spec */, this);
#endif
}
diff --git a/src/platformsupport/eglconvenience/qeglplatformintegration_p.h b/src/platformsupport/eglconvenience/qeglplatformintegration_p.h
index 4d7adce309..7f0037db92 100644
--- a/src/platformsupport/eglconvenience/qeglplatformintegration_p.h
+++ b/src/platformsupport/eglconvenience/qeglplatformintegration_p.h
@@ -52,7 +52,6 @@
QT_BEGIN_NAMESPACE
-class QEGLPlatformScreen;
class QEGLPlatformWindow;
class QEGLPlatformContext;
class QFbVtHandler;
@@ -65,8 +64,8 @@ public:
~QEGLPlatformIntegration();
void initialize() Q_DECL_OVERRIDE;
+ void destroy() Q_DECL_OVERRIDE;
- QEGLPlatformScreen *screen() const { return m_screen; }
EGLDisplay display() const { return m_display; }
QAbstractEventDispatcher *createEventDispatcher() const Q_DECL_OVERRIDE;
@@ -92,7 +91,6 @@ public:
QFunctionPointer platformFunction(const QByteArray &function) const Q_DECL_OVERRIDE;
protected:
- virtual QEGLPlatformScreen *createScreen() const = 0;
virtual QEGLPlatformWindow *createWindow(QWindow *window) const = 0;
virtual QEGLPlatformContext *createContext(const QSurfaceFormat &format,
QPlatformOpenGLContext *shareContext,
@@ -109,7 +107,6 @@ protected:
private:
static void loadKeymapStatic(const QString &filename);
- QEGLPlatformScreen *m_screen;
EGLDisplay m_display;
QPlatformInputContext *m_inputContext;
QScopedPointer<QPlatformFontDatabase> m_fontDb;
diff --git a/src/platformsupport/eglconvenience/qeglplatformscreen.cpp b/src/platformsupport/eglconvenience/qeglplatformscreen.cpp
index fd577a48d7..fd9befb575 100644
--- a/src/platformsupport/eglconvenience/qeglplatformscreen.cpp
+++ b/src/platformsupport/eglconvenience/qeglplatformscreen.cpp
@@ -31,8 +31,8 @@
**
****************************************************************************/
-#include "qeglcompositor_p.h"
#include "qeglplatformscreen_p.h"
+#include <QtPlatformSupport/private/qopenglcompositor_p.h>
QT_BEGIN_NAMESPACE
@@ -42,19 +42,6 @@ QT_BEGIN_NAMESPACE
\since 5.2
\internal
\ingroup qpa
-
- This class provides a lightweight base for QPlatformScreen
- implementations. It covers basic window stack management which is
- necessary when compositing multiple raster (widget-based) windows
- together into one single native surface.
-
- Reimplementing the virtuals are essential when using
- QEGLPlatformBackingStore. The context and the window returned from
- these are the ones that are used when compositing the textures
- generated from the raster (widget) based windows.
-
- \note It is up to the QEGLPlatformWindow subclasses to use the
- functions, like addWindow(), removeWindow(), etc., provided here.
*/
QEGLPlatformScreen::QEGLPlatformScreen(EGLDisplay dpy)
@@ -64,39 +51,7 @@ QEGLPlatformScreen::QEGLPlatformScreen(EGLDisplay dpy)
QEGLPlatformScreen::~QEGLPlatformScreen()
{
- QEGLCompositor::destroy();
-}
-
-void QEGLPlatformScreen::addWindow(QEGLPlatformWindow *window)
-{
- if (!m_windows.contains(window)) {
- m_windows.append(window);
- topWindowChanged(window);
- }
-}
-
-void QEGLPlatformScreen::removeWindow(QEGLPlatformWindow *window)
-{
- m_windows.removeOne(window);
- if (!m_windows.isEmpty())
- topWindowChanged(m_windows.last());
-}
-
-void QEGLPlatformScreen::moveToTop(QEGLPlatformWindow *window)
-{
- m_windows.removeOne(window);
- m_windows.append(window);
- topWindowChanged(window);
-}
-
-void QEGLPlatformScreen::changeWindowIndex(QEGLPlatformWindow *window, int newIdx)
-{
- int idx = m_windows.indexOf(window);
- if (idx != -1 && idx != newIdx) {
- m_windows.move(idx, newIdx);
- if (newIdx == m_windows.size() - 1)
- topWindowChanged(m_windows.last());
- }
+ QOpenGLCompositor::destroy();
}
QT_END_NAMESPACE
diff --git a/src/platformsupport/eglconvenience/qeglplatformscreen_p.h b/src/platformsupport/eglconvenience/qeglplatformscreen_p.h
index bb1d26d7d2..e9d3363a66 100644
--- a/src/platformsupport/eglconvenience/qeglplatformscreen_p.h
+++ b/src/platformsupport/eglconvenience/qeglplatformscreen_p.h
@@ -60,22 +60,9 @@ public:
QEGLPlatformScreen(EGLDisplay dpy);
~QEGLPlatformScreen();
- QList<QEGLPlatformWindow *> windows() const { return m_windows; }
-
- void addWindow(QEGLPlatformWindow *window);
- void removeWindow(QEGLPlatformWindow *window);
- void moveToTop(QEGLPlatformWindow *window);
- void changeWindowIndex(QEGLPlatformWindow *window, int newIdx);
-
- virtual void topWindowChanged(QEGLPlatformWindow *window) { Q_UNUSED(window); }
-
EGLDisplay display() const { return m_dpy; }
- virtual QEGLPlatformWindow *compositingWindow() = 0;
- virtual QOpenGLContext *compositingContext() = 0;
-
private:
- QList<QEGLPlatformWindow *> m_windows;
EGLDisplay m_dpy;
};
diff --git a/src/platformsupport/eglconvenience/qeglplatformwindow.cpp b/src/platformsupport/eglconvenience/qeglplatformwindow.cpp
index 39edec4811..5e5c879a22 100644
--- a/src/platformsupport/eglconvenience/qeglplatformwindow.cpp
+++ b/src/platformsupport/eglconvenience/qeglplatformwindow.cpp
@@ -32,9 +32,10 @@
****************************************************************************/
#include <qpa/qwindowsysteminterface.h>
+#include <QtPlatformSupport/private/qopenglcompositor_p.h>
+#include <QtPlatformSupport/private/qopenglcompositorbackingstore_p.h>
#include "qeglplatformwindow_p.h"
-#include "qeglplatformbackingstore_p.h"
#include "qeglplatformscreen_p.h"
QT_BEGIN_NAMESPACE
@@ -47,7 +48,7 @@ QT_BEGIN_NAMESPACE
\ingroup qpa
Lightweight class providing some basic platform window operations
- and interfacing with QEGLPlatformBackingStore.
+ and interfacing with QOpenGLCompositorBackingStore.
Almost no QPlatformWindow functions are implemented here. This is
intentional because different platform plugins may use different
@@ -57,13 +58,15 @@ QT_BEGIN_NAMESPACE
enforce anything for these functions.
\note Subclasses are responsible for invoking this class'
- implementation of create(). When using QEGLPlatformScreen, the
- subclasses of this class are expected to utilize the window stack
- management functions (addWindow() etc.) provided there.
+ implementation of create() and are expected to utilize the window
+ stack management functions (addWindow() etc.) in
+ QOpenGLCompositor.
*/
QEGLPlatformWindow::QEGLPlatformWindow(QWindow *w)
: QPlatformWindow(w),
+ m_backingStore(0),
+ m_raster(false),
m_winId(0)
{
}
@@ -100,6 +103,11 @@ bool QEGLPlatformWindow::isRaster() const
return m_raster || window()->surfaceType() == QSurface::RasterGLSurface;
}
+QWindow *QEGLPlatformWindow::sourceWindow() const
+{
+ return window();
+}
+
const QPlatformTextureList *QEGLPlatformWindow::textures() const
{
if (m_backingStore)
@@ -108,10 +116,10 @@ const QPlatformTextureList *QEGLPlatformWindow::textures() const
return 0;
}
-void QEGLPlatformWindow::composited()
+void QEGLPlatformWindow::endCompositing()
{
if (m_backingStore)
- m_backingStore->composited();
+ m_backingStore->notifyComposited();
}
WId QEGLPlatformWindow::winId() const
@@ -122,7 +130,7 @@ WId QEGLPlatformWindow::winId() const
void QEGLPlatformWindow::setOpacity(qreal)
{
if (!isRaster())
- qWarning("eglfs: Cannot set opacity for non-raster windows");
+ qWarning("QEGLPlatformWindow: Cannot set opacity for non-raster windows");
// Nothing to do here. The opacity is stored in the QWindow.
}
diff --git a/src/platformsupport/eglconvenience/qeglplatformwindow_p.h b/src/platformsupport/eglconvenience/qeglplatformwindow_p.h
index 3a19301e5d..947f02aeb5 100644
--- a/src/platformsupport/eglconvenience/qeglplatformwindow_p.h
+++ b/src/platformsupport/eglconvenience/qeglplatformwindow_p.h
@@ -46,33 +46,36 @@
//
#include <qpa/qplatformwindow.h>
+#include <QtPlatformSupport/private/qopenglcompositor_p.h>
#include <EGL/egl.h>
QT_BEGIN_NAMESPACE
-class QEGLPlatformBackingStore;
+class QOpenGLCompositorBackingStore;
class QPlatformTextureList;
-class QEGLPlatformWindow : public QPlatformWindow
+class QEGLPlatformWindow : public QPlatformWindow, public QOpenGLCompositorWindow
{
public:
QEGLPlatformWindow(QWindow *w);
virtual void create();
- QEGLPlatformBackingStore *backingStore() { return m_backingStore; }
- void setBackingStore(QEGLPlatformBackingStore *backingStore) { m_backingStore = backingStore; }
- const QPlatformTextureList *textures() const;
- void composited();
+ QOpenGLCompositorBackingStore *backingStore() { return m_backingStore; }
+ void setBackingStore(QOpenGLCompositorBackingStore *backingStore) { m_backingStore = backingStore; }
bool isRaster() const;
+ QWindow *sourceWindow() const Q_DECL_OVERRIDE;
+ const QPlatformTextureList *textures() const Q_DECL_OVERRIDE;
+ void endCompositing() Q_DECL_OVERRIDE;
+
WId winId() const Q_DECL_OVERRIDE;
void setOpacity(qreal opacity) Q_DECL_OVERRIDE;
virtual EGLNativeWindowType eglWindow() const = 0;
private:
- QEGLPlatformBackingStore *m_backingStore;
+ QOpenGLCompositorBackingStore *m_backingStore;
bool m_raster;
WId m_winId;
};
diff --git a/src/platformsupport/eglconvenience/qxlibeglintegration.cpp b/src/platformsupport/eglconvenience/qxlibeglintegration.cpp
index eb6e01c585..f697f1ab89 100644
--- a/src/platformsupport/eglconvenience/qxlibeglintegration.cpp
+++ b/src/platformsupport/eglconvenience/qxlibeglintegration.cpp
@@ -31,8 +31,11 @@
**
****************************************************************************/
+#include <QLoggingCategory>
#include "qxlibeglintegration_p.h"
+Q_LOGGING_CATEGORY(lcXlibEglDebug, "qt.egl.xlib.debug")
+
VisualID QXlibEglIntegration::getCompatibleVisualId(Display *display, EGLDisplay eglDisplay, EGLConfig config)
{
VisualID visualId = 0;
@@ -87,31 +90,26 @@ VisualID QXlibEglIntegration::getCompatibleVisualId(Display *display, EGLDisplay
// configs. In such a case we have to fall back to XGetVisualInfo.
if (!visualMatchesConfig) {
visualId = 0;
-#ifdef QT_DEBUG_X11_VISUAL_SELECTION
- qWarning("Warning: EGL suggested using X Visual ID %d (%d %d %d depth %d) for EGL config %d (%d %d %d %d), but this is incompatible",
- (int)visualId, visualRedSize, visualGreenSize, visualBlueSize, chosenVisualInfo->depth,
- configId, configRedSize, configGreenSize, configBlueSize, configAlphaSize);
-#endif
+ qCDebug(lcXlibEglDebug,
+ "EGL suggested using X Visual ID %d (%d %d %d depth %d) for EGL config %d"
+ "(%d %d %d %d), but this is incompatible",
+ (int)visualId, visualRedSize, visualGreenSize, visualBlueSize, chosenVisualInfo->depth,
+ configId, configRedSize, configGreenSize, configBlueSize, configAlphaSize);
}
} else {
- qWarning("Warning: EGL suggested using X Visual ID %d for EGL config %d, but that isn't a valid ID",
- (int)visualId, configId);
+ qCDebug(lcXlibEglDebug, "EGL suggested using X Visual ID %d for EGL config %d, but that isn't a valid ID",
+ (int)visualId, configId);
visualId = 0;
}
XFree(chosenVisualInfo);
}
-#ifdef QT_DEBUG_X11_VISUAL_SELECTION
else
- qDebug("EGL did not suggest a VisualID (EGL_NATIVE_VISUAL_ID was zero) for EGLConfig %d", configId);
-#endif
+ qCDebug(lcXlibEglDebug, "EGL did not suggest a VisualID (EGL_NATIVE_VISUAL_ID was zero) for EGLConfig %d", configId);
if (visualId) {
-#ifdef QT_DEBUG_X11_VISUAL_SELECTION
- if (configAlphaSize > 0)
- qDebug("Using ARGB Visual ID %d provided by EGL for config %d", (int)visualId, configId);
- else
- qDebug("Using Opaque Visual ID %d provided by EGL for config %d", (int)visualId, configId);
-#endif
+ qCDebug(lcXlibEglDebug, configAlphaSize > 0
+ ? "Using ARGB Visual ID %d provided by EGL for config %d"
+ : "Using Opaque Visual ID %d provided by EGL for config %d", (int)visualId, configId);
return visualId;
}
@@ -143,9 +141,7 @@ VisualID QXlibEglIntegration::getCompatibleVisualId(Display *display, EGLDisplay
}
if (visualId) {
-#ifdef QT_DEBUG_X11_VISUAL_SELECTION
- qDebug("Using Visual ID %d provided by XGetVisualInfo for EGL config %d", (int)visualId, configId);
-#endif
+ qCDebug(lcXlibEglDebug, "Using Visual ID %d provided by XGetVisualInfo for EGL config %d", (int)visualId, configId);
return visualId;
}
diff --git a/src/platformsupport/eventdispatchers/qeventdispatcher_glib_p.h b/src/platformsupport/eventdispatchers/qeventdispatcher_glib_p.h
index a9402f920d..e182d949b0 100644
--- a/src/platformsupport/eventdispatchers/qeventdispatcher_glib_p.h
+++ b/src/platformsupport/eventdispatchers/qeventdispatcher_glib_p.h
@@ -61,7 +61,7 @@ public:
explicit QPAEventDispatcherGlib(QObject *parent = 0);
~QPAEventDispatcherGlib();
- bool processEvents(QEventLoop::ProcessEventsFlags flags);
+ bool processEvents(QEventLoop::ProcessEventsFlags flags) Q_DECL_OVERRIDE;
QEventLoop::ProcessEventsFlags m_flags;
};
diff --git a/src/platformsupport/fbconvenience/qfbbackingstore_p.h b/src/platformsupport/fbconvenience/qfbbackingstore_p.h
index 08a4b37eee..cf9e5088ad 100644
--- a/src/platformsupport/fbconvenience/qfbbackingstore_p.h
+++ b/src/platformsupport/fbconvenience/qfbbackingstore_p.h
@@ -59,10 +59,10 @@ public:
QFbBackingStore(QWindow *window);
~QFbBackingStore();
- virtual QPaintDevice *paintDevice() { return &mImage; }
- virtual void flush(QWindow *window, const QRegion &region, const QPoint &offset);
+ virtual QPaintDevice *paintDevice() Q_DECL_OVERRIDE { return &mImage; }
+ virtual void flush(QWindow *window, const QRegion &region, const QPoint &offset) Q_DECL_OVERRIDE;
- virtual void resize(const QSize &size, const QRegion &region);
+ virtual void resize(const QSize &size, const QRegion &region) Q_DECL_OVERRIDE;
const QImage image() { return mImage; }
diff --git a/src/platformsupport/fbconvenience/qfbcursor_p.h b/src/platformsupport/fbconvenience/qfbcursor_p.h
index 0354989a8b..95632f177b 100644
--- a/src/platformsupport/fbconvenience/qfbcursor_p.h
+++ b/src/platformsupport/fbconvenience/qfbcursor_p.h
@@ -61,9 +61,9 @@ public:
virtual QRect drawCursor(QPainter &painter);
// input methods
- virtual void pointerEvent(const QMouseEvent &event);
+ virtual void pointerEvent(const QMouseEvent &event) Q_DECL_OVERRIDE;
#ifndef QT_NO_CURSOR
- virtual void changeCursor(QCursor *widgetCursor, QWindow *window);
+ virtual void changeCursor(QCursor *widgetCursor, QWindow *window) Q_DECL_OVERRIDE;
#endif
virtual void setDirty();
diff --git a/src/platformsupport/fbconvenience/qfbvthandler.cpp b/src/platformsupport/fbconvenience/qfbvthandler.cpp
index 511f723dd9..d6c3944cb0 100644
--- a/src/platformsupport/fbconvenience/qfbvthandler.cpp
+++ b/src/platformsupport/fbconvenience/qfbvthandler.cpp
@@ -68,7 +68,7 @@ QFbVtHandler::QFbVtHandler(QObject *parent)
m_tty = 0;
::ioctl(m_tty, KDGKBMODE, &m_oldKbdMode);
- if (!qgetenv("QT_QPA_ENABLE_TERMINAL_KEYBOARD").toInt()) {
+ if (!qEnvironmentVariableIntValue("QT_QPA_ENABLE_TERMINAL_KEYBOARD")) {
::ioctl(m_tty, KDSKBMODE, KBD_OFF_MODE);
QGuiApplicationPrivate *appd = QGuiApplicationPrivate::instance();
Q_ASSERT(appd);
diff --git a/src/platformsupport/fontdatabases/basic/qbasicfontdatabase.cpp b/src/platformsupport/fontdatabases/basic/qbasicfontdatabase.cpp
index 52505c570b..f831f3b908 100644
--- a/src/platformsupport/fontdatabases/basic/qbasicfontdatabase.cpp
+++ b/src/platformsupport/fontdatabases/basic/qbasicfontdatabase.cpp
@@ -281,41 +281,26 @@ QStringList QBasicFontDatabase::addTTFile(const QByteArray &fontData, const QByt
if (supportedWritingSystems)
*supportedWritingSystems = writingSystems;
- if (os2->usWeightClass == 0)
- ;
- else if (os2->usWeightClass < 150)
- weight = qt_thinFontWeight;
- else if (os2->usWeightClass < 250)
- weight = qt_extralightFontWeight;
- else if (os2->usWeightClass < 350)
- weight = QFont::Light;
- else if (os2->usWeightClass < 450)
- weight = QFont::Normal;
- else if (os2->usWeightClass < 550)
- weight = qt_mediumFontWeight;
- else if (os2->usWeightClass < 650)
- weight = QFont::DemiBold;
- else if (os2->usWeightClass < 750)
- weight = QFont::Bold;
- else if (os2->usWeightClass < 1000)
- weight = QFont::Black;
-
- if (os2->panose[2] >= 2) {
+ if (os2->usWeightClass) {
+ weight = QPlatformFontDatabase::weightFromInteger(os2->usWeightClass);
+ } else if (os2->panose[2]) {
int w = os2->panose[2];
if (w <= 1)
- weight = qt_thinFontWeight;
+ weight = QFont::Thin;
else if (w <= 2)
- weight = qt_extralightFontWeight;
+ weight = QFont::ExtraLight;
else if (w <= 3)
weight = QFont::Light;
else if (w <= 5)
weight = QFont::Normal;
else if (w <= 6)
- weight = qt_mediumFontWeight;
+ weight = QFont::Medium;
else if (w <= 7)
weight = QFont::DemiBold;
else if (w <= 8)
weight = QFont::Bold;
+ else if (w <= 9)
+ weight = QFont::ExtraBold;
else if (w <= 10)
weight = QFont::Black;
}
diff --git a/src/platformsupport/fontdatabases/basic/qbasicfontdatabase_p.h b/src/platformsupport/fontdatabases/basic/qbasicfontdatabase_p.h
index a37bfb9f5c..5593577389 100644
--- a/src/platformsupport/fontdatabases/basic/qbasicfontdatabase_p.h
+++ b/src/platformsupport/fontdatabases/basic/qbasicfontdatabase_p.h
@@ -60,12 +60,12 @@ struct FontFile
class QBasicFontDatabase : public QPlatformFontDatabase
{
public:
- void populateFontDatabase();
- QFontEngine *fontEngine(const QFontDef &fontDef, void *handle);
- QFontEngine *fontEngine(const QByteArray &fontData, qreal pixelSize, QFont::HintingPreference hintingPreference);
- QStringList fallbacksForFamily(const QString &family, QFont::Style style, QFont::StyleHint styleHint, QChar::Script script) const;
- QStringList addApplicationFont(const QByteArray &fontData, const QString &fileName);
- void releaseHandle(void *handle);
+ void populateFontDatabase() Q_DECL_OVERRIDE;
+ QFontEngine *fontEngine(const QFontDef &fontDef, void *handle) Q_DECL_OVERRIDE;
+ QFontEngine *fontEngine(const QByteArray &fontData, qreal pixelSize, QFont::HintingPreference hintingPreference) Q_DECL_OVERRIDE;
+ QStringList fallbacksForFamily(const QString &family, QFont::Style style, QFont::StyleHint styleHint, QChar::Script script) const Q_DECL_OVERRIDE;
+ QStringList addApplicationFont(const QByteArray &fontData, const QString &fileName) Q_DECL_OVERRIDE;
+ void releaseHandle(void *handle) Q_DECL_OVERRIDE;
static QStringList addTTFile(const QByteArray &fontData, const QByteArray &file, QSupportedWritingSystems *supportedWritingSystems = 0);
static QString fontNameFromTTFile(const QString &filename);
diff --git a/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp b/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp
index 5dec1d0915..f129bb40dd 100644
--- a/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp
+++ b/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase.cpp
@@ -54,6 +54,13 @@
QT_BEGIN_NAMESPACE
+static const int maxWeight = 99;
+
+static inline int mapToQtWeightForRange(int fcweight, int fcLower, int fcUpper, int qtLower, int qtUpper)
+{
+ return qtLower + ((fcweight - fcLower) * (qtUpper - qtLower)) / (fcUpper - fcLower);
+}
+
static inline bool requiresOpenType(int writingSystem)
{
return ((writingSystem >= QFontDatabase::Syriac && writingSystem <= QFontDatabase::Sinhala)
@@ -68,26 +75,28 @@ static inline int weightFromFcWeight(int fcweight)
// mapping. This ensures that where there is a corresponding enum on both sides (for example
// FC_WEIGHT_DEMIBOLD and QFont::DemiBold) we map one to the other but other values map
// to intermediate Qt weights.
- const int maxWeight = 99;
- int qtweight;
- if (fcweight < 0)
- qtweight = 0;
- else if (fcweight <= FC_WEIGHT_LIGHT)
- qtweight = (fcweight * QFont::Light) / FC_WEIGHT_LIGHT;
- else if (fcweight <= FC_WEIGHT_NORMAL)
- qtweight = QFont::Light + ((fcweight - FC_WEIGHT_LIGHT) * (QFont::Normal - QFont::Light)) / (FC_WEIGHT_NORMAL - FC_WEIGHT_LIGHT);
- else if (fcweight <= FC_WEIGHT_DEMIBOLD)
- qtweight = QFont::Normal + ((fcweight - FC_WEIGHT_NORMAL) * (QFont::DemiBold - QFont::Normal)) / (FC_WEIGHT_DEMIBOLD - FC_WEIGHT_NORMAL);
- else if (fcweight <= FC_WEIGHT_BOLD)
- qtweight = QFont::DemiBold + ((fcweight - FC_WEIGHT_DEMIBOLD) * (QFont::Bold - QFont::DemiBold)) / (FC_WEIGHT_BOLD - FC_WEIGHT_DEMIBOLD);
- else if (fcweight <= FC_WEIGHT_BLACK)
- qtweight = QFont::Bold + ((fcweight - FC_WEIGHT_BOLD) * (QFont::Black - QFont::Bold)) / (FC_WEIGHT_BLACK - FC_WEIGHT_BOLD);
- else if (fcweight <= FC_WEIGHT_ULTRABLACK)
- qtweight = QFont::Black + ((fcweight - FC_WEIGHT_BLACK) * (maxWeight - QFont::Black)) / (FC_WEIGHT_ULTRABLACK - FC_WEIGHT_BLACK);
- else
- qtweight = maxWeight;
- return qtweight;
+ if (fcweight <= FC_WEIGHT_THIN)
+ return QFont::Thin;
+ if (fcweight <= FC_WEIGHT_ULTRALIGHT)
+ return mapToQtWeightForRange(fcweight, FC_WEIGHT_THIN, FC_WEIGHT_ULTRALIGHT, QFont::Thin, QFont::ExtraLight);
+ if (fcweight <= FC_WEIGHT_LIGHT)
+ return mapToQtWeightForRange(fcweight, FC_WEIGHT_ULTRALIGHT, FC_WEIGHT_LIGHT, QFont::ExtraLight, QFont::Light);
+ if (fcweight <= FC_WEIGHT_NORMAL)
+ return mapToQtWeightForRange(fcweight, FC_WEIGHT_LIGHT, FC_WEIGHT_NORMAL, QFont::Light, QFont::Normal);
+ if (fcweight <= FC_WEIGHT_MEDIUM)
+ return mapToQtWeightForRange(fcweight, FC_WEIGHT_NORMAL, FC_WEIGHT_MEDIUM, QFont::Normal, QFont::Medium);
+ if (fcweight <= FC_WEIGHT_DEMIBOLD)
+ return mapToQtWeightForRange(fcweight, FC_WEIGHT_MEDIUM, FC_WEIGHT_DEMIBOLD, QFont::Medium, QFont::DemiBold);
+ if (fcweight <= FC_WEIGHT_BOLD)
+ return mapToQtWeightForRange(fcweight, FC_WEIGHT_DEMIBOLD, FC_WEIGHT_BOLD, QFont::DemiBold, QFont::Bold);
+ if (fcweight <= FC_WEIGHT_ULTRABOLD)
+ return mapToQtWeightForRange(fcweight, FC_WEIGHT_BOLD, FC_WEIGHT_ULTRABOLD, QFont::Bold, QFont::ExtraBold);
+ if (fcweight <= FC_WEIGHT_BLACK)
+ return mapToQtWeightForRange(fcweight, FC_WEIGHT_ULTRABOLD, FC_WEIGHT_BLACK, QFont::ExtraBold, QFont::Black);
+ if (fcweight <= FC_WEIGHT_ULTRABLACK)
+ return mapToQtWeightForRange(fcweight, FC_WEIGHT_BLACK, FC_WEIGHT_ULTRABLACK, QFont::Black, maxWeight);
+ return maxWeight;
}
static inline int stretchFromFcWidth(int fcwidth)
diff --git a/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase_p.h b/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase_p.h
index 745d12b825..f67db6a527 100644
--- a/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase_p.h
+++ b/src/platformsupport/fontdatabases/fontconfig/qfontconfigdatabase_p.h
@@ -55,14 +55,14 @@ class QFontEngineFT;
class QFontconfigDatabase : public QBasicFontDatabase
{
public:
- void populateFontDatabase();
- QFontEngineMulti *fontEngineMulti(QFontEngine *fontEngine, QChar::Script script);
- QFontEngine *fontEngine(const QFontDef &fontDef, void *handle);
- QFontEngine *fontEngine(const QByteArray &fontData, qreal pixelSize, QFont::HintingPreference hintingPreference);
- QStringList fallbacksForFamily(const QString &family, QFont::Style style, QFont::StyleHint styleHint, QChar::Script script) const;
- QStringList addApplicationFont(const QByteArray &fontData, const QString &fileName);
- QString resolveFontFamilyAlias(const QString &family) const;
- QFont defaultFont() const;
+ void populateFontDatabase() Q_DECL_OVERRIDE;
+ QFontEngineMulti *fontEngineMulti(QFontEngine *fontEngine, QChar::Script script) Q_DECL_OVERRIDE;
+ QFontEngine *fontEngine(const QFontDef &fontDef, void *handle) Q_DECL_OVERRIDE;
+ QFontEngine *fontEngine(const QByteArray &fontData, qreal pixelSize, QFont::HintingPreference hintingPreference) Q_DECL_OVERRIDE;
+ QStringList fallbacksForFamily(const QString &family, QFont::Style style, QFont::StyleHint styleHint, QChar::Script script) const Q_DECL_OVERRIDE;
+ QStringList addApplicationFont(const QByteArray &fontData, const QString &fileName) Q_DECL_OVERRIDE;
+ QString resolveFontFamilyAlias(const QString &family) const Q_DECL_OVERRIDE;
+ QFont defaultFont() const Q_DECL_OVERRIDE;
private:
void setupFontEngine(QFontEngineFT *engine, const QFontDef &fontDef) const;
diff --git a/src/platformsupport/fontdatabases/fontconfig/qfontenginemultifontconfig.cpp b/src/platformsupport/fontdatabases/fontconfig/qfontenginemultifontconfig.cpp
index 956cf68290..b0460814ca 100644
--- a/src/platformsupport/fontdatabases/fontconfig/qfontenginemultifontconfig.cpp
+++ b/src/platformsupport/fontdatabases/fontconfig/qfontenginemultifontconfig.cpp
@@ -38,7 +38,7 @@
QT_BEGIN_NAMESPACE
QFontEngineMultiFontConfig::QFontEngineMultiFontConfig(QFontEngine *fe, int script)
- : QFontEngineMultiBasicImpl(fe, script)
+ : QFontEngineMulti(fe, script)
{
}
@@ -67,8 +67,8 @@ bool QFontEngineMultiFontConfig::shouldLoadFontEngineForCharacter(int at, uint u
FcPattern * QFontEngineMultiFontConfig::getMatchPatternForFallback(int fallBackIndex) const
{
Q_ASSERT(fallBackIndex < fallbackFamilyCount());
- if (engines.size() - 1 > cachedMatchPatterns.size())
- cachedMatchPatterns.resize(engines.size() - 1);
+ if (fallbackFamilyCount() > cachedMatchPatterns.size())
+ cachedMatchPatterns.resize(fallbackFamilyCount());
FcPattern *ret = cachedMatchPatterns.at(fallBackIndex);
if (ret)
return ret;
diff --git a/src/platformsupport/fontdatabases/fontconfig/qfontenginemultifontconfig_p.h b/src/platformsupport/fontdatabases/fontconfig/qfontenginemultifontconfig_p.h
index 115f8e6c16..e748e81cf6 100644
--- a/src/platformsupport/fontdatabases/fontconfig/qfontenginemultifontconfig_p.h
+++ b/src/platformsupport/fontdatabases/fontconfig/qfontenginemultifontconfig_p.h
@@ -50,14 +50,14 @@
QT_BEGIN_NAMESPACE
-class QFontEngineMultiFontConfig : public QFontEngineMultiBasicImpl
+class QFontEngineMultiFontConfig : public QFontEngineMulti
{
public:
explicit QFontEngineMultiFontConfig(QFontEngine *fe, int script);
~QFontEngineMultiFontConfig();
- bool shouldLoadFontEngineForCharacter(int at, uint ucs4) const;
+ bool shouldLoadFontEngineForCharacter(int at, uint ucs4) const Q_DECL_OVERRIDE;
private:
FcPattern* getMatchPatternForFallback(int at) const;
diff --git a/src/platformsupport/fontdatabases/mac/qcoretextfontdatabase.mm b/src/platformsupport/fontdatabases/mac/qcoretextfontdatabase.mm
index 9f2ff10a21..ac73cd04ad 100644
--- a/src/platformsupport/fontdatabases/mac/qcoretextfontdatabase.mm
+++ b/src/platformsupport/fontdatabases/mac/qcoretextfontdatabase.mm
@@ -286,25 +286,9 @@ static void getFontDescription(CTFontDescriptorRef font, FontDescription *fd)
if (styles) {
if (CFNumberRef weightValue = (CFNumberRef) CFDictionaryGetValue(styles, kCTFontWeightTrait)) {
- double normalizedWeight;
- if (CFNumberGetValue(weightValue, kCFNumberDoubleType, &normalizedWeight)) {
- if (normalizedWeight >= 0.62)
- fd->weight = QFont::Black;
- else if (normalizedWeight >= 0.4)
- fd->weight = QFont::Bold;
- else if (normalizedWeight >= 0.3)
- fd->weight = QFont::DemiBold;
- else if (normalizedWeight >= 0.2)
- fd->weight = qt_mediumFontWeight;
- else if (normalizedWeight == 0.0)
- fd->weight = QFont::Normal;
- else if (normalizedWeight <= -0.4)
- fd->weight = QFont::Light;
- else if (normalizedWeight <= -0.6)
- fd->weight = qt_extralightFontWeight;
- else if (normalizedWeight <= -0.8)
- fd->weight = qt_thinFontWeight;
- }
+ float normalizedWeight;
+ if (CFNumberGetValue(weightValue, kCFNumberFloatType, &normalizedWeight))
+ fd->weight = QCoreTextFontEngine::qtWeightFromCFWeight(normalizedWeight);
}
if (CFNumberRef italic = (CFNumberRef) CFDictionaryGetValue(styles, kCTFontSlantTrait)) {
double d;
@@ -842,6 +826,11 @@ QFont QCoreTextFontDatabase::defaultFont() const
return QFont(defaultFontName);
}
+bool QCoreTextFontDatabase::fontsAlwaysScalable() const
+{
+ return true;
+}
+
QList<int> QCoreTextFontDatabase::standardSizes() const
{
QList<int> ret;
diff --git a/src/platformsupport/fontdatabases/mac/qcoretextfontdatabase_p.h b/src/platformsupport/fontdatabases/mac/qcoretextfontdatabase_p.h
index 044db2b03d..b95a145c1a 100644
--- a/src/platformsupport/fontdatabases/mac/qcoretextfontdatabase_p.h
+++ b/src/platformsupport/fontdatabases/mac/qcoretextfontdatabase_p.h
@@ -87,6 +87,7 @@ public:
void releaseHandle(void *handle);
bool isPrivateFontFamily(const QString &family) const;
QFont defaultFont() const;
+ bool fontsAlwaysScalable() const Q_DECL_OVERRIDE;
QList<int> standardSizes() const;
// For iOS and OS X platform themes
diff --git a/src/platformsupport/fontdatabases/mac/qfontengine_coretext.mm b/src/platformsupport/fontdatabases/mac/qfontengine_coretext.mm
index 23fe48b493..425c7471d4 100644
--- a/src/platformsupport/fontdatabases/mac/qfontengine_coretext.mm
+++ b/src/platformsupport/fontdatabases/mac/qfontengine_coretext.mm
@@ -41,6 +41,7 @@
#include "qfontengine_coretext_p.h"
+#include <qpa/qplatformfontdatabase.h>
#include <QtCore/qendian.h>
#include <QtCore/qsettings.h>
@@ -66,6 +67,29 @@ bool QCoreTextFontEngine::ct_getSfntTable(void *user_data, uint tag, uchar *buff
return true;
}
+QFont::Weight QCoreTextFontEngine::qtWeightFromCFWeight(float value)
+{
+ if (value >= 0.62)
+ return QFont::Black;
+ if (value >= 0.5)
+ return QFont::ExtraBold;
+ if (value >= 0.4)
+ return QFont::Bold;
+ if (value >= 0.3)
+ return QFont::DemiBold;
+ if (value >= 0.2)
+ return QFont::Medium;
+ if (value == 0.0)
+ return QFont::Normal;
+ if (value <= -0.4)
+ return QFont::Light;
+ if (value <= -0.6)
+ return QFont::ExtraLight;
+ if (value <= -0.8)
+ return QFont::Thin;
+ return QFont::Normal;
+}
+
static void loadAdvancesForGlyphs(CTFontRef ctfont,
QVarLengthArray<CGGlyph> &cgGlyphs,
QGlyphLayout *glyphs, int len,
@@ -88,6 +112,16 @@ static void loadAdvancesForGlyphs(CTFontRef ctfont,
}
}
+static float getTraitValue(CFDictionaryRef allTraits, CFStringRef trait)
+{
+ if (CFDictionaryContainsKey(allTraits, trait)) {
+ CFNumberRef traitNum = (CFNumberRef) CFDictionaryGetValue(allTraits, trait);
+ float v = 0;
+ CFNumberGetValue(traitNum, kCFNumberFloatType, &v);
+ return v;
+ }
+ return 0;
+}
int QCoreTextFontEngine::antialiasingThreshold = 0;
QFontEngine::GlyphFormat QCoreTextFontEngine::defaultGlyphFormat = QFontEngine::Format_A32;
@@ -129,34 +163,6 @@ QCoreTextFontEngine::~QCoreTextFontEngine()
CFRelease(ctfont);
}
-static QFont::Weight weightFromInteger(int weight)
-{
- if (weight < 400)
- return QFont::Light;
- else if (weight < 600)
- return QFont::Normal;
- else if (weight < 700)
- return QFont::DemiBold;
- else if (weight < 800)
- return QFont::Bold;
- else
- return QFont::Black;
-}
-
-int getTraitValue(CFDictionaryRef allTraits, CFStringRef trait)
-{
- if (CFDictionaryContainsKey(allTraits, trait)) {
- CFNumberRef traitNum = (CFNumberRef) CFDictionaryGetValue(allTraits, trait);
- float v = 0;
- CFNumberGetValue(traitNum, kCFNumberFloatType, &v);
- // the value we get from CFNumberRef is from -1.0 to 1.0
- int value = v * 500 + 500;
- return value;
- }
-
- return 0;
-}
-
void QCoreTextFontEngine::init()
{
Q_ASSERT(ctfont != NULL);
@@ -182,8 +188,8 @@ void QCoreTextFontEngine::init()
fontDef.style = QFont::StyleItalic;
CFDictionaryRef allTraits = CTFontCopyTraits(ctfont);
- fontDef.weight = weightFromInteger(getTraitValue(allTraits, kCTFontWeightTrait));
- int slant = getTraitValue(allTraits, kCTFontSlantTrait);
+ fontDef.weight = QCoreTextFontEngine::qtWeightFromCFWeight(getTraitValue(allTraits, kCTFontWeightTrait));
+ int slant = static_cast<int>(getTraitValue(allTraits, kCTFontSlantTrait) * 500 + 500);
if (slant > 500 && !(traits & kCTFontItalicTrait))
fontDef.style = QFont::StyleOblique;
CFRelease(allTraits);
@@ -646,15 +652,11 @@ QImage QCoreTextFontEngine::alphaMapForGlyph(glyph_t glyph, QFixed subPixelPosit
QImage im = imageForGlyph(glyph, subPixelPosition, false, x);
- QImage indexed(im.width(), im.height(), QImage::Format_Indexed8);
- QVector<QRgb> colors(256);
- for (int i=0; i<256; ++i)
- colors[i] = qRgba(0, 0, 0, i);
- indexed.setColorTable(colors);
+ QImage alphaMap(im.width(), im.height(), QImage::Format_Alpha8);
for (int y=0; y<im.height(); ++y) {
uint *src = (uint*) im.scanLine(y);
- uchar *dst = indexed.scanLine(y);
+ uchar *dst = alphaMap.scanLine(y);
for (int x=0; x<im.width(); ++x) {
*dst = qGray(*src);
++dst;
@@ -662,7 +664,7 @@ QImage QCoreTextFontEngine::alphaMapForGlyph(glyph_t glyph, QFixed subPixelPosit
}
}
- return indexed;
+ return alphaMap;
}
QImage QCoreTextFontEngine::alphaRGBMapForGlyph(glyph_t glyph, QFixed subPixelPosition, const QTransform &x)
diff --git a/src/platformsupport/fontdatabases/mac/qfontengine_coretext_p.h b/src/platformsupport/fontdatabases/mac/qfontengine_coretext_p.h
index 998a6abb18..d0f7c79929 100644
--- a/src/platformsupport/fontdatabases/mac/qfontengine_coretext_p.h
+++ b/src/platformsupport/fontdatabases/mac/qfontengine_coretext_p.h
@@ -57,7 +57,6 @@
QT_BEGIN_NAMESPACE
-class QRawFontPrivate;
class QCoreTextFontEngine : public QFontEngine
{
public:
@@ -122,13 +121,11 @@ public:
}
static bool ct_getSfntTable(void *user_data, uint tag, uchar *buffer, uint *length);
+ static QFont::Weight qtWeightFromCFWeight(float value);
static int antialiasingThreshold;
static QFontEngine::GlyphFormat defaultGlyphFormat;
-
private:
- friend class QRawFontPrivate;
-
void init();
QImage imageForGlyph(glyph_t glyph, QFixed subPixelPosition, bool colorful, const QTransform &m);
CTFontRef ctfont;
diff --git a/src/platformsupport/input/evdevkeyboard/qevdevkeyboardhandler.cpp b/src/platformsupport/input/evdevkeyboard/qevdevkeyboardhandler.cpp
index 27d15dfafa..9ce97cf373 100644
--- a/src/platformsupport/input/evdevkeyboard/qevdevkeyboardhandler.cpp
+++ b/src/platformsupport/input/evdevkeyboard/qevdevkeyboardhandler.cpp
@@ -37,20 +37,18 @@
#include <QSocketNotifier>
#include <QStringList>
-#include <qpa/qwindowsysteminterface.h>
#include <QCoreApplication>
+#include <QLoggingCategory>
+#include <qpa/qwindowsysteminterface.h>
#include <private/qcore_unix_p.h>
#include <linux/input.h>
-//#define QT_QPA_KEYMAP_DEBUG
-
-#ifdef QT_QPA_KEYMAP_DEBUG
-#include <qdebug.h>
-#endif
-
QT_BEGIN_NAMESPACE
+Q_LOGGING_CATEGORY(qLcEvdevKey, "qt.qpa.input")
+Q_LOGGING_CATEGORY(qLcEvdevKeyMap, "qt.qpa.input.keymap")
+
// simple builtin US keymap
#include "qevdevkeyboard_defaultmap_p.h"
@@ -60,9 +58,7 @@ QEvdevKeyboardHandler::QEvdevKeyboardHandler(const QString &device, int fd, bool
m_no_zap(disableZap), m_do_compose(enableCompose),
m_keymap(0), m_keymap_size(0), m_keycompose(0), m_keycompose_size(0)
{
-#ifdef QT_QPA_KEYMAP_DEBUG
- qWarning() << "Create keyboard handler with for device" << device;
-#endif
+ qCDebug(qLcEvdevKey) << "Create keyboard handler with for device" << device;
setObjectName(QLatin1String("LinuxInput Keyboard Handler"));
@@ -89,9 +85,7 @@ QEvdevKeyboardHandler *QEvdevKeyboardHandler::create(const QString &device,
const QString &specification,
const QString &defaultKeymapFile)
{
-#ifdef QT_QPA_KEYMAP_DEBUG
- qWarning() << "Try to create keyboard handler for" << device << specification;
-#endif
+ qCDebug(qLcEvdevKey) << "Try to create keyboard handler for" << device << specification;
QString keymapFile = defaultKeymapFile;
int repeatDelay = 400;
@@ -116,9 +110,7 @@ QEvdevKeyboardHandler *QEvdevKeyboardHandler::create(const QString &device,
grab = arg.mid(5).toInt();
}
-#ifdef QT_QPA_KEYMAP_DEBUG
- qWarning() << "Opening keyboard at" << device;
-#endif
+ qCDebug(qLcEvdevKey) << "Opening keyboard at" << device;
int fd;
fd = qt_safe_open(device.toLocal8Bit().constData(), O_RDONLY | O_NDELAY, 0);
@@ -138,9 +130,7 @@ QEvdevKeyboardHandler *QEvdevKeyboardHandler::create(const QString &device,
void QEvdevKeyboardHandler::switchLed(int led, bool state)
{
-#ifdef QT_QPA_KEYMAP_DEBUG
- qWarning() << "switchLed" << led << state;
-#endif
+ qCDebug(qLcEvdevKey) << "switchLed" << led << state;
struct ::input_event led_ie;
::gettimeofday(&led_ie.time, 0);
@@ -153,10 +143,6 @@ void QEvdevKeyboardHandler::switchLed(int led, bool state)
void QEvdevKeyboardHandler::readKeycode()
{
-#ifdef QT_QPA_KEYMAP_DEBUG
- qWarning() << "Read new keycode on" << m_device;
-#endif
-
struct ::input_event buffer[32];
int n = 0;
@@ -164,11 +150,11 @@ void QEvdevKeyboardHandler::readKeycode()
int result = qt_safe_read(m_fd, reinterpret_cast<char *>(buffer) + n, sizeof(buffer) - n);
if (result == 0) {
- qWarning("Got EOF from the input device.");
+ qWarning("evdevkeyboard: Got EOF from the input device");
return;
} else if (result < 0) {
if (errno != EINTR && errno != EAGAIN) {
- qWarning("Could not read from input device: %s", strerror(errno));
+ qErrnoWarning(errno, "evdevkeyboard: Could not read from input device");
return;
}
} else {
@@ -249,21 +235,17 @@ QEvdevKeyboardHandler::KeycodeAction QEvdevKeyboardHandler::processKeycode(quint
if (m_locks[0] /*CapsLock*/ && map_withmod && (map_withmod->flags & QEvdevKeyboardMap::IsLetter))
modifiers ^= QEvdevKeyboardMap::ModShift;
-#ifdef QT_QPA_KEYMAP_DEBUG
- qWarning("Processing key event: keycode=%3d, modifiers=%02x pressed=%d, autorepeat=%d | plain=%d, withmod=%d, size=%d", \
- keycode, modifiers, pressed ? 1 : 0, autorepeat ? 1 : 0, \
- map_plain ? map_plain - m_keymap : -1, \
- map_withmod ? map_withmod - m_keymap : -1, \
- m_keymap_size);
-#endif
+ qCDebug(qLcEvdevKeyMap, "Processing key event: keycode=%3d, modifiers=%02x pressed=%d, autorepeat=%d | plain=%d, withmod=%d, size=%d",
+ keycode, modifiers, pressed ? 1 : 0, autorepeat ? 1 : 0,
+ int(map_plain ? map_plain - m_keymap : -1),
+ int(map_withmod ? map_withmod - m_keymap : -1),
+ m_keymap_size);
const QEvdevKeyboardMap::Mapping *it = map_withmod ? map_withmod : map_plain;
if (!it) {
-#ifdef QT_QPA_KEYMAP_DEBUG
// we couldn't even find a plain mapping
- qWarning("Could not find a suitable mapping for keycode: %3d, modifiers: %02x", keycode, modifiers);
-#endif
+ qCDebug(qLcEvdevKeyMap, "Could not find a suitable mapping for keycode: %3d, modifiers: %02x", keycode, modifiers);
return result;
}
@@ -397,9 +379,7 @@ QEvdevKeyboardHandler::KeycodeAction QEvdevKeyboardHandler::processKeycode(quint
}
if (!skip) {
-#ifdef QT_QPA_KEYMAP_DEBUG
- qWarning("Processing: uni=%04x, qt=%08x, qtmod=%08x", unicode, qtcode & ~modmask, (qtcode & modmask));
-#endif
+ qCDebug(qLcEvdevKeyMap, "Processing: uni=%04x, qt=%08x, qtmod=%08x", unicode, qtcode & ~modmask, (qtcode & modmask));
//If NumLockOff and keypad key pressed remap event sent
if (!m_locks[1] &&
(qtcode & Qt::KeypadModifier) &&
@@ -457,9 +437,7 @@ QEvdevKeyboardHandler::KeycodeAction QEvdevKeyboardHandler::processKeycode(quint
void QEvdevKeyboardHandler::unloadKeymap()
{
-#ifdef QT_QPA_KEYMAP_DEBUG
- qWarning() << "Unload current keymap and restore built-in";
-#endif
+ qCDebug(qLcEvdevKey) << "Unload current keymap and restore built-in";
if (m_keymap && m_keymap != s_keymap_default)
delete [] m_keymap;
@@ -481,7 +459,7 @@ void QEvdevKeyboardHandler::unloadKeymap()
quint16 ledbits[1];
memset(ledbits, 0, sizeof(ledbits));
if (::ioctl(m_fd, EVIOCGLED(sizeof(ledbits)), ledbits) < 0) {
- qWarning("Failed to query led states. Settings numlock & capslock off");
+ qWarning("evdevkeyboard: Failed to query led states");
switchLed(LED_NUML,false);
switchLed(LED_CAPSL, false);
switchLed(LED_SCROLLL,false);
@@ -495,17 +473,13 @@ void QEvdevKeyboardHandler::unloadKeymap()
//Scrollock
if ((ledbits[0]&0x04) > 0)
m_locks[2] = 1;
-#ifdef QT_QPA_KEYMAP_DEBUG
- qWarning("numlock=%d , capslock=%d, scrolllock=%d",m_locks[1],m_locks[0],m_locks[2]);
-#endif
+ qCDebug(qLcEvdevKey, "numlock=%d , capslock=%d, scrolllock=%d", m_locks[1], m_locks[0], m_locks[2]);
}
}
bool QEvdevKeyboardHandler::loadKeymap(const QString &file)
{
-#ifdef QT_QPA_KEYMAP_DEBUG
- qWarning() << "Load keymap" << file;
-#endif
+ qCDebug(qLcEvdevKey) << "Loading keymap" << file;
QFile f(file);
@@ -529,7 +503,7 @@ bool QEvdevKeyboardHandler::loadKeymap(const QString &file)
ds >> qmap_magic >> qmap_version >> qmap_keymap_size >> qmap_keycompose_size;
if (ds.status() != QDataStream::Ok || qmap_magic != QEvdevKeyboardMap::FileMagic || qmap_version != 1 || qmap_keymap_size == 0) {
- qWarning("'%s' is ot a valid.qmap keymap file.", qPrintable(file));
+ qWarning("'%s' is not a valid .qmap keymap file", qPrintable(file));
return false;
}
diff --git a/src/platformsupport/input/evdevkeyboard/qevdevkeyboardmanager.cpp b/src/platformsupport/input/evdevkeyboard/qevdevkeyboardmanager.cpp
index 3f8eb1bcd5..4614fbd499 100644
--- a/src/platformsupport/input/evdevkeyboard/qevdevkeyboardmanager.cpp
+++ b/src/platformsupport/input/evdevkeyboard/qevdevkeyboardmanager.cpp
@@ -35,15 +35,12 @@
#include <QStringList>
#include <QCoreApplication>
-
-//#define QT_QPA_KEYMAP_DEBUG
-
-#ifdef QT_QPA_KEYMAP_DEBUG
-#include <QDebug>
-#endif
+#include <QLoggingCategory>
QT_BEGIN_NAMESPACE
+Q_DECLARE_LOGGING_CATEGORY(qLcEvdevKey)
+
QEvdevKeyboardManager::QEvdevKeyboardManager(const QString &key, const QString &specification, QObject *parent)
: QObject(parent)
{
@@ -74,10 +71,7 @@ QEvdevKeyboardManager::QEvdevKeyboardManager(const QString &key, const QString &
addKeyboard(device);
if (devices.isEmpty()) {
-#ifdef QT_QPA_KEYMAP_DEBUG
- qWarning() << "Use device discovery";
-#endif
-
+ qCDebug(qLcEvdevKey) << "evdevkeyboard: Using device discovery";
m_deviceDiscovery = QDeviceDiscovery::create(QDeviceDiscovery::Device_Keyboard, this);
if (m_deviceDiscovery) {
// scan and add already connected keyboards
@@ -100,24 +94,19 @@ QEvdevKeyboardManager::~QEvdevKeyboardManager()
void QEvdevKeyboardManager::addKeyboard(const QString &deviceNode)
{
-#ifdef QT_QPA_KEYMAP_DEBUG
- qWarning() << "Adding keyboard at" << deviceNode;
-#endif
-
+ qCDebug(qLcEvdevKey) << "Adding keyboard at" << deviceNode;
QEvdevKeyboardHandler *keyboard;
keyboard = QEvdevKeyboardHandler::create(deviceNode, m_spec, m_defaultKeymapFile);
if (keyboard)
m_keyboards.insert(deviceNode, keyboard);
else
- qWarning("Failed to open keyboard");
+ qWarning("Failed to open keyboard device %s", qPrintable(deviceNode));
}
void QEvdevKeyboardManager::removeKeyboard(const QString &deviceNode)
{
if (m_keyboards.contains(deviceNode)) {
-#ifdef QT_QPA_KEYMAP_DEBUG
- qWarning() << "Removing keyboard at" << deviceNode;
-#endif
+ qCDebug(qLcEvdevKey) << "Removing keyboard at" << deviceNode;
QEvdevKeyboardHandler *keyboard = m_keyboards.value(deviceNode);
m_keyboards.remove(deviceNode);
delete keyboard;
diff --git a/src/platformsupport/input/evdevmouse/qevdevmousehandler.cpp b/src/platformsupport/input/evdevmouse/qevdevmousehandler.cpp
index 11db06680a..eddf180e4a 100644
--- a/src/platformsupport/input/evdevmouse/qevdevmousehandler.cpp
+++ b/src/platformsupport/input/evdevmouse/qevdevmousehandler.cpp
@@ -38,6 +38,7 @@
#include <QPoint>
#include <QGuiApplication>
#include <QScreen>
+#include <QLoggingCategory>
#include <qpa/qwindowsysteminterface.h>
#include <qplatformdefs.h>
@@ -48,19 +49,15 @@
#include <linux/kd.h>
#include <linux/input.h>
-#include <qdebug.h>
-
-//#define QT_QPA_MOUSE_HANDLER_DEBUG
-
#define TEST_BIT(array, bit) (array[bit/8] & (1<<(bit%8)))
QT_BEGIN_NAMESPACE
+Q_LOGGING_CATEGORY(qLcEvdevMouse, "qt.qpa.input")
+
QEvdevMouseHandler *QEvdevMouseHandler::create(const QString &device, const QString &specification)
{
-#ifdef QT_QPA_MOUSE_HANDLER_DEBUG
- qWarning() << "Try to create mouse handler for" << device << specification;
-#endif
+ qCDebug(qLcEvdevMouse) << "create mouse handler for" << device << specification;
bool compression = true;
int jitterLimit = 0;
@@ -85,7 +82,7 @@ QEvdevMouseHandler *QEvdevMouseHandler::create(const QString &device, const QStr
::ioctl(fd, EVIOCGRAB, grab);
return new QEvdevMouseHandler(device, fd, abs, compression, jitterLimit);
} else {
- qWarning("Cannot open mouse input device '%s': %s", qPrintable(device), strerror(errno));
+ qErrnoWarning(errno, "Cannot open mouse input device %s", qPrintable(device));
return 0;
}
}
@@ -148,12 +145,10 @@ bool QEvdevMouseHandler::getHardwareMaximum()
m_hardwareScalerX = static_cast<qreal>(m_hardwareWidth) / (g.right() - g.left());
m_hardwareScalerY = static_cast<qreal>(m_hardwareHeight) / (g.bottom() - g.top());
-#ifdef QT_QPA_MOUSE_HANDLER_DEBUG
- qDebug() << "Absolute pointing device";
- qDebug() << "hardware max x" << m_hardwareWidth;
- qDebug() << "hardware max y" << m_hardwareHeight;
- qDebug() << "hardware scalers x" << m_hardwareScalerX << "y" << m_hardwareScalerY;
-#endif
+ qCDebug(qLcEvdevMouse) << "Absolute pointing device"
+ << "hardware max x" << m_hardwareWidth
+ << "hardware max y" << m_hardwareHeight
+ << "hardware scalers x" << m_hardwareScalerX << "y" << m_hardwareScalerY;
return true;
}
@@ -194,11 +189,11 @@ void QEvdevMouseHandler::readMouseData()
int result = QT_READ(m_fd, reinterpret_cast<char *>(buffer) + n, sizeof(buffer) - n);
if (result == 0) {
- qWarning("Got EOF from the input device.");
+ qWarning("evdevmouse: Got EOF from the input device");
return;
} else if (result < 0) {
if (errno != EINTR && errno != EAGAIN) {
- qWarning("Could not read from input device: %s", strerror(errno));
+ qErrnoWarning(errno, "evdevmouse: Could not read from input device");
return;
}
} else {
@@ -212,7 +207,6 @@ void QEvdevMouseHandler::readMouseData()
for (int i = 0; i < n; ++i) {
struct ::input_event *data = &buffer[i];
- //qDebug() << ">>" << hex << data->type << data->code << dec << data->value;
if (data->type == EV_ABS) {
// Touchpads: store the absolute position for now, will calculate a relative one later.
if (data->code == ABS_X && m_x != data->value) {
diff --git a/src/platformsupport/input/evdevmouse/qevdevmousemanager.cpp b/src/platformsupport/input/evdevmouse/qevdevmousemanager.cpp
index 2b52c4e995..a0c9c9f34d 100644
--- a/src/platformsupport/input/evdevmouse/qevdevmousemanager.cpp
+++ b/src/platformsupport/input/evdevmouse/qevdevmousemanager.cpp
@@ -36,16 +36,13 @@
#include <QStringList>
#include <QGuiApplication>
#include <QScreen>
+#include <QLoggingCategory>
#include <qpa/qwindowsysteminterface.h>
-//#define QT_QPA_MOUSEMANAGER_DEBUG
-
-#ifdef QT_QPA_MOUSEMANAGER_DEBUG
-#include <QDebug>
-#endif
-
QT_BEGIN_NAMESPACE
+Q_DECLARE_LOGGING_CATEGORY(qLcEvdevMouse)
+
QEvdevMouseManager::QEvdevMouseManager(const QString &key, const QString &specification, QObject *parent)
: QObject(parent), m_x(0), m_y(0), m_xoffset(0), m_yoffset(0)
{
@@ -79,10 +76,7 @@ QEvdevMouseManager::QEvdevMouseManager(const QString &key, const QString &specif
addMouse(device);
if (devices.isEmpty()) {
-#ifdef QT_QPA_MOUSEMANAGER_DEBUG
- qWarning() << "Use device discovery";
-#endif
-
+ qCDebug(qLcEvdevMouse) << "evdevmouse: Using device discovery";
m_deviceDiscovery = QDeviceDiscovery::create(QDeviceDiscovery::Device_Mouse | QDeviceDiscovery::Device_Touchpad, this);
if (m_deviceDiscovery) {
// scan and add already connected keyboards
@@ -130,28 +124,17 @@ void QEvdevMouseManager::handleMouseEvent(int x, int y, bool abs, Qt::MouseButto
// Cannot track the keyboard modifiers ourselves here. Instead, report the
// modifiers from the last key event that has been seen by QGuiApplication.
QWindowSystemInterface::handleMouseEvent(0, pos, pos, buttons, QGuiApplication::keyboardModifiers());
-
-#ifdef QT_QPA_MOUSEMANAGER_DEBUG
- qDebug("mouse event %d %d %d", pos.x(), pos.y(), int(buttons));
-#endif
}
void QEvdevMouseManager::handleWheelEvent(int delta, Qt::Orientation orientation)
{
QPoint pos(m_x + m_xoffset, m_y + m_yoffset);
QWindowSystemInterface::handleWheelEvent(0, pos, pos, delta, orientation, QGuiApplication::keyboardModifiers());
-
-#ifdef QT_QPA_MOUSEMANAGER_DEBUG
- qDebug("mouse wheel event %dx%d %d %d", pos.x(), pos.y(), delta, int(orientation));
-#endif
}
void QEvdevMouseManager::addMouse(const QString &deviceNode)
{
-#ifdef QT_QPA_MOUSEMANAGER_DEBUG
- qWarning() << "Adding mouse at" << deviceNode;
-#endif
-
+ qCDebug(qLcEvdevMouse) << "Adding mouse at" << deviceNode;
QEvdevMouseHandler *handler;
handler = QEvdevMouseHandler::create(deviceNode, m_spec);
if (handler) {
@@ -159,16 +142,14 @@ void QEvdevMouseManager::addMouse(const QString &deviceNode)
connect(handler, SIGNAL(handleWheelEvent(int,Qt::Orientation)), this, SLOT(handleWheelEvent(int,Qt::Orientation)));
m_mice.insert(deviceNode, handler);
} else {
- qWarning("Failed to open mouse");
+ qWarning("evdevmouse: Failed to open mouse device %s", qPrintable(deviceNode));
}
}
void QEvdevMouseManager::removeMouse(const QString &deviceNode)
{
if (m_mice.contains(deviceNode)) {
-#ifdef QT_QPA_MOUSEMANAGER_DEBUG
- qWarning() << "Removing mouse at" << deviceNode;
-#endif
+ qCDebug(qLcEvdevMouse) << "Removing mouse at" << deviceNode;
QEvdevMouseHandler *handler = m_mice.value(deviceNode);
m_mice.remove(deviceNode);
delete handler;
diff --git a/src/platformsupport/input/evdevtablet/qevdevtablet.cpp b/src/platformsupport/input/evdevtablet/qevdevtablet.cpp
index 8d91c49488..8dbf5832d9 100644
--- a/src/platformsupport/input/evdevtablet/qevdevtablet.cpp
+++ b/src/platformsupport/input/evdevtablet/qevdevtablet.cpp
@@ -36,13 +36,15 @@
#include <QStringList>
#include <QSocketNotifier>
#include <QGuiApplication>
-#include <QDebug>
+#include <QLoggingCategory>
#include <QtCore/private/qcore_unix_p.h>
#include <QtPlatformSupport/private/qdevicediscovery_p.h>
#include <linux/input.h>
QT_BEGIN_NAMESPACE
+Q_LOGGING_CATEGORY(qLcEvdevTablet, "qt.qpa.input")
+
class QEvdevTabletData
{
public:
@@ -87,28 +89,28 @@ bool QEvdevTabletData::queryLimits()
if (ok) {
minValues.x = absInfo.minimum;
maxValues.x = absInfo.maximum;
- qDebug("evdevtablet: min X: %d max X: %d", minValues.x, maxValues.x);
+ qCDebug(qLcEvdevTablet, "evdevtablet: min X: %d max X: %d", minValues.x, maxValues.x);
}
ok &= ioctl(fd, EVIOCGABS(ABS_Y), &absInfo) >= 0;
if (ok) {
minValues.y = absInfo.minimum;
maxValues.y = absInfo.maximum;
- qDebug("evdevtablet: min Y: %d max Y: %d", minValues.y, maxValues.y);
+ qCDebug(qLcEvdevTablet, "evdevtablet: min Y: %d max Y: %d", minValues.y, maxValues.y);
}
if (ioctl(fd, EVIOCGABS(ABS_PRESSURE), &absInfo) >= 0) {
minValues.p = absInfo.minimum;
maxValues.p = absInfo.maximum;
- qDebug("evdevtablet: min pressure: %d max pressure: %d", minValues.p, maxValues.p);
+ qCDebug(qLcEvdevTablet, "evdevtablet: min pressure: %d max pressure: %d", minValues.p, maxValues.p);
}
if (ioctl(fd, EVIOCGABS(ABS_DISTANCE), &absInfo) >= 0) {
minValues.d = absInfo.minimum;
maxValues.d = absInfo.maximum;
- qDebug("evdevtablet: min distance: %d max distance: %d", minValues.d, maxValues.d);
+ qCDebug(qLcEvdevTablet, "evdevtablet: min distance: %d max distance: %d", minValues.d, maxValues.d);
}
char name[128];
if (ioctl(fd, EVIOCGNAME(sizeof(name) - 1), name) >= 0) {
devName = QString::fromLocal8Bit(name);
- qDebug("evdevtablet: device name: %s", name);
+ qCDebug(qLcEvdevTablet, "evdevtablet: device name: %s", name);
}
return ok;
}
@@ -232,7 +234,7 @@ QEvdevTabletHandler::QEvdevTabletHandler(const QString &spec, QObject *parent)
}
}
if (!dev.isEmpty()) {
- qDebug("evdevtablet: using %s", qPrintable(dev));
+ qCDebug(qLcEvdevTablet, "evdevtablet: using %s", qPrintable(dev));
d->fd = QT_OPEN(dev.toLocal8Bit().constData(), O_RDONLY | O_NDELAY, 0);
if (d->fd >= 0) {
d->testGrab();
diff --git a/src/platformsupport/input/evdevtablet/qevdevtablet_p.h b/src/platformsupport/input/evdevtablet/qevdevtablet_p.h
index c20ddec787..4778c85d21 100644
--- a/src/platformsupport/input/evdevtablet/qevdevtablet_p.h
+++ b/src/platformsupport/input/evdevtablet/qevdevtablet_p.h
@@ -73,7 +73,7 @@ class QEvdevTabletHandlerThread : public QThread
public:
explicit QEvdevTabletHandlerThread(const QString &spec, QObject *parent = 0);
~QEvdevTabletHandlerThread();
- void run();
+ void run() Q_DECL_OVERRIDE;
QEvdevTabletHandler *handler() { return m_handler; }
private:
diff --git a/src/platformsupport/input/evdevtouch/qevdevtouch.cpp b/src/platformsupport/input/evdevtouch/qevdevtouch.cpp
index d0d8b783a4..dd831c9e82 100644
--- a/src/platformsupport/input/evdevtouch/qevdevtouch.cpp
+++ b/src/platformsupport/input/evdevtouch/qevdevtouch.cpp
@@ -36,7 +36,7 @@
#include <QHash>
#include <QSocketNotifier>
#include <QGuiApplication>
-#include <QDebug>
+#include <QLoggingCategory>
#include <QtCore/private/qcore_unix_p.h>
#include <QtPlatformSupport/private/qdevicediscovery_p.h>
#include <linux/input.h>
@@ -49,6 +49,8 @@ extern "C" {
QT_BEGIN_NAMESPACE
+Q_LOGGING_CATEGORY(qLcEvdevTouch, "qt.qpa.input")
+
/* android (and perhaps some other linux-derived stuff) don't define everything
* in linux/input.h, so we'll need to do that ourselves.
*/
@@ -164,7 +166,8 @@ QEvdevTouchScreenHandler::QEvdevTouchScreenHandler(const QString &specification,
{
setObjectName(QLatin1String("Evdev Touch Handler"));
- bool printDeviceInfo = qgetenv("QT_QPA_EVDEV_DEBUG").toInt();
+ if (qEnvironmentVariableIsSet("QT_QPA_EVDEV_DEBUG"))
+ ((QLoggingCategory &) qLcEvdevTouch()).setEnabled(QtDebugMsg, true);
// only the first device argument is used for now
QString spec = QString::fromLocal8Bit(qgetenv("QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS"));
@@ -215,13 +218,11 @@ QEvdevTouchScreenHandler::QEvdevTouchScreenHandler(const QString &specification,
}
if (dev.isEmpty()) {
- if (printDeviceInfo)
- qDebug("evdevtouch: No touch devices found");
+ qCDebug(qLcEvdevTouch, "evdevtouch: No touch devices found");
return;
}
- if (printDeviceInfo)
- qDebug("evdevtouch: Using device %s", qPrintable(dev));
+ qCDebug(qLcEvdevTouch, "evdevtouch: Using device %s", qPrintable(dev));
m_fd = QT_OPEN(dev.toLocal8Bit().constData(), O_RDONLY | O_NDELAY, 0);
@@ -257,25 +258,22 @@ QEvdevTouchScreenHandler::QEvdevTouchScreenHandler(const QString &specification,
}
#endif
- if (printDeviceInfo)
- qDebug("evdevtouch: Protocol type %c %s (%s)", d->m_typeB ? 'B' : 'A',
- mtdevStr, d->m_singleTouch ? "single" : "multi");
+ qCDebug(qLcEvdevTouch, "evdevtouch: Protocol type %c %s (%s)", d->m_typeB ? 'B' : 'A',
+ mtdevStr, d->m_singleTouch ? "single" : "multi");
input_absinfo absInfo;
memset(&absInfo, 0, sizeof(input_absinfo));
bool has_x_range = false, has_y_range = false;
if (ioctl(m_fd, EVIOCGABS((d->m_singleTouch ? ABS_X : ABS_MT_POSITION_X)), &absInfo) >= 0) {
- if (printDeviceInfo)
- qDebug("evdevtouch: min X: %d max X: %d", absInfo.minimum, absInfo.maximum);
+ qCDebug(qLcEvdevTouch, "evdevtouch: min X: %d max X: %d", absInfo.minimum, absInfo.maximum);
d->hw_range_x_min = absInfo.minimum;
d->hw_range_x_max = absInfo.maximum;
has_x_range = true;
}
if (ioctl(m_fd, EVIOCGABS((d->m_singleTouch ? ABS_Y : ABS_MT_POSITION_Y)), &absInfo) >= 0) {
- if (printDeviceInfo)
- qDebug("evdevtouch: min Y: %d max Y: %d", absInfo.minimum, absInfo.maximum);
+ qCDebug(qLcEvdevTouch, "evdevtouch: min Y: %d max Y: %d", absInfo.minimum, absInfo.maximum);
d->hw_range_y_min = absInfo.minimum;
d->hw_range_y_max = absInfo.maximum;
has_y_range = true;
@@ -285,8 +283,7 @@ QEvdevTouchScreenHandler::QEvdevTouchScreenHandler(const QString &specification,
qWarning("evdevtouch: Invalid ABS limits, behavior unspecified");
if (ioctl(m_fd, EVIOCGABS(ABS_PRESSURE), &absInfo) >= 0) {
- if (printDeviceInfo)
- qDebug("evdevtouch: min pressure: %d max pressure: %d", absInfo.minimum, absInfo.maximum);
+ qCDebug(qLcEvdevTouch, "evdevtouch: min pressure: %d max pressure: %d", absInfo.minimum, absInfo.maximum);
if (absInfo.maximum > absInfo.minimum) {
d->hw_pressure_min = absInfo.minimum;
d->hw_pressure_max = absInfo.maximum;
@@ -296,8 +293,7 @@ QEvdevTouchScreenHandler::QEvdevTouchScreenHandler(const QString &specification,
char name[1024];
if (ioctl(m_fd, EVIOCGNAME(sizeof(name) - 1), name) >= 0) {
d->hw_name = QString::fromLocal8Bit(name);
- if (printDeviceInfo)
- qDebug("evdevtouch: device name: %s", name);
+ qCDebug(qLcEvdevTouch, "evdevtouch: device name: %s", name);
}
// Fix up the coordinate ranges for am335x in case the kernel driver does not have them fixed.
@@ -310,9 +306,8 @@ QEvdevTouchScreenHandler::QEvdevTouchScreenHandler(const QString &specification,
d->hw_range_y_min = 220;
d->hw_range_y_max = 3907;
}
- if (printDeviceInfo)
- qDebug("evdevtouch: found ti-tsc, overriding: min X: %d max X: %d min Y: %d max Y: %d",
- d->hw_range_x_min, d->hw_range_x_max, d->hw_range_y_min, d->hw_range_y_max);
+ qCDebug(qLcEvdevTouch, "evdevtouch: found ti-tsc, overriding: min X: %d max X: %d min Y: %d max Y: %d",
+ d->hw_range_x_min, d->hw_range_x_max, d->hw_range_y_min, d->hw_range_y_max);
}
bool grabSuccess = !ioctl(m_fd, EVIOCGRAB, (void *) 1);
diff --git a/src/platformsupport/input/evdevtouch/qevdevtouch_p.h b/src/platformsupport/input/evdevtouch/qevdevtouch_p.h
index 31b2d86834..e7861f0360 100644
--- a/src/platformsupport/input/evdevtouch/qevdevtouch_p.h
+++ b/src/platformsupport/input/evdevtouch/qevdevtouch_p.h
@@ -85,7 +85,7 @@ class QEvdevTouchScreenHandlerThread : public QThread
public:
explicit QEvdevTouchScreenHandlerThread(const QString &spec, QObject *parent = 0);
~QEvdevTouchScreenHandlerThread();
- void run();
+ void run() Q_DECL_OVERRIDE;
QEvdevTouchScreenHandler *handler() { return m_handler; }
private:
diff --git a/src/platformsupport/input/input.pri b/src/platformsupport/input/input.pri
index 1524eb454e..3b9593eb31 100644
--- a/src/platformsupport/input/input.pri
+++ b/src/platformsupport/input/input.pri
@@ -4,3 +4,11 @@ contains(QT_CONFIG, evdev) {
include($$PWD/evdevtouch/evdevtouch.pri)
include($$PWD/evdevtablet/evdevtablet.pri)
}
+
+contains(QT_CONFIG, tslib) {
+ include($$PWD/tslib/tslib.pri)
+}
+
+contains(QT_CONFIG, libinput) {
+ include($$PWD/libinput/libinput.pri)
+}
diff --git a/src/platformsupport/input/libinput/libinput.pri b/src/platformsupport/input/libinput/libinput.pri
new file mode 100644
index 0000000000..bed9e79738
--- /dev/null
+++ b/src/platformsupport/input/libinput/libinput.pri
@@ -0,0 +1,21 @@
+HEADERS += \
+ $$PWD/qlibinputhandler_p.h \
+ $$PWD/qlibinputpointer_p.h \
+ $$PWD/qlibinputkeyboard_p.h \
+ $$PWD/qlibinputtouch_p.h
+
+SOURCES += \
+ $$PWD/qlibinputhandler.cpp \
+ $$PWD/qlibinputpointer.cpp \
+ $$PWD/qlibinputkeyboard.cpp \
+ $$PWD/qlibinputtouch.cpp
+
+INCLUDEPATH += $$QMAKE_INCDIR_LIBUDEV $$QMAKE_INCDIR_LIBINPUT
+LIBS_PRIVATE += $$QMAKE_LIBS_LIBUDEV $$QMAKE_LIBS_LIBINPUT
+
+contains(QT_CONFIG, xkbcommon-evdev) {
+ INCLUDEPATH += $$QMAKE_INCDIR_XKBCOMMON_EVDEV
+ LIBS_PRIVATE += $$QMAKE_LIBS_XKBCOMMON_EVDEV
+} else {
+ DEFINES += QT_NO_XKBCOMMON_EVDEV
+}
diff --git a/src/platformsupport/input/libinput/qlibinputhandler.cpp b/src/platformsupport/input/libinput/qlibinputhandler.cpp
new file mode 100644
index 0000000000..557c6eb435
--- /dev/null
+++ b/src/platformsupport/input/libinput/qlibinputhandler.cpp
@@ -0,0 +1,188 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the plugins module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL21$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 or version 3 as published by the Free
+** Software Foundation and appearing in the file LICENSE.LGPLv21 and
+** LICENSE.LGPLv3 included in the packaging of this file. Please review the
+** following information to ensure the GNU Lesser General Public License
+** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qlibinputhandler_p.h"
+#include <libudev.h>
+#include <libinput.h>
+#include <QtCore/QLoggingCategory>
+#include <QtCore/QSocketNotifier>
+#include <QtCore/private/qcore_unix_p.h>
+
+QT_BEGIN_NAMESPACE
+
+Q_LOGGING_CATEGORY(qLcInput, "qt.qpa.input")
+
+static int liOpen(const char *path, int flags, void *user_data)
+{
+ Q_UNUSED(user_data);
+ return qt_safe_open(path, flags);
+}
+
+static void liClose(int fd, void *user_data)
+{
+ Q_UNUSED(user_data);
+ qt_safe_close(fd);
+}
+
+static const struct libinput_interface liInterface = {
+ liOpen,
+ liClose
+};
+
+static void liLogHandler(libinput *libinput, libinput_log_priority priority, const char *format, va_list args)
+{
+ Q_UNUSED(libinput);
+ Q_UNUSED(priority);
+
+ char buf[512];
+ int n = vsnprintf(buf, sizeof(buf), format, args);
+ if (n > 0) {
+ if (buf[n - 1] == '\n')
+ buf[n - 1] = '\0';
+ qCDebug(qLcInput, "libinput: %s", buf);
+ }
+}
+
+QLibInputHandler::QLibInputHandler(const QString &key, const QString &spec)
+{
+ Q_UNUSED(key);
+ Q_UNUSED(spec);
+
+ m_udev = udev_new();
+ if (!m_udev)
+ qFatal("Failed to get udev context for libinput");
+
+ m_li = libinput_udev_create_context(&liInterface, Q_NULLPTR, m_udev);
+ if (!m_li)
+ qFatal("Failed to get libinput context");
+
+ libinput_log_set_handler(m_li, liLogHandler);
+ if (qLcInput().isDebugEnabled())
+ libinput_log_set_priority(m_li, LIBINPUT_LOG_PRIORITY_DEBUG);
+
+ if (libinput_udev_assign_seat(m_li, "seat0"))
+ qFatal("Failed to assign seat");
+
+ m_liFd = libinput_get_fd(m_li);
+ m_notifier = new QSocketNotifier(m_liFd, QSocketNotifier::Read);
+ connect(m_notifier, SIGNAL(activated(int)), SLOT(onReadyRead()));
+
+ // Process the initial burst of DEVICE_ADDED events.
+ onReadyRead();
+}
+
+QLibInputHandler::~QLibInputHandler()
+{
+ delete m_notifier;
+
+ if (m_li)
+ libinput_unref(m_li);
+
+ if (m_udev)
+ udev_unref(m_udev);
+}
+
+void QLibInputHandler::onReadyRead()
+{
+ if (libinput_dispatch(m_li)) {
+ qWarning("libinput_dispatch failed");
+ return;
+ }
+
+ libinput_event *ev;
+ while ((ev = libinput_get_event(m_li)) != Q_NULLPTR) {
+ processEvent(ev);
+ libinput_event_destroy(ev);
+ }
+}
+
+void QLibInputHandler::processEvent(libinput_event *ev)
+{
+ libinput_event_type type = libinput_event_get_type(ev);
+ libinput_device *dev = libinput_event_get_device(ev);
+
+ switch (type) {
+ case LIBINPUT_EVENT_DEVICE_ADDED:
+ {
+ // This is not just for hotplugging, it is also called for each input
+ // device libinput reads from on startup. Hence it is suitable for doing
+ // touch device registration.
+ const char *sysname = libinput_device_get_sysname(dev); // node name without path
+ const char *name = libinput_device_get_name(dev);
+ emit deviceAdded(QString::fromUtf8(sysname), QString::fromUtf8(name));
+ if (libinput_device_has_capability(dev, LIBINPUT_DEVICE_CAP_TOUCH))
+ m_touch.registerDevice(dev);
+ break;
+ }
+ case LIBINPUT_EVENT_DEVICE_REMOVED:
+ {
+ const char *sysname = libinput_device_get_sysname(dev);
+ const char *name = libinput_device_get_name(dev);
+ emit deviceRemoved(QString::fromUtf8(sysname), QString::fromUtf8(name));
+ if (libinput_device_has_capability(dev, LIBINPUT_DEVICE_CAP_TOUCH))
+ m_touch.unregisterDevice(dev);
+ break;
+ }
+ case LIBINPUT_EVENT_POINTER_BUTTON:
+ m_pointer.processButton(libinput_event_get_pointer_event(ev));
+ break;
+ case LIBINPUT_EVENT_POINTER_MOTION:
+ m_pointer.processMotion(libinput_event_get_pointer_event(ev));
+ break;
+ case LIBINPUT_EVENT_POINTER_AXIS:
+ m_pointer.processAxis(libinput_event_get_pointer_event(ev));
+ break;
+ case LIBINPUT_EVENT_KEYBOARD_KEY:
+ m_keyboard.processKey(libinput_event_get_keyboard_event(ev));
+ break;
+ case LIBINPUT_EVENT_TOUCH_DOWN:
+ m_touch.processTouchDown(libinput_event_get_touch_event(ev));
+ break;
+ case LIBINPUT_EVENT_TOUCH_MOTION:
+ m_touch.processTouchMotion(libinput_event_get_touch_event(ev));
+ break;
+ case LIBINPUT_EVENT_TOUCH_UP:
+ m_touch.processTouchUp(libinput_event_get_touch_event(ev));
+ break;
+ case LIBINPUT_EVENT_TOUCH_CANCEL:
+ m_touch.processTouchCancel(libinput_event_get_touch_event(ev));
+ break;
+ case LIBINPUT_EVENT_TOUCH_FRAME:
+ m_touch.processTouchFrame(libinput_event_get_touch_event(ev));
+ break;
+ default:
+ break;
+ }
+}
+
+QT_END_NAMESPACE
diff --git a/src/platformsupport/input/libinput/qlibinputhandler_p.h b/src/platformsupport/input/libinput/qlibinputhandler_p.h
new file mode 100644
index 0000000000..b6c88111af
--- /dev/null
+++ b/src/platformsupport/input/libinput/qlibinputhandler_p.h
@@ -0,0 +1,90 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the plugins module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL21$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 or version 3 as published by the Free
+** Software Foundation and appearing in the file LICENSE.LGPLv21 and
+** LICENSE.LGPLv3 included in the packaging of this file. Please review the
+** following information to ensure the GNU Lesser General Public License
+** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QLIBINPUTHANDLER_P_H
+#define QLIBINPUTHANDLER_P_H
+
+#include <QtCore/QObject>
+#include "qlibinputpointer_p.h"
+#include "qlibinputkeyboard_p.h"
+#include "qlibinputtouch_p.h"
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+//
+
+struct udev;
+struct libinput;
+struct libinput_event;
+
+QT_BEGIN_NAMESPACE
+
+class QSocketNotifier;
+
+class QLibInputHandler : public QObject
+{
+ Q_OBJECT
+
+public:
+ QLibInputHandler(const QString &key, const QString &spec);
+ ~QLibInputHandler();
+
+signals:
+ void deviceAdded(const QString &sysname, const QString &name);
+ void deviceRemoved(const QString &sysname, const QString &name);
+
+private slots:
+ void onReadyRead();
+
+private:
+ void processEvent(libinput_event *ev);
+
+ udev *m_udev;
+ libinput *m_li;
+ int m_liFd;
+ QSocketNotifier *m_notifier;
+ QLibInputPointer m_pointer;
+ QLibInputKeyboard m_keyboard;
+ QLibInputTouch m_touch;
+};
+
+QT_END_NAMESPACE
+
+#endif
diff --git a/src/platformsupport/input/libinput/qlibinputkeyboard.cpp b/src/platformsupport/input/libinput/qlibinputkeyboard.cpp
new file mode 100644
index 0000000000..41c849e8a5
--- /dev/null
+++ b/src/platformsupport/input/libinput/qlibinputkeyboard.cpp
@@ -0,0 +1,279 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the plugins module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL21$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 or version 3 as published by the Free
+** Software Foundation and appearing in the file LICENSE.LGPLv21 and
+** LICENSE.LGPLv3 included in the packaging of this file. Please review the
+** following information to ensure the GNU Lesser General Public License
+** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qlibinputkeyboard_p.h"
+#include <QtCore/QTextCodec>
+#include <qpa/qwindowsysteminterface.h>
+#include <libinput.h>
+#ifndef QT_NO_XKBCOMMON_EVDEV
+#include <xkbcommon/xkbcommon-keysyms.h>
+#include <xkbcommon/xkbcommon-names.h>
+#endif
+
+QT_BEGIN_NAMESPACE
+
+const int REPEAT_DELAY = 500;
+const int REPEAT_RATE = 100;
+
+#ifndef QT_NO_XKBCOMMON_EVDEV
+struct KeyTabEntry {
+ int xkbkey;
+ int qtkey;
+};
+
+static inline bool operator==(const KeyTabEntry &a, const KeyTabEntry &b)
+{
+ return a.xkbkey == b.xkbkey;
+}
+
+static const KeyTabEntry keyTab[] = {
+ { XKB_KEY_Escape, Qt::Key_Escape },
+ { XKB_KEY_Tab, Qt::Key_Tab },
+ { XKB_KEY_ISO_Left_Tab, Qt::Key_Backtab },
+ { XKB_KEY_BackSpace, Qt::Key_Backspace },
+ { XKB_KEY_Return, Qt::Key_Return },
+ { XKB_KEY_Insert, Qt::Key_Insert },
+ { XKB_KEY_Delete, Qt::Key_Delete },
+ { XKB_KEY_Clear, Qt::Key_Delete },
+ { XKB_KEY_Pause, Qt::Key_Pause },
+ { XKB_KEY_Print, Qt::Key_Print },
+
+ { XKB_KEY_Home, Qt::Key_Home },
+ { XKB_KEY_End, Qt::Key_End },
+ { XKB_KEY_Left, Qt::Key_Left },
+ { XKB_KEY_Up, Qt::Key_Up },
+ { XKB_KEY_Right, Qt::Key_Right },
+ { XKB_KEY_Down, Qt::Key_Down },
+ { XKB_KEY_Prior, Qt::Key_PageUp },
+ { XKB_KEY_Next, Qt::Key_PageDown },
+
+ { XKB_KEY_Shift_L, Qt::Key_Shift },
+ { XKB_KEY_Shift_R, Qt::Key_Shift },
+ { XKB_KEY_Shift_Lock, Qt::Key_Shift },
+ { XKB_KEY_Control_L, Qt::Key_Control },
+ { XKB_KEY_Control_R, Qt::Key_Control },
+ { XKB_KEY_Meta_L, Qt::Key_Meta },
+ { XKB_KEY_Meta_R, Qt::Key_Meta },
+ { XKB_KEY_Alt_L, Qt::Key_Alt },
+ { XKB_KEY_Alt_R, Qt::Key_Alt },
+ { XKB_KEY_Caps_Lock, Qt::Key_CapsLock },
+ { XKB_KEY_Num_Lock, Qt::Key_NumLock },
+ { XKB_KEY_Scroll_Lock, Qt::Key_ScrollLock },
+ { XKB_KEY_Super_L, Qt::Key_Super_L },
+ { XKB_KEY_Super_R, Qt::Key_Super_R },
+ { XKB_KEY_Menu, Qt::Key_Menu },
+ { XKB_KEY_Hyper_L, Qt::Key_Hyper_L },
+ { XKB_KEY_Hyper_R, Qt::Key_Hyper_R },
+ { XKB_KEY_Help, Qt::Key_Help },
+
+ { XKB_KEY_KP_Space, Qt::Key_Space },
+ { XKB_KEY_KP_Tab, Qt::Key_Tab },
+ { XKB_KEY_KP_Enter, Qt::Key_Enter },
+ { XKB_KEY_KP_Home, Qt::Key_Home },
+ { XKB_KEY_KP_Left, Qt::Key_Left },
+ { XKB_KEY_KP_Up, Qt::Key_Up },
+ { XKB_KEY_KP_Right, Qt::Key_Right },
+ { XKB_KEY_KP_Down, Qt::Key_Down },
+ { XKB_KEY_KP_Prior, Qt::Key_PageUp },
+ { XKB_KEY_KP_Next, Qt::Key_PageDown },
+ { XKB_KEY_KP_End, Qt::Key_End },
+ { XKB_KEY_KP_Begin, Qt::Key_Clear },
+ { XKB_KEY_KP_Insert, Qt::Key_Insert },
+ { XKB_KEY_KP_Delete, Qt::Key_Delete },
+ { XKB_KEY_KP_Equal, Qt::Key_Equal },
+ { XKB_KEY_KP_Multiply, Qt::Key_Asterisk },
+ { XKB_KEY_KP_Add, Qt::Key_Plus },
+ { XKB_KEY_KP_Separator, Qt::Key_Comma },
+ { XKB_KEY_KP_Subtract, Qt::Key_Minus },
+ { XKB_KEY_KP_Decimal, Qt::Key_Period },
+ { XKB_KEY_KP_Divide, Qt::Key_Slash },
+};
+#endif
+
+QLibInputKeyboard::QLibInputKeyboard()
+#ifndef QT_NO_XKBCOMMON_EVDEV
+ : m_ctx(0),
+ m_keymap(0),
+ m_state(0)
+#endif
+{
+#ifndef QT_NO_XKBCOMMON_EVDEV
+ m_ctx = xkb_context_new(XKB_CONTEXT_NO_FLAGS);
+ if (!m_ctx) {
+ qWarning("Failed to create xkb context");
+ return;
+ }
+ m_keymap = xkb_keymap_new_from_names(m_ctx, Q_NULLPTR, XKB_KEYMAP_COMPILE_NO_FLAGS);
+ if (!m_keymap) {
+ qWarning("Failed to compile keymap");
+ return;
+ }
+ m_state = xkb_state_new(m_keymap);
+ if (!m_state) {
+ qWarning("Failed to create xkb state");
+ return;
+ }
+ m_modindex[0] = xkb_keymap_mod_get_index(m_keymap, XKB_MOD_NAME_CTRL);
+ m_modindex[1] = xkb_keymap_mod_get_index(m_keymap, XKB_MOD_NAME_ALT);
+ m_modindex[2] = xkb_keymap_mod_get_index(m_keymap, XKB_MOD_NAME_SHIFT);
+ m_modindex[3] = xkb_keymap_mod_get_index(m_keymap, XKB_MOD_NAME_LOGO);
+
+ m_repeatTimer.setSingleShot(true);
+ connect(&m_repeatTimer, &QTimer::timeout, this, &QLibInputKeyboard::handleRepeat);
+#endif
+}
+
+QLibInputKeyboard::~QLibInputKeyboard()
+{
+#ifndef QT_NO_XKBCOMMON_EVDEV
+ if (m_state)
+ xkb_state_unref(m_state);
+ if (m_keymap)
+ xkb_keymap_unref(m_keymap);
+ if (m_ctx)
+ xkb_context_unref(m_ctx);
+#endif
+}
+
+void QLibInputKeyboard::processKey(libinput_event_keyboard *e)
+{
+#ifndef QT_NO_XKBCOMMON_EVDEV
+ if (!m_ctx || !m_keymap || !m_state)
+ return;
+
+ const uint32_t k = libinput_event_keyboard_get_key(e) + 8;
+ const bool pressed = libinput_event_keyboard_get_key_state(e) == LIBINPUT_KEY_STATE_PRESSED;
+
+ QByteArray chars;
+ chars.resize(1 + xkb_state_key_get_utf8(m_state, k, Q_NULLPTR, 0));
+ xkb_state_key_get_utf8(m_state, k, chars.data(), chars.size());
+ const QString text = QString::fromUtf8(chars);
+
+ const xkb_keysym_t sym = xkb_state_key_get_one_sym(m_state, k);
+
+ Qt::KeyboardModifiers mods = Qt::NoModifier;
+ const int qtkey = keysymToQtKey(sym, &mods, text);
+
+ xkb_state_component modtype = xkb_state_component(XKB_STATE_MODS_DEPRESSED | XKB_STATE_MODS_LATCHED);
+ if (xkb_state_mod_index_is_active(m_state, m_modindex[0], modtype) && (qtkey != Qt::Key_Control || !pressed))
+ mods |= Qt::ControlModifier;
+ if (xkb_state_mod_index_is_active(m_state, m_modindex[1], modtype) && (qtkey != Qt::Key_Alt || !pressed))
+ mods |= Qt::AltModifier;
+ if (xkb_state_mod_index_is_active(m_state, m_modindex[2], modtype) && (qtkey != Qt::Key_Shift || !pressed))
+ mods |= Qt::ShiftModifier;
+ if (xkb_state_mod_index_is_active(m_state, m_modindex[3], modtype) && (qtkey != Qt::Key_Meta || !pressed))
+ mods |= Qt::MetaModifier;
+
+ xkb_state_update_key(m_state, k, pressed ? XKB_KEY_DOWN : XKB_KEY_UP);
+
+ QWindowSystemInterface::handleExtendedKeyEvent(Q_NULLPTR,
+ pressed ? QEvent::KeyPress : QEvent::KeyRelease,
+ qtkey, mods, k, sym, mods, text);
+
+ if (pressed && xkb_keymap_key_repeats(m_keymap, k)) {
+ m_repeatData.qtkey = qtkey;
+ m_repeatData.mods = mods;
+ m_repeatData.nativeScanCode = k;
+ m_repeatData.virtualKey = sym;
+ m_repeatData.nativeMods = mods;
+ m_repeatData.unicodeText = text;
+ m_repeatData.repeatCount = 1;
+ m_repeatTimer.setInterval(REPEAT_DELAY);
+ m_repeatTimer.start();
+ } else if (m_repeatTimer.isActive()) {
+ m_repeatTimer.stop();
+ }
+
+#else
+ Q_UNUSED(e);
+#endif
+}
+
+#ifndef QT_NO_XKBCOMMON_EVDEV
+void QLibInputKeyboard::handleRepeat()
+{
+ QWindowSystemInterface::handleExtendedKeyEvent(Q_NULLPTR, QEvent::KeyPress,
+ m_repeatData.qtkey, m_repeatData.mods,
+ m_repeatData.nativeScanCode, m_repeatData.virtualKey, m_repeatData.nativeMods,
+ m_repeatData.unicodeText, true, m_repeatData.repeatCount);
+ m_repeatData.repeatCount += 1;
+ m_repeatTimer.setInterval(REPEAT_RATE);
+ m_repeatTimer.start();
+}
+
+int QLibInputKeyboard::keysymToQtKey(xkb_keysym_t key) const
+{
+ const size_t elemCount = sizeof(keyTab) / sizeof(KeyTabEntry);
+ KeyTabEntry e;
+ e.xkbkey = key;
+ const KeyTabEntry *result = std::find(keyTab, keyTab + elemCount, e);
+ return result != keyTab + elemCount ? result->qtkey : 0;
+}
+
+int QLibInputKeyboard::keysymToQtKey(xkb_keysym_t keysym, Qt::KeyboardModifiers *modifiers, const QString &text) const
+{
+ int code = 0;
+#ifndef QT_NO_TEXTCODEC
+ QTextCodec *systemCodec = QTextCodec::codecForLocale();
+#endif
+ if (keysym < 128 || (keysym < 256
+#ifndef QT_NO_TEXTCODEC
+ && systemCodec->mibEnum() == 4
+#endif
+ )) {
+ // upper-case key, if known
+ code = isprint((int)keysym) ? toupper((int)keysym) : 0;
+ } else if (keysym >= XKB_KEY_F1 && keysym <= XKB_KEY_F35) {
+ // function keys
+ code = Qt::Key_F1 + ((int)keysym - XKB_KEY_F1);
+ } else if (keysym >= XKB_KEY_KP_Space && keysym <= XKB_KEY_KP_9) {
+ if (keysym >= XKB_KEY_KP_0) {
+ // numeric keypad keys
+ code = Qt::Key_0 + ((int)keysym - XKB_KEY_KP_0);
+ } else {
+ code = keysymToQtKey(keysym);
+ }
+ *modifiers |= Qt::KeypadModifier;
+ } else if (text.length() == 1 && text.unicode()->unicode() > 0x1f
+ && text.unicode()->unicode() != 0x7f
+ && !(keysym >= XKB_KEY_dead_grave && keysym <= XKB_KEY_dead_currency)) {
+ code = text.unicode()->toUpper().unicode();
+ } else {
+ // any other keys
+ code = keysymToQtKey(keysym);
+ }
+ return code;
+}
+#endif
+
+QT_END_NAMESPACE
diff --git a/src/platformsupport/input/libinput/qlibinputkeyboard_p.h b/src/platformsupport/input/libinput/qlibinputkeyboard_p.h
new file mode 100644
index 0000000000..bcd4d23d98
--- /dev/null
+++ b/src/platformsupport/input/libinput/qlibinputkeyboard_p.h
@@ -0,0 +1,98 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the plugins module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL21$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 or version 3 as published by the Free
+** Software Foundation and appearing in the file LICENSE.LGPLv21 and
+** LICENSE.LGPLv3 included in the packaging of this file. Please review the
+** following information to ensure the GNU Lesser General Public License
+** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QLIBINPUTKEYBOARD_P_H
+#define QLIBINPUTKEYBOARD_P_H
+
+#include <QtCore/QPoint>
+#include <QtCore/QTimer>
+
+#ifndef QT_NO_XKBCOMMON_EVDEV
+#include <xkbcommon/xkbcommon.h>
+#endif
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+//
+
+struct libinput_event_keyboard;
+
+QT_BEGIN_NAMESPACE
+
+class QLibInputKeyboard : public QObject
+{
+ Q_OBJECT
+
+public:
+ QLibInputKeyboard();
+ ~QLibInputKeyboard();
+
+ void processKey(libinput_event_keyboard *e);
+
+#ifndef QT_NO_XKBCOMMON_EVDEV
+private slots:
+ void handleRepeat();
+
+private:
+ int keysymToQtKey(xkb_keysym_t key) const;
+ int keysymToQtKey(xkb_keysym_t keysym, Qt::KeyboardModifiers *modifiers, const QString &text) const;
+
+ xkb_context *m_ctx;
+ xkb_keymap *m_keymap;
+ xkb_state *m_state;
+ xkb_mod_index_t m_modindex[4];
+
+ QTimer m_repeatTimer;
+
+ struct {
+ int qtkey;
+ Qt::KeyboardModifiers mods;
+ int nativeScanCode;
+ int virtualKey;
+ int nativeMods;
+ QString unicodeText;
+ int repeatCount;
+ } m_repeatData;
+#endif
+};
+
+QT_END_NAMESPACE
+
+#endif
diff --git a/src/platformsupport/input/libinput/qlibinputpointer.cpp b/src/platformsupport/input/libinput/qlibinputpointer.cpp
new file mode 100644
index 0000000000..28e5529b3c
--- /dev/null
+++ b/src/platformsupport/input/libinput/qlibinputpointer.cpp
@@ -0,0 +1,101 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the plugins module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL21$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 or version 3 as published by the Free
+** Software Foundation and appearing in the file LICENSE.LGPLv21 and
+** LICENSE.LGPLv3 included in the packaging of this file. Please review the
+** following information to ensure the GNU Lesser General Public License
+** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qlibinputpointer_p.h"
+#include <libinput.h>
+#include <QtGui/QGuiApplication>
+#include <QtGui/QScreen>
+#include <qpa/qwindowsysteminterface.h>
+
+QT_BEGIN_NAMESPACE
+
+QLibInputPointer::QLibInputPointer()
+ : m_buttons(Qt::NoButton)
+{
+}
+
+void QLibInputPointer::processButton(libinput_event_pointer *e)
+{
+ const uint32_t b = libinput_event_pointer_get_button(e);
+ const bool pressed = libinput_event_pointer_get_button_state(e) == LIBINPUT_BUTTON_STATE_PRESSED;
+
+ Qt::MouseButton button = Qt::NoButton;
+ switch (b) {
+ case 0x110: button = Qt::LeftButton; break; // BTN_LEFT
+ case 0x111: button = Qt::RightButton; break;
+ case 0x112: button = Qt::MiddleButton; break;
+ case 0x113: button = Qt::ExtraButton1; break; // AKA Qt::BackButton
+ case 0x114: button = Qt::ExtraButton2; break; // AKA Qt::ForwardButton
+ case 0x115: button = Qt::ExtraButton3; break; // AKA Qt::TaskButton
+ case 0x116: button = Qt::ExtraButton4; break;
+ case 0x117: button = Qt::ExtraButton5; break;
+ case 0x118: button = Qt::ExtraButton6; break;
+ case 0x119: button = Qt::ExtraButton7; break;
+ case 0x11a: button = Qt::ExtraButton8; break;
+ case 0x11b: button = Qt::ExtraButton9; break;
+ case 0x11c: button = Qt::ExtraButton10; break;
+ case 0x11d: button = Qt::ExtraButton11; break;
+ case 0x11e: button = Qt::ExtraButton12; break;
+ case 0x11f: button = Qt::ExtraButton13; break;
+ }
+
+ if (pressed)
+ m_buttons |= button;
+ else
+ m_buttons &= ~button;
+
+ QWindowSystemInterface::handleMouseEvent(Q_NULLPTR, m_pos, m_pos, m_buttons, QGuiApplication::keyboardModifiers());
+}
+
+void QLibInputPointer::processMotion(libinput_event_pointer *e)
+{
+ const double dx = libinput_event_pointer_get_dx(e);
+ const double dy = libinput_event_pointer_get_dy(e);
+ const QRect g = QGuiApplication::primaryScreen()->virtualGeometry();
+
+ m_pos.setX(qBound(g.left(), qRound(m_pos.x() + dx), g.right()));
+ m_pos.setY(qBound(g.top(), qRound(m_pos.y() + dy), g.bottom()));
+
+ QWindowSystemInterface::handleMouseEvent(Q_NULLPTR, m_pos, m_pos, m_buttons, QGuiApplication::keyboardModifiers());
+}
+
+void QLibInputPointer::processAxis(libinput_event_pointer *e)
+{
+ const double v = libinput_event_pointer_get_axis_value(e) * 120;
+ const Qt::Orientation ori = libinput_event_pointer_get_axis(e) == LIBINPUT_POINTER_AXIS_SCROLL_VERTICAL
+ ? Qt::Vertical : Qt::Horizontal;
+
+ QWindowSystemInterface::handleWheelEvent(Q_NULLPTR, m_pos, m_pos, qRound(-v), ori, QGuiApplication::keyboardModifiers());
+}
+
+QT_END_NAMESPACE
diff --git a/src/platformsupport/eglconvenience/qeglcompositor_p.h b/src/platformsupport/input/libinput/qlibinputpointer_p.h
index 1401fbdd55..efc19ab4fd 100644
--- a/src/platformsupport/eglconvenience/qeglcompositor_p.h
+++ b/src/platformsupport/input/libinput/qlibinputpointer_p.h
@@ -3,7 +3,7 @@
** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
-** This file is part of the plugins of the Qt Toolkit.
+** This file is part of the plugins module of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL21$
** Commercial License Usage
@@ -31,8 +31,10 @@
**
****************************************************************************/
-#ifndef QEGLCOMPOSITOR_H
-#define QEGLCOMPOSITOR_H
+#ifndef QLIBINPUTPOINTER_P_H
+#define QLIBINPUTPOINTER_P_H
+
+#include <QtCore/QPoint>
//
// W A R N I N G
@@ -45,39 +47,24 @@
// We mean it.
//
-#include <QtCore/QTimer>
+struct libinput_event_pointer;
QT_BEGIN_NAMESPACE
-class QOpenGLContext;
-class QOpenGLTextureBlitter;
-class QEGLPlatformWindow;
-
-class QEGLCompositor : public QObject
+class QLibInputPointer
{
- Q_OBJECT
-
public:
- void schedule(QOpenGLContext *context, QEGLPlatformWindow *window);
+ QLibInputPointer();
- static QEGLCompositor *instance();
- static void destroy();
-
-private slots:
- void renderAll();
+ void processButton(libinput_event_pointer *e);
+ void processMotion(libinput_event_pointer *e);
+ void processAxis(libinput_event_pointer *e);
private:
- QEGLCompositor();
- ~QEGLCompositor();
-
- void render(QEGLPlatformWindow *window);
-
- QOpenGLContext *m_context;
- QEGLPlatformWindow *m_window;
- QTimer m_updateTimer;
- QOpenGLTextureBlitter *m_blitter;
+ QPoint m_pos;
+ Qt::MouseButtons m_buttons;
};
QT_END_NAMESPACE
-#endif // QEGLCOMPOSITOR_H
+#endif
diff --git a/src/platformsupport/input/libinput/qlibinputtouch.cpp b/src/platformsupport/input/libinput/qlibinputtouch.cpp
new file mode 100644
index 0000000000..ed453a6a9a
--- /dev/null
+++ b/src/platformsupport/input/libinput/qlibinputtouch.cpp
@@ -0,0 +1,165 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the plugins module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL21$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 or version 3 as published by the Free
+** Software Foundation and appearing in the file LICENSE.LGPLv21 and
+** LICENSE.LGPLv3 included in the packaging of this file. Please review the
+** following information to ensure the GNU Lesser General Public License
+** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qlibinputtouch_p.h"
+#include <libinput.h>
+#include <QtGui/QGuiApplication>
+#include <QtGui/QScreen>
+
+QT_BEGIN_NAMESPACE
+
+QWindowSystemInterface::TouchPoint *QLibInputTouch::DeviceState::point(int32_t slot)
+{
+ const int id = qMax(0, slot);
+
+ for (int i = 0; i < m_points.count(); ++i)
+ if (m_points.at(i).id == id)
+ return &m_points[i];
+
+ return Q_NULLPTR;
+}
+
+QLibInputTouch::DeviceState *QLibInputTouch::deviceState(libinput_event_touch *e)
+{
+ libinput_device *dev = libinput_event_get_device(libinput_event_touch_get_base_event(e));
+ return &m_devState[dev];
+}
+
+static inline QPointF getPos(libinput_event_touch *e)
+{
+ const QSize screenSize = QGuiApplication::primaryScreen()->geometry().size();
+ const double x = libinput_event_touch_get_x_transformed(e, screenSize.width());
+ const double y = libinput_event_touch_get_y_transformed(e, screenSize.height());
+ return QPointF(x, y);
+}
+
+void QLibInputTouch::registerDevice(libinput_device *dev)
+{
+ QTouchDevice *&td = m_devState[dev].m_touchDevice;
+ td = new QTouchDevice;
+ td->setName(QString::fromUtf8(libinput_device_get_name(dev)));
+ td->setType(QTouchDevice::TouchScreen);
+ td->setCapabilities(QTouchDevice::Position | QTouchDevice::Area);
+ QWindowSystemInterface::registerTouchDevice(td);
+}
+
+void QLibInputTouch::unregisterDevice(libinput_device *dev)
+{
+ Q_UNUSED(dev);
+ // There is no way to remove a QTouchDevice.
+}
+
+void QLibInputTouch::processTouchDown(libinput_event_touch *e)
+{
+ int slot = libinput_event_touch_get_slot(e);
+ DeviceState *state = deviceState(e);
+ QWindowSystemInterface::TouchPoint *tp = state->point(slot);
+ if (tp) {
+ qWarning("Incorrect touch state");
+ } else {
+ QWindowSystemInterface::TouchPoint newTp;
+ newTp.id = qMax(0, slot);
+ newTp.state = Qt::TouchPointPressed;
+ newTp.area = QRect(0, 0, 8, 8);
+ newTp.area.moveCenter(getPos(e));
+ state->m_points.append(newTp);
+ }
+}
+
+void QLibInputTouch::processTouchMotion(libinput_event_touch *e)
+{
+ int slot = libinput_event_touch_get_slot(e);
+ DeviceState *state = deviceState(e);
+ QWindowSystemInterface::TouchPoint *tp = state->point(slot);
+ if (tp) {
+ const QPointF p = getPos(e);
+ if (tp->area.center() != p) {
+ tp->area.moveCenter(p);
+ // 'down' may be followed by 'motion' within the same "frame".
+ // Handle this by compressing and keeping the Pressed state until the 'frame'.
+ if (tp->state != Qt::TouchPointPressed)
+ tp->state = Qt::TouchPointMoved;
+ } else {
+ tp->state = Qt::TouchPointStationary;
+ }
+ } else {
+ qWarning("Inconsistent touch state (got 'motion' without 'down')");
+ }
+}
+
+void QLibInputTouch::processTouchUp(libinput_event_touch *e)
+{
+ int slot = libinput_event_touch_get_slot(e);
+ DeviceState *state = deviceState(e);
+ QWindowSystemInterface::TouchPoint *tp = state->point(slot);
+ if (tp) {
+ tp->state = Qt::TouchPointReleased;
+ // There may not be a Frame event after the last Up. Work this around.
+ Qt::TouchPointStates s = 0;
+ for (int i = 0; i < state->m_points.count(); ++i)
+ s |= state->m_points.at(i).state;
+ if (s == Qt::TouchPointReleased)
+ processTouchFrame(e);
+ } else {
+ qWarning("Inconsistent touch state (got 'up' without 'down')");
+ }
+}
+
+void QLibInputTouch::processTouchCancel(libinput_event_touch *e)
+{
+ DeviceState *state = deviceState(e);
+ if (state->m_touchDevice)
+ QWindowSystemInterface::handleTouchCancelEvent(Q_NULLPTR, state->m_touchDevice, QGuiApplication::keyboardModifiers());
+ else
+ qWarning("TouchCancel without registered device");
+}
+
+void QLibInputTouch::processTouchFrame(libinput_event_touch *e)
+{
+ DeviceState *state = deviceState(e);
+ if (state->m_touchDevice && !state->m_points.isEmpty()) {
+ QWindowSystemInterface::handleTouchEvent(Q_NULLPTR, state->m_touchDevice, state->m_points,
+ QGuiApplication::keyboardModifiers());
+ for (int i = 0; i < state->m_points.count(); ++i) {
+ QWindowSystemInterface::TouchPoint &tp(state->m_points[i]);
+ if (tp.state == Qt::TouchPointReleased)
+ state->m_points.removeAt(i--);
+ else if (tp.state == Qt::TouchPointPressed)
+ tp.state = Qt::TouchPointStationary;
+ }
+ } else {
+ qWarning("TouchFrame without registered device");
+ }
+}
+
+QT_END_NAMESPACE
diff --git a/src/platformsupport/input/libinput/qlibinputtouch_p.h b/src/platformsupport/input/libinput/qlibinputtouch_p.h
new file mode 100644
index 0000000000..dceea5600c
--- /dev/null
+++ b/src/platformsupport/input/libinput/qlibinputtouch_p.h
@@ -0,0 +1,83 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the plugins module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL21$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 or version 3 as published by the Free
+** Software Foundation and appearing in the file LICENSE.LGPLv21 and
+** LICENSE.LGPLv3 included in the packaging of this file. Please review the
+** following information to ensure the GNU Lesser General Public License
+** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QLIBINPUTTOUCH_P_H
+#define QLIBINPUTTOUCH_P_H
+
+#include <QtCore/QHash>
+#include <QtCore/QList>
+#include <qpa/qwindowsysteminterface.h>
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+//
+
+struct libinput_event_touch;
+struct libinput_device;
+
+QT_BEGIN_NAMESPACE
+
+class QLibInputTouch
+{
+public:
+ void registerDevice(libinput_device *dev);
+ void unregisterDevice(libinput_device *dev);
+ void processTouchDown(libinput_event_touch *e);
+ void processTouchMotion(libinput_event_touch *e);
+ void processTouchUp(libinput_event_touch *e);
+ void processTouchCancel(libinput_event_touch *e);
+ void processTouchFrame(libinput_event_touch *e);
+
+private:
+ struct DeviceState {
+ DeviceState() : m_touchDevice(0) { }
+ QWindowSystemInterface::TouchPoint *point(int32_t slot);
+ QList<QWindowSystemInterface::TouchPoint> m_points;
+ QTouchDevice *m_touchDevice;
+ };
+
+ DeviceState *deviceState(libinput_event_touch *e);
+
+ QHash<libinput_device *, DeviceState> m_devState;
+};
+
+QT_END_NAMESPACE
+
+#endif
diff --git a/src/plugins/generic/tslib/qtslib.cpp b/src/platformsupport/input/tslib/qtslib.cpp
index a8f60b69ff..e75fd9e691 100644
--- a/src/plugins/generic/tslib/qtslib.cpp
+++ b/src/platformsupport/input/tslib/qtslib.cpp
@@ -3,7 +3,7 @@
** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
-** This file is part of the QtGui module of the Qt Toolkit.
+** This file is part of the plugins module of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL21$
** Commercial License Usage
@@ -31,32 +31,34 @@
**
****************************************************************************/
-
-#include "qtslib.h"
-
+#include "qtslib_p.h"
#include <QSocketNotifier>
#include <QStringList>
#include <QPoint>
+#include <QLoggingCategory>
+
#include <qpa/qwindowsysteminterface.h>
#include <errno.h>
#include <tslib.h>
-#include <qdebug.h>
-
QT_BEGIN_NAMESPACE
+Q_LOGGING_CATEGORY(qLcTsLib, "qt.qpa.input")
+
QTsLibMouseHandler::QTsLibMouseHandler(const QString &key,
- const QString &specification)
- : m_notify(0), m_x(0), m_y(0), m_pressed(0), m_rawMode(false)
+ const QString &specification,
+ QObject *parent)
+ : QObject(parent),
+ m_notify(0), m_x(0), m_y(0), m_pressed(0), m_rawMode(false)
{
- qDebug() << "QTsLibMouseHandler" << key << specification;
+ qCDebug(qLcTsLib) << "Initializing tslib plugin" << key << specification;
setObjectName(QLatin1String("TSLib Mouse Handler"));
QByteArray device = qgetenv("TSLIB_TSDEVICE");
- if (specification.startsWith("/dev/"))
+ if (specification.startsWith(QStringLiteral("/dev/")))
device = specification.toLocal8Bit();
if (device.isEmpty())
@@ -69,27 +71,26 @@ QTsLibMouseHandler::QTsLibMouseHandler(const QString &key,
}
if (ts_config(m_dev))
- perror("Error configuring\n");
+ qErrnoWarning(errno, "ts_config() failed");
- m_rawMode = !key.compare(QLatin1String("TslibRaw"), Qt::CaseInsensitive);
+ m_rawMode = !key.compare(QLatin1String("TslibRaw"), Qt::CaseInsensitive);
int fd = ts_fd(m_dev);
if (fd >= 0) {
+ qCDebug(qLcTsLib) << "tslib device is" << device;
m_notify = new QSocketNotifier(fd, QSocketNotifier::Read, this);
connect(m_notify, SIGNAL(activated(int)), this, SLOT(readMouseData()));
} else {
- qWarning("Cannot open mouse input device '%s': %s", device.constData(), strerror(errno));
+ qErrnoWarning(errno, "tslib: Cannot open input device %s", device.constData());
}
}
-
QTsLibMouseHandler::~QTsLibMouseHandler()
{
if (m_dev)
ts_close(m_dev);
}
-
static bool get_sample(struct tsdev *dev, struct ts_sample *sample, bool rawMode)
{
if (rawMode)
@@ -98,7 +99,6 @@ static bool get_sample(struct tsdev *dev, struct ts_sample *sample, bool rawMode
return (ts_read(dev, sample, 1) == 1);
}
-
void QTsLibMouseHandler::readMouseData()
{
ts_sample sample;
@@ -123,8 +123,6 @@ void QTsLibMouseHandler::readMouseData()
}
QPoint pos(x, y);
- //printf("handleMouseEvent %d %d %d %ld\n", m_x, m_y, pressed, sample.tv.tv_usec);
-
QWindowSystemInterface::handleMouseEvent(0, pos, pos, pressed ? Qt::LeftButton : Qt::NoButton);
m_x = x;
diff --git a/src/plugins/generic/tslib/qtslib.h b/src/platformsupport/input/tslib/qtslib_p.h
index cd11ca5e2f..4bcefb6cb9 100644
--- a/src/plugins/generic/tslib/qtslib.h
+++ b/src/platformsupport/input/tslib/qtslib_p.h
@@ -3,7 +3,7 @@
** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
-** This file is part of the QtGui module of the Qt Toolkit.
+** This file is part of the plugins module of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL21$
** Commercial License Usage
@@ -34,19 +34,20 @@
#ifndef QTSLIB_H
#define QTSLIB_H
-#include <qobject.h>
-//#include <Qt>
+#include <QObject>
+
+struct tsdev;
QT_BEGIN_NAMESPACE
class QSocketNotifier;
-struct tsdev;
class QTsLibMouseHandler : public QObject
{
Q_OBJECT
+
public:
- QTsLibMouseHandler(const QString &key, const QString &specification);
+ QTsLibMouseHandler(const QString &key, const QString &specification, QObject *parent = 0);
~QTsLibMouseHandler();
private slots:
diff --git a/src/platformsupport/input/tslib/tslib.pri b/src/platformsupport/input/tslib/tslib.pri
new file mode 100644
index 0000000000..c9fef1ca8f
--- /dev/null
+++ b/src/platformsupport/input/tslib/tslib.pri
@@ -0,0 +1,7 @@
+HEADERS += \
+ $$PWD/qtslib_p.h
+
+SOURCES += \
+ $$PWD/qtslib.cpp
+
+LIBS += -lts
diff --git a/src/platformsupport/linuxaccessibility/application.cpp b/src/platformsupport/linuxaccessibility/application.cpp
index 2ee6b0a203..3e7fd45a09 100644
--- a/src/platformsupport/linuxaccessibility/application.cpp
+++ b/src/platformsupport/linuxaccessibility/application.cpp
@@ -38,6 +38,7 @@
#include <QtDBus/qdbuspendingreply.h>
#include <qdebug.h>
+#ifndef QT_NO_ACCESSIBILITY
#include "deviceeventcontroller_adaptor.h"
#include "atspi/atspi-constants.h"
@@ -229,3 +230,5 @@ void QSpiApplicationAdaptor::notifyKeyboardListenerError(const QDBusError& error
}
QT_END_NAMESPACE
+
+#endif //QT_NO_ACCESSIBILITY
diff --git a/src/platformsupport/linuxaccessibility/application_p.h b/src/platformsupport/linuxaccessibility/application_p.h
index d42f6e3ab0..b3e5ebbfde 100644
--- a/src/platformsupport/linuxaccessibility/application_p.h
+++ b/src/platformsupport/linuxaccessibility/application_p.h
@@ -50,6 +50,8 @@
#include <QtDBus/QDBusConnection>
#include <QtGui/QAccessibleInterface>
+#ifndef QT_NO_ACCESSIBILITY
+
QT_BEGIN_NAMESPACE
/*
@@ -86,4 +88,6 @@ private:
QT_END_NAMESPACE
+#endif //QT_NO_ACCESSIBILITY
+
#endif
diff --git a/src/platformsupport/linuxaccessibility/atspiadaptor.cpp b/src/platformsupport/linuxaccessibility/atspiadaptor.cpp
index c3573489e9..7cbda0c745 100644
--- a/src/platformsupport/linuxaccessibility/atspiadaptor.cpp
+++ b/src/platformsupport/linuxaccessibility/atspiadaptor.cpp
@@ -41,6 +41,7 @@
#include <qdebug.h>
+#ifndef QT_NO_ACCESSIBILITY
#include "socket_interface.h"
#include "constant_mappings_p.h"
#include "../accessibility/qaccessiblebridgeutils_p.h"
@@ -2356,3 +2357,4 @@ bool AtSpiAdaptor::tableInterface(QAccessibleInterface *interface, const QString
}
QT_END_NAMESPACE
+#endif //QT_NO_ACCESSIBILITY
diff --git a/src/platformsupport/linuxaccessibility/atspiadaptor_p.h b/src/platformsupport/linuxaccessibility/atspiadaptor_p.h
index fa3f616c91..342d8ba531 100644
--- a/src/platformsupport/linuxaccessibility/atspiadaptor_p.h
+++ b/src/platformsupport/linuxaccessibility/atspiadaptor_p.h
@@ -55,6 +55,7 @@
#include "dbusconnection_p.h"
#include "struct_marshallers_p.h"
+#ifndef QT_NO_ACCESSIBILITY
QT_BEGIN_NAMESPACE
class QAccessibleInterface;
@@ -215,5 +216,6 @@ private:
};
QT_END_NAMESPACE
+#endif //QT_NO_ACCESSIBILITY
#endif
diff --git a/src/platformsupport/linuxaccessibility/bridge.cpp b/src/platformsupport/linuxaccessibility/bridge.cpp
index 6211aa6e5a..4123181da3 100644
--- a/src/platformsupport/linuxaccessibility/bridge.cpp
+++ b/src/platformsupport/linuxaccessibility/bridge.cpp
@@ -44,6 +44,7 @@
#include "dbusconnection_p.h"
#include "struct_marshallers_p.h"
+#ifndef QT_NO_ACCESSIBILITY
#include "deviceeventcontroller_adaptor.h"
QT_BEGIN_NAMESPACE
@@ -264,3 +265,4 @@ void QSpiAccessibleBridge::initializeConstantMappings()
}
QT_END_NAMESPACE
+#endif //QT_NO_ACCESSIBILITY
diff --git a/src/platformsupport/linuxaccessibility/bridge_p.h b/src/platformsupport/linuxaccessibility/bridge_p.h
index 1daaaf92d2..c4bf26b507 100644
--- a/src/platformsupport/linuxaccessibility/bridge_p.h
+++ b/src/platformsupport/linuxaccessibility/bridge_p.h
@@ -51,6 +51,7 @@
class DeviceEventControllerAdaptor;
+#ifndef QT_NO_ACCESSIBILITY
QT_BEGIN_NAMESPACE
class DBusConnection;
@@ -65,7 +66,7 @@ public:
virtual ~QSpiAccessibleBridge();
- virtual void notifyAccessibilityUpdate(QAccessibleEvent *event);
+ virtual void notifyAccessibilityUpdate(QAccessibleEvent *event) Q_DECL_OVERRIDE;
QDBusConnection dBusConnection() const;
public Q_SLOTS:
@@ -82,5 +83,6 @@ private:
};
QT_END_NAMESPACE
+#endif //QT_NO_ACCESSIBILITY
#endif
diff --git a/src/platformsupport/linuxaccessibility/cache.cpp b/src/platformsupport/linuxaccessibility/cache.cpp
index 296858c391..de3d91f0d2 100644
--- a/src/platformsupport/linuxaccessibility/cache.cpp
+++ b/src/platformsupport/linuxaccessibility/cache.cpp
@@ -33,10 +33,11 @@
#include "cache_p.h"
-#include "cache_adaptor.h"
-
#include "bridge_p.h"
+#ifndef QT_NO_ACCESSIBILITY
+#include "cache_adaptor.h"
+
#define QSPI_OBJECT_PATH_CACHE "/org/a11y/atspi/cache"
QT_BEGIN_NAMESPACE
@@ -82,3 +83,4 @@ QSpiAccessibleCacheArray QSpiDBusCache::GetItems()
}
QT_END_NAMESPACE
+#endif //QT_NO_ACCESSIBILITY
diff --git a/src/platformsupport/linuxaccessibility/cache_p.h b/src/platformsupport/linuxaccessibility/cache_p.h
index 300084c493..6fdb813ebf 100644
--- a/src/platformsupport/linuxaccessibility/cache_p.h
+++ b/src/platformsupport/linuxaccessibility/cache_p.h
@@ -49,6 +49,7 @@
#include <QtCore/QObject>
#include "struct_marshallers_p.h"
+#ifndef QT_NO_ACCESSIBILITY
QT_BEGIN_NAMESPACE
class QSpiDBusCache : public QObject
@@ -69,5 +70,6 @@ public Q_SLOTS:
};
QT_END_NAMESPACE
+#endif //QT_NO_ACCESSIBILITY
#endif /* Q_SPI_CACHE_H */
diff --git a/src/platformsupport/linuxaccessibility/constant_mappings.cpp b/src/platformsupport/linuxaccessibility/constant_mappings.cpp
index 78f18124e5..8cfa8086d8 100644
--- a/src/platformsupport/linuxaccessibility/constant_mappings.cpp
+++ b/src/platformsupport/linuxaccessibility/constant_mappings.cpp
@@ -45,6 +45,7 @@
// "ruler" "autocomplete" "edit bar" "embedded component" "entry" "caption"
// "heading" "page" "section" "redundant object" "form" "input method window" "menu"
+#ifndef QT_NO_ACCESSIBILITY
QT_BEGIN_NAMESPACE
QHash <QAccessible::Role, RoleNames> qSpiRoleMapping;
@@ -142,3 +143,4 @@ AtspiRelationType qAccessibleRelationToAtSpiRelation(QAccessible::Relation relat
}
QT_END_NAMESPACE
+#endif //QT_NO_ACCESSIBILITY
diff --git a/src/platformsupport/linuxaccessibility/constant_mappings_p.h b/src/platformsupport/linuxaccessibility/constant_mappings_p.h
index f616b56c3a..da1ebee060 100644
--- a/src/platformsupport/linuxaccessibility/constant_mappings_p.h
+++ b/src/platformsupport/linuxaccessibility/constant_mappings_p.h
@@ -55,6 +55,7 @@
#include <QtGui/QAccessible>
#include <atspi/atspi-constants.h>
+#ifndef QT_NO_ACCESSIBILITY
// interface names from at-spi2-core/atspi/atspi-misc-private.h
#define ATSPI_DBUS_NAME_REGISTRY "org.a11y.atspi.Registry"
@@ -134,5 +135,6 @@ QSpiUIntList spiStateSetFromSpiStates(quint64 states);
AtspiRelationType qAccessibleRelationToAtSpiRelation(QAccessible::Relation relation);
QT_END_NAMESPACE
+#endif //QT_NO_ACCESSIBILITY
#endif /* Q_SPI_CONSTANT_MAPPINGS_H */
diff --git a/src/platformsupport/linuxaccessibility/struct_marshallers.cpp b/src/platformsupport/linuxaccessibility/struct_marshallers.cpp
index 4b3bee8bdb..66fa564a43 100644
--- a/src/platformsupport/linuxaccessibility/struct_marshallers.cpp
+++ b/src/platformsupport/linuxaccessibility/struct_marshallers.cpp
@@ -40,6 +40,7 @@
#include "bridge_p.h"
+#ifndef QT_NO_ACCESSIBILITY
QT_BEGIN_NAMESPACE
QSpiObjectReference::QSpiObjectReference()
@@ -227,3 +228,4 @@ void qSpiInitializeStructTypes()
}
QT_END_NAMESPACE
+#endif //QT_NO_ACCESSIBILITY
diff --git a/src/platformsupport/linuxaccessibility/struct_marshallers_p.h b/src/platformsupport/linuxaccessibility/struct_marshallers_p.h
index 21e2fdefa5..53a3e723b1 100644
--- a/src/platformsupport/linuxaccessibility/struct_marshallers_p.h
+++ b/src/platformsupport/linuxaccessibility/struct_marshallers_p.h
@@ -52,6 +52,7 @@
#include <QtDBus/QDBusConnection>
#include <QtDBus/QDBusObjectPath>
+#ifndef QT_NO_ACCESSIBILITY
QT_BEGIN_NAMESPACE
typedef QList <int> QSpiIntList;
@@ -175,4 +176,5 @@ Q_DECLARE_METATYPE(QSpiAttributeSet)
Q_DECLARE_METATYPE(QSpiAppUpdate)
Q_DECLARE_METATYPE(QSpiDeviceEvent)
+#endif //QT_NO_ACCESSIBILITY
#endif /* Q_SPI_STRUCT_MARSHALLERS_H */
diff --git a/src/platformsupport/platformcompositor/platformcompositor.pri b/src/platformsupport/platformcompositor/platformcompositor.pri
new file mode 100644
index 0000000000..923d7225da
--- /dev/null
+++ b/src/platformsupport/platformcompositor/platformcompositor.pri
@@ -0,0 +1,7 @@
+contains(QT_CONFIG, opengl) {
+ SOURCES += $$PWD/qopenglcompositor.cpp \
+ $$PWD/qopenglcompositorbackingstore.cpp
+
+ HEADERS += $$PWD/qopenglcompositor_p.h \
+ $$PWD/qopenglcompositorbackingstore_p.h
+}
diff --git a/src/platformsupport/eglconvenience/qeglcompositor.cpp b/src/platformsupport/platformcompositor/qopenglcompositor.cpp
index a46e5698de..bcb3f21922 100644
--- a/src/platformsupport/eglconvenience/qeglcompositor.cpp
+++ b/src/platformsupport/platformcompositor/qopenglcompositor.cpp
@@ -32,23 +32,46 @@
****************************************************************************/
#include <QtGui/QOpenGLContext>
-#include <QtGui/QOpenGLShaderProgram>
-#include <QtGui/QOpenGLFramebufferObject>
-#include <QtGui/private/qopengltextureblitter_p.h>
+#include <QtGui/QWindow>
+#include <QtGui/QMatrix4x4>
#include <qpa/qplatformbackingstore.h>
-#include "qeglcompositor_p.h"
-#include "qeglplatformwindow_p.h"
-#include "qeglplatformscreen_p.h"
+#include "qopenglcompositor_p.h"
QT_BEGIN_NAMESPACE
-static QEGLCompositor *compositor = 0;
+/*!
+ \class QOpenGLCompositor
+ \brief A generic OpenGL-based compositor
+ \since 5.4
+ \internal
+ \ingroup qpa
-QEGLCompositor::QEGLCompositor()
+ This class provides a lightweight compositor that maintains the
+ basic stacking order of windows and composites them by drawing
+ textured quads via OpenGL.
+
+ It it meant to be used by platform plugins that run without a
+ windowing system.
+
+ It is up to the platform plugin to manage the lifetime of the
+ compositor (instance(), destroy()), set the correct destination
+ context and window as early as possible (setTargetWindow()),
+ register the composited windows as they are shown, activated,
+ raised and lowered (addWindow(), moveToTop(), etc.), and to
+ schedule repaints (update()).
+
+ \note To get support for QWidget-based windows, just use
+ QOpenGLCompositorBackingStore. It will automatically create
+ textures from the raster-rendered content and trigger the
+ necessary repaints.
+ */
+
+static QOpenGLCompositor *compositor = 0;
+
+QOpenGLCompositor::QOpenGLCompositor()
: m_context(0),
- m_window(0),
- m_blitter(0)
+ m_targetWindow(0)
{
Q_ASSERT(!compositor);
m_updateTimer.setSingleShot(true);
@@ -56,45 +79,51 @@ QEGLCompositor::QEGLCompositor()
connect(&m_updateTimer, SIGNAL(timeout()), SLOT(renderAll()));
}
-QEGLCompositor::~QEGLCompositor()
+QOpenGLCompositor::~QOpenGLCompositor()
{
Q_ASSERT(compositor == this);
- if (m_blitter) {
- m_blitter->destroy();
- delete m_blitter;
- }
+ m_blitter.destroy();
compositor = 0;
}
-void QEGLCompositor::schedule(QOpenGLContext *context, QEGLPlatformWindow *window)
+void QOpenGLCompositor::setTarget(QOpenGLContext *context, QWindow *targetWindow)
{
m_context = context;
- m_window = window;
+ m_targetWindow = targetWindow;
+}
+
+void QOpenGLCompositor::update()
+{
if (!m_updateTimer.isActive())
m_updateTimer.start();
}
-void QEGLCompositor::renderAll()
+void QOpenGLCompositor::renderAll()
{
- Q_ASSERT(m_context && m_window);
- m_context->makeCurrent(m_window->window());
+ Q_ASSERT(m_context && m_targetWindow);
+ m_context->makeCurrent(m_targetWindow);
- if (!m_blitter) {
- m_blitter = new QOpenGLTextureBlitter;
- m_blitter->create();
- }
- m_blitter->bind();
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);
+
+ const QRect targetWindowRect(QPoint(0, 0), m_targetWindow->geometry().size());
+ glViewport(0, 0, targetWindowRect.width(), targetWindowRect.height());
- QEGLPlatformScreen *screen = static_cast<QEGLPlatformScreen *>(m_window->screen());
- QList<QEGLPlatformWindow *> windows = screen->windows();
- for (int i = 0; i < windows.size(); ++i)
- render(windows.at(i));
+ if (!m_blitter.isCreated())
+ m_blitter.create();
- m_blitter->release();
- m_context->swapBuffers(m_window->window());
+ m_blitter.bind();
- for (int i = 0; i < windows.size(); ++i)
- windows.at(i)->composited();
+ for (int i = 0; i < m_windows.size(); ++i)
+ m_windows.at(i)->beginCompositing();
+
+ for (int i = 0; i < m_windows.size(); ++i)
+ render(m_windows.at(i));
+
+ m_blitter.release();
+ m_context->swapBuffers(m_targetWindow);
+
+ for (int i = 0; i < m_windows.size(); ++i)
+ m_windows.at(i)->endCompositing();
}
struct BlendStateBinder
@@ -120,41 +149,38 @@ struct BlendStateBinder
bool m_blend;
};
-void QEGLCompositor::render(QEGLPlatformWindow *window)
+void QOpenGLCompositor::render(QOpenGLCompositorWindow *window)
{
const QPlatformTextureList *textures = window->textures();
if (!textures)
return;
- const QRect targetWindowRect(QPoint(0, 0), window->screen()->geometry().size());
- glViewport(0, 0, targetWindowRect.width(), targetWindowRect.height());
-
+ const QRect targetWindowRect(QPoint(0, 0), m_targetWindow->geometry().size());
float currentOpacity = 1.0f;
BlendStateBinder blend;
for (int i = 0; i < textures->count(); ++i) {
uint textureId = textures->textureId(i);
- QMatrix4x4 target = QOpenGLTextureBlitter::targetTransform(textures->geometry(i),
- targetWindowRect);
- const float opacity = window->window()->opacity();
+ QMatrix4x4 target = QOpenGLTextureBlitter::targetTransform(textures->geometry(i), targetWindowRect);
+ const float opacity = window->sourceWindow()->opacity();
if (opacity != currentOpacity) {
currentOpacity = opacity;
- m_blitter->setOpacity(currentOpacity);
+ m_blitter.setOpacity(currentOpacity);
}
if (textures->count() > 1 && i == textures->count() - 1) {
// Backingstore for a widget with QOpenGLWidget subwidgets
blend.set(true);
- m_blitter->blit(textureId, target, QOpenGLTextureBlitter::OriginTopLeft);
+ m_blitter.blit(textureId, target, QOpenGLTextureBlitter::OriginTopLeft);
} else if (textures->count() == 1) {
// A regular QWidget window
- const bool translucent = window->window()->requestedFormat().alphaBufferSize() > 0;
+ const bool translucent = window->sourceWindow()->requestedFormat().alphaBufferSize() > 0;
blend.set(translucent);
- m_blitter->blit(textureId, target, QOpenGLTextureBlitter::OriginTopLeft);
+ m_blitter.blit(textureId, target, QOpenGLTextureBlitter::OriginTopLeft);
} else if (!textures->flags(i).testFlag(QPlatformTextureList::StacksOnTop)) {
// Texture from an FBO belonging to a QOpenGLWidget
blend.set(false);
- m_blitter->blit(textureId, target, QOpenGLTextureBlitter::OriginBottomLeft);
+ m_blitter.blit(textureId, target, QOpenGLTextureBlitter::OriginBottomLeft);
}
}
@@ -162,24 +188,56 @@ void QEGLCompositor::render(QEGLPlatformWindow *window)
if (textures->flags(i).testFlag(QPlatformTextureList::StacksOnTop)) {
QMatrix4x4 target = QOpenGLTextureBlitter::targetTransform(textures->geometry(i), targetWindowRect);
blend.set(true);
- m_blitter->blit(textures->textureId(i), target, QOpenGLTextureBlitter::OriginBottomLeft);
+ m_blitter.blit(textures->textureId(i), target, QOpenGLTextureBlitter::OriginBottomLeft);
}
}
- m_blitter->setOpacity(1.0f);
+ m_blitter.setOpacity(1.0f);
}
-QEGLCompositor *QEGLCompositor::instance()
+QOpenGLCompositor *QOpenGLCompositor::instance()
{
if (!compositor)
- compositor = new QEGLCompositor;
+ compositor = new QOpenGLCompositor;
return compositor;
}
-void QEGLCompositor::destroy()
+void QOpenGLCompositor::destroy()
{
delete compositor;
compositor = 0;
}
+void QOpenGLCompositor::addWindow(QOpenGLCompositorWindow *window)
+{
+ if (!m_windows.contains(window)) {
+ m_windows.append(window);
+ emit topWindowChanged(window);
+ }
+}
+
+void QOpenGLCompositor::removeWindow(QOpenGLCompositorWindow *window)
+{
+ m_windows.removeOne(window);
+ if (!m_windows.isEmpty())
+ emit topWindowChanged(m_windows.last());
+}
+
+void QOpenGLCompositor::moveToTop(QOpenGLCompositorWindow *window)
+{
+ m_windows.removeOne(window);
+ m_windows.append(window);
+ emit topWindowChanged(window);
+}
+
+void QOpenGLCompositor::changeWindowIndex(QOpenGLCompositorWindow *window, int newIdx)
+{
+ int idx = m_windows.indexOf(window);
+ if (idx != -1 && idx != newIdx) {
+ m_windows.move(idx, newIdx);
+ if (newIdx == m_windows.size() - 1)
+ emit topWindowChanged(m_windows.last());
+ }
+}
+
QT_END_NAMESPACE
diff --git a/src/platformsupport/platformcompositor/qopenglcompositor_p.h b/src/platformsupport/platformcompositor/qopenglcompositor_p.h
new file mode 100644
index 0000000000..9c876f5af1
--- /dev/null
+++ b/src/platformsupport/platformcompositor/qopenglcompositor_p.h
@@ -0,0 +1,107 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL21$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 or version 3 as published by the Free
+** Software Foundation and appearing in the file LICENSE.LGPLv21 and
+** LICENSE.LGPLv3 included in the packaging of this file. Please review the
+** following information to ensure the GNU Lesser General Public License
+** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QOPENGLCOMPOSITOR_H
+#define QOPENGLCOMPOSITOR_H
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+//
+
+#include <QtCore/QTimer>
+#include <QtGui/private/qopengltextureblitter_p.h>
+
+QT_BEGIN_NAMESPACE
+
+class QOpenGLContext;
+class QWindow;
+class QPlatformTextureList;
+
+class QOpenGLCompositorWindow
+{
+public:
+ virtual QWindow *sourceWindow() const = 0;
+ virtual const QPlatformTextureList *textures() const = 0;
+ virtual void beginCompositing() { }
+ virtual void endCompositing() { }
+};
+
+class QOpenGLCompositor : public QObject
+{
+ Q_OBJECT
+
+public:
+ static QOpenGLCompositor *instance();
+ static void destroy();
+
+ void setTarget(QOpenGLContext *context, QWindow *window);
+ QOpenGLContext *context() const { return m_context; }
+ QWindow *targetWindow() const { return m_targetWindow; }
+
+ void update();
+
+ QList<QOpenGLCompositorWindow *> windows() const { return m_windows; }
+ void addWindow(QOpenGLCompositorWindow *window);
+ void removeWindow(QOpenGLCompositorWindow *window);
+ void moveToTop(QOpenGLCompositorWindow *window);
+ void changeWindowIndex(QOpenGLCompositorWindow *window, int newIdx);
+
+signals:
+ void topWindowChanged(QOpenGLCompositorWindow *window);
+
+private slots:
+ void renderAll();
+
+private:
+ QOpenGLCompositor();
+ ~QOpenGLCompositor();
+
+ void render(QOpenGLCompositorWindow *window);
+
+ QOpenGLContext *m_context;
+ QWindow *m_targetWindow;
+ QTimer m_updateTimer;
+ QOpenGLTextureBlitter m_blitter;
+ QList<QOpenGLCompositorWindow *> m_windows;
+};
+
+QT_END_NAMESPACE
+
+#endif // QOPENGLCOMPOSITOR_H
diff --git a/src/platformsupport/eglconvenience/qeglplatformbackingstore.cpp b/src/platformsupport/platformcompositor/qopenglcompositorbackingstore.cpp
index d7d95ea97d..774743c674 100644
--- a/src/platformsupport/eglconvenience/qeglplatformbackingstore.cpp
+++ b/src/platformsupport/platformcompositor/qopenglcompositorbackingstore.cpp
@@ -31,62 +31,58 @@
**
****************************************************************************/
-#include <QtGui/QOpenGLShaderProgram>
#include <QtGui/QOpenGLContext>
+#include <QtGui/QWindow>
#include <QtGui/QPainter>
+#include <qpa/qplatformbackingstore.h>
-#include "qeglplatformbackingstore_p.h"
-#include "qeglcompositor_p.h"
-#include "qeglplatformwindow_p.h"
-#include "qeglplatformscreen_p.h"
+#include "qopenglcompositorbackingstore_p.h"
+#include "qopenglcompositor_p.h"
QT_BEGIN_NAMESPACE
/*!
- \class QEGLPlatformBackingStore
- \brief A backing store implementation for EGL and GLES.
- \since 5.2
+ \class QOpenGLCompositorBackingStore
+ \brief A backing store implementation for OpenGL
+ \since 5.4
\internal
\ingroup qpa
This implementation uploads raster-rendered widget windows into
- textures and composites them onto a single native window using
- QEGLCompositor. This means that multiple top-level widgets are
- supported without creating actual native windows for each of them.
-
- The class is ready to be used as-is, the default
- QEGLPlatformIntegration::createPlatformBackingStore()
- implementation creates an instance which is ready to be used
- without further customization.
-
- If QEGLCompositor is not suitable, this backing store
- implementation can also be used without it. In this case a
- subclass must reimplement composite() and schedule an update in
- its custom compositor when this function is called. The textures
- are accessible via QEGLPlatformWindow::texture().
+ textures. It is meant to be used with QOpenGLCompositor that
+ composites the textures onto a single native window using OpenGL.
+ This means that multiple top-level widgets are supported without
+ creating actual native windows for each of them.
+
+ \note It is important to call notifyComposited() from the
+ corresponding platform window's endCompositing() callback
+ (inherited from QOpenGLCompositorWindow).
+
+ \note When implementing QOpenGLCompositorWindow::textures() for
+ windows of type RasterSurface or RasterGLSurface, simply return
+ the list provided by this class' textures().
*/
-QEGLPlatformBackingStore::QEGLPlatformBackingStore(QWindow *window)
+QOpenGLCompositorBackingStore::QOpenGLCompositorBackingStore(QWindow *window)
: QPlatformBackingStore(window),
- m_window(static_cast<QEGLPlatformWindow *>(window->handle())),
+ m_window(window),
m_bsTexture(0),
m_textures(new QPlatformTextureList),
m_lockedWidgetTextures(0)
{
- m_window->setBackingStore(this);
}
-QEGLPlatformBackingStore::~QEGLPlatformBackingStore()
+QOpenGLCompositorBackingStore::~QOpenGLCompositorBackingStore()
{
delete m_textures;
}
-QPaintDevice *QEGLPlatformBackingStore::paintDevice()
+QPaintDevice *QOpenGLCompositorBackingStore::paintDevice()
{
return &m_image;
}
-void QEGLPlatformBackingStore::updateTexture()
+void QOpenGLCompositorBackingStore::updateTexture()
{
if (!m_bsTexture) {
glGenTextures(1, &m_bsTexture);
@@ -134,7 +130,7 @@ void QEGLPlatformBackingStore::updateTexture()
}
}
-void QEGLPlatformBackingStore::flush(QWindow *window, const QRegion &region, const QPoint &offset)
+void QOpenGLCompositorBackingStore::flush(QWindow *window, const QRegion &region, const QPoint &offset)
{
// Called for ordinary raster windows. This is rare since RasterGLSurface
// support is claimed which leads to having all QWidget windows marked as
@@ -144,35 +140,38 @@ void QEGLPlatformBackingStore::flush(QWindow *window, const QRegion &region, con
Q_UNUSED(region);
Q_UNUSED(offset);
- QEGLPlatformScreen *screen = static_cast<QEGLPlatformScreen *>(m_window->screen());
- QEGLPlatformWindow *dstWin = screen->compositingWindow();
- if (!dstWin || !dstWin->isRaster())
+ QOpenGLCompositor *compositor = QOpenGLCompositor::instance();
+ QOpenGLContext *dstCtx = compositor->context();
+ QWindow *dstWin = compositor->targetWindow();
+ if (!dstWin)
return;
- screen->compositingContext()->makeCurrent(dstWin->window());
+ dstCtx->makeCurrent(dstWin);
updateTexture();
m_textures->clear();
m_textures->appendTexture(Q_NULLPTR, m_bsTexture, window->geometry());
- composite(screen->compositingContext(), dstWin);
+
+ compositor->update();
}
-void QEGLPlatformBackingStore::composeAndFlush(QWindow *window, const QRegion &region, const QPoint &offset,
+void QOpenGLCompositorBackingStore::composeAndFlush(QWindow *window, const QRegion &region, const QPoint &offset,
QPlatformTextureList *textures, QOpenGLContext *context,
bool translucentBackground)
{
- // QOpenGLWidget content provided as textures. The raster content should go on top.
+ // QOpenGLWidget/QQuickWidget content provided as textures. The raster content should go on top.
Q_UNUSED(region);
Q_UNUSED(offset);
Q_UNUSED(context);
Q_UNUSED(translucentBackground);
- QEGLPlatformScreen *screen = static_cast<QEGLPlatformScreen *>(m_window->screen());
- QEGLPlatformWindow *dstWin = screen->compositingWindow();
- if (!dstWin || !dstWin->isRaster())
+ QOpenGLCompositor *compositor = QOpenGLCompositor::instance();
+ QOpenGLContext *dstCtx = compositor->context();
+ QWindow *dstWin = compositor->targetWindow();
+ if (!dstWin)
return;
- screen->compositingContext()->makeCurrent(dstWin->window());
+ dstCtx->makeCurrent(dstWin);
m_textures->clear();
for (int i = 0; i < textures->count(); ++i)
@@ -184,15 +183,10 @@ void QEGLPlatformBackingStore::composeAndFlush(QWindow *window, const QRegion &r
textures->lock(true);
m_lockedWidgetTextures = textures;
- composite(screen->compositingContext(), dstWin);
-}
-
-void QEGLPlatformBackingStore::composite(QOpenGLContext *context, QEGLPlatformWindow *window)
-{
- QEGLCompositor::instance()->schedule(context, window);
+ compositor->update();
}
-void QEGLPlatformBackingStore::composited()
+void QOpenGLCompositorBackingStore::notifyComposited()
{
if (m_lockedWidgetTextures) {
QPlatformTextureList *textureList = m_lockedWidgetTextures;
@@ -201,7 +195,7 @@ void QEGLPlatformBackingStore::composited()
}
}
-void QEGLPlatformBackingStore::beginPaint(const QRegion &region)
+void QOpenGLCompositorBackingStore::beginPaint(const QRegion &region)
{
m_dirty |= region;
@@ -213,27 +207,28 @@ void QEGLPlatformBackingStore::beginPaint(const QRegion &region)
}
}
-void QEGLPlatformBackingStore::resize(const QSize &size, const QRegion &staticContents)
+void QOpenGLCompositorBackingStore::resize(const QSize &size, const QRegion &staticContents)
{
Q_UNUSED(staticContents);
- QEGLPlatformScreen *screen = static_cast<QEGLPlatformScreen *>(m_window->screen());
- QEGLPlatformWindow *dstWin = screen->compositingWindow();
- if (!dstWin || (!dstWin->isRaster() && dstWin->window()->surfaceType() != QSurface::RasterGLSurface))
+ QOpenGLCompositor *compositor = QOpenGLCompositor::instance();
+ QOpenGLContext *dstCtx = compositor->context();
+ QWindow *dstWin = compositor->targetWindow();
+ if (!dstWin)
return;
m_image = QImage(size, QImage::Format_RGBA8888);
m_window->create();
- screen->compositingContext()->makeCurrent(dstWin->window());
+ dstCtx->makeCurrent(dstWin);
if (m_bsTexture) {
glDeleteTextures(1, &m_bsTexture);
m_bsTexture = 0;
}
}
-QImage QEGLPlatformBackingStore::toImage() const
+QImage QOpenGLCompositorBackingStore::toImage() const
{
return m_image;
}
diff --git a/src/platformsupport/eglconvenience/qeglplatformbackingstore_p.h b/src/platformsupport/platformcompositor/qopenglcompositorbackingstore_p.h
index 502ca5a639..0501cd868c 100644
--- a/src/platformsupport/eglconvenience/qeglplatformbackingstore_p.h
+++ b/src/platformsupport/platformcompositor/qopenglcompositorbackingstore_p.h
@@ -31,8 +31,8 @@
**
****************************************************************************/
-#ifndef QEGLPLATFORMBACKINGSTORE_H
-#define QEGLPLATFORMBACKINGSTORE_H
+#ifndef QOPENGLCOMPOSITORBACKINGSTORE_H
+#define QOPENGLCOMPOSITORBACKINGSTORE_H
//
// W A R N I N G
@@ -46,7 +46,6 @@
//
#include <qpa/qplatformbackingstore.h>
-
#include <QImage>
#include <QRegion>
@@ -54,13 +53,12 @@ QT_BEGIN_NAMESPACE
class QOpenGLContext;
class QPlatformTextureList;
-class QEGLPlatformWindow;
-class QEGLPlatformBackingStore : public QPlatformBackingStore
+class QOpenGLCompositorBackingStore : public QPlatformBackingStore
{
public:
- QEGLPlatformBackingStore(QWindow *window);
- ~QEGLPlatformBackingStore();
+ QOpenGLCompositorBackingStore(QWindow *window);
+ ~QOpenGLCompositorBackingStore();
QPaintDevice *paintDevice() Q_DECL_OVERRIDE;
@@ -76,14 +74,12 @@ public:
const QPlatformTextureList *textures() const { return m_textures; }
- virtual void composite(QOpenGLContext *context, QEGLPlatformWindow *window);
-
- void composited();
+ void notifyComposited();
private:
void updateTexture();
- QEGLPlatformWindow *m_window;
+ QWindow *m_window;
QImage m_image;
QRegion m_dirty;
uint m_bsTexture;
@@ -93,4 +89,4 @@ private:
QT_END_NAMESPACE
-#endif // QEGLPLATFORMBACKINGSTORE_H
+#endif // QOPENGLCOMPOSITORBACKINGSTORE_H
diff --git a/src/platformsupport/platformsupport.pro b/src/platformsupport/platformsupport.pro
index 32ce2e3887..39cbd9d181 100644
--- a/src/platformsupport/platformsupport.pro
+++ b/src/platformsupport/platformsupport.pro
@@ -21,5 +21,6 @@ include(themes/themes.pri)
include(accessibility/accessibility.pri)
include(linuxaccessibility/linuxaccessibility.pri)
include(clipboard/clipboard.pri)
+include(platformcompositor/platformcompositor.pri)
load(qt_module)
diff --git a/src/platformsupport/services/genericunix/qgenericunixservices_p.h b/src/platformsupport/services/genericunix/qgenericunixservices_p.h
index f24912278b..17eb7b456e 100644
--- a/src/platformsupport/services/genericunix/qgenericunixservices_p.h
+++ b/src/platformsupport/services/genericunix/qgenericunixservices_p.h
@@ -55,10 +55,10 @@ class QGenericUnixServices : public QPlatformServices
public:
QGenericUnixServices() {}
- QByteArray desktopEnvironment() const;
+ QByteArray desktopEnvironment() const Q_DECL_OVERRIDE;
- virtual bool openUrl(const QUrl &url);
- virtual bool openDocument(const QUrl &url);
+ virtual bool openUrl(const QUrl &url) Q_DECL_OVERRIDE;
+ virtual bool openDocument(const QUrl &url) Q_DECL_OVERRIDE;
private:
QString m_webBrowser;
diff --git a/src/platformsupport/themes/genericunix/qgenericunixthemes.cpp b/src/platformsupport/themes/genericunix/qgenericunixthemes.cpp
index e66fdeb7c3..1060ff283b 100644
--- a/src/platformsupport/themes/genericunix/qgenericunixthemes.cpp
+++ b/src/platformsupport/themes/genericunix/qgenericunixthemes.cpp
@@ -135,6 +135,11 @@ QStringList QGenericUnixTheme::xdgIconThemePaths()
if (xdgIconsDir.isDir())
paths.append(xdgIconsDir.absoluteFilePath());
}
+
+ const QFileInfo pixmapsIconsDir(QStringLiteral("/usr/share/pixmaps"));
+ if (pixmapsIconsDir.isDir())
+ paths.append(pixmapsIconsDir.absoluteFilePath());
+
return paths;
}
@@ -170,6 +175,7 @@ public:
, toolButtonStyle(Qt::ToolButtonTextBesideIcon)
, toolBarIconSize(0)
, singleClick(true)
+ , wheelScrollLines(3)
{ }
static QString kdeGlobals(const QString &kdeDir)
@@ -193,6 +199,7 @@ public:
int toolButtonStyle;
int toolBarIconSize;
bool singleClick;
+ int wheelScrollLines;
};
void QKdeThemePrivate::refresh()
@@ -242,6 +249,10 @@ void QKdeThemePrivate::refresh()
toolButtonStyle = Qt::ToolButtonTextUnderIcon;
}
+ const QVariant wheelScrollLinesValue = readKdeSetting(QStringLiteral("KDE/WheelScrollLines"), kdeDirs, kdeSettings);
+ if (wheelScrollLinesValue.isValid())
+ wheelScrollLines = wheelScrollLinesValue.toInt();
+
// Read system font, ignore 'smallestReadableFont'
if (QFont *systemFont = kdeFont(readKdeSetting(QStringLiteral("font"), kdeDirs, kdeSettings)))
resources.fonts[QPlatformTheme::SystemFont] = systemFont;
@@ -428,6 +439,8 @@ QVariant QKdeTheme::themeHint(QPlatformTheme::ThemeHint hint) const
return QVariant(int(KdeKeyboardScheme));
case QPlatformTheme::ItemViewActivateItemOnSingleClick:
return QVariant(d->singleClick);
+ case QPlatformTheme::WheelScrollLines:
+ return QVariant(d->wheelScrollLines);
default:
break;
}
@@ -624,20 +637,25 @@ QStringList QGenericUnixTheme::themeNames()
QStringList result;
if (QGuiApplication::desktopSettingsAware()) {
const QByteArray desktopEnvironment = QGuiApplicationPrivate::platformIntegration()->services()->desktopEnvironment();
- if (desktopEnvironment == "KDE") {
+ QList<QByteArray> gtkBasedEnvironments;
+ gtkBasedEnvironments << "GNOME"
+ << "X-CINNAMON"
+ << "UNITY"
+ << "MATE"
+ << "XFCE"
+ << "LXDE";
+ QList<QByteArray> desktopNames = desktopEnvironment.split(':');
+ Q_FOREACH (const QByteArray &desktopName, desktopNames) {
+ if (desktopEnvironment == "KDE") {
#ifndef QT_NO_SETTINGS
- result.push_back(QLatin1String(QKdeTheme::name));
+ result.push_back(QLatin1String(QKdeTheme::name));
#endif
- } else if (desktopEnvironment == "GNOME" ||
- desktopEnvironment == "X-CINNAMON" ||
- desktopEnvironment == "UNITY" ||
- desktopEnvironment == "MATE" ||
- desktopEnvironment == "XFCE" ||
- desktopEnvironment == "LXDE") { // Gtk-based desktops
- // prefer the GTK2 theme implementation with native dialogs etc.
- result.push_back(QStringLiteral("gtk2"));
- // fallback to the generic Gnome theme if loading the GTK2 theme fails
- result.push_back(QLatin1String(QGnomeTheme::name));
+ } else if (gtkBasedEnvironments.contains(desktopName)) {
+ // prefer the GTK2 theme implementation with native dialogs etc.
+ result.push_back(QStringLiteral("gtk2"));
+ // fallback to the generic Gnome theme if loading the GTK2 theme fails
+ result.push_back(QLatin1String(QGnomeTheme::name));
+ }
}
const QString session = QString::fromLocal8Bit(qgetenv("DESKTOP_SESSION"));
if (!session.isEmpty() && session != QLatin1String("default") && !result.contains(session))
diff --git a/src/platformsupport/themes/genericunix/qgenericunixthemes_p.h b/src/platformsupport/themes/genericunix/qgenericunixthemes_p.h
index 87df37dfd7..2a689c6872 100644
--- a/src/platformsupport/themes/genericunix/qgenericunixthemes_p.h
+++ b/src/platformsupport/themes/genericunix/qgenericunixthemes_p.h
@@ -75,8 +75,8 @@ public:
static QPlatformTheme *createUnixTheme(const QString &name);
static QStringList themeNames();
- virtual const QFont *font(Font type) const;
- virtual QVariant themeHint(ThemeHint hint) const;
+ virtual const QFont *font(Font type) const Q_DECL_OVERRIDE;
+ virtual QVariant themeHint(ThemeHint hint) const Q_DECL_OVERRIDE;
static QStringList xdgIconThemePaths();
@@ -93,11 +93,11 @@ public:
QKdeTheme(const QStringList& kdeDirs, int kdeVersion);
static QPlatformTheme *createKdeTheme();
- virtual QVariant themeHint(ThemeHint hint) const;
+ virtual QVariant themeHint(ThemeHint hint) const Q_DECL_OVERRIDE;
- virtual const QPalette *palette(Palette type = SystemPalette) const;
+ virtual const QPalette *palette(Palette type = SystemPalette) const Q_DECL_OVERRIDE;
- virtual const QFont *font(Font type) const;
+ virtual const QFont *font(Font type) const Q_DECL_OVERRIDE;
static const char *name;
};
@@ -110,8 +110,8 @@ class QGnomeTheme : public QPlatformTheme
Q_DECLARE_PRIVATE(QGnomeTheme)
public:
QGnomeTheme();
- virtual QVariant themeHint(ThemeHint hint) const;
- virtual const QFont *font(Font type) const;
+ virtual QVariant themeHint(ThemeHint hint) const Q_DECL_OVERRIDE;
+ virtual const QFont *font(Font type) const Q_DECL_OVERRIDE;
QString standardButtonText(int button) const Q_DECL_OVERRIDE;
virtual QString gtkFontName() const;
diff --git a/src/plugins/bearer/generic/main.cpp b/src/plugins/bearer/generic/main.cpp
index e825cd494b..57c5589e1b 100644
--- a/src/plugins/bearer/generic/main.cpp
+++ b/src/plugins/bearer/generic/main.cpp
@@ -50,7 +50,7 @@ public:
QGenericEnginePlugin();
~QGenericEnginePlugin();
- QBearerEngine *create(const QString &key) const;
+ QBearerEngine *create(const QString &key) const Q_DECL_OVERRIDE;
};
QGenericEnginePlugin::QGenericEnginePlugin()
diff --git a/src/plugins/bearer/generic/qgenericengine.h b/src/plugins/bearer/generic/qgenericengine.h
index f688cae3d0..b56ce9ae29 100644
--- a/src/plugins/bearer/generic/qgenericengine.h
+++ b/src/plugins/bearer/generic/qgenericengine.h
@@ -54,24 +54,24 @@ public:
QGenericEngine(QObject *parent = 0);
~QGenericEngine();
- QString getInterfaceFromId(const QString &id);
- bool hasIdentifier(const QString &id);
+ QString getInterfaceFromId(const QString &id) Q_DECL_OVERRIDE;
+ bool hasIdentifier(const QString &id) Q_DECL_OVERRIDE;
- void connectToId(const QString &id);
- void disconnectFromId(const QString &id);
+ void connectToId(const QString &id) Q_DECL_OVERRIDE;
+ void disconnectFromId(const QString &id) Q_DECL_OVERRIDE;
Q_INVOKABLE void initialize();
Q_INVOKABLE void requestUpdate();
- QNetworkSession::State sessionStateForId(const QString &id);
+ QNetworkSession::State sessionStateForId(const QString &id) Q_DECL_OVERRIDE;
- QNetworkConfigurationManager::Capabilities capabilities() const;
+ QNetworkConfigurationManager::Capabilities capabilities() const Q_DECL_OVERRIDE;
- QNetworkSessionPrivate *createSessionBackend();
+ QNetworkSessionPrivate *createSessionBackend() Q_DECL_OVERRIDE;
- QNetworkConfigurationPrivatePointer defaultConfiguration();
+ QNetworkConfigurationPrivatePointer defaultConfiguration() Q_DECL_OVERRIDE;
- bool requiresPolling() const;
+ bool requiresPolling() const Q_DECL_OVERRIDE;
private Q_SLOTS:
void doRequestUpdate();
diff --git a/src/plugins/bearer/linux_common/qofonoservice_linux.cpp b/src/plugins/bearer/linux_common/qofonoservice_linux.cpp
index abbfd445a5..f4460c1be0 100644
--- a/src/plugins/bearer/linux_common/qofonoservice_linux.cpp
+++ b/src/plugins/bearer/linux_common/qofonoservice_linux.cpp
@@ -295,14 +295,10 @@ QString QOfonoDataConnectionManagerInterface::bearer()
QVariant QOfonoDataConnectionManagerInterface::getProperty(const QString &property)
{
- QVariant var;
- QVariantMap map = getProperties();
- if (map.contains(property))
- var = map.value(property);
- return var;
+ return getProperties().value(property);
}
-QVariantMap QOfonoDataConnectionManagerInterface::getProperties()
+QVariantMap &QOfonoDataConnectionManagerInterface::getProperties()
{
if (propertiesMap.isEmpty()) {
QList<QVariant> argumentList;
diff --git a/src/plugins/bearer/linux_common/qofonoservice_linux_p.h b/src/plugins/bearer/linux_common/qofonoservice_linux_p.h
index 3b97e06dd3..8adb8db19c 100644
--- a/src/plugins/bearer/linux_common/qofonoservice_linux_p.h
+++ b/src/plugins/bearer/linux_common/qofonoservice_linux_p.h
@@ -160,11 +160,11 @@ public:
Q_SIGNALS:
void roamingAllowedChanged(bool);
private:
- QVariantMap getProperties();
+ QVariantMap &getProperties();
QVariantMap propertiesMap;
QStringList contextList;
PathPropertiesList contextListProperties;
-private slots:
+private Q_SLOTS:
void propertyChanged(const QString &, const QDBusVariant &value);
};
diff --git a/src/plugins/bearer/qnetworksession_impl.h b/src/plugins/bearer/qnetworksession_impl.h
index f5c9ab393f..3570166b11 100644
--- a/src/plugins/bearer/qnetworksession_impl.h
+++ b/src/plugins/bearer/qnetworksession_impl.h
@@ -71,31 +71,31 @@ public:
//that the state is immediately updated (w/o actually opening
//a session). Also this function should take care of
//notification hooks to discover future state changes.
- void syncStateWithInterface();
+ void syncStateWithInterface() Q_DECL_OVERRIDE;
#ifndef QT_NO_NETWORKINTERFACE
- QNetworkInterface currentInterface() const;
+ QNetworkInterface currentInterface() const Q_DECL_OVERRIDE;
#endif
- QVariant sessionProperty(const QString& key) const;
- void setSessionProperty(const QString& key, const QVariant& value);
-
- void open();
- void close();
- void stop();
- void migrate();
- void accept();
- void ignore();
- void reject();
-
- QString errorString() const; //must return translated string
- QNetworkSession::SessionError error() const;
-
- quint64 bytesWritten() const;
- quint64 bytesReceived() const;
- quint64 activeTime() const;
-
- QNetworkSession::UsagePolicies usagePolicies() const;
- void setUsagePolicies(QNetworkSession::UsagePolicies);
+ QVariant sessionProperty(const QString& key) const Q_DECL_OVERRIDE;
+ void setSessionProperty(const QString& key, const QVariant& value) Q_DECL_OVERRIDE;
+
+ void open() Q_DECL_OVERRIDE;
+ void close() Q_DECL_OVERRIDE;
+ void stop() Q_DECL_OVERRIDE;
+ void migrate() Q_DECL_OVERRIDE;
+ void accept() Q_DECL_OVERRIDE;
+ void ignore() Q_DECL_OVERRIDE;
+ void reject() Q_DECL_OVERRIDE;
+
+ QString errorString() const Q_DECL_OVERRIDE; //must return translated string
+ QNetworkSession::SessionError error() const Q_DECL_OVERRIDE;
+
+ quint64 bytesWritten() const Q_DECL_OVERRIDE;
+ quint64 bytesReceived() const Q_DECL_OVERRIDE;
+ quint64 activeTime() const Q_DECL_OVERRIDE;
+
+ QNetworkSession::UsagePolicies usagePolicies() const Q_DECL_OVERRIDE;
+ void setUsagePolicies(QNetworkSession::UsagePolicies) Q_DECL_OVERRIDE;
private Q_SLOTS:
void networkConfigurationsChanged();
diff --git a/src/plugins/generic/evdevkeyboard/main.cpp b/src/plugins/generic/evdevkeyboard/main.cpp
index c913aff787..92ef063450 100644
--- a/src/plugins/generic/evdevkeyboard/main.cpp
+++ b/src/plugins/generic/evdevkeyboard/main.cpp
@@ -44,7 +44,7 @@ class QEvdevKeyboardPlugin : public QGenericPlugin
public:
QEvdevKeyboardPlugin();
- QObject* create(const QString &key, const QString &specification);
+ QObject* create(const QString &key, const QString &specification) Q_DECL_OVERRIDE;
};
QEvdevKeyboardPlugin::QEvdevKeyboardPlugin()
diff --git a/src/plugins/generic/evdevmouse/main.cpp b/src/plugins/generic/evdevmouse/main.cpp
index b460502c9c..54ff554c6f 100644
--- a/src/plugins/generic/evdevmouse/main.cpp
+++ b/src/plugins/generic/evdevmouse/main.cpp
@@ -44,7 +44,7 @@ class QEvdevMousePlugin : public QGenericPlugin
public:
QEvdevMousePlugin();
- QObject* create(const QString &key, const QString &specification);
+ QObject* create(const QString &key, const QString &specification) Q_DECL_OVERRIDE;
};
QEvdevMousePlugin::QEvdevMousePlugin()
diff --git a/src/plugins/generic/evdevtablet/main.cpp b/src/plugins/generic/evdevtablet/main.cpp
index b3a73de4f7..a19efba660 100644
--- a/src/plugins/generic/evdevtablet/main.cpp
+++ b/src/plugins/generic/evdevtablet/main.cpp
@@ -45,7 +45,7 @@ public:
QEvdevTabletPlugin();
QStringList keys() const;
- QObject* create(const QString &key, const QString &specification);
+ QObject* create(const QString &key, const QString &specification) Q_DECL_OVERRIDE;
};
QEvdevTabletPlugin::QEvdevTabletPlugin()
diff --git a/src/plugins/generic/evdevtouch/main.cpp b/src/plugins/generic/evdevtouch/main.cpp
index 1c6d0fba0d..a79c9b43c4 100644
--- a/src/plugins/generic/evdevtouch/main.cpp
+++ b/src/plugins/generic/evdevtouch/main.cpp
@@ -44,7 +44,7 @@ class QEvdevTouchScreenPlugin : public QGenericPlugin
public:
QEvdevTouchScreenPlugin();
- QObject* create(const QString &key, const QString &specification);
+ QObject* create(const QString &key, const QString &specification) Q_DECL_OVERRIDE;
};
QEvdevTouchScreenPlugin::QEvdevTouchScreenPlugin()
diff --git a/src/plugins/generic/generic.pro b/src/plugins/generic/generic.pro
index 767b9a55c1..82a4ad4ce8 100644
--- a/src/plugins/generic/generic.pro
+++ b/src/plugins/generic/generic.pro
@@ -7,3 +7,9 @@ contains(QT_CONFIG, evdev) {
contains(QT_CONFIG, tslib) {
SUBDIRS += tslib
}
+
+SUBDIRS += tuiotouch
+
+contains(QT_CONFIG, libinput) {
+ SUBDIRS += libinput
+}
diff --git a/src/plugins/generic/libinput/README b/src/plugins/generic/libinput/README
new file mode 100644
index 0000000000..4312ccbf3a
--- /dev/null
+++ b/src/plugins/generic/libinput/README
@@ -0,0 +1,18 @@
+This is a generic plug-in for libinput 0.6.0
+(http://www.freedesktop.org/wiki/Software/libinput)
+
+Supports relative pointer, axis, keyboard and touch events. udev is
+required. xkbcommon is used to perform keyboard mapping. The dependency on
+xkbcommon is optional. However, no key events will be generated without it.
+
+The plugin is integrated with configure and is built automatically when the
+necessary dependencies are present.
+
+To use this plugin with eglfs, set QT_QPA_EGLFS_DISABLE_INPUT=1 before launching
+the application and pass -plugin libinput.
+
+To get info and debug messages from libinput, enable the logging category
+qt.qpa.input.
+
+For the time being xkbcommon's default keymap is used always. Support for
+changing it will be added in the future.
diff --git a/src/plugins/generic/libinput/libinput.json b/src/plugins/generic/libinput/libinput.json
new file mode 100644
index 0000000000..4a93f271f3
--- /dev/null
+++ b/src/plugins/generic/libinput/libinput.json
@@ -0,0 +1,3 @@
+{
+ "Keys": [ "libinput" ]
+}
diff --git a/src/plugins/generic/libinput/libinput.pro b/src/plugins/generic/libinput/libinput.pro
new file mode 100644
index 0000000000..17dbb23ef0
--- /dev/null
+++ b/src/plugins/generic/libinput/libinput.pro
@@ -0,0 +1,12 @@
+TARGET = qlibinputplugin
+
+PLUGIN_TYPE = generic
+PLUGIN_EXTENDS = -
+PLUGIN_CLASS_NAME = QLibInputPlugin
+load(qt_plugin)
+
+QT += core-private platformsupport-private gui-private
+
+SOURCES = main.cpp
+
+OTHER_FILES = libinput.json
diff --git a/src/plugins/generic/libinput/main.cpp b/src/plugins/generic/libinput/main.cpp
new file mode 100644
index 0000000000..16c391cc22
--- /dev/null
+++ b/src/plugins/generic/libinput/main.cpp
@@ -0,0 +1,58 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtGui module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL21$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 or version 3 as published by the Free
+** Software Foundation and appearing in the file LICENSE.LGPLv21 and
+** LICENSE.LGPLv3 included in the packaging of this file. Please review the
+** following information to ensure the GNU Lesser General Public License
+** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtGui/qgenericplugin.h>
+#include <QtPlatformSupport/private/qlibinputhandler_p.h>
+
+QT_BEGIN_NAMESPACE
+
+class QLibInputPlugin : public QGenericPlugin
+{
+ Q_OBJECT
+ Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QGenericPluginFactoryInterface" FILE "libinput.json")
+
+public:
+ QObject *create(const QString &key, const QString &specification);
+};
+
+QObject *QLibInputPlugin::create(const QString &key, const QString &specification)
+{
+ if (!key.compare(QLatin1String("libinput"), Qt::CaseInsensitive))
+ return new QLibInputHandler(key, specification);
+
+ return 0;
+}
+
+QT_END_NAMESPACE
+
+#include "main.moc"
diff --git a/src/plugins/generic/tslib/main.cpp b/src/plugins/generic/tslib/main.cpp
index 737b175941..1fbe440bb5 100644
--- a/src/plugins/generic/tslib/main.cpp
+++ b/src/plugins/generic/tslib/main.cpp
@@ -32,7 +32,7 @@
****************************************************************************/
#include <QtGui/qgenericplugin.h>
-#include "qtslib.h"
+#include <QtPlatformSupport/private/qtslib_p.h>
QT_BEGIN_NAMESPACE
@@ -42,21 +42,16 @@ class QTsLibPlugin : public QGenericPlugin
Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QGenericPluginFactoryInterface" FILE "tslib.json")
public:
- QTsLibPlugin();
-
QObject* create(const QString &key, const QString &specification);
};
-QTsLibPlugin::QTsLibPlugin()
- : QGenericPlugin()
-{
-}
-
QObject* QTsLibPlugin::create(const QString &key,
- const QString &specification)
+ const QString &specification)
{
- if (!key.compare(QLatin1String("Tslib"), Qt::CaseInsensitive) || !key.compare(QLatin1String("TslibRaw"), Qt::CaseInsensitive))
+ if (!key.compare(QLatin1String("Tslib"), Qt::CaseInsensitive)
+ || !key.compare(QLatin1String("TslibRaw"), Qt::CaseInsensitive))
return new QTsLibMouseHandler(key, specification);
+
return 0;
}
diff --git a/src/plugins/generic/tslib/tslib.pro b/src/plugins/generic/tslib/tslib.pro
index bc05efcc32..be6fc4fbea 100644
--- a/src/plugins/generic/tslib/tslib.pro
+++ b/src/plugins/generic/tslib/tslib.pro
@@ -5,12 +5,9 @@ PLUGIN_EXTENDS = -
PLUGIN_CLASS_NAME = QTsLibPlugin
load(qt_plugin)
-HEADERS = qtslib.h
+SOURCES = main.cpp
-SOURCES = main.cpp \
- qtslib.cpp
-
-QT += gui-private
+QT += gui-private platformsupport-private
LIBS += -lts
diff --git a/src/plugins/generic/tuiotouch/README.md b/src/plugins/generic/tuiotouch/README.md
new file mode 100644
index 0000000000..2675803896
--- /dev/null
+++ b/src/plugins/generic/tuiotouch/README.md
@@ -0,0 +1,54 @@
+# TuioTouch plugin for Qt 5
+
+## Introduction
+
+This is a QPA-using plugin (meaning, it uses Qt internals) that provides touch
+events from TUIO-based sources (such as [TUIOPad](https://code.google.com/p/tuiopad/)).
+
+[TUIO](http://www.tuio.org/) is a framework for providing touch events over the
+network (implemented here using a UDP transport).
+
+This repository also includes a simple [OSC](http://opensoundcontrol.org/spec-1_0)
+parser. OSC is the binary format that TUIO uses for over-the-wire communication.
+
+## Use
+
+Run your application with -plugin TuioTouch, e.g.
+
+`qmlscene foo.qml -plugin TuioTouch`
+
+Or make sure the plugin is loaded using the QT_QPA_GENERIC_PLUGINS environment
+variable.
+
+By default, you must direct TUIO packets to the IP of the machine the application
+is running on, protocol UDP, port 3333. If you want to customize the port, you
+may provide a port number like this:
+
+`qmlscene foo.qml -plugin TuioTouch:udp=3333`
+
+At present, UDP is the only supported transport mechanism.
+
+## Advanced use
+
+If you have the need to invert the X/Y axis, you can do so, by adding an
+additional option when loading the plugin.
+
+For example:
+
+`qmlscene foo.qml -plugin TuioTouch:udp=4000:invertx:inverty`
+
+Would invert the X and Y coordinates of all input coming in on port 4000.
+
+You can also rotate the coordinates directly, using the rotate option:
+
+`qmlscene foo.qml -plugin TuioTouch:udp=4000:rotate=180`
+
+Supported rotations are 90, 180, and 270.
+
+## Further work
+
+* Support other profiles (we implement 2Dcur, we want 2Dobj, 2Dblb?)
+* Support multiple simultaneous sources, generating distinct QTouchEvents
+ * We'd need to somehow not rely on FSEQ for removing touchpoints, else our
+ currently minor memory exhaustion problem could become a real issue
+* Support TCP transports?
diff --git a/src/plugins/generic/tuiotouch/main.cpp b/src/plugins/generic/tuiotouch/main.cpp
new file mode 100644
index 0000000000..c750a4f9a0
--- /dev/null
+++ b/src/plugins/generic/tuiotouch/main.cpp
@@ -0,0 +1,68 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Robin Burchell <robin.burchell@viroteck.net>
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtCore module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL21$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 or version 3 as published by the Free
+** Software Foundation and appearing in the file LICENSE.LGPLv21 and
+** LICENSE.LGPLv3 included in the packaging of this file. Please review the
+** following information to ensure the GNU Lesser General Public License
+** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtGui/qgenericplugin.h>
+#include <QCoreApplication>
+
+#include "qtuiohandler_p.h"
+
+QT_BEGIN_NAMESPACE
+
+class QTuioTouchPlugin : public QGenericPlugin
+{
+ Q_OBJECT
+ Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QGenericPluginFactoryInterface" FILE "tuiotouch.json")
+
+public:
+ QTuioTouchPlugin();
+
+ QObject* create(const QString &key, const QString &specification);
+};
+
+QTuioTouchPlugin::QTuioTouchPlugin()
+{
+}
+
+QObject* QTuioTouchPlugin::create(const QString &key,
+ const QString &spec)
+{
+ if (!key.compare(QLatin1String("TuioTouch"), Qt::CaseInsensitive))
+ return new QTuioHandler(spec);
+
+ return 0;
+}
+
+QT_END_NAMESPACE
+
+#include "main.moc"
diff --git a/src/plugins/generic/tuiotouch/qoscbundle.cpp b/src/plugins/generic/tuiotouch/qoscbundle.cpp
new file mode 100644
index 0000000000..39e1bdcd81
--- /dev/null
+++ b/src/plugins/generic/tuiotouch/qoscbundle.cpp
@@ -0,0 +1,186 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Robin Burchell <robin.burchell@viroteck.net>
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtCore module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL21$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 or version 3 as published by the Free
+** Software Foundation and appearing in the file LICENSE.LGPLv21 and
+** LICENSE.LGPLv3 included in the packaging of this file. Please review the
+** following information to ensure the GNU Lesser General Public License
+** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtEndian>
+#include <QDebug>
+#include <QLoggingCategory>
+
+#include "qoscbundle_p.h"
+#include "qtuio_p.h"
+
+QT_BEGIN_NAMESPACE
+
+Q_LOGGING_CATEGORY(lcTuioBundle, "qt.qpa.tuio.bundle")
+
+// TUIO packets are transmitted using the OSC protocol, located at:
+// http://opensoundcontrol.org/specification
+// Snippets of this specification have been pasted into the source as a means of
+// easily communicating requirements.
+
+QOscBundle::QOscBundle(const QByteArray &data)
+ : m_isValid(false)
+ , m_immediate(false)
+ , m_timeEpoch(0)
+ , m_timePico(0)
+{
+ // 8 16 24 32 40 48 56 64
+ // # b u n d l e \0
+ // 23 62 75 6e 64 6c 65 00 // OSC string bundle identifier
+ // 00 00 00 00 00 00 00 01 // osc time-tag, "immediately"
+ // 00 00 00 30 // element length
+ // => message or bundle(s), preceded by length each time
+ qCDebug(lcTuioBundle) << data.toHex();
+ quint32 parsedBytes = 0;
+
+ // "An OSC Bundle consists of the OSC-string "#bundle""
+ QByteArray identifier;
+ if (!qt_readOscString(data, identifier, parsedBytes) || identifier != "#bundle")
+ return;
+
+ // "followed by an OSC Time
+ // Tag, followed by zero or more OSC Bundle Elements. The OSC-timetag is a
+ // 64-bit fixed point time tag whose semantics are described below."
+ if (parsedBytes > (quint32)data.size() || data.size() - parsedBytes < sizeof(quint64))
+ return;
+
+ // "Time tags are represented by a 64 bit fixed point number. The first 32
+ // bits specify the number of seconds since midnight on January 1, 1900,
+ // and the last 32 bits specify fractional parts of a second to a precision
+ // of about 200 picoseconds. This is the representation used by Internet NTP
+ // timestamps."
+ //
+ // (editor's note: one may wonder how a 64bit big-endian number can also be
+ // two 32bit numbers, without specifying in which order they occur or
+ // anything, and one may indeed continue to wonder.)
+ quint32 oscTimeEpoch = qFromBigEndian<quint32>((const uchar*)data.constData() + parsedBytes);
+ parsedBytes += sizeof(quint32);
+ quint32 oscTimePico = qFromBigEndian<quint32>((const uchar*)data.constData() + parsedBytes);
+ parsedBytes += sizeof(quint32);
+
+ bool isImmediate = false;
+
+ if (oscTimeEpoch == 0 && oscTimePico == 1) {
+ // "The time tag value consisting of 63 zero bits followed by a
+ // one in the least signifigant bit is a special case meaning
+ // "immediately.""
+ isImmediate = true;
+ }
+
+ while (parsedBytes < (quint32)data.size()) {
+ // "An OSC Bundle Element consists of its size and its contents. The size is an
+ // int32 representing the number of 8-bit bytes in the contents, and will
+ // always be a multiple of 4."
+ //
+ // in practice, a bundle can contain multiple bundles or messages,
+ // though, and each is prefixed by a size.
+ if (data.size() - parsedBytes < sizeof(quint32))
+ return;
+
+ quint32 size = qFromBigEndian<quint32>((const uchar*)data.constData() + parsedBytes);
+ parsedBytes += sizeof(quint32);
+
+ if (data.size() - parsedBytes < size)
+ return;
+
+ if (size == 0) {
+ // empty bundle; these are valid, but should they be allowed? the
+ // spec is unclear on this...
+ qWarning() << "Empty bundle?";
+ m_isValid = true;
+ m_immediate = isImmediate;
+ m_timeEpoch = oscTimeEpoch;
+ m_timePico = oscTimePico;
+ return;
+ }
+
+ // "The contents are either an OSC Message or an OSC Bundle.
+ // Note this recursive definition: bundle may contain bundles."
+ QByteArray subdata = data.mid(parsedBytes, size);
+ parsedBytes += size;
+
+ // "The contents of an OSC packet must be either an OSC Message or an OSC Bundle.
+ // The first byte of the packet's contents unambiguously distinguishes between
+ // these two alternatives."
+ //
+ // we're not dealing with a packet here, but the same trick works just
+ // the same.
+ QByteArray bundleIdentifier = QByteArray("#bundle\0", 8);
+ if (subdata.startsWith('/')) {
+ // starts with / => address pattern => start of a message
+ QOscMessage subMessage(subdata);
+ if (subMessage.isValid()) {
+ m_isValid = true;
+ m_immediate = isImmediate;
+ m_timeEpoch = oscTimeEpoch;
+ m_timePico = oscTimePico;
+ m_messages.append(subMessage);
+ } else {
+ qWarning() << "Invalid sub-message";
+ return;
+ }
+ } else if (subdata.startsWith(bundleIdentifier)) {
+ // bundle identifier start => bundle
+ QOscBundle subBundle(subdata);
+ if (subBundle.isValid()) {
+ m_isValid = true;
+ m_immediate = isImmediate;
+ m_timeEpoch = oscTimeEpoch;
+ m_timePico = oscTimePico;
+ m_bundles.append(subBundle);
+ }
+ } else {
+ qWarning() << "Malformed sub-data!";
+ return;
+ }
+ }
+}
+
+
+bool QOscBundle::isValid() const
+{
+ return m_isValid;
+}
+
+QList<QOscBundle> QOscBundle::bundles() const
+{
+ return m_bundles;
+}
+
+QList<QOscMessage> QOscBundle::messages() const
+{
+ return m_messages;
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/plugins/generic/tuiotouch/qoscbundle_p.h b/src/plugins/generic/tuiotouch/qoscbundle_p.h
new file mode 100644
index 0000000000..b97cd1e761
--- /dev/null
+++ b/src/plugins/generic/tuiotouch/qoscbundle_p.h
@@ -0,0 +1,62 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Robin Burchell <robin.burchell@viroteck.net>
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtCore module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL21$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 or version 3 as published by the Free
+** Software Foundation and appearing in the file LICENSE.LGPLv21 and
+** LICENSE.LGPLv3 included in the packaging of this file. Please review the
+** following information to ensure the GNU Lesser General Public License
+** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QOSCBUNDLE_P_H
+#define QOSCBUNDLE_P_H
+
+#include "qoscmessage_p.h"
+
+QT_BEGIN_NAMESPACE
+
+class QOscBundle
+{
+public:
+ QOscBundle(const QByteArray &data);
+
+ bool isValid() const;
+ QList<QOscBundle> bundles() const;
+ QList<QOscMessage> messages() const;
+
+private:
+ bool m_isValid;
+ bool m_immediate;
+ quint32 m_timeEpoch;
+ quint32 m_timePico;
+ QList<QOscBundle> m_bundles;
+ QList<QOscMessage> m_messages;
+};
+
+QT_END_NAMESPACE
+
+#endif // QOSCBUNDLE_P_H
diff --git a/src/plugins/generic/tuiotouch/qoscmessage.cpp b/src/plugins/generic/tuiotouch/qoscmessage.cpp
new file mode 100644
index 0000000000..1ebc4ee434
--- /dev/null
+++ b/src/plugins/generic/tuiotouch/qoscmessage.cpp
@@ -0,0 +1,138 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Robin Burchell <robin.burchell@viroteck.net>
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtCore module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL21$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 or version 3 as published by the Free
+** Software Foundation and appearing in the file LICENSE.LGPLv21 and
+** LICENSE.LGPLv3 included in the packaging of this file. Please review the
+** following information to ensure the GNU Lesser General Public License
+** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QByteArray>
+#include <QDebug>
+#include <QtEndian>
+#include <QVariant>
+#include <QLoggingCategory>
+
+#include "qoscmessage_p.h"
+#include "qtuio_p.h"
+
+QT_BEGIN_NAMESPACE
+
+Q_LOGGING_CATEGORY(lcTuioMessage, "qt.qpa.tuio.message")
+
+// TUIO packets are transmitted using the OSC protocol, located at:
+// http://opensoundcontrol.org/specification
+// Snippets of this specification have been pasted into the source as a means of
+// easily communicating requirements.
+
+QOscMessage::QOscMessage(const QByteArray &data)
+ : m_isValid(false)
+{
+ qCDebug(lcTuioMessage) << data.toHex();
+ quint32 parsedBytes = 0;
+
+ // "An OSC message consists of an OSC Address Pattern"
+ QByteArray addressPattern;
+ if (!qt_readOscString(data, addressPattern, parsedBytes) || addressPattern.size() == 0)
+ return;
+
+ // "followed by an OSC Type Tag String"
+ QByteArray typeTagString;
+ if (!qt_readOscString(data, typeTagString, parsedBytes))
+ return;
+
+ // "Note: some older implementations of OSC may omit the OSC Type Tag string.
+ // Until all such implementations are updated, OSC implementations should be
+ // robust in the case of a missing OSC Type Tag String."
+ //
+ // (although, the editor notes one may question how exactly the hell one is
+ // supposed to be robust when the behavior is unspecified.)
+ if (typeTagString.size() == 0 || typeTagString.at(0) != ',')
+ return;
+
+ QList<QVariant> arguments;
+
+ // "followed by zero or more OSC Arguments."
+ for (int i = 1; i < typeTagString.size(); ++i) {
+ char typeTag = typeTagString.at(i);
+ if (typeTag == 's') { // osc-string
+ QByteArray aString;
+ if (!qt_readOscString(data, aString, parsedBytes))
+ return;
+ arguments.append(aString);
+ } else if (typeTag == 'i') { // int32
+ if (parsedBytes > (quint32)data.size() || data.size() - parsedBytes < sizeof(quint32))
+ return;
+
+ quint32 anInt = qFromBigEndian<quint32>((const uchar*)data.constData() + parsedBytes);
+ parsedBytes += sizeof(quint32);
+
+ // TODO: is int32 in OSC signed, or unsigned?
+ arguments.append((int)anInt);
+ } else if (typeTag == 'f') { // float32
+ if (parsedBytes > (quint32)data.size() || data.size() - parsedBytes < sizeof(quint32))
+ return;
+
+ Q_STATIC_ASSERT(sizeof(float) == sizeof(quint32));
+ union {
+ quint32 u;
+ float f;
+ } value;
+ value.u = qFromBigEndian<quint32>((const uchar*)data.constData() + parsedBytes);
+ parsedBytes += sizeof(quint32);
+ arguments.append(value.f);
+ } else {
+ qWarning() << "Reading argument of unknown type " << typeTag;
+ return;
+ }
+ }
+
+ m_isValid = true;
+ m_addressPattern = addressPattern;
+ m_arguments = arguments;
+
+ qCDebug(lcTuioMessage) << "Message with address pattern: " << addressPattern << " arguments: " << arguments;
+}
+
+bool QOscMessage::isValid() const
+{
+ return m_isValid;
+}
+
+QByteArray QOscMessage::addressPattern() const
+{
+ return m_addressPattern;
+}
+
+QList<QVariant> QOscMessage::arguments() const
+{
+ return m_arguments;
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/plugins/generic/tuiotouch/qoscmessage_p.h b/src/plugins/generic/tuiotouch/qoscmessage_p.h
new file mode 100644
index 0000000000..4282dce9d4
--- /dev/null
+++ b/src/plugins/generic/tuiotouch/qoscmessage_p.h
@@ -0,0 +1,57 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Robin Burchell <robin.burchell@viroteck.net>
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtCore module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL21$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 or version 3 as published by the Free
+** Software Foundation and appearing in the file LICENSE.LGPLv21 and
+** LICENSE.LGPLv3 included in the packaging of this file. Please review the
+** following information to ensure the GNU Lesser General Public License
+** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QOSCMESSAGE_P_H
+#define QOSCMESSAGE_P_H
+
+QT_BEGIN_NAMESPACE
+
+class QOscMessage
+{
+public:
+ QOscMessage(const QByteArray &data);
+ bool isValid() const;
+
+ QByteArray addressPattern() const;
+ QList<QVariant> arguments() const;
+
+private:
+ bool m_isValid;
+ QByteArray m_addressPattern;
+ QList<QVariant> m_arguments;
+};
+
+QT_END_NAMESPACE
+
+#endif
diff --git a/src/plugins/generic/tuiotouch/qtuio_p.h b/src/plugins/generic/tuiotouch/qtuio_p.h
new file mode 100644
index 0000000000..ac8e5a128c
--- /dev/null
+++ b/src/plugins/generic/tuiotouch/qtuio_p.h
@@ -0,0 +1,62 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Robin Burchell <robin.burchell@viroteck.net>
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtCore module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL21$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 or version 3 as published by the Free
+** Software Foundation and appearing in the file LICENSE.LGPLv21 and
+** LICENSE.LGPLv3 included in the packaging of this file. Please review the
+** following information to ensure the GNU Lesser General Public License
+** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QTUIO_P_H
+#define QTUIO_P_H
+
+QT_BEGIN_NAMESPACE
+
+inline bool qt_readOscString(const QByteArray &source, QByteArray &dest, quint32 &pos)
+{
+ int end = source.indexOf('\0', pos);
+ if (end < 0) {
+ pos = source.size();
+ dest = QByteArray();
+ return false;
+ }
+
+ dest = source.mid(pos, end - pos);
+
+ // Skip additional NULL bytes at the end of the string to make sure the
+ // total number of bits a multiple of 32 bits ("OSC-string" in the
+ // specification).
+ end += 4 - ((end - pos) % 4);
+
+ pos = end;
+ return true;
+}
+
+QT_END_NAMESPACE
+
+#endif
diff --git a/src/plugins/generic/tuiotouch/qtuiocursor_p.h b/src/plugins/generic/tuiotouch/qtuiocursor_p.h
new file mode 100644
index 0000000000..b58ab0fbae
--- /dev/null
+++ b/src/plugins/generic/tuiotouch/qtuiocursor_p.h
@@ -0,0 +1,102 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Robin Burchell <robin.burchell@viroteck.net>
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtCore module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL21$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 or version 3 as published by the Free
+** Software Foundation and appearing in the file LICENSE.LGPLv21 and
+** LICENSE.LGPLv3 included in the packaging of this file. Please review the
+** following information to ensure the GNU Lesser General Public License
+** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QTUIOCURSOR_P_H
+#define QTUIOCURSOR_P_H
+
+#include <Qt>
+
+QT_BEGIN_NAMESPACE
+
+class QTuioCursor
+{
+public:
+ QTuioCursor(int id = -1)
+ : m_id(id)
+ , m_x(0)
+ , m_y(0)
+ , m_vx(0)
+ , m_vy(0)
+ , m_acceleration(0)
+ , m_state(Qt::TouchPointPressed)
+ {
+ }
+
+ int id() const { return m_id; }
+
+ void setX(float x)
+ {
+ if (state() == Qt::TouchPointStationary &&
+ !qFuzzyCompare(m_x + 2.0, x + 2.0)) { // +2 because 1 is a valid value, and qFuzzyCompare can't cope with 0.0
+ setState(Qt::TouchPointMoved);
+ }
+ m_x = x;
+ }
+ float x() const { return m_x; }
+
+ void setY(float y)
+ {
+ if (state() == Qt::TouchPointStationary &&
+ !qFuzzyCompare(m_y + 2.0, y + 2.0)) { // +2 because 1 is a valid value, and qFuzzyCompare can't cope with 0.0
+ setState(Qt::TouchPointMoved);
+ }
+ m_y = y;
+ }
+ float y() const { return m_y; }
+
+ void setVX(float vx) { m_vx = vx; }
+ float vx() const { return m_vx; }
+
+ void setVY(float vy) { m_vy = vy; }
+ float vy() const { return m_vy; }
+
+ void setAcceleration(float acceleration) { m_acceleration = acceleration; }
+ float acceleration() const { return m_acceleration; }
+
+ void setState(const Qt::TouchPointState &state) { m_state = state; }
+ Qt::TouchPointState state() const { return m_state; }
+
+private:
+ int m_id;
+ float m_x;
+ float m_y;
+ float m_vx;
+ float m_vy;
+ float m_acceleration;
+ Qt::TouchPointState m_state;
+};
+
+QT_END_NAMESPACE
+
+#endif // QTUIOCURSOR_P_H
diff --git a/src/plugins/generic/tuiotouch/qtuiohandler.cpp b/src/plugins/generic/tuiotouch/qtuiohandler.cpp
new file mode 100644
index 0000000000..cf588afebc
--- /dev/null
+++ b/src/plugins/generic/tuiotouch/qtuiohandler.cpp
@@ -0,0 +1,337 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Robin Burchell <robin.burchell@viroteck.net>
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtCore module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL21$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 or version 3 as published by the Free
+** Software Foundation and appearing in the file LICENSE.LGPLv21 and
+** LICENSE.LGPLv3 included in the packaging of this file. Please review the
+** following information to ensure the GNU Lesser General Public License
+** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QLoggingCategory>
+#include <QRect>
+#include <QWindow>
+#include <QGuiApplication>
+
+#include <qpa/qwindowsysteminterface.h>
+
+#include "qtuiocursor_p.h"
+#include "qtuiohandler_p.h"
+#include "qoscbundle_p.h"
+
+QT_BEGIN_NAMESPACE
+
+Q_LOGGING_CATEGORY(lcTuioSource, "qt.qpa.tuio.source")
+Q_LOGGING_CATEGORY(lcTuioSet, "qt.qpa.tuio.set")
+
+QTuioHandler::QTuioHandler(const QString &specification)
+ : m_device(new QTouchDevice) // not leaked, QTouchDevice cleans up registered devices itself
+{
+ QStringList args = specification.split(':');
+ int portNumber = 3333;
+ int rotationAngle = 0;
+ bool invertx = false;
+ bool inverty = false;
+
+ for (int i = 0; i < args.count(); ++i) {
+ if (args.at(i).startsWith("udp=")) {
+ QString portString = args.at(i).section('=', 1, 1);
+ portNumber = portString.toInt();
+ } else if (args.at(i).startsWith("tcp=")) {
+ QString portString = args.at(i).section('=', 1, 1);
+ portNumber = portString.toInt();
+ qWarning() << "TCP is not yet supported. Falling back to UDP on " << portNumber;
+ } else if (args.at(i) == "invertx") {
+ invertx = true;
+ } else if (args.at(i) == "inverty") {
+ inverty = true;
+ } else if (args.at(i).startsWith("rotate=")) {
+ QString rotateArg = args.at(i).section('=', 1, 1);
+ int argValue = rotateArg.toInt();
+ switch (argValue) {
+ case 90:
+ case 180:
+ case 270:
+ rotationAngle = argValue;
+ default:
+ break;
+ }
+ }
+ }
+
+ if (rotationAngle)
+ m_transform = QTransform::fromTranslate(0.5, 0.5).rotate(rotationAngle).translate(-0.5, -0.5);
+
+ if (invertx)
+ m_transform *= QTransform::fromTranslate(0.5, 0.5).scale(-1.0, 1.0).translate(-0.5, -0.5);
+
+ if (inverty)
+ m_transform *= QTransform::fromTranslate(0.5, 0.5).scale(1.0, -1.0).translate(-0.5, -0.5);
+
+ m_device->setName("TUIO"); // TODO: multiple based on SOURCE?
+ m_device->setType(QTouchDevice::TouchScreen);
+ m_device->setCapabilities(QTouchDevice::Position |
+ QTouchDevice::Area |
+ QTouchDevice::Velocity |
+ QTouchDevice::NormalizedPosition);
+ QWindowSystemInterface::registerTouchDevice(m_device);
+
+ if (!m_socket.bind(QHostAddress::Any, portNumber)) {
+ qWarning() << "Failed to bind TUIO socket: " << m_socket.errorString();
+ return;
+ }
+
+ connect(&m_socket, &QUdpSocket::readyRead, this, &QTuioHandler::processPackets);
+}
+
+QTuioHandler::~QTuioHandler()
+{
+}
+
+void QTuioHandler::processPackets()
+{
+ while (m_socket.hasPendingDatagrams()) {
+ QByteArray datagram;
+ datagram.resize(m_socket.pendingDatagramSize());
+ QHostAddress sender;
+ quint16 senderPort;
+
+ qint64 size = m_socket.readDatagram(datagram.data(), datagram.size(),
+ &sender, &senderPort);
+
+ if (size == -1)
+ continue;
+
+ if (size != datagram.size())
+ datagram.resize(size);
+
+ QOscBundle bundle(datagram);
+ if (!bundle.isValid())
+ continue;
+
+ // "A typical TUIO bundle will contain an initial ALIVE message,
+ // followed by an arbitrary number of SET messages that can fit into the
+ // actual bundle capacity and a concluding FSEQ message. A minimal TUIO
+ // bundle needs to contain at least the compulsory ALIVE and FSEQ
+ // messages. The FSEQ frame ID is incremented for each delivered bundle,
+ // while redundant bundles can be marked using the frame sequence ID
+ // -1."
+ QList<QOscMessage> messages = bundle.messages();
+
+ foreach (const QOscMessage &message, messages) {
+ if (message.addressPattern() != "/tuio/2Dcur") {
+ qWarning() << "Ignoring unknown address pattern " << message.addressPattern();
+ continue;
+ }
+
+ QList<QVariant> arguments = message.arguments();
+ if (arguments.count() == 0) {
+ qWarning() << "Ignoring TUIO message with no arguments";
+ continue;
+ }
+
+ QByteArray messageType = arguments.at(0).toByteArray();
+ if (messageType == "source") {
+ process2DCurSource(message);
+ } else if (messageType == "alive") {
+ process2DCurAlive(message);
+ } else if (messageType == "set") {
+ process2DCurSet(message);
+ } else if (messageType == "fseq") {
+ process2DCurFseq(message);
+ } else {
+ qWarning() << "Ignoring unknown TUIO message type: " << messageType;
+ continue;
+ }
+ }
+ }
+}
+
+void QTuioHandler::process2DCurSource(const QOscMessage &message)
+{
+ QList<QVariant> arguments = message.arguments();
+ if (arguments.count() != 2) {
+ qWarning() << "Ignoring malformed TUIO source message: " << arguments.count();
+ return;
+ }
+
+ if (QMetaType::Type(arguments.at(1).type()) != QMetaType::QByteArray) {
+ qWarning() << "Ignoring malformed TUIO source message (bad argument type)";
+ return;
+ }
+
+ qCDebug(lcTuioSource) << "Got TUIO source message from: " << arguments.at(1).toByteArray();
+}
+
+void QTuioHandler::process2DCurAlive(const QOscMessage &message)
+{
+ QList<QVariant> arguments = message.arguments();
+
+ // delta the notified cursors that are active, against the ones we already
+ // know of.
+ //
+ // TBD: right now we're assuming one 2Dcur alive message corresponds to a
+ // new data source from the input. is this correct, or do we need to store
+ // changes and only process the deltas on fseq?
+ QMap<int, QTuioCursor> oldActiveCursors = m_activeCursors;
+ QMap<int, QTuioCursor> newActiveCursors;
+
+ for (int i = 1; i < arguments.count(); ++i) {
+ if (QMetaType::Type(arguments.at(i).type()) != QMetaType::Int) {
+ qWarning() << "Ignoring malformed TUIO alive message (bad argument on position" << i << arguments << ")";
+ return;
+ }
+
+ int cursorId = arguments.at(i).toInt();
+ if (!oldActiveCursors.contains(cursorId)) {
+ // newly active
+ QTuioCursor cursor(cursorId);
+ cursor.setState(Qt::TouchPointPressed);
+ newActiveCursors.insert(cursorId, cursor);
+ } else {
+ // we already know about it, remove it so it isn't marked as released
+ QTuioCursor cursor = oldActiveCursors.value(cursorId);
+ cursor.setState(Qt::TouchPointStationary); // position change in SET will update if needed
+ newActiveCursors.insert(cursorId, cursor);
+ oldActiveCursors.remove(cursorId);
+ }
+ }
+
+ // anything left is dead now
+ QMap<int, QTuioCursor>::ConstIterator it = oldActiveCursors.constBegin();
+
+ // deadCursors should be cleared from the last FSEQ now
+ m_deadCursors.reserve(oldActiveCursors.size());
+
+ // TODO: there could be an issue of resource exhaustion here if FSEQ isn't
+ // sent in a timely fashion. we should probably track message counts and
+ // force-flush if we get too many built up.
+ while (it != oldActiveCursors.constEnd()) {
+ m_deadCursors.append(it.value());
+ ++it;
+ }
+
+ m_activeCursors = newActiveCursors;
+}
+
+void QTuioHandler::process2DCurSet(const QOscMessage &message)
+{
+ QList<QVariant> arguments = message.arguments();
+ if (arguments.count() < 7) {
+ qWarning() << "Ignoring malformed TUIO set message with too few arguments: " << arguments.count();
+ return;
+ }
+
+ if (QMetaType::Type(arguments.at(1).type()) != QMetaType::Int ||
+ QMetaType::Type(arguments.at(2).type()) != QMetaType::Float ||
+ QMetaType::Type(arguments.at(3).type()) != QMetaType::Float ||
+ QMetaType::Type(arguments.at(4).type()) != QMetaType::Float ||
+ QMetaType::Type(arguments.at(5).type()) != QMetaType::Float ||
+ QMetaType::Type(arguments.at(6).type()) != QMetaType::Float
+ ) {
+ qWarning() << "Ignoring malformed TUIO set message with bad types: " << arguments;
+ return;
+ }
+
+ int cursorId = arguments.at(1).toInt();
+ float x = arguments.at(2).toFloat();
+ float y = arguments.at(3).toFloat();
+ float vx = arguments.at(4).toFloat();
+ float vy = arguments.at(5).toFloat();
+ float acceleration = arguments.at(6).toFloat();
+
+ QMap<int, QTuioCursor>::Iterator it = m_activeCursors.find(cursorId);
+ if (it == m_activeCursors.end()) {
+ qWarning() << "Ignoring malformed TUIO set for nonexistent cursor " << cursorId;
+ return;
+ }
+
+ qCDebug(lcTuioSet) << "Processing SET for " << cursorId << " x: " << x << y << vx << vy << acceleration;
+ QTuioCursor &cur = *it;
+ cur.setX(x);
+ cur.setY(y);
+ cur.setVX(vx);
+ cur.setVY(vy);
+ cur.setAcceleration(acceleration);
+}
+
+QWindowSystemInterface::TouchPoint QTuioHandler::cursorToTouchPoint(const QTuioCursor &tc, QWindow *win)
+{
+ QWindowSystemInterface::TouchPoint tp;
+ tp.id = tc.id();
+ tp.pressure = 1.0f;
+
+ tp.normalPosition = QPointF(tc.x(), tc.y());
+
+ if (!m_transform.isIdentity())
+ tp.normalPosition = m_transform.map(tp.normalPosition);
+
+ tp.state = tc.state();
+ tp.area = QRectF(0, 0, 1, 1);
+
+ // we map the touch to the size of the window. we do this, because frankly,
+ // trying to figure out which part of the screen to hit in order to press an
+ // element on the UI is pretty tricky when one is not using an overlay-style
+ // TUIO device.
+ //
+ // in the future, it might make sense to make this choice optional,
+ // dependent on the spec.
+ QPointF relPos = QPointF(win->size().width() * tp.normalPosition.x(), win->size().height() * tp.normalPosition.y());
+ QPointF delta = relPos - relPos.toPoint();
+ tp.area.moveCenter(win->mapToGlobal(relPos.toPoint()) + delta);
+ tp.velocity = QVector2D(win->size().width() * tc.vx(), win->size().height() * tc.vy());
+ return tp;
+}
+
+
+void QTuioHandler::process2DCurFseq(const QOscMessage &message)
+{
+ Q_UNUSED(message); // TODO: do we need to do anything with the frame id?
+
+ QWindow *win = QGuiApplication::focusWindow();
+ if (!win)
+ return;
+
+ QList<QWindowSystemInterface::TouchPoint> tpl;
+
+ foreach (const QTuioCursor &tc, m_activeCursors) {
+ QWindowSystemInterface::TouchPoint tp = cursorToTouchPoint(tc, win);
+ tpl.append(tp);
+ }
+
+ foreach (const QTuioCursor &tc, m_deadCursors) {
+ QWindowSystemInterface::TouchPoint tp = cursorToTouchPoint(tc, win);
+ tp.state = Qt::TouchPointReleased;
+ tpl.append(tp);
+ }
+ QWindowSystemInterface::handleTouchEvent(win, m_device, tpl);
+
+ m_deadCursors.clear();
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/plugins/generic/tuiotouch/qtuiohandler_p.h b/src/plugins/generic/tuiotouch/qtuiohandler_p.h
new file mode 100644
index 0000000000..99111fec8b
--- /dev/null
+++ b/src/plugins/generic/tuiotouch/qtuiohandler_p.h
@@ -0,0 +1,79 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Robin Burchell <robin.burchell@viroteck.net>
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtCore module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL21$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 or version 3 as published by the Free
+** Software Foundation and appearing in the file LICENSE.LGPLv21 and
+** LICENSE.LGPLv3 included in the packaging of this file. Please review the
+** following information to ensure the GNU Lesser General Public License
+** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QTUIOHANDLER_P_H
+#define QTUIOHANDLER_P_H
+
+#include <QObject>
+#include <QMap>
+#include <QUdpSocket>
+#include <QVector>
+#include <QTransform>
+
+#include <qpa/qwindowsysteminterface.h>
+
+QT_BEGIN_NAMESPACE
+
+class QTouchDevice;
+class QOscMessage;
+class QTuioCursor;
+
+class QTuioHandler : public QObject
+{
+ Q_OBJECT
+
+public:
+ explicit QTuioHandler(const QString &specification);
+ virtual ~QTuioHandler();
+
+private slots:
+ void processPackets();
+ void process2DCurSource(const QOscMessage &message);
+ void process2DCurAlive(const QOscMessage &message);
+ void process2DCurSet(const QOscMessage &message);
+ void process2DCurFseq(const QOscMessage &message);
+
+private:
+ QWindowSystemInterface::TouchPoint cursorToTouchPoint(const QTuioCursor &tc, QWindow *win);
+
+ QTouchDevice *m_device;
+ QUdpSocket m_socket;
+ QMap<int, QTuioCursor> m_activeCursors;
+ QVector<QTuioCursor> m_deadCursors;
+ QTransform m_transform;
+};
+
+QT_END_NAMESPACE
+
+#endif // QTUIOHANDLER_P_H
diff --git a/src/plugins/generic/tuiotouch/tuiotouch.json b/src/plugins/generic/tuiotouch/tuiotouch.json
new file mode 100644
index 0000000000..bdbbcd203a
--- /dev/null
+++ b/src/plugins/generic/tuiotouch/tuiotouch.json
@@ -0,0 +1,3 @@
+{
+ "Keys": [ "TuioTouch" ]
+}
diff --git a/src/plugins/generic/tuiotouch/tuiotouch.pro b/src/plugins/generic/tuiotouch/tuiotouch.pro
new file mode 100644
index 0000000000..5e53403f5b
--- /dev/null
+++ b/src/plugins/generic/tuiotouch/tuiotouch.pro
@@ -0,0 +1,26 @@
+TARGET = qtuiotouchplugin
+
+PLUGIN_TYPE = generic
+PLUGIN_EXTENDS = -
+PLUGIN_CLASS_NAME = QTuioTouchPlugin
+load(qt_plugin)
+
+QT += \
+ core-private \
+ gui-private \
+ network
+
+SOURCES += \
+ main.cpp \
+ qoscbundle.cpp \
+ qoscmessage.cpp \
+ qtuiohandler.cpp
+
+HEADERS += \
+ qoscbundle_p.h \
+ qoscmessage_p.h \
+ qtuiohandler_p.h \
+ qtuiocursor_p.h
+
+OTHER_FILES += \
+ tuiotouch.json
diff --git a/src/plugins/imageformats/gif/main.h b/src/plugins/imageformats/gif/main.h
index 733fad95cd..ac91fb79f6 100644
--- a/src/plugins/imageformats/gif/main.h
+++ b/src/plugins/imageformats/gif/main.h
@@ -51,8 +51,8 @@ public:
QGifPlugin();
~QGifPlugin();
- Capabilities capabilities(QIODevice *device, const QByteArray &format) const;
- QImageIOHandler *create(QIODevice *device, const QByteArray &format = QByteArray()) const;
+ Capabilities capabilities(QIODevice *device, const QByteArray &format) const Q_DECL_OVERRIDE;
+ QImageIOHandler *create(QIODevice *device, const QByteArray &format = QByteArray()) const Q_DECL_OVERRIDE;
};
QT_END_NAMESPACE
diff --git a/src/plugins/imageformats/ico/main.h b/src/plugins/imageformats/ico/main.h
index 30534cc681..dadceb4445 100644
--- a/src/plugins/imageformats/ico/main.h
+++ b/src/plugins/imageformats/ico/main.h
@@ -48,8 +48,8 @@ class QICOPlugin : public QImageIOPlugin
Q_OBJECT
Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QImageIOHandlerFactoryInterface" FILE "ico.json")
public:
- Capabilities capabilities(QIODevice *device, const QByteArray &format) const;
- QImageIOHandler *create(QIODevice *device, const QByteArray &format = QByteArray()) const;
+ Capabilities capabilities(QIODevice *device, const QByteArray &format) const Q_DECL_OVERRIDE;
+ QImageIOHandler *create(QIODevice *device, const QByteArray &format = QByteArray()) const Q_DECL_OVERRIDE;
};
QT_END_NAMESPACE
diff --git a/src/plugins/imageformats/ico/qicohandler.h b/src/plugins/imageformats/ico/qicohandler.h
index a470e12b5e..dbec0d3ce8 100644
--- a/src/plugins/imageformats/ico/qicohandler.h
+++ b/src/plugins/imageformats/ico/qicohandler.h
@@ -44,20 +44,20 @@ public:
QtIcoHandler(QIODevice *device);
virtual ~QtIcoHandler();
- bool canRead() const;
- bool read(QImage *image);
- bool write(const QImage &image);
+ bool canRead() const Q_DECL_OVERRIDE;
+ bool read(QImage *image) Q_DECL_OVERRIDE;
+ bool write(const QImage &image) Q_DECL_OVERRIDE;
- QByteArray name() const;
+ QByteArray name() const Q_DECL_OVERRIDE;
- int imageCount() const;
- bool jumpToImage(int imageNumber);
- bool jumpToNextImage();
+ int imageCount() const Q_DECL_OVERRIDE;
+ bool jumpToImage(int imageNumber) Q_DECL_OVERRIDE;
+ bool jumpToNextImage() Q_DECL_OVERRIDE;
static bool canRead(QIODevice *device);
- bool supportsOption(ImageOption option) const;
- QVariant option(ImageOption option) const;
+ bool supportsOption(ImageOption option) const Q_DECL_OVERRIDE;
+ QVariant option(ImageOption option) const Q_DECL_OVERRIDE;
private:
int m_currentIconIndex;
diff --git a/src/plugins/imageformats/jpeg/main.h b/src/plugins/imageformats/jpeg/main.h
index 2226241747..a6d9e95371 100644
--- a/src/plugins/imageformats/jpeg/main.h
+++ b/src/plugins/imageformats/jpeg/main.h
@@ -47,8 +47,8 @@ class QJpegPlugin : public QImageIOPlugin
Q_OBJECT
Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QImageIOHandlerFactoryInterface" FILE "jpeg.json")
public:
- Capabilities capabilities(QIODevice *device, const QByteArray &format) const;
- QImageIOHandler *create(QIODevice *device, const QByteArray &format = QByteArray()) const;
+ Capabilities capabilities(QIODevice *device, const QByteArray &format) const Q_DECL_OVERRIDE;
+ QImageIOHandler *create(QIODevice *device, const QByteArray &format = QByteArray()) const Q_DECL_OVERRIDE;
};
QT_END_NAMESPACE
diff --git a/src/plugins/platforminputcontexts/compose/main.cpp b/src/plugins/platforminputcontexts/compose/main.cpp
index ee0a147dd4..2fdc3b37ef 100644
--- a/src/plugins/platforminputcontexts/compose/main.cpp
+++ b/src/plugins/platforminputcontexts/compose/main.cpp
@@ -45,7 +45,7 @@ class QComposePlatformInputContextPlugin : public QPlatformInputContextPlugin
Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QPlatformInputContextFactoryInterface" FILE "compose.json")
public:
- QComposeInputContext *create(const QString &, const QStringList &);
+ QComposeInputContext *create(const QString &, const QStringList &) Q_DECL_OVERRIDE;
};
QComposeInputContext *QComposePlatformInputContextPlugin::create(const QString &system, const QStringList &paramList)
diff --git a/src/plugins/platforminputcontexts/compose/qcomposeplatforminputcontext.h b/src/plugins/platforminputcontexts/compose/qcomposeplatforminputcontext.h
index 897b164b3b..d2e80bebc2 100644
--- a/src/plugins/platforminputcontexts/compose/qcomposeplatforminputcontext.h
+++ b/src/plugins/platforminputcontexts/compose/qcomposeplatforminputcontext.h
@@ -52,11 +52,11 @@ public:
QComposeInputContext();
~QComposeInputContext();
- bool isValid() const;
- void setFocusObject(QObject *object);
- void reset();
- void update(Qt::InputMethodQueries);
- bool filterEvent(const QEvent *event);
+ bool isValid() const Q_DECL_OVERRIDE;
+ void setFocusObject(QObject *object) Q_DECL_OVERRIDE;
+ void reset() Q_DECL_OVERRIDE;
+ void update(Qt::InputMethodQueries) Q_DECL_OVERRIDE;
+ bool filterEvent(const QEvent *event) Q_DECL_OVERRIDE;
protected:
void clearComposeBuffer();
diff --git a/src/plugins/platforminputcontexts/ibus/main.cpp b/src/plugins/platforminputcontexts/ibus/main.cpp
index 8460b62a4f..7b62e2ea94 100644
--- a/src/plugins/platforminputcontexts/ibus/main.cpp
+++ b/src/plugins/platforminputcontexts/ibus/main.cpp
@@ -45,7 +45,7 @@ class QIbusPlatformInputContextPlugin : public QPlatformInputContextPlugin
Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QPlatformInputContextFactoryInterface" FILE "ibus.json")
public:
- QIBusPlatformInputContext *create(const QString&, const QStringList&);
+ QIBusPlatformInputContext *create(const QString&, const QStringList&) Q_DECL_OVERRIDE;
};
QIBusPlatformInputContext *QIbusPlatformInputContextPlugin::create(const QString& system, const QStringList& paramList)
diff --git a/src/plugins/platforminputcontexts/ibus/qibusplatforminputcontext.h b/src/plugins/platforminputcontexts/ibus/qibusplatforminputcontext.h
index dda24aca08..8ed69eb980 100644
--- a/src/plugins/platforminputcontexts/ibus/qibusplatforminputcontext.h
+++ b/src/plugins/platforminputcontexts/ibus/qibusplatforminputcontext.h
@@ -47,13 +47,13 @@ public:
QIBusPlatformInputContext();
~QIBusPlatformInputContext();
- bool isValid() const;
- void setFocusObject(QObject *object);
+ bool isValid() const Q_DECL_OVERRIDE;
+ void setFocusObject(QObject *object) Q_DECL_OVERRIDE;
- void invokeAction(QInputMethod::Action a, int x);
- void reset();
- void commit();
- void update(Qt::InputMethodQueries);
+ void invokeAction(QInputMethod::Action a, int x) Q_DECL_OVERRIDE;
+ void reset() Q_DECL_OVERRIDE;
+ void commit() Q_DECL_OVERRIDE;
+ void update(Qt::InputMethodQueries) Q_DECL_OVERRIDE;
Q_INVOKABLE bool x11FilterEvent(uint keyval, uint keycode, uint state, bool press);
diff --git a/src/plugins/platforms/android/androidjniinput.cpp b/src/plugins/platforms/android/androidjniinput.cpp
index 3a80f9437a..59125ac0d2 100644
--- a/src/plugins/platforms/android/androidjniinput.cpp
+++ b/src/plugins/platforms/android/androidjniinput.cpp
@@ -155,7 +155,7 @@ namespace QtAndroidInput
static void longPress(JNIEnv */*env*/, jobject /*thiz*/, jint /*winId*/, jint x, jint y)
{
//### TODO: add proper API for Qt 5.2
- static bool rightMouseFromLongPress = qgetenv("QT_NECESSITAS_COMPATIBILITY_LONG_PRESS").toInt();
+ static bool rightMouseFromLongPress = qEnvironmentVariableIntValue("QT_NECESSITAS_COMPATIBILITY_LONG_PRESS");
if (!rightMouseFromLongPress)
return;
m_ignoreMouseEvents = true;
diff --git a/src/plugins/platforms/android/androidjnimain.cpp b/src/plugins/platforms/android/androidjnimain.cpp
index d1e78dfe5d..df0a8c56cb 100644
--- a/src/plugins/platforms/android/androidjnimain.cpp
+++ b/src/plugins/platforms/android/androidjnimain.cpp
@@ -412,7 +412,7 @@ namespace QtAndroid
bool blockEventLoopsWhenSuspended()
{
- static bool block = qgetenv("QT_BLOCK_EVENT_LOOPS_WHEN_SUSPENDED").toInt();
+ static bool block = qEnvironmentVariableIntValue("QT_BLOCK_EVENT_LOOPS_WHEN_SUSPENDED");
return block;
}
diff --git a/src/plugins/platforms/android/androidjnimenu.cpp b/src/plugins/platforms/android/androidjnimenu.cpp
index 23182c6e57..36c349f6b4 100644
--- a/src/plugins/platforms/android/androidjnimenu.cpp
+++ b/src/plugins/platforms/android/androidjnimenu.cpp
@@ -199,7 +199,7 @@ namespace QtAndroidMenu
env->DeleteLocalRef(env->CallObjectMethod(menuItem, setEnabledMenuItemMethodID, enabled));
if (!icon.isNull()) { // isNull() only checks the d pointer, not the actual image data.
- int sz = qMax(36, qgetenv("QT_ANDROID_APP_ICON_SIZE").toInt());
+ int sz = qMax(36, qEnvironmentVariableIntValue("QT_ANDROID_APP_ICON_SIZE"));
QImage img = icon.pixmap(QSize(sz,sz),
enabled
? QIcon::Normal
diff --git a/src/plugins/platforms/android/qandroidassetsfileenginehandler.cpp b/src/plugins/platforms/android/qandroidassetsfileenginehandler.cpp
index 06303cdd10..2010c19bd4 100644
--- a/src/plugins/platforms/android/qandroidassetsfileenginehandler.cpp
+++ b/src/plugins/platforms/android/qandroidassetsfileenginehandler.cpp
@@ -254,7 +254,7 @@ private:
AndroidAssetsFileEngineHandler::AndroidAssetsFileEngineHandler()
- : m_assetsCache(std::max(5, qgetenv("QT_ANDROID_MAX_ASSETS_CACHE_SIZE").toInt()))
+ : m_assetsCache(std::max(5, qEnvironmentVariableIntValue("QT_ANDROID_MAX_ASSETS_CACHE_SIZE")))
, m_hasPrepopulatedCache(false)
, m_hasTriedPrepopulatingCache(false)
{
diff --git a/src/plugins/platforms/android/qandroidplatformscreen.cpp b/src/plugins/platforms/android/qandroidplatformscreen.cpp
index b70f936be1..940add3a38 100644
--- a/src/plugins/platforms/android/qandroidplatformscreen.cpp
+++ b/src/plugins/platforms/android/qandroidplatformscreen.cpp
@@ -85,7 +85,7 @@ QAndroidPlatformScreen::QAndroidPlatformScreen():QObject(),QPlatformScreen()
m_size = QSize(QAndroidPlatformIntegration::m_defaultScreenWidth, QAndroidPlatformIntegration::m_defaultScreenHeight);
// Raster only apps should set QT_ANDROID_RASTER_IMAGE_DEPTH to 16
// is way much faster than 32
- if (qgetenv("QT_ANDROID_RASTER_IMAGE_DEPTH").toInt() == 16) {
+ if (qEnvironmentVariableIntValue("QT_ANDROID_RASTER_IMAGE_DEPTH") == 16) {
m_format = QImage::Format_RGB16;
m_depth = 16;
} else {
diff --git a/src/plugins/platforms/android/qandroidplatformtheme.cpp b/src/plugins/platforms/android/qandroidplatformtheme.cpp
index 35eb282994..f1ddcefef6 100644
--- a/src/plugins/platforms/android/qandroidplatformtheme.cpp
+++ b/src/plugins/platforms/android/qandroidplatformtheme.cpp
@@ -450,7 +450,7 @@ QVariant QAndroidPlatformTheme::themeHint(ThemeHint hint) const
{
switch (hint) {
case StyleNames:
- if (qgetenv("QT_USE_ANDROID_NATIVE_STYLE").toInt()
+ if (qEnvironmentVariableIntValue("QT_USE_ANDROID_NATIVE_STYLE")
&& m_androidStyleData) {
return QStringList("android");
}
@@ -458,7 +458,7 @@ QVariant QAndroidPlatformTheme::themeHint(ThemeHint hint) const
case MouseDoubleClickDistance:
{
- int minimumDistance = qgetenv("QT_ANDROID_MINIMUM_MOUSE_DOUBLE_CLICK_DISTANCE").toInt();
+ int minimumDistance = qEnvironmentVariableIntValue("QT_ANDROID_MINIMUM_MOUSE_DOUBLE_CLICK_DISTANCE");
int ret = minimumDistance;
QAndroidPlatformIntegration *platformIntegration
@@ -502,7 +502,7 @@ QString QAndroidPlatformTheme::standardButtonText(int button) const
bool QAndroidPlatformTheme::usePlatformNativeDialog(QPlatformTheme::DialogType type) const
{
if (type == MessageDialog)
- return qgetenv("QT_USE_ANDROID_NATIVE_DIALOGS").toInt() == 1;
+ return qEnvironmentVariableIntValue("QT_USE_ANDROID_NATIVE_DIALOGS") == 1;
return false;
}
diff --git a/src/plugins/platforms/cocoa/qcocoaintegration.mm b/src/plugins/platforms/cocoa/qcocoaintegration.mm
index 72bd09625a..180cb23669 100644
--- a/src/plugins/platforms/cocoa/qcocoaintegration.mm
+++ b/src/plugins/platforms/cocoa/qcocoaintegration.mm
@@ -337,7 +337,7 @@ QCocoaIntegration::~QCocoaIntegration()
// Delete screens in reverse order to avoid crash in case of multiple screens
while (!mScreens.isEmpty()) {
- delete mScreens.takeLast();
+ destroyScreen(mScreens.takeLast());
}
clearToolbars();
@@ -397,7 +397,7 @@ void QCocoaIntegration::updateScreens()
// Now the leftovers in remainingScreens are no longer current, so we can delete them.
foreach (QCocoaScreen* screen, remainingScreens) {
mScreens.removeOne(screen);
- delete screen;
+ destroyScreen(screen);
}
// All screens in mScreens are siblings, because we ignored the mirrors.
foreach (QCocoaScreen* screen, mScreens)
diff --git a/src/plugins/platforms/cocoa/qcocoasystemtrayicon.h b/src/plugins/platforms/cocoa/qcocoasystemtrayicon.h
index c527c478ff..c426cacc35 100755
--- a/src/plugins/platforms/cocoa/qcocoasystemtrayicon.h
+++ b/src/plugins/platforms/cocoa/qcocoasystemtrayicon.h
@@ -57,7 +57,7 @@ public:
virtual void updateToolTip(const QString &toolTip);
virtual void updateMenu(QPlatformMenu *menu);
virtual QRect geometry() const;
- virtual void showMessage(const QString &msg, const QString &title,
+ virtual void showMessage(const QString &title, const QString &msg,
const QIcon& icon, MessageIcon iconType, int secs);
virtual bool isSystemTrayAvailable() const;
diff --git a/src/plugins/platforms/cocoa/qnsview.h b/src/plugins/platforms/cocoa/qnsview.h
index 8d8df13dc3..ffa616f968 100644
--- a/src/plugins/platforms/cocoa/qnsview.h
+++ b/src/plugins/platforms/cocoa/qnsview.h
@@ -74,6 +74,7 @@ Q_FORWARD_DECLARE_OBJC_CLASS(QNSViewMouseMoveHelper);
NSString *m_inputSource;
QNSViewMouseMoveHelper *m_mouseMoveHelper;
bool m_resendKeyEvent;
+ bool m_scrolling;
}
- (id)init;
diff --git a/src/plugins/platforms/cocoa/qnsview.mm b/src/plugins/platforms/cocoa/qnsview.mm
index 699340795d..9dcad519a3 100644
--- a/src/plugins/platforms/cocoa/qnsview.mm
+++ b/src/plugins/platforms/cocoa/qnsview.mm
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of the plugins of the Qt Toolkit.
@@ -160,6 +160,7 @@ static NSString *_q_NSWindowDidChangeOcclusionStateNotification = nil;
m_inputSource = 0;
m_mouseMoveHelper = [[QNSViewMouseMoveHelper alloc] initWithView:self];
m_resendKeyEvent = false;
+ m_scrolling = false;
if (!touchDevice) {
touchDevice = new QTouchDevice;
@@ -415,8 +416,8 @@ static NSString *_q_NSWindowDidChangeOcclusionStateNotification = nil;
&& [notificationName isEqualToString:_q_NSWindowDidChangeOcclusionStateNotification]) {
#if MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_9
// ### HACK Remove the enum declaration, the warning disabling and the cast further down once 10.8 is unsupported
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wobjc-method-access"
+QT_WARNING_PUSH
+QT_WARNING_DISABLE_CLANG("-Wobjc-method-access")
enum { NSWindowOcclusionStateVisible = 1UL << 1 };
#endif
if ((NSUInteger)[self.window occlusionState] & NSWindowOcclusionStateVisible) {
@@ -431,7 +432,7 @@ static NSString *_q_NSWindowDidChangeOcclusionStateNotification = nil;
m_platformWindow->obscureWindow();
}
#if MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_9
-#pragma clang diagnostic pop
+QT_WARNING_POP
#endif
} else if (notificationName == NSWindowDidChangeScreenNotification) {
if (m_window) {
@@ -1265,12 +1266,9 @@ static QTabletEvent::TabletDevice wacomTabletDevice(NSEvent *theEvent)
{
if (m_window->flags() & Qt::WindowTransparentForInput)
return [super scrollWheel:theEvent];
- const EventRef carbonEvent = (EventRef)[theEvent eventRef];
- const UInt32 carbonEventKind = carbonEvent ? ::GetEventKind(carbonEvent) : 0;
- const bool scrollEvent = carbonEventKind == kEventMouseScroll;
QPoint angleDelta;
- if (scrollEvent) {
+ if ([theEvent hasPreciseScrollingDeltas]) {
// The mouse device contains pixel scroll wheel support (Mighty Mouse, Trackpad).
// Since deviceDelta is delivered as pixels rather than degrees, we need to
// convert from pixels to degrees in a sensible manner.
@@ -1280,7 +1278,6 @@ static QTabletEvent::TabletDevice wacomTabletDevice(NSEvent *theEvent)
angleDelta.setX([theEvent scrollingDeltaX] * pixelsToDegrees);
angleDelta.setY([theEvent scrollingDeltaY] * pixelsToDegrees);
} else {
- // carbonEventKind == kEventMouseWheelMoved
// Remove acceleration, and use either -120 or 120 as delta:
angleDelta.setX(qBound(-120, int([theEvent deltaX] * 10000), 120));
angleDelta.setY(qBound(-120, int([theEvent deltaY] * 10000), 120));
@@ -1321,16 +1318,20 @@ static QTabletEvent::TabletDevice wacomTabletDevice(NSEvent *theEvent)
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_8
if (QSysInfo::QSysInfo::MacintoshVersion >= QSysInfo::MV_10_8) {
// On 10.8 and above, MayBegin is likely to happen. We treat it the same as an actual begin.
- if (phase == NSEventPhaseMayBegin)
+ if (phase == NSEventPhaseMayBegin) {
+ m_scrolling = true;
ph = Qt::ScrollBegin;
- } else
+ }
+ }
#endif
- if (phase == NSEventPhaseBegan) {
- // On 10.7, MayBegin will not happen, so Began is the actual beginning.
+ if (phase == NSEventPhaseBegan) {
+ // If MayBegin did not happen, Began is the actual beginning.
+ if (!m_scrolling)
ph = Qt::ScrollBegin;
- }
- if (phase == NSEventPhaseEnded || phase == NSEventPhaseCancelled) {
+ m_scrolling = true;
+ } else if (phase == NSEventPhaseEnded || phase == NSEventPhaseCancelled) {
ph = Qt::ScrollEnd;
+ m_scrolling = false;
}
QWindowSystemInterface::handleWheelEvent(m_window, qt_timestamp, qt_windowPoint, qt_screenPoint, pixelDelta, angleDelta, currentWheelModifiers, ph);
@@ -1419,7 +1420,7 @@ static QTabletEvent::TabletDevice wacomTabletDevice(NSEvent *theEvent)
if (m_sendKeyEvent && m_composingText.isEmpty())
QWindowSystemInterface::handleExtendedKeyEvent(focusWindow, timestamp, QEvent::Type(eventType), keyCode, modifiers,
- nativeScanCode, nativeVirtualKey, nativeModifiers, text, [nsevent isARepeat]);
+ nativeScanCode, nativeVirtualKey, nativeModifiers, text, [nsevent isARepeat], false);
m_sendKeyEvent = false;
m_resendKeyEvent = false;
diff --git a/src/plugins/platforms/direct2d/qwindowsdirect2dpaintengine.cpp b/src/plugins/platforms/direct2d/qwindowsdirect2dpaintengine.cpp
index a86bb0ee04..8c70f70edd 100644
--- a/src/plugins/platforms/direct2d/qwindowsdirect2dpaintengine.cpp
+++ b/src/plugins/platforms/direct2d/qwindowsdirect2dpaintengine.cpp
@@ -923,7 +923,11 @@ public:
static const char keyC[] = "HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows NT\\CurrentVersion\\FontSubstitutes";
const QString familyName = QString::fromWCharArray(lf.lfFaceName);
const QString nameSubstitute = QSettings(QLatin1String(keyC), QSettings::NativeFormat).value(familyName, familyName).toString();
- memcpy(lf.lfFaceName, nameSubstitute.utf16(), sizeof(wchar_t) * qMin(nameSubstitute.length() + 1, LF_FACESIZE));
+ if (nameSubstitute != familyName) {
+ const int nameSubstituteLength = qMin(nameSubstitute.length(), LF_FACESIZE - 1);
+ memcpy(lf.lfFaceName, nameSubstitute.utf16(), nameSubstituteLength * sizeof(wchar_t));
+ lf.lfFaceName[nameSubstituteLength] = 0;
+ }
ComPtr<IDWriteFont> dwriteFont;
HRESULT hr = QWindowsDirect2DContext::instance()->dwriteGdiInterop()->CreateFontFromLOGFONT(&lf, &dwriteFont);
diff --git a/src/plugins/platforms/eglfs/deviceintegration/deviceintegration.pro b/src/plugins/platforms/eglfs/deviceintegration/deviceintegration.pro
new file mode 100644
index 0000000000..d8ce385636
--- /dev/null
+++ b/src/plugins/platforms/eglfs/deviceintegration/deviceintegration.pro
@@ -0,0 +1,4 @@
+TEMPLATE = subdirs
+
+contains(QT_CONFIG, egl_x11): SUBDIRS += eglfs_x11
+contains(QT_CONFIG, kms): SUBDIRS += eglfs_kms
diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/eglfs_kms.json b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/eglfs_kms.json
new file mode 100644
index 0000000000..70fec1cacf
--- /dev/null
+++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/eglfs_kms.json
@@ -0,0 +1,3 @@
+{
+ "Keys": [ "eglfs_kms" ]
+}
diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/eglfs_kms.pro b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/eglfs_kms.pro
new file mode 100644
index 0000000000..2eb46f8427
--- /dev/null
+++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/eglfs_kms.pro
@@ -0,0 +1,26 @@
+TARGET = qeglfs-kms-integration
+
+PLUGIN_CLASS_NAME=QEglFSKmsIntegrationPlugin
+PLUGIN_TYPE=egldeviceintegrations
+
+load(qt_plugin)
+
+QT += core-private gui-private platformsupport-private eglfs_device_lib-private
+
+INCLUDEPATH += $$PWD/../..
+
+# Avoid X11 header collision
+DEFINES += MESA_EGL_NO_X11_HEADERS
+
+CONFIG += link_pkgconfig
+PKGCONFIG += libdrm gbm
+
+CONFIG += egl
+QMAKE_LFLAGS += $$QMAKE_LFLAGS_NOUNDEF
+
+SOURCES += $$PWD/qeglfskmsmain.cpp \
+ $$PWD/qeglfskmsintegration.cpp
+
+HEADERS += $$PWD/qeglfskmsintegration.h
+
+OTHER_FILES += $$PWD/eglfs_kms.json
diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsintegration.cpp b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsintegration.cpp
new file mode 100644
index 0000000000..5a9d3db236
--- /dev/null
+++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsintegration.cpp
@@ -0,0 +1,1155 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qeglfskmsintegration.h"
+#include "qeglfsintegration.h"
+#include "qeglfsscreen.h"
+
+#include <QtPlatformSupport/private/qeglplatformcursor_p.h>
+#include <QtPlatformSupport/private/qdevicediscovery_p.h>
+#include <QtCore/private/qcore_unix_p.h>
+#include <QtCore/QScopedPointer>
+#include <QtCore/QJsonDocument>
+#include <QtCore/QJsonObject>
+#include <QtCore/QJsonArray>
+#include <QtCore/QLoggingCategory>
+#include <QtGui/qpa/qplatformwindow.h>
+#include <QtGui/qpa/qplatformcursor.h>
+#include <QtGui/QPainter>
+#include <QtGui/private/qguiapplication_p.h>
+
+#include <xf86drm.h>
+#include <xf86drmMode.h>
+#include <gbm.h>
+
+#ifndef DRM_CAP_CURSOR_WIDTH
+#define DRM_CAP_CURSOR_WIDTH 0x8
+#endif
+
+#ifndef DRM_CAP_CURSOR_HEIGHT
+#define DRM_CAP_CURSOR_HEIGHT 0x9
+#endif
+
+#define ARRAY_LENGTH(a) (sizeof (a) / sizeof (a)[0])
+
+QT_BEGIN_NAMESPACE
+
+Q_LOGGING_CATEGORY(qLcEglfsKmsDebug, "qt.qpa.eglfs.kms")
+
+class QEglFSKmsCursor;
+class QEglFSKmsScreen;
+
+enum OutputConfiguration {
+ OutputConfigOff,
+ OutputConfigPreferred,
+ OutputConfigCurrent,
+ OutputConfigMode,
+ OutputConfigModeline
+};
+
+struct QEglFSKmsOutput {
+ QString name;
+ uint32_t connector_id;
+ uint32_t crtc_id;
+ QSizeF physical_size;
+ int mode; // index of selected mode in list below
+ bool mode_set;
+ drmModeCrtcPtr saved_crtc;
+ QList<drmModeModeInfo> modes;
+};
+
+class QEglFSKmsDevice
+{
+ Q_DISABLE_COPY(QEglFSKmsDevice)
+
+ QEglFSKmsIntegration *m_integration;
+ QString m_path;
+ int m_dri_fd;
+ gbm_device *m_gbm_device;
+
+ quint32 m_crtc_allocator;
+ quint32 m_connector_allocator;
+
+ int crtcForConnector(drmModeResPtr resources, drmModeConnectorPtr connector);
+ QEglFSKmsScreen *screenForConnector(drmModeResPtr resources, drmModeConnectorPtr connector, QPoint pos);
+
+ static void pageFlipHandler(int fd,
+ unsigned int sequence,
+ unsigned int tv_sec,
+ unsigned int tv_usec,
+ void *user_data);
+public:
+ QEglFSKmsDevice(QEglFSKmsIntegration *integration, const QString &path);
+
+ bool open();
+ void close();
+
+ void createScreens();
+
+ gbm_device *device() const;
+ int fd() const;
+
+ void handleDrmEvent();
+};
+
+class QEglFSKmsScreen : public QEglFSScreen
+{
+ QEglFSKmsIntegration *m_integration;
+ QEglFSKmsDevice *m_device;
+ gbm_surface *m_gbm_surface;
+
+ gbm_bo *m_gbm_bo_current;
+ gbm_bo *m_gbm_bo_next;
+
+ QEglFSKmsOutput m_output;
+ QPoint m_pos;
+ QScopedPointer<QEglFSKmsCursor> m_cursor;
+
+ struct FrameBuffer {
+ FrameBuffer() : fb(0) {}
+ uint32_t fb;
+ };
+ static void bufferDestroyedHandler(gbm_bo *bo, void *data);
+ FrameBuffer *framebufferForBufferObject(gbm_bo *bo);
+
+ static QMutex m_waitForFlipMutex;
+
+public:
+ QEglFSKmsScreen(QEglFSKmsIntegration *integration,
+ QEglFSKmsDevice *device,
+ QEglFSKmsOutput output,
+ QPoint position);
+ ~QEglFSKmsScreen();
+
+ QRect geometry() const Q_DECL_OVERRIDE;
+ int depth() const Q_DECL_OVERRIDE;
+ QImage::Format format() const Q_DECL_OVERRIDE;
+
+ QSizeF physicalSize() const Q_DECL_OVERRIDE;
+ QDpi logicalDpi() const Q_DECL_OVERRIDE;
+ Qt::ScreenOrientation nativeOrientation() const Q_DECL_OVERRIDE;
+ Qt::ScreenOrientation orientation() const Q_DECL_OVERRIDE;
+
+ QString name() const Q_DECL_OVERRIDE;
+
+ QPlatformCursor *cursor() const Q_DECL_OVERRIDE;
+
+ QEglFSKmsDevice *device() const { return m_device; }
+
+ gbm_surface *surface() const { return m_gbm_surface; }
+ gbm_surface *createSurface();
+ void destroySurface();
+
+ void waitForFlip();
+ void flip();
+ void flipFinished();
+
+ QEglFSKmsOutput &output() { return m_output; }
+ void restoreMode();
+};
+
+QMutex QEglFSKmsScreen::m_waitForFlipMutex;
+
+class QEglFSKmsCursor : public QPlatformCursor
+{
+ Q_OBJECT
+public:
+ QEglFSKmsCursor(QEglFSKmsScreen *screen);
+ ~QEglFSKmsCursor();
+
+ // input methods
+ void pointerEvent(const QMouseEvent & event) Q_DECL_OVERRIDE;
+#ifndef QT_NO_CURSOR
+ void changeCursor(QCursor * windowCursor, QWindow * window) Q_DECL_OVERRIDE;
+#endif
+ QPoint pos() const Q_DECL_OVERRIDE;
+ void setPos(const QPoint &pos) Q_DECL_OVERRIDE;
+
+private:
+ void initCursorAtlas();
+
+ QEglFSKmsScreen *m_screen;
+ QSize m_cursorSize;
+ gbm_bo *m_bo;
+ QPoint m_pos;
+ QPlatformCursorImage m_cursorImage;
+ bool m_visible;
+
+ // cursor atlas information
+ struct CursorAtlas {
+ CursorAtlas() : cursorsPerRow(0), cursorWidth(0), cursorHeight(0) { }
+ int cursorsPerRow;
+ int width, height; // width and height of the atlas
+ int cursorWidth, cursorHeight; // width and height of cursors inside the atlas
+ QList<QPoint> hotSpots;
+ QImage image;
+ } m_cursorAtlas;
+};
+
+QEglFSKmsIntegration::QEglFSKmsIntegration()
+ : m_device(Q_NULLPTR)
+ , m_hwCursor(true)
+ , m_pbuffers(false)
+{}
+
+void QEglFSKmsIntegration::platformInit()
+{
+ loadConfig();
+
+ if (!m_devicePath.isEmpty()) {
+ qCDebug(qLcEglfsKmsDebug) << "Using DRM device" << m_devicePath << "specified in config file";
+ } else {
+
+ QDeviceDiscovery *d = QDeviceDiscovery::create(QDeviceDiscovery::Device_VideoMask);
+ QStringList devices = d->scanConnectedDevices();
+ qCDebug(qLcEglfsKmsDebug) << "Found the following video devices:" << devices;
+ d->deleteLater();
+
+ if (devices.isEmpty())
+ qFatal("Could not find DRM device!");
+
+ m_devicePath = devices.first();
+ qCDebug(qLcEglfsKmsDebug) << "Using" << m_devicePath;
+ }
+
+ m_device = new QEglFSKmsDevice(this, m_devicePath);
+ if (!m_device->open())
+ qFatal("Could not open device %s - aborting!", qPrintable(m_devicePath));
+}
+
+void QEglFSKmsIntegration::platformDestroy()
+{
+ m_device->close();
+ delete m_device;
+ m_device = Q_NULLPTR;
+}
+
+EGLNativeDisplayType QEglFSKmsIntegration::platformDisplay() const
+{
+ Q_ASSERT(m_device);
+ return reinterpret_cast<EGLNativeDisplayType>(m_device->device());
+}
+
+bool QEglFSKmsIntegration::usesDefaultScreen()
+{
+ return false;
+}
+
+void QEglFSKmsIntegration::screenInit()
+{
+ m_device->createScreens();
+}
+
+QSurfaceFormat QEglFSKmsIntegration::surfaceFormatFor(const QSurfaceFormat &inputFormat) const
+{
+ QSurfaceFormat format(inputFormat);
+ format.setRenderableType(QSurfaceFormat::OpenGLES);
+ format.setSwapBehavior(QSurfaceFormat::DoubleBuffer);
+ format.setRedBufferSize(8);
+ format.setGreenBufferSize(8);
+ format.setBlueBufferSize(8);
+ return format;
+}
+
+EGLNativeWindowType QEglFSKmsIntegration::createNativeWindow(QPlatformWindow *platformWindow,
+ const QSize &size,
+ const QSurfaceFormat &format)
+{
+ Q_UNUSED(size);
+ Q_UNUSED(format);
+
+ QEglFSKmsScreen *screen = static_cast<QEglFSKmsScreen *>(platformWindow->screen());
+ if (screen->surface()) {
+ qWarning("Only single window per screen supported!");
+ return 0;
+ }
+
+ return reinterpret_cast<EGLNativeWindowType>(screen->createSurface());
+}
+
+EGLNativeWindowType QEglFSKmsIntegration::createNativeOffscreenWindow(const QSurfaceFormat &format)
+{
+ Q_UNUSED(format);
+ Q_ASSERT(m_device);
+
+ qCDebug(qLcEglfsKmsDebug) << "Creating native off screen window";
+ gbm_surface *surface = gbm_surface_create(m_device->device(),
+ 1, 1,
+ GBM_FORMAT_XRGB8888,
+ GBM_BO_USE_RENDERING);
+
+ return reinterpret_cast<EGLNativeWindowType>(surface);
+}
+
+void QEglFSKmsIntegration::destroyNativeWindow(EGLNativeWindowType window)
+{
+ gbm_surface *surface = reinterpret_cast<gbm_surface *>(window);
+ gbm_surface_destroy(surface);
+}
+
+bool QEglFSKmsIntegration::hasCapability(QPlatformIntegration::Capability cap) const
+{
+ switch (cap) {
+ case QPlatformIntegration::ThreadedPixmaps:
+ case QPlatformIntegration::OpenGL:
+ case QPlatformIntegration::ThreadedOpenGL:
+ return true;
+ default:
+ return false;
+ }
+}
+
+QPlatformCursor *QEglFSKmsIntegration::createCursor(QPlatformScreen *screen) const
+{
+ if (m_hwCursor)
+ return Q_NULLPTR;
+ else
+ return new QEGLPlatformCursor(screen);
+}
+
+void QEglFSKmsIntegration::waitForVSync(QPlatformSurface *surface) const
+{
+ QWindow *window = static_cast<QWindow *>(surface->surface());
+ QEglFSKmsScreen *screen = static_cast<QEglFSKmsScreen *>(window->screen()->handle());
+
+ screen->waitForFlip();
+}
+
+void QEglFSKmsIntegration::presentBuffer(QPlatformSurface *surface)
+{
+ QWindow *window = static_cast<QWindow *>(surface->surface());
+ QEglFSKmsScreen *screen = static_cast<QEglFSKmsScreen *>(window->screen()->handle());
+
+ screen->flip();
+}
+
+bool QEglFSKmsIntegration::supportsPBuffers() const
+{
+ return m_pbuffers;
+}
+
+bool QEglFSKmsIntegration::hwCursor() const
+{
+ return m_hwCursor;
+}
+
+QMap<QString, QVariantMap> QEglFSKmsIntegration::outputSettings() const
+{
+ return m_outputSettings;
+}
+
+void QEglFSKmsIntegration::loadConfig()
+{
+ static QByteArray json = qgetenv("QT_QPA_EGLFS_KMS_CONFIG");
+ if (json.isEmpty())
+ return;
+
+ qCDebug(qLcEglfsKmsDebug) << "Loading KMS setup from" << json;
+
+ QFile file(QString::fromUtf8(json));
+ if (!file.open(QFile::ReadOnly)) {
+ qCDebug(qLcEglfsKmsDebug) << "Could not open config file"
+ << json << "for reading";
+ return;
+ }
+
+ QJsonDocument doc = QJsonDocument::fromJson(file.readAll());
+ if (!doc.isObject()) {
+ qCDebug(qLcEglfsKmsDebug) << "Invalid config file" << json
+ << "- no top-level JSON object";
+ return;
+ }
+
+ QJsonObject object = doc.object();
+
+ m_hwCursor = object.value("hwcursor").toBool(m_hwCursor);
+ m_pbuffers = object.value("pbuffers").toBool(m_pbuffers);
+ m_devicePath = object.value("device").toString();
+
+ QJsonArray outputs = object.value("outputs").toArray();
+ for (int i = 0; i < outputs.size(); i++) {
+ QVariantMap outputSettings = outputs.at(i).toObject().toVariantMap();
+
+ if (outputSettings.contains("name")) {
+ QString name = outputSettings.value("name").toString();
+
+ if (m_outputSettings.contains(name)) {
+ qCDebug(qLcEglfsKmsDebug) << "Output" << name << "configured multiple times!";
+ }
+
+ m_outputSettings.insert(name, outputSettings);
+ }
+ }
+
+ qCDebug(qLcEglfsKmsDebug) << "Configuration:\n"
+ << "\thwcursor:" << m_hwCursor << "\n"
+ << "\tpbuffers:" << m_pbuffers << "\n"
+ << "\toutputs:" << m_outputSettings;
+}
+
+QEglFSKmsCursor::QEglFSKmsCursor(QEglFSKmsScreen *screen)
+ : m_screen(screen)
+ , m_cursorSize(64, 64) // 64x64 is the old standard size, we now try to query the real size below
+ , m_bo(Q_NULLPTR)
+ , m_cursorImage(0, 0, 0, 0, 0, 0)
+ , m_visible(true)
+{
+ uint64_t width, height;
+ if ((drmGetCap(m_screen->device()->fd(), DRM_CAP_CURSOR_WIDTH, &width) == 0)
+ && (drmGetCap(m_screen->device()->fd(), DRM_CAP_CURSOR_HEIGHT, &height) == 0)) {
+ m_cursorSize.setWidth(width);
+ m_cursorSize.setHeight(height);
+ }
+
+ m_bo = gbm_bo_create(m_screen->device()->device(), m_cursorSize.width(), m_cursorSize.height(),
+ GBM_FORMAT_ARGB8888, GBM_BO_USE_CURSOR_64X64 | GBM_BO_USE_WRITE);
+ if (!m_bo) {
+ qWarning("Could not create buffer for cursor!");
+ } else {
+ initCursorAtlas();
+ }
+
+ drmModeMoveCursor(m_screen->device()->fd(), m_screen->output().crtc_id, 0, 0);
+}
+
+QEglFSKmsCursor::~QEglFSKmsCursor()
+{
+ drmModeSetCursor(m_screen->device()->fd(), m_screen->output().crtc_id, 0, 0, 0);
+ drmModeMoveCursor(m_screen->device()->fd(), m_screen->output().crtc_id, 0, 0);
+
+ gbm_bo_destroy(m_bo);
+ m_bo = Q_NULLPTR;
+}
+
+void QEglFSKmsCursor::pointerEvent(const QMouseEvent &event)
+{
+ setPos(event.screenPos().toPoint());
+}
+
+#ifndef QT_NO_CURSOR
+void QEglFSKmsCursor::changeCursor(QCursor *windowCursor, QWindow *window)
+{
+ Q_UNUSED(window);
+
+ if (!m_visible)
+ return;
+
+ const Qt::CursorShape newShape = windowCursor ? windowCursor->shape() : Qt::ArrowCursor;
+ if (newShape == Qt::BitmapCursor) {
+ m_cursorImage.set(windowCursor->pixmap().toImage(),
+ windowCursor->hotSpot().x(),
+ windowCursor->hotSpot().y());
+ } else {
+ // Standard cursor, look up in atlas
+ const int width = m_cursorAtlas.cursorWidth;
+ const int height = m_cursorAtlas.cursorHeight;
+ const qreal ws = (qreal)m_cursorAtlas.cursorWidth / m_cursorAtlas.width;
+ const qreal hs = (qreal)m_cursorAtlas.cursorHeight / m_cursorAtlas.height;
+
+ QRect textureRect(ws * (newShape % m_cursorAtlas.cursorsPerRow) * m_cursorAtlas.width,
+ hs * (newShape / m_cursorAtlas.cursorsPerRow) * m_cursorAtlas.height,
+ width,
+ height);
+ QPoint hotSpot = m_cursorAtlas.hotSpots[newShape];
+ m_cursorImage.set(m_cursorAtlas.image.copy(textureRect),
+ hotSpot.x(),
+ hotSpot.y());
+ }
+
+ if (m_cursorImage.image()->width() > m_cursorSize.width() || m_cursorImage.image()->height() > m_cursorSize.height())
+ qWarning("Cursor larger than %dx%d, cursor will be clipped.", m_cursorSize.width(), m_cursorSize.height());
+
+ QImage cursorImage(m_cursorSize, QImage::Format_ARGB32);
+ cursorImage.fill(Qt::transparent);
+
+ QPainter painter;
+ painter.begin(&cursorImage);
+ painter.drawImage(0, 0, *m_cursorImage.image());
+ painter.end();
+
+ gbm_bo_write(m_bo, cursorImage.constBits(), cursorImage.byteCount());
+
+ uint32_t handle = gbm_bo_get_handle(m_bo).u32;
+ int status = drmModeSetCursor(m_screen->device()->fd(), m_screen->output().crtc_id, handle,
+ m_cursorSize.width(), m_cursorSize.height());
+ if (status != 0)
+ qWarning("Could not set cursor: %d", status);
+}
+#endif // QT_NO_CURSOR
+
+QPoint QEglFSKmsCursor::pos() const
+{
+ return m_pos;
+}
+
+void QEglFSKmsCursor::setPos(const QPoint &pos)
+{
+ QPoint adjustedPos = pos - m_cursorImage.hotspot();
+ int ret = drmModeMoveCursor(m_screen->device()->fd(), m_screen->output().crtc_id, adjustedPos.x(), adjustedPos.y());
+ if (ret == 0) {
+ m_pos = pos;
+ } else {
+ qWarning("Failed to move cursor: %d", ret);
+ }
+}
+
+void QEglFSKmsCursor::initCursorAtlas()
+{
+ static QByteArray json = qgetenv("QT_QPA_EGLFS_CURSOR");
+ if (json.isEmpty())
+ json = ":/cursor.json";
+
+ qCDebug(qLcEglfsKmsDebug) << "Initializing cursor atlas from" << json;
+
+ QFile file(QString::fromUtf8(json));
+ if (!file.open(QFile::ReadOnly)) {
+ drmModeSetCursor(m_screen->device()->fd(), m_screen->output().crtc_id, 0, 0, 0);
+ drmModeMoveCursor(m_screen->device()->fd(), m_screen->output().crtc_id, 0, 0);
+ m_visible = false;
+ return;
+ }
+
+ QJsonDocument doc = QJsonDocument::fromJson(file.readAll());
+ QJsonObject object = doc.object();
+
+ QString atlas = object.value(QLatin1String("image")).toString();
+ Q_ASSERT(!atlas.isEmpty());
+
+ const int cursorsPerRow = object.value(QLatin1String("cursorsPerRow")).toDouble();
+ Q_ASSERT(cursorsPerRow);
+ m_cursorAtlas.cursorsPerRow = cursorsPerRow;
+
+ const QJsonArray hotSpots = object.value(QLatin1String("hotSpots")).toArray();
+ Q_ASSERT(hotSpots.count() == Qt::LastCursor + 1);
+ for (int i = 0; i < hotSpots.count(); i++) {
+ QPoint hotSpot(hotSpots[i].toArray()[0].toDouble(), hotSpots[i].toArray()[1].toDouble());
+ m_cursorAtlas.hotSpots << hotSpot;
+ }
+
+ QImage image = QImage(atlas).convertToFormat(QImage::Format_ARGB32);
+ m_cursorAtlas.cursorWidth = image.width() / m_cursorAtlas.cursorsPerRow;
+ m_cursorAtlas.cursorHeight = image.height() / ((Qt::LastCursor + cursorsPerRow) / cursorsPerRow);
+ m_cursorAtlas.width = image.width();
+ m_cursorAtlas.height = image.height();
+ m_cursorAtlas.image = image;
+}
+
+void QEglFSKmsScreen::bufferDestroyedHandler(gbm_bo *bo, void *data)
+{
+ FrameBuffer *fb = static_cast<FrameBuffer *>(data);
+
+ if (fb->fb) {
+ gbm_device *device = gbm_bo_get_device(bo);
+ drmModeRmFB(gbm_device_get_fd(device), fb->fb);
+ }
+
+ delete fb;
+}
+
+QEglFSKmsScreen::FrameBuffer *QEglFSKmsScreen::framebufferForBufferObject(gbm_bo *bo)
+{
+ {
+ FrameBuffer *fb = static_cast<FrameBuffer *>(gbm_bo_get_user_data(bo));
+ if (fb)
+ return fb;
+ }
+
+ uint32_t width = gbm_bo_get_width(bo);
+ uint32_t height = gbm_bo_get_height(bo);
+ uint32_t stride = gbm_bo_get_stride(bo);
+ uint32_t handle = gbm_bo_get_handle(bo).u32;
+
+ QScopedPointer<FrameBuffer> fb(new FrameBuffer);
+
+ int ret = drmModeAddFB(m_device->fd(), width, height, 24, 32,
+ stride, handle, &fb->fb);
+
+ if (ret) {
+ qWarning("Failed to create KMS FB!");
+ return Q_NULLPTR;
+ }
+
+ gbm_bo_set_user_data(bo, fb.data(), bufferDestroyedHandler);
+ return fb.take();
+
+}
+
+QEglFSKmsScreen::QEglFSKmsScreen(QEglFSKmsIntegration *integration,
+ QEglFSKmsDevice *device,
+ QEglFSKmsOutput output,
+ QPoint position)
+ : QEglFSScreen(eglGetDisplay(reinterpret_cast<EGLNativeDisplayType>(device->device())))
+ , m_integration(integration)
+ , m_device(device)
+ , m_gbm_surface(Q_NULLPTR)
+ , m_gbm_bo_current(Q_NULLPTR)
+ , m_gbm_bo_next(Q_NULLPTR)
+ , m_output(output)
+ , m_pos(position)
+ , m_cursor(Q_NULLPTR)
+{
+}
+
+QEglFSKmsScreen::~QEglFSKmsScreen()
+{
+ restoreMode();
+}
+
+QRect QEglFSKmsScreen::geometry() const
+{
+ const int mode = m_output.mode;
+ return QRect(m_pos.x(), m_pos.y(),
+ m_output.modes[mode].hdisplay,
+ m_output.modes[mode].vdisplay);
+}
+
+int QEglFSKmsScreen::depth() const
+{
+ return 32;
+}
+
+QImage::Format QEglFSKmsScreen::format() const
+{
+ return QImage::Format_RGB32;
+}
+
+QSizeF QEglFSKmsScreen::physicalSize() const
+{
+ return m_output.physical_size;
+}
+
+QDpi QEglFSKmsScreen::logicalDpi() const
+{
+ QSizeF ps = physicalSize();
+ QSize s = geometry().size();
+
+ if (ps.isValid() && s.isValid())
+ return QDpi(25.4 * s.width() / ps.width(),
+ 25.4 * s.height() / ps.height());
+ else
+ return QDpi(100, 100);
+}
+
+Qt::ScreenOrientation QEglFSKmsScreen::nativeOrientation() const
+{
+ return Qt::PrimaryOrientation;
+}
+
+Qt::ScreenOrientation QEglFSKmsScreen::orientation() const
+{
+ return Qt::PrimaryOrientation;
+}
+
+QString QEglFSKmsScreen::name() const
+{
+ return m_output.name;
+}
+
+QPlatformCursor *QEglFSKmsScreen::cursor() const
+{
+ if (m_integration->hwCursor()) {
+ if (m_cursor.isNull()) {
+ QEglFSKmsScreen *that = const_cast<QEglFSKmsScreen *>(this);
+ that->m_cursor.reset(new QEglFSKmsCursor(that));
+ }
+
+ return m_cursor.data();
+ } else {
+ return QEglFSScreen::cursor();
+ }
+}
+
+gbm_surface *QEglFSKmsScreen::createSurface()
+{
+ if (!m_gbm_surface) {
+ qCDebug(qLcEglfsKmsDebug) << "Creating window for screen" << name();
+ m_gbm_surface = gbm_surface_create(m_device->device(),
+ geometry().width(),
+ geometry().height(),
+ GBM_FORMAT_XRGB8888,
+ GBM_BO_USE_SCANOUT | GBM_BO_USE_RENDERING);
+ }
+ return m_gbm_surface;
+}
+
+void QEglFSKmsScreen::destroySurface()
+{
+ if (m_gbm_bo_current) {
+ gbm_bo_destroy(m_gbm_bo_current);
+ m_gbm_bo_current = Q_NULLPTR;
+ }
+
+ if (m_gbm_bo_next) {
+ gbm_bo_destroy(m_gbm_bo_next);
+ m_gbm_bo_next = Q_NULLPTR;
+ }
+
+ if (m_gbm_surface) {
+ gbm_surface_destroy(m_gbm_surface);
+ m_gbm_surface = Q_NULLPTR;
+ }
+}
+
+void QEglFSKmsScreen::waitForFlip()
+{
+ // Don't lock the mutex unless we actually need to
+ if (!m_gbm_bo_next)
+ return;
+
+ QMutexLocker lock(&m_waitForFlipMutex);
+ while (m_gbm_bo_next)
+ m_device->handleDrmEvent();
+}
+
+void QEglFSKmsScreen::flip()
+{
+ if (!m_gbm_surface) {
+ qWarning("Cannot sync before platform init!");
+ return;
+ }
+
+ m_gbm_bo_next = gbm_surface_lock_front_buffer(m_gbm_surface);
+ if (!m_gbm_bo_next) {
+ qWarning("Could not lock GBM surface front buffer!");
+ return;
+ }
+
+ FrameBuffer *fb = framebufferForBufferObject(m_gbm_bo_next);
+
+ if (!m_output.mode_set) {
+ int ret = drmModeSetCrtc(m_device->fd(),
+ m_output.crtc_id,
+ fb->fb,
+ 0, 0,
+ &m_output.connector_id, 1,
+ &m_output.modes[m_output.mode]);
+
+ if (ret)
+ qErrnoWarning("Could not set DRM mode!");
+ else
+ m_output.mode_set = true;
+ }
+
+ int ret = drmModePageFlip(m_device->fd(),
+ m_output.crtc_id,
+ fb->fb,
+ DRM_MODE_PAGE_FLIP_EVENT,
+ this);
+ if (ret) {
+ qErrnoWarning("Could not queue DRM page flip!");
+ gbm_surface_release_buffer(m_gbm_surface, m_gbm_bo_next);
+ m_gbm_bo_next = Q_NULLPTR;
+ }
+}
+
+void QEglFSKmsScreen::flipFinished()
+{
+ if (m_gbm_bo_current)
+ gbm_surface_release_buffer(m_gbm_surface,
+ m_gbm_bo_current);
+
+ m_gbm_bo_current = m_gbm_bo_next;
+ m_gbm_bo_next = Q_NULLPTR;
+}
+
+void QEglFSKmsScreen::restoreMode()
+{
+ if (m_output.mode_set && m_output.saved_crtc) {
+ drmModeSetCrtc(m_device->fd(),
+ m_output.saved_crtc->crtc_id,
+ m_output.saved_crtc->buffer_id,
+ 0, 0,
+ &m_output.connector_id, 1,
+ &m_output.saved_crtc->mode);
+
+ drmModeFreeCrtc(m_output.saved_crtc);
+ m_output.saved_crtc = Q_NULLPTR;
+
+ m_output.mode_set = false;
+ }
+}
+
+int QEglFSKmsDevice::crtcForConnector(drmModeResPtr resources, drmModeConnectorPtr connector)
+{
+ for (int i = 0; i < connector->count_encoders; i++) {
+ drmModeEncoderPtr encoder = drmModeGetEncoder(m_dri_fd, connector->encoders[i]);
+ if (!encoder) {
+ qWarning("Failed to get encoder");
+ continue;
+ }
+
+ quint32 possibleCrtcs = encoder->possible_crtcs;
+ drmModeFreeEncoder(encoder);
+
+ for (int j = 0; j < resources->count_crtcs; j++) {
+ bool isPossible = possibleCrtcs & (1 << j);
+ bool isAvailable = !(m_crtc_allocator & 1 << resources->crtcs[j]);
+
+ if (isPossible && isAvailable)
+ return j;
+ }
+ }
+
+ return -1;
+}
+
+static const char * const connector_type_names[] = {
+ "None",
+ "VGA",
+ "DVI",
+ "DVI",
+ "DVI",
+ "Composite",
+ "TV",
+ "LVDS",
+ "CTV",
+ "DIN",
+ "DP",
+ "HDMI",
+ "HDMI",
+ "TV",
+ "eDP",
+};
+
+static QString nameForConnector(const drmModeConnectorPtr connector)
+{
+ QString connectorName = "UNKNOWN";
+
+ if (connector->connector_type < ARRAY_LENGTH(connector_type_names))
+ connectorName = connector_type_names[connector->connector_type];
+
+ connectorName += QString::number(connector->connector_type_id);
+
+ return connectorName;
+}
+
+static bool parseModeline(const QString &s, drmModeModeInfoPtr mode)
+{
+ char hsync[16];
+ char vsync[16];
+ float fclock;
+
+ mode->type = DRM_MODE_TYPE_USERDEF;
+ mode->hskew = 0;
+ mode->vscan = 0;
+ mode->vrefresh = 0;
+ mode->flags = 0;
+
+ if (sscanf(qPrintable(s), "%f %hd %hd %hd %hd %hd %hd %hd %hd %15s %15s",
+ &fclock,
+ &mode->hdisplay,
+ &mode->hsync_start,
+ &mode->hsync_end,
+ &mode->htotal,
+ &mode->vdisplay,
+ &mode->vsync_start,
+ &mode->vsync_end,
+ &mode->vtotal, hsync, vsync) != 11)
+ return false;
+
+ mode->clock = fclock * 1000;
+
+ if (strcmp(hsync, "+hsync") == 0)
+ mode->flags |= DRM_MODE_FLAG_PHSYNC;
+ else if (strcmp(hsync, "-hsync") == 0)
+ mode->flags |= DRM_MODE_FLAG_NHSYNC;
+ else
+ return false;
+
+ if (strcmp(vsync, "+vsync") == 0)
+ mode->flags |= DRM_MODE_FLAG_PVSYNC;
+ else if (strcmp(vsync, "-vsync") == 0)
+ mode->flags |= DRM_MODE_FLAG_NVSYNC;
+ else
+ return false;
+
+ return true;
+}
+
+QEglFSKmsScreen *QEglFSKmsDevice::screenForConnector(drmModeResPtr resources, drmModeConnectorPtr connector, QPoint pos)
+{
+ const QString connectorName = nameForConnector(connector);
+
+ const int crtc = crtcForConnector(resources, connector);
+ if (crtc < 0) {
+ qWarning() << "No usable crtc/encoder pair for connector" << connectorName;
+ return Q_NULLPTR;
+ }
+
+ OutputConfiguration configuration;
+ QSize configurationSize;
+ drmModeModeInfo configurationModeline;
+
+ const QString mode = m_integration->outputSettings().value(connectorName).value("mode", "preferred").toString().toLower();
+ if (mode == "off") {
+ configuration = OutputConfigOff;
+ } else if (mode == "preferred") {
+ configuration = OutputConfigPreferred;
+ } else if (mode == "current") {
+ configuration = OutputConfigCurrent;
+ } else if (sscanf(qPrintable(mode), "%dx%d", &configurationSize.rwidth(), &configurationSize.rheight()) == 2) {
+ configuration = OutputConfigMode;
+ } else if (parseModeline(mode, &configurationModeline)) {
+ configuration = OutputConfigModeline;
+ } else {
+ qWarning("Invalid mode \"%s\" for output %s", qPrintable(mode), qPrintable(connectorName));
+ configuration = OutputConfigPreferred;
+ }
+
+ const uint32_t crtc_id = resources->crtcs[crtc];
+
+ if (configuration == OutputConfigOff) {
+ qCDebug(qLcEglfsKmsDebug) << "Turning off output" << connectorName;
+ drmModeSetCrtc(m_dri_fd, crtc_id, 0, 0, 0, 0, 0, Q_NULLPTR);
+ return Q_NULLPTR;
+ }
+
+ // Get the current mode on the current crtc
+ drmModeModeInfo crtc_mode;
+ memset(&crtc_mode, 0, sizeof crtc_mode);
+ if (drmModeEncoderPtr encoder = drmModeGetEncoder(m_dri_fd, connector->connector_id)) {
+ drmModeCrtcPtr crtc = drmModeGetCrtc(m_dri_fd, encoder->crtc_id);
+ drmModeFreeEncoder(encoder);
+
+ if (!crtc)
+ return Q_NULLPTR;
+
+ if (crtc->mode_valid)
+ crtc_mode = crtc->mode;
+
+ drmModeFreeCrtc(crtc);
+ }
+
+ QList<drmModeModeInfo> modes;
+ qCDebug(qLcEglfsKmsDebug) << connectorName << "mode count:" << connector->count_modes;
+ for (int i = 0; i < connector->count_modes; i++) {
+ const drmModeModeInfo &mode = connector->modes[i];
+ qCDebug(qLcEglfsKmsDebug) << "mode" << i << mode.hdisplay << "x" << mode.vdisplay
+ << "@" << mode.vrefresh << "hz";
+ modes << connector->modes[i];
+ }
+
+ int preferred = -1;
+ int current = -1;
+ int configured = -1;
+ int best = -1;
+
+ for (int i = modes.size() - 1; i >= 0; i--) {
+ const drmModeModeInfo &m = modes.at(i);
+
+ if (configuration == OutputConfigMode &&
+ m.hdisplay == configurationSize.width() &&
+ m.vdisplay == configurationSize.height()) {
+ configured = i;
+ }
+
+ if (!memcmp(&crtc_mode, &m, sizeof m))
+ current = i;
+
+ if (m.type & DRM_MODE_TYPE_PREFERRED)
+ preferred = i;
+
+ best = i;
+ }
+
+ if (configuration == OutputConfigModeline) {
+ modes << configurationModeline;
+ configured = modes.size() - 1;
+ }
+
+ if (current < 0 && crtc_mode.clock != 0) {
+ modes << crtc_mode;
+ current = mode.size() - 1;
+ }
+
+ if (configuration == OutputConfigCurrent)
+ configured = current;
+
+ int selected_mode = -1;
+
+ if (configured >= 0)
+ selected_mode = configured;
+ else if (preferred >= 0)
+ selected_mode = preferred;
+ else if (current >= 0)
+ selected_mode = current;
+ else if (best >= 0)
+ selected_mode = best;
+
+ if (selected_mode < 0) {
+ qWarning() << "No modes available for output" << connectorName;
+ return Q_NULLPTR;
+ } else {
+ int width = modes[selected_mode].hdisplay;
+ int height = modes[selected_mode].vdisplay;
+ int refresh = modes[selected_mode].vrefresh;
+ qCDebug(qLcEglfsKmsDebug) << "Selected mode" << selected_mode << ":" << width << "x" << height
+ << "@" << refresh << "hz for output" << connectorName;
+ }
+
+ QEglFSKmsOutput output = {
+ connectorName,
+ connector->connector_id,
+ crtc_id,
+ QSizeF(connector->mmWidth, connector->mmHeight),
+ selected_mode,
+ false,
+ drmModeGetCrtc(m_dri_fd, crtc_id),
+ modes
+ };
+
+ m_crtc_allocator |= (1 << output.crtc_id);
+ m_connector_allocator |= (1 << output.connector_id);
+
+ return new QEglFSKmsScreen(m_integration, this, output, pos);
+}
+
+void QEglFSKmsDevice::pageFlipHandler(int fd, unsigned int sequence, unsigned int tv_sec, unsigned int tv_usec, void *user_data)
+{
+ Q_UNUSED(fd);
+ Q_UNUSED(sequence);
+ Q_UNUSED(tv_sec);
+ Q_UNUSED(tv_usec);
+
+ QEglFSKmsScreen *screen = static_cast<QEglFSKmsScreen *>(user_data);
+ screen->flipFinished();
+}
+
+QEglFSKmsDevice::QEglFSKmsDevice(QEglFSKmsIntegration *integration, const QString &path)
+ : m_integration(integration)
+ , m_path(path)
+ , m_dri_fd(-1)
+ , m_gbm_device(Q_NULLPTR)
+ , m_crtc_allocator(0)
+ , m_connector_allocator(0)
+{
+}
+
+bool QEglFSKmsDevice::open()
+{
+ Q_ASSERT(m_dri_fd == -1);
+ Q_ASSERT(m_gbm_device == Q_NULLPTR);
+
+ qCDebug(qLcEglfsKmsDebug) << "Opening device" << m_path;
+ m_dri_fd = qt_safe_open(m_path.toLocal8Bit().constData(), O_RDWR | O_CLOEXEC);
+ if (m_dri_fd == -1) {
+ qErrnoWarning("Could not open DRM device %s", qPrintable(m_path));
+ return false;
+ }
+
+ qCDebug(qLcEglfsKmsDebug) << "Creating GBM device for file descriptor" << m_dri_fd
+ << "obtained from" << m_path;
+ m_gbm_device = gbm_create_device(m_dri_fd);
+ if (!m_gbm_device) {
+ qErrnoWarning("Could not create GBM device");
+ qt_safe_close(m_dri_fd);
+ m_dri_fd = -1;
+ return false;
+ }
+
+ return true;
+}
+
+void QEglFSKmsDevice::close()
+{
+ if (m_gbm_device) {
+ gbm_device_destroy(m_gbm_device);
+ m_gbm_device = Q_NULLPTR;
+ }
+
+ if (m_dri_fd != -1) {
+ qt_safe_close(m_dri_fd);
+ m_dri_fd = -1;
+ }
+}
+
+void QEglFSKmsDevice::createScreens()
+{
+ drmModeResPtr resources = drmModeGetResources(m_dri_fd);
+ if (!resources) {
+ qWarning("drmModeGetResources failed");
+ return;
+ }
+
+ QPoint pos(0, 0);
+ QEglFSIntegration *integration = static_cast<QEglFSIntegration *>(QGuiApplicationPrivate::platformIntegration());
+
+ for (int i = 0; i < resources->count_connectors; i++) {
+ drmModeConnectorPtr connector = drmModeGetConnector(m_dri_fd, resources->connectors[i]);
+ if (!connector)
+ continue;
+
+ QEglFSKmsScreen *screen = screenForConnector(resources, connector, pos);
+ if (screen) {
+ integration->addScreen(screen);
+ pos.rx() += screen->geometry().width();
+ }
+
+ drmModeFreeConnector(connector);
+ }
+
+ drmModeFreeResources(resources);
+}
+
+gbm_device *QEglFSKmsDevice::device() const
+{
+ return m_gbm_device;
+}
+
+int QEglFSKmsDevice::fd() const
+{
+ return m_dri_fd;
+}
+
+void QEglFSKmsDevice::handleDrmEvent()
+{
+ drmEventContext drmEvent = {
+ DRM_EVENT_CONTEXT_VERSION,
+ Q_NULLPTR, // vblank handler
+ pageFlipHandler // page flip handler
+ };
+
+ drmHandleEvent(m_dri_fd, &drmEvent);
+}
+
+QT_END_NAMESPACE
+
+#include "qeglfskmsintegration.moc"
diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsintegration.h b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsintegration.h
new file mode 100644
index 0000000000..44414a2eed
--- /dev/null
+++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsintegration.h
@@ -0,0 +1,90 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QEGLFSKMSINTEGRATION_H
+#define QEGLFSKMSINTEGRATION_H
+
+#include "qeglfsdeviceintegration.h"
+#include <QMap>
+#include <QVariant>
+
+QT_BEGIN_NAMESPACE
+
+class QEglFSKmsDevice;
+
+class QEglFSKmsIntegration : public QEGLDeviceIntegration
+{
+public:
+ QEglFSKmsIntegration();
+
+ void platformInit() Q_DECL_OVERRIDE;
+ void platformDestroy() Q_DECL_OVERRIDE;
+ EGLNativeDisplayType platformDisplay() const Q_DECL_OVERRIDE;
+ bool usesDefaultScreen() Q_DECL_OVERRIDE;
+ void screenInit() Q_DECL_OVERRIDE;
+ QSurfaceFormat surfaceFormatFor(const QSurfaceFormat &inputFormat) const Q_DECL_OVERRIDE;
+ EGLNativeWindowType createNativeWindow(QPlatformWindow *platformWindow,
+ const QSize &size,
+ const QSurfaceFormat &format) Q_DECL_OVERRIDE;
+ EGLNativeWindowType createNativeOffscreenWindow(const QSurfaceFormat &format) Q_DECL_OVERRIDE;
+ void destroyNativeWindow(EGLNativeWindowType window) Q_DECL_OVERRIDE;
+ bool hasCapability(QPlatformIntegration::Capability cap) const Q_DECL_OVERRIDE;
+ QPlatformCursor *createCursor(QPlatformScreen *screen) const Q_DECL_OVERRIDE;
+ void waitForVSync(QPlatformSurface *surface) const Q_DECL_OVERRIDE;
+ void presentBuffer(QPlatformSurface *surface) Q_DECL_OVERRIDE;
+ bool supportsPBuffers() const Q_DECL_OVERRIDE;
+
+ bool hwCursor() const;
+ QMap<QString, QVariantMap> outputSettings() const;
+
+private:
+ void loadConfig();
+
+ QEglFSKmsDevice *m_device;
+ bool m_hwCursor;
+ bool m_pbuffers;
+ QString m_devicePath;
+ QMap<QString, QVariantMap> m_outputSettings;
+};
+
+QT_END_NAMESPACE
+
+#endif
diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsmain.cpp b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsmain.cpp
new file mode 100644
index 0000000000..8d75ff797e
--- /dev/null
+++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsmain.cpp
@@ -0,0 +1,58 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the qmake spec of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qeglfsdeviceintegration.h"
+#include "qeglfskmsintegration.h"
+
+QT_BEGIN_NAMESPACE
+
+class QEglFSKmsIntegrationPlugin : public QEGLDeviceIntegrationPlugin
+{
+ Q_OBJECT
+ Q_PLUGIN_METADATA(IID QEGLDeviceIntegrationFactoryInterface_iid FILE "eglfs_kms.json")
+
+public:
+ QEGLDeviceIntegration *create() Q_DECL_OVERRIDE { return new QEglFSKmsIntegration; }
+};
+
+QT_END_NAMESPACE
+
+#include "qeglfskmsmain.moc"
diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_x11/eglfs_x11.json b/src/plugins/platforms/eglfs/deviceintegration/eglfs_x11/eglfs_x11.json
new file mode 100644
index 0000000000..846252789a
--- /dev/null
+++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_x11/eglfs_x11.json
@@ -0,0 +1,3 @@
+{
+ "Keys": [ "eglfs_x11" ]
+}
diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_x11/eglfs_x11.pro b/src/plugins/platforms/eglfs/deviceintegration/eglfs_x11/eglfs_x11.pro
new file mode 100644
index 0000000000..a1d08248ff
--- /dev/null
+++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_x11/eglfs_x11.pro
@@ -0,0 +1,24 @@
+TARGET = qeglfs-x11-integration
+
+PLUGIN_CLASS_NAME=QEglFSX11IntegrationPlugin
+PLUGIN_TYPE=egldeviceintegrations
+
+load(qt_plugin)
+
+QT += core-private gui-private platformsupport-private eglfs_device_lib-private
+
+# Avoid X11 header collision
+DEFINES += MESA_EGL_NO_X11_HEADERS
+
+INCLUDEPATH += $$PWD/../..
+
+CONFIG += egl
+LIBS += -lX11 -lX11-xcb -lxcb
+QMAKE_LFLAGS += $$QMAKE_LFLAGS_NOUNDEF
+
+SOURCES += $$PWD/qeglfsx11main.cpp \
+ $$PWD/qeglfsx11integration.cpp
+
+HEADERS += $$PWD/qeglfsx11integration.h
+
+OTHER_FILES += $$PWD/eglfs_x11.json
diff --git a/src/plugins/platforms/eglfs/qeglfshooks_x11.cpp b/src/plugins/platforms/eglfs/deviceintegration/eglfs_x11/qeglfsx11integration.cpp
index b16857297c..e41c007df9 100644
--- a/src/plugins/platforms/eglfs/qeglfshooks_x11.cpp
+++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_x11/qeglfsx11integration.cpp
@@ -3,7 +3,7 @@
** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
-** This file is part of the qmake spec of the Qt Toolkit.
+** This file is part of the plugins of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL21$
** Commercial License Usage
@@ -31,75 +31,28 @@
**
****************************************************************************/
-#include "qeglfshooks.h"
-
-#include <qpa/qwindowsysteminterface.h>
-#include <qpa/qplatformwindow.h>
+#include "qeglfsx11integration.h"
#include <QThread>
#include <X11/Xlib.h>
#include <X11/Xlib-xcb.h>
-#include <xcb/xcb.h>
-QT_BEGIN_NAMESPACE
+/* Make no mistake: This is not a replacement for the xcb platform plugin.
+ This here is barely an extremely useful tool for developing eglfs itself because
+ it allows to do so without any requirements for devices or drivers. */
-class QEglFSX11Hooks;
+QT_BEGIN_NAMESPACE
class EventReader : public QThread
{
public:
- EventReader(QEglFSX11Hooks *hooks)
- : m_hooks(hooks) { }
+ EventReader(QEglFSX11Integration *integration)
+ : m_integration(integration) { }
void run();
private:
- QEglFSX11Hooks *m_hooks;
-};
-
-namespace Atoms {
- enum {
- _NET_WM_NAME = 0,
- UTF8_STRING,
- WM_PROTOCOLS,
- WM_DELETE_WINDOW,
- _NET_WM_STATE,
- _NET_WM_STATE_FULLSCREEN,
-
- N_ATOMS
- };
-}
-
-class QEglFSX11Hooks : public QEglFSHooks
-{
-public:
- QEglFSX11Hooks() : m_connection(0), m_window(0), m_eventReader(0) {}
-
- virtual void platformInit();
- virtual void platformDestroy();
- virtual EGLNativeDisplayType platformDisplay() const;
- virtual QSize screenSize() const;
- virtual EGLNativeWindowType createNativeWindow(QPlatformWindow *window,
- const QSize &size,
- const QSurfaceFormat &format);
- virtual void destroyNativeWindow(EGLNativeWindowType window);
- virtual bool hasCapability(QPlatformIntegration::Capability cap) const;
-
- xcb_connection_t *connection() { return m_connection; }
- const xcb_atom_t *atoms() const { return m_atoms; }
- QPlatformWindow *platformWindow() { return m_platformWindow; }
-
-private:
- void sendConnectionEvent(xcb_atom_t a);
-
- Display *m_display;
- xcb_connection_t *m_connection;
- xcb_atom_t m_atoms[Atoms::N_ATOMS];
- xcb_window_t m_window;
- EventReader *m_eventReader;
- xcb_window_t m_connectionEventListener;
- QPlatformWindow *m_platformWindow;
- mutable QSize m_screenSize;
+ QEglFSX11Integration *m_integration;
};
QAtomicInt running;
@@ -156,7 +109,7 @@ void EventReader::run()
Qt::MouseButtons buttons;
xcb_generic_event_t *event;
- while (running.load() && (event = xcb_wait_for_event(m_hooks->connection()))) {
+ while (running.load() && (event = xcb_wait_for_event(m_integration->connection()))) {
uint response_type = event->response_type & ~0x80;
switch (response_type) {
case XCB_BUTTON_PRESS: {
@@ -183,11 +136,11 @@ void EventReader::run()
}
case XCB_CLIENT_MESSAGE: {
xcb_client_message_event_t *client = (xcb_client_message_event_t *) event;
- const xcb_atom_t *atoms = m_hooks->atoms();
+ const xcb_atom_t *atoms = m_integration->atoms();
if (client->format == 32
&& client->type == atoms[Atoms::WM_PROTOCOLS]
&& client->data.data32[0] == atoms[Atoms::WM_DELETE_WINDOW]) {
- QWindow *window = m_hooks->platformWindow() ? m_hooks->platformWindow()->window() : 0;
+ QWindow *window = m_integration->platformWindow() ? m_integration->platformWindow()->window() : 0;
if (window)
QWindowSystemInterface::handleCloseEvent(window);
}
@@ -199,7 +152,7 @@ void EventReader::run()
}
}
-void QEglFSX11Hooks::sendConnectionEvent(xcb_atom_t a)
+void QEglFSX11Integration::sendConnectionEvent(xcb_atom_t a)
{
xcb_client_message_event_t event;
memset(&event, 0, sizeof(event));
@@ -214,14 +167,16 @@ void QEglFSX11Hooks::sendConnectionEvent(xcb_atom_t a)
xcb_flush(m_connection);
}
-void QEglFSX11Hooks::platformInit()
+#define DISPLAY ((Display *) m_display)
+
+void QEglFSX11Integration::platformInit()
{
m_display = XOpenDisplay(0);
if (!m_display)
qFatal("Could not open display");
- XSetEventQueueOwner(m_display, XCBOwnsEventQueue);
- m_connection = XGetXCBConnection(m_display);
+ XSetEventQueueOwner(DISPLAY, XCBOwnsEventQueue);
+ m_connection = XGetXCBConnection(DISPLAY);
running.ref();
@@ -237,7 +192,7 @@ void QEglFSX11Hooks::platformInit()
m_eventReader->start();
}
-void QEglFSX11Hooks::platformDestroy()
+void QEglFSX11Integration::platformDestroy()
{
running.deref();
@@ -247,31 +202,32 @@ void QEglFSX11Hooks::platformDestroy()
delete m_eventReader;
m_eventReader = 0;
- XCloseDisplay(m_display);
+ XCloseDisplay(DISPLAY);
m_display = 0;
m_connection = 0;
}
-EGLNativeDisplayType QEglFSX11Hooks::platformDisplay() const
+EGLNativeDisplayType QEglFSX11Integration::platformDisplay() const
{
- return m_display;
+ return DISPLAY;
}
-QSize QEglFSX11Hooks::screenSize() const
+QSize QEglFSX11Integration::screenSize() const
{
if (m_screenSize.isEmpty()) {
QList<QByteArray> env = qgetenv("EGLFS_X11_SIZE").split('x');
if (env.length() == 2) {
m_screenSize = QSize(env.at(0).toInt(), env.at(1).toInt());
} else {
- m_screenSize = QSize(640, 480);
- qDebug("EGLFS_X11_SIZE not set, falling back to 640x480");
+ XWindowAttributes a;
+ if (XGetWindowAttributes(DISPLAY, DefaultRootWindow(DISPLAY), &a))
+ m_screenSize = QSize(a.width, a.height);
}
}
return m_screenSize;
}
-EGLNativeWindowType QEglFSX11Hooks::createNativeWindow(QPlatformWindow *platformWindow,
+EGLNativeWindowType QEglFSX11Integration::createNativeWindow(QPlatformWindow *platformWindow,
const QSize &size,
const QSurfaceFormat &format)
{
@@ -286,8 +242,6 @@ EGLNativeWindowType QEglFSX11Hooks::createNativeWindow(QPlatformWindow *platform
XCB_WINDOW_CLASS_INPUT_OUTPUT, it.data->root_visual,
0, 0);
- xcb_map_window(m_connection, m_window);
-
xcb_intern_atom_cookie_t cookies[Atoms::N_ATOMS];
static const char *atomNames[Atoms::N_ATOMS] = {
"_NET_WM_NAME",
@@ -313,30 +267,26 @@ EGLNativeWindowType QEglFSX11Hooks::createNativeWindow(QPlatformWindow *platform
xcb_change_property(m_connection, XCB_PROP_MODE_REPLACE, m_window,
m_atoms[Atoms::WM_PROTOCOLS], XCB_ATOM_ATOM, 32, 1, &m_atoms[Atoms::WM_DELETE_WINDOW]);
- if (qgetenv("EGLFS_X11_FULLSCREEN").toInt()) {
- // Go fullscreen. The QScreen and QWindow size is controlled by EGLFS_X11_SIZE regardless,
- // this is just the native window.
- xcb_change_property(m_connection, XCB_PROP_MODE_REPLACE, m_window,
- m_atoms[Atoms::_NET_WM_STATE], XCB_ATOM_ATOM, 32, 1, &m_atoms[Atoms::_NET_WM_STATE_FULLSCREEN]);
- }
+ // Go fullscreen.
+ xcb_change_property(m_connection, XCB_PROP_MODE_REPLACE, m_window,
+ m_atoms[Atoms::_NET_WM_STATE], XCB_ATOM_ATOM, 32, 1, &m_atoms[Atoms::_NET_WM_STATE_FULLSCREEN]);
+
+ xcb_map_window(m_connection, m_window);
xcb_flush(m_connection);
return m_window;
}
-void QEglFSX11Hooks::destroyNativeWindow(EGLNativeWindowType window)
+void QEglFSX11Integration::destroyNativeWindow(EGLNativeWindowType window)
{
xcb_destroy_window(m_connection, window);
}
-bool QEglFSX11Hooks::hasCapability(QPlatformIntegration::Capability cap) const
+bool QEglFSX11Integration::hasCapability(QPlatformIntegration::Capability cap) const
{
Q_UNUSED(cap);
return false;
}
-static QEglFSX11Hooks eglFSX11Hooks;
-QEglFSHooks *platformHooks = &eglFSX11Hooks;
-
QT_END_NAMESPACE
diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_x11/qeglfsx11integration.h b/src/plugins/platforms/eglfs/deviceintegration/eglfs_x11/qeglfsx11integration.h
new file mode 100644
index 0000000000..78db504f3b
--- /dev/null
+++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_x11/qeglfsx11integration.h
@@ -0,0 +1,95 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL21$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 or version 3 as published by the Free
+** Software Foundation and appearing in the file LICENSE.LGPLv21 and
+** LICENSE.LGPLv3 included in the packaging of this file. Please review the
+** following information to ensure the GNU Lesser General Public License
+** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QEGLFSX11INTEGRATION_H
+#define QEGLFSX11INTEGRATION_H
+
+#include "qeglfsdeviceintegration.h"
+
+#include <qpa/qwindowsysteminterface.h>
+#include <qpa/qplatformwindow.h>
+
+#include <xcb/xcb.h>
+
+QT_BEGIN_NAMESPACE
+
+namespace Atoms {
+ enum {
+ _NET_WM_NAME = 0,
+ UTF8_STRING,
+ WM_PROTOCOLS,
+ WM_DELETE_WINDOW,
+ _NET_WM_STATE,
+ _NET_WM_STATE_FULLSCREEN,
+
+ N_ATOMS
+ };
+}
+
+class EventReader;
+
+class QEglFSX11Integration : public QEGLDeviceIntegration
+{
+public:
+ QEglFSX11Integration() : m_connection(0), m_window(0), m_eventReader(0) {}
+
+ void platformInit() Q_DECL_OVERRIDE;
+ void platformDestroy() Q_DECL_OVERRIDE;
+ EGLNativeDisplayType platformDisplay() const Q_DECL_OVERRIDE;
+ QSize screenSize() const Q_DECL_OVERRIDE;
+ EGLNativeWindowType createNativeWindow(QPlatformWindow *window,
+ const QSize &size,
+ const QSurfaceFormat &format) Q_DECL_OVERRIDE;
+ void destroyNativeWindow(EGLNativeWindowType window) Q_DECL_OVERRIDE;
+ bool hasCapability(QPlatformIntegration::Capability cap) const Q_DECL_OVERRIDE;
+
+ xcb_connection_t *connection() { return m_connection; }
+ const xcb_atom_t *atoms() const { return m_atoms; }
+ QPlatformWindow *platformWindow() { return m_platformWindow; }
+
+private:
+ void sendConnectionEvent(xcb_atom_t a);
+
+ void *m_display;
+ xcb_connection_t *m_connection;
+ xcb_atom_t m_atoms[Atoms::N_ATOMS];
+ xcb_window_t m_window;
+ EventReader *m_eventReader;
+ xcb_window_t m_connectionEventListener;
+ QPlatformWindow *m_platformWindow;
+ mutable QSize m_screenSize;
+};
+
+QT_END_NAMESPACE
+
+#endif
diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_x11/qeglfsx11main.cpp b/src/plugins/platforms/eglfs/deviceintegration/eglfs_x11/qeglfsx11main.cpp
new file mode 100644
index 0000000000..2eee03f595
--- /dev/null
+++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_x11/qeglfsx11main.cpp
@@ -0,0 +1,58 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the qmake spec of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qeglfsdeviceintegration.h"
+#include "qeglfsx11integration.h"
+
+QT_BEGIN_NAMESPACE
+
+class QEglFSX11IntegrationPlugin : public QEGLDeviceIntegrationPlugin
+{
+ Q_OBJECT
+ Q_PLUGIN_METADATA(IID QEGLDeviceIntegrationFactoryInterface_iid FILE "eglfs_x11.json")
+
+public:
+ QEGLDeviceIntegration *create() Q_DECL_OVERRIDE { return new QEglFSX11Integration; }
+};
+
+QT_END_NAMESPACE
+
+#include "qeglfsx11main.moc"
diff --git a/src/plugins/platforms/eglfs/eglfs-plugin.pro b/src/plugins/platforms/eglfs/eglfs-plugin.pro
new file mode 100644
index 0000000000..0f493fdc01
--- /dev/null
+++ b/src/plugins/platforms/eglfs/eglfs-plugin.pro
@@ -0,0 +1,12 @@
+TARGET = qeglfs
+
+PLUGIN_TYPE = platforms
+PLUGIN_CLASS_NAME = QEglFSIntegrationPlugin
+!equals(TARGET, $$QT_DEFAULT_QPA_PLUGIN): PLUGIN_EXTENDS = -
+load(qt_plugin)
+
+QT += platformsupport-private eglfs_device_lib-private
+
+SOURCES += $$PWD/qeglfsmain.cpp
+
+OTHER_FILES += $$PWD/eglfs.json
diff --git a/src/plugins/platforms/eglfs/eglfs.pri b/src/plugins/platforms/eglfs/eglfs.pri
deleted file mode 100644
index 6f463ba7d9..0000000000
--- a/src/plugins/platforms/eglfs/eglfs.pri
+++ /dev/null
@@ -1,44 +0,0 @@
-QT += core-private gui-private platformsupport-private
-
-# Avoid X11 header collision
-DEFINES += MESA_EGL_NO_X11_HEADERS
-
-# Uncomment these to enable the X hooks, allowing to test the platform
-# plugin in a regular X11 environment (as long as EGL is available).
-# EGLFS_PLATFORM_HOOKS_SOURCES += qeglfshooks_x11.cpp
-# LIBS += -lX11 -lX11-xcb -lxcb
-
-# Uncomment these to enable the KMS hooks.
-# EGLFS_PLATFORM_HOOKS_SOURCES += qeglfshooks_kms.cpp
-# CONFIG += link_pkgconfig
-# PKGCONFIG += libdrm gbm
-
-SOURCES += $$PWD/qeglfsintegration.cpp \
- $$PWD/qeglfswindow.cpp \
- $$PWD/qeglfsscreen.cpp \
- $$PWD/qeglfshooks_stub.cpp \
- $$PWD/qeglfscontext.cpp
-
-HEADERS += $$PWD/qeglfsintegration.h \
- $$PWD/qeglfswindow.h \
- $$PWD/qeglfsscreen.h \
- $$PWD/qeglfshooks.h \
- $$PWD/qeglfscontext.h
-
-QMAKE_LFLAGS += $$QMAKE_LFLAGS_NOUNDEF
-
-INCLUDEPATH += $$PWD
-
-!isEmpty(EGLFS_PLATFORM_HOOKS_SOURCES) {
- HEADERS += $$EGLFS_PLATFORM_HOOKS_HEADERS
- SOURCES += $$EGLFS_PLATFORM_HOOKS_SOURCES
- LIBS += $$EGLFS_PLATFORM_HOOKS_LIBS
- DEFINES += EGLFS_PLATFORM_HOOKS
-}
-
-CONFIG += egl qpa/genericunixfontdatabase
-
-RESOURCES += $$PWD/cursor.qrc
-
-OTHER_FILES += \
- $$PWD/eglfs.json
diff --git a/src/plugins/platforms/eglfs/eglfs.pro b/src/plugins/platforms/eglfs/eglfs.pro
index 3ebe05b35e..03c96ca1d9 100644
--- a/src/plugins/platforms/eglfs/eglfs.pro
+++ b/src/plugins/platforms/eglfs/eglfs.pro
@@ -1,10 +1,6 @@
-TARGET = qeglfs
+TEMPLATE = subdirs
+CONFIG += ordered
-PLUGIN_TYPE = platforms
-PLUGIN_CLASS_NAME = QEglFSIntegrationPlugin
-!equals(TARGET, $$QT_DEFAULT_QPA_PLUGIN): PLUGIN_EXTENDS = -
-load(qt_plugin)
-
-SOURCES += $$PWD/main.cpp
-
-include(eglfs.pri)
+SUBDIRS += eglfs_device_lib.pro
+SUBDIRS += eglfs-plugin.pro
+SUBDIRS += deviceintegration
diff --git a/src/plugins/platforms/eglfs/eglfs_device_lib.pro b/src/plugins/platforms/eglfs/eglfs_device_lib.pro
new file mode 100644
index 0000000000..d8ce421a69
--- /dev/null
+++ b/src/plugins/platforms/eglfs/eglfs_device_lib.pro
@@ -0,0 +1,59 @@
+# The device integration plugin base class has to live in a shared library,
+# placing it into a static lib like platformsupport is not sufficient since we
+# have to keep the QObject magic like qobject_cast working.
+# Hence this header-less, private-only module.
+
+TARGET = QtEglDeviceIntegration
+CONFIG += no_module_headers internal_module
+
+MODULE_INCLUDES = \
+ \$\$QT_MODULE_INCLUDE_BASE \
+ \$\$QT_MODULE_INCLUDE_BASE/QtQGui
+MODULE_PRIVATE_INCLUDES = \
+ \$\$QT_MODULE_INCLUDE_BASE/QtGui/$$QT.gui.VERSION \
+ \$\$QT_MODULE_INCLUDE_BASE/QtGui/$$QT.gui.VERSION/QtGui
+
+load(qt_module)
+
+QT += core-private gui-private platformsupport-private
+LIBS += $$QMAKE_LIBS_DYNLOAD
+
+# Avoid X11 header collision
+DEFINES += MESA_EGL_NO_X11_HEADERS
+
+DEFINES += QT_BUILD_EGL_DEVICE_LIB
+
+SOURCES += $$PWD/qeglfsintegration.cpp \
+ $$PWD/qeglfswindow.cpp \
+ $$PWD/qeglfsscreen.cpp \
+ $$PWD/qeglfshooks.cpp \
+ $$PWD/qeglfscontext.cpp \
+ $$PWD/qeglfsoffscreenwindow.cpp \
+ $$PWD/qeglfsdeviceintegration.cpp
+
+HEADERS += $$PWD/qeglfsintegration.h \
+ $$PWD/qeglfswindow.h \
+ $$PWD/qeglfsscreen.h \
+ $$PWD/qeglfshooks.h \
+ $$PWD/qeglfscontext.h \
+ $$PWD/qeglfsoffscreenwindow.h \
+ $$PWD/qeglfsdeviceintegration.h
+
+QMAKE_LFLAGS += $$QMAKE_LFLAGS_NOUNDEF
+
+INCLUDEPATH += $$PWD
+
+!isEmpty(EGLFS_PLATFORM_HOOKS_SOURCES) {
+ HEADERS += $$EGLFS_PLATFORM_HOOKS_HEADERS
+ SOURCES += $$EGLFS_PLATFORM_HOOKS_SOURCES
+ LIBS += $$EGLFS_PLATFORM_HOOKS_LIBS
+ DEFINES += EGLFS_PLATFORM_HOOKS
+}
+
+!isEmpty(EGLFS_DEVICE_INTEGRATION) {
+ DEFINES += EGLFS_PREFERRED_PLUGIN=$$EGLFS_DEVICE_INTEGRATION
+}
+
+CONFIG += egl qpa/genericunixfontdatabase
+
+RESOURCES += $$PWD/cursor.qrc
diff --git a/src/plugins/platforms/eglfs/qeglfscontext.cpp b/src/plugins/platforms/eglfs/qeglfscontext.cpp
index 6216fa8575..7054c90521 100644
--- a/src/plugins/platforms/eglfs/qeglfscontext.cpp
+++ b/src/plugins/platforms/eglfs/qeglfscontext.cpp
@@ -45,7 +45,8 @@ QT_BEGIN_NAMESPACE
QEglFSContext::QEglFSContext(const QSurfaceFormat &format, QPlatformOpenGLContext *share, EGLDisplay display,
EGLConfig *config, const QVariant &nativeHandle)
- : QEGLPlatformContext(format, share, display, config, nativeHandle)
+ : QEGLPlatformContext(format, share, display, config, nativeHandle),
+ m_tempWindow(0)
{
}
@@ -57,17 +58,45 @@ EGLSurface QEglFSContext::eglSurfaceForPlatformSurface(QPlatformSurface *surface
return static_cast<QEGLPbuffer *>(surface)->pbuffer();
}
+EGLSurface QEglFSContext::createTemporaryOffscreenSurface()
+{
+ if (qt_egl_device_integration()->supportsPBuffers())
+ return QEGLPlatformContext::createTemporaryOffscreenSurface();
+
+ if (!m_tempWindow) {
+ m_tempWindow = qt_egl_device_integration()->createNativeOffscreenWindow(format());
+ if (!m_tempWindow) {
+ qWarning("QEglFSContext: Failed to create temporary native window");
+ return EGL_NO_SURFACE;
+ }
+ }
+ EGLConfig config = q_configFromGLFormat(eglDisplay(), format());
+ return eglCreateWindowSurface(eglDisplay(), config, m_tempWindow, 0);
+}
+
+void QEglFSContext::destroyTemporaryOffscreenSurface(EGLSurface surface)
+{
+ if (qt_egl_device_integration()->supportsPBuffers()) {
+ QEGLPlatformContext::destroyTemporaryOffscreenSurface(surface);
+ } else {
+ eglDestroySurface(eglDisplay(), surface);
+ qt_egl_device_integration()->destroyNativeWindow(m_tempWindow);
+ m_tempWindow = 0;
+ }
+}
+
void QEglFSContext::swapBuffers(QPlatformSurface *surface)
{
// draw the cursor
if (surface->surface()->surfaceClass() == QSurface::Window) {
QPlatformWindow *window = static_cast<QPlatformWindow *>(surface);
- if (QEGLPlatformCursor *cursor = static_cast<QEGLPlatformCursor *>(window->screen()->cursor()))
+ if (QEGLPlatformCursor *cursor = qobject_cast<QEGLPlatformCursor *>(window->screen()->cursor()))
cursor->paintOnScreen();
}
- QEglFSHooks::hooks()->waitForVSync();
+ qt_egl_device_integration()->waitForVSync(surface);
QEGLPlatformContext::swapBuffers(surface);
+ qt_egl_device_integration()->presentBuffer(surface);
}
QT_END_NAMESPACE
diff --git a/src/plugins/platforms/eglfs/qeglfscontext.h b/src/plugins/platforms/eglfs/qeglfscontext.h
index fcdad5ed22..245f690822 100644
--- a/src/plugins/platforms/eglfs/qeglfscontext.h
+++ b/src/plugins/platforms/eglfs/qeglfscontext.h
@@ -36,16 +36,22 @@
#include <QtPlatformSupport/private/qeglplatformcontext_p.h>
#include <QtCore/QVariant>
+#include "qeglfsglobal.h"
QT_BEGIN_NAMESPACE
-class QEglFSContext : public QEGLPlatformContext
+class Q_EGLFS_EXPORT QEglFSContext : public QEGLPlatformContext
{
public:
QEglFSContext(const QSurfaceFormat &format, QPlatformOpenGLContext *share, EGLDisplay display,
EGLConfig *config, const QVariant &nativeHandle);
EGLSurface eglSurfaceForPlatformSurface(QPlatformSurface *surface) Q_DECL_OVERRIDE;
+ EGLSurface createTemporaryOffscreenSurface() Q_DECL_OVERRIDE;
+ void destroyTemporaryOffscreenSurface(EGLSurface surface) Q_DECL_OVERRIDE;
void swapBuffers(QPlatformSurface *surface) Q_DECL_OVERRIDE;
+
+private:
+ EGLNativeWindowType m_tempWindow;
};
QT_END_NAMESPACE
diff --git a/src/plugins/platforms/eglfs/qeglfsdeviceintegration.cpp b/src/plugins/platforms/eglfs/qeglfsdeviceintegration.cpp
new file mode 100644
index 0000000000..a2e1ac3832
--- /dev/null
+++ b/src/plugins/platforms/eglfs/qeglfsdeviceintegration.cpp
@@ -0,0 +1,306 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qeglfsdeviceintegration.h"
+#include <QtPlatformSupport/private/qeglconvenience_p.h>
+#include <QtPlatformSupport/private/qeglplatformcursor_p.h>
+#include <QGuiApplication>
+#include <QScreen>
+#include <QDir>
+#include <QRegularExpression>
+#include <QLoggingCategory>
+
+#if defined(Q_OS_LINUX)
+#include <fcntl.h>
+#include <unistd.h>
+#include <linux/fb.h>
+#include <sys/ioctl.h>
+#endif
+
+#include <private/qfactoryloader_p.h>
+#include <private/qcore_unix_p.h>
+
+QT_BEGIN_NAMESPACE
+
+Q_LOGGING_CATEGORY(qLcEglDevDebug, "qt.qpa.egldeviceintegration")
+
+#ifndef QT_NO_LIBRARY
+
+Q_GLOBAL_STATIC_WITH_ARGS(QFactoryLoader, loader,
+ (QEGLDeviceIntegrationFactoryInterface_iid, QLatin1String("/egldeviceintegrations"), Qt::CaseInsensitive))
+
+Q_GLOBAL_STATIC_WITH_ARGS(QFactoryLoader, directLoader,
+ (QEGLDeviceIntegrationFactoryInterface_iid, QLatin1String(""), Qt::CaseInsensitive))
+
+static inline QEGLDeviceIntegration *loadIntegration(QFactoryLoader *loader, const QString &key)
+{
+ const int index = loader->indexOf(key);
+ if (index != -1) {
+ QObject *plugin = loader->instance(index);
+ if (QEGLDeviceIntegrationPlugin *factory = qobject_cast<QEGLDeviceIntegrationPlugin *>(plugin)) {
+ if (QEGLDeviceIntegration *result = factory->create())
+ return result;
+ }
+ }
+ return Q_NULLPTR;
+}
+
+#endif // QT_NO_LIBRARY
+
+QStringList QEGLDeviceIntegrationFactory::keys(const QString &pluginPath)
+{
+#ifndef QT_NO_LIBRARY
+ QStringList list;
+ if (!pluginPath.isEmpty()) {
+ QCoreApplication::addLibraryPath(pluginPath);
+ list = directLoader()->keyMap().values();
+ if (!list.isEmpty()) {
+ const QString postFix = QStringLiteral(" (from ")
+ + QDir::toNativeSeparators(pluginPath)
+ + QLatin1Char(')');
+ const QStringList::iterator end = list.end();
+ for (QStringList::iterator it = list.begin(); it != end; ++it)
+ (*it).append(postFix);
+ }
+ }
+ list.append(loader()->keyMap().values());
+ qCDebug(qLcEglDevDebug) << "EGL device integration plugin keys:" << list;
+ return list;
+#else
+ return QStringList();
+#endif
+}
+
+QEGLDeviceIntegration *QEGLDeviceIntegrationFactory::create(const QString &key, const QString &pluginPath)
+{
+ QEGLDeviceIntegration *integration = Q_NULLPTR;
+#ifndef QT_NO_LIBRARY
+ if (!pluginPath.isEmpty()) {
+ QCoreApplication::addLibraryPath(pluginPath);
+ integration = loadIntegration(directLoader(), key);
+ }
+ if (!integration)
+ integration = loadIntegration(loader(), key);
+ if (integration)
+ qCDebug(qLcEglDevDebug) << "Using EGL device integration" << key;
+ else
+ qCWarning(qLcEglDevDebug) << "Failed to load EGL device integration" << key;
+#endif
+ return integration;
+}
+
+static int framebuffer = -1;
+
+QByteArray QEGLDeviceIntegration::fbDeviceName() const
+{
+ QByteArray fbDev = qgetenv("QT_QPA_EGLFS_FB");
+ if (fbDev.isEmpty())
+ fbDev = QByteArrayLiteral("/dev/fb0");
+
+ return fbDev;
+}
+
+int QEGLDeviceIntegration::framebufferIndex() const
+{
+ int fbIndex = 0;
+#ifndef QT_NO_REGULAREXPRESSION
+ QRegularExpression fbIndexRx(QLatin1String("fb(\\d+)"));
+ QRegularExpressionMatch match = fbIndexRx.match(QString::fromLocal8Bit(fbDeviceName()));
+ if (match.hasMatch())
+ fbIndex = match.captured(1).toInt();
+#endif
+ return fbIndex;
+}
+
+void QEGLDeviceIntegration::platformInit()
+{
+ QByteArray fbDev = fbDeviceName();
+
+ framebuffer = qt_safe_open(fbDev, O_RDONLY);
+
+ if (framebuffer == -1) {
+ qWarning("EGLFS: Failed to open %s", fbDev.constData());
+ qFatal("EGLFS: Can't continue without a display");
+ }
+}
+
+void QEGLDeviceIntegration::platformDestroy()
+{
+ if (framebuffer != -1)
+ close(framebuffer);
+}
+
+EGLNativeDisplayType QEGLDeviceIntegration::platformDisplay() const
+{
+ return EGL_DEFAULT_DISPLAY;
+}
+
+bool QEGLDeviceIntegration::usesDefaultScreen()
+{
+ return true;
+}
+
+void QEGLDeviceIntegration::screenInit()
+{
+ // Nothing to do here. Called only when usesDefaultScreen is false.
+}
+
+void QEGLDeviceIntegration::screenDestroy()
+{
+ while (!qApp->screens().isEmpty())
+ delete qApp->screens().last()->handle();
+}
+
+QSizeF QEGLDeviceIntegration::physicalScreenSize() const
+{
+ return q_physicalScreenSizeFromFb(framebuffer, screenSize());
+}
+
+QSize QEGLDeviceIntegration::screenSize() const
+{
+ return q_screenSizeFromFb(framebuffer);
+}
+
+QDpi QEGLDeviceIntegration::logicalDpi() const
+{
+ QSizeF ps = physicalScreenSize();
+ QSize s = screenSize();
+
+ return QDpi(25.4 * s.width() / ps.width(),
+ 25.4 * s.height() / ps.height());
+}
+
+Qt::ScreenOrientation QEGLDeviceIntegration::nativeOrientation() const
+{
+ return Qt::PrimaryOrientation;
+}
+
+Qt::ScreenOrientation QEGLDeviceIntegration::orientation() const
+{
+ return Qt::PrimaryOrientation;
+}
+
+int QEGLDeviceIntegration::screenDepth() const
+{
+ return q_screenDepthFromFb(framebuffer);
+}
+
+QImage::Format QEGLDeviceIntegration::screenFormat() const
+{
+ return screenDepth() == 16 ? QImage::Format_RGB16 : QImage::Format_RGB32;
+}
+
+QSurfaceFormat QEGLDeviceIntegration::surfaceFormatFor(const QSurfaceFormat &inputFormat) const
+{
+ QSurfaceFormat format = inputFormat;
+
+ static const bool force888 = qEnvironmentVariableIntValue("QT_QPA_EGLFS_FORCE888");
+ if (force888) {
+ format.setRedBufferSize(8);
+ format.setGreenBufferSize(8);
+ format.setBlueBufferSize(8);
+ }
+
+ return format;
+}
+
+bool QEGLDeviceIntegration::filterConfig(EGLDisplay, EGLConfig) const
+{
+ return true;
+}
+
+EGLNativeWindowType QEGLDeviceIntegration::createNativeWindow(QPlatformWindow *platformWindow,
+ const QSize &size,
+ const QSurfaceFormat &format)
+{
+ Q_UNUSED(platformWindow);
+ Q_UNUSED(size);
+ Q_UNUSED(format);
+ return 0;
+}
+
+EGLNativeWindowType QEGLDeviceIntegration::createNativeOffscreenWindow(const QSurfaceFormat &format)
+{
+ Q_UNUSED(format);
+ return 0;
+}
+
+void QEGLDeviceIntegration::destroyNativeWindow(EGLNativeWindowType window)
+{
+ Q_UNUSED(window);
+}
+
+bool QEGLDeviceIntegration::hasCapability(QPlatformIntegration::Capability cap) const
+{
+ Q_UNUSED(cap);
+ return false;
+}
+
+QPlatformCursor *QEGLDeviceIntegration::createCursor(QPlatformScreen *screen) const
+{
+ return new QEGLPlatformCursor(screen);
+}
+
+void QEGLDeviceIntegration::waitForVSync(QPlatformSurface *surface) const
+{
+ Q_UNUSED(surface);
+
+#if defined(FBIO_WAITFORVSYNC)
+ static const bool forceSync = qEnvironmentVariableIntValue("QT_QPA_EGLFS_FORCEVSYNC");
+ if (forceSync && framebuffer != -1) {
+ int arg = 0;
+ if (ioctl(framebuffer, FBIO_WAITFORVSYNC, &arg) == -1)
+ qWarning("Could not wait for vsync.");
+ }
+#endif
+}
+
+void QEGLDeviceIntegration::presentBuffer(QPlatformSurface *surface)
+{
+ Q_UNUSED(surface);
+}
+
+bool QEGLDeviceIntegration::supportsPBuffers() const
+{
+ return true;
+}
+
+QT_END_NAMESPACE
diff --git a/src/plugins/platforms/eglfs/qeglfsdeviceintegration.h b/src/plugins/platforms/eglfs/qeglfsdeviceintegration.h
new file mode 100644
index 0000000000..42abc23c31
--- /dev/null
+++ b/src/plugins/platforms/eglfs/qeglfsdeviceintegration.h
@@ -0,0 +1,113 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL21$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 or version 3 as published by the Free
+** Software Foundation and appearing in the file LICENSE.LGPLv21 and
+** LICENSE.LGPLv3 included in the packaging of this file. Please review the
+** following information to ensure the GNU Lesser General Public License
+** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QEGLFSDEVICEINTEGRATION_H
+#define QEGLFSDEVICEINTEGRATION_H
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+//
+
+#include <qpa/qplatformintegration.h>
+#include <qpa/qplatformscreen.h>
+#include <QtCore/QString>
+#include <QtGui/QSurfaceFormat>
+#include <QtGui/QImage>
+#include <EGL/egl.h>
+#include "qeglfsglobal.h"
+
+QT_BEGIN_NAMESPACE
+
+class QPlatformSurface;
+
+#define QEGLDeviceIntegrationFactoryInterface_iid "org.qt-project.qt.qpa.egl.QEGLDeviceIntegrationFactoryInterface.5.5"
+
+class Q_EGLFS_EXPORT QEGLDeviceIntegration
+{
+public:
+ virtual ~QEGLDeviceIntegration() { }
+
+ virtual void platformInit();
+ virtual void platformDestroy();
+ virtual EGLNativeDisplayType platformDisplay() const;
+ virtual bool usesDefaultScreen();
+ virtual void screenInit();
+ virtual void screenDestroy();
+ virtual QSizeF physicalScreenSize() const;
+ virtual QSize screenSize() const;
+ virtual QDpi logicalDpi() const;
+ virtual Qt::ScreenOrientation nativeOrientation() const;
+ virtual Qt::ScreenOrientation orientation() const;
+ virtual int screenDepth() const;
+ virtual QImage::Format screenFormat() const;
+ virtual QSurfaceFormat surfaceFormatFor(const QSurfaceFormat &inputFormat) const;
+ virtual EGLNativeWindowType createNativeWindow(QPlatformWindow *platformWindow,
+ const QSize &size,
+ const QSurfaceFormat &format);
+ virtual EGLNativeWindowType createNativeOffscreenWindow(const QSurfaceFormat &format);
+ virtual void destroyNativeWindow(EGLNativeWindowType window);
+ virtual bool hasCapability(QPlatformIntegration::Capability cap) const;
+ virtual QPlatformCursor *createCursor(QPlatformScreen *screen) const;
+ virtual bool filterConfig(EGLDisplay display, EGLConfig config) const;
+ virtual void waitForVSync(QPlatformSurface *surface) const;
+ virtual void presentBuffer(QPlatformSurface *surface);
+ virtual QByteArray fbDeviceName() const;
+ virtual int framebufferIndex() const;
+ virtual bool supportsPBuffers() const;
+};
+
+class Q_EGLFS_EXPORT QEGLDeviceIntegrationPlugin : public QObject
+{
+ Q_OBJECT
+
+public:
+ virtual QEGLDeviceIntegration *create() = 0;
+};
+
+class Q_EGLFS_EXPORT QEGLDeviceIntegrationFactory
+{
+public:
+ static QStringList keys(const QString &pluginPath = QString());
+ static QEGLDeviceIntegration *create(const QString &name, const QString &platformPluginPath = QString());
+};
+
+QT_END_NAMESPACE
+
+#endif // QEGLDEVICEINTEGRATION_H
diff --git a/src/plugins/platforms/eglfs/qeglfsglobal.h b/src/plugins/platforms/eglfs/qeglfsglobal.h
new file mode 100644
index 0000000000..db9a76f899
--- /dev/null
+++ b/src/plugins/platforms/eglfs/qeglfsglobal.h
@@ -0,0 +1,45 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL21$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 or version 3 as published by the Free
+** Software Foundation and appearing in the file LICENSE.LGPLv21 and
+** LICENSE.LGPLv3 included in the packaging of this file. Please review the
+** following information to ensure the GNU Lesser General Public License
+** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QEGLFSGLOBAL_H
+#define QEGLFSGLOBAL_H
+
+#include <qglobal.h>
+
+#ifdef QT_BUILD_EGL_DEVICE_LIB
+#define Q_EGLFS_EXPORT Q_DECL_EXPORT
+#else
+#define Q_EGLFS_EXPORT Q_DECL_IMPORT
+#endif
+
+#endif
diff --git a/src/plugins/platforms/eglfs/qeglfshooks.cpp b/src/plugins/platforms/eglfs/qeglfshooks.cpp
new file mode 100644
index 0000000000..2f12c61f99
--- /dev/null
+++ b/src/plugins/platforms/eglfs/qeglfshooks.cpp
@@ -0,0 +1,130 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the qmake spec of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL21$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 or version 3 as published by the Free
+** Software Foundation and appearing in the file LICENSE.LGPLv21 and
+** LICENSE.LGPLv3 included in the packaging of this file. Please review the
+** following information to ensure the GNU Lesser General Public License
+** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qeglfshooks.h"
+#include <QLoggingCategory>
+
+QT_BEGIN_NAMESPACE
+
+Q_DECLARE_LOGGING_CATEGORY(qLcEglDevDebug)
+
+#ifdef EGLFS_PLATFORM_HOOKS
+
+QEGLDeviceIntegration *qt_egl_device_integration()
+{
+ extern QEglFSHooks *platformHooks;
+ return platformHooks;
+}
+
+#else
+
+class DeviceIntegration
+{
+public:
+ DeviceIntegration();
+ ~DeviceIntegration() { delete m_integration; }
+ QEGLDeviceIntegration *integration() { return m_integration; }
+private:
+ QEGLDeviceIntegration *m_integration;
+};
+
+Q_GLOBAL_STATIC(DeviceIntegration, deviceIntegration)
+
+DeviceIntegration::DeviceIntegration()
+{
+ QStringList pluginKeys = QEGLDeviceIntegrationFactory::keys();
+ if (!pluginKeys.isEmpty()) {
+ // Some built-in logic: Prioritize either X11 or KMS/DRM.
+ if (qEnvironmentVariableIsSet("DISPLAY")) {
+ const QString x11key = QStringLiteral("eglfs_x11");
+ if (pluginKeys.contains(x11key)) {
+ pluginKeys.removeOne(x11key);
+ pluginKeys.prepend(x11key);
+ }
+ } else {
+ const QString kmskey = QStringLiteral("eglfs_kms");
+ if (pluginKeys.contains(kmskey)) {
+ pluginKeys.removeOne(kmskey);
+ pluginKeys.prepend(kmskey);
+ }
+ }
+
+ QByteArray requested;
+
+ // The environment variable can override everything.
+ if (qEnvironmentVariableIsSet("QT_QPA_EGLFS_INTEGRATION")) {
+ requested = qgetenv("QT_QPA_EGLFS_INTEGRATION");
+ } else {
+ // Device-specific makespecs may define a preferred plugin.
+#ifdef EGLFS_PREFERRED_PLUGIN
+#define DEFAULT_PLUGIN EGLFS_PREFERRED_PLUGIN
+#define STR(s) #s
+#define STRQ(s) STR(s)
+ requested = STRQ(DEFAULT_PLUGIN);
+#endif
+ }
+
+ // Treat "none" as special. There has to be a way to indicate
+ // that plugins must be ignored when the device is known to be
+ // functional with the default, non-specialized integration.
+ if (requested != QByteArrayLiteral("none")) {
+ if (!requested.isEmpty()) {
+ QString reqStr = QString::fromLocal8Bit(requested);
+ pluginKeys.removeOne(reqStr);
+ pluginKeys.prepend(reqStr);
+ }
+ qCDebug(qLcEglDevDebug) << "EGL device integration plugin keys (sorted):" << pluginKeys;
+ while (!m_integration && !pluginKeys.isEmpty()) {
+ QString key = pluginKeys.takeFirst();
+ qCDebug(qLcEglDevDebug) << "Trying to load device EGL integration" << key;
+ m_integration = QEGLDeviceIntegrationFactory::create(key);
+ }
+ }
+ }
+
+ if (!m_integration) {
+ // Use a default, non-specialized device integration when no plugin is available.
+ // For some systems this is sufficient.
+ qCDebug(qLcEglDevDebug) << "Using base device integration";
+ m_integration = new QEGLDeviceIntegration;
+ }
+}
+
+QEGLDeviceIntegration *qt_egl_device_integration()
+{
+ return deviceIntegration()->integration();
+}
+
+#endif // EGLFS_PLATFORM_HOOKS
+
+QT_END_NAMESPACE
diff --git a/src/plugins/platforms/eglfs/qeglfshooks.h b/src/plugins/platforms/eglfs/qeglfshooks.h
index c51af17a56..1fcfc5bd08 100644
--- a/src/plugins/platforms/eglfs/qeglfshooks.h
+++ b/src/plugins/platforms/eglfs/qeglfshooks.h
@@ -34,56 +34,17 @@
#ifndef QEGLFSHOOKS_H
#define QEGLFSHOOKS_H
-#include <qpa/qplatformintegration.h>
-#include <qpa/qplatformscreen.h>
-#include <QtGui/QSurfaceFormat>
-#include <QtGui/QImage>
-#include <EGL/egl.h>
+#include "qeglfsdeviceintegration.h"
+#include "qeglfsglobal.h"
QT_BEGIN_NAMESPACE
-class QEGLPlatformCursor;
-class QEglFSScreen;
-
-class QEglFSHooks
+class QEglFSHooks : public QEGLDeviceIntegration
{
-public:
- virtual ~QEglFSHooks() {}
- virtual void platformInit();
- virtual void platformDestroy();
- virtual EGLNativeDisplayType platformDisplay() const;
- virtual QSizeF physicalScreenSize() const;
- virtual QSize screenSize() const;
- virtual QDpi logicalDpi() const;
- virtual Qt::ScreenOrientation nativeOrientation() const;
- virtual Qt::ScreenOrientation orientation() const;
- virtual int screenDepth() const;
- virtual QImage::Format screenFormat() const;
- virtual QSurfaceFormat surfaceFormatFor(const QSurfaceFormat &inputFormat) const;
- virtual EGLNativeWindowType createNativeWindow(QPlatformWindow *platformWindow,
- const QSize &size,
- const QSurfaceFormat &format);
- virtual void destroyNativeWindow(EGLNativeWindowType window);
- virtual bool hasCapability(QPlatformIntegration::Capability cap) const;
- virtual QEGLPlatformCursor *createCursor(QPlatformScreen *screen) const;
- virtual bool filterConfig(EGLDisplay display, EGLConfig config) const;
- virtual void waitForVSync() const;
-
- virtual QByteArray fbDeviceName() const;
- virtual int framebufferIndex() const;
-
- static QEglFSHooks *hooks()
- {
-#ifdef EGLFS_PLATFORM_HOOKS
- extern QEglFSHooks *platformHooks;
- return platformHooks;
-#else
- extern QEglFSHooks stubHooks;
- return &stubHooks;
-#endif
- }
};
+Q_EGLFS_EXPORT QEGLDeviceIntegration *qt_egl_device_integration();
+
QT_END_NAMESPACE
#endif // QEGLFSHOOKS_H
diff --git a/src/plugins/platforms/eglfs/qeglfshooks_kms.cpp b/src/plugins/platforms/eglfs/qeglfshooks_kms.cpp
deleted file mode 100644
index 9e5d624d87..0000000000
--- a/src/plugins/platforms/eglfs/qeglfshooks_kms.cpp
+++ /dev/null
@@ -1,422 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the qmake spec of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qeglfshooks.h"
-#include <QtPlatformSupport/private/qdevicediscovery_p.h>
-#include <QtCore/private/qcore_unix_p.h>
-#include <QtCore/QScopedPointer>
-#include <QtGui/qpa/qplatformwindow.h>
-
-#include <xf86drm.h>
-#include <xf86drmMode.h>
-#include <gbm.h>
-
-QT_USE_NAMESPACE
-
-class QEglKmsHooks : public QEglFSHooks
-{
-public:
- QEglKmsHooks();
-
- void platformInit() Q_DECL_OVERRIDE;
- void platformDestroy() Q_DECL_OVERRIDE;
- EGLNativeDisplayType platformDisplay() const Q_DECL_OVERRIDE;
- QSizeF physicalScreenSize() const Q_DECL_OVERRIDE;
- QSize screenSize() const Q_DECL_OVERRIDE;
- int screenDepth() const Q_DECL_OVERRIDE;
- QSurfaceFormat surfaceFormatFor(const QSurfaceFormat &inputFormat) const Q_DECL_OVERRIDE;
- EGLNativeWindowType createNativeWindow(QPlatformWindow *platformWindow,
- const QSize &size,
- const QSurfaceFormat &format) Q_DECL_OVERRIDE;
- void destroyNativeWindow(EGLNativeWindowType window) Q_DECL_OVERRIDE;
- bool hasCapability(QPlatformIntegration::Capability cap) const Q_DECL_OVERRIDE;
- void waitForVSync() const Q_DECL_OVERRIDE;
-
- void waitForVSyncImpl();
- bool setup_kms();
-
- struct FrameBuffer {
- FrameBuffer() : fb(0) {}
- uint32_t fb;
- };
- FrameBuffer *framebufferForBufferObject(gbm_bo *bo);
-
-private:
- // device bits
- QByteArray m_device;
- int m_dri_fd;
- gbm_device *m_gbm_device;
-
- // KMS bits
- drmModeConnector *m_drm_connector;
- drmModeEncoder *m_drm_encoder;
- drmModeModeInfo m_drm_mode;
- quint32 m_drm_crtc;
-
- // Drawing bits
- gbm_surface *m_gbm_surface;
-};
-
-static QEglKmsHooks kms_hooks;
-QEglFSHooks *platformHooks = &kms_hooks;
-
-QEglKmsHooks::QEglKmsHooks()
- : m_dri_fd(-1)
- , m_gbm_device(Q_NULLPTR)
- , m_drm_connector(Q_NULLPTR)
- , m_drm_encoder(Q_NULLPTR)
- , m_drm_crtc(0)
- , m_gbm_surface(Q_NULLPTR)
-{
-
-}
-
-void QEglKmsHooks::platformInit()
-{
- QDeviceDiscovery *d = QDeviceDiscovery::create(QDeviceDiscovery::Device_VideoMask);
- QStringList devices = d->scanConnectedDevices();
- d->deleteLater();
-
- if (devices.isEmpty())
- qFatal("Could not find DRM device!");
-
- m_device = devices.first().toLocal8Bit();
- m_dri_fd = qt_safe_open(m_device.constData(), O_RDWR | O_CLOEXEC);
- if (m_dri_fd == -1) {
- qErrnoWarning("Could not open DRM device %s", m_device.constData());
- qFatal("DRM device required, aborting.");
- }
-
- if (!setup_kms())
- qFatal("Could not set up KMS on device %s!", m_device.constData());
-
- m_gbm_device = gbm_create_device(m_dri_fd);
- if (!m_gbm_device)
- qFatal("Could not initialize gbm on device %s!", m_device.constData());
-}
-
-void QEglKmsHooks::platformDestroy()
-{
- gbm_device_destroy(m_gbm_device);
- m_gbm_device = Q_NULLPTR;
-
- if (qt_safe_close(m_dri_fd) == -1)
- qErrnoWarning("Could not close DRM device %s", m_device.constData());
-
- m_dri_fd = -1;
-}
-
-EGLNativeDisplayType QEglKmsHooks::platformDisplay() const
-{
- return static_cast<EGLNativeDisplayType>(m_gbm_device);
-}
-
-QSizeF QEglKmsHooks::physicalScreenSize() const
-{
- return QSizeF(m_drm_connector->mmWidth,
- m_drm_connector->mmHeight);
-}
-
-QSize QEglKmsHooks::screenSize() const
-{
- return QSize(m_drm_mode.hdisplay,
- m_drm_mode.vdisplay);
-}
-
-int QEglKmsHooks::screenDepth() const
-{
- return 32;
-}
-
-QSurfaceFormat QEglKmsHooks::surfaceFormatFor(const QSurfaceFormat &inputFormat) const
-{
- QSurfaceFormat format(inputFormat);
- format.setRenderableType(QSurfaceFormat::OpenGLES);
- format.setSwapBehavior(QSurfaceFormat::DoubleBuffer);
- format.setRedBufferSize(8);
- format.setGreenBufferSize(8);
- format.setBlueBufferSize(8);
- return format;
-}
-
-EGLNativeWindowType QEglKmsHooks::createNativeWindow(QPlatformWindow *platformWindow,
- const QSize &size,
- const QSurfaceFormat &format)
-{
- Q_UNUSED(platformWindow);
- Q_UNUSED(size);
- Q_UNUSED(format);
-
- if (m_gbm_surface) {
- qWarning("Only single window apps supported!");
- return 0;
- }
-
- m_gbm_surface = gbm_surface_create(m_gbm_device,
- screenSize().width(),
- screenSize().height(),
- GBM_FORMAT_XRGB8888,
- GBM_BO_USE_SCANOUT | GBM_BO_USE_RENDERING);
- if (!m_gbm_surface)
- qFatal("Could not initialize GBM surface");
-
- return reinterpret_cast<EGLNativeWindowType>(m_gbm_surface);
-}
-
-void QEglKmsHooks::destroyNativeWindow(EGLNativeWindowType window)
-{
- gbm_surface *surface = reinterpret_cast<gbm_surface *>(window);
- if (surface == m_gbm_surface)
- m_gbm_surface = Q_NULLPTR;
- gbm_surface_destroy(surface);
-}
-
-bool QEglKmsHooks::hasCapability(QPlatformIntegration::Capability cap) const
-{
- switch (cap) {
- case QPlatformIntegration::ThreadedPixmaps:
- case QPlatformIntegration::OpenGL:
- case QPlatformIntegration::ThreadedOpenGL:
- case QPlatformIntegration::BufferQueueingOpenGL:
- return true;
- default:
- return false;
- }
-}
-
-static void gbm_bo_destroyed_callback(gbm_bo *bo, void *data)
-{
- QEglKmsHooks::FrameBuffer *fb = static_cast<QEglKmsHooks::FrameBuffer *>(data);
-
- if (fb->fb) {
- gbm_device *device = gbm_bo_get_device(bo);
- drmModeRmFB(gbm_device_get_fd(device), fb->fb);
- }
-
- delete fb;
-}
-
-QEglKmsHooks::FrameBuffer *QEglKmsHooks::framebufferForBufferObject(gbm_bo *bo)
-{
- {
- FrameBuffer *fb = static_cast<FrameBuffer *>(gbm_bo_get_user_data(bo));
- if (fb)
- return fb;
- }
-
- uint32_t width = gbm_bo_get_width(bo);
- uint32_t height = gbm_bo_get_height(bo);
- uint32_t stride = gbm_bo_get_stride(bo);
- uint32_t handle = gbm_bo_get_handle(bo).u32;
-
- QScopedPointer<FrameBuffer> fb(new FrameBuffer);
-
- int ret = drmModeAddFB(m_dri_fd, width, height, 24, 32,
- stride, handle, &fb->fb);
-
- if (ret) {
- qWarning("Failed to create KMS FB!");
- return Q_NULLPTR;
- }
-
- gbm_bo_set_user_data(bo, fb.data(), gbm_bo_destroyed_callback);
- return fb.take();
-}
-
-static void page_flip_handler(int fd,
- unsigned int sequence,
- unsigned int tv_sec,
- unsigned int tv_usec,
- void *user_data)
-{
- Q_UNUSED(fd);
- Q_UNUSED(sequence);
- Q_UNUSED(tv_sec);
- Q_UNUSED(tv_usec);
-
- // We are no longer flipping
- *static_cast<bool *>(user_data) = false;
-}
-
-void QEglKmsHooks::waitForVSync() const
-{
- const_cast<QEglKmsHooks*>(this)->waitForVSyncImpl();
-}
-
-void QEglKmsHooks::waitForVSyncImpl()
-{
- if (!m_gbm_surface) {
- qWarning("Cannot sync before platform init!");
- return;
- }
-
- if (!gbm_surface_has_free_buffers(m_gbm_surface)) {
- qWarning("Out of free GBM buffers!");
- return;
- }
-
- gbm_bo *front_buffer = gbm_surface_lock_front_buffer(m_gbm_surface);
- if (!front_buffer) {
- qWarning("Could not lock GBM surface front buffer!");
- return;
- }
-
- QEglKmsHooks::FrameBuffer *fb = framebufferForBufferObject(front_buffer);
-
- int ret = drmModeSetCrtc(m_dri_fd,
- m_drm_crtc,
- fb->fb,
- 0, 0,
- &m_drm_connector->connector_id, 1,
- &m_drm_mode);
- if (ret) {
- qErrnoWarning("Could not set DRM mode!");
- return;
- }
-
- bool flipping = true;
- ret = drmModePageFlip(m_dri_fd,
- m_drm_encoder->crtc_id,
- fb->fb,
- DRM_MODE_PAGE_FLIP_EVENT,
- &flipping);
- if (ret) {
- qErrnoWarning("Could not queue DRM page flip!");
- return;
- }
-
- drmEventContext drmEvent = {
- DRM_EVENT_CONTEXT_VERSION,
- Q_NULLPTR, // vblank handler
- page_flip_handler // page flip handler
- };
-
- fd_set fds;
- FD_ZERO(&fds);
- FD_SET(m_dri_fd, &fds);
-
- time_t start, cur;
- time(&start);
-
- while (flipping && (time(&cur) < start + 1)) {
- timespec v;
- memset(&v, 0, sizeof(v));
- v.tv_sec = start + 1 - cur;
-
- ret = qt_safe_select(m_dri_fd + 1, &fds, Q_NULLPTR, Q_NULLPTR, &v);
-
- if (ret == 0) {
- // timeout
- break;
- } else if (ret == -1) {
- qErrnoWarning("Error while selecting on DRM fd");
- break;
- } else if (drmHandleEvent(m_dri_fd, &drmEvent)) {
- qWarning("Could not handle DRM event!");
- }
- }
-
- gbm_surface_release_buffer(m_gbm_surface, front_buffer);
-}
-
-bool QEglKmsHooks::setup_kms()
-{
- drmModeRes *resources;
- drmModeConnector *connector;
- drmModeEncoder *encoder;
- quint32 crtc = 0;
- int i;
-
- resources = drmModeGetResources(m_dri_fd);
- if (!resources) {
- qWarning("drmModeGetResources failed");
- return false;
- }
-
- for (i = 0; i < resources->count_connectors; i++) {
- connector = drmModeGetConnector(m_dri_fd, resources->connectors[i]);
- if (connector == NULL)
- continue;
-
- if (connector->connection == DRM_MODE_CONNECTED &&
- connector->count_modes > 0) {
- break;
- }
-
- drmModeFreeConnector(connector);
- }
-
- if (i == resources->count_connectors) {
- qWarning("No currently active connector found.");
- return false;
- }
-
- for (i = 0; i < resources->count_encoders; i++) {
- encoder = drmModeGetEncoder(m_dri_fd, resources->encoders[i]);
-
- if (encoder == NULL)
- continue;
-
- if (encoder->encoder_id == connector->encoder_id)
- break;
-
- drmModeFreeEncoder(encoder);
- }
-
- for (int j = 0; j < resources->count_crtcs; j++) {
- if ((encoder->possible_crtcs & (1 << j))) {
- crtc = resources->crtcs[j];
- break;
- }
- }
-
- if (crtc == 0)
- qFatal("No suitable CRTC available");
-
- m_drm_connector = connector;
- m_drm_encoder = encoder;
- m_drm_mode = connector->modes[0];
- m_drm_crtc = crtc;
-
- drmModeFreeResources(resources);
-
- return true;
-}
diff --git a/src/plugins/platforms/eglfs/qeglfshooks_stub.cpp b/src/plugins/platforms/eglfs/qeglfshooks_stub.cpp
deleted file mode 100644
index 26d77a2abb..0000000000
--- a/src/plugins/platforms/eglfs/qeglfshooks_stub.cpp
+++ /dev/null
@@ -1,199 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the qmake spec of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL21$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 or version 3 as published by the Free
-** Software Foundation and appearing in the file LICENSE.LGPLv21 and
-** LICENSE.LGPLv3 included in the packaging of this file. Please review the
-** following information to ensure the GNU Lesser General Public License
-** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qeglfshooks.h"
-#include <QtPlatformSupport/private/qeglplatformcursor_p.h>
-#include <QtPlatformSupport/private/qeglconvenience_p.h>
-#include <QtCore/QRegularExpression>
-
-#if defined(Q_OS_LINUX)
-#include <fcntl.h>
-#include <unistd.h>
-#include <linux/fb.h>
-#include <sys/ioctl.h>
-#endif
-
-#include <private/qcore_unix_p.h>
-
-QT_BEGIN_NAMESPACE
-
-// file descriptor for the frame buffer
-// this is a global static to keep the QEglFSHooks interface as clean as possible
-static int framebuffer = -1;
-
-QByteArray QEglFSHooks::fbDeviceName() const
-{
- QByteArray fbDev = qgetenv("QT_QPA_EGLFS_FB");
- if (fbDev.isEmpty())
- fbDev = QByteArrayLiteral("/dev/fb0");
-
- return fbDev;
-}
-
-int QEglFSHooks::framebufferIndex() const
-{
- int fbIndex = 0;
-#ifndef QT_NO_REGULAREXPRESSION
- QRegularExpression fbIndexRx(QLatin1String("fb(\\d+)"));
- QRegularExpressionMatch match = fbIndexRx.match(fbDeviceName());
- if (match.hasMatch())
- fbIndex = match.captured(1).toInt();
-
-#endif
- return fbIndex;
-}
-
-void QEglFSHooks::platformInit()
-{
- QByteArray fbDev = fbDeviceName();
-
- framebuffer = qt_safe_open(fbDev, O_RDONLY);
-
- if (framebuffer == -1) {
- qWarning("EGLFS: Failed to open %s", qPrintable(fbDev));
- qFatal("EGLFS: Can't continue without a display");
- }
-}
-
-void QEglFSHooks::platformDestroy()
-{
- if (framebuffer != -1)
- close(framebuffer);
-}
-
-EGLNativeDisplayType QEglFSHooks::platformDisplay() const
-{
- return EGL_DEFAULT_DISPLAY;
-}
-
-QSizeF QEglFSHooks::physicalScreenSize() const
-{
- return q_physicalScreenSizeFromFb(framebuffer, screenSize());
-}
-
-QSize QEglFSHooks::screenSize() const
-{
- return q_screenSizeFromFb(framebuffer);
-}
-
-QDpi QEglFSHooks::logicalDpi() const
-{
- QSizeF ps = physicalScreenSize();
- QSize s = screenSize();
-
- return QDpi(25.4 * s.width() / ps.width(),
- 25.4 * s.height() / ps.height());
-}
-
-Qt::ScreenOrientation QEglFSHooks::nativeOrientation() const
-{
- return Qt::PrimaryOrientation;
-}
-
-Qt::ScreenOrientation QEglFSHooks::orientation() const
-{
- return Qt::PrimaryOrientation;
-}
-
-int QEglFSHooks::screenDepth() const
-{
- return q_screenDepthFromFb(framebuffer);
-}
-
-QImage::Format QEglFSHooks::screenFormat() const
-{
- return screenDepth() == 16 ? QImage::Format_RGB16 : QImage::Format_RGB32;
-}
-
-QSurfaceFormat QEglFSHooks::surfaceFormatFor(const QSurfaceFormat &inputFormat) const
-{
- QSurfaceFormat format = inputFormat;
-
- static const bool force888 = qgetenv("QT_QPA_EGLFS_FORCE888").toInt();
- if (force888) {
- format.setRedBufferSize(8);
- format.setGreenBufferSize(8);
- format.setBlueBufferSize(8);
- }
-
- return format;
-}
-
-bool QEglFSHooks::filterConfig(EGLDisplay, EGLConfig) const
-{
- return true;
-}
-
-EGLNativeWindowType QEglFSHooks::createNativeWindow(QPlatformWindow *platformWindow,
- const QSize &size,
- const QSurfaceFormat &format)
-{
- Q_UNUSED(platformWindow);
- Q_UNUSED(size);
- Q_UNUSED(format);
- return 0;
-}
-
-void QEglFSHooks::destroyNativeWindow(EGLNativeWindowType window)
-{
- Q_UNUSED(window);
-}
-
-bool QEglFSHooks::hasCapability(QPlatformIntegration::Capability cap) const
-{
- Q_UNUSED(cap);
- return false;
-}
-
-QEGLPlatformCursor *QEglFSHooks::createCursor(QPlatformScreen *screen) const
-{
- return new QEGLPlatformCursor(screen);
-}
-
-void QEglFSHooks::waitForVSync() const
-{
-#if defined(FBIO_WAITFORVSYNC)
- static const bool forceSync = qgetenv("QT_QPA_EGLFS_FORCEVSYNC").toInt();
- if (forceSync && framebuffer != -1) {
- int arg = 0;
- if (ioctl(framebuffer, FBIO_WAITFORVSYNC, &arg) == -1)
- qWarning("Could not wait for vsync.");
- }
-#endif
-}
-
-#ifndef EGLFS_PLATFORM_HOOKS
-QEglFSHooks stubHooks;
-#endif
-
-QT_END_NAMESPACE
diff --git a/src/plugins/platforms/eglfs/qeglfsintegration.cpp b/src/plugins/platforms/eglfs/qeglfsintegration.cpp
index 2a4eae3fe2..8cb23f2c09 100644
--- a/src/plugins/platforms/eglfs/qeglfsintegration.cpp
+++ b/src/plugins/platforms/eglfs/qeglfsintegration.cpp
@@ -36,6 +36,7 @@
#include "qeglfswindow.h"
#include "qeglfshooks.h"
#include "qeglfscontext.h"
+#include "qeglfsoffscreenwindow.h"
#include <QtGui/private/qguiapplication_p.h>
@@ -62,43 +63,50 @@ QT_BEGIN_NAMESPACE
QEglFSIntegration::QEglFSIntegration()
{
- mDisableInputHandlers = qgetenv("QT_QPA_EGLFS_DISABLE_INPUT").toInt();
+ mDisableInputHandlers = qEnvironmentVariableIntValue("QT_QPA_EGLFS_DISABLE_INPUT");
initResources();
}
-QEglFSIntegration::~QEglFSIntegration()
-{
- QEglFSHooks::hooks()->platformDestroy();
-}
-
bool QEglFSIntegration::hasCapability(QPlatformIntegration::Capability cap) const
{
// We assume that devices will have more and not less capabilities
- if (QEglFSHooks::hooks() && QEglFSHooks::hooks()->hasCapability(cap))
+ if (qt_egl_device_integration()->hasCapability(cap))
return true;
return QEGLPlatformIntegration::hasCapability(cap);
}
+void QEglFSIntegration::addScreen(QPlatformScreen *screen)
+{
+ screenAdded(screen);
+}
+
void QEglFSIntegration::initialize()
{
- QEglFSHooks::hooks()->platformInit();
+ qt_egl_device_integration()->platformInit();
QEGLPlatformIntegration::initialize();
if (!mDisableInputHandlers)
createInputHandlers();
+
+ if (qt_egl_device_integration()->usesDefaultScreen())
+ addScreen(new QEglFSScreen(display()));
+ else
+ qt_egl_device_integration()->screenInit();
}
-EGLNativeDisplayType QEglFSIntegration::nativeDisplay() const
+void QEglFSIntegration::destroy()
{
- return QEglFSHooks::hooks()->platformDisplay();
+ qt_egl_device_integration()->screenDestroy();
+ QEGLPlatformIntegration::destroy();
+ qt_egl_device_integration()->platformDestroy();
}
-QEGLPlatformScreen *QEglFSIntegration::createScreen() const
+EGLNativeDisplayType QEglFSIntegration::nativeDisplay() const
{
- return new QEglFSScreen(display());
+ return qt_egl_device_integration()->platformDisplay();
}
QEGLPlatformWindow *QEglFSIntegration::createWindow(QWindow *window) const
@@ -112,12 +120,12 @@ QEGLPlatformContext *QEglFSIntegration::createContext(const QSurfaceFormat &form
QVariant *nativeHandle) const
{
QEglFSContext *ctx;
- QSurfaceFormat adjustedFormat = QEglFSHooks::hooks()->surfaceFormatFor(format);
+ QSurfaceFormat adjustedFormat = qt_egl_device_integration()->surfaceFormatFor(format);
if (!nativeHandle || nativeHandle->isNull()) {
EGLConfig config = QEglFSIntegration::chooseConfig(display, adjustedFormat);
- ctx = new QEglFSContext(adjustedFormat, shareContext, display, &config, QVariant());
+ ctx = new QEglFSContext(adjustedFormat, shareContext, display, &config, QVariant());
} else {
- ctx = new QEglFSContext(adjustedFormat, shareContext, display, 0, *nativeHandle);
+ ctx = new QEglFSContext(adjustedFormat, shareContext, display, 0, *nativeHandle);
}
*nativeHandle = QVariant::fromValue<QEGLNativeContext>(QEGLNativeContext(ctx->eglContext(), display));
return ctx;
@@ -127,41 +135,28 @@ QPlatformOffscreenSurface *QEglFSIntegration::createOffscreenSurface(EGLDisplay
const QSurfaceFormat &format,
QOffscreenSurface *surface) const
{
- return new QEGLPbuffer(display, QEglFSHooks::hooks()->surfaceFormatFor(format), surface);
-}
+ QSurfaceFormat fmt = qt_egl_device_integration()->surfaceFormatFor(format);
+ if (qt_egl_device_integration()->supportsPBuffers())
+ return new QEGLPbuffer(display, fmt, surface);
+ else
+ return new QEglFSOffscreenWindow(display, fmt, surface);
-QVariant QEglFSIntegration::styleHint(QPlatformIntegration::StyleHint hint) const
-{
- switch (hint)
- {
- case QPlatformIntegration::ShowIsFullScreen:
- return screen()->compositingWindow() == 0;
- default:
- return QPlatformIntegration::styleHint(hint);
- }
+ // Never return null. Multiple QWindows are not supported by this plugin.
}
EGLConfig QEglFSIntegration::chooseConfig(EGLDisplay display, const QSurfaceFormat &format)
{
class Chooser : public QEglConfigChooser {
public:
- Chooser(EGLDisplay display, QEglFSHooks *hooks)
- : QEglConfigChooser(display)
- , m_hooks(hooks)
- {
+ Chooser(EGLDisplay display)
+ : QEglConfigChooser(display) { }
+ bool filterConfig(EGLConfig config) const Q_DECL_OVERRIDE {
+ return qt_egl_device_integration()->filterConfig(display(), config)
+ && QEglConfigChooser::filterConfig(config);
}
-
- protected:
- bool filterConfig(EGLConfig config) const
- {
- return m_hooks->filterConfig(display(), config) && QEglConfigChooser::filterConfig(config);
- }
-
- private:
- QEglFSHooks *m_hooks;
};
- Chooser chooser(display, QEglFSHooks::hooks());
+ Chooser chooser(display);
chooser.setSurfaceFormat(format);
return chooser.chooseConfig();
}
diff --git a/src/plugins/platforms/eglfs/qeglfsintegration.h b/src/plugins/platforms/eglfs/qeglfsintegration.h
index d612a270f2..b75dc240bb 100644
--- a/src/plugins/platforms/eglfs/qeglfsintegration.h
+++ b/src/plugins/platforms/eglfs/qeglfsintegration.h
@@ -37,24 +37,25 @@
#include <QtPlatformSupport/private/qeglplatformintegration_p.h>
#include <qpa/qplatformscreen.h>
#include <EGL/egl.h>
+#include "qeglfsglobal.h"
QT_BEGIN_NAMESPACE
-class QEglFSIntegration : public QEGLPlatformIntegration
+class Q_EGLFS_EXPORT QEglFSIntegration : public QEGLPlatformIntegration
{
public:
QEglFSIntegration();
- ~QEglFSIntegration();
+
+ void addScreen(QPlatformScreen *screen);
void initialize() Q_DECL_OVERRIDE;
+ void destroy() Q_DECL_OVERRIDE;
bool hasCapability(QPlatformIntegration::Capability cap) const Q_DECL_OVERRIDE;
- QVariant styleHint(QPlatformIntegration::StyleHint hint) const Q_DECL_OVERRIDE;
static EGLConfig chooseConfig(EGLDisplay display, const QSurfaceFormat &format);
protected:
- QEGLPlatformScreen *createScreen() const Q_DECL_OVERRIDE;
QEGLPlatformWindow *createWindow(QWindow *window) const Q_DECL_OVERRIDE;
QEGLPlatformContext *createContext(const QSurfaceFormat &format,
QPlatformOpenGLContext *shareContext,
diff --git a/src/plugins/platforms/eglfs/main.cpp b/src/plugins/platforms/eglfs/qeglfsmain.cpp
index be91fbf3c3..2c5e79534d 100644
--- a/src/plugins/platforms/eglfs/main.cpp
+++ b/src/plugins/platforms/eglfs/qeglfsmain.cpp
@@ -41,7 +41,7 @@ class QEglFSIntegrationPlugin : public QPlatformIntegrationPlugin
Q_OBJECT
Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.2" FILE "eglfs.json")
public:
- QPlatformIntegration *create(const QString&, const QStringList&);
+ QPlatformIntegration *create(const QString&, const QStringList&) Q_DECL_OVERRIDE;
};
QPlatformIntegration* QEglFSIntegrationPlugin::create(const QString& system, const QStringList& paramList)
@@ -55,4 +55,4 @@ QPlatformIntegration* QEglFSIntegrationPlugin::create(const QString& system, con
QT_END_NAMESPACE
-#include "main.moc"
+#include "qeglfsmain.moc"
diff --git a/src/plugins/platforms/eglfs/qeglfsoffscreenwindow.cpp b/src/plugins/platforms/eglfs/qeglfsoffscreenwindow.cpp
new file mode 100644
index 0000000000..7bf53ef351
--- /dev/null
+++ b/src/plugins/platforms/eglfs/qeglfsoffscreenwindow.cpp
@@ -0,0 +1,85 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qeglfsoffscreenwindow.h"
+#include "qeglfshooks.h"
+#include <QtGui/QOffscreenSurface>
+#include <QtPlatformSupport/private/qeglconvenience_p.h>
+
+QT_BEGIN_NAMESPACE
+
+/*
+ In some cases pbuffers are not available. Triggering QtGui's built-in
+ fallback for a hidden QWindow is not suitable for eglfs since this would be
+ treated as an attempt to create multiple top-level, native windows.
+
+ Therefore this class is provided as an alternative to QEGLPbuffer.
+
+ This class requires the hooks to implement createNativeOffscreenWindow().
+*/
+
+QEglFSOffscreenWindow::QEglFSOffscreenWindow(EGLDisplay display, const QSurfaceFormat &format, QOffscreenSurface *offscreenSurface)
+ : QPlatformOffscreenSurface(offscreenSurface)
+ , m_format(format)
+ , m_display(display)
+ , m_surface(EGL_NO_SURFACE)
+ , m_window(0)
+{
+ m_window = qt_egl_device_integration()->createNativeOffscreenWindow(format);
+ if (!m_window) {
+ qWarning("QEglFSOffscreenWindow: Failed to create native window");
+ return;
+ }
+ EGLConfig config = q_configFromGLFormat(m_display, m_format);
+ m_surface = eglCreateWindowSurface(m_display, config, m_window, 0);
+ if (m_surface != EGL_NO_SURFACE)
+ m_format = q_glFormatFromConfig(m_display, config);
+}
+
+QEglFSOffscreenWindow::~QEglFSOffscreenWindow()
+{
+ if (m_surface != EGL_NO_SURFACE)
+ eglDestroySurface(m_display, m_surface);
+ if (m_window)
+ qt_egl_device_integration()->destroyNativeWindow(m_window);
+}
+
+QT_END_NAMESPACE
diff --git a/src/plugins/platforms/eglfs/qeglfsoffscreenwindow.h b/src/plugins/platforms/eglfs/qeglfsoffscreenwindow.h
new file mode 100644
index 0000000000..128ff56968
--- /dev/null
+++ b/src/plugins/platforms/eglfs/qeglfsoffscreenwindow.h
@@ -0,0 +1,69 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QEGLFSOFFSCREENWINDOW_H
+#define QEGLFSOFFSCREENWINDOW_H
+
+#include <EGL/egl.h>
+#include <qpa/qplatformoffscreensurface.h>
+#include "qeglfsglobal.h"
+
+QT_BEGIN_NAMESPACE
+
+class Q_EGLFS_EXPORT QEglFSOffscreenWindow : public QPlatformOffscreenSurface
+{
+public:
+ QEglFSOffscreenWindow(EGLDisplay display, const QSurfaceFormat &format, QOffscreenSurface *offscreenSurface);
+ ~QEglFSOffscreenWindow();
+
+ QSurfaceFormat format() const Q_DECL_OVERRIDE { return m_format; }
+ bool isValid() const Q_DECL_OVERRIDE { return m_surface != EGL_NO_SURFACE; }
+
+private:
+ QSurfaceFormat m_format;
+ EGLDisplay m_display;
+ EGLSurface m_surface;
+ EGLNativeWindowType m_window;
+};
+
+QT_END_NAMESPACE
+
+#endif // QEGLFSOFFSCREENWINDOW_H
diff --git a/src/plugins/platforms/eglfs/qeglfsscreen.cpp b/src/plugins/platforms/eglfs/qeglfsscreen.cpp
index cd68540581..84ea1c6483 100644
--- a/src/plugins/platforms/eglfs/qeglfsscreen.cpp
+++ b/src/plugins/platforms/eglfs/qeglfsscreen.cpp
@@ -34,18 +34,16 @@
#include "qeglfsscreen.h"
#include "qeglfswindow.h"
#include "qeglfshooks.h"
-#include <QtPlatformSupport/private/qeglplatformcursor_p.h>
+#include <QtGui/qpa/qplatformcursor.h>
QT_BEGIN_NAMESPACE
QEglFSScreen::QEglFSScreen(EGLDisplay dpy)
: QEGLPlatformScreen(dpy),
m_surface(EGL_NO_SURFACE),
- m_cursor(0),
- m_rootWindow(0),
- m_rootContext(0)
+ m_cursor(0)
{
- m_cursor = QEglFSHooks::hooks()->createCursor(this);
+ m_cursor = qt_egl_device_integration()->createCursor(this);
}
QEglFSScreen::~QEglFSScreen()
@@ -55,37 +53,37 @@ QEglFSScreen::~QEglFSScreen()
QRect QEglFSScreen::geometry() const
{
- return QRect(QPoint(0, 0), QEglFSHooks::hooks()->screenSize());
+ return QRect(QPoint(0, 0), qt_egl_device_integration()->screenSize());
}
int QEglFSScreen::depth() const
{
- return QEglFSHooks::hooks()->screenDepth();
+ return qt_egl_device_integration()->screenDepth();
}
QImage::Format QEglFSScreen::format() const
{
- return QEglFSHooks::hooks()->screenFormat();
+ return qt_egl_device_integration()->screenFormat();
}
QSizeF QEglFSScreen::physicalSize() const
{
- return QEglFSHooks::hooks()->physicalScreenSize();
+ return qt_egl_device_integration()->physicalScreenSize();
}
QDpi QEglFSScreen::logicalDpi() const
{
- return QEglFSHooks::hooks()->logicalDpi();
+ return qt_egl_device_integration()->logicalDpi();
}
Qt::ScreenOrientation QEglFSScreen::nativeOrientation() const
{
- return QEglFSHooks::hooks()->nativeOrientation();
+ return qt_egl_device_integration()->nativeOrientation();
}
Qt::ScreenOrientation QEglFSScreen::orientation() const
{
- return QEglFSHooks::hooks()->orientation();
+ return qt_egl_device_integration()->orientation();
}
QPlatformCursor *QEglFSScreen::cursor() const
diff --git a/src/plugins/platforms/eglfs/qeglfsscreen.h b/src/plugins/platforms/eglfs/qeglfsscreen.h
index 132646d7a6..59f55d33fb 100644
--- a/src/plugins/platforms/eglfs/qeglfsscreen.h
+++ b/src/plugins/platforms/eglfs/qeglfsscreen.h
@@ -34,19 +34,16 @@
#ifndef QEGLFSSCREEN_H
#define QEGLFSSCREEN_H
+#include "qeglfsglobal.h"
#include <QtPlatformSupport/private/qeglplatformscreen_p.h>
-
-#include <QtCore/QTextStream>
-
#include <EGL/egl.h>
QT_BEGIN_NAMESPACE
-class QEGLPlatformCursor;
class QEglFSWindow;
class QOpenGLContext;
-class QEglFSScreen : public QEGLPlatformScreen
+class Q_EGLFS_EXPORT QEglFSScreen : public QEGLPlatformScreen
{
public:
QEglFSScreen(EGLDisplay display);
@@ -65,12 +62,6 @@ public:
EGLSurface primarySurface() const { return m_surface; }
- QEGLPlatformWindow *compositingWindow() Q_DECL_OVERRIDE { return m_rootWindow; }
- QOpenGLContext *compositingContext() Q_DECL_OVERRIDE { return m_rootContext; }
-
- void setRootWindow(QEGLPlatformWindow *window) { m_rootWindow = window; }
- void setRootContext(QOpenGLContext *context) { m_rootContext = context; }
-
protected:
void setPrimarySurface(EGLSurface surface);
@@ -78,9 +69,7 @@ private:
friend class QEglFSWindow;
EGLSurface m_surface;
- QEGLPlatformCursor *m_cursor;
- QEGLPlatformWindow *m_rootWindow;
- QOpenGLContext *m_rootContext;
+ QPlatformCursor *m_cursor;
};
QT_END_NAMESPACE
diff --git a/src/plugins/platforms/eglfs/qeglfswindow.cpp b/src/plugins/platforms/eglfs/qeglfswindow.cpp
index f5839e086d..d568d50e59 100644
--- a/src/plugins/platforms/eglfs/qeglfswindow.cpp
+++ b/src/plugins/platforms/eglfs/qeglfswindow.cpp
@@ -39,7 +39,6 @@
#include <QtGui/QOpenGLContext>
#include <QtPlatformSupport/private/qeglplatformcursor_p.h>
#include <QtPlatformSupport/private/qeglconvenience_p.h>
-
#include <QtDebug>
QT_BEGIN_NAMESPACE
@@ -73,9 +72,10 @@ void QEglFSWindow::create()
// raster windows will not have their own native window, surface and context. Instead,
// they will be composited onto the root window's surface.
QEglFSScreen *screen = this->screen();
+ QOpenGLCompositor *compositor = QOpenGLCompositor::instance();
if (screen->primarySurface() != EGL_NO_SURFACE) {
- if (isRaster() && screen->compositingWindow()) {
- m_format = screen->compositingWindow()->format();
+ if (isRaster() && compositor->targetWindow()) {
+ m_format = compositor->targetWindow()->format();
return;
}
@@ -93,7 +93,7 @@ void QEglFSWindow::create()
QWindowSystemInterface::handleExposeEvent(window(), QRect(QPoint(0, 0), geometry().size()));
EGLDisplay display = static_cast<QEglFSScreen *>(screen)->display();
- QSurfaceFormat platformFormat = QEglFSHooks::hooks()->surfaceFormatFor(window()->requestedFormat());
+ QSurfaceFormat platformFormat = qt_egl_device_integration()->surfaceFormatFor(window()->requestedFormat());
m_config = QEglFSIntegration::chooseConfig(display, platformFormat);
m_format = q_glFormatFromConfig(display, m_config, platformFormat);
@@ -107,8 +107,7 @@ void QEglFSWindow::create()
context->setScreen(window()->screen());
if (!context->create())
qFatal("EGLFS: Failed to create compositing context");
- screen->setRootContext(context);
- screen->setRootWindow(this);
+ compositor->setTarget(context, window());
}
}
@@ -116,7 +115,7 @@ void QEglFSWindow::destroy()
{
QEglFSScreen *screen = this->screen();
if (m_flags.testFlag(HasNativeWindow)) {
- QEGLPlatformCursor *cursor = static_cast<QEGLPlatformCursor *>(screen->cursor());
+ QEGLPlatformCursor *cursor = qobject_cast<QEGLPlatformCursor *>(screen->cursor());
if (cursor)
cursor->resetResources();
@@ -127,7 +126,7 @@ void QEglFSWindow::destroy()
}
m_flags = 0;
- screen->removeWindow(this);
+ QOpenGLCompositor::instance()->removeWindow(this);
}
// The virtual functions resetSurface and invalidateSurface may get overridden
@@ -141,14 +140,15 @@ void QEglFSWindow::invalidateSurface()
eglDestroySurface(display, m_surface);
m_surface = EGL_NO_SURFACE;
}
- QEglFSHooks::hooks()->destroyNativeWindow(m_window);
+ qt_egl_device_integration()->destroyNativeWindow(m_window);
m_window = 0;
}
void QEglFSWindow::resetSurface()
{
- EGLDisplay display = static_cast<QEglFSScreen *>(screen())->display();
- m_window = QEglFSHooks::hooks()->createNativeWindow(this, QEglFSHooks::hooks()->screenSize(), m_format);
+ QEglFSScreen *nativeScreen = static_cast<QEglFSScreen *>(screen());
+ EGLDisplay display = nativeScreen->display();
+ m_window = qt_egl_device_integration()->createNativeWindow(this, nativeScreen->geometry().size(), m_format);
m_surface = eglCreateWindowSurface(display, m_config, m_window, NULL);
if (m_surface == EGL_NO_SURFACE) {
EGLint error = eglGetError();
@@ -159,17 +159,18 @@ void QEglFSWindow::resetSurface()
void QEglFSWindow::setVisible(bool visible)
{
- QList<QEGLPlatformWindow *> windows = screen()->windows();
+ QOpenGLCompositor *compositor = QOpenGLCompositor::instance();
+ QList<QOpenGLCompositorWindow *> windows = compositor->windows();
QWindow *wnd = window();
if (wnd->type() != Qt::Desktop) {
if (visible) {
- screen()->addWindow(this);
+ compositor->addWindow(this);
} else {
- screen()->removeWindow(this);
- windows = screen()->windows();
+ compositor->removeWindow(this);
+ windows = compositor->windows();
if (windows.size())
- windows.last()->requestActivateWindow();
+ windows.last()->sourceWindow()->requestActivate();
}
}
@@ -209,7 +210,7 @@ QRect QEglFSWindow::geometry() const
void QEglFSWindow::requestActivateWindow()
{
if (window()->type() != Qt::Desktop)
- screen()->moveToTop(this);
+ QOpenGLCompositor::instance()->moveToTop(this);
QWindow *wnd = window();
QWindowSystemInterface::handleWindowActivated(wnd);
@@ -220,20 +221,21 @@ void QEglFSWindow::raise()
{
QWindow *wnd = window();
if (wnd->type() != Qt::Desktop) {
- screen()->moveToTop(this);
+ QOpenGLCompositor::instance()->moveToTop(this);
QWindowSystemInterface::handleExposeEvent(wnd, QRect(QPoint(0, 0), wnd->geometry().size()));
}
}
void QEglFSWindow::lower()
{
- QList<QEGLPlatformWindow *> windows = screen()->windows();
+ QOpenGLCompositor *compositor = QOpenGLCompositor::instance();
+ QList<QOpenGLCompositorWindow *> windows = compositor->windows();
if (window()->type() != Qt::Desktop && windows.count() > 1) {
int idx = windows.indexOf(this);
if (idx > 0) {
- screen()->changeWindowIndex(this, idx - 1);
- QWindowSystemInterface::handleExposeEvent(windows.last()->window(),
- QRect(QPoint(0, 0), windows.last()->geometry().size()));
+ compositor->changeWindowIndex(this, idx - 1);
+ QWindowSystemInterface::handleExposeEvent(windows.last()->sourceWindow(),
+ QRect(QPoint(0, 0), windows.last()->sourceWindow()->geometry().size()));
}
}
}
diff --git a/src/plugins/platforms/eglfs/qeglfswindow.h b/src/plugins/platforms/eglfs/qeglfswindow.h
index 5dfa35197f..a3e3722b5a 100644
--- a/src/plugins/platforms/eglfs/qeglfswindow.h
+++ b/src/plugins/platforms/eglfs/qeglfswindow.h
@@ -36,12 +36,12 @@
#include "qeglfsintegration.h"
#include "qeglfsscreen.h"
-
+#include "qeglfsglobal.h"
#include <QtPlatformSupport/private/qeglplatformwindow_p.h>
QT_BEGIN_NAMESPACE
-class QEglFSWindow : public QEGLPlatformWindow
+class Q_EGLFS_EXPORT QEglFSWindow : public QEGLPlatformWindow
{
public:
QEglFSWindow(QWindow *w);
@@ -70,7 +70,7 @@ public:
bool hasNativeWindow() const { return m_flags.testFlag(HasNativeWindow); }
- virtual void invalidateSurface();
+ virtual void invalidateSurface() Q_DECL_OVERRIDE;
virtual void resetSurface();
protected:
diff --git a/src/plugins/platforms/ios/qiosintegration.mm b/src/plugins/platforms/ios/qiosintegration.mm
index 461f160892..ff4b753cc1 100644
--- a/src/plugins/platforms/ios/qiosintegration.mm
+++ b/src/plugins/platforms/ios/qiosintegration.mm
@@ -120,7 +120,7 @@ QIOSIntegration::~QIOSIntegration()
m_inputContext = 0;
foreach (QScreen *screen, QGuiApplication::screens())
- delete screen->handle();
+ destroyScreen(screen->handle());
delete m_platformServices;
m_platformServices = 0;
diff --git a/src/plugins/platforms/ios/quiaccessibilityelement.mm b/src/plugins/platforms/ios/quiaccessibilityelement.mm
index 63b6827ad3..3dff271d00 100644
--- a/src/plugins/platforms/ios/quiaccessibilityelement.mm
+++ b/src/plugins/platforms/ios/quiaccessibilityelement.mm
@@ -193,4 +193,33 @@
action->doAction(QAccessibleActionInterface::decreaseAction());
}
+- (BOOL) accessibilityScroll : (UIAccessibilityScrollDirection) direction
+{
+ QAccessibleInterface *iface = QAccessible::accessibleInterface(self.axid);
+ QAccessibleActionInterface *action = iface->actionInterface();
+ if (!action)
+ return NO;
+ switch (direction) {
+ case UIAccessibilityScrollDirectionRight:
+ action->doAction(QAccessibleActionInterface::scrollRightAction());
+ return YES;
+ case UIAccessibilityScrollDirectionLeft:
+ action->doAction(QAccessibleActionInterface::scrollLeftAction());
+ return YES;
+ case UIAccessibilityScrollDirectionUp:
+ action->doAction(QAccessibleActionInterface::scrollUpAction());
+ return YES;
+ case UIAccessibilityScrollDirectionDown:
+ action->doAction(QAccessibleActionInterface::scrollDownAction());
+ return YES;
+ case UIAccessibilityScrollDirectionNext:
+ action->doAction(QAccessibleActionInterface::nextPageAction());
+ return YES;
+ case UIAccessibilityScrollDirectionPrevious:
+ action->doAction(QAccessibleActionInterface::previousPageAction());
+ return YES;
+ }
+ return NO;
+}
+
@end
diff --git a/src/plugins/platforms/kms/main.cpp b/src/plugins/platforms/kms/main.cpp
index 39ca77bd56..9e9e2c7344 100644
--- a/src/plugins/platforms/kms/main.cpp
+++ b/src/plugins/platforms/kms/main.cpp
@@ -41,7 +41,7 @@ class QKmsIntegrationPlugin : public QPlatformIntegrationPlugin
Q_OBJECT
Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.2" FILE "kms.json")
public:
- QPlatformIntegration *create(const QString&, const QStringList&);
+ QPlatformIntegration *create(const QString&, const QStringList&) Q_DECL_OVERRIDE;
};
QPlatformIntegration *QKmsIntegrationPlugin::create(const QString& system, const QStringList& paramList)
diff --git a/src/plugins/platforms/kms/qkmsbackingstore.h b/src/plugins/platforms/kms/qkmsbackingstore.h
index 56d57313e8..a8f2dddd03 100644
--- a/src/plugins/platforms/kms/qkmsbackingstore.h
+++ b/src/plugins/platforms/kms/qkmsbackingstore.h
@@ -49,12 +49,12 @@ public:
QKmsBackingStore(QWindow *window);
~QKmsBackingStore();
- QPaintDevice *paintDevice();
+ QPaintDevice *paintDevice() Q_DECL_OVERRIDE;
- void beginPaint(const QRegion &);
+ void beginPaint(const QRegion &) Q_DECL_OVERRIDE;
- void flush(QWindow *window, const QRegion &region, const QPoint &offset);
- void resize(const QSize &size, const QRegion &staticContents);
+ void flush(QWindow *window, const QRegion &region, const QPoint &offset) Q_DECL_OVERRIDE;
+ void resize(const QSize &size, const QRegion &staticContents) Q_DECL_OVERRIDE;
QImage toImage() const Q_DECL_OVERRIDE { return m_image; }
diff --git a/src/plugins/platforms/kms/qkmscontext.h b/src/plugins/platforms/kms/qkmscontext.h
index b388dba7d5..fabe3c2524 100644
--- a/src/plugins/platforms/kms/qkmscontext.h
+++ b/src/plugins/platforms/kms/qkmscontext.h
@@ -48,14 +48,14 @@ class QKmsContext : public QPlatformOpenGLContext
public:
QKmsContext(QOpenGLContext *context, QKmsDevice *device);
- bool makeCurrent(QPlatformSurface *surface);
- void doneCurrent();
- void swapBuffers(QPlatformSurface *surface);
- void (*getProcAddress(const QByteArray &procName)) ();
+ bool makeCurrent(QPlatformSurface *surface) Q_DECL_OVERRIDE;
+ void doneCurrent() Q_DECL_OVERRIDE;
+ void swapBuffers(QPlatformSurface *surface) Q_DECL_OVERRIDE;
+ void (*getProcAddress(const QByteArray &procName)) () Q_DECL_OVERRIDE;
- bool isValid() const;
+ bool isValid() const Q_DECL_OVERRIDE;
- QSurfaceFormat format() const;
+ QSurfaceFormat format() const Q_DECL_OVERRIDE;
EGLContext eglContext() const;
diff --git a/src/plugins/platforms/kms/qkmscursor.h b/src/plugins/platforms/kms/qkmscursor.h
index 3eef4e599c..35d9814224 100644
--- a/src/plugins/platforms/kms/qkmscursor.h
+++ b/src/plugins/platforms/kms/qkmscursor.h
@@ -49,8 +49,8 @@ public:
QKmsCursor(QKmsScreen *screen);
~QKmsCursor();
- void pointerEvent(const QMouseEvent &event);
- void changeCursor(QCursor *windowCursor, QWindow *window);
+ void pointerEvent(const QMouseEvent &event) Q_DECL_OVERRIDE;
+ void changeCursor(QCursor *windowCursor, QWindow *window) Q_DECL_OVERRIDE;
private:
QKmsScreen *m_screen;
diff --git a/src/plugins/platforms/kms/qkmsintegration.cpp b/src/plugins/platforms/kms/qkmsintegration.cpp
index d94d7d9aaa..5ad58ba54f 100644
--- a/src/plugins/platforms/kms/qkmsintegration.cpp
+++ b/src/plugins/platforms/kms/qkmsintegration.cpp
@@ -74,7 +74,7 @@ QKmsIntegration::~QKmsIntegration()
delete device;
}
foreach (QPlatformScreen *screen, m_screens) {
- delete screen;
+ destroyScreen(screen);
}
delete m_fontDatabase;
delete m_vtHandler;
diff --git a/src/plugins/platforms/kms/qkmsnativeinterface.cpp b/src/plugins/platforms/kms/qkmsnativeinterface.cpp
index 3ed1643fdb..c133b48086 100644
--- a/src/plugins/platforms/kms/qkmsnativeinterface.cpp
+++ b/src/plugins/platforms/kms/qkmsnativeinterface.cpp
@@ -52,6 +52,21 @@ public:
Q_GLOBAL_STATIC(QKmsResourceMap, qKmsResourceMap)
+void *QKmsNativeInterface::nativeResourceForIntegration(const QByteArray &resourceString)
+{
+ QByteArray lowerCaseResource = resourceString.toLower();
+ ResourceType resource = qKmsResourceMap()->value(lowerCaseResource);
+ void *result = 0;
+ switch (resource) {
+ case EglDisplay:
+ result = eglDisplay();
+ break;
+ default:
+ result = 0;
+ }
+ return result;
+
+}
void *QKmsNativeInterface::nativeResourceForWindow(const QByteArray &resourceString, QWindow *window)
{
QByteArray lowerCaseResource = resourceString.toLower();
@@ -79,7 +94,14 @@ QPlatformNativeInterface::NativeResourceForContextFunction QKmsNativeInterface::
return 0;
}
-
+void *QKmsNativeInterface::eglDisplay()
+{
+ //QKmsIntegration *integration = static_cast<QKmsIntegration *>(QGuiApplicationPrivate::platformIntegration());
+ QKmsScreen *screen = static_cast<QKmsScreen *>(QGuiApplication::primaryScreen()->handle());
+ if (!screen || !screen->device())
+ return 0;
+ return screen->device()->eglDisplay();
+}
void *QKmsNativeInterface::eglDisplayForWindow(QWindow *window)
{
diff --git a/src/plugins/platforms/kms/qkmsnativeinterface.h b/src/plugins/platforms/kms/qkmsnativeinterface.h
index b9ef914045..402c8b7f6f 100644
--- a/src/plugins/platforms/kms/qkmsnativeinterface.h
+++ b/src/plugins/platforms/kms/qkmsnativeinterface.h
@@ -46,10 +46,12 @@ public:
EglContext
};
- void *nativeResourceForWindow(const QByteArray &resourceString, QWindow *window);
+ void *nativeResourceForIntegration(const QByteArray &resource) Q_DECL_OVERRIDE;
+ void *nativeResourceForWindow(const QByteArray &resourceString, QWindow *window) Q_DECL_OVERRIDE;
- NativeResourceForContextFunction nativeResourceFunctionForContext(const QByteArray &resource);
+ NativeResourceForContextFunction nativeResourceFunctionForContext(const QByteArray &resource) Q_DECL_OVERRIDE;
+ void *eglDisplay();
void *eglDisplayForWindow(QWindow *window);
void *eglContextForWindow(QWindow *window);
static void *eglContextForContext(QOpenGLContext *context);
diff --git a/src/plugins/platforms/kms/qkmsscreen.cpp b/src/plugins/platforms/kms/qkmsscreen.cpp
index ddcdd10928..84c1eba448 100644
--- a/src/plugins/platforms/kms/qkmsscreen.cpp
+++ b/src/plugins/platforms/kms/qkmsscreen.cpp
@@ -216,7 +216,7 @@ void QKmsScreen::performPageFlip()
// Initialize cursor
- static int hideCursor = qgetenv("QT_QPA_KMS_HIDECURSOR").toInt();
+ static int hideCursor = qEnvironmentVariableIntValue("QT_QPA_KMS_HIDECURSOR");
if (!hideCursor) {
QCursor cursor(Qt::ArrowCursor);
m_cursor->changeCursor(&cursor, 0);
diff --git a/src/plugins/platforms/kms/qkmsscreen.h b/src/plugins/platforms/kms/qkmsscreen.h
index 552541503c..8557e12a03 100644
--- a/src/plugins/platforms/kms/qkmsscreen.h
+++ b/src/plugins/platforms/kms/qkmsscreen.h
@@ -67,11 +67,11 @@ public:
QKmsScreen(QKmsDevice *device, const drmModeRes *resources, const drmModeConnector *connector);
~QKmsScreen();
- QRect geometry() const;
- int depth() const;
- QImage::Format format() const;
- QSizeF physicalSize() const;
- QPlatformCursor *cursor() const;
+ QRect geometry() const Q_DECL_OVERRIDE;
+ int depth() const Q_DECL_OVERRIDE;
+ QImage::Format format() const Q_DECL_OVERRIDE;
+ QSizeF physicalSize() const Q_DECL_OVERRIDE;
+ QPlatformCursor *cursor() const Q_DECL_OVERRIDE;
quint32 crtcId() const { return m_crtcId; }
QKmsDevice *device() const;
diff --git a/src/plugins/platforms/linuxfb/main.cpp b/src/plugins/platforms/linuxfb/main.cpp
index 14cd3611d9..1fcf3fa0a8 100644
--- a/src/plugins/platforms/linuxfb/main.cpp
+++ b/src/plugins/platforms/linuxfb/main.cpp
@@ -41,7 +41,7 @@ class QLinuxFbIntegrationPlugin : public QPlatformIntegrationPlugin
Q_OBJECT
Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.2" FILE "linuxfb.json")
public:
- QPlatformIntegration *create(const QString&, const QStringList&);
+ QPlatformIntegration *create(const QString&, const QStringList&) Q_DECL_OVERRIDE;
};
QPlatformIntegration* QLinuxFbIntegrationPlugin::create(const QString& system, const QStringList& paramList)
diff --git a/src/plugins/platforms/linuxfb/qlinuxfbintegration.cpp b/src/plugins/platforms/linuxfb/qlinuxfbintegration.cpp
index cb870847f2..b0d99e80c1 100644
--- a/src/plugins/platforms/linuxfb/qlinuxfbintegration.cpp
+++ b/src/plugins/platforms/linuxfb/qlinuxfbintegration.cpp
@@ -57,7 +57,7 @@ QLinuxFbIntegration::QLinuxFbIntegration(const QStringList &paramList)
QLinuxFbIntegration::~QLinuxFbIntegration()
{
- delete m_primaryScreen;
+ destroyScreen(m_primaryScreen);
}
void QLinuxFbIntegration::initialize()
diff --git a/src/plugins/platforms/linuxfb/qlinuxfbscreen.h b/src/plugins/platforms/linuxfb/qlinuxfbscreen.h
index 1997d46ad1..32b8c3f4ab 100644
--- a/src/plugins/platforms/linuxfb/qlinuxfbscreen.h
+++ b/src/plugins/platforms/linuxfb/qlinuxfbscreen.h
@@ -51,7 +51,7 @@ public:
bool initialize();
public slots:
- QRegion doRedraw();
+ QRegion doRedraw() Q_DECL_OVERRIDE;
private:
QStringList mArgs;
diff --git a/src/plugins/platforms/minimal/main.cpp b/src/plugins/platforms/minimal/main.cpp
index 191de630b2..d4db29016d 100644
--- a/src/plugins/platforms/minimal/main.cpp
+++ b/src/plugins/platforms/minimal/main.cpp
@@ -42,7 +42,7 @@ class QMinimalIntegrationPlugin : public QPlatformIntegrationPlugin
Q_OBJECT
Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.2" FILE "minimal.json")
public:
- QPlatformIntegration *create(const QString&, const QStringList&);
+ QPlatformIntegration *create(const QString&, const QStringList&) Q_DECL_OVERRIDE;
};
QPlatformIntegration *QMinimalIntegrationPlugin::create(const QString& system, const QStringList& paramList)
diff --git a/src/plugins/platforms/minimal/qminimalbackingstore.h b/src/plugins/platforms/minimal/qminimalbackingstore.h
index d356153b62..e373d99783 100644
--- a/src/plugins/platforms/minimal/qminimalbackingstore.h
+++ b/src/plugins/platforms/minimal/qminimalbackingstore.h
@@ -46,9 +46,9 @@ public:
QMinimalBackingStore(QWindow *window);
~QMinimalBackingStore();
- QPaintDevice *paintDevice();
- void flush(QWindow *window, const QRegion &region, const QPoint &offset);
- void resize(const QSize &size, const QRegion &staticContents);
+ QPaintDevice *paintDevice() Q_DECL_OVERRIDE;
+ void flush(QWindow *window, const QRegion &region, const QPoint &offset) Q_DECL_OVERRIDE;
+ void resize(const QSize &size, const QRegion &staticContents) Q_DECL_OVERRIDE;
private:
QImage mImage;
diff --git a/src/plugins/platforms/minimal/qminimalintegration.cpp b/src/plugins/platforms/minimal/qminimalintegration.cpp
index 252f842df4..8a2bf79116 100644
--- a/src/plugins/platforms/minimal/qminimalintegration.cpp
+++ b/src/plugins/platforms/minimal/qminimalintegration.cpp
@@ -66,7 +66,7 @@ QMinimalIntegration::QMinimalIntegration(const QStringList &parameters)
, m_options(parseOptions(parameters))
{
if (qEnvironmentVariableIsSet(debugBackingStoreEnvironmentVariable)
- && qgetenv(debugBackingStoreEnvironmentVariable).toInt() > 0) {
+ && qEnvironmentVariableIntValue(debugBackingStoreEnvironmentVariable) > 0) {
m_options |= DebugBackingStore | EnableFonts;
}
@@ -99,7 +99,7 @@ bool QMinimalIntegration::hasCapability(QPlatformIntegration::Capability cap) co
class DummyFontDatabase : public QPlatformFontDatabase
{
public:
- virtual void populateFontDatabase() {}
+ virtual void populateFontDatabase() Q_DECL_OVERRIDE {}
};
QPlatformFontDatabase *QMinimalIntegration::fontDatabase() const
diff --git a/src/plugins/platforms/minimal/qminimalintegration.h b/src/plugins/platforms/minimal/qminimalintegration.h
index d9392df510..d1ab02c0dc 100644
--- a/src/plugins/platforms/minimal/qminimalintegration.h
+++ b/src/plugins/platforms/minimal/qminimalintegration.h
@@ -45,9 +45,9 @@ public:
QMinimalScreen()
: mDepth(32), mFormat(QImage::Format_ARGB32_Premultiplied) {}
- QRect geometry() const { return mGeometry; }
- int depth() const { return mDepth; }
- QImage::Format format() const { return mFormat; }
+ QRect geometry() const Q_DECL_OVERRIDE { return mGeometry; }
+ int depth() const Q_DECL_OVERRIDE { return mDepth; }
+ QImage::Format format() const Q_DECL_OVERRIDE { return mFormat; }
public:
QRect mGeometry;
@@ -67,12 +67,12 @@ public:
explicit QMinimalIntegration(const QStringList &parameters);
~QMinimalIntegration();
- bool hasCapability(QPlatformIntegration::Capability cap) const;
- QPlatformFontDatabase *fontDatabase() const;
+ bool hasCapability(QPlatformIntegration::Capability cap) const Q_DECL_OVERRIDE;
+ QPlatformFontDatabase *fontDatabase() const Q_DECL_OVERRIDE;
- QPlatformWindow *createPlatformWindow(QWindow *window) const;
- QPlatformBackingStore *createPlatformBackingStore(QWindow *window) const;
- QAbstractEventDispatcher *createEventDispatcher() const;
+ QPlatformWindow *createPlatformWindow(QWindow *window) const Q_DECL_OVERRIDE;
+ QPlatformBackingStore *createPlatformBackingStore(QWindow *window) const Q_DECL_OVERRIDE;
+ QAbstractEventDispatcher *createEventDispatcher() const Q_DECL_OVERRIDE;
unsigned options() const { return m_options; }
diff --git a/src/plugins/platforms/minimalegl/main.cpp b/src/plugins/platforms/minimalegl/main.cpp
index de130ae2ff..f66c8008d0 100644
--- a/src/plugins/platforms/minimalegl/main.cpp
+++ b/src/plugins/platforms/minimalegl/main.cpp
@@ -41,7 +41,7 @@ class QMinimalEglIntegrationPlugin : public QPlatformIntegrationPlugin
Q_OBJECT
Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.2" FILE "minimalegl.json")
public:
- QPlatformIntegration *create(const QString&, const QStringList&);
+ QPlatformIntegration *create(const QString&, const QStringList&) Q_DECL_OVERRIDE;
};
QPlatformIntegration* QMinimalEglIntegrationPlugin::create(const QString& system, const QStringList& paramList)
diff --git a/src/plugins/platforms/minimalegl/qminimaleglbackingstore.h b/src/plugins/platforms/minimalegl/qminimaleglbackingstore.h
index 617ab9a1b9..483c5fc789 100644
--- a/src/plugins/platforms/minimalegl/qminimaleglbackingstore.h
+++ b/src/plugins/platforms/minimalegl/qminimaleglbackingstore.h
@@ -47,13 +47,13 @@ public:
QMinimalEglBackingStore(QWindow *window);
~QMinimalEglBackingStore();
- QPaintDevice *paintDevice();
+ QPaintDevice *paintDevice() Q_DECL_OVERRIDE;
- void beginPaint(const QRegion &);
- void endPaint();
+ void beginPaint(const QRegion &) Q_DECL_OVERRIDE;
+ void endPaint() Q_DECL_OVERRIDE;
- void flush(QWindow *window, const QRegion &region, const QPoint &offset);
- void resize(const QSize &size, const QRegion &staticContents);
+ void flush(QWindow *window, const QRegion &region, const QPoint &offset) Q_DECL_OVERRIDE;
+ void resize(const QSize &size, const QRegion &staticContents) Q_DECL_OVERRIDE;
private:
QOpenGLContext *m_context;
diff --git a/src/plugins/platforms/minimalegl/qminimaleglintegration.cpp b/src/plugins/platforms/minimalegl/qminimaleglintegration.cpp
index 0b12e62cc1..3fbed1ec26 100644
--- a/src/plugins/platforms/minimalegl/qminimaleglintegration.cpp
+++ b/src/plugins/platforms/minimalegl/qminimaleglintegration.cpp
@@ -60,7 +60,7 @@ QMinimalEglIntegration::QMinimalEglIntegration()
QMinimalEglIntegration::~QMinimalEglIntegration()
{
- delete mScreen;
+ destroyScreen(mScreen);
}
bool QMinimalEglIntegration::hasCapability(QPlatformIntegration::Capability cap) const
diff --git a/src/plugins/platforms/minimalegl/qminimaleglintegration.h b/src/plugins/platforms/minimalegl/qminimaleglintegration.h
index 5c42184926..452185bcdb 100644
--- a/src/plugins/platforms/minimalegl/qminimaleglintegration.h
+++ b/src/plugins/platforms/minimalegl/qminimaleglintegration.h
@@ -47,17 +47,17 @@ public:
QMinimalEglIntegration();
~QMinimalEglIntegration();
- bool hasCapability(QPlatformIntegration::Capability cap) const;
+ bool hasCapability(QPlatformIntegration::Capability cap) const Q_DECL_OVERRIDE;
- QPlatformWindow *createPlatformWindow(QWindow *window) const;
- QPlatformBackingStore *createPlatformBackingStore(QWindow *window) const;
- QPlatformOpenGLContext *createPlatformOpenGLContext(QOpenGLContext *context) const;
+ QPlatformWindow *createPlatformWindow(QWindow *window) const Q_DECL_OVERRIDE;
+ QPlatformBackingStore *createPlatformBackingStore(QWindow *window) const Q_DECL_OVERRIDE;
+ QPlatformOpenGLContext *createPlatformOpenGLContext(QOpenGLContext *context) const Q_DECL_OVERRIDE;
- QPlatformFontDatabase *fontDatabase() const;
+ QPlatformFontDatabase *fontDatabase() const Q_DECL_OVERRIDE;
- QAbstractEventDispatcher *createEventDispatcher() const;
+ QAbstractEventDispatcher *createEventDispatcher() const Q_DECL_OVERRIDE;
- QVariant styleHint(QPlatformIntegration::StyleHint hint) const;
+ QVariant styleHint(QPlatformIntegration::StyleHint hint) const Q_DECL_OVERRIDE;
private:
QPlatformFontDatabase *mFontDb;
diff --git a/src/plugins/platforms/minimalegl/qminimaleglscreen.cpp b/src/plugins/platforms/minimalegl/qminimaleglscreen.cpp
index a0ebffa806..af99a8c664 100644
--- a/src/plugins/platforms/minimalegl/qminimaleglscreen.cpp
+++ b/src/plugins/platforms/minimalegl/qminimaleglscreen.cpp
@@ -54,7 +54,7 @@ public:
{
}
- EGLSurface eglSurfaceForPlatformSurface(QPlatformSurface *surface)
+ EGLSurface eglSurfaceForPlatformSurface(QPlatformSurface *surface) Q_DECL_OVERRIDE
{
QMinimalEglWindow *window = static_cast<QMinimalEglWindow *>(surface);
QMinimalEglScreen *screen = static_cast<QMinimalEglScreen *>(window->screen());
diff --git a/src/plugins/platforms/minimalegl/qminimaleglscreen.h b/src/plugins/platforms/minimalegl/qminimaleglscreen.h
index 9e5dc90971..e70d52f1aa 100644
--- a/src/plugins/platforms/minimalegl/qminimaleglscreen.h
+++ b/src/plugins/platforms/minimalegl/qminimaleglscreen.h
@@ -50,9 +50,9 @@ public:
QMinimalEglScreen(EGLNativeDisplayType display);
~QMinimalEglScreen();
- QRect geometry() const;
- int depth() const;
- QImage::Format format() const;
+ QRect geometry() const Q_DECL_OVERRIDE;
+ int depth() const Q_DECL_OVERRIDE;
+ QImage::Format format() const Q_DECL_OVERRIDE;
QPlatformOpenGLContext *platformContext() const;
diff --git a/src/plugins/platforms/minimalegl/qminimaleglwindow.h b/src/plugins/platforms/minimalegl/qminimaleglwindow.h
index 5c3006663f..536cae6f46 100644
--- a/src/plugins/platforms/minimalegl/qminimaleglwindow.h
+++ b/src/plugins/platforms/minimalegl/qminimaleglwindow.h
@@ -46,8 +46,8 @@ class QMinimalEglWindow : public QPlatformWindow
public:
QMinimalEglWindow(QWindow *w);
- void setGeometry(const QRect &);
- WId winId() const;
+ void setGeometry(const QRect &) Q_DECL_OVERRIDE;
+ WId winId() const Q_DECL_OVERRIDE;
private:
WId m_winid;
diff --git a/src/plugins/platforms/offscreen/main.cpp b/src/plugins/platforms/offscreen/main.cpp
index 98b8e2ba95..102b349b7a 100644
--- a/src/plugins/platforms/offscreen/main.cpp
+++ b/src/plugins/platforms/offscreen/main.cpp
@@ -42,7 +42,7 @@ class QOffscreenIntegrationPlugin : public QPlatformIntegrationPlugin
Q_OBJECT
Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.2" FILE "offscreen.json")
public:
- QPlatformIntegration *create(const QString&, const QStringList&);
+ QPlatformIntegration *create(const QString&, const QStringList&) Q_DECL_OVERRIDE;
};
QPlatformIntegration *QOffscreenIntegrationPlugin::create(const QString& system, const QStringList& paramList)
diff --git a/src/plugins/platforms/offscreen/qoffscreencommon.cpp b/src/plugins/platforms/offscreen/qoffscreencommon.cpp
index 50c9a85fcf..5acb245be0 100644
--- a/src/plugins/platforms/offscreen/qoffscreencommon.cpp
+++ b/src/plugins/platforms/offscreen/qoffscreencommon.cpp
@@ -49,8 +49,8 @@ class QOffscreenCursor : public QPlatformCursor
public:
QOffscreenCursor() : m_pos(10, 10) {}
- QPoint pos() const { return m_pos; }
- void setPos(const QPoint &pos)
+ QPoint pos() const Q_DECL_OVERRIDE { return m_pos; }
+ void setPos(const QPoint &pos) Q_DECL_OVERRIDE
{
m_pos = pos;
QWindowList wl = QGuiApplication::topLevelWindows();
@@ -76,7 +76,7 @@ public:
QOffscreenScreen::windowContainingCursor = containing ? containing->handle() : 0;
}
- void changeCursor(QCursor *windowCursor, QWindow *window)
+ void changeCursor(QCursor *windowCursor, QWindow *window) Q_DECL_OVERRIDE
{
Q_UNUSED(windowCursor);
Q_UNUSED(window);
diff --git a/src/plugins/platforms/offscreen/qoffscreencommon.h b/src/plugins/platforms/offscreen/qoffscreencommon.h
index 88615d2da4..394d20bce5 100644
--- a/src/plugins/platforms/offscreen/qoffscreencommon.h
+++ b/src/plugins/platforms/offscreen/qoffscreencommon.h
@@ -51,12 +51,12 @@ class QOffscreenScreen : public QPlatformScreen
public:
QOffscreenScreen();
- QRect geometry() const { return m_geometry; }
- int depth() const { return 32; }
- QImage::Format format() const { return QImage::Format_RGB32; }
- QPlatformCursor *cursor() const { return m_cursor.data(); }
+ QRect geometry() const Q_DECL_OVERRIDE { return m_geometry; }
+ int depth() const Q_DECL_OVERRIDE { return 32; }
+ QImage::Format format() const Q_DECL_OVERRIDE { return QImage::Format_RGB32; }
+ QPlatformCursor *cursor() const Q_DECL_OVERRIDE { return m_cursor.data(); }
- QPixmap grabWindow(WId window, int x, int y, int width, int height) const;
+ QPixmap grabWindow(WId window, int x, int y, int width, int height) const Q_DECL_OVERRIDE;
static QPlatformWindow *windowContainingCursor;
@@ -69,8 +69,8 @@ public:
class QOffscreenDrag : public QPlatformDrag
{
public:
- QMimeData *platformDropData() { return 0; }
- Qt::DropAction drag(QDrag *) { return Qt::IgnoreAction; }
+ QMimeData *platformDropData() Q_DECL_OVERRIDE { return 0; }
+ Qt::DropAction drag(QDrag *) Q_DECL_OVERRIDE { return Qt::IgnoreAction; }
};
#endif
@@ -80,10 +80,10 @@ public:
QOffscreenBackingStore(QWindow *window);
~QOffscreenBackingStore();
- QPaintDevice *paintDevice();
- void flush(QWindow *window, const QRegion &region, const QPoint &offset);
- void resize(const QSize &size, const QRegion &staticContents);
- bool scroll(const QRegion &area, int dx, int dy);
+ QPaintDevice *paintDevice() Q_DECL_OVERRIDE;
+ void flush(QWindow *window, const QRegion &region, const QPoint &offset) Q_DECL_OVERRIDE;
+ void resize(const QSize &size, const QRegion &staticContents) Q_DECL_OVERRIDE;
+ bool scroll(const QRegion &area, int dx, int dy) Q_DECL_OVERRIDE;
QPixmap grabWindow(WId window, const QRect &rect) const;
diff --git a/src/plugins/platforms/offscreen/qoffscreenintegration.h b/src/plugins/platforms/offscreen/qoffscreenintegration.h
index 714c5eb081..4572269d27 100644
--- a/src/plugins/platforms/offscreen/qoffscreenintegration.h
+++ b/src/plugins/platforms/offscreen/qoffscreenintegration.h
@@ -48,17 +48,17 @@ public:
QOffscreenIntegration();
~QOffscreenIntegration();
- bool hasCapability(QPlatformIntegration::Capability cap) const;
+ bool hasCapability(QPlatformIntegration::Capability cap) const Q_DECL_OVERRIDE;
- QPlatformWindow *createPlatformWindow(QWindow *window) const;
- QPlatformBackingStore *createPlatformBackingStore(QWindow *window) const;
+ QPlatformWindow *createPlatformWindow(QWindow *window) const Q_DECL_OVERRIDE;
+ QPlatformBackingStore *createPlatformBackingStore(QWindow *window) const Q_DECL_OVERRIDE;
#ifndef QT_NO_DRAGANDDROP
- QPlatformDrag *drag() const;
+ QPlatformDrag *drag() const Q_DECL_OVERRIDE;
#endif
- QPlatformServices *services() const;
+ QPlatformServices *services() const Q_DECL_OVERRIDE;
- QPlatformFontDatabase *fontDatabase() const;
- QAbstractEventDispatcher *createEventDispatcher() const;
+ QPlatformFontDatabase *fontDatabase() const Q_DECL_OVERRIDE;
+ QAbstractEventDispatcher *createEventDispatcher() const Q_DECL_OVERRIDE;
static QOffscreenIntegration *createOffscreenIntegration();
diff --git a/src/plugins/platforms/offscreen/qoffscreenintegration_x11.h b/src/plugins/platforms/offscreen/qoffscreenintegration_x11.h
index c50e812777..59e62c3c20 100644
--- a/src/plugins/platforms/offscreen/qoffscreenintegration_x11.h
+++ b/src/plugins/platforms/offscreen/qoffscreenintegration_x11.h
@@ -49,9 +49,9 @@ class QOffscreenX11Info;
class QOffscreenX11Integration : public QOffscreenIntegration
{
public:
- bool hasCapability(QPlatformIntegration::Capability cap) const;
+ bool hasCapability(QPlatformIntegration::Capability cap) const Q_DECL_OVERRIDE;
- QPlatformOpenGLContext *createPlatformOpenGLContext(QOpenGLContext *context) const;
+ QPlatformOpenGLContext *createPlatformOpenGLContext(QOpenGLContext *context) const Q_DECL_OVERRIDE;
private:
mutable QScopedPointer<QOffscreenX11Connection> m_connection;
@@ -82,14 +82,14 @@ public:
QOffscreenX11GLXContext(QOffscreenX11Info *x11, QOpenGLContext *context);
~QOffscreenX11GLXContext();
- bool makeCurrent(QPlatformSurface *surface);
- void doneCurrent();
- void swapBuffers(QPlatformSurface *surface);
- void (*getProcAddress(const QByteArray &procName)) ();
+ bool makeCurrent(QPlatformSurface *surface) Q_DECL_OVERRIDE;
+ void doneCurrent() Q_DECL_OVERRIDE;
+ void swapBuffers(QPlatformSurface *surface) Q_DECL_OVERRIDE;
+ void (*getProcAddress(const QByteArray &procName)) () Q_DECL_OVERRIDE;
- QSurfaceFormat format() const;
- bool isSharing() const;
- bool isValid() const;
+ QSurfaceFormat format() const Q_DECL_OVERRIDE;
+ bool isSharing() const Q_DECL_OVERRIDE;
+ bool isValid() const Q_DECL_OVERRIDE;
private:
QScopedPointer<QOffscreenX11GLXContextData> d;
diff --git a/src/plugins/platforms/offscreen/qoffscreenwindow.h b/src/plugins/platforms/offscreen/qoffscreenwindow.h
index d168d28ee8..e50a5a08ff 100644
--- a/src/plugins/platforms/offscreen/qoffscreenwindow.h
+++ b/src/plugins/platforms/offscreen/qoffscreenwindow.h
@@ -47,15 +47,15 @@ public:
QOffscreenWindow(QWindow *window);
~QOffscreenWindow();
- void setGeometry(const QRect &rect);
- void setWindowState(Qt::WindowState state);
+ void setGeometry(const QRect &rect) Q_DECL_OVERRIDE;
+ void setWindowState(Qt::WindowState state) Q_DECL_OVERRIDE;
- QMargins frameMargins() const;
+ QMargins frameMargins() const Q_DECL_OVERRIDE;
- void setVisible(bool visible);
- void requestActivateWindow();
+ void setVisible(bool visible) Q_DECL_OVERRIDE;
+ void requestActivateWindow() Q_DECL_OVERRIDE;
- WId winId() const;
+ WId winId() const Q_DECL_OVERRIDE;
static QOffscreenWindow *windowForWinId(WId id);
diff --git a/src/plugins/platforms/openwfd/qopenwfdintegration.cpp b/src/plugins/platforms/openwfd/qopenwfdintegration.cpp
index 1e29fcc9b1..26bdd14327 100644
--- a/src/plugins/platforms/openwfd/qopenwfdintegration.cpp
+++ b/src/plugins/platforms/openwfd/qopenwfdintegration.cpp
@@ -133,3 +133,8 @@ void QOpenWFDIntegration::addScreen(QOpenWFDScreen *screen)
{
screenAdded(screen);
}
+
+void QOpenWFDIntegration::destroyScreen(QOpenWFDScreen *screen)
+{
+ QPlatformIntegration::destroyScreen(screen);
+}
diff --git a/src/plugins/platforms/openwfd/qopenwfdintegration.h b/src/plugins/platforms/openwfd/qopenwfdintegration.h
index 6c086b73be..9243205caa 100644
--- a/src/plugins/platforms/openwfd/qopenwfdintegration.h
+++ b/src/plugins/platforms/openwfd/qopenwfdintegration.h
@@ -63,6 +63,7 @@ public:
QPlatformPrinterSupport *printerSupport() const;
void addScreen(QOpenWFDScreen *screen);
+ void destroyScreen(QOpenWFDScreen *screen);
private:
QList<QPlatformScreen *> mScreens;
QList<QOpenWFDDevice *>mDevices;
diff --git a/src/plugins/platforms/openwfd/qopenwfdport.cpp b/src/plugins/platforms/openwfd/qopenwfdport.cpp
index 0bdc6b2d4b..b643644800 100644
--- a/src/plugins/platforms/openwfd/qopenwfdport.cpp
+++ b/src/plugins/platforms/openwfd/qopenwfdport.cpp
@@ -140,7 +140,7 @@ void QOpenWFDPort::detach()
mAttached = false;
mOn = false;
- delete mScreen;
+ mDevice->integration()->destroyScreen(mScreen);
wfdDestroyPipeline(mDevice->handle(),mPipeline);
mPipelineId = WFD_INVALID_PIPELINE_ID;
diff --git a/src/plugins/platforms/qnx/qqnxglcontext.cpp b/src/plugins/platforms/qnx/qqnxglcontext.cpp
index 09736304e1..7133d01e87 100644
--- a/src/plugins/platforms/qnx/qqnxglcontext.cpp
+++ b/src/plugins/platforms/qnx/qqnxglcontext.cpp
@@ -164,7 +164,7 @@ EGLenum QQnxGLContext::checkEGLError(const char *msg)
return error;
}
-void QQnxGLContext::initialize()
+void QQnxGLContext::initializeContext()
{
qGLContextDebug() << Q_FUNC_INFO;
@@ -182,7 +182,7 @@ void QQnxGLContext::initialize()
}
}
-void QQnxGLContext::shutdown()
+void QQnxGLContext::shutdownContext()
{
qGLContextDebug() << Q_FUNC_INFO;
diff --git a/src/plugins/platforms/qnx/qqnxglcontext.h b/src/plugins/platforms/qnx/qqnxglcontext.h
index 090c7ed49d..a91a89901f 100644
--- a/src/plugins/platforms/qnx/qqnxglcontext.h
+++ b/src/plugins/platforms/qnx/qqnxglcontext.h
@@ -53,8 +53,8 @@ public:
static EGLenum checkEGLError(const char *msg);
- static void initialize();
- static void shutdown();
+ static void initializeContext();
+ static void shutdownContext();
void requestSurfaceChange();
diff --git a/src/plugins/platforms/qnx/qqnxintegration.cpp b/src/plugins/platforms/qnx/qqnxintegration.cpp
index 34b79b61da..dba4ba67a8 100644
--- a/src/plugins/platforms/qnx/qqnxintegration.cpp
+++ b/src/plugins/platforms/qnx/qqnxintegration.cpp
@@ -182,7 +182,7 @@ QQnxIntegration::QQnxIntegration(const QStringList &paramList)
#if !defined(QT_NO_OPENGL)
// Initialize global OpenGL resources
- QQnxGLContext::initialize();
+ QQnxGLContext::initializeContext();
#endif
// Create/start event thread
@@ -306,7 +306,7 @@ QQnxIntegration::~QQnxIntegration()
#if !defined(QT_NO_OPENGL)
// Cleanup global OpenGL resources
- QQnxGLContext::shutdown();
+ QQnxGLContext::shutdownContext();
#endif
#if defined(QQNX_PPS)
@@ -554,7 +554,7 @@ void QQnxIntegration::removeDisplay(QQnxScreen *screen)
Q_CHECK_PTR(screen);
Q_ASSERT(m_screens.contains(screen));
m_screens.removeAll(screen);
- screen->deleteLater();
+ destroyScreen(screen);
}
void QQnxIntegration::destroyDisplays()
diff --git a/src/plugins/platforms/qnx/qqnxscreen.cpp b/src/plugins/platforms/qnx/qqnxscreen.cpp
index d42babb8ab..d4407842f5 100644
--- a/src/plugins/platforms/qnx/qqnxscreen.cpp
+++ b/src/plugins/platforms/qnx/qqnxscreen.cpp
@@ -305,7 +305,7 @@ static int defaultDepth()
if (defaultDepth == 0) {
// check if display depth was specified in environment variable;
// use default value if no valid value found
- defaultDepth = qgetenv("QQNX_DISPLAY_DEPTH").toInt();
+ defaultDepth = qEnvironmentVariableIntValue("QQNX_DISPLAY_DEPTH");
if (defaultDepth != 16 && defaultDepth != 32)
defaultDepth = 32;
}
@@ -680,7 +680,7 @@ void QQnxScreen::adjustOrientation()
return;
bool ok = false;
- const int rotation = qgetenv("ORIENTATION").toInt(&ok);
+ const int rotation = qEnvironmentVariableIntValue("ORIENTATION", &ok);
if (ok)
setRotation(rotation);
@@ -859,7 +859,7 @@ void QQnxScreen::setRootWindow(QQnxWindow *window)
{
// Optionally disable the screen power save
bool ok = false;
- const int disablePowerSave = qgetenv("QQNX_DISABLE_POWER_SAVE").toInt(&ok);
+ const int disablePowerSave = qEnvironmentVariableIntValue("QQNX_DISABLE_POWER_SAVE", &ok);
if (ok && disablePowerSave) {
const int mode = SCREEN_IDLE_MODE_KEEP_AWAKE;
int result = screen_set_window_property_iv(window->nativeHandle(), SCREEN_PROPERTY_IDLE_MODE, &mode);
diff --git a/src/plugins/platforms/windows/accessible/iaccessible2.cpp b/src/plugins/platforms/windows/accessible/iaccessible2.cpp
index 7f60be0d50..3d6a6ced6e 100644
--- a/src/plugins/platforms/windows/accessible/iaccessible2.cpp
+++ b/src/plugins/platforms/windows/accessible/iaccessible2.cpp
@@ -121,7 +121,7 @@ AccessibleRelation::AccessibleRelation(const QList<QAccessibleInterface *> &targ
HRESULT STDMETHODCALLTYPE AccessibleRelation::QueryInterface(REFIID id, LPVOID *iface)
{
*iface = 0;
- if (id == IID_IUnknown)
+ if (id == IID_IUnknown || id == IID_IAccessibleRelation)
*iface = (IUnknown*)this;
if (*iface) {
diff --git a/src/plugins/platforms/windows/accessible/iaccessible2.h b/src/plugins/platforms/windows/accessible/iaccessible2.h
index 351bf2555c..f7f5e022c3 100644
--- a/src/plugins/platforms/windows/accessible/iaccessible2.h
+++ b/src/plugins/platforms/windows/accessible/iaccessible2.h
@@ -39,24 +39,7 @@
#include "qwindowsmsaaaccessible.h"
#include "comutils.h"
-#include "Accessible2.h"
-#include "AccessibleAction.h"
-#include "AccessibleApplication.h"
-#include "AccessibleComponent.h"
-#include "AccessibleEditableText.h"
-#include "AccessibleHyperlink.h"
-#include "AccessibleHypertext.h"
-#include "AccessibleImage.h"
-#include "AccessibleRelation.h"
-#include "AccessibleTable.h"
-#include "AccessibleTable2.h"
-#include "AccessibleTableCell.h"
-#include "AccessibleText.h"
-#include "AccessibleValue.h"
-
-#include "AccessibleEventID.h"
-#include "AccessibleRole.h"
-#include "AccessibleStates.h"
+#include "ia2_api_all.h"
#include <servprov.h>
diff --git a/src/plugins/platforms/windows/accessible/qwindowsmsaaaccessible.h b/src/plugins/platforms/windows/accessible/qwindowsmsaaaccessible.h
index a78d821b1d..c522cf281e 100644
--- a/src/plugins/platforms/windows/accessible/qwindowsmsaaaccessible.h
+++ b/src/plugins/platforms/windows/accessible/qwindowsmsaaaccessible.h
@@ -42,7 +42,7 @@
#include <QtGui/qaccessible.h>
#ifndef Q_CC_MINGW
# include <oleacc.h>
-# include "Accessible2.h" // IAccessible2 inherits from IAccessible
+# include "ia2_api_all.h" // IAccessible2 inherits from IAccessible
#else
// MinGW
# include <basetyps.h>
diff --git a/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp b/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp
index f1f472b3e2..3a0c3b9fe9 100644
--- a/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp
+++ b/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp
@@ -1580,14 +1580,14 @@ QWindowsNativeDialogBase *QWindowsFileDialogHelper::createNativeDialog()
QWindowsNativeFileDialogBase *result = QWindowsNativeFileDialogBase::create(options()->acceptMode(), m_data);
if (!result)
return 0;
- QObject::connect(result, SIGNAL(accepted()), this, SIGNAL(accept()));
- QObject::connect(result, SIGNAL(rejected()), this, SIGNAL(reject()));
- QObject::connect(result, SIGNAL(directoryEntered(QUrl)),
- this, SIGNAL(directoryEntered(QUrl)));
- QObject::connect(result, SIGNAL(currentChanged(QUrl)),
- this, SIGNAL(currentChanged(QUrl)));
- QObject::connect(result, SIGNAL(filterSelected(QString)),
- this, SIGNAL(filterSelected(QString)));
+ QObject::connect(result, &QWindowsNativeDialogBase::accepted, this, &QPlatformDialogHelper::accept);
+ QObject::connect(result, &QWindowsNativeDialogBase::rejected, this, &QPlatformDialogHelper::reject);
+ QObject::connect(result, &QWindowsNativeFileDialogBase::directoryEntered,
+ this, &QPlatformFileDialogHelper::directoryEntered);
+ QObject::connect(result, &QWindowsNativeFileDialogBase::currentChanged,
+ this, &QPlatformFileDialogHelper::currentChanged);
+ QObject::connect(result, &QWindowsNativeFileDialogBase::filterSelected,
+ this, &QPlatformFileDialogHelper::filterSelected);
// Apply settings.
const QSharedPointer<QFileDialogOptions> &opts = options();
@@ -1961,8 +1961,8 @@ QWindowsNativeDialogBase *QWindowsXpFileDialogHelper::createNativeDialog()
{
m_data.fromOptions(options());
if (QWindowsXpNativeFileDialog *result = QWindowsXpNativeFileDialog::create(options(), m_data)) {
- QObject::connect(result, SIGNAL(accepted()), this, SIGNAL(accept()));
- QObject::connect(result, SIGNAL(rejected()), this, SIGNAL(reject()));
+ QObject::connect(result, &QWindowsNativeDialogBase::accepted, this, &QPlatformDialogHelper::accept);
+ QObject::connect(result, &QWindowsNativeDialogBase::rejected, this, &QPlatformDialogHelper::reject);
return result;
}
return 0;
@@ -2117,8 +2117,8 @@ QWindowsNativeDialogBase *QWindowsColorDialogHelper::createNativeDialog()
{
QWindowsNativeColorDialog *nativeDialog = new QWindowsNativeColorDialog(m_currentColor);
nativeDialog->setWindowTitle(options()->windowTitle());
- connect(nativeDialog, SIGNAL(accepted()), this, SIGNAL(accept()));
- connect(nativeDialog, SIGNAL(rejected()), this, SIGNAL(reject()));
+ connect(nativeDialog, &QWindowsNativeDialogBase::accepted, this, &QPlatformDialogHelper::accept);
+ connect(nativeDialog, &QWindowsNativeDialogBase::rejected, this, &QPlatformDialogHelper::reject);
return nativeDialog;
}
#endif // USE_NATIVE_COLOR_DIALOG
diff --git a/src/plugins/platforms/windows/qwindowsfontdatabase.cpp b/src/plugins/platforms/windows/qwindowsfontdatabase.cpp
index f15783490e..46b05de4ae 100644
--- a/src/plugins/platforms/windows/qwindowsfontdatabase.cpp
+++ b/src/plugins/platforms/windows/qwindowsfontdatabase.cpp
@@ -618,20 +618,6 @@ QDebug operator<<(QDebug d, const QFontDef &def)
return d;
}
-// convert 0 ~ 1000 integer to QFont::Weight
-static inline QFont::Weight weightFromInteger(long weight)
-{
- if (weight < 400)
- return QFont::Light;
- if (weight < 600)
- return QFont::Normal;
- if (weight < 700)
- return QFont::DemiBold;
- if (weight < 800)
- return QFont::Bold;
- return QFont::Black;
-}
-
static inline QFontDatabase::WritingSystem writingSystemFromCharSet(uchar charSet)
{
switch (charSet) {
@@ -808,7 +794,7 @@ QString getEnglishName(const QString &familyName)
HDC hdc = GetDC( 0 );
LOGFONT lf;
memset(&lf, 0, sizeof(LOGFONT));
- memcpy(lf.lfFaceName, familyName.utf16(), qMin(LF_FACESIZE, familyName.length()) * sizeof(wchar_t));
+ memcpy(lf.lfFaceName, familyName.utf16(), qMin(familyName.length(), LF_FACESIZE - 1) * sizeof(wchar_t));
lf.lfCharSet = DEFAULT_CHARSET;
HFONT hfont = CreateFontIndirect(&lf);
@@ -865,7 +851,7 @@ static bool addFontToDatabase(const QString &familyName, uchar charSet,
const int size = scalable ? SMOOTH_SCALABLE : tm->tmHeight;
const QFont::Style style = tm->tmItalic ? QFont::StyleItalic : QFont::StyleNormal;
const bool antialias = false;
- const QFont::Weight weight = weightFromInteger(tm->tmWeight);
+ const QFont::Weight weight = QPlatformFontDatabase::weightFromInteger(tm->tmWeight);
const QFont::Stretch stretch = QFont::Unstretched;
#ifndef QT_NO_DEBUG_OUTPUT
@@ -972,14 +958,9 @@ static int QT_WIN_CALLBACK storeFontSub(ENUMLOGFONTEX* f, NEWTEXTMETRICEX *textm
HDC dummy = GetDC(0);
LOGFONT lf;
+ memset(&lf, 0, sizeof(LOGFONT));
lf.lfCharSet = DEFAULT_CHARSET;
- if (wcslen(f->elfLogFont.lfFaceName) >= LF_FACESIZE) {
- qWarning("%s: Unable to enumerate family '%s'.",
- __FUNCTION__, qPrintable(QString::fromWCharArray(f->elfLogFont.lfFaceName)));
- return 1;
- }
- wmemcpy(lf.lfFaceName, f->elfLogFont.lfFaceName,
- wcslen(f->elfLogFont.lfFaceName) + 1);
+ memcpy(lf.lfFaceName, f->elfLogFont.lfFaceName, LF_FACESIZE * sizeof(wchar_t));
lf.lfPitchAndFamily = 0;
EnumFontFamiliesEx(dummy, &lf, (FONTENUMPROC)storeFont,
(LPARAM)namesSetIn, 0);
@@ -1015,20 +996,21 @@ void QWindowsFontDatabase::populate(const QString &family)
HDC dummy = GetDC(0);
LOGFONT lf;
+ memset(&lf, 0, sizeof(LOGFONT));
lf.lfCharSet = DEFAULT_CHARSET;
if (family.size() >= LF_FACESIZE) {
qWarning("%s: Unable to enumerate family '%s'.",
__FUNCTION__, qPrintable(family));
return;
}
- wmemcpy(lf.lfFaceName, reinterpret_cast<const wchar_t*>(family.utf16()),
- family.size() + 1);
+
lf.lfPitchAndFamily = 0;
if (family.isEmpty()) {
EnumFontFamiliesEx(dummy, &lf, (FONTENUMPROC)storeFontSub,
(LPARAM)&m_families, 0);
} else {
+ memcpy(lf.lfFaceName, family.utf16(), family.size() * sizeof(wchar_t));
EnumFontFamiliesEx(dummy, &lf, (FONTENUMPROC)storeFont,
(LPARAM)&m_families, 0);
}
@@ -1093,7 +1075,7 @@ QFontEngineMulti *QWindowsFontDatabase::fontEngineMulti(QFontEngine *fontEngine,
if (script == QChar::Script_Common)
return new QWindowsMultiFontEngine(fontEngine, script);
// ### as long as fallbacksForFamily() does not take script parameter into account,
- // prefer QFontEngineMultiBasicImpl's loadEngine() implementation for complex scripts
+ // prefer QFontEngineMulti's loadEngine() implementation for complex scripts
return QPlatformFontDatabase::fontEngineMulti(fontEngine, script);
}
@@ -1253,7 +1235,7 @@ QFontEngine *QWindowsFontDatabase::fontEngine(const QByteArray &fontData, qreal
else
fontEngine->fontDef.style = QFont::StyleNormal;
- fontEngine->fontDef.weight = weightFromInteger(qFromBigEndian<quint16>(os2Table->weightClass));
+ fontEngine->fontDef.weight = QPlatformFontDatabase::weightFromInteger(qFromBigEndian<quint16>(os2Table->weightClass));
}
}
@@ -1364,7 +1346,7 @@ QStringList QWindowsFontDatabase::addApplicationFont(const QByteArray &fontData,
HDC hdc = GetDC(0);
LOGFONT lf;
memset(&lf, 0, sizeof(LOGFONT));
- memcpy(lf.lfFaceName, familyName.utf16(), sizeof(wchar_t) * qMin(LF_FACESIZE, familyName.size()));
+ memcpy(lf.lfFaceName, familyName.utf16(), sizeof(wchar_t) * qMin(LF_FACESIZE - 1, familyName.size()));
lf.lfCharSet = DEFAULT_CHARSET;
HFONT hfont = CreateFontIndirect(&lf);
HGDIOBJ oldobj = SelectObject(hdc, hfont);
@@ -1589,6 +1571,10 @@ LOGFONT QWindowsFontDatabase::fontDefToLOGFONT(const QFontDef &request)
lf.lfPitchAndFamily = DEFAULT_PITCH | hint;
QString fam = request.family;
+ if (fam.size() >= LF_FACESIZE) {
+ qCritical("%s: Family name '%s' is too long.", __FUNCTION__, qPrintable(fam));
+ fam.truncate(LF_FACESIZE - 1);
+ }
if (fam.isEmpty())
fam = QStringLiteral("MS Sans Serif");
@@ -1600,7 +1586,7 @@ LOGFONT QWindowsFontDatabase::fontDefToLOGFONT(const QFontDef &request)
if (fam == QLatin1String("Courier") && !(request.styleStrategy & QFont::PreferBitmap))
fam = QStringLiteral("Courier New");
- memcpy(lf.lfFaceName, fam.utf16(), sizeof(wchar_t) * qMin(fam.length() + 1, 32)); // 32 = Windows hard-coded
+ memcpy(lf.lfFaceName, fam.utf16(), fam.size() * sizeof(wchar_t));
return lf;
}
@@ -1781,9 +1767,13 @@ QFontEngine *QWindowsFontDatabase::createEngine(const QFontDef &request,
// turns out okay)
useDirectWrite = false;
if (initDirectWrite(data.data())) {
- const QString nameSubstitute = QWindowsFontEngineDirectWrite::fontNameSubstitute(QString::fromWCharArray(lf.lfFaceName));
- memcpy(lf.lfFaceName, nameSubstitute.utf16(),
- sizeof(wchar_t) * qMin(nameSubstitute.length() + 1, LF_FACESIZE));
+ const QString fam = QString::fromWCharArray(lf.lfFaceName);
+ const QString nameSubstitute = QWindowsFontEngineDirectWrite::fontNameSubstitute(fam);
+ if (nameSubstitute != fam) {
+ const int nameSubstituteLength = qMin(nameSubstitute.length(), LF_FACESIZE - 1);
+ memcpy(lf.lfFaceName, nameSubstitute.utf16(), nameSubstituteLength * sizeof(wchar_t));
+ lf.lfFaceName[nameSubstituteLength] = 0;
+ }
HRESULT hr = data->directWriteGdiInterop->CreateFontFromLOGFONT(
&lf,
@@ -1854,7 +1844,7 @@ QFont QWindowsFontDatabase::LOGFONT_to_QFont(const LOGFONT& logFont, int vertica
QFont qFont(QString::fromWCharArray(logFont.lfFaceName));
qFont.setItalic(logFont.lfItalic);
if (logFont.lfWeight != FW_DONTCARE)
- qFont.setWeight(weightFromInteger(logFont.lfWeight));
+ qFont.setWeight(QPlatformFontDatabase::weightFromInteger(logFont.lfWeight));
const qreal logFontHeight = qAbs(logFont.lfHeight);
qFont.setPointSizeF(logFontHeight * 72.0 / qreal(verticalDPI_In));
qFont.setUnderline(logFont.lfUnderline);
diff --git a/src/plugins/platforms/windows/qwindowsfontdatabase_ft.cpp b/src/plugins/platforms/windows/qwindowsfontdatabase_ft.cpp
index 42e5a8c6ad..a2d9c3e75b 100644
--- a/src/plugins/platforms/windows/qwindowsfontdatabase_ft.cpp
+++ b/src/plugins/platforms/windows/qwindowsfontdatabase_ft.cpp
@@ -52,20 +52,6 @@
QT_BEGIN_NAMESPACE
-// convert 0 ~ 1000 integer to QFont::Weight
-static inline QFont::Weight weightFromInteger(long weight)
-{
- if (weight < 400)
- return QFont::Light;
- if (weight < 600)
- return QFont::Normal;
- if (weight < 700)
- return QFont::DemiBold;
- if (weight < 800)
- return QFont::Bold;
- return QFont::Black;
-}
-
static inline QFontDatabase::WritingSystem writingSystemFromCharSet(uchar charSet)
{
switch (charSet) {
@@ -139,7 +125,7 @@ static bool addFontToDatabase(const QString &familyName, uchar charSet,
const int size = scalable ? SMOOTH_SCALABLE : tm->tmHeight;
const QFont::Style style = tm->tmItalic ? QFont::StyleItalic : QFont::StyleNormal;
const bool antialias = false;
- const QFont::Weight weight = weightFromInteger(tm->tmWeight);
+ const QFont::Weight weight = QPlatformFontDatabase::weightFromInteger(tm->tmWeight);
const QFont::Stretch stretch = QFont::Unstretched;
#ifndef QT_NO_DEBUG_OUTPUT
@@ -383,14 +369,9 @@ static int QT_WIN_CALLBACK storeFontSub(ENUMLOGFONTEX* f, NEWTEXTMETRICEX *textm
HDC dummy = GetDC(0);
LOGFONT lf;
+ memset(&lf, 0, sizeof(LOGFONT));
lf.lfCharSet = DEFAULT_CHARSET;
- if (wcslen(f->elfLogFont.lfFaceName) >= LF_FACESIZE) {
- qWarning("%s: Unable to enumerate family '%s'.",
- __FUNCTION__, qPrintable(QString::fromWCharArray(f->elfLogFont.lfFaceName)));
- return 1;
- }
- wmemcpy(lf.lfFaceName, f->elfLogFont.lfFaceName,
- wcslen(f->elfLogFont.lfFaceName) + 1);
+ memcpy(lf.lfFaceName, f->elfLogFont.lfFaceName, LF_FACESIZE * sizeof(wchar_t));
lf.lfPitchAndFamily = 0;
EnumFontFamiliesEx(dummy, &lf, (FONTENUMPROC)storeFont,
(LPARAM)namesSetIn, 0);
@@ -425,20 +406,21 @@ void QWindowsFontDatabaseFT::populate(const QString &family)
HDC dummy = GetDC(0);
LOGFONT lf;
+ memset(&lf, 0, sizeof(LOGFONT));
lf.lfCharSet = DEFAULT_CHARSET;
if (family.size() >= LF_FACESIZE) {
qWarning("%s: Unable to enumerate family '%s'.",
__FUNCTION__, qPrintable(family));
return;
}
- wmemcpy(lf.lfFaceName, reinterpret_cast<const wchar_t*>(family.utf16()),
- family.size() + 1);
+
lf.lfPitchAndFamily = 0;
if (family.isEmpty()) {
EnumFontFamiliesEx(dummy, &lf, (FONTENUMPROC)storeFontSub,
(LPARAM)&m_families, 0);
} else {
+ memcpy(lf.lfFaceName, family.utf16(), family.size() * sizeof(wchar_t));
EnumFontFamiliesEx(dummy, &lf, (FONTENUMPROC)storeFont,
(LPARAM)&m_families, 0);
}
diff --git a/src/plugins/platforms/windows/qwindowsfontengine.cpp b/src/plugins/platforms/windows/qwindowsfontengine.cpp
index e45ff5d744..5790360d34 100644
--- a/src/plugins/platforms/windows/qwindowsfontengine.cpp
+++ b/src/plugins/platforms/windows/qwindowsfontengine.cpp
@@ -1182,19 +1182,13 @@ QImage QWindowsFontEngine::alphaMapForGlyph(glyph_t glyph, const QTransform &xfo
return QImage();
}
- QImage indexed(mask->width(), mask->height(), QImage::Format_Indexed8);
+ QImage alphaMap(mask->width(), mask->height(), QImage::Format_Alpha8);
- // ### This part is kinda pointless, but we'll crash later if we don't because some
- // code paths expects there to be colortables for index8-bit...
- QVector<QRgb> colors(256);
- for (int i=0; i<256; ++i)
- colors[i] = qRgba(0, 0, 0, i);
- indexed.setColorTable(colors);
// Copy data... Cannot use QPainter here as GDI has messed up the
// Alpha channel of the ni.image pixels...
for (int y=0; y<mask->height(); ++y) {
- uchar *dest = indexed.scanLine(y);
+ uchar *dest = alphaMap.scanLine(y);
if (mask->image().format() == QImage::Format_RGB16) {
const qint16 *src = (qint16 *) ((const QImage &) mask->image()).scanLine(y);
for (int x=0; x<mask->width(); ++x)
@@ -1216,7 +1210,7 @@ QImage QWindowsFontEngine::alphaMapForGlyph(glyph_t glyph, const QTransform &xfo
DeleteObject(font);
}
- return indexed;
+ return alphaMap;
}
#define SPI_GETFONTSMOOTHINGCONTRAST 0x200C
@@ -1309,17 +1303,13 @@ void QWindowsFontEngine::initFontInfo(const QFontDef &request,
Will probably be superseded by a common Free Type font engine in Qt 5.X.
*/
QWindowsMultiFontEngine::QWindowsMultiFontEngine(QFontEngine *fe, int script)
- : QFontEngineMultiBasicImpl(fe, script)
+ : QFontEngineMulti(fe, script)
{
}
-void QWindowsMultiFontEngine::loadEngine(int at)
+QFontEngine *QWindowsMultiFontEngine::loadEngine(int at)
{
- ensureFallbackFamiliesQueried();
- Q_ASSERT(at < engines.size());
- Q_ASSERT(engines.at(at) == 0);
-
- QFontEngine *fontEngine = engines.at(0);
+ QFontEngine *fontEngine = engine(0);
QSharedPointer<QWindowsFontEngineData> data;
LOGFONT lf;
@@ -1339,36 +1329,36 @@ void QWindowsMultiFontEngine::loadEngine(int at)
}
const QString fam = fallbackFamilyAt(at - 1);
- memcpy(lf.lfFaceName, fam.utf16(), sizeof(wchar_t) * qMin(fam.length() + 1, 32)); // 32 = Windows hard-coded
+ const int faceNameLength = qMin(fam.length(), LF_FACESIZE - 1);
+ memcpy(lf.lfFaceName, fam.utf16(), faceNameLength * sizeof(wchar_t));
+ lf.lfFaceName[faceNameLength] = 0;
#ifndef QT_NO_DIRECTWRITE
if (fontEngine->type() == QFontEngine::DirectWrite) {
- const QString nameSubstitute = QWindowsFontEngineDirectWrite::fontNameSubstitute(QString::fromWCharArray(lf.lfFaceName));
- memcpy(lf.lfFaceName, nameSubstitute.utf16(),
- sizeof(wchar_t) * qMin(nameSubstitute.length() + 1, LF_FACESIZE));
+ const QString nameSubstitute = QWindowsFontEngineDirectWrite::fontNameSubstitute(fam);
+ if (nameSubstitute != fam) {
+ const int nameSubstituteLength = qMin(nameSubstitute.length(), LF_FACESIZE - 1);
+ memcpy(lf.lfFaceName, nameSubstitute.utf16(), nameSubstituteLength * sizeof(wchar_t));
+ lf.lfFaceName[nameSubstituteLength] = 0;
+ }
IDWriteFont *directWriteFont = 0;
HRESULT hr = data->directWriteGdiInterop->CreateFontFromLOGFONT(&lf, &directWriteFont);
if (FAILED(hr)) {
qErrnoWarning("%s: CreateFontFromLOGFONT failed", __FUNCTION__);
} else {
+ Q_ASSERT(directWriteFont);
IDWriteFontFace *directWriteFontFace = NULL;
HRESULT hr = directWriteFont->CreateFontFace(&directWriteFontFace);
if (SUCCEEDED(hr)) {
+ Q_ASSERT(directWriteFontFace);
QWindowsFontEngineDirectWrite *fedw = new QWindowsFontEngineDirectWrite(directWriteFontFace,
fontEngine->fontDef.pixelSize,
data);
- fedw->fontDef = fontDef;
- fedw->fontDef.family = fam;
- fedw->ref.ref();
- engines[at] = fedw;
-
- qCDebug(lcQpaFonts) << __FUNCTION__ << at << fam;
- return;
+ return fedw;
} else {
qErrnoWarning("%s: CreateFontFace failed", __FUNCTION__);
}
-
}
}
#endif
@@ -1382,13 +1372,8 @@ void QWindowsMultiFontEngine::loadEngine(int at)
hfont = (HFONT)GetStockObject(ANSI_VAR_FONT);
stockFont = true;
}
- engines[at] = new QWindowsFontEngine(fam, hfont, stockFont, lf, data);
- engines[at]->ref.ref();
- engines[at]->fontDef = fontDef;
- engines[at]->fontDef.family = fam;
- qCDebug(lcQpaFonts) << __FUNCTION__ << at << fam;
- // TODO: increase cost in QFontCache for the font engine loaded here
+ return new QWindowsFontEngine(fam, hfont, stockFont, lf, data);
}
bool QWindowsFontEngine::supportsTransformation(const QTransform &transform) const
diff --git a/src/plugins/platforms/windows/qwindowsfontengine.h b/src/plugins/platforms/windows/qwindowsfontengine.h
index 02bc4008d1..fdcb74d67d 100644
--- a/src/plugins/platforms/windows/qwindowsfontengine.h
+++ b/src/plugins/platforms/windows/qwindowsfontengine.h
@@ -163,13 +163,12 @@ private:
mutable int designAdvancesSize;
};
-
-class QWindowsMultiFontEngine : public QFontEngineMultiBasicImpl
+class QWindowsMultiFontEngine : public QFontEngineMulti
{
public:
explicit QWindowsMultiFontEngine(QFontEngine *fe, int script);
- void loadEngine(int at);
+ QFontEngine *loadEngine(int at) Q_DECL_OVERRIDE;
};
QT_END_NAMESPACE
diff --git a/src/plugins/platforms/windows/qwindowsfontenginedirectwrite.cpp b/src/plugins/platforms/windows/qwindowsfontenginedirectwrite.cpp
index 648f68bb19..f8747a741e 100644
--- a/src/plugins/platforms/windows/qwindowsfontenginedirectwrite.cpp
+++ b/src/plugins/platforms/windows/qwindowsfontenginedirectwrite.cpp
@@ -485,15 +485,11 @@ QImage QWindowsFontEngineDirectWrite::alphaMapForGlyph(glyph_t glyph, QFixed sub
{
QImage im = imageForGlyph(glyph, subPixelPosition, 0, QTransform());
- QImage indexed(im.width(), im.height(), QImage::Format_Indexed8);
- QVector<QRgb> colors(256);
- for (int i=0; i<256; ++i)
- colors[i] = qRgba(0, 0, 0, i);
- indexed.setColorTable(colors);
+ QImage alphaMap(im.width(), im.height(), QImage::Format_Alpha8);
for (int y=0; y<im.height(); ++y) {
uint *src = (uint*) im.scanLine(y);
- uchar *dst = indexed.scanLine(y);
+ uchar *dst = alphaMap.scanLine(y);
for (int x=0; x<im.width(); ++x) {
*dst = 255 - (m_fontEngineData->pow_gamma[qGray(0xffffffff - *src)] * 255. / 2047.);
++dst;
@@ -501,7 +497,7 @@ QImage QWindowsFontEngineDirectWrite::alphaMapForGlyph(glyph_t glyph, QFixed sub
}
}
- return indexed;
+ return alphaMap;
}
bool QWindowsFontEngineDirectWrite::supportsSubPixelPositions() const
diff --git a/src/plugins/platforms/windows/qwindowsinputcontext.cpp b/src/plugins/platforms/windows/qwindowsinputcontext.cpp
index 94a27d146f..d8e4900780 100644
--- a/src/plugins/platforms/windows/qwindowsinputcontext.cpp
+++ b/src/plugins/platforms/windows/qwindowsinputcontext.cpp
@@ -156,8 +156,8 @@ QWindowsInputContext::QWindowsInputContext() :
m_WM_MSIME_MOUSE(RegisterWindowMessage(L"MSIMEMouseOperation")),
m_endCompositionRecursionGuard(false)
{
- connect(QGuiApplication::inputMethod(), SIGNAL(cursorRectangleChanged()),
- this, SLOT(cursorRectChanged()));
+ connect(QGuiApplication::inputMethod(), &QInputMethod::cursorRectangleChanged,
+ this, &QWindowsInputContext::cursorRectChanged);
}
QWindowsInputContext::~QWindowsInputContext()
diff --git a/src/plugins/platforms/windows/qwindowsintegration.h b/src/plugins/platforms/windows/qwindowsintegration.h
index d1617eaa3c..7fb37bc1f1 100644
--- a/src/plugins/platforms/windows/qwindowsintegration.h
+++ b/src/plugins/platforms/windows/qwindowsintegration.h
@@ -94,6 +94,7 @@ public:
static QWindowsIntegration *instance();
inline void emitScreenAdded(QPlatformScreen *s) { screenAdded(s); }
+ inline void emitDestroyScreen(QPlatformScreen *s) { destroyScreen(s); }
unsigned options() const;
diff --git a/src/plugins/platforms/windows/qwindowskeymapper.cpp b/src/plugins/platforms/windows/qwindowskeymapper.cpp
index d781cdbe9c..25d6937d8f 100644
--- a/src/plugins/platforms/windows/qwindowskeymapper.cpp
+++ b/src/plugins/platforms/windows/qwindowskeymapper.cpp
@@ -1192,6 +1192,8 @@ Qt::KeyboardModifiers QWindowsKeyMapper::queryKeyboardModifiers()
modifiers |= Qt::ControlModifier;
if (GetKeyState(VK_MENU) < 0)
modifiers |= Qt::AltModifier;
+ if (GetKeyState(VK_LWIN) < 0 || GetKeyState(VK_RWIN) < 0)
+ modifiers |= Qt::MetaModifier;
return modifiers;
}
diff --git a/src/plugins/platforms/windows/qwindowsmime.cpp b/src/plugins/platforms/windows/qwindowsmime.cpp
index bc8e9347dc..42f4e66d6c 100644
--- a/src/plugins/platforms/windows/qwindowsmime.cpp
+++ b/src/plugins/platforms/windows/qwindowsmime.cpp
@@ -343,10 +343,11 @@ static bool setData(const QByteArray &data, STGMEDIUM *pmedium)
return true;
}
-static QByteArray getData(int cf, IDataObject *pDataObj)
+static QByteArray getData(int cf, IDataObject *pDataObj, int lindex = -1)
{
QByteArray data;
FORMATETC formatetc = setCf(cf);
+ formatetc.lindex = lindex;
STGMEDIUM s;
if (pDataObj->GetData(&formatetc, &s) == S_OK) {
DWORD * val = (DWORD*)GlobalLock(s.hGlobal);
@@ -791,7 +792,6 @@ QVariant QWindowsMimeURI::convertToMime(const QString &mimeType, LPDATAOBJECT pD
{
if (mimeType == QLatin1String("text/uri-list")) {
if (canGetData(CF_HDROP, pDataObj)) {
- QByteArray texturi;
QList<QVariant> urls;
QByteArray data = getData(CF_HDROP, pDataObj);
@@ -1340,21 +1340,34 @@ static bool isCustomMimeType(const QString &mimeType)
return mimeType.startsWith(QLatin1String(x_qt_windows_mime), Qt::CaseInsensitive);
}
-static QString customMimeType(const QString &mimeType)
+static QString customMimeType(const QString &mimeType, int *lindex = 0)
{
int len = sizeof(x_qt_windows_mime) - 1;
- int n = mimeType.lastIndexOf(QLatin1Char('\"'))-len;
- return mimeType.mid(len, n);
+ int n = mimeType.lastIndexOf(QLatin1Char('\"')) - len;
+ QString ret = mimeType.mid(len, n);
+
+ const int beginPos = mimeType.indexOf(QLatin1String(";index="));
+ if (beginPos > -1) {
+ const int endPos = mimeType.indexOf(QLatin1Char(';'), beginPos + 1);
+ const int indexStartPos = beginPos + 7;
+ if (lindex)
+ *lindex = mimeType.midRef(indexStartPos, endPos == -1 ? endPos : endPos - indexStartPos).toInt();
+ } else {
+ if (lindex)
+ *lindex = -1;
+ }
+ return ret;
}
bool QLastResortMimes::canConvertToMime(const QString &mimeType, IDataObject *pDataObj) const
{
if (isCustomMimeType(mimeType)) {
+ // MSDN documentation for QueryGetData says only -1 is supported, so ignore lindex here.
QString clipFormat = customMimeType(mimeType);
int cf = RegisterClipboardFormat(reinterpret_cast<const wchar_t *> (clipFormat.utf16()));
return canGetData(cf, pDataObj);
} else if (formats.keys(mimeType).isEmpty()) {
- // if it is not in there then register it an see if we can get it
+ // if it is not in there then register it and see if we can get it
int cf = QWindowsMime::registerMimeType(mimeType);
return canGetData(cf, pDataObj);
} else {
@@ -1370,9 +1383,10 @@ QVariant QLastResortMimes::convertToMime(const QString &mimeType, IDataObject *p
if (canConvertToMime(mimeType, pDataObj)) {
QByteArray data;
if (isCustomMimeType(mimeType)) {
- QString clipFormat = customMimeType(mimeType);
+ int lindex;
+ QString clipFormat = customMimeType(mimeType, &lindex);
int cf = RegisterClipboardFormat(reinterpret_cast<const wchar_t *> (clipFormat.utf16()));
- data = getData(cf, pDataObj);
+ data = getData(cf, pDataObj, lindex);
} else if (formats.keys(mimeType).isEmpty()) {
int cf = QWindowsMime::registerMimeType(mimeType);
data = getData(cf, pDataObj);
@@ -1452,6 +1466,7 @@ QWindowsMime * QWindowsMimeConverter::converterToMime(const QString &mimeType, I
QStringList QWindowsMimeConverter::allMimesForFormats(IDataObject *pDataObj) const
{
+ qCDebug(lcQpaMime) << "QWindowsMime::allMimesForFormats()";
ensureInitialized();
QStringList formats;
LPENUMFORMATETC FAR fmtenum;
@@ -1461,10 +1476,9 @@ QStringList QWindowsMimeConverter::allMimesForFormats(IDataObject *pDataObj) con
FORMATETC fmtetc;
while (S_OK == fmtenum->Next(1, &fmtetc, 0)) {
#if defined(QMIME_DEBUG)
- qDebug("QWindowsMime::allMimesForFormats()");
wchar_t buf[256] = {0};
GetClipboardFormatName(fmtetc.cfFormat, buf, 255);
- qDebug("CF = %d : %s", fmtetc.cfFormat, QString::fromWCharArray(buf));
+ qDebug("CF = %d : %s", fmtetc.cfFormat, qPrintable(QString::fromWCharArray(buf)));
#endif
for (int i= m_mimes.size() - 1; i >= 0; --i) {
QString format = m_mimes.at(i)->mimeForFormat(fmtetc);
@@ -1478,7 +1492,7 @@ QStringList QWindowsMimeConverter::allMimesForFormats(IDataObject *pDataObj) con
}
fmtenum->Release();
}
- qCDebug(lcQpaMime) << __FUNCTION__ << pDataObj << formats;
+ qCDebug(lcQpaMime) << pDataObj << formats;
return formats;
}
diff --git a/src/plugins/platforms/windows/qwindowsscreen.cpp b/src/plugins/platforms/windows/qwindowsscreen.cpp
index fd57d9ee61..79219e361a 100644
--- a/src/plugins/platforms/windows/qwindowsscreen.cpp
+++ b/src/plugins/platforms/windows/qwindowsscreen.cpp
@@ -462,7 +462,7 @@ void QWindowsScreenManager::removeScreen(int index)
if (movedWindowCount)
QWindowSystemInterface::flushWindowSystemEvents();
}
- delete m_screens.takeAt(index);
+ QWindowsIntegration::instance()->emitDestroyScreen(m_screens.takeAt(index));
}
/*!
@@ -497,4 +497,11 @@ bool QWindowsScreenManager::handleScreenChanges()
return true;
}
+void QWindowsScreenManager::clearScreens()
+{
+ // Delete screens in reverse order to avoid crash in case of multiple screens
+ while (!m_screens.isEmpty())
+ QWindowsIntegration::instance()->emitDestroyScreen(m_screens.takeLast());
+}
+
QT_END_NAMESPACE
diff --git a/src/plugins/platforms/windows/qwindowsscreen.h b/src/plugins/platforms/windows/qwindowsscreen.h
index aa1408358b..924912dbc2 100644
--- a/src/plugins/platforms/windows/qwindowsscreen.h
+++ b/src/plugins/platforms/windows/qwindowsscreen.h
@@ -127,11 +127,7 @@ public:
QWindowsScreenManager();
- inline void clearScreens() {
- // Delete screens in reverse order to avoid crash in case of multiple screens
- while (!m_screens.isEmpty())
- delete m_screens.takeLast();
- }
+ void clearScreens();
bool handleScreenChanges();
bool handleDisplayChange(WPARAM wParam, LPARAM lParam);
diff --git a/src/plugins/platforms/winrt/qwinrtfontdatabase.cpp b/src/plugins/platforms/winrt/qwinrtfontdatabase.cpp
index a41e5f8f38..41bd2e108d 100644
--- a/src/plugins/platforms/winrt/qwinrtfontdatabase.cpp
+++ b/src/plugins/platforms/winrt/qwinrtfontdatabase.cpp
@@ -80,6 +80,11 @@ QFont QWinRTFontDatabase::defaultFont() const
return QFont(QStringLiteral("Segoe UI"));
}
+bool QWinRTFontDatabase::fontsAlwaysScalable() const
+{
+ return true;
+}
+
void QWinRTFontDatabase::populateFontDatabase()
{
ComPtr<IDWriteFactory1> factory;
@@ -204,31 +209,7 @@ void QWinRTFontDatabase::populateFamily(const QString &familyName)
}
}
- QFont::Weight weight;
- switch (font->GetWeight()) {
- case DWRITE_FONT_WEIGHT_THIN:
- case DWRITE_FONT_WEIGHT_EXTRA_LIGHT:
- case DWRITE_FONT_WEIGHT_LIGHT:
- case DWRITE_FONT_WEIGHT_SEMI_LIGHT:
- weight = QFont::Light;
- break;
- default:
- case DWRITE_FONT_WEIGHT_NORMAL:
- case DWRITE_FONT_WEIGHT_MEDIUM:
- weight = QFont::Normal;
- break;
- case DWRITE_FONT_WEIGHT_DEMI_BOLD:
- weight = QFont::DemiBold;
- break;
- case DWRITE_FONT_WEIGHT_BOLD:
- case DWRITE_FONT_WEIGHT_EXTRA_BOLD:
- weight = QFont::Bold;
- break;
- case DWRITE_FONT_WEIGHT_BLACK:
- case DWRITE_FONT_WEIGHT_EXTRA_BLACK:
- weight = QFont::Black;
- break;
- }
+ QFont::Weight weight = QPlatformFontDatabase::weightFromInteger(font->GetWeight());
QFont::Style style;
switch (font->GetStyle()) {
diff --git a/src/plugins/platforms/winrt/qwinrtfontdatabase.h b/src/plugins/platforms/winrt/qwinrtfontdatabase.h
index f0c4714911..cf8ed3b06a 100644
--- a/src/plugins/platforms/winrt/qwinrtfontdatabase.h
+++ b/src/plugins/platforms/winrt/qwinrtfontdatabase.h
@@ -53,9 +53,10 @@ class QWinRTFontDatabase : public QBasicFontDatabase
{
public:
QString fontDir() const;
- QFont defaultFont() const Q_DECL_OVERRIDE;
#ifdef QT_WINRT_USE_DWRITE
~QWinRTFontDatabase();
+ QFont defaultFont() const Q_DECL_OVERRIDE;
+ bool fontsAlwaysScalable() const Q_DECL_OVERRIDE;
void populateFontDatabase() Q_DECL_OVERRIDE;
void populateFamily(const QString &familyName) Q_DECL_OVERRIDE;
QFontEngine *fontEngine(const QFontDef &fontDef, void *handle) Q_DECL_OVERRIDE;
diff --git a/src/plugins/platforms/winrt/qwinrttheme.cpp b/src/plugins/platforms/winrt/qwinrttheme.cpp
index f64b47960a..339a658c3e 100644
--- a/src/plugins/platforms/winrt/qwinrttheme.cpp
+++ b/src/plugins/platforms/winrt/qwinrttheme.cpp
@@ -170,7 +170,7 @@ QWinRTTheme::QWinRTTheme()
bool QWinRTTheme::usePlatformNativeDialog(DialogType type) const
{
static bool useNativeDialogs = qEnvironmentVariableIsSet("QT_USE_WINRT_NATIVE_DIALOGS")
- ? qgetenv("QT_USE_WINRT_NATIVE_DIALOGS").toInt() : true;
+ ? qEnvironmentVariableIntValue("QT_USE_WINRT_NATIVE_DIALOGS") : true;
if (type == FileDialog || type == MessageDialog)
return useNativeDialogs;
diff --git a/src/plugins/platforms/xcb/gl_integrations/gl_integrations.pri b/src/plugins/platforms/xcb/gl_integrations/gl_integrations.pri
new file mode 100644
index 0000000000..56bc126652
--- /dev/null
+++ b/src/plugins/platforms/xcb/gl_integrations/gl_integrations.pri
@@ -0,0 +1,13 @@
+INCLUDEPATH += $$PWD
+
+HEADERS += \
+ $$PWD/qxcbglintegration.h \
+ $$PWD/qxcbglintegrationfactory.h \
+ $$PWD/qxcbglintegrationplugin.h \
+ $$PWD/qxcbnativeinterfacehandler.h
+
+SOURCES += \
+ $$PWD/qxcbglintegrationfactory.cpp \
+ $$PWD/qxcbglintegration.cpp \
+ $$PWD/qxcbnativeinterfacehandler.cpp
+
diff --git a/src/plugins/platforms/xcb/gl_integrations/gl_integrations.pro b/src/plugins/platforms/xcb/gl_integrations/gl_integrations.pro
new file mode 100644
index 0000000000..29fddeabd4
--- /dev/null
+++ b/src/plugins/platforms/xcb/gl_integrations/gl_integrations.pro
@@ -0,0 +1,9 @@
+TEMPLATE = subdirs
+
+contains(QT_CONFIG, egl):contains(QT_CONFIG, egl_x11) {
+ SUBDIRS += xcb_egl
+}
+
+contains(QT_CONFIG, xcb-xlib):!contains(QT_CONFIG, opengles2) {
+ SUBDIRS += xcb_glx
+}
diff --git a/src/plugins/platforms/xcb/gl_integrations/gl_integrations_plugin_base.pri b/src/plugins/platforms/xcb/gl_integrations/gl_integrations_plugin_base.pri
new file mode 100644
index 0000000000..8c60268e0d
--- /dev/null
+++ b/src/plugins/platforms/xcb/gl_integrations/gl_integrations_plugin_base.pri
@@ -0,0 +1,38 @@
+QT += core-private gui-private platformsupport-private xcb_qpa_lib-private
+
+INCLUDEPATH += $$PWD
+INCLUDEPATH += $$PWD/../
+
+# needed by Xcursor ...
+contains(QT_CONFIG, xcb-xlib) {
+ DEFINES += XCB_USE_XLIB
+ contains(QT_CONFIG, xinput2) {
+ DEFINES += XCB_USE_XINPUT2
+ }
+}
+
+# to support custom cursors with depth > 1
+contains(QT_CONFIG, xcb-render) {
+ DEFINES += XCB_USE_RENDER
+}
+
+# build with session management support
+contains(QT_CONFIG, xcb-sm) {
+ DEFINES += XCB_USE_SM
+}
+
+DEFINES += $$QMAKE_DEFINES_XCB
+LIBS += $$QMAKE_LIBS_XCB
+QMAKE_CXXFLAGS += $$QMAKE_CFLAGS_XCB
+
+CONFIG += qpa/genericunixfontdatabase
+
+contains(QT_CONFIG, xcb-qt) {
+ DEFINES += XCB_USE_RENDER
+ XCB_DIR = ../../../3rdparty/xcb
+ INCLUDEPATH += $$XCB_DIR/include $$XCB_DIR/sysinclude
+ LIBS += -lxcb -L$$OUT_PWD/xcb-static -lxcb-static
+} else {
+ LIBS += -lxcb -lxcb-image -lxcb-icccm -lxcb-sync -lxcb-xfixes -lxcb-shm -lxcb-randr -lxcb-shape -lxcb-keysyms
+ !contains(DEFINES, QT_NO_XKB):LIBS += -lxcb-xkb
+}
diff --git a/src/plugins/platforms/xcb/gl_integrations/qxcbglintegration.cpp b/src/plugins/platforms/xcb/gl_integrations/qxcbglintegration.cpp
new file mode 100644
index 0000000000..d864ee1198
--- /dev/null
+++ b/src/plugins/platforms/xcb/gl_integrations/qxcbglintegration.cpp
@@ -0,0 +1,62 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qxcbglintegration.h"
+
+QT_BEGIN_NAMESPACE
+
+Q_LOGGING_CATEGORY(QT_XCB_GLINTEGRATION, "qt.xcb.glintegration")
+
+QXcbGlIntegration::QXcbGlIntegration()
+{
+}
+QXcbGlIntegration::~QXcbGlIntegration()
+{
+}
+
+bool QXcbGlIntegration::handleXcbEvent(xcb_generic_event_t *event, uint responseType)
+{
+ Q_UNUSED(event);
+ Q_UNUSED(responseType);
+ return false;
+}
+
+QT_END_NAMESPACE
diff --git a/src/plugins/platforms/xcb/gl_integrations/qxcbglintegration.h b/src/plugins/platforms/xcb/gl_integrations/qxcbglintegration.h
new file mode 100644
index 0000000000..947ef15162
--- /dev/null
+++ b/src/plugins/platforms/xcb/gl_integrations/qxcbglintegration.h
@@ -0,0 +1,76 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QXCBGLINTEGRATION_H
+
+#include "qxcbexport.h"
+#include "qxcbwindow.h"
+
+#include <QtCore/QLoggingCategory>
+
+QT_BEGIN_NAMESPACE
+
+class QPlatformOffscreenSurface;
+class QOffscreenSurface;
+class QXcbNativeInterfaceHandler;
+
+Q_XCB_EXPORT Q_DECLARE_LOGGING_CATEGORY(QT_XCB_GLINTEGRATION)
+
+class Q_XCB_EXPORT QXcbGlIntegration
+{
+public:
+ QXcbGlIntegration();
+ virtual ~QXcbGlIntegration();
+ virtual bool initialize(QXcbConnection *connection) = 0;
+
+ virtual bool supportsThreadedOpenGL() const { return false; }
+ virtual bool handleXcbEvent(xcb_generic_event_t *event, uint responseType);
+
+ virtual QXcbWindow *createWindow(QWindow *window) const = 0;
+ virtual QPlatformOpenGLContext *createPlatformOpenGLContext(QOpenGLContext *context) const = 0;
+ virtual QPlatformOffscreenSurface *createPlatformOffscreenSurface(QOffscreenSurface *surface) const = 0;
+
+ virtual QXcbNativeInterfaceHandler *nativeInterfaceHandler() const { return Q_NULLPTR; }
+};
+
+QT_END_NAMESPACE
+
+#endif //QXCBGLINTEGRATION_H
diff --git a/src/plugins/platforms/xcb/gl_integrations/qxcbglintegrationfactory.cpp b/src/plugins/platforms/xcb/gl_integrations/qxcbglintegrationfactory.cpp
new file mode 100644
index 0000000000..c4546b990a
--- /dev/null
+++ b/src/plugins/platforms/xcb/gl_integrations/qxcbglintegrationfactory.cpp
@@ -0,0 +1,108 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qxcbglintegrationfactory.h"
+#include "qxcbglintegrationplugin.h"
+
+#include "qxcbglintegrationplugin.h"
+#include "private/qfactoryloader_p.h"
+#include "qguiapplication.h"
+#include "qdir.h"
+
+QT_BEGIN_NAMESPACE
+
+#ifndef QT_NO_LIBRARY
+Q_GLOBAL_STATIC_WITH_ARGS(QFactoryLoader, loader,
+ (QXcbGlIntegrationFactoryInterface_iid, QLatin1String("/xcbglintegrations"), Qt::CaseInsensitive))
+Q_GLOBAL_STATIC_WITH_ARGS(QFactoryLoader, directLoader,
+ (QXcbGlIntegrationFactoryInterface_iid, QLatin1String(""), Qt::CaseInsensitive))
+
+static inline QXcbGlIntegration *loadIntegration(QFactoryLoader *loader, const QString &key)
+{
+ const int index = loader->indexOf(key);
+ if (index != -1) {
+ if (QXcbGlIntegrationPlugin *factory = qobject_cast<QXcbGlIntegrationPlugin *>(loader->instance(index)))
+ if (QXcbGlIntegration *result = factory->create())
+ return result;
+ }
+ return Q_NULLPTR;
+}
+#endif // !QT_NO_LIBRARY
+
+QStringList QXcbGlIntegrationFactory::keys(const QString &pluginPath)
+{
+#ifndef QT_NO_LIBRARY
+ QStringList list;
+ if (!pluginPath.isEmpty()) {
+ QCoreApplication::addLibraryPath(pluginPath);
+ list = directLoader()->keyMap().values();
+ if (!list.isEmpty()) {
+ const QString postFix = QStringLiteral(" (from ")
+ + QDir::toNativeSeparators(pluginPath)
+ + QLatin1Char(')');
+ const QStringList::iterator end = list.end();
+ for (QStringList::iterator it = list.begin(); it != end; ++it)
+ (*it).append(postFix);
+ }
+ }
+ list.append(loader()->keyMap().values());
+ return list;
+#else
+ return QStringList();
+#endif
+}
+
+QXcbGlIntegration *QXcbGlIntegrationFactory::create(const QString &platform, const QString &pluginPath)
+{
+#ifndef QT_NO_LIBRARY
+ // Try loading the plugin from platformPluginPath first:
+ if (!pluginPath.isEmpty()) {
+ QCoreApplication::addLibraryPath(pluginPath);
+ if (QXcbGlIntegration *ret = loadIntegration(directLoader(), platform))
+ return ret;
+ }
+ if (QXcbGlIntegration *ret = loadIntegration(loader(), platform))
+ return ret;
+#endif
+ return Q_NULLPTR;
+}
+
+QT_END_NAMESPACE
diff --git a/src/plugins/platforms/xcb/gl_integrations/qxcbglintegrationfactory.h b/src/plugins/platforms/xcb/gl_integrations/qxcbglintegrationfactory.h
new file mode 100644
index 0000000000..d1fb91dee8
--- /dev/null
+++ b/src/plugins/platforms/xcb/gl_integrations/qxcbglintegrationfactory.h
@@ -0,0 +1,61 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QXCBGLINTEGRATIONFACTORY_H
+#define QXCBGLINTEGRATIONFACTORY_H
+
+#include <QtCore/qstringlist.h>
+
+QT_BEGIN_NAMESPACE
+
+class QXcbGlIntegration;
+
+class QXcbGlIntegrationFactory
+{
+public:
+ static QStringList keys(const QString &pluginPath = QString());
+ static QXcbGlIntegration *create(const QString &name, const QString &platformPluginPath = QString());
+};
+
+QT_END_NAMESPACE
+
+#endif //QXCBGLINTEGRATIONFACTORY_H
+
diff --git a/src/plugins/platforms/xcb/gl_integrations/qxcbglintegrationplugin.h b/src/plugins/platforms/xcb/gl_integrations/qxcbglintegrationplugin.h
new file mode 100644
index 0000000000..ef630a4fbe
--- /dev/null
+++ b/src/plugins/platforms/xcb/gl_integrations/qxcbglintegrationplugin.h
@@ -0,0 +1,67 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QXCBGLINTEGRATIONPLUGIN_H
+#define QXCBGLINTEGRATIONPLUGIN_H
+
+#include "qxcbexport.h"
+#include <QtCore/qplugin.h>
+#include <QtCore/qfactoryinterface.h>
+
+QT_BEGIN_NAMESPACE
+
+#define QXcbGlIntegrationFactoryInterface_iid "org.qt-project.Qt.QPA.Xcb.QXcbGlIntegrationFactoryInterface.5.5"
+
+class QXcbGlIntegration;
+
+class Q_XCB_EXPORT QXcbGlIntegrationPlugin : public QObject
+{
+ Q_OBJECT
+public:
+ explicit QXcbGlIntegrationPlugin(QObject *parent = 0)
+ : QObject(parent)
+ { }
+
+ virtual QXcbGlIntegration *create() = 0;
+};
+QT_END_NAMESPACE
+
+#endif //QXCBGLINTEGRATIONPLUGIN_H
diff --git a/src/plugins/platforms/xcb/gl_integrations/qxcbnativeinterfacehandler.cpp b/src/plugins/platforms/xcb/gl_integrations/qxcbnativeinterfacehandler.cpp
new file mode 100644
index 0000000000..78c6fe0ccb
--- /dev/null
+++ b/src/plugins/platforms/xcb/gl_integrations/qxcbnativeinterfacehandler.cpp
@@ -0,0 +1,93 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qxcbnativeinterfacehandler.h"
+
+#include "qxcbnativeinterface.h"
+
+QT_BEGIN_NAMESPACE
+
+QXcbNativeInterfaceHandler::QXcbNativeInterfaceHandler(QXcbNativeInterface *nativeInterface)
+{
+ nativeInterface->addHandler(this);
+}
+QXcbNativeInterfaceHandler::~QXcbNativeInterfaceHandler()
+{
+ m_native_interface->removeHandler(this);
+}
+
+QPlatformNativeInterface::NativeResourceForIntegrationFunction QXcbNativeInterfaceHandler::nativeResourceFunctionForIntegration(const QByteArray &resource) const
+{
+ Q_UNUSED(resource);
+ return Q_NULLPTR;
+}
+
+QPlatformNativeInterface::NativeResourceForContextFunction QXcbNativeInterfaceHandler::nativeResourceFunctionForContext(const QByteArray &resource) const
+{
+ Q_UNUSED(resource);
+ return Q_NULLPTR;
+}
+
+QPlatformNativeInterface::NativeResourceForScreenFunction QXcbNativeInterfaceHandler::nativeResourceFunctionForScreen(const QByteArray &resource) const
+{
+ Q_UNUSED(resource);
+ return Q_NULLPTR;
+}
+
+QPlatformNativeInterface::NativeResourceForWindowFunction QXcbNativeInterfaceHandler::nativeResourceFunctionForWindow(const QByteArray &resource) const
+{
+ Q_UNUSED(resource);
+ return Q_NULLPTR;
+}
+
+QPlatformNativeInterface::NativeResourceForBackingStoreFunction QXcbNativeInterfaceHandler::nativeResourceFunctionForBackingStore(const QByteArray &resource) const
+{
+ Q_UNUSED(resource);
+ return Q_NULLPTR;
+}
+
+QFunctionPointer QXcbNativeInterfaceHandler::platformFunction(const QByteArray &function) const
+{
+ Q_UNUSED(function);
+ return Q_NULLPTR;
+}
+
+QT_END_NAMESPACE
diff --git a/src/plugins/platforms/xcb/gl_integrations/qxcbnativeinterfacehandler.h b/src/plugins/platforms/xcb/gl_integrations/qxcbnativeinterfacehandler.h
new file mode 100644
index 0000000000..3c239c443d
--- /dev/null
+++ b/src/plugins/platforms/xcb/gl_integrations/qxcbnativeinterfacehandler.h
@@ -0,0 +1,72 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QXCBNATIVEINTERFACEHANDLER_H
+#define QXCBNATIVEINTERFACEHANDLER_H
+
+#include <QtCore/QByteArray>
+#include <QtGui/qpa/qplatformnativeinterface.h>
+
+#include "qxcbexport.h"
+
+QT_BEGIN_NAMESPACE
+
+class QXcbNativeInterface;
+class Q_XCB_EXPORT QXcbNativeInterfaceHandler
+{
+public:
+ QXcbNativeInterfaceHandler(QXcbNativeInterface *nativeInterface);
+ virtual ~QXcbNativeInterfaceHandler();
+
+ virtual QPlatformNativeInterface::NativeResourceForIntegrationFunction nativeResourceFunctionForIntegration(const QByteArray &resource) const;
+ virtual QPlatformNativeInterface::NativeResourceForContextFunction nativeResourceFunctionForContext(const QByteArray &resource) const;
+ virtual QPlatformNativeInterface::NativeResourceForScreenFunction nativeResourceFunctionForScreen(const QByteArray &resource) const;
+ virtual QPlatformNativeInterface::NativeResourceForWindowFunction nativeResourceFunctionForWindow(const QByteArray &resource) const;
+ virtual QPlatformNativeInterface::NativeResourceForBackingStoreFunction nativeResourceFunctionForBackingStore(const QByteArray &resource) const;
+
+ virtual QFunctionPointer platformFunction(const QByteArray &function) const;
+protected:
+ QXcbNativeInterface *m_native_interface;
+};
+
+QT_END_NAMESPACE
+
+#endif //QXCBNATIVEINTERFACEHANDLER_H
diff --git a/src/plugins/platforms/xcb/gl_integrations/xcb_egl/qxcbeglcontext.h b/src/plugins/platforms/xcb/gl_integrations/xcb_egl/qxcbeglcontext.h
new file mode 100644
index 0000000000..0dce728019
--- /dev/null
+++ b/src/plugins/platforms/xcb/gl_integrations/xcb_egl/qxcbeglcontext.h
@@ -0,0 +1,104 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QXCBEGLCONTEXT_H
+#define QXCBEGLCONTEXT_H
+
+#include "qxcbeglwindow.h"
+#include <QtPlatformSupport/private/qeglplatformcontext_p.h>
+#include <QtPlatformSupport/private/qeglpbuffer_p.h>
+#include <QtPlatformHeaders/QEGLNativeContext>
+
+QT_BEGIN_NAMESPACE
+
+//####todo remove the noops (looks like their where there in the initial commit)
+class QXcbEglContext : public QEGLPlatformContext
+{
+public:
+ QXcbEglContext(const QSurfaceFormat &glFormat, QPlatformOpenGLContext *share,
+ EGLDisplay display, QXcbConnection *c, const QVariant &nativeHandle)
+ : QEGLPlatformContext(glFormat, share, display, 0, nativeHandle)
+ , m_connection(c)
+ {
+ Q_XCB_NOOP(m_connection);
+ }
+
+ void swapBuffers(QPlatformSurface *surface)
+ {
+ Q_XCB_NOOP(m_connection);
+ QEGLPlatformContext::swapBuffers(surface);
+ Q_XCB_NOOP(m_connection);
+ }
+
+ bool makeCurrent(QPlatformSurface *surface)
+ {
+ Q_XCB_NOOP(m_connection);
+ bool ret = QEGLPlatformContext::makeCurrent(surface);
+ Q_XCB_NOOP(m_connection);
+ return ret;
+ }
+
+ void doneCurrent()
+ {
+ Q_XCB_NOOP(m_connection);
+ QEGLPlatformContext::doneCurrent();
+ Q_XCB_NOOP(m_connection);
+ }
+
+ EGLSurface eglSurfaceForPlatformSurface(QPlatformSurface *surface)
+ {
+ if (surface->surface()->surfaceClass() == QSurface::Window)
+ return static_cast<QXcbEglWindow *>(surface)->eglSurface();
+ else
+ return static_cast<QEGLPbuffer *>(surface)->pbuffer();
+ }
+
+ QVariant nativeHandle() const {
+ return QVariant::fromValue<QEGLNativeContext>(QEGLNativeContext(eglContext(), eglDisplay()));
+ }
+
+private:
+ QXcbConnection *m_connection;
+};
+
+QT_END_NAMESPACE
+#endif //QXCBEGLCONTEXT_H
+
diff --git a/src/plugins/platforms/xcb/gl_integrations/xcb_egl/qxcbeglinclude.h b/src/plugins/platforms/xcb/gl_integrations/xcb_egl/qxcbeglinclude.h
new file mode 100644
index 0000000000..bcde872423
--- /dev/null
+++ b/src/plugins/platforms/xcb/gl_integrations/xcb_egl/qxcbeglinclude.h
@@ -0,0 +1,57 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QXCBINCLUDE_H
+#define QXCBINCLUDE_H
+
+#include <QtGui/QPalette>
+#include <QtCore/QTextStream>
+#include <QtGui/private/qmath_p.h>
+#include <QtGui/private/qcssparser_p.h>
+#include <QtGui/private/qtextengine_p.h>
+
+#include <EGL/egl.h>
+
+QT_BEGIN_NAMESPACE
+
+QT_END_NAMESPACE
+
+#endif //QXCBINCLUDE_H
diff --git a/src/plugins/platforms/xcb/gl_integrations/xcb_egl/qxcbeglintegration.cpp b/src/plugins/platforms/xcb/gl_integrations/xcb_egl/qxcbeglintegration.cpp
new file mode 100644
index 0000000000..75b35f4fb8
--- /dev/null
+++ b/src/plugins/platforms/xcb/gl_integrations/xcb_egl/qxcbeglintegration.cpp
@@ -0,0 +1,112 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qxcbeglintegration.h"
+
+#include "qxcbeglcontext.h"
+
+#include <QtGui/QOffscreenSurface>
+
+#include "qxcbeglnativeinterfacehandler.h"
+
+QT_BEGIN_NAMESPACE
+
+QXcbEglIntegration::QXcbEglIntegration()
+ : m_connection(Q_NULLPTR)
+ , m_egl_display(EGL_NO_DISPLAY)
+{
+ qCDebug(QT_XCB_GLINTEGRATION) << "Xcb EGL gl-integration created";
+}
+
+QXcbEglIntegration::~QXcbEglIntegration()
+{
+ if (m_egl_display != EGL_NO_DISPLAY)
+ eglTerminate(m_egl_display);
+}
+
+bool QXcbEglIntegration::initialize(QXcbConnection *connection)
+{
+ m_connection = connection;
+
+#ifdef USE_XCB_XLIB
+ Display *dpy = (Display *)m_connection->xlib_display();
+#else
+ EGLNativeDisplayType dpy = EGL_DEFAULT_DISPLAY;
+#endif
+ m_egl_display = eglGetDisplay(dpy);
+
+ EGLint major, minor;
+ bool success = eglInitialize(m_egl_display, &major, &minor);
+ if (!success) {
+ m_egl_display = eglGetDisplay(EGL_DEFAULT_DISPLAY);
+ qCDebug(QT_XCB_GLINTEGRATION) << "Xcb EGL gl-integration retrying with display" << m_egl_display;
+ success = eglInitialize(m_egl_display, &major, &minor);
+ }
+
+ m_native_interface_handler.reset(new QXcbEglNativeInterfaceHandler(connection->nativeInterface()));
+
+ qCDebug(QT_XCB_GLINTEGRATION) << "Xcb EGL gl-integration successfully initialized";
+ return success;
+}
+
+QXcbWindow *QXcbEglIntegration::createWindow(QWindow *window) const
+{
+ return new QXcbEglWindow(window, const_cast<QXcbEglIntegration *>(this));
+}
+
+QPlatformOpenGLContext *QXcbEglIntegration::createPlatformOpenGLContext(QOpenGLContext *context) const
+{
+ QXcbScreen *screen = static_cast<QXcbScreen *>(context->screen()->handle());
+ QXcbEglContext *platformContext = new QXcbEglContext(context->format(),
+ context->shareHandle(),
+ eglDisplay(),
+ screen->connection(),
+ context->nativeHandle());
+ context->setNativeHandle(platformContext->nativeHandle());
+ return platformContext;
+}
+
+QPlatformOffscreenSurface *QXcbEglIntegration::createPlatformOffscreenSurface(QOffscreenSurface *surface) const
+{
+ return new QEGLPbuffer(eglDisplay(), surface->requestedFormat(), surface);
+}
+
+QT_END_NAMESPACE
diff --git a/src/plugins/platforms/xcb/gl_integrations/xcb_egl/qxcbeglintegration.h b/src/plugins/platforms/xcb/gl_integrations/xcb_egl/qxcbeglintegration.h
new file mode 100644
index 0000000000..9f42051804
--- /dev/null
+++ b/src/plugins/platforms/xcb/gl_integrations/xcb_egl/qxcbeglintegration.h
@@ -0,0 +1,83 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QXCBEGLINTEGRATION_H
+#define QXCBEGLINTEGRATION_H
+
+#include "qxcbglintegration.h"
+
+#include "qxcbeglwindow.h"
+
+#include <QtGui/QOpenGLContext>
+#include <QtGui/qpa/qplatformscreen.h>
+#include <QtGui/QScreen>
+
+#include "qxcbscreen.h"
+
+#include "qxcbeglinclude.h"
+
+QT_BEGIN_NAMESPACE
+
+class QXcbEglNativeInterfaceHandler;
+
+class QXcbEglIntegration : public QXcbGlIntegration
+{
+public:
+ QXcbEglIntegration();
+ ~QXcbEglIntegration();
+
+ bool initialize(QXcbConnection *connection) Q_DECL_OVERRIDE;
+
+ QXcbWindow *createWindow(QWindow *window) const Q_DECL_OVERRIDE;
+ QPlatformOpenGLContext *createPlatformOpenGLContext(QOpenGLContext *context) const Q_DECL_OVERRIDE;
+ QPlatformOffscreenSurface *createPlatformOffscreenSurface(QOffscreenSurface *surface) const Q_DECL_OVERRIDE;
+
+ EGLDisplay eglDisplay() const { return m_egl_display; }
+ void *xlib_display() const { return m_connection->xlib_display(); }
+private:
+ QXcbConnection *m_connection;
+ EGLDisplay m_egl_display;
+
+ QScopedPointer<QXcbEglNativeInterfaceHandler> m_native_interface_handler;
+};
+
+QT_END_NAMESPACE
+#endif //QXCBEGLINTEGRATION_H
diff --git a/src/plugins/platforms/xcb/gl_integrations/xcb_egl/qxcbeglmain.cpp b/src/plugins/platforms/xcb/gl_integrations/xcb_egl/qxcbeglmain.cpp
new file mode 100644
index 0000000000..9feb8f31ca
--- /dev/null
+++ b/src/plugins/platforms/xcb/gl_integrations/xcb_egl/qxcbeglmain.cpp
@@ -0,0 +1,62 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qxcbglintegrationplugin.h"
+
+#include "qxcbeglintegration.h"
+
+QT_BEGIN_NAMESPACE
+
+class QXcbEglIntegrationPlugin : public QXcbGlIntegrationPlugin
+{
+ Q_OBJECT
+ Q_PLUGIN_METADATA(IID QXcbGlIntegrationFactoryInterface_iid FILE "xcb_egl.json")
+public:
+ QXcbGlIntegration *create()
+ {
+ return new QXcbEglIntegration();
+ }
+
+};
+
+QT_END_NAMESPACE
+
+#include "qxcbeglmain.moc"
diff --git a/src/plugins/platforms/xcb/gl_integrations/xcb_egl/qxcbeglnativeinterfacehandler.cpp b/src/plugins/platforms/xcb/gl_integrations/xcb_egl/qxcbeglnativeinterfacehandler.cpp
new file mode 100644
index 0000000000..e65a7bb085
--- /dev/null
+++ b/src/plugins/platforms/xcb/gl_integrations/xcb_egl/qxcbeglnativeinterfacehandler.cpp
@@ -0,0 +1,139 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qxcbeglnativeinterfacehandler.h"
+
+#include <QtGui/private/qguiapplication_p.h>
+#include "qxcbeglwindow.h"
+#include "qxcbintegration.h"
+#include "qxcbeglintegration.h"
+#include "qxcbeglcontext.h"
+
+QT_BEGIN_NAMESPACE
+
+static int resourceType(const QByteArray &key)
+{
+ static const QByteArray names[] = { // match QXcbEglNativeInterfaceHandler::ResourceType
+ QByteArrayLiteral("egldisplay"),
+ QByteArrayLiteral("eglcontext"),
+ QByteArrayLiteral("eglconfig")
+ };
+ for (size_t i = 0; i < sizeof(names) / sizeof(names[0]); i++) {
+ if (key == names[i])
+ return i;
+ }
+
+ if (key == QByteArrayLiteral("get_egl_context"))
+ return QXcbEglNativeInterfaceHandler::EglContext;
+
+ return sizeof(names) / sizeof(names[0]);
+}
+
+QXcbEglNativeInterfaceHandler::QXcbEglNativeInterfaceHandler(QXcbNativeInterface *nativeInterface)
+ : QXcbNativeInterfaceHandler(nativeInterface)
+{
+}
+
+QPlatformNativeInterface::NativeResourceForIntegrationFunction QXcbEglNativeInterfaceHandler::nativeResourceFunctionForIntegration(const QByteArray &resource) const{
+ switch (resourceType(resource)) {
+ case EglDisplay:
+ return eglDisplay;
+ default:
+ break;
+ }
+ return Q_NULLPTR;
+}
+
+QPlatformNativeInterface::NativeResourceForContextFunction QXcbEglNativeInterfaceHandler::nativeResourceFunctionForContext(const QByteArray &resource) const
+{
+ switch (resourceType(resource)) {
+ case EglContext:
+ return eglContextForContext;
+ case EglConfig:
+ return eglConfigForContext;
+ default:
+ break;
+ }
+ return Q_NULLPTR;
+}
+
+QPlatformNativeInterface::NativeResourceForWindowFunction QXcbEglNativeInterfaceHandler::nativeResourceFunctionForWindow(const QByteArray &resource) const
+{
+ switch (resourceType(resource)) {
+ case EglDisplay:
+ return eglDisplayForWindow;
+ default:
+ break;
+ }
+ return Q_NULLPTR;
+}
+
+void *QXcbEglNativeInterfaceHandler::eglDisplay()
+{
+ QXcbIntegration *integration = static_cast<QXcbIntegration *>(QGuiApplicationPrivate::platformIntegration());
+ QXcbEglIntegration *eglIntegration = static_cast<QXcbEglIntegration *>(integration->defaultConnection()->glIntegration());
+ return eglIntegration->eglDisplay();
+}
+
+void *QXcbEglNativeInterfaceHandler::eglDisplayForWindow(QWindow *window)
+{
+ Q_ASSERT(window);
+ Q_ASSERT(window->handle());
+ if (window->supportsOpenGL())
+ return static_cast<QXcbEglWindow *>(window->handle())->glIntegration()->eglDisplay();
+ return Q_NULLPTR;
+}
+
+void *QXcbEglNativeInterfaceHandler::eglContextForContext(QOpenGLContext *context)
+{
+ Q_ASSERT(context);
+ Q_ASSERT(context->handle());
+ return static_cast<QXcbEglContext *>(context->handle())->eglContext();
+}
+
+void *QXcbEglNativeInterfaceHandler::eglConfigForContext(QOpenGLContext *context)
+{
+ Q_ASSERT(context);
+ Q_ASSERT(context->handle());
+ return static_cast<QXcbEglContext *>(context->handle())->eglConfig();
+}
+
+QT_END_NAMESPACE
diff --git a/src/plugins/platforms/xcb/gl_integrations/xcb_egl/qxcbeglnativeinterfacehandler.h b/src/plugins/platforms/xcb/gl_integrations/xcb_egl/qxcbeglnativeinterfacehandler.h
new file mode 100644
index 0000000000..7734bcd048
--- /dev/null
+++ b/src/plugins/platforms/xcb/gl_integrations/xcb_egl/qxcbeglnativeinterfacehandler.h
@@ -0,0 +1,72 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QXCBEGLNATIVEINTERFACEHANDLER_H
+#define QXCBEGLNATIVEINTERFACEHANDLER_H
+
+#include "qxcbnativeinterfacehandler.h"
+
+QT_BEGIN_NAMESPACE
+
+class QXcbEglNativeInterfaceHandler : public QXcbNativeInterfaceHandler
+{
+public:
+ enum ResourceType {
+ EglDisplay,
+ EglContext,
+ EglConfig
+ };
+
+ QXcbEglNativeInterfaceHandler(QXcbNativeInterface *nativeInterface);
+
+ QPlatformNativeInterface::NativeResourceForIntegrationFunction nativeResourceFunctionForIntegration(const QByteArray &resource) const Q_DECL_OVERRIDE;
+ QPlatformNativeInterface::NativeResourceForContextFunction nativeResourceFunctionForContext(const QByteArray &resource) const Q_DECL_OVERRIDE;
+ QPlatformNativeInterface::NativeResourceForWindowFunction nativeResourceFunctionForWindow(const QByteArray &resource) const Q_DECL_OVERRIDE;
+private:
+ static void *eglDisplay();
+ static void *eglDisplayForWindow(QWindow *window);
+ static void *eglContextForContext(QOpenGLContext *context);
+ static void *eglConfigForContext(QOpenGLContext *context);
+};
+
+QT_END_NAMESPACE
+
+#endif //QXCBEGLNATIVEINTERFACEHANDLER_H
diff --git a/src/plugins/platforms/xcb/gl_integrations/xcb_egl/qxcbeglwindow.cpp b/src/plugins/platforms/xcb/gl_integrations/xcb_egl/qxcbeglwindow.cpp
new file mode 100644
index 0000000000..61dd8d5069
--- /dev/null
+++ b/src/plugins/platforms/xcb/gl_integrations/xcb_egl/qxcbeglwindow.cpp
@@ -0,0 +1,92 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qxcbeglwindow.h"
+
+#include "qxcbeglintegration.h"
+
+#include <QtPlatformSupport/private/qeglconvenience_p.h>
+#include <QtPlatformSupport/private/qxlibeglintegration_p.h>
+
+QT_BEGIN_NAMESPACE
+
+QXcbEglWindow::QXcbEglWindow(QWindow *window, QXcbEglIntegration *glIntegration)
+ : QXcbWindow(window)
+ , m_glIntegration(glIntegration)
+ , m_config(Q_NULLPTR)
+ , m_surface(EGL_NO_SURFACE)
+{
+}
+
+QXcbEglWindow::~QXcbEglWindow()
+{
+ eglDestroySurface(m_glIntegration->eglDisplay(), m_surface);
+}
+
+void QXcbEglWindow::resolveFormat()
+{
+ m_config = q_configFromGLFormat(m_glIntegration->eglDisplay(), window()->requestedFormat(), true);
+ m_format = q_glFormatFromConfig(m_glIntegration->eglDisplay(), m_config, m_format);
+}
+
+void *QXcbEglWindow::createVisual()
+{
+ Display *xdpy = static_cast<Display *>(m_glIntegration->xlib_display());
+ VisualID id = QXlibEglIntegration::getCompatibleVisualId(xdpy, m_glIntegration->eglDisplay(), m_config);
+
+ XVisualInfo visualInfoTemplate;
+ memset(&visualInfoTemplate, 0, sizeof(XVisualInfo));
+ visualInfoTemplate.visualid = id;
+
+ XVisualInfo *visualInfo;
+ int matchingCount = 0;
+ visualInfo = XGetVisualInfo(xdpy, VisualIDMask, &visualInfoTemplate, &matchingCount);
+ return visualInfo;
+}
+
+void QXcbEglWindow::create()
+{
+ QXcbWindow::create();
+
+ m_surface = eglCreateWindowSurface(m_glIntegration->eglDisplay(), m_config, m_window, 0);
+}
+
+QT_END_NAMESPACE
diff --git a/src/plugins/platforms/xcb/gl_integrations/xcb_egl/qxcbeglwindow.h b/src/plugins/platforms/xcb/gl_integrations/xcb_egl/qxcbeglwindow.h
new file mode 100644
index 0000000000..7d1a4c8e37
--- /dev/null
+++ b/src/plugins/platforms/xcb/gl_integrations/xcb_egl/qxcbeglwindow.h
@@ -0,0 +1,75 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QXCBEGLWINDOW_H
+#define QXCBEGLWINDOW_H
+
+#include "qxcbwindow.h"
+
+#include "qxcbeglinclude.h"
+
+QT_BEGIN_NAMESPACE
+
+class QXcbEglIntegration;
+
+class QXcbEglWindow : public QXcbWindow
+{
+public:
+ QXcbEglWindow(QWindow *window, QXcbEglIntegration *glIntegration);
+ ~QXcbEglWindow();
+
+ EGLSurface eglSurface() const { return m_surface; }
+
+ QXcbEglIntegration *glIntegration() const { return m_glIntegration; }
+
+protected:
+ void create() Q_DECL_OVERRIDE;
+ void resolveFormat() Q_DECL_OVERRIDE;
+ void *createVisual() Q_DECL_OVERRIDE;
+
+private:
+ QXcbEglIntegration *m_glIntegration;
+ EGLConfig m_config;
+ EGLSurface m_surface;
+};
+
+QT_END_NAMESPACE
+#endif //QXCBEGLWINDOW_H
diff --git a/src/plugins/platforms/xcb/gl_integrations/xcb_egl/xcb_egl.json b/src/plugins/platforms/xcb/gl_integrations/xcb_egl/xcb_egl.json
new file mode 100644
index 0000000000..6d6785691d
--- /dev/null
+++ b/src/plugins/platforms/xcb/gl_integrations/xcb_egl/xcb_egl.json
@@ -0,0 +1,3 @@
+{
+ "Keys": [ "xcb_egl" ]
+}
diff --git a/src/plugins/platforms/xcb/gl_integrations/xcb_egl/xcb_egl.pro b/src/plugins/platforms/xcb/gl_integrations/xcb_egl/xcb_egl.pro
new file mode 100644
index 0000000000..082c22821a
--- /dev/null
+++ b/src/plugins/platforms/xcb/gl_integrations/xcb_egl/xcb_egl.pro
@@ -0,0 +1,27 @@
+TARGET = qxcb-egl-integration
+
+PLUGIN_CLASS_NAME = QXcbEglIntegrationPlugin
+PLUGIN_TYPE = xcbglintegrations
+
+load(qt_plugin)
+
+include(../gl_integrations_plugin_base.pri)
+
+CONFIG += egl
+
+DEFINES += SUPPORT_X11
+#should be removed from sources
+DEFINES += XCB_USE_EGL XCB_USE_XLIB
+
+
+HEADERS += \
+ qxcbeglcontext.h \
+ qxcbeglintegration.h \
+ qxcbeglwindow.h \
+ qxcbeglnativeinterfacehandler.h
+
+SOURCES += \
+ qxcbeglintegration.cpp \
+ qxcbeglwindow.cpp \
+ qxcbeglmain.cpp \
+ qxcbeglnativeinterfacehandler.cpp
diff --git a/src/plugins/platforms/xcb/qglxintegration.cpp b/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp
index c0be836bce..c0be836bce 100644
--- a/src/plugins/platforms/xcb/qglxintegration.cpp
+++ b/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp
diff --git a/src/plugins/platforms/xcb/qglxintegration.h b/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.h
index 5777980093..73a17d69b4 100644
--- a/src/plugins/platforms/xcb/qglxintegration.h
+++ b/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.h
@@ -54,14 +54,14 @@ public:
const QVariant &nativeHandle);
~QGLXContext();
- bool makeCurrent(QPlatformSurface *surface);
- void doneCurrent();
- void swapBuffers(QPlatformSurface *surface);
- void (*getProcAddress(const QByteArray &procName)) ();
+ bool makeCurrent(QPlatformSurface *surface) Q_DECL_OVERRIDE;
+ void doneCurrent() Q_DECL_OVERRIDE;
+ void swapBuffers(QPlatformSurface *surface) Q_DECL_OVERRIDE;
+ void (*getProcAddress(const QByteArray &procName)) () Q_DECL_OVERRIDE;
- QSurfaceFormat format() const;
- bool isSharing() const;
- bool isValid() const;
+ QSurfaceFormat format() const Q_DECL_OVERRIDE;
+ bool isSharing() const Q_DECL_OVERRIDE;
+ bool isValid() const Q_DECL_OVERRIDE;
GLXContext glxContext() const { return m_context; }
GLXFBConfig glxConfig() const { return m_config; }
@@ -94,8 +94,8 @@ public:
explicit QGLXPbuffer(QOffscreenSurface *offscreenSurface);
~QGLXPbuffer();
- QSurfaceFormat format() const { return m_format; }
- bool isValid() const { return m_pbuffer != 0; }
+ QSurfaceFormat format() const Q_DECL_OVERRIDE { return m_format; }
+ bool isValid() const Q_DECL_OVERRIDE { return m_pbuffer != 0; }
GLXPbuffer pbuffer() const { return m_pbuffer; }
diff --git a/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qxcbglxintegration.cpp b/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qxcbglxintegration.cpp
new file mode 100644
index 0000000000..a4e603f599
--- /dev/null
+++ b/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qxcbglxintegration.cpp
@@ -0,0 +1,217 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qxcbglxintegration.h"
+
+#if defined(XCB_HAS_XCB_GLX)
+#include <xcb/glx.h>
+#endif
+
+#include "qxcbnativeinterface.h"
+#include "qxcbglxwindow.h"
+#include "qxcbscreen.h"
+#include "qglxintegration.h"
+
+#include <QtGui/QOpenGLContext>
+
+#include "qxcbglxnativeinterfacehandler.h"
+
+#include <X11/Xlibint.h>
+
+QT_BEGIN_NAMESPACE
+
+#if defined(XCB_HAS_XCB_GLX) && XCB_GLX_MAJOR_VERSION == 1 && XCB_GLX_MINOR_VERSION < 4
+
+#define XCB_GLX_BUFFER_SWAP_COMPLETE 1
+
+typedef struct xcb_glx_buffer_swap_complete_event_t {
+ uint8_t response_type;
+ uint8_t pad0;
+ uint16_t sequence;
+ uint16_t event_type;
+ uint8_t pad1[2];
+ xcb_glx_drawable_t drawable;
+ uint32_t ust_hi;
+ uint32_t ust_lo;
+ uint32_t msc_hi;
+ uint32_t msc_lo;
+ uint32_t sbc;
+} xcb_glx_buffer_swap_complete_event_t;
+#endif
+
+#if defined(XCB_USE_XLIB) && defined(XCB_USE_GLX)
+typedef struct {
+ int type;
+ unsigned long serial; /* # of last request processed by server */
+ Bool send_event; /* true if this came from a SendEvent request */
+ Display *display; /* Display the event was read from */
+ Drawable drawable; /* drawable on which event was requested in event mask */
+ int event_type;
+ int64_t ust;
+ int64_t msc;
+ int64_t sbc;
+} QGLXBufferSwapComplete;
+#endif
+
+QXcbGlxIntegration::QXcbGlxIntegration()
+ : m_connection(Q_NULLPTR)
+ , m_glx_first_event(0)
+{
+ qCDebug(QT_XCB_GLINTEGRATION) << "Xcb GLX gl-integration created";
+}
+
+QXcbGlxIntegration::~QXcbGlxIntegration()
+{
+}
+
+bool QXcbGlxIntegration::initialize(QXcbConnection *connection)
+{
+ m_connection = connection;
+#ifdef XCB_HAS_XCB_GLX
+
+ const xcb_query_extension_reply_t *reply = xcb_get_extension_data(m_connection->xcb_connection(), &xcb_glx_id);
+ if (!reply || !reply->present)
+ return false;
+
+ m_glx_first_event = reply->first_event;
+
+ xcb_generic_error_t *error = 0;
+ xcb_glx_query_version_cookie_t xglx_query_cookie = xcb_glx_query_version(m_connection->xcb_connection(),
+ XCB_GLX_MAJOR_VERSION,
+ XCB_GLX_MINOR_VERSION);
+ xcb_glx_query_version_reply_t *xglx_query = xcb_glx_query_version_reply(m_connection->xcb_connection(),
+ xglx_query_cookie, &error);
+ if (!xglx_query || error) {
+ qCWarning(QT_XCB_GLINTEGRATION) << "QXcbConnection: Failed to initialize GLX";
+ free(error);
+ return false;
+ }
+ free(xglx_query);
+#endif
+
+ m_native_interface_handler.reset(new QXcbGlxNativeInterfaceHandler(connection->nativeInterface()));
+
+ qCDebug(QT_XCB_GLINTEGRATION) << "Xcb GLX gl-integration successfully initialized";
+ return true;
+}
+
+bool QXcbGlxIntegration::handleXcbEvent(xcb_generic_event_t *event, uint responseType)
+{
+ bool handled = false;
+ // Check if a custom XEvent constructor was registered in xlib for this event type, and call it discarding the constructed XEvent if any.
+ // XESetWireToEvent might be used by libraries to intercept messages from the X server e.g. the OpenGL lib waiting for DRI2 events.
+ Display *xdisplay = static_cast<Display *>(m_connection->xlib_display());
+ XLockDisplay(xdisplay);
+ bool locked = true;
+ Bool (*proc)(Display*, XEvent*, xEvent*) = XESetWireToEvent(xdisplay, responseType, 0);
+ if (proc) {
+ XESetWireToEvent(xdisplay, responseType, proc);
+ XEvent dummy;
+ event->sequence = LastKnownRequestProcessed(xdisplay);
+ if (proc(xdisplay, &dummy, (xEvent*)event)) {
+#ifdef XCB_HAS_XCB_GLX
+ // DRI2 clients don't receive GLXBufferSwapComplete events on the wire.
+ // Instead the GLX event is synthesized from the DRI2BufferSwapComplete event
+ // by DRI2WireToEvent(). For an application to be able to see the event
+ // we have to convert it to an xcb_glx_buffer_swap_complete_event_t and
+ // pass it to the native event filter.
+ const uint swap_complete = m_glx_first_event + XCB_GLX_BUFFER_SWAP_COMPLETE;
+ QAbstractEventDispatcher* dispatcher = QAbstractEventDispatcher::instance();
+ if (dispatcher && uint(dummy.type) == swap_complete && responseType != swap_complete) {
+ QGLXBufferSwapComplete *xev = reinterpret_cast<QGLXBufferSwapComplete *>(&dummy);
+ xcb_glx_buffer_swap_complete_event_t ev;
+ memset(&ev, 0, sizeof(xcb_glx_buffer_swap_complete_event_t));
+ ev.response_type = xev->type;
+ ev.sequence = xev->serial;
+ ev.event_type = xev->event_type;
+ ev.drawable = xev->drawable;
+ ev.ust_hi = xev->ust >> 32;
+ ev.ust_lo = xev->ust & 0xffffffff;
+ ev.msc_hi = xev->msc >> 32;
+ ev.msc_lo = xev->msc & 0xffffffff;
+ ev.sbc = xev->sbc & 0xffffffff;
+ // Unlock the display before calling the native event filter
+ XUnlockDisplay(xdisplay);
+ locked = false;
+ QByteArray genericEventFilterType = m_connection->nativeInterface()->genericEventFilterType();
+ long result = 0;
+ handled = dispatcher->filterNativeEvent(genericEventFilterType, &ev, &result);
+ }
+#endif
+ }
+ }
+ if (locked)
+ XUnlockDisplay(xdisplay);
+ return handled;
+}
+
+QXcbWindow *QXcbGlxIntegration::createWindow(QWindow *window) const
+{
+ return new QXcbGlxWindow(window);
+}
+
+QPlatformOpenGLContext *QXcbGlxIntegration::createPlatformOpenGLContext(QOpenGLContext *context) const
+{
+ QXcbScreen *screen = static_cast<QXcbScreen *>(context->screen()->handle());
+ QGLXContext *platformContext = new QGLXContext(screen, context->format(),
+ context->shareHandle(), context->nativeHandle());
+ context->setNativeHandle(platformContext->nativeHandle());
+ return platformContext;
+}
+
+QPlatformOffscreenSurface *QXcbGlxIntegration::createPlatformOffscreenSurface(QOffscreenSurface *surface) const
+{
+ static bool vendorChecked = false;
+ static bool glxPbufferUsable = true;
+ if (!vendorChecked) {
+ vendorChecked = true;
+ const char *glxvendor = glXGetClientString(glXGetCurrentDisplay(), GLX_VENDOR);
+ if (glxvendor && !strcmp(glxvendor, "ATI"))
+ glxPbufferUsable = false;
+ }
+ if (glxPbufferUsable)
+ return new QGLXPbuffer(surface);
+ else
+ return 0; // trigger fallback to hidden QWindow
+
+}
+
+QT_END_NAMESPACE
diff --git a/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qxcbglxintegration.h b/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qxcbglxintegration.h
new file mode 100644
index 0000000000..2ef40f9ab6
--- /dev/null
+++ b/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qxcbglxintegration.h
@@ -0,0 +1,72 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QXCBGLXINTEGRATION_H
+#define QXCBGLXINTEGRATION_H
+
+#include "qxcbglintegration.h"
+
+QT_BEGIN_NAMESPACE
+
+class QXcbNativeInterfaceHandler;
+
+class QXcbGlxIntegration : public QXcbGlIntegration
+{
+public:
+ QXcbGlxIntegration();
+ ~QXcbGlxIntegration();
+
+ bool initialize(QXcbConnection *connection) Q_DECL_OVERRIDE;
+ bool handleXcbEvent(xcb_generic_event_t *event, uint responseType) Q_DECL_OVERRIDE;
+
+ QXcbWindow *createWindow(QWindow *window) const Q_DECL_OVERRIDE;
+ QPlatformOpenGLContext *createPlatformOpenGLContext(QOpenGLContext *context) const Q_DECL_OVERRIDE;
+ QPlatformOffscreenSurface *createPlatformOffscreenSurface(QOffscreenSurface *surface) const Q_DECL_OVERRIDE;
+private:
+ QXcbConnection *m_connection;
+ uint32_t m_glx_first_event;
+
+ QScopedPointer<QXcbNativeInterfaceHandler> m_native_interface_handler;
+};
+
+QT_END_NAMESPACE
+
+#endif //QXCBGLXINTEGRATION_H
diff --git a/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qxcbglxmain.cpp b/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qxcbglxmain.cpp
new file mode 100644
index 0000000000..93bb76f92f
--- /dev/null
+++ b/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qxcbglxmain.cpp
@@ -0,0 +1,62 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qxcbglintegrationplugin.h"
+
+#include "qxcbglxintegration.h"
+
+QT_BEGIN_NAMESPACE
+
+class QXcbGlxIntegrationPlugin : public QXcbGlIntegrationPlugin
+{
+ Q_OBJECT
+ Q_PLUGIN_METADATA(IID QXcbGlIntegrationFactoryInterface_iid FILE "xcb_glx.json")
+public:
+ QXcbGlIntegration *create()
+ {
+ return new QXcbGlxIntegration();
+ }
+
+};
+
+QT_END_NAMESPACE
+
+#include "qxcbglxmain.moc"
diff --git a/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qxcbglxnativeinterfacehandler.cpp b/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qxcbglxnativeinterfacehandler.cpp
new file mode 100644
index 0000000000..6cdd4101e0
--- /dev/null
+++ b/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qxcbglxnativeinterfacehandler.cpp
@@ -0,0 +1,95 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qxcbglxnativeinterfacehandler.h"
+
+#include "qglxintegration.h"
+#include <QtGui/QOpenGLContext>
+QT_BEGIN_NAMESPACE
+
+static int resourceType(const QByteArray &key)
+{
+ static const QByteArray names[] = { // match QXcbGlxNativeInterfaceHandler::ResourceType
+ QByteArrayLiteral("glxconfig"),
+ QByteArrayLiteral("glxcontext"),
+ };
+ for (size_t i = 0; i < sizeof(names) / sizeof(names[0]); i++) {
+ if (key == names[i])
+ return i;
+ }
+
+ return sizeof(names) / sizeof(names[0]);
+}
+
+QXcbGlxNativeInterfaceHandler::QXcbGlxNativeInterfaceHandler(QXcbNativeInterface *nativeInterface)
+ : QXcbNativeInterfaceHandler(nativeInterface)
+{
+}
+
+QPlatformNativeInterface::NativeResourceForContextFunction QXcbGlxNativeInterfaceHandler::nativeResourceFunctionForContext(const QByteArray &resource) const
+{
+ switch (resourceType(resource)) {
+ case GLXConfig:
+ return glxConfigForContext;
+ case GLXContext:
+ return glxContextForContext;
+ default:
+ break;
+ }
+ return Q_NULLPTR;
+}
+
+void *QXcbGlxNativeInterfaceHandler::glxContextForContext(QOpenGLContext *context)
+{
+ Q_ASSERT(context);
+ QGLXContext *glxPlatformContext = static_cast<QGLXContext *>(context->handle());
+ return glxPlatformContext->glxContext();
+}
+
+void *QXcbGlxNativeInterfaceHandler::glxConfigForContext(QOpenGLContext *context)
+{
+ Q_ASSERT(context);
+ QGLXContext *glxPlatformContext = static_cast<QGLXContext *>(context->handle());
+ return glxPlatformContext->glxConfig();
+
+}
+
+QT_END_NAMESPACE
diff --git a/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qxcbglxnativeinterfacehandler.h b/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qxcbglxnativeinterfacehandler.h
new file mode 100644
index 0000000000..e9df28ea39
--- /dev/null
+++ b/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qxcbglxnativeinterfacehandler.h
@@ -0,0 +1,67 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QXCBGLXNATIVEINTERFACEHANDLER_H
+#define QXCBGLXNATIVEINTERFACEHANDLER_H
+
+#include "qxcbnativeinterfacehandler.h"
+
+QT_BEGIN_NAMESPACE
+
+class QXcbGlxNativeInterfaceHandler : public QXcbNativeInterfaceHandler
+{
+public:
+ enum ResourceType {
+ GLXConfig,
+ GLXContext,
+ };
+
+ QXcbGlxNativeInterfaceHandler(QXcbNativeInterface *nativeInterface);
+ QPlatformNativeInterface::NativeResourceForContextFunction nativeResourceFunctionForContext(const QByteArray &resource) const Q_DECL_OVERRIDE;
+
+private:
+ static void *glxContextForContext(QOpenGLContext *context);
+ static void *glxConfigForContext(QOpenGLContext *context);
+};
+
+QT_END_NAMESPACE
+
+#endif //QXCBGLXNATIVEINTERFACEHANDLER_H
diff --git a/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qxcbglxwindow.cpp b/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qxcbglxwindow.cpp
new file mode 100644
index 0000000000..8aabde8129
--- /dev/null
+++ b/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qxcbglxwindow.cpp
@@ -0,0 +1,68 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qxcbglxwindow.h"
+
+#include "qxcbscreen.h"
+#include <QtPlatformSupport/private/qglxconvenience_p.h>
+
+QT_BEGIN_NAMESPACE
+
+QXcbGlxWindow::QXcbGlxWindow(QWindow *window)
+ : QXcbWindow(window)
+{
+}
+
+QXcbGlxWindow::~QXcbGlxWindow()
+{
+}
+
+void QXcbGlxWindow::resolveFormat()
+{
+ m_format = window()->requestedFormat(); //qglx_findVisualInfo sets the resovled format
+}
+
+void *QXcbGlxWindow::createVisual()
+{
+ return qglx_findVisualInfo(DISPLAY_FROM_XCB(m_screen), m_screen->screenNumber(), &m_format);
+}
+
+QT_END_NAMESPACE
diff --git a/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qxcbglxwindow.h b/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qxcbglxwindow.h
new file mode 100644
index 0000000000..bb7cd7bef2
--- /dev/null
+++ b/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qxcbglxwindow.h
@@ -0,0 +1,63 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QXCBGLXWINDOW_H
+#define QXCBGLXWINDOW_H
+
+#include "qxcbglxintegration.h"
+#include "qxcbwindow.h"
+
+QT_BEGIN_NAMESPACE
+
+class QXcbGlxWindow : public QXcbWindow
+{
+public:
+ QXcbGlxWindow(QWindow *window);
+ ~QXcbGlxWindow();
+
+protected:
+ void resolveFormat() Q_DECL_OVERRIDE;
+ void *createVisual() Q_DECL_OVERRIDE;
+};
+
+QT_END_NAMESPACE
+
+#endif //QXCBGLXWINDOW_H
diff --git a/src/plugins/platforms/xcb/gl_integrations/xcb_glx/xcb_glx.json b/src/plugins/platforms/xcb/gl_integrations/xcb_glx/xcb_glx.json
new file mode 100644
index 0000000000..1e2641ae7c
--- /dev/null
+++ b/src/plugins/platforms/xcb/gl_integrations/xcb_glx/xcb_glx.json
@@ -0,0 +1,3 @@
+{
+ "Keys": [ "xcb_glx" ]
+}
diff --git a/src/plugins/platforms/xcb/gl_integrations/xcb_glx/xcb_glx.pro b/src/plugins/platforms/xcb/gl_integrations/xcb_glx/xcb_glx.pro
new file mode 100644
index 0000000000..57cd81ec3b
--- /dev/null
+++ b/src/plugins/platforms/xcb/gl_integrations/xcb_glx/xcb_glx.pro
@@ -0,0 +1,31 @@
+TARGET = qxcb-glx-integration
+
+PLUGIN_CLASS_NAME = QXcbGlxIntegrationPlugin
+PLUGIN_TYPE = xcbglintegrations
+
+load(qt_plugin)
+
+include(../gl_integrations_plugin_base.pri)
+
+#should be removed from the sources
+DEFINES += XCB_USE_GLX XCB_USE_XLIB
+
+LIBS += -lxcb
+
+contains(QT_CONFIG, xcb-glx) {
+ DEFINES += XCB_HAS_XCB_GLX
+ LIBS += -lxcb-glx
+}
+
+HEADERS += \
+ qxcbglxintegration.h \
+ qxcbglxwindow.h \
+ qglxintegration.h \
+ qxcbglxnativeinterfacehandler.h
+
+SOURCES += \
+ qxcbglxmain.cpp \
+ qxcbglxintegration.cpp \
+ qxcbglxwindow.cpp \
+ qglxintegration.cpp \
+ qxcbglxnativeinterfacehandler.cpp
diff --git a/src/plugins/platforms/xcb/qxcbbackingstore.cpp b/src/plugins/platforms/xcb/qxcbbackingstore.cpp
index 0b9717759b..5c200b4058 100644
--- a/src/plugins/platforms/xcb/qxcbbackingstore.cpp
+++ b/src/plugins/platforms/xcb/qxcbbackingstore.cpp
@@ -287,10 +287,12 @@ void QXcbBackingStore::beginPaint(const QRegion &region)
}
}
+#ifndef QT_NO_OPENGL
QImage QXcbBackingStore::toImage() const
{
return m_image && m_image->image() ? *m_image->image() : QImage();
}
+#endif
void QXcbBackingStore::flush(QWindow *window, const QRegion &region, const QPoint &offset)
{
diff --git a/src/plugins/platforms/xcb/qxcbbackingstore.h b/src/plugins/platforms/xcb/qxcbbackingstore.h
index 38fb5a7ae4..3a7e124b3f 100644
--- a/src/plugins/platforms/xcb/qxcbbackingstore.h
+++ b/src/plugins/platforms/xcb/qxcbbackingstore.h
@@ -50,18 +50,18 @@ public:
QXcbBackingStore(QWindow *widget);
~QXcbBackingStore();
- QPaintDevice *paintDevice();
- void flush(QWindow *window, const QRegion &region, const QPoint &offset);
+ QPaintDevice *paintDevice() Q_DECL_OVERRIDE;
+ void flush(QWindow *window, const QRegion &region, const QPoint &offset) Q_DECL_OVERRIDE;
#ifndef QT_NO_OPENGL
void composeAndFlush(QWindow *window, const QRegion &region, const QPoint &offset,
QPlatformTextureList *textures, QOpenGLContext *context,
- bool translucentBackground);
+ bool translucentBackground) Q_DECL_OVERRIDE;
+ QImage toImage() const Q_DECL_OVERRIDE;
#endif
- QImage toImage() const;
- void resize(const QSize &size, const QRegion &staticContents);
- bool scroll(const QRegion &area, int dx, int dy);
+ void resize(const QSize &size, const QRegion &staticContents) Q_DECL_OVERRIDE;
+ bool scroll(const QRegion &area, int dx, int dy) Q_DECL_OVERRIDE;
- void beginPaint(const QRegion &);
+ void beginPaint(const QRegion &) Q_DECL_OVERRIDE;
private:
QXcbShmImage *m_image;
diff --git a/src/plugins/platforms/xcb/qxcbclipboard.cpp b/src/plugins/platforms/xcb/qxcbclipboard.cpp
index f56a29d985..61e9860802 100644
--- a/src/plugins/platforms/xcb/qxcbclipboard.cpp
+++ b/src/plugins/platforms/xcb/qxcbclipboard.cpp
@@ -84,7 +84,7 @@ public:
}
protected:
- QStringList formats_sys() const
+ QStringList formats_sys() const Q_DECL_OVERRIDE
{
if (isEmpty())
return QStringList();
@@ -114,13 +114,13 @@ protected:
return formatList;
}
- bool hasFormat_sys(const QString &format) const
+ bool hasFormat_sys(const QString &format) const Q_DECL_OVERRIDE
{
QStringList list = formats();
return list.contains(format);
}
- QVariant retrieveData_sys(const QString &fmt, QVariant::Type requestedType) const
+ QVariant retrieveData_sys(const QString &fmt, QVariant::Type requestedType) const Q_DECL_OVERRIDE
{
if (fmt.isEmpty() || isEmpty())
return QByteArray();
@@ -232,7 +232,7 @@ public:
}
protected:
- void timerEvent(QTimerEvent *ev)
+ void timerEvent(QTimerEvent *ev) Q_DECL_OVERRIDE
{
if (ev->timerId() == abort_timer) {
// this can happen when the X client we are sending data
diff --git a/src/plugins/platforms/xcb/qxcbclipboard.h b/src/plugins/platforms/xcb/qxcbclipboard.h
index e76d502691..5993eea326 100644
--- a/src/plugins/platforms/xcb/qxcbclipboard.h
+++ b/src/plugins/platforms/xcb/qxcbclipboard.h
@@ -53,11 +53,11 @@ public:
QXcbClipboard(QXcbConnection *connection);
~QXcbClipboard();
- QMimeData *mimeData(QClipboard::Mode mode);
- void setMimeData(QMimeData *data, QClipboard::Mode mode);
+ QMimeData *mimeData(QClipboard::Mode mode) Q_DECL_OVERRIDE;
+ void setMimeData(QMimeData *data, QClipboard::Mode mode) Q_DECL_OVERRIDE;
- bool supportsMode(QClipboard::Mode mode) const;
- bool ownsMode(QClipboard::Mode mode) const;
+ bool supportsMode(QClipboard::Mode mode) const Q_DECL_OVERRIDE;
+ bool ownsMode(QClipboard::Mode mode) const Q_DECL_OVERRIDE;
QXcbScreen *screen() const { return m_screen; }
diff --git a/src/plugins/platforms/xcb/qxcbconnection.cpp b/src/plugins/platforms/xcb/qxcbconnection.cpp
index 5510c3b1b4..56b4a9abda 100644
--- a/src/plugins/platforms/xcb/qxcbconnection.cpp
+++ b/src/plugins/platforms/xcb/qxcbconnection.cpp
@@ -44,6 +44,8 @@
#include "qxcbnativeinterface.h"
#include "qxcbintegration.h"
#include "qxcbsystemtraytracker.h"
+#include "qxcbglintegrationfactory.h"
+#include "qxcbglintegration.h"
#include <QSocketNotifier>
#include <QAbstractEventDispatcher>
@@ -74,14 +76,6 @@
#include <xcb/render.h>
#endif
-#if defined(XCB_HAS_XCB_GLX)
-#include <xcb/glx.h>
-#endif
-
-#ifdef XCB_USE_EGL //don't pull in eglext prototypes
-#include <EGL/egl.h>
-#endif
-
QT_BEGIN_NAMESPACE
Q_LOGGING_CATEGORY(lcQpaXInput, "qt.qpa.input")
@@ -121,39 +115,6 @@ static int ioErrorHandler(Display *dpy)
}
#endif
-#if defined(XCB_HAS_XCB_GLX) && XCB_GLX_MAJOR_VERSION == 1 && XCB_GLX_MINOR_VERSION < 4
-
-#define XCB_GLX_BUFFER_SWAP_COMPLETE 1
-
-typedef struct xcb_glx_buffer_swap_complete_event_t {
- uint8_t response_type;
- uint8_t pad0;
- uint16_t sequence;
- uint16_t event_type;
- uint8_t pad1[2];
- xcb_glx_drawable_t drawable;
- uint32_t ust_hi;
- uint32_t ust_lo;
- uint32_t msc_hi;
- uint32_t msc_lo;
- uint32_t sbc;
-} xcb_glx_buffer_swap_complete_event_t;
-#endif
-
-#if defined(XCB_USE_XLIB) && defined(XCB_USE_GLX)
-typedef struct {
- int type;
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
- Drawable drawable; /* drawable on which event was requested in event mask */
- int event_type;
- int64_t ust;
- int64_t msc;
- int64_t sbc;
-} QGLXBufferSwapComplete;
-#endif
-
QXcbScreen* QXcbConnection::findOrCreateScreen(QList<QXcbScreen *>& newScreens,
int screenNumber, xcb_screen_t* xcbScreen, xcb_randr_get_output_info_reply_t *output)
{
@@ -166,7 +127,7 @@ QXcbScreen* QXcbConnection::findOrCreateScreen(QList<QXcbScreen *>& newScreens,
int dotPos = displayName.lastIndexOf('.');
if (dotPos != -1)
displayName.truncate(dotPos);
- name = displayName + QLatin1Char('.') + QString::number(screenNumber);
+ name = QString::fromLocal8Bit(displayName) + QLatin1Char('.') + QString::number(screenNumber);
}
foreach (QXcbScreen* scr, m_screens)
if (scr->name() == name && scr->root() == xcbScreen->root)
@@ -279,11 +240,12 @@ void QXcbConnection::updateScreens()
++xcbScreenNumber;
} // for each xcb screen
+ QXcbIntegration *integration = static_cast<QXcbIntegration *>(QGuiApplicationPrivate::platformIntegration());
// Now activeScreens is the complete set of screens which are active at this time.
// Delete any existing screens which are not in activeScreens
for (int i = m_screens.count() - 1; i >= 0; --i) {
if (!activeScreens.contains(m_screens[i])) {
- delete m_screens[i];
+ integration->destroyScreen(m_screens.at(i));
m_screens.removeAt(i);
}
}
@@ -300,7 +262,7 @@ void QXcbConnection::updateScreens()
// Now that they are in the right order, emit the added signals for new screens only
foreach (QXcbScreen* screen, m_screens)
if (newScreens.contains(screen))
- ((QXcbIntegration*)QGuiApplicationPrivate::platformIntegration())->screenAdded(screen);
+ integration->screenAdded(screen);
}
QXcbConnection::QXcbConnection(QXcbNativeInterface *nativeInterface, bool canGrabServer, const char *displayName)
@@ -309,11 +271,12 @@ QXcbConnection::QXcbConnection(QXcbNativeInterface *nativeInterface, bool canGra
, m_primaryScreenNumber(0)
, m_displayName(displayName ? QByteArray(displayName) : qgetenv("DISPLAY"))
, m_nativeInterface(nativeInterface)
+#ifdef XCB_USE_XLIB
+ , m_xlib_display(0)
+#endif
, xfixes_first_event(0)
, xrandr_first_event(0)
, xkb_first_event(0)
- , glx_first_event(0)
- , has_glx_extension(false)
, has_shape_extension(false)
, has_randr_extension(false)
, has_input_shape(false)
@@ -322,14 +285,10 @@ QXcbConnection::QXcbConnection(QXcbNativeInterface *nativeInterface, bool canGra
, m_buttons(0)
, m_focusWindow(0)
, m_systemTrayTracker(0)
+ , m_glIntegration(Q_NULLPTR)
{
-#ifdef XCB_USE_EGL
- EGLNativeDisplayType dpy = EGL_DEFAULT_DISPLAY;
-#elif defined(XCB_USE_XLIB)
- Display *dpy;
-#endif
#ifdef XCB_USE_XLIB
- dpy = XOpenDisplay(m_displayName.constData());
+ Display *dpy = XOpenDisplay(m_displayName.constData());
if (dpy) {
m_primaryScreenNumber = DefaultScreen(dpy);
m_connection = XGetXCBConnection(dpy);
@@ -345,12 +304,6 @@ QXcbConnection::QXcbConnection(QXcbNativeInterface *nativeInterface, bool canGra
if (!m_connection || xcb_connection_has_error(m_connection))
qFatal("QXcbConnection: Could not connect to display %s", m_displayName.constData());
-#ifdef XCB_USE_EGL
- EGLDisplay eglDisplay = eglGetDisplay(dpy);
- m_egl_display = eglDisplay;
- EGLint major, minor;
- m_has_egl = eglInitialize(eglDisplay, &major, &minor);
-#endif //XCB_USE_EGL
m_reader = new QXcbEventReader(this);
m_reader->start();
@@ -363,9 +316,6 @@ QXcbConnection::QXcbConnection(QXcbNativeInterface *nativeInterface, bool canGra
#ifdef XCB_USE_RENDER
&xcb_render_id,
#endif
-#ifdef XCB_HAS_XCB_GLX
- &xcb_glx_id,
-#endif
0
};
@@ -382,7 +332,6 @@ QXcbConnection::QXcbConnection(QXcbNativeInterface *nativeInterface, bool canGra
initializeXRandr();
updateScreens();
- initializeGLX();
initializeXFixes();
initializeXRender();
m_xi2Enabled = false;
@@ -405,6 +354,27 @@ QXcbConnection::QXcbConnection(QXcbNativeInterface *nativeInterface, bool canGra
if (!m_startupId.isNull())
qunsetenv("DESKTOP_STARTUP_ID");
+
+ QStringList glIntegrationNames;
+ glIntegrationNames << QStringLiteral("xcb_glx") << QStringLiteral("xcb_egl");
+ QString glIntegrationName = QString::fromLocal8Bit(qgetenv("QT_XCB_GL_INTEGRATION"));
+ if (glIntegrationName.size()) {
+ glIntegrationNames.removeAll(glIntegrationName);
+ glIntegrationNames.prepend(glIntegrationName);
+ }
+
+ qCDebug(QT_XCB_GLINTEGRATION) << "Choosing xcb gl-integration based on following priority\n" << glIntegrationNames;
+ for (int i = 0; i < glIntegrationNames.size() && !m_glIntegration; i++) {
+ m_glIntegration = QXcbGlIntegrationFactory::create(glIntegrationNames.at(i));
+ if (m_glIntegration && !m_glIntegration->initialize(this)) {
+ qCDebug(QT_XCB_GLINTEGRATION) << "Failed to initialize xcb gl-integration" << glIntegrationNames.at(i);
+ delete m_glIntegration;
+ m_glIntegration = Q_NULLPTR;
+ }
+ }
+ if (!m_glIntegration)
+ qCDebug(QT_XCB_GLINTEGRATION) << "Failed to create xcb gl-integration";
+
sync();
if (qEnvironmentVariableIsEmpty("QT_IM_MODULE"))
@@ -431,14 +401,10 @@ QXcbConnection::~QXcbConnection()
delete m_reader;
+ QXcbIntegration *integration = static_cast<QXcbIntegration *>(QGuiApplicationPrivate::platformIntegration());
// Delete screens in reverse order to avoid crash in case of multiple screens
while (!m_screens.isEmpty())
- delete m_screens.takeLast();
-
-#ifdef XCB_USE_EGL
- if (m_has_egl)
- eglTerminate(m_egl_display);
-#endif //XCB_USE_EGL
+ integration->destroyScreen(m_screens.takeLast());
#ifdef XCB_USE_XLIB
XCloseDisplay((Display *)m_xlib_display);
@@ -990,51 +956,8 @@ void QXcbConnection::handleXcbEvent(xcb_generic_event_t *event)
}
}
-#ifdef XCB_USE_XLIB
- if (!handled) {
- // Check if a custom XEvent constructor was registered in xlib for this event type, and call it discarding the constructed XEvent if any.
- // XESetWireToEvent might be used by libraries to intercept messages from the X server e.g. the OpenGL lib waiting for DRI2 events.
- Display *xdisplay = (Display *)m_xlib_display;
- XLockDisplay(xdisplay);
- bool locked = true;
- Bool (*proc)(Display*, XEvent*, xEvent*) = XESetWireToEvent(xdisplay, response_type, 0);
- if (proc) {
- XESetWireToEvent(xdisplay, response_type, proc);
- XEvent dummy;
- event->sequence = LastKnownRequestProcessed(m_xlib_display);
- if (proc(xdisplay, &dummy, (xEvent*)event)) {
-#if defined(XCB_USE_GLX) && defined(XCB_HAS_XCB_GLX)
- // DRI2 clients don't receive GLXBufferSwapComplete events on the wire.
- // Instead the GLX event is synthesized from the DRI2BufferSwapComplete event
- // by DRI2WireToEvent(). For an application to be able to see the event
- // we have to convert it to an xcb_glx_buffer_swap_complete_event_t and
- // pass it to the native event filter.
- const uint swap_complete = glx_first_event + XCB_GLX_BUFFER_SWAP_COMPLETE;
- if (dispatcher && has_glx_extension && uint(dummy.type) == swap_complete && response_type != swap_complete) {
- QGLXBufferSwapComplete *xev = reinterpret_cast<QGLXBufferSwapComplete *>(&dummy);
- xcb_glx_buffer_swap_complete_event_t ev;
- memset(&ev, 0, sizeof(xcb_glx_buffer_swap_complete_event_t));
- ev.response_type = xev->type;
- ev.sequence = xev->serial;
- ev.event_type = xev->event_type;
- ev.drawable = xev->drawable;
- ev.ust_hi = xev->ust >> 32;
- ev.ust_lo = xev->ust & 0xffffffff;
- ev.msc_hi = xev->msc >> 32;
- ev.msc_lo = xev->msc & 0xffffffff;
- ev.sbc = xev->sbc & 0xffffffff;
- // Unlock the display before calling the native event filter
- XUnlockDisplay(xdisplay);
- locked = false;
- handled = dispatcher->filterNativeEvent(m_nativeInterface->genericEventFilterType(), &ev, &result);
- }
-#endif
- }
- }
- if (locked)
- XUnlockDisplay(xdisplay);
- }
-#endif
+ if (!handled)
+ handled = m_glIntegration->handleXcbEvent(event, response_type);
if (handled)
printXcbEvent("Handled XCB event", event);
@@ -1232,6 +1155,13 @@ xcb_window_t QXcbConnection::rootWindow()
return primaryScreen()->root();
}
+#ifdef XCB_USE_XLIB
+void *QXcbConnection::xlib_display() const
+{
+ return m_xlib_display;
+}
+#endif
+
void QXcbConnection::processXcbEvents()
{
int connection_error = xcb_connection_has_error(xcb_connection());
@@ -1674,34 +1604,6 @@ void QXcbConnection::initializeXRender()
#endif
}
-void QXcbConnection::initializeGLX()
-{
-#ifdef XCB_HAS_XCB_GLX
- const xcb_query_extension_reply_t *reply = xcb_get_extension_data(m_connection, &xcb_glx_id);
- if (!reply || !reply->present)
- return;
-
- has_glx_extension = true;
- glx_first_event = reply->first_event;
-
- xcb_generic_error_t *error = 0;
- xcb_glx_query_version_cookie_t xglx_query_cookie = xcb_glx_query_version(m_connection,
- XCB_GLX_MAJOR_VERSION,
- XCB_GLX_MINOR_VERSION);
- xcb_glx_query_version_reply_t *xglx_query = xcb_glx_query_version_reply(m_connection,
- xglx_query_cookie, &error);
- if (!xglx_query || error) {
- qWarning("QXcbConnection: Failed to initialize GLX");
- free(error);
- has_glx_extension = false;
- }
- free(xglx_query);
-#else
- // no way to check, assume GLX is present
- has_glx_extension = true;
-#endif
-}
-
void QXcbConnection::initializeXRandr()
{
const xcb_query_extension_reply_t *reply = xcb_get_extension_data(m_connection, &xcb_randr_id);
@@ -1811,13 +1713,6 @@ void QXcbConnection::initializeXKB()
#endif
}
-#if defined(XCB_USE_EGL)
-bool QXcbConnection::hasEgl() const
-{
- return m_has_egl;
-}
-#endif // defined(XCB_USE_EGL)
-
#if defined(XCB_USE_XINPUT2)
static int xi2ValuatorOffset(unsigned char *maskPtr, int maskLen, int number)
{
diff --git a/src/plugins/platforms/xcb/qxcbconnection.h b/src/plugins/platforms/xcb/qxcbconnection.h
index 7286b6b89b..18fc8113e1 100644
--- a/src/plugins/platforms/xcb/qxcbconnection.h
+++ b/src/plugins/platforms/xcb/qxcbconnection.h
@@ -36,6 +36,7 @@
#include <xcb/xcb.h>
+#include "qxcbexport.h"
#include <QHash>
#include <QList>
#include <QMutex>
@@ -85,6 +86,7 @@ class QXcbClipboard;
class QXcbWMSupport;
class QXcbNativeInterface;
class QXcbSystemTrayTracker;
+class QXcbGlIntegration;
namespace QXcbAtom {
enum Atom {
@@ -295,7 +297,7 @@ class QXcbEventReader : public QThread
public:
QXcbEventReader(QXcbConnection *connection);
- void run();
+ void run() Q_DECL_OVERRIDE;
QXcbEventArray *lock();
void unlock();
@@ -360,7 +362,7 @@ private:
};
class QAbstractEventDispatcher;
-class QXcbConnection : public QObject
+class Q_XCB_EXPORT QXcbConnection : public QObject
{
Q_OBJECT
public:
@@ -395,15 +397,9 @@ public:
QXcbWMSupport *wmSupport() const { return m_wmSupport.data(); }
xcb_window_t rootWindow();
#ifdef XCB_USE_XLIB
- void *xlib_display() const { return m_xlib_display; }
+ void *xlib_display() const;
#endif
-#ifdef XCB_USE_EGL
- bool hasEgl() const;
-#endif
-#if defined(XCB_USE_EGL)
- void *egl_display() const { return m_egl_display; }
-#endif
#if defined(XCB_USE_XINPUT2)
void xi2Select(xcb_window_t window);
#endif
@@ -437,7 +433,6 @@ public:
inline xcb_timestamp_t netWmUserTime() const { return m_netWmUserTime; }
inline void setNetWmUserTime(xcb_timestamp_t t) { if (t > m_netWmUserTime) m_netWmUserTime = t; }
- bool hasGLX() const { return has_glx_extension; }
bool hasXFixes() const { return xfixes_first_event > 0; }
bool hasXShape() const { return has_shape_extension; }
bool hasXRandr() const { return has_randr_extension; }
@@ -446,6 +441,7 @@ public:
bool hasXKB() const { return has_xkb; }
bool supportsThreadedRendering() const { return m_reader->isRunning(); }
+ bool threadedEventHandling() const { return m_reader->isRunning(); }
xcb_timestamp_t getTimestamp();
@@ -472,6 +468,8 @@ public:
QXcbEventReader *eventReader() const { return m_reader; }
bool canGrab() const { return m_canGrabServer; }
+
+ QXcbGlIntegration *glIntegration() const { return m_glIntegration; }
protected:
bool event(QEvent *e) Q_DECL_OVERRIDE;
@@ -484,7 +482,6 @@ private slots:
private:
void initializeAllAtoms();
void sendConnectionEvent(QXcbAtom::Atom atom, uint id = 0);
- void initializeGLX();
void initializeXFixes();
void initializeXRender();
void initializeXRandr();
@@ -580,10 +577,6 @@ private:
QHash<int, QWindowSystemInterface::TouchPoint> m_touchPoints;
QHash<int, XInput2TouchDeviceData*> m_touchDevices;
#endif
-#if defined(XCB_USE_EGL)
- void *m_egl_display;
- bool m_has_egl;
-#endif
#ifdef Q_XCB_DEBUG
struct CallInfo {
int sequence;
@@ -604,9 +597,7 @@ private:
uint32_t xfixes_first_event;
uint32_t xrandr_first_event;
uint32_t xkb_first_event;
- uint32_t glx_first_event;
- bool has_glx_extension;
bool has_shape_extension;
bool has_randr_extension;
bool has_input_shape;
@@ -619,6 +610,7 @@ private:
QByteArray m_startupId;
QXcbSystemTrayTracker *m_systemTrayTracker;
+ QXcbGlIntegration *m_glIntegration;
friend class QXcbEventReader;
};
@@ -668,11 +660,6 @@ cookie_t q_xcb_call_template(const cookie_t &cookie, QXcbConnection *connection,
#define Q_XCB_NOOP(c)
#endif
-
-#if defined(XCB_USE_EGL)
-#define EGL_DISPLAY_FROM_XCB(object) ((EGLDisplay)(object->connection()->egl_display()))
-#endif
-
QT_END_NAMESPACE
#endif
diff --git a/src/plugins/platforms/xcb/qxcbcursor.h b/src/plugins/platforms/xcb/qxcbcursor.h
index 8ed23154ed..8f03f01747 100644
--- a/src/plugins/platforms/xcb/qxcbcursor.h
+++ b/src/plugins/platforms/xcb/qxcbcursor.h
@@ -70,10 +70,10 @@ public:
QXcbCursor(QXcbConnection *conn, QXcbScreen *screen);
~QXcbCursor();
#ifndef QT_NO_CURSOR
- void changeCursor(QCursor *cursor, QWindow *widget);
+ void changeCursor(QCursor *cursor, QWindow *widget) Q_DECL_OVERRIDE;
#endif
- QPoint pos() const;
- void setPos(const QPoint &pos);
+ QPoint pos() const Q_DECL_OVERRIDE;
+ void setPos(const QPoint &pos) Q_DECL_OVERRIDE;
static void queryPointer(QXcbConnection *c, xcb_window_t *rootWin, QPoint *pos, int *keybMask = 0);
diff --git a/src/plugins/platforms/xcb/qxcbdrag.cpp b/src/plugins/platforms/xcb/qxcbdrag.cpp
index 7037e102e2..5de5b6bb55 100644
--- a/src/plugins/platforms/xcb/qxcbdrag.cpp
+++ b/src/plugins/platforms/xcb/qxcbdrag.cpp
@@ -117,9 +117,9 @@ public:
~QXcbDropData();
protected:
- bool hasFormat_sys(const QString &mimeType) const;
- QStringList formats_sys() const;
- QVariant retrieveData_sys(const QString &mimeType, QVariant::Type type) const;
+ bool hasFormat_sys(const QString &mimeType) const Q_DECL_OVERRIDE;
+ QStringList formats_sys() const Q_DECL_OVERRIDE;
+ QVariant retrieveData_sys(const QString &mimeType, QVariant::Type type) const Q_DECL_OVERRIDE;
QVariant xdndObtainData(const QByteArray &format, QVariant::Type requestedType) const;
diff --git a/src/plugins/platforms/xcb/qxcbdrag.h b/src/plugins/platforms/xcb/qxcbdrag.h
index e273492837..1bca9a036f 100644
--- a/src/plugins/platforms/xcb/qxcbdrag.h
+++ b/src/plugins/platforms/xcb/qxcbdrag.h
@@ -68,14 +68,14 @@ public:
QXcbDrag(QXcbConnection *c);
~QXcbDrag();
- virtual QMimeData *platformDropData();
+ virtual QMimeData *platformDropData() Q_DECL_OVERRIDE;
- void startDrag();
- void cancel();
- void move(const QMouseEvent *me);
- void drop(const QMouseEvent *me);
- void endDrag();
+ void startDrag() Q_DECL_OVERRIDE;
+ void cancel() Q_DECL_OVERRIDE;
+ void move(const QMouseEvent *me) Q_DECL_OVERRIDE;
+ void drop(const QMouseEvent *me) Q_DECL_OVERRIDE;
+ void endDrag() Q_DECL_OVERRIDE;
void handleEnter(QWindow *window, const xcb_client_message_event_t *event);
void handlePosition(QWindow *w, const xcb_client_message_event_t *event);
@@ -92,7 +92,7 @@ public:
xcb_timestamp_t targetTime() { return target_time; }
protected:
- void timerEvent(QTimerEvent* e);
+ void timerEvent(QTimerEvent* e) Q_DECL_OVERRIDE;
private:
friend class QXcbDropData;
diff --git a/src/plugins/platforms/xcb/qxcbeglsurface.h b/src/plugins/platforms/xcb/qxcbexport.h
index b03a029094..caf5124133 100644
--- a/src/plugins/platforms/xcb/qxcbeglsurface.h
+++ b/src/plugins/platforms/xcb/qxcbexport.h
@@ -31,34 +31,19 @@
**
****************************************************************************/
-#ifndef QXCBEGLSURFACE_H
-#define QXCBEGLSURFACE_H
+#ifndef QXCBEXPORT_H
+#define QXCBEXPORT_H
-#include <EGL/egl.h>
+#include <QtCore/qglobal.h>
QT_BEGIN_NAMESPACE
-class QXcbEGLSurface
-{
-public:
- QXcbEGLSurface(EGLDisplay display, EGLSurface surface)
- : m_display(display)
- , m_surface(surface)
- {
- }
-
- ~QXcbEGLSurface()
- {
- eglDestroySurface(m_display, m_surface);
- }
-
- EGLSurface surface() const { return m_surface; }
-
-private:
- EGLDisplay m_display;
- EGLSurface m_surface;
-};
+# if defined(QT_BUILD_XCB_PLUGIN)
+# define Q_XCB_EXPORT Q_DECL_EXPORT
+# else
+# define Q_XCB_EXPORT Q_DECL_IMPORT
+# endif
QT_END_NAMESPACE
+#endif //QXCBEXPORT_H
-#endif
diff --git a/src/plugins/platforms/xcb/qxcbintegration.cpp b/src/plugins/platforms/xcb/qxcbintegration.cpp
index f0c4a7f691..352d3255e4 100644
--- a/src/plugins/platforms/xcb/qxcbintegration.cpp
+++ b/src/plugins/platforms/xcb/qxcbintegration.cpp
@@ -41,6 +41,7 @@
#include "qxcbnativeinterface.h"
#include "qxcbclipboard.h"
#include "qxcbdrag.h"
+#include "qxcbglintegration.h"
#ifndef QT_NO_SESSIONMANAGER
#include "qxcbsessionmanager.h"
@@ -69,15 +70,6 @@
#include <private/qgenericunixthemes_p.h>
#include <qpa/qplatforminputcontext.h>
-#if defined(XCB_USE_GLX)
-#include "qglxintegration.h"
-#elif defined(XCB_USE_EGL)
-#include "qxcbeglsurface.h"
-#include <QtPlatformSupport/private/qeglplatformcontext_p.h>
-#include <QtPlatformSupport/private/qeglpbuffer_p.h>
-#include <QtPlatformHeaders/QEGLNativeContext>
-#endif
-
#include <QtGui/QOpenGLContext>
#include <QtGui/QScreen>
#include <QtGui/QOffscreenSurface>
@@ -177,7 +169,7 @@ QXcbIntegration::QXcbIntegration(const QStringList &parameters, int &argc, char
#ifdef Q_XCB_DEBUG
qDebug() << "QXcbIntegration: Connecting to additional display: " << parameters.at(i) << parameters.at(i+1);
#endif
- QString display = parameters.at(i) + ':' + parameters.at(i+1);
+ QString display = parameters.at(i) + QLatin1Char(':') + parameters.at(i+1);
m_connections << new QXcbConnection(m_nativeInterface.data(), display.toLatin1().constData());
}
@@ -191,82 +183,32 @@ QXcbIntegration::~QXcbIntegration()
QPlatformWindow *QXcbIntegration::createPlatformWindow(QWindow *window) const
{
- return new QXcbWindow(window);
-}
-
-#if defined(XCB_USE_EGL)
-class QEGLXcbPlatformContext : public QEGLPlatformContext
-{
-public:
- QEGLXcbPlatformContext(const QSurfaceFormat &glFormat, QPlatformOpenGLContext *share,
- EGLDisplay display, QXcbConnection *c, const QVariant &nativeHandle)
- : QEGLPlatformContext(glFormat, share, display, 0, nativeHandle)
- , m_connection(c)
- {
- Q_XCB_NOOP(m_connection);
- }
-
- void swapBuffers(QPlatformSurface *surface)
- {
- Q_XCB_NOOP(m_connection);
- QEGLPlatformContext::swapBuffers(surface);
- Q_XCB_NOOP(m_connection);
- }
-
- bool makeCurrent(QPlatformSurface *surface)
- {
- Q_XCB_NOOP(m_connection);
- bool ret = QEGLPlatformContext::makeCurrent(surface);
- Q_XCB_NOOP(m_connection);
- return ret;
- }
-
- void doneCurrent()
- {
- Q_XCB_NOOP(m_connection);
- QEGLPlatformContext::doneCurrent();
- Q_XCB_NOOP(m_connection);
- }
-
- EGLSurface eglSurfaceForPlatformSurface(QPlatformSurface *surface)
- {
- if (surface->surface()->surfaceClass() == QSurface::Window)
- return static_cast<QXcbWindow *>(surface)->eglSurface()->surface();
- else
- return static_cast<QEGLPbuffer *>(surface)->pbuffer();
- }
-
- QVariant nativeHandle() const {
- return QVariant::fromValue<QEGLNativeContext>(QEGLNativeContext(eglContext(), eglDisplay()));
+ if (window->type() != Qt::Desktop) {
+ QXcbScreen *screen = static_cast<QXcbScreen *>(window->screen()->handle());
+ QXcbGlIntegration *glIntegration = screen->connection()->glIntegration();
+ if (glIntegration) {
+ QXcbWindow *xcbWindow = glIntegration->createWindow(window);
+ xcbWindow->create();
+ return xcbWindow;
+ }
}
-private:
- QXcbConnection *m_connection;
-};
-#endif
+ Q_ASSERT(window->type() == Qt::Desktop || !window->supportsOpenGL());
+ QXcbWindow *xcbWindow = new QXcbWindow(window);
+ xcbWindow->create();
+ return xcbWindow;
+}
#ifndef QT_NO_OPENGL
QPlatformOpenGLContext *QXcbIntegration::createPlatformOpenGLContext(QOpenGLContext *context) const
{
QXcbScreen *screen = static_cast<QXcbScreen *>(context->screen()->handle());
-#if defined(XCB_USE_GLX)
- QGLXContext *platformContext = new QGLXContext(screen, context->format(),
- context->shareHandle(), context->nativeHandle());
- context->setNativeHandle(platformContext->nativeHandle());
- return platformContext;
-#elif defined(XCB_USE_EGL)
- QEGLXcbPlatformContext *platformContext = new QEGLXcbPlatformContext(context->format(),
- context->shareHandle(),
- screen->connection()->egl_display(),
- screen->connection(),
- context->nativeHandle());
- context->setNativeHandle(platformContext->nativeHandle());
- return platformContext;
-#else
- Q_UNUSED(screen);
- qWarning("QXcbIntegration: Cannot create platform OpenGL context, neither GLX nor EGL are enabled");
- return 0;
-#endif
+ QXcbGlIntegration *glIntegration = screen->connection()->glIntegration();
+ if (!glIntegration) {
+ qWarning("QXcbIntegration: Cannot create platform OpenGL context, neither GLX nor EGL are enabled");
+ return Q_NULLPTR;
+ }
+ return glIntegration->createPlatformOpenGLContext(context);
}
#endif
@@ -277,45 +219,23 @@ QPlatformBackingStore *QXcbIntegration::createPlatformBackingStore(QWindow *wind
QPlatformOffscreenSurface *QXcbIntegration::createPlatformOffscreenSurface(QOffscreenSurface *surface) const
{
-#if defined(XCB_USE_GLX)
- static bool vendorChecked = false;
- static bool glxPbufferUsable = true;
- if (!vendorChecked) {
- vendorChecked = true;
- const char *glxvendor = glXGetClientString(glXGetCurrentDisplay(), GLX_VENDOR);
- if (glxvendor && !strcmp(glxvendor, "ATI"))
- glxPbufferUsable = false;
- }
- if (glxPbufferUsable)
- return new QGLXPbuffer(surface);
- else
- return 0; // trigger fallback to hidden QWindow
-#elif defined(XCB_USE_EGL)
QXcbScreen *screen = static_cast<QXcbScreen *>(surface->screen()->handle());
- return new QEGLPbuffer(screen->connection()->egl_display(), surface->requestedFormat(), surface);
-#else
- Q_UNUSED(surface);
- qWarning("QXcbIntegration: Cannot create platform offscreen surface, neither GLX nor EGL are enabled");
- return 0;
-#endif
+ QXcbGlIntegration *glIntegration = screen->connection()->glIntegration();
+ if (!glIntegration) {
+ qWarning("QXcbIntegration: Cannot create platform offscreen surface, neither GLX nor EGL are enabled");
+ return Q_NULLPTR;
+ }
+ return glIntegration->createPlatformOffscreenSurface(surface);
}
bool QXcbIntegration::hasCapability(QPlatformIntegration::Capability cap) const
{
switch (cap) {
case ThreadedPixmaps: return true;
-#if defined(XCB_USE_GLX)
- case OpenGL: return m_connections.at(0)->hasGLX();
-#elif defined(XCB_USE_EGL)
- case OpenGL: return true;
-#else
- case OpenGL: return false;
-#endif
-#if defined(XCB_USE_GLX)
- case ThreadedOpenGL: return m_connections.at(0)->supportsThreadedRendering() && QGLXContext::supportsThreading();
-#else
- case ThreadedOpenGL: return m_connections.at(0)->supportsThreadedRendering();
-#endif
+ case OpenGL: return m_connections.first()->glIntegration();
+ case ThreadedOpenGL: return m_connections.at(0)->threadedEventHandling()
+ && m_connections.at(0)->glIntegration()
+ && m_connections.at(0)->glIntegration()->supportsThreadedOpenGL();
case WindowMasks: return true;
case MultipleWindows: return true;
case ForeignWindows: return true;
diff --git a/src/plugins/platforms/xcb/qxcbintegration.h b/src/plugins/platforms/xcb/qxcbintegration.h
index db6ad541ea..150e3d57cb 100644
--- a/src/plugins/platforms/xcb/qxcbintegration.h
+++ b/src/plugins/platforms/xcb/qxcbintegration.h
@@ -37,6 +37,8 @@
#include <qpa/qplatformintegration.h>
#include <qpa/qplatformscreen.h>
+#include "qxcbexport.h"
+
QT_BEGIN_NAMESPACE
class QXcbConnection;
@@ -44,51 +46,51 @@ class QAbstractEventDispatcher;
class QXcbNativeInterface;
class QXcbScreen;
-class QXcbIntegration : public QPlatformIntegration
+class Q_XCB_EXPORT QXcbIntegration : public QPlatformIntegration
{
public:
QXcbIntegration(const QStringList &parameters, int &argc, char **argv);
~QXcbIntegration();
- QPlatformWindow *createPlatformWindow(QWindow *window) const;
+ QPlatformWindow *createPlatformWindow(QWindow *window) const Q_DECL_OVERRIDE;
#ifndef QT_NO_OPENGL
- QPlatformOpenGLContext *createPlatformOpenGLContext(QOpenGLContext *context) const;
+ QPlatformOpenGLContext *createPlatformOpenGLContext(QOpenGLContext *context) const Q_DECL_OVERRIDE;
#endif
- QPlatformBackingStore *createPlatformBackingStore(QWindow *window) const;
+ QPlatformBackingStore *createPlatformBackingStore(QWindow *window) const Q_DECL_OVERRIDE;
- QPlatformOffscreenSurface *createPlatformOffscreenSurface(QOffscreenSurface *surface) const;
+ QPlatformOffscreenSurface *createPlatformOffscreenSurface(QOffscreenSurface *surface) const Q_DECL_OVERRIDE;
- bool hasCapability(Capability cap) const;
- QAbstractEventDispatcher *createEventDispatcher() const;
- void initialize();
+ bool hasCapability(Capability cap) const Q_DECL_OVERRIDE;
+ QAbstractEventDispatcher *createEventDispatcher() const Q_DECL_OVERRIDE;
+ void initialize() Q_DECL_OVERRIDE;
void moveToScreen(QWindow *window, int screen);
- QPlatformFontDatabase *fontDatabase() const;
+ QPlatformFontDatabase *fontDatabase() const Q_DECL_OVERRIDE;
- QPlatformNativeInterface *nativeInterface()const;
+ QPlatformNativeInterface *nativeInterface()const Q_DECL_OVERRIDE;
#ifndef QT_NO_CLIPBOARD
- QPlatformClipboard *clipboard() const;
+ QPlatformClipboard *clipboard() const Q_DECL_OVERRIDE;
#endif
#ifndef QT_NO_DRAGANDDROP
- QPlatformDrag *drag() const;
+ QPlatformDrag *drag() const Q_DECL_OVERRIDE;
#endif
- QPlatformInputContext *inputContext() const;
+ QPlatformInputContext *inputContext() const Q_DECL_OVERRIDE;
#ifndef QT_NO_ACCESSIBILITY
- QPlatformAccessibility *accessibility() const;
+ QPlatformAccessibility *accessibility() const Q_DECL_OVERRIDE;
#endif
- QPlatformServices *services() const;
+ QPlatformServices *services() const Q_DECL_OVERRIDE;
- Qt::KeyboardModifiers queryKeyboardModifiers() const;
- QList<int> possibleKeys(const QKeyEvent *e) const;
+ Qt::KeyboardModifiers queryKeyboardModifiers() const Q_DECL_OVERRIDE;
+ QList<int> possibleKeys(const QKeyEvent *e) const Q_DECL_OVERRIDE;
- QStringList themeNames() const;
- QPlatformTheme *createPlatformTheme(const QString &name) const;
- QVariant styleHint(StyleHint hint) const;
+ QStringList themeNames() const Q_DECL_OVERRIDE;
+ QPlatformTheme *createPlatformTheme(const QString &name) const Q_DECL_OVERRIDE;
+ QVariant styleHint(StyleHint hint) const Q_DECL_OVERRIDE;
QXcbConnection *defaultConnection() const { return m_connections.first(); }
@@ -98,7 +100,7 @@ public:
QPlatformSessionManager *createPlatformSessionManager(const QString &id, const QString &key) const Q_DECL_OVERRIDE;
#endif
- void sync();
+ void sync() Q_DECL_OVERRIDE;
private:
QList<QXcbConnection *> m_connections;
diff --git a/src/plugins/platforms/xcb/qxcbmain.cpp b/src/plugins/platforms/xcb/qxcbmain.cpp
index 80de5ba6f1..921c71711e 100644
--- a/src/plugins/platforms/xcb/qxcbmain.cpp
+++ b/src/plugins/platforms/xcb/qxcbmain.cpp
@@ -41,7 +41,7 @@ class QXcbIntegrationPlugin : public QPlatformIntegrationPlugin
Q_OBJECT
Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.2" FILE "xcb.json")
public:
- QPlatformIntegration *create(const QString&, const QStringList&, int &, char **);
+ QPlatformIntegration *create(const QString&, const QStringList&, int &, char **) Q_DECL_OVERRIDE;
};
QPlatformIntegration* QXcbIntegrationPlugin::create(const QString& system, const QStringList& parameters, int &argc, char **argv)
diff --git a/src/plugins/platforms/xcb/qxcbnativeinterface.cpp b/src/plugins/platforms/xcb/qxcbnativeinterface.cpp
index 3058b29f2d..956b0f83d2 100644
--- a/src/plugins/platforms/xcb/qxcbnativeinterface.cpp
+++ b/src/plugins/platforms/xcb/qxcbnativeinterface.cpp
@@ -46,12 +46,6 @@
#include <QtGui/qopenglcontext.h>
#include <QtGui/qscreen.h>
-#if defined(XCB_USE_EGL)
-#include "QtPlatformSupport/private/qeglplatformcontext_p.h"
-#elif defined (XCB_USE_GLX)
-#include "qglxintegration.h"
-#endif
-
#include <QtPlatformHeaders/qxcbwindowfunctions.h>
#ifdef XCB_USE_XLIB
@@ -62,18 +56,17 @@
#include <algorithm>
+#include "qxcbnativeinterfacehandler.h"
+
QT_BEGIN_NAMESPACE
// return QXcbNativeInterface::ResourceType for the key.
static int resourceType(const QByteArray &key)
{
static const QByteArray names[] = { // match QXcbNativeInterface::ResourceType
- QByteArrayLiteral("display"), QByteArrayLiteral("egldisplay"),
+ QByteArrayLiteral("display"),
QByteArrayLiteral("connection"), QByteArrayLiteral("screen"),
- QByteArrayLiteral("eglcontext"),
- QByteArrayLiteral("eglconfig"),
- QByteArrayLiteral("glxconfig"),
- QByteArrayLiteral("glxcontext"), QByteArrayLiteral("apptime"),
+ QByteArrayLiteral("apptime"),
QByteArrayLiteral("appusertime"), QByteArrayLiteral("hintstyle"),
QByteArrayLiteral("startupid"), QByteArrayLiteral("traywindow"),
QByteArrayLiteral("gettimestamp"), QByteArrayLiteral("x11screen"),
@@ -82,8 +75,6 @@ static int resourceType(const QByteArray &key)
};
const QByteArray *end = names + sizeof(names) / sizeof(names[0]);
const QByteArray *result = std::find(names, end, key);
- if (result == end)
- result = std::find(names, end, key.toLower());
return int(result - names);
}
@@ -208,10 +199,26 @@ void QXcbNativeInterface::clearRegion(const QWindow *qwindow, const QRect& rect)
}
}
+void QXcbNativeInterface::setParentRelativeBackPixmap(const QWindow *qwindow)
+{
+ if (const QPlatformWindow *platformWindow = qwindow->handle()) {
+ const QXcbWindow *qxwindow = static_cast<const QXcbWindow *>(platformWindow);
+ xcb_connection_t *xcb_conn = qxwindow->xcb_connection();
+
+ const quint32 mask = XCB_CW_BACK_PIXMAP;
+ const quint32 values[] = { XCB_BACK_PIXMAP_PARENT_RELATIVE };
+ Q_XCB_CALL(xcb_change_window_attributes(xcb_conn, qxwindow->xcb_window(), mask, values));
+ }
+}
+
void *QXcbNativeInterface::nativeResourceForIntegration(const QByteArray &resourceString)
{
- void *result = 0;
- switch (resourceType(resourceString)) {
+ QByteArray lowerCaseResource = resourceString.toLower();
+ void *result = handlerNativeResourceForIntegration(lowerCaseResource);
+ if (result)
+ return result;
+
+ switch (resourceType(lowerCaseResource)) {
case StartupId:
result = startupId();
break;
@@ -221,6 +228,9 @@ void *QXcbNativeInterface::nativeResourceForIntegration(const QByteArray &resour
case RootWindow:
result = rootWindow();
break;
+ case Display:
+ result = display();
+ break;
default:
break;
}
@@ -230,32 +240,20 @@ void *QXcbNativeInterface::nativeResourceForIntegration(const QByteArray &resour
void *QXcbNativeInterface::nativeResourceForContext(const QByteArray &resourceString, QOpenGLContext *context)
{
- void *result = 0;
- switch (resourceType(resourceString)) {
- case EglContext:
- result = eglContextForContext(context);
- break;
- case EglConfig:
- result = eglConfigForContext(context);
- break;
- case GLXConfig:
- result = glxConfigForContext(context);
- break;
- case GLXContext:
- result = glxContextForContext(context);
- break;
- default:
- break;
- }
-
+ QByteArray lowerCaseResource = resourceString.toLower();
+ void *result = handlerNativeResourceForContext(lowerCaseResource, context);
return result;
}
-void *QXcbNativeInterface::nativeResourceForScreen(const QByteArray &resource, QScreen *screen)
+void *QXcbNativeInterface::nativeResourceForScreen(const QByteArray &resourceString, QScreen *screen)
{
- void *result = 0;
+ QByteArray lowerCaseResource = resourceString.toLower();
+ void *result = handlerNativeResourceForScreen(lowerCaseResource ,screen);
+ if (result)
+ return result;
+
const QXcbScreen *xcbScreen = static_cast<QXcbScreen *>(screen->handle());
- switch (resourceType(resource)) {
+ switch (resourceType(lowerCaseResource)) {
case Display:
#ifdef XCB_USE_XLIB
result = xcbScreen->connection()->xlib_display();
@@ -291,14 +289,15 @@ void *QXcbNativeInterface::nativeResourceForScreen(const QByteArray &resource, Q
void *QXcbNativeInterface::nativeResourceForWindow(const QByteArray &resourceString, QWindow *window)
{
- void *result = 0;
- switch (resourceType(resourceString)) {
+ QByteArray lowerCaseResource = resourceString.toLower();
+ void *result = handlerNativeResourceForWindow(lowerCaseResource, window);
+ if (result)
+ return result;
+
+ switch (resourceType(lowerCaseResource)) {
case Display:
result = displayForWindow(window);
break;
- case EglDisplay:
- result = eglDisplayForWindow(window);
- break;
case Connection:
result = connectionForWindow(window);
break;
@@ -312,17 +311,42 @@ void *QXcbNativeInterface::nativeResourceForWindow(const QByteArray &resourceStr
return result;
}
+void *QXcbNativeInterface::nativeResourceForBackingStore(const QByteArray &resourceString, QBackingStore *backingStore)
+{
+ const QByteArray lowerCaseResource = resourceString.toLower();
+ void *result = handlerNativeResourceForBackingStore(lowerCaseResource,backingStore);
+ return result;
+}
+
+
QPlatformNativeInterface::NativeResourceForIntegrationFunction QXcbNativeInterface::nativeResourceFunctionForIntegration(const QByteArray &resource)
{
- QByteArray lowerCaseResource = resource.toLower();
+ const QByteArray lowerCaseResource = resource.toLower();
+ QPlatformNativeInterface::NativeResourceForIntegrationFunction func = handlerNativeResourceFunctionForIntegration(lowerCaseResource);
+ if (func)
+ return func;
+
if (lowerCaseResource == "setstartupid")
return NativeResourceForIntegrationFunction(setStartupId);
return 0;
}
+QPlatformNativeInterface::NativeResourceForContextFunction QXcbNativeInterface::nativeResourceFunctionForContext(const QByteArray &resource)
+{
+ const QByteArray lowerCaseResource = resource.toLower();
+ QPlatformNativeInterface::NativeResourceForContextFunction func = handlerNativeResourceFunctionForContext(lowerCaseResource);
+ if (func)
+ return func;
+ return Q_NULLPTR;
+}
+
QPlatformNativeInterface::NativeResourceForScreenFunction QXcbNativeInterface::nativeResourceFunctionForScreen(const QByteArray &resource)
{
const QByteArray lowerCaseResource = resource.toLower();
+ NativeResourceForScreenFunction func = handlerNativeResourceFunctionForScreen(lowerCaseResource);
+ if (func)
+ return func;
+
if (lowerCaseResource == "setapptime")
return NativeResourceForScreenFunction(setAppTime);
else if (lowerCaseResource == "setappusertime")
@@ -330,8 +354,28 @@ QPlatformNativeInterface::NativeResourceForScreenFunction QXcbNativeInterface::n
return 0;
}
+QPlatformNativeInterface::NativeResourceForWindowFunction QXcbNativeInterface::nativeResourceFunctionForWindow(const QByteArray &resource)
+{
+ const QByteArray lowerCaseResource = resource.toLower();
+ NativeResourceForWindowFunction func = handlerNativeResourceFunctionForWindow(lowerCaseResource);
+ return func;
+}
+
+QPlatformNativeInterface::NativeResourceForBackingStoreFunction QXcbNativeInterface::nativeResourceFunctionForBackingStore(const QByteArray &resource)
+{
+ const QByteArray lowerCaseResource = resource.toLower();
+ NativeResourceForBackingStoreFunction func = handlerNativeResourceFunctionForBackingStore(resource);
+ return func;
+}
+
QFunctionPointer QXcbNativeInterface::platformFunction(const QByteArray &function) const
{
+ const QByteArray lowerCaseFunction = function.toLower();
+ QFunctionPointer func = handlerPlatformFunction(lowerCaseFunction);
+ if (func)
+ return func;
+
+ //case sensitive
if (function == QXcbWindowFunctions::setWmWindowTypeIdentifier()) {
return QFunctionPointer(QXcbWindow::setWmWindowTypeStatic);
}
@@ -380,6 +424,17 @@ void *QXcbNativeInterface::rootWindow()
return 0;
}
+void *QXcbNativeInterface::display()
+{
+#ifdef XCB_USE_XLIB
+ QXcbIntegration *integration = static_cast<QXcbIntegration *>(QGuiApplicationPrivate::platformIntegration());
+ QXcbConnection *defaultConnection = integration->defaultConnection();
+ return defaultConnection->xlib_display();
+#else
+ return 0;
+#endif
+}
+
void QXcbNativeInterface::setAppTime(QScreen* screen, xcb_timestamp_t time)
{
static_cast<QXcbScreen *>(screen->handle())->connection()->setTime(time);
@@ -399,15 +454,6 @@ void QXcbNativeInterface::setStartupId(const char *data)
defaultConnection->setStartupId(startupId);
}
-QPlatformNativeInterface::NativeResourceForContextFunction QXcbNativeInterface::nativeResourceFunctionForContext(const QByteArray &resource)
-{
- QByteArray lowerCaseResource = resource.toLower();
- if (lowerCaseResource == "get_egl_context") {
- return eglContextForContext;
- }
- return 0;
-}
-
QXcbScreen *QXcbNativeInterface::qPlatformScreenForWindow(QWindow *window)
{
QXcbScreen *screen;
@@ -430,17 +476,6 @@ void *QXcbNativeInterface::displayForWindow(QWindow *window)
#endif
}
-void *QXcbNativeInterface::eglDisplayForWindow(QWindow *window)
-{
-#if defined(XCB_USE_EGL)
- QXcbScreen *screen = qPlatformScreenForWindow(window);
- return screen->connection()->egl_display();
-#else
- Q_UNUSED(window)
- return 0;
-#endif
-}
-
void *QXcbNativeInterface::connectionForWindow(QWindow *window)
{
QXcbScreen *screen = qPlatformScreenForWindow(window);
@@ -453,54 +488,121 @@ void *QXcbNativeInterface::screenForWindow(QWindow *window)
return screen->screen();
}
-void * QXcbNativeInterface::eglContextForContext(QOpenGLContext *context)
+void QXcbNativeInterface::addHandler(QXcbNativeInterfaceHandler *handler)
{
- Q_ASSERT(context);
-#if defined(XCB_USE_EGL)
- QEGLPlatformContext *eglPlatformContext = static_cast<QEGLPlatformContext *>(context->handle());
- return eglPlatformContext->eglContext();
-#else
- Q_UNUSED(context);
- return 0;
-#endif
+ m_handlers.removeAll(handler);
+ m_handlers.prepend(handler);
}
-void * QXcbNativeInterface::eglConfigForContext(QOpenGLContext *context)
+void QXcbNativeInterface::removeHandler(QXcbNativeInterfaceHandler *handler)
{
- Q_ASSERT(context);
-#if defined(XCB_USE_EGL)
- QEGLPlatformContext *eglPlatformContext = static_cast<QEGLPlatformContext *>(context->handle());
- return eglPlatformContext->eglConfig();
-#else
- Q_UNUSED(context);
- return 0;
-#endif
+ m_handlers.removeAll(handler);
}
-void *QXcbNativeInterface::glxContextForContext(QOpenGLContext *context)
+QPlatformNativeInterface::NativeResourceForIntegrationFunction QXcbNativeInterface::handlerNativeResourceFunctionForIntegration(const QByteArray &resource) const
{
- Q_ASSERT(context);
-#if defined(XCB_USE_GLX)
- QGLXContext *glxPlatformContext = static_cast<QGLXContext *>(context->handle());
- return glxPlatformContext->glxContext();
-#else
- Q_UNUSED(context);
- return 0;
-#endif
+ for (int i = 0; i < m_handlers.size(); i++) {
+ QXcbNativeInterfaceHandler *handler = m_handlers.at(i);
+ NativeResourceForIntegrationFunction result = handler->nativeResourceFunctionForIntegration(resource);
+ if (result)
+ return result;
+ }
+ return Q_NULLPTR;
+}
+QPlatformNativeInterface::NativeResourceForContextFunction QXcbNativeInterface::handlerNativeResourceFunctionForContext(const QByteArray &resource) const
+{
+ for (int i = 0; i < m_handlers.size(); i++) {
+ QXcbNativeInterfaceHandler *handler = m_handlers.at(i);
+ NativeResourceForContextFunction result = handler->nativeResourceFunctionForContext(resource);
+ if (result)
+ return result;
+ }
+ return Q_NULLPTR;
}
-void *QXcbNativeInterface::glxConfigForContext(QOpenGLContext *context)
+QPlatformNativeInterface::NativeResourceForScreenFunction QXcbNativeInterface::handlerNativeResourceFunctionForScreen(const QByteArray &resource) const
{
- Q_ASSERT(context);
-#if defined(XCB_USE_GLX)
- QGLXContext *glxPlatformContext = static_cast<QGLXContext *>(context->handle());
- return glxPlatformContext->glxConfig();
-#else
- Q_UNUSED(context);
- return 0;
-#endif
+ for (int i = 0; i < m_handlers.size(); i++) {
+ QXcbNativeInterfaceHandler *handler = m_handlers.at(i);
+ NativeResourceForScreenFunction result = handler->nativeResourceFunctionForScreen(resource);
+ if (result)
+ return result;
+ }
+ return Q_NULLPTR;
+}
+
+QPlatformNativeInterface::NativeResourceForWindowFunction QXcbNativeInterface::handlerNativeResourceFunctionForWindow(const QByteArray &resource) const
+{
+ for (int i = 0; i < m_handlers.size(); i++) {
+ QXcbNativeInterfaceHandler *handler = m_handlers.at(i);
+ NativeResourceForWindowFunction result = handler->nativeResourceFunctionForWindow(resource);
+ if (result)
+ return result;
+ }
+ return Q_NULLPTR;
+}
+
+QPlatformNativeInterface::NativeResourceForBackingStoreFunction QXcbNativeInterface::handlerNativeResourceFunctionForBackingStore(const QByteArray &resource) const
+{
+ for (int i = 0; i < m_handlers.size(); i++) {
+ QXcbNativeInterfaceHandler *handler = m_handlers.at(i);
+ NativeResourceForBackingStoreFunction result = handler->nativeResourceFunctionForBackingStore(resource);
+ if (result)
+ return result;
+ }
+ return Q_NULLPTR;
+}
+QFunctionPointer QXcbNativeInterface::handlerPlatformFunction(const QByteArray &function) const
+{
+ for (int i = 0; i < m_handlers.size(); i++) {
+ QXcbNativeInterfaceHandler *handler = m_handlers.at(i);
+ QFunctionPointer func = handler->platformFunction(function);
+ if (func)
+ return func;
+ }
+ return Q_NULLPTR;
+}
+
+void *QXcbNativeInterface::handlerNativeResourceForIntegration(const QByteArray &resource) const
+{
+ NativeResourceForIntegrationFunction func = handlerNativeResourceFunctionForIntegration(resource);
+ if (func)
+ return func();
+ return Q_NULLPTR;
+}
+
+void *QXcbNativeInterface::handlerNativeResourceForContext(const QByteArray &resource, QOpenGLContext *context) const
+{
+ NativeResourceForContextFunction func = handlerNativeResourceFunctionForContext(resource);
+ if (func)
+ return func(context);
+ return Q_NULLPTR;
+}
+
+void *QXcbNativeInterface::handlerNativeResourceForScreen(const QByteArray &resource, QScreen *screen) const
+{
+ NativeResourceForScreenFunction func = handlerNativeResourceFunctionForScreen(resource);
+ if (func)
+ return func(screen);
+ return Q_NULLPTR;
+}
+
+void *QXcbNativeInterface::handlerNativeResourceForWindow(const QByteArray &resource, QWindow *window) const
+{
+ NativeResourceForWindowFunction func = handlerNativeResourceFunctionForWindow(resource);
+ if (func)
+ return func(window);
+ return Q_NULLPTR;
+}
+
+void *QXcbNativeInterface::handlerNativeResourceForBackingStore(const QByteArray &resource, QBackingStore *backingStore) const
+{
+ NativeResourceForBackingStoreFunction func = handlerNativeResourceFunctionForBackingStore(resource);
+ if (func)
+ return func(backingStore);
+ return Q_NULLPTR;
}
QT_END_NAMESPACE
diff --git a/src/plugins/platforms/xcb/qxcbnativeinterface.h b/src/plugins/platforms/xcb/qxcbnativeinterface.h
index b667f1a372..b2044e6ee9 100644
--- a/src/plugins/platforms/xcb/qxcbnativeinterface.h
+++ b/src/plugins/platforms/xcb/qxcbnativeinterface.h
@@ -39,25 +39,23 @@
#include <QtCore/QRect>
+#include "qxcbexport.h"
+
QT_BEGIN_NAMESPACE
class QWidget;
class QXcbScreen;
class QXcbConnection;
+class QXcbNativeInterfaceHandler;
-class QXcbNativeInterface : public QPlatformNativeInterface
+class Q_XCB_EXPORT QXcbNativeInterface : public QPlatformNativeInterface
{
Q_OBJECT
public:
enum ResourceType {
Display,
- EglDisplay,
Connection,
Screen,
- EglContext,
- EglConfig,
- GLXConfig,
- GLXContext,
AppTime,
AppUserTime,
ScreenHintStyle,
@@ -76,17 +74,19 @@ public:
void *nativeResourceForContext(const QByteArray &resourceString, QOpenGLContext *context) Q_DECL_OVERRIDE;
void *nativeResourceForScreen(const QByteArray &resource, QScreen *screen) Q_DECL_OVERRIDE;
void *nativeResourceForWindow(const QByteArray &resourceString, QWindow *window) Q_DECL_OVERRIDE;
+ void *nativeResourceForBackingStore(const QByteArray &resource, QBackingStore *backingStore) Q_DECL_OVERRIDE;
NativeResourceForIntegrationFunction nativeResourceFunctionForIntegration(const QByteArray &resource) Q_DECL_OVERRIDE;
NativeResourceForContextFunction nativeResourceFunctionForContext(const QByteArray &resource) Q_DECL_OVERRIDE;
NativeResourceForScreenFunction nativeResourceFunctionForScreen(const QByteArray &resource) Q_DECL_OVERRIDE;
+ NativeResourceForWindowFunction nativeResourceFunctionForWindow(const QByteArray &resource) Q_DECL_OVERRIDE;
+ NativeResourceForBackingStoreFunction nativeResourceFunctionForBackingStore(const QByteArray &resource) Q_DECL_OVERRIDE;
QFunctionPointer platformFunction(const QByteArray &function) const Q_DECL_OVERRIDE;
inline const QByteArray &genericEventFilterType() const { return m_genericEventFilterType; }
void *displayForWindow(QWindow *window);
- void *eglDisplayForWindow(QWindow *window);
void *connectionForWindow(QWindow *window);
void *screenForWindow(QWindow *window);
void *appTime(const QXcbScreen *screen);
@@ -95,21 +95,21 @@ public:
void *startupId();
void *x11Screen();
void *rootWindow();
+ void *display();
static void setStartupId(const char *);
static void setAppTime(QScreen *screen, xcb_timestamp_t time);
static void setAppUserTime(QScreen *screen, xcb_timestamp_t time);
- static void *eglContextForContext(QOpenGLContext *context);
- static void *eglConfigForContext(QOpenGLContext *context);
- static void *glxContextForContext(QOpenGLContext *context);
- static void *glxConfigForContext(QOpenGLContext *context);
Q_INVOKABLE void beep();
Q_INVOKABLE bool systemTrayAvailable(const QScreen *screen) const;
Q_INVOKABLE void clearRegion(const QWindow *qwindow, const QRect& rect);
+ Q_INVOKABLE void setParentRelativeBackPixmap(const QWindow *window);
Q_INVOKABLE bool systrayVisualHasAlphaChannel();
Q_INVOKABLE bool requestSystemTrayWindowDock(const QWindow *window);
Q_INVOKABLE QRect systemTrayWindowGlobalGeometry(const QWindow *window);
+ void addHandler(QXcbNativeInterfaceHandler *handler);
+ void removeHandler(QXcbNativeInterfaceHandler *handler);
signals:
void systemTrayWindowChanged(QScreen *screen);
@@ -122,6 +122,19 @@ private:
xcb_visualid_t m_systrayVisualId;
static QXcbScreen *qPlatformScreenForWindow(QWindow *window);
+
+ QList<QXcbNativeInterfaceHandler *> m_handlers;
+ NativeResourceForIntegrationFunction handlerNativeResourceFunctionForIntegration(const QByteArray &resource) const;
+ NativeResourceForContextFunction handlerNativeResourceFunctionForContext(const QByteArray &resource) const;
+ NativeResourceForScreenFunction handlerNativeResourceFunctionForScreen(const QByteArray &resource) const;
+ NativeResourceForWindowFunction handlerNativeResourceFunctionForWindow(const QByteArray &resource) const;
+ NativeResourceForBackingStoreFunction handlerNativeResourceFunctionForBackingStore(const QByteArray &resource) const;
+ QFunctionPointer handlerPlatformFunction(const QByteArray &function) const;
+ void *handlerNativeResourceForIntegration(const QByteArray &resource) const;
+ void *handlerNativeResourceForContext(const QByteArray &resource, QOpenGLContext *context) const;
+ void *handlerNativeResourceForScreen(const QByteArray &resource, QScreen *screen) const;
+ void *handlerNativeResourceForWindow(const QByteArray &resource, QWindow *window) const;
+ void *handlerNativeResourceForBackingStore(const QByteArray &resource, QBackingStore *backingStore) const;
};
QT_END_NAMESPACE
diff --git a/src/plugins/platforms/xcb/qxcbscreen.cpp b/src/plugins/platforms/xcb/qxcbscreen.cpp
index 8bdedba8ac..def6e2ce9a 100644
--- a/src/plugins/platforms/xcb/qxcbscreen.cpp
+++ b/src/plugins/platforms/xcb/qxcbscreen.cpp
@@ -320,7 +320,7 @@ QDpi QXcbScreen::logicalDpi() const
qreal QXcbScreen::devicePixelRatio() const
{
- static int override_dpr = qgetenv("QT_DEVICE_PIXEL_RATIO").toInt();
+ static int override_dpr = qEnvironmentVariableIntValue("QT_DEVICE_PIXEL_RATIO");
static bool auto_dpr = qgetenv("QT_DEVICE_PIXEL_RATIO").toLower() == "auto";
if (override_dpr > 0)
return override_dpr;
diff --git a/src/plugins/platforms/xcb/qxcbscreen.h b/src/plugins/platforms/xcb/qxcbscreen.h
index ca0aee2cc4..4d0ae9847a 100644
--- a/src/plugins/platforms/xcb/qxcbscreen.h
+++ b/src/plugins/platforms/xcb/qxcbscreen.h
@@ -41,6 +41,7 @@
#include <xcb/randr.h>
#include "qxcbobject.h"
+#include "qxcbscreen.h"
#include <private/qfontengine_p.h>
@@ -50,28 +51,28 @@ class QXcbConnection;
class QXcbCursor;
class QXcbXSettings;
-class QXcbScreen : public QXcbObject, public QPlatformScreen
+class Q_XCB_EXPORT QXcbScreen : public QXcbObject, public QPlatformScreen
{
public:
QXcbScreen(QXcbConnection *connection, xcb_screen_t *screen,
xcb_randr_get_output_info_reply_t *output, QString outputName, int number);
~QXcbScreen();
- QPixmap grabWindow(WId window, int x, int y, int width, int height) const;
-
- QWindow *topLevelAt(const QPoint &point) const;
-
- QRect geometry() const { return m_geometry; }
- QRect availableGeometry() const {return m_availableGeometry;}
- int depth() const { return m_screen->root_depth; }
- QImage::Format format() const;
- QSizeF physicalSize() const { return m_sizeMillimeters; }
- QDpi logicalDpi() const;
- qreal devicePixelRatio() const;
- QPlatformCursor *cursor() const;
- qreal refreshRate() const { return m_refreshRate; }
- Qt::ScreenOrientation orientation() const { return m_orientation; }
- QList<QPlatformScreen *> virtualSiblings() const { return m_siblings; }
+ QPixmap grabWindow(WId window, int x, int y, int width, int height) const Q_DECL_OVERRIDE;
+
+ QWindow *topLevelAt(const QPoint &point) const Q_DECL_OVERRIDE;
+
+ QRect geometry() const Q_DECL_OVERRIDE { return m_geometry; }
+ QRect availableGeometry() const Q_DECL_OVERRIDE {return m_availableGeometry;}
+ int depth() const Q_DECL_OVERRIDE { return m_screen->root_depth; }
+ QImage::Format format() const Q_DECL_OVERRIDE;
+ QSizeF physicalSize() const Q_DECL_OVERRIDE { return m_sizeMillimeters; }
+ QDpi logicalDpi() const Q_DECL_OVERRIDE;
+ qreal devicePixelRatio() const Q_DECL_OVERRIDE;
+ QPlatformCursor *cursor() const Q_DECL_OVERRIDE;
+ qreal refreshRate() const Q_DECL_OVERRIDE { return m_refreshRate; }
+ Qt::ScreenOrientation orientation() const Q_DECL_OVERRIDE { return m_orientation; }
+ QList<QPlatformScreen *> virtualSiblings() const Q_DECL_OVERRIDE { return m_siblings; }
void setVirtualSiblings(QList<QPlatformScreen *> sl) { m_siblings = sl; }
int screenNumber() const { return m_number; }
@@ -88,7 +89,7 @@ public:
const xcb_visualtype_t *visualForId(xcb_visualid_t) const;
quint8 depthOfVisual(xcb_visualid_t) const;
- QString name() const { return m_outputName; }
+ QString name() const Q_DECL_OVERRIDE { return m_outputName; }
void handleScreenChange(xcb_randr_screen_change_notify_event_t *change_event);
void updateGeometry(xcb_timestamp_t timestamp);
diff --git a/src/plugins/platforms/xcb/qxcbsystemtraytracker.h b/src/plugins/platforms/xcb/qxcbsystemtraytracker.h
index 2e297c4ae5..2f364d3e55 100644
--- a/src/plugins/platforms/xcb/qxcbsystemtraytracker.h
+++ b/src/plugins/platforms/xcb/qxcbsystemtraytracker.h
@@ -55,7 +55,7 @@ public:
void notifyManagerClientMessageEvent(const xcb_client_message_event_t *);
- void handleDestroyNotifyEvent(const xcb_destroy_notify_event_t *);
+ void handleDestroyNotifyEvent(const xcb_destroy_notify_event_t *) Q_DECL_OVERRIDE;
signals:
void systemTrayWindowChanged(QScreen *screen);
diff --git a/src/plugins/platforms/xcb/qxcbwindow.cpp b/src/plugins/platforms/xcb/qxcbwindow.cpp
index e1ccc3f086..4d14dd14a3 100644
--- a/src/plugins/platforms/xcb/qxcbwindow.cpp
+++ b/src/plugins/platforms/xcb/qxcbwindow.cpp
@@ -97,15 +97,6 @@
#include <X11/extensions/XInput2.h>
#endif
-#if defined(XCB_USE_GLX)
-#include "qglxintegration.h"
-#include <QtPlatformSupport/private/qglxconvenience_p.h>
-#elif defined(XCB_USE_EGL)
-#include "qxcbeglsurface.h"
-#include <QtPlatformSupport/private/qeglconvenience_p.h>
-#include <QtPlatformSupport/private/qxlibeglintegration_p.h>
-#endif
-
#define XCOORD_MAX 16383
enum {
defaultWindowWidth = 160,
@@ -234,9 +225,6 @@ QXcbWindow::QXcbWindow(QWindow *window)
, m_alertState(false)
, m_netWmUserTimeWindow(XCB_NONE)
, m_dirtyFrameMargins(false)
-#if defined(XCB_USE_EGL)
- , m_eglSurface(0)
-#endif
, m_lastWindowStateEvent(-1)
, m_syncState(NoSyncNeeded)
, m_pendingSyncRequest(0)
@@ -244,11 +232,6 @@ QXcbWindow::QXcbWindow(QWindow *window)
m_screen = static_cast<QXcbScreen *>(window->screen()->handle());
setConnection(m_screen->connection());
-
- if (window->type() != Qt::ForeignWindow)
- create();
- else
- m_window = window->winId();
}
#ifdef Q_COMPILER_CLASS_ENUM
@@ -274,6 +257,11 @@ enum {
void QXcbWindow::create()
{
+ if (window()->type() == Qt::ForeignWindow) {
+ m_window = window()->winId();
+ return;
+ }
+
destroy();
m_deferredExpose = false;
@@ -337,27 +325,12 @@ void QXcbWindow::create()
window()->setFormat(parentFormat);
}
}
- m_format = window()->requestedFormat();
-#if (defined(XCB_USE_GLX) || defined(XCB_USE_EGL)) && defined(XCB_USE_XLIB)
+ resolveFormat();
+
+#ifdef XCB_USE_XLIB
if (QGuiApplicationPrivate::platformIntegration()->hasCapability(QPlatformIntegration::OpenGL)) {
-#if defined(XCB_USE_GLX)
- XVisualInfo *visualInfo = qglx_findVisualInfo(DISPLAY_FROM_XCB(m_screen), m_screen->screenNumber(), &m_format);
-#elif defined(XCB_USE_EGL)
- EGLDisplay eglDisplay = connection()->egl_display();
- EGLConfig eglConfig = q_configFromGLFormat(eglDisplay, m_format, true);
- m_format = q_glFormatFromConfig(eglDisplay, eglConfig, m_format);
-
- VisualID id = QXlibEglIntegration::getCompatibleVisualId(DISPLAY_FROM_XCB(this), eglDisplay, eglConfig);
-
- XVisualInfo visualInfoTemplate;
- memset(&visualInfoTemplate, 0, sizeof(XVisualInfo));
- visualInfoTemplate.visualid = id;
-
- XVisualInfo *visualInfo;
- int matchingCount = 0;
- visualInfo = XGetVisualInfo(DISPLAY_FROM_XCB(this), VisualIDMask, &visualInfoTemplate, &matchingCount);
-#endif //XCB_USE_GLX
+ XVisualInfo *visualInfo = static_cast<XVisualInfo *>(createVisual());
if (!visualInfo && window()->surfaceType() == QSurface::OpenGLSurface)
qFatal("Could not initialize OpenGL");
@@ -365,6 +338,7 @@ void QXcbWindow::create()
qWarning("Could not initialize OpenGL for RasterGLSurface, reverting to RasterSurface.");
window()->setSurfaceType(QSurface::RasterSurface);
}
+
if (visualInfo) {
m_depth = visualInfo->depth;
m_imageFormat = imageFormatForVisual(visualInfo->depth, visualInfo->red_mask, visualInfo->blue_mask);
@@ -386,9 +360,9 @@ void QXcbWindow::create()
XFree(visualInfo);
}
}
+#endif
if (!m_window)
-#endif //defined(XCB_USE_GLX) || defined(XCB_USE_EGL)
{
m_window = xcb_generate_id(xcb_connection());
m_visualId = m_screen->screen()->root_visual;
@@ -449,12 +423,10 @@ void QXcbWindow::create()
properties[propertyCount++] = atom(QXcbAtom::WM_TAKE_FOCUS);
properties[propertyCount++] = atom(QXcbAtom::_NET_WM_PING);
- m_usingSyncProtocol = m_screen->syncRequestSupported();
-#if !defined(XCB_USE_GLX)
- // synced resize only implemented on GLX
- if (window()->supportsOpenGL())
+ if (m_screen->syncRequestSupported())
+ m_usingSyncProtocol = supportsSyncProtocol();
+ else
m_usingSyncProtocol = false;
-#endif
if (m_usingSyncProtocol)
properties[propertyCount++] = atom(QXcbAtom::_NET_WM_SYNC_REQUEST);
@@ -576,11 +548,6 @@ void QXcbWindow::destroy()
}
m_mapped = false;
-#if defined(XCB_USE_EGL)
- delete m_eglSurface;
- m_eglSurface = 0;
-#endif
-
if (m_pendingSyncRequest)
m_pendingSyncRequest->invalidate();
}
@@ -1557,21 +1524,6 @@ QSurfaceFormat QXcbWindow::format() const
return m_format;
}
-#if defined(XCB_USE_EGL)
-QXcbEGLSurface *QXcbWindow::eglSurface() const
-{
- if (!m_eglSurface) {
- EGLDisplay display = connection()->egl_display();
- EGLConfig config = q_configFromGLFormat(display, window()->requestedFormat(), true);
- EGLSurface surface = eglCreateWindowSurface(display, config, (EGLNativeWindowType)m_window, 0);
-
- m_eglSurface = new QXcbEGLSurface(display, surface);
- }
-
- return m_eglSurface;
-}
-#endif
-
void QXcbWindow::setWmWindowTypeStatic(QWindow *window, QXcbWindowFunctions::WmWindowTypes windowTypes)
{
if (window->handle())
diff --git a/src/plugins/platforms/xcb/qxcbwindow.h b/src/plugins/platforms/xcb/qxcbwindow.h
index 12d20d004d..340070e882 100644
--- a/src/plugins/platforms/xcb/qxcbwindow.h
+++ b/src/plugins/platforms/xcb/qxcbwindow.h
@@ -48,11 +48,10 @@
QT_BEGIN_NAMESPACE
class QXcbScreen;
-class QXcbEGLSurface;
class QXcbSyncWindowRequest;
class QIcon;
-class QXcbWindow : public QXcbObject, public QXcbWindowEventListener, public QPlatformWindow
+class Q_XCB_EXPORT QXcbWindow : public QXcbObject, public QXcbWindowEventListener, public QPlatformWindow
{
public:
enum NetWmState {
@@ -71,45 +70,45 @@ public:
QXcbWindow(QWindow *window);
~QXcbWindow();
- void setGeometry(const QRect &rect);
+ void setGeometry(const QRect &rect) Q_DECL_OVERRIDE;
- QMargins frameMargins() const;
+ QMargins frameMargins() const Q_DECL_OVERRIDE;
- void setVisible(bool visible);
- void setWindowFlags(Qt::WindowFlags flags);
- void setWindowState(Qt::WindowState state);
- WId winId() const;
- void setParent(const QPlatformWindow *window);
+ void setVisible(bool visible) Q_DECL_OVERRIDE;
+ void setWindowFlags(Qt::WindowFlags flags) Q_DECL_OVERRIDE;
+ void setWindowState(Qt::WindowState state) Q_DECL_OVERRIDE;
+ WId winId() const Q_DECL_OVERRIDE;
+ void setParent(const QPlatformWindow *window) Q_DECL_OVERRIDE;
- bool isExposed() const;
- bool isEmbedded(const QPlatformWindow *parentWindow) const;
- QPoint mapToGlobal(const QPoint &pos) const;
- QPoint mapFromGlobal(const QPoint &pos) const;
+ bool isExposed() const Q_DECL_OVERRIDE;
+ bool isEmbedded(const QPlatformWindow *parentWindow) const Q_DECL_OVERRIDE;
+ QPoint mapToGlobal(const QPoint &pos) const Q_DECL_OVERRIDE;
+ QPoint mapFromGlobal(const QPoint &pos) const Q_DECL_OVERRIDE;
- void setWindowTitle(const QString &title);
- void setWindowIcon(const QIcon &icon);
- void raise();
- void lower();
- void propagateSizeHints();
+ void setWindowTitle(const QString &title) Q_DECL_OVERRIDE;
+ void setWindowIcon(const QIcon &icon) Q_DECL_OVERRIDE;
+ void raise() Q_DECL_OVERRIDE;
+ void lower() Q_DECL_OVERRIDE;
+ void propagateSizeHints() Q_DECL_OVERRIDE;
- void requestActivateWindow();
+ void requestActivateWindow() Q_DECL_OVERRIDE;
- bool setKeyboardGrabEnabled(bool grab);
- bool setMouseGrabEnabled(bool grab);
+ bool setKeyboardGrabEnabled(bool grab) Q_DECL_OVERRIDE;
+ bool setMouseGrabEnabled(bool grab) Q_DECL_OVERRIDE;
void setCursor(xcb_cursor_t cursor);
- QSurfaceFormat format() const;
+ QSurfaceFormat format() const Q_DECL_OVERRIDE;
- void windowEvent(QEvent *event);
+ void windowEvent(QEvent *event) Q_DECL_OVERRIDE;
- bool startSystemResize(const QPoint &pos, Qt::Corner corner);
+ bool startSystemResize(const QPoint &pos, Qt::Corner corner) Q_DECL_OVERRIDE;
- void setOpacity(qreal level);
- void setMask(const QRegion &region);
+ void setOpacity(qreal level) Q_DECL_OVERRIDE;
+ void setMask(const QRegion &region) Q_DECL_OVERRIDE;
- void setAlertState(bool enabled);
- bool isAlertState() const { return m_alertState; }
+ void setAlertState(bool enabled) Q_DECL_OVERRIDE;
+ bool isAlertState() const Q_DECL_OVERRIDE { return m_alertState; }
xcb_window_t xcb_window() const { return m_window; }
uint depth() const { return m_depth; }
@@ -138,10 +137,6 @@ public:
void updateNetWmUserTime(xcb_timestamp_t timestamp);
-#if defined(XCB_USE_EGL)
- QXcbEGLSurface *eglSurface() const;
-#endif
-
static void setWmWindowTypeStatic(QWindow *window, QXcbWindowFunctions::WmWindowTypes windowTypes);
QXcbWindowFunctions::WmWindowTypes wmWindowTypes() const;
@@ -152,12 +147,18 @@ public:
void postSyncWindowRequest();
void clearSyncWindowRequest() { m_pendingSyncRequest = 0; }
- qreal devicePixelRatio() const;
+ qreal devicePixelRatio() const Q_DECL_OVERRIDE;
+ virtual void create();
+ virtual void destroy();
public Q_SLOTS:
void updateSyncRequestCounter();
-private:
+protected:
+ virtual void resolveFormat() { m_format = window()->requestedFormat(); }
+ virtual void *createVisual() { return Q_NULLPTR; }
+ virtual bool supportsSyncProtocol() { return !window()->supportsOpenGL(); }
+
void changeNetWmState(bool set, xcb_atom_t one, xcb_atom_t two = 0);
NetWmStates netWmStates();
void setNetWmStates(NetWmStates);
@@ -176,9 +177,6 @@ private:
quint32 detail = 0, quint32 data1 = 0, quint32 data2 = 0);
void handleXEmbedMessage(const xcb_client_message_event_t *event);
- void create();
- void destroy();
-
void show();
void hide();
@@ -215,10 +213,6 @@ private:
mutable bool m_dirtyFrameMargins;
mutable QMargins m_frameMargins;
-#if defined(XCB_USE_EGL)
- mutable QXcbEGLSurface *m_eglSurface;
-#endif
-
QRegion m_exposeRegion;
xcb_visualid_t m_visualId;
diff --git a/src/plugins/platforms/xcb/xcb-plugin.pro b/src/plugins/platforms/xcb/xcb-plugin.pro
index 129076c916..09ab1ad77a 100644
--- a/src/plugins/platforms/xcb/xcb-plugin.pro
+++ b/src/plugins/platforms/xcb/xcb-plugin.pro
@@ -5,117 +5,9 @@ PLUGIN_CLASS_NAME = QXcbIntegrationPlugin
!equals(TARGET, $$QT_DEFAULT_QPA_PLUGIN): PLUGIN_EXTENDS = -
load(qt_plugin)
-QT += core-private gui-private platformsupport-private
+QT += core-private gui-private platformsupport-private xcb_qpa_lib-private
SOURCES = \
- qxcbclipboard.cpp \
- qxcbconnection.cpp \
- qxcbintegration.cpp \
- qxcbkeyboard.cpp \
- qxcbmime.cpp \
- qxcbdrag.cpp \
- qxcbscreen.cpp \
- qxcbwindow.cpp \
- qxcbbackingstore.cpp \
- qxcbwmsupport.cpp \
- qxcbmain.cpp \
- qxcbnativeinterface.cpp \
- qxcbcursor.cpp \
- qxcbimage.cpp \
- qxcbxsettings.cpp \
- qxcbsystemtraytracker.cpp
-
-HEADERS = \
- qxcbclipboard.h \
- qxcbconnection.h \
- qxcbintegration.h \
- qxcbkeyboard.h \
- qxcbdrag.h \
- qxcbmime.h \
- qxcbobject.h \
- qxcbscreen.h \
- qxcbwindow.h \
- qxcbbackingstore.h \
- qxcbwmsupport.h \
- qxcbnativeinterface.h \
- qxcbcursor.h \
- qxcbimage.h \
- qxcbxsettings.h \
- qxcbsystemtraytracker.h
-
-LIBS += $$QMAKE_LIBS_DYNLOAD
-
-# needed by GLX, Xcursor ...
-contains(QT_CONFIG, xcb-xlib) {
- DEFINES += XCB_USE_XLIB
- LIBS += -lX11 -lX11-xcb
-
- contains(QT_CONFIG, xinput2) {
- DEFINES += XCB_USE_XINPUT2
- SOURCES += qxcbconnection_xi2.cpp
- LIBS += -lXi
- }
-}
-
-# to support custom cursors with depth > 1
-contains(QT_CONFIG, xcb-render) {
- DEFINES += XCB_USE_RENDER
- LIBS += -lxcb-render -lxcb-render-util
-}
-
-# build with session management support
-contains(QT_CONFIG, xcb-sm) {
- DEFINES += XCB_USE_SM
- LIBS += -lSM -lICE
- SOURCES += qxcbsessionmanager.cpp
- HEADERS += qxcbsessionmanager.h
-}
-
-contains(QT_CONFIG, opengl) {
- contains(QT_CONFIG, xcb-xlib):!contains(QT_CONFIG, opengles2) {
- DEFINES += XCB_USE_GLX
- HEADERS += qglxintegration.h
- SOURCES += qglxintegration.cpp
- LIBS += $$QMAKE_LIBS_DYNLOAD
- contains(QT_CONFIG, xcb-glx) {
- DEFINES += XCB_HAS_XCB_GLX
- LIBS += -lxcb-glx
- }
- } else:contains(QT_CONFIG, egl):contains(QT_CONFIG, egl_x11) {
- DEFINES += XCB_USE_EGL
- CONFIG += egl
- HEADERS += qxcbeglsurface.h
-
- # EGL on MeeGo 1.2 Harmattan needs this macro to map EGLNativeDisplayType
- # and other types to the correct X11 types
- DEFINES += SUPPORT_X11
- }
-}
-
-DEFINES += $$QMAKE_DEFINES_XCB
-LIBS += $$QMAKE_LIBS_XCB
-QMAKE_CXXFLAGS += $$QMAKE_CFLAGS_XCB
-QMAKE_CFLAGS += $$QMAKE_CFLAGS_XCB
-
-CONFIG += qpa/genericunixfontdatabase
-
+ qxcbmain.cpp
OTHER_FILES += xcb.json README
-contains(QT_CONFIG, xcb-qt) {
- DEFINES += XCB_USE_RENDER
- XCB_DIR = ../../../3rdparty/xcb
- INCLUDEPATH += $$XCB_DIR/include $$XCB_DIR/sysinclude
- LIBS += -lxcb -L$$OUT_PWD/xcb-static -lxcb-static
-} else {
- LIBS += -lxcb -lxcb-image -lxcb-icccm -lxcb-sync -lxcb-xfixes -lxcb-shm -lxcb-randr -lxcb-shape -lxcb-keysyms
- !contains(DEFINES, QT_NO_XKB):LIBS += -lxcb-xkb
-}
-
-# libxkbcommon
-contains(QT_CONFIG, xkbcommon-qt): {
- QT_CONFIG += use-xkbcommon-x11support
- include(../../../3rdparty/xkbcommon.pri)
-} else {
- LIBS += $$QMAKE_LIBS_XKBCOMMON
- QMAKE_CXXFLAGS += $$QMAKE_CFLAGS_XKBCOMMON
-}
diff --git a/src/plugins/platforms/xcb/xcb.pro b/src/plugins/platforms/xcb/xcb.pro
index dab0d8cb14..5915a59c0b 100644
--- a/src/plugins/platforms/xcb/xcb.pro
+++ b/src/plugins/platforms/xcb/xcb.pro
@@ -2,4 +2,7 @@ TEMPLATE = subdirs
CONFIG += ordered
contains(QT_CONFIG, xcb-qt):SUBDIRS+=xcb-static
+
+SUBDIRS += xcb_qpa_lib.pro
SUBDIRS += xcb-plugin.pro
+SUBDIRS += gl_integrations
diff --git a/src/plugins/platforms/xcb/xcb_qpa_lib.pro b/src/plugins/platforms/xcb/xcb_qpa_lib.pro
new file mode 100644
index 0000000000..770236acc7
--- /dev/null
+++ b/src/plugins/platforms/xcb/xcb_qpa_lib.pro
@@ -0,0 +1,111 @@
+TARGET = QtXcbQpa
+CONFIG += no_module_headers internal_module
+
+MODULE_INCLUDES = \
+ \$\$QT_MODULE_INCLUDE_BASE \
+ \$\$QT_MODULE_INCLUDE_BASE/QtQGui
+MODULE_PRIVATE_INCLUDES = \
+ \$\$QT_MODULE_INCLUDE_BASE/QtGui/$$QT.gui.VERSION \
+ \$\$QT_MODULE_INCLUDE_BASE/QtGui/$$QT.gui.VERSION/QtGui
+
+load(qt_module)
+
+QT += core-private gui-private platformsupport-private
+
+SOURCES = \
+ qxcbclipboard.cpp \
+ qxcbconnection.cpp \
+ qxcbintegration.cpp \
+ qxcbkeyboard.cpp \
+ qxcbmime.cpp \
+ qxcbdrag.cpp \
+ qxcbscreen.cpp \
+ qxcbwindow.cpp \
+ qxcbbackingstore.cpp \
+ qxcbwmsupport.cpp \
+ qxcbnativeinterface.cpp \
+ qxcbcursor.cpp \
+ qxcbimage.cpp \
+ qxcbxsettings.cpp \
+ qxcbsystemtraytracker.cpp
+
+HEADERS = \
+ qxcbclipboard.h \
+ qxcbconnection.h \
+ qxcbintegration.h \
+ qxcbkeyboard.h \
+ qxcbdrag.h \
+ qxcbmime.h \
+ qxcbobject.h \
+ qxcbscreen.h \
+ qxcbwindow.h \
+ qxcbbackingstore.h \
+ qxcbwmsupport.h \
+ qxcbnativeinterface.h \
+ qxcbcursor.h \
+ qxcbimage.h \
+ qxcbxsettings.h \
+ qxcbsystemtraytracker.h
+
+LIBS += $$QMAKE_LIBS_DYNLOAD
+
+DEFINES += QT_BUILD_XCB_PLUGIN
+# needed by Xcursor ...
+contains(QT_CONFIG, xcb-xlib) {
+ DEFINES += XCB_USE_XLIB
+ LIBS += -lX11 -lX11-xcb
+
+ contains(QT_CONFIG, xinput2) {
+ DEFINES += XCB_USE_XINPUT2
+ SOURCES += qxcbconnection_xi2.cpp
+ LIBS += -lXi
+ }
+}
+
+# to support custom cursors with depth > 1
+contains(QT_CONFIG, xcb-render) {
+ DEFINES += XCB_USE_RENDER
+ LIBS += -lxcb-render -lxcb-render-util
+}
+
+# build with session management support
+contains(QT_CONFIG, xcb-sm) {
+ DEFINES += XCB_USE_SM
+ LIBS += -lSM -lICE
+ SOURCES += qxcbsessionmanager.cpp
+ HEADERS += qxcbsessionmanager.h
+}
+
+include(gl_integrations/gl_integrations.pri)
+
+DEFINES += $$QMAKE_DEFINES_XCB
+LIBS += $$QMAKE_LIBS_XCB
+QMAKE_CXXFLAGS += $$QMAKE_CFLAGS_XCB
+QMAKE_CFLAGS += $$QMAKE_CFLAGS_XCB
+
+CONFIG += qpa/genericunixfontdatabase
+
+contains(QT_CONFIG, dbus) {
+ QT += dbus
+ LIBS += -ldbus-1
+}
+
+contains(QT_CONFIG, xcb-qt) {
+ DEFINES += XCB_USE_RENDER
+ XCB_DIR = ../../../3rdparty/xcb
+ INCLUDEPATH += $$XCB_DIR/include $$XCB_DIR/sysinclude
+ LIBS += -lxcb -L$$OUT_PWD/xcb-static -lxcb-static
+} else {
+ LIBS += -lxcb -lxcb-image -lxcb-icccm -lxcb-sync -lxcb-xfixes -lxcb-shm -lxcb-randr -lxcb-shape -lxcb-keysyms
+ !contains(DEFINES, QT_NO_XKB):LIBS += -lxcb-xkb
+}
+
+# libxkbcommon
+contains(QT_CONFIG, xkbcommon-qt) {
+ QT_CONFIG += use-xkbcommon-x11support
+ include(../../../3rdparty/xkbcommon.pri)
+} else {
+ LIBS += $$QMAKE_LIBS_XKBCOMMON
+ QMAKE_CXXFLAGS += $$QMAKE_CFLAGS_XKBCOMMON
+}
+
diff --git a/src/plugins/platformthemes/gtk2/main.cpp b/src/plugins/platformthemes/gtk2/main.cpp
index 860a1f8b3f..f14621da69 100644
--- a/src/plugins/platformthemes/gtk2/main.cpp
+++ b/src/plugins/platformthemes/gtk2/main.cpp
@@ -42,7 +42,7 @@ class QGtk2ThemePlugin : public QPlatformThemePlugin
Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QPA.QPlatformThemeFactoryInterface.5.1" FILE "gtk2.json")
public:
- QPlatformTheme *create(const QString &key, const QStringList &params);
+ QPlatformTheme *create(const QString &key, const QStringList &params) Q_DECL_OVERRIDE;
};
QPlatformTheme *QGtk2ThemePlugin::create(const QString &key, const QStringList &params)
diff --git a/src/plugins/platformthemes/gtk2/qgtk2dialoghelpers.cpp b/src/plugins/platformthemes/gtk2/qgtk2dialoghelpers.cpp
index d7e73c873d..0c7ff1a717 100644
--- a/src/plugins/platformthemes/gtk2/qgtk2dialoghelpers.cpp
+++ b/src/plugins/platformthemes/gtk2/qgtk2dialoghelpers.cpp
@@ -40,6 +40,7 @@
#include <qfont.h>
#include <private/qguiapplication_p.h>
+#include <qpa/qplatformfontdatabase.h>
#undef signals
#include <gtk/gtk.h>
@@ -511,14 +512,22 @@ static QString qt_fontToString(const QFont &font)
int weight = font.weight();
if (weight >= QFont::Black)
pango_font_description_set_weight(desc, PANGO_WEIGHT_HEAVY);
+ else if (weight >= QFont::ExtraBold)
+ pango_font_description_set_weight(desc, PANGO_WEIGHT_ULTRABOLD);
else if (weight >= QFont::Bold)
pango_font_description_set_weight(desc, PANGO_WEIGHT_BOLD);
else if (weight >= QFont::DemiBold)
pango_font_description_set_weight(desc, PANGO_WEIGHT_SEMIBOLD);
+ else if (weight >= QFont::Medium)
+ pango_font_description_set_weight(desc, PANGO_WEIGHT_MEDIUM);
else if (weight >= QFont::Normal)
pango_font_description_set_weight(desc, PANGO_WEIGHT_NORMAL);
- else
+ else if (weight >= QFont::Light)
pango_font_description_set_weight(desc, PANGO_WEIGHT_LIGHT);
+ else if (weight >= QFont::ExtraLight)
+ pango_font_description_set_weight(desc, PANGO_WEIGHT_ULTRALIGHT);
+ else
+ pango_font_description_set_weight(desc, PANGO_WEIGHT_THIN);
int style = font.style();
if (style == QFont::StyleItalic)
@@ -545,17 +554,8 @@ static QFont qt_fontFromString(const QString &name)
if (!family.isEmpty())
font.setFamily(family);
- int weight = pango_font_description_get_weight(desc);
- if (weight >= PANGO_WEIGHT_HEAVY)
- font.setWeight(QFont::Black);
- else if (weight >= PANGO_WEIGHT_BOLD)
- font.setWeight(QFont::Bold);
- else if (weight >= PANGO_WEIGHT_SEMIBOLD)
- font.setWeight(QFont::DemiBold);
- else if (weight >= PANGO_WEIGHT_NORMAL)
- font.setWeight(QFont::Normal);
- else
- font.setWeight(QFont::Light);
+ const int weight = pango_font_description_get_weight(desc);
+ font.setWeight(QPlatformFontDatabase::weightFromInteger(weight));
PangoStyle style = pango_font_description_get_style(desc);
if (style == PANGO_STYLE_ITALIC)
diff --git a/src/plugins/platformthemes/gtk2/qgtk2dialoghelpers.h b/src/plugins/platformthemes/gtk2/qgtk2dialoghelpers.h
index 9789c6750f..9ae562b1db 100644
--- a/src/plugins/platformthemes/gtk2/qgtk2dialoghelpers.h
+++ b/src/plugins/platformthemes/gtk2/qgtk2dialoghelpers.h
@@ -52,12 +52,12 @@ public:
QGtk2ColorDialogHelper();
~QGtk2ColorDialogHelper();
- bool show(Qt::WindowFlags flags, Qt::WindowModality modality, QWindow *parent);
- void exec();
- void hide();
+ bool show(Qt::WindowFlags flags, Qt::WindowModality modality, QWindow *parent) Q_DECL_OVERRIDE;
+ void exec() Q_DECL_OVERRIDE;
+ void hide() Q_DECL_OVERRIDE;
- void setCurrentColor(const QColor &color);
- QColor currentColor() const;
+ void setCurrentColor(const QColor &color) Q_DECL_OVERRIDE;
+ QColor currentColor() const Q_DECL_OVERRIDE;
private Q_SLOTS:
void onAccepted();
@@ -77,18 +77,18 @@ public:
QGtk2FileDialogHelper();
~QGtk2FileDialogHelper();
- bool show(Qt::WindowFlags flags, Qt::WindowModality modality, QWindow *parent);
- void exec();
- void hide();
+ bool show(Qt::WindowFlags flags, Qt::WindowModality modality, QWindow *parent) Q_DECL_OVERRIDE;
+ void exec() Q_DECL_OVERRIDE;
+ void hide() Q_DECL_OVERRIDE;
- bool defaultNameFilterDisables() const;
+ bool defaultNameFilterDisables() const Q_DECL_OVERRIDE;
void setDirectory(const QUrl &directory) Q_DECL_OVERRIDE;
QUrl directory() const Q_DECL_OVERRIDE;
void selectFile(const QUrl &filename) Q_DECL_OVERRIDE;
QList<QUrl> selectedFiles() const Q_DECL_OVERRIDE;
- void setFilter();
- void selectNameFilter(const QString &filter);
- QString selectedNameFilter() const;
+ void setFilter() Q_DECL_OVERRIDE;
+ void selectNameFilter(const QString &filter) Q_DECL_OVERRIDE;
+ QString selectedNameFilter() const Q_DECL_OVERRIDE;
private Q_SLOTS:
void onAccepted();
@@ -114,12 +114,12 @@ public:
QGtk2FontDialogHelper();
~QGtk2FontDialogHelper();
- bool show(Qt::WindowFlags flags, Qt::WindowModality modality, QWindow *parent);
- void exec();
- void hide();
+ bool show(Qt::WindowFlags flags, Qt::WindowModality modality, QWindow *parent) Q_DECL_OVERRIDE;
+ void exec() Q_DECL_OVERRIDE;
+ void hide() Q_DECL_OVERRIDE;
- void setCurrentFont(const QFont &font);
- QFont currentFont() const;
+ void setCurrentFont(const QFont &font) Q_DECL_OVERRIDE;
+ QFont currentFont() const Q_DECL_OVERRIDE;
private Q_SLOTS:
void onAccepted();
diff --git a/src/plugins/platformthemes/gtk2/qgtk2theme.h b/src/plugins/platformthemes/gtk2/qgtk2theme.h
index 304d7789f5..fd8e90fe5c 100644
--- a/src/plugins/platformthemes/gtk2/qgtk2theme.h
+++ b/src/plugins/platformthemes/gtk2/qgtk2theme.h
@@ -46,8 +46,8 @@ public:
virtual QVariant themeHint(ThemeHint hint) const Q_DECL_OVERRIDE;
virtual QString gtkFontName() const Q_DECL_OVERRIDE;
- bool usePlatformNativeDialog(DialogType type) const;
- QPlatformDialogHelper *createPlatformDialogHelper(DialogType type) const;
+ bool usePlatformNativeDialog(DialogType type) const Q_DECL_OVERRIDE;
+ QPlatformDialogHelper *createPlatformDialogHelper(DialogType type) const Q_DECL_OVERRIDE;
static const char *name;
};
diff --git a/src/plugins/plugins.pro b/src/plugins/plugins.pro
index d1cbff59c1..587063b100 100644
--- a/src/plugins/plugins.pro
+++ b/src/plugins/plugins.pro
@@ -3,5 +3,6 @@ TEMPLATE = subdirs
SUBDIRS *= sqldrivers
!winrt:qtHaveModule(network): SUBDIRS += bearer
qtHaveModule(gui): SUBDIRS *= imageformats platforms platforminputcontexts platformthemes generic
+qtHaveModule(widgets): SUBDIRS *= styles
!winrt:!wince*:qtHaveModule(widgets):SUBDIRS += printsupport
diff --git a/src/plugins/printsupport/cups/main.cpp b/src/plugins/printsupport/cups/main.cpp
index 5a7b9d7440..d404b3e1c6 100644
--- a/src/plugins/printsupport/cups/main.cpp
+++ b/src/plugins/printsupport/cups/main.cpp
@@ -48,7 +48,7 @@ class QCupsPrinterSupportPlugin : public QPlatformPrinterSupportPlugin
public:
QStringList keys() const;
- QPlatformPrinterSupport *create(const QString &);
+ QPlatformPrinterSupport *create(const QString &) Q_DECL_OVERRIDE;
};
QStringList QCupsPrinterSupportPlugin::keys() const
diff --git a/src/plugins/printsupport/cups/qcupsprintengine_p.h b/src/plugins/printsupport/cups/qcupsprintengine_p.h
index a083b1840a..e11db972aa 100644
--- a/src/plugins/printsupport/cups/qcupsprintengine_p.h
+++ b/src/plugins/printsupport/cups/qcupsprintengine_p.h
@@ -68,8 +68,8 @@ public:
virtual ~QCupsPrintEngine();
// reimplementations QPdfPrintEngine
- void setProperty(PrintEnginePropertyKey key, const QVariant &value);
- QVariant property(PrintEnginePropertyKey key) const;
+ void setProperty(PrintEnginePropertyKey key, const QVariant &value) Q_DECL_OVERRIDE;
+ QVariant property(PrintEnginePropertyKey key) const Q_DECL_OVERRIDE;
// end reimplementations QPdfPrintEngine
private:
@@ -83,8 +83,8 @@ public:
QCupsPrintEnginePrivate(QPrinter::PrinterMode m);
~QCupsPrintEnginePrivate();
- bool openPrintDevice();
- void closePrintDevice();
+ bool openPrintDevice() Q_DECL_OVERRIDE;
+ void closePrintDevice() Q_DECL_OVERRIDE;
private:
Q_DISABLE_COPY(QCupsPrintEnginePrivate)
diff --git a/src/plugins/sqldrivers/mysql/main.cpp b/src/plugins/sqldrivers/mysql/main.cpp
index 9448db59b1..2bc6e45a38 100644
--- a/src/plugins/sqldrivers/mysql/main.cpp
+++ b/src/plugins/sqldrivers/mysql/main.cpp
@@ -45,7 +45,7 @@ class QMYSQLDriverPlugin : public QSqlDriverPlugin
public:
QMYSQLDriverPlugin();
- QSqlDriver* create(const QString &);
+ QSqlDriver* create(const QString &) Q_DECL_OVERRIDE;
};
QMYSQLDriverPlugin::QMYSQLDriverPlugin()
diff --git a/src/plugins/sqldrivers/psql/main.cpp b/src/plugins/sqldrivers/psql/main.cpp
index 49217e8f1e..3bbb0a3a4e 100644
--- a/src/plugins/sqldrivers/psql/main.cpp
+++ b/src/plugins/sqldrivers/psql/main.cpp
@@ -45,7 +45,7 @@ class QPSQLDriverPlugin : public QSqlDriverPlugin
public:
QPSQLDriverPlugin();
- QSqlDriver* create(const QString &);
+ QSqlDriver* create(const QString &) Q_DECL_OVERRIDE;
};
QPSQLDriverPlugin::QPSQLDriverPlugin()
diff --git a/src/plugins/sqldrivers/sqlite/smain.cpp b/src/plugins/sqldrivers/sqlite/smain.cpp
index 3b0ca5aaba..2d040ff5d6 100644
--- a/src/plugins/sqldrivers/sqlite/smain.cpp
+++ b/src/plugins/sqldrivers/sqlite/smain.cpp
@@ -45,7 +45,7 @@ class QSQLiteDriverPlugin : public QSqlDriverPlugin
public:
QSQLiteDriverPlugin();
- QSqlDriver* create(const QString &);
+ QSqlDriver* create(const QString &) Q_DECL_OVERRIDE;
};
QSQLiteDriverPlugin::QSQLiteDriverPlugin()
diff --git a/src/plugins/styles/bb10style/bb10lightstyle.qrc b/src/plugins/styles/bb10style/bb10lightstyle.qrc
new file mode 100644
index 0000000000..0777e009bb
--- /dev/null
+++ b/src/plugins/styles/bb10style/bb10lightstyle.qrc
@@ -0,0 +1,54 @@
+<RCC>
+ <qresource prefix="/">
+ <file>light/button/core_button_disabled.png</file>
+ <file>light/button/core_button_inactive.png</file>
+ <file>light/button/core_button_pressed.png</file>
+ <file>light/checkbox/core_checkbox_checked.png</file>
+ <file>light/checkbox/core_checkbox_disabled.png</file>
+ <file>light/checkbox/core_checkbox_disabledchecked.png</file>
+ <file>light/checkbox/core_checkbox_enabled.png</file>
+ <file>light/checkbox/core_checkbox_pressed.png</file>
+ <file>light/checkbox/core_checkbox_pressedchecked.png</file>
+ <file>light/radiobutton/core_radiobutton_checked.png</file>
+ <file>light/radiobutton/core_radiobutton_disabled.png</file>
+ <file>light/radiobutton/core_radiobutton_disabledchecked.png</file>
+ <file>light/radiobutton/core_radiobutton_enabled.png</file>
+ <file>light/radiobutton/core_radiobutton_pressed.png</file>
+ <file>light/slider/core_slider_active.png</file>
+ <file>light/slider/core_slider_disabled.png</file>
+ <file>light/slider/core_slider_handle.png</file>
+ <file>light/slider/core_slider_handle_disabled.png</file>
+ <file>light/slider/core_slider_handle_pressed.png</file>
+ <file>light/slider/core_slider_inactive.png</file>
+ <file>light/slider/core_slider_vactive.png</file>
+ <file>light/slider/core_slider_vdisabled.png</file>
+ <file>light/slider/core_slider_vinactive.png</file>
+ <file>light/slider/core_slider_black.png</file>
+ <file>light/slider/core_slider_enabled.png</file>
+ <file>light/slider/core_slider_vblack.png</file>
+ <file>light/slider/core_slider_venabled.png</file>
+ <file>light/button/core_button_active.png</file>
+ <file>light/lineedit/core_textinput_bg.png</file>
+ <file>light/lineedit/core_textinput_bg_disabled.png</file>
+ <file>light/lineedit/core_textinput_bg_focused.png</file>
+ <file>light/progressbar/core_progressindicator_bg.png</file>
+ <file>light/progressbar/core_progressindicator_complete.png</file>
+ <file>light/progressbar/core_progressindicator_fill.png</file>
+ <file>light/progressbar/core_progressindicator_vbg.png</file>
+ <file>light/progressbar/core_progressindicator_vcomplete.png</file>
+ <file>light/progressbar/core_progressindicator_vfill.png</file>
+ <file>light/combobox/core_dropdown_button.png</file>
+ <file>light/combobox/core_dropdown_button_arrowdown.png</file>
+ <file>light/combobox/core_dropdown_button_arrowdown_pressed.png</file>
+ <file>light/combobox/core_dropdown_button_arrowup.png</file>
+ <file>light/combobox/core_dropdown_button_disabled.png</file>
+ <file>light/combobox/core_dropdown_button_pressed.png</file>
+ <file>light/combobox/core_dropdown_checkmark.png</file>
+ <file>light/combobox/core_dropdown_divider.png</file>
+ <file>light/combobox/core_dropdown_menu.png</file>
+ <file>light/combobox/core_dropdown_menuup.png</file>
+ <file>light/combobox/core_listitem_active.png</file>
+ <file>light/listitem/core_listitem_active.png</file>
+ <file>light/listitem/core_listitem_divider.png</file>
+ </qresource>
+</RCC>
diff --git a/src/plugins/styles/bb10style/bb10style.pro b/src/plugins/styles/bb10style/bb10style.pro
new file mode 100644
index 0000000000..ad35df6de7
--- /dev/null
+++ b/src/plugins/styles/bb10style/bb10style.pro
@@ -0,0 +1,28 @@
+TARGET = bb10styleplugin
+
+PLUGIN_TYPE = styles
+PLUGIN_CLASS_NAME = BlackBerry10StylePlugin
+load(qt_plugin)
+
+INCLUDEPATH += $$PWD
+
+QT += widgets
+
+HEADERS += \
+ qpixmapstyle.h \
+ qbb10brightstyle.h \
+ qbb10darkstyle.h \
+ qbb10styleplugin.h
+
+SOURCES += \
+ qpixmapstyle.cpp \
+ qbb10brightstyle.cpp \
+ qbb10darkstyle.cpp \
+ qbb10styleplugin.cpp
+
+RESOURCES += \
+ qbb10brightstyle.qrc \
+ qbb10darkstyle.qrc
+
+OTHER_FILES += qbb10styleplugin.json
+
diff --git a/src/plugins/styles/bb10style/bright/button/core_button_disabled.png b/src/plugins/styles/bb10style/bright/button/core_button_disabled.png
new file mode 100644
index 0000000000..578a2383b8
--- /dev/null
+++ b/src/plugins/styles/bb10style/bright/button/core_button_disabled.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/bright/button/core_button_disabled_selected.png b/src/plugins/styles/bb10style/bright/button/core_button_disabled_selected.png
new file mode 100644
index 0000000000..7cd998af46
--- /dev/null
+++ b/src/plugins/styles/bb10style/bright/button/core_button_disabled_selected.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/bright/button/core_button_enabled_selected.png b/src/plugins/styles/bb10style/bright/button/core_button_enabled_selected.png
new file mode 100644
index 0000000000..ff0850f616
--- /dev/null
+++ b/src/plugins/styles/bb10style/bright/button/core_button_enabled_selected.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/bright/button/core_button_inactive.png b/src/plugins/styles/bb10style/bright/button/core_button_inactive.png
new file mode 100755
index 0000000000..7769f15e44
--- /dev/null
+++ b/src/plugins/styles/bb10style/bright/button/core_button_inactive.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/bright/button/core_button_pressed.png b/src/plugins/styles/bb10style/bright/button/core_button_pressed.png
new file mode 100755
index 0000000000..59b5bfa7c2
--- /dev/null
+++ b/src/plugins/styles/bb10style/bright/button/core_button_pressed.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/bright/checkbox/core_checkbox_checked.png b/src/plugins/styles/bb10style/bright/checkbox/core_checkbox_checked.png
new file mode 100644
index 0000000000..c59f60633c
--- /dev/null
+++ b/src/plugins/styles/bb10style/bright/checkbox/core_checkbox_checked.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/bright/checkbox/core_checkbox_disabled.png b/src/plugins/styles/bb10style/bright/checkbox/core_checkbox_disabled.png
new file mode 100644
index 0000000000..49d9cfdf94
--- /dev/null
+++ b/src/plugins/styles/bb10style/bright/checkbox/core_checkbox_disabled.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/bright/checkbox/core_checkbox_disabled_checked.png b/src/plugins/styles/bb10style/bright/checkbox/core_checkbox_disabled_checked.png
new file mode 100644
index 0000000000..35751553e1
--- /dev/null
+++ b/src/plugins/styles/bb10style/bright/checkbox/core_checkbox_disabled_checked.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/bright/checkbox/core_checkbox_enabled.png b/src/plugins/styles/bb10style/bright/checkbox/core_checkbox_enabled.png
new file mode 100644
index 0000000000..2a0c56b503
--- /dev/null
+++ b/src/plugins/styles/bb10style/bright/checkbox/core_checkbox_enabled.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/bright/checkbox/core_checkbox_pressed.png b/src/plugins/styles/bb10style/bright/checkbox/core_checkbox_pressed.png
new file mode 100755
index 0000000000..f1c2ee3bed
--- /dev/null
+++ b/src/plugins/styles/bb10style/bright/checkbox/core_checkbox_pressed.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/bright/checkbox/core_checkbox_pressed_checked.png b/src/plugins/styles/bb10style/bright/checkbox/core_checkbox_pressed_checked.png
new file mode 100644
index 0000000000..d58df47cbf
--- /dev/null
+++ b/src/plugins/styles/bb10style/bright/checkbox/core_checkbox_pressed_checked.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/bright/combobox/core_dropdown_button.png b/src/plugins/styles/bb10style/bright/combobox/core_dropdown_button.png
new file mode 100644
index 0000000000..1aa844309f
--- /dev/null
+++ b/src/plugins/styles/bb10style/bright/combobox/core_dropdown_button.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/bright/combobox/core_dropdown_button_arrowdown.png b/src/plugins/styles/bb10style/bright/combobox/core_dropdown_button_arrowdown.png
new file mode 100644
index 0000000000..9ac049fb3d
--- /dev/null
+++ b/src/plugins/styles/bb10style/bright/combobox/core_dropdown_button_arrowdown.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/bright/combobox/core_dropdown_button_arrowdown_pressed.png b/src/plugins/styles/bb10style/bright/combobox/core_dropdown_button_arrowdown_pressed.png
new file mode 100644
index 0000000000..d11af56b71
--- /dev/null
+++ b/src/plugins/styles/bb10style/bright/combobox/core_dropdown_button_arrowdown_pressed.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/bright/combobox/core_dropdown_button_arrowup.png b/src/plugins/styles/bb10style/bright/combobox/core_dropdown_button_arrowup.png
new file mode 100644
index 0000000000..d10779d8d7
--- /dev/null
+++ b/src/plugins/styles/bb10style/bright/combobox/core_dropdown_button_arrowup.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/bright/combobox/core_dropdown_button_disabled.png b/src/plugins/styles/bb10style/bright/combobox/core_dropdown_button_disabled.png
new file mode 100644
index 0000000000..f9e1c9465b
--- /dev/null
+++ b/src/plugins/styles/bb10style/bright/combobox/core_dropdown_button_disabled.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/bright/combobox/core_dropdown_button_pressed.png b/src/plugins/styles/bb10style/bright/combobox/core_dropdown_button_pressed.png
new file mode 100644
index 0000000000..27a321e387
--- /dev/null
+++ b/src/plugins/styles/bb10style/bright/combobox/core_dropdown_button_pressed.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/bright/combobox/core_dropdown_checkmark.png b/src/plugins/styles/bb10style/bright/combobox/core_dropdown_checkmark.png
new file mode 100644
index 0000000000..a8270aed56
--- /dev/null
+++ b/src/plugins/styles/bb10style/bright/combobox/core_dropdown_checkmark.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/bright/combobox/core_dropdown_divider.png b/src/plugins/styles/bb10style/bright/combobox/core_dropdown_divider.png
new file mode 100644
index 0000000000..0198293ad6
--- /dev/null
+++ b/src/plugins/styles/bb10style/bright/combobox/core_dropdown_divider.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/bright/combobox/core_dropdown_menu.png b/src/plugins/styles/bb10style/bright/combobox/core_dropdown_menu.png
new file mode 100644
index 0000000000..47e7b2d4b6
--- /dev/null
+++ b/src/plugins/styles/bb10style/bright/combobox/core_dropdown_menu.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/bright/combobox/core_dropdown_menuup.png b/src/plugins/styles/bb10style/bright/combobox/core_dropdown_menuup.png
new file mode 100644
index 0000000000..2bde84e71d
--- /dev/null
+++ b/src/plugins/styles/bb10style/bright/combobox/core_dropdown_menuup.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/bright/combobox/core_listitem_active.png b/src/plugins/styles/bb10style/bright/combobox/core_listitem_active.png
new file mode 100644
index 0000000000..4935d13c05
--- /dev/null
+++ b/src/plugins/styles/bb10style/bright/combobox/core_listitem_active.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/bright/lineedit/core_textinput_bg.png b/src/plugins/styles/bb10style/bright/lineedit/core_textinput_bg.png
new file mode 100755
index 0000000000..07b8ea21bf
--- /dev/null
+++ b/src/plugins/styles/bb10style/bright/lineedit/core_textinput_bg.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/bright/lineedit/core_textinput_bg_disabled.png b/src/plugins/styles/bb10style/bright/lineedit/core_textinput_bg_disabled.png
new file mode 100644
index 0000000000..ab1083e9fa
--- /dev/null
+++ b/src/plugins/styles/bb10style/bright/lineedit/core_textinput_bg_disabled.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/bright/lineedit/core_textinput_bg_highlight.png b/src/plugins/styles/bb10style/bright/lineedit/core_textinput_bg_highlight.png
new file mode 100755
index 0000000000..55f8aee066
--- /dev/null
+++ b/src/plugins/styles/bb10style/bright/lineedit/core_textinput_bg_highlight.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/bright/listitem/core_listitem_active.png b/src/plugins/styles/bb10style/bright/listitem/core_listitem_active.png
new file mode 100755
index 0000000000..34daccc27e
--- /dev/null
+++ b/src/plugins/styles/bb10style/bright/listitem/core_listitem_active.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/bright/listitem/core_listitem_divider.png b/src/plugins/styles/bb10style/bright/listitem/core_listitem_divider.png
new file mode 100755
index 0000000000..7a1e22321d
--- /dev/null
+++ b/src/plugins/styles/bb10style/bright/listitem/core_listitem_divider.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/bright/progressbar/core_progressindicator_bg.png b/src/plugins/styles/bb10style/bright/progressbar/core_progressindicator_bg.png
new file mode 100755
index 0000000000..3ff930dea7
--- /dev/null
+++ b/src/plugins/styles/bb10style/bright/progressbar/core_progressindicator_bg.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/bright/progressbar/core_progressindicator_complete.png b/src/plugins/styles/bb10style/bright/progressbar/core_progressindicator_complete.png
new file mode 100644
index 0000000000..87974668ff
--- /dev/null
+++ b/src/plugins/styles/bb10style/bright/progressbar/core_progressindicator_complete.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/bright/progressbar/core_progressindicator_fill.png b/src/plugins/styles/bb10style/bright/progressbar/core_progressindicator_fill.png
new file mode 100644
index 0000000000..8ff257dad3
--- /dev/null
+++ b/src/plugins/styles/bb10style/bright/progressbar/core_progressindicator_fill.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/bright/progressbar/core_progressindicator_vbg.png b/src/plugins/styles/bb10style/bright/progressbar/core_progressindicator_vbg.png
new file mode 100644
index 0000000000..66cf8cac8f
--- /dev/null
+++ b/src/plugins/styles/bb10style/bright/progressbar/core_progressindicator_vbg.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/bright/progressbar/core_progressindicator_vcomplete.png b/src/plugins/styles/bb10style/bright/progressbar/core_progressindicator_vcomplete.png
new file mode 100644
index 0000000000..f18e0abafb
--- /dev/null
+++ b/src/plugins/styles/bb10style/bright/progressbar/core_progressindicator_vcomplete.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/bright/progressbar/core_progressindicator_vfill.png b/src/plugins/styles/bb10style/bright/progressbar/core_progressindicator_vfill.png
new file mode 100644
index 0000000000..94e388a7aa
--- /dev/null
+++ b/src/plugins/styles/bb10style/bright/progressbar/core_progressindicator_vfill.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/bright/radiobutton/core_radiobutton_checked.png b/src/plugins/styles/bb10style/bright/radiobutton/core_radiobutton_checked.png
new file mode 100644
index 0000000000..5dc5e52d88
--- /dev/null
+++ b/src/plugins/styles/bb10style/bright/radiobutton/core_radiobutton_checked.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/bright/radiobutton/core_radiobutton_disabled.png b/src/plugins/styles/bb10style/bright/radiobutton/core_radiobutton_disabled.png
new file mode 100644
index 0000000000..077aa79c65
--- /dev/null
+++ b/src/plugins/styles/bb10style/bright/radiobutton/core_radiobutton_disabled.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/bright/radiobutton/core_radiobutton_disabled_checked.png b/src/plugins/styles/bb10style/bright/radiobutton/core_radiobutton_disabled_checked.png
new file mode 100644
index 0000000000..439499040a
--- /dev/null
+++ b/src/plugins/styles/bb10style/bright/radiobutton/core_radiobutton_disabled_checked.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/bright/radiobutton/core_radiobutton_inactive.png b/src/plugins/styles/bb10style/bright/radiobutton/core_radiobutton_inactive.png
new file mode 100755
index 0000000000..cb4c6a8136
--- /dev/null
+++ b/src/plugins/styles/bb10style/bright/radiobutton/core_radiobutton_inactive.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/bright/radiobutton/core_radiobutton_pressed.png b/src/plugins/styles/bb10style/bright/radiobutton/core_radiobutton_pressed.png
new file mode 100755
index 0000000000..88fd1344d2
--- /dev/null
+++ b/src/plugins/styles/bb10style/bright/radiobutton/core_radiobutton_pressed.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/bright/scrollbar/core_scrollbar.png b/src/plugins/styles/bb10style/bright/scrollbar/core_scrollbar.png
new file mode 100755
index 0000000000..79154e0568
--- /dev/null
+++ b/src/plugins/styles/bb10style/bright/scrollbar/core_scrollbar.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/bright/scrollbar/core_scrollbar_v.png b/src/plugins/styles/bb10style/bright/scrollbar/core_scrollbar_v.png
new file mode 100644
index 0000000000..169a4e1656
--- /dev/null
+++ b/src/plugins/styles/bb10style/bright/scrollbar/core_scrollbar_v.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/bright/slider/core_slider_active.png b/src/plugins/styles/bb10style/bright/slider/core_slider_active.png
new file mode 100644
index 0000000000..c23c0ebc26
--- /dev/null
+++ b/src/plugins/styles/bb10style/bright/slider/core_slider_active.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/bright/slider/core_slider_cache.png b/src/plugins/styles/bb10style/bright/slider/core_slider_cache.png
new file mode 100644
index 0000000000..6b7224d702
--- /dev/null
+++ b/src/plugins/styles/bb10style/bright/slider/core_slider_cache.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/bright/slider/core_slider_disabled.png b/src/plugins/styles/bb10style/bright/slider/core_slider_disabled.png
new file mode 100644
index 0000000000..9de7567e68
--- /dev/null
+++ b/src/plugins/styles/bb10style/bright/slider/core_slider_disabled.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/bright/slider/core_slider_enabled.png b/src/plugins/styles/bb10style/bright/slider/core_slider_enabled.png
new file mode 100644
index 0000000000..ad5c35076c
--- /dev/null
+++ b/src/plugins/styles/bb10style/bright/slider/core_slider_enabled.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/bright/slider/core_slider_handle.png b/src/plugins/styles/bb10style/bright/slider/core_slider_handle.png
new file mode 100644
index 0000000000..076e272794
--- /dev/null
+++ b/src/plugins/styles/bb10style/bright/slider/core_slider_handle.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/bright/slider/core_slider_handle_disabled.png b/src/plugins/styles/bb10style/bright/slider/core_slider_handle_disabled.png
new file mode 100644
index 0000000000..5989fcaaeb
--- /dev/null
+++ b/src/plugins/styles/bb10style/bright/slider/core_slider_handle_disabled.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/bright/slider/core_slider_handle_pressed.png b/src/plugins/styles/bb10style/bright/slider/core_slider_handle_pressed.png
new file mode 100755
index 0000000000..8cb79118b9
--- /dev/null
+++ b/src/plugins/styles/bb10style/bright/slider/core_slider_handle_pressed.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/bright/slider/core_slider_inactive.png b/src/plugins/styles/bb10style/bright/slider/core_slider_inactive.png
new file mode 100644
index 0000000000..8836534923
--- /dev/null
+++ b/src/plugins/styles/bb10style/bright/slider/core_slider_inactive.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/bright/slider/core_slider_vactive.png b/src/plugins/styles/bb10style/bright/slider/core_slider_vactive.png
new file mode 100644
index 0000000000..03062326f2
--- /dev/null
+++ b/src/plugins/styles/bb10style/bright/slider/core_slider_vactive.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/bright/slider/core_slider_vcache.png b/src/plugins/styles/bb10style/bright/slider/core_slider_vcache.png
new file mode 100644
index 0000000000..b0d94d7127
--- /dev/null
+++ b/src/plugins/styles/bb10style/bright/slider/core_slider_vcache.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/bright/slider/core_slider_vdisabled.png b/src/plugins/styles/bb10style/bright/slider/core_slider_vdisabled.png
new file mode 100644
index 0000000000..ce99b1a3ac
--- /dev/null
+++ b/src/plugins/styles/bb10style/bright/slider/core_slider_vdisabled.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/bright/slider/core_slider_venabled.png b/src/plugins/styles/bb10style/bright/slider/core_slider_venabled.png
new file mode 100644
index 0000000000..910b6627d4
--- /dev/null
+++ b/src/plugins/styles/bb10style/bright/slider/core_slider_venabled.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/bright/slider/core_slider_vinactive.png b/src/plugins/styles/bb10style/bright/slider/core_slider_vinactive.png
new file mode 100644
index 0000000000..18a9819af8
--- /dev/null
+++ b/src/plugins/styles/bb10style/bright/slider/core_slider_vinactive.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/dark/button/core_button_disabled.png b/src/plugins/styles/bb10style/dark/button/core_button_disabled.png
new file mode 100644
index 0000000000..79245dbf11
--- /dev/null
+++ b/src/plugins/styles/bb10style/dark/button/core_button_disabled.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/dark/button/core_button_disabled_selected.png b/src/plugins/styles/bb10style/dark/button/core_button_disabled_selected.png
new file mode 100644
index 0000000000..5eb86b70f3
--- /dev/null
+++ b/src/plugins/styles/bb10style/dark/button/core_button_disabled_selected.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/dark/button/core_button_enabled_selected.png b/src/plugins/styles/bb10style/dark/button/core_button_enabled_selected.png
new file mode 100644
index 0000000000..7b1a6ce40b
--- /dev/null
+++ b/src/plugins/styles/bb10style/dark/button/core_button_enabled_selected.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/dark/button/core_button_inactive.png b/src/plugins/styles/bb10style/dark/button/core_button_inactive.png
new file mode 100755
index 0000000000..97842e1ac4
--- /dev/null
+++ b/src/plugins/styles/bb10style/dark/button/core_button_inactive.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/dark/button/core_button_pressed.png b/src/plugins/styles/bb10style/dark/button/core_button_pressed.png
new file mode 100755
index 0000000000..c149b64a26
--- /dev/null
+++ b/src/plugins/styles/bb10style/dark/button/core_button_pressed.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/dark/checkbox/core_checkbox_checked.png b/src/plugins/styles/bb10style/dark/checkbox/core_checkbox_checked.png
new file mode 100644
index 0000000000..5a8af33094
--- /dev/null
+++ b/src/plugins/styles/bb10style/dark/checkbox/core_checkbox_checked.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/dark/checkbox/core_checkbox_disabled.png b/src/plugins/styles/bb10style/dark/checkbox/core_checkbox_disabled.png
new file mode 100644
index 0000000000..74a24522fa
--- /dev/null
+++ b/src/plugins/styles/bb10style/dark/checkbox/core_checkbox_disabled.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/dark/checkbox/core_checkbox_disabled_checked.png b/src/plugins/styles/bb10style/dark/checkbox/core_checkbox_disabled_checked.png
new file mode 100644
index 0000000000..1e953221b6
--- /dev/null
+++ b/src/plugins/styles/bb10style/dark/checkbox/core_checkbox_disabled_checked.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/dark/checkbox/core_checkbox_enabled.png b/src/plugins/styles/bb10style/dark/checkbox/core_checkbox_enabled.png
new file mode 100644
index 0000000000..5e51e7f39b
--- /dev/null
+++ b/src/plugins/styles/bb10style/dark/checkbox/core_checkbox_enabled.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/dark/checkbox/core_checkbox_pressed.png b/src/plugins/styles/bb10style/dark/checkbox/core_checkbox_pressed.png
new file mode 100755
index 0000000000..507a77b3ea
--- /dev/null
+++ b/src/plugins/styles/bb10style/dark/checkbox/core_checkbox_pressed.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/dark/checkbox/core_checkbox_pressed_checked.png b/src/plugins/styles/bb10style/dark/checkbox/core_checkbox_pressed_checked.png
new file mode 100644
index 0000000000..7fa85428a0
--- /dev/null
+++ b/src/plugins/styles/bb10style/dark/checkbox/core_checkbox_pressed_checked.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/dark/combobox/core_dropdown_button.png b/src/plugins/styles/bb10style/dark/combobox/core_dropdown_button.png
new file mode 100644
index 0000000000..a68d93acb5
--- /dev/null
+++ b/src/plugins/styles/bb10style/dark/combobox/core_dropdown_button.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/dark/combobox/core_dropdown_button_arrowdown.png b/src/plugins/styles/bb10style/dark/combobox/core_dropdown_button_arrowdown.png
new file mode 100644
index 0000000000..4c1d085360
--- /dev/null
+++ b/src/plugins/styles/bb10style/dark/combobox/core_dropdown_button_arrowdown.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/dark/combobox/core_dropdown_button_arrowdown_pressed.png b/src/plugins/styles/bb10style/dark/combobox/core_dropdown_button_arrowdown_pressed.png
new file mode 100644
index 0000000000..1ee578e07c
--- /dev/null
+++ b/src/plugins/styles/bb10style/dark/combobox/core_dropdown_button_arrowdown_pressed.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/dark/combobox/core_dropdown_button_arrowup.png b/src/plugins/styles/bb10style/dark/combobox/core_dropdown_button_arrowup.png
new file mode 100644
index 0000000000..3239ef4bd6
--- /dev/null
+++ b/src/plugins/styles/bb10style/dark/combobox/core_dropdown_button_arrowup.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/dark/combobox/core_dropdown_button_disabled.png b/src/plugins/styles/bb10style/dark/combobox/core_dropdown_button_disabled.png
new file mode 100644
index 0000000000..af6793b87c
--- /dev/null
+++ b/src/plugins/styles/bb10style/dark/combobox/core_dropdown_button_disabled.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/dark/combobox/core_dropdown_button_pressed.png b/src/plugins/styles/bb10style/dark/combobox/core_dropdown_button_pressed.png
new file mode 100644
index 0000000000..df6d402554
--- /dev/null
+++ b/src/plugins/styles/bb10style/dark/combobox/core_dropdown_button_pressed.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/dark/combobox/core_dropdown_checkmark.png b/src/plugins/styles/bb10style/dark/combobox/core_dropdown_checkmark.png
new file mode 100644
index 0000000000..578c80aa5f
--- /dev/null
+++ b/src/plugins/styles/bb10style/dark/combobox/core_dropdown_checkmark.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/dark/combobox/core_dropdown_divider.png b/src/plugins/styles/bb10style/dark/combobox/core_dropdown_divider.png
new file mode 100644
index 0000000000..43b1025d36
--- /dev/null
+++ b/src/plugins/styles/bb10style/dark/combobox/core_dropdown_divider.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/dark/combobox/core_dropdown_menu.png b/src/plugins/styles/bb10style/dark/combobox/core_dropdown_menu.png
new file mode 100644
index 0000000000..1f52362050
--- /dev/null
+++ b/src/plugins/styles/bb10style/dark/combobox/core_dropdown_menu.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/dark/combobox/core_dropdown_menuup.png b/src/plugins/styles/bb10style/dark/combobox/core_dropdown_menuup.png
new file mode 100644
index 0000000000..62c7a2e558
--- /dev/null
+++ b/src/plugins/styles/bb10style/dark/combobox/core_dropdown_menuup.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/dark/combobox/core_listitem_active.png b/src/plugins/styles/bb10style/dark/combobox/core_listitem_active.png
new file mode 100644
index 0000000000..1df4a7aad9
--- /dev/null
+++ b/src/plugins/styles/bb10style/dark/combobox/core_listitem_active.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/dark/lineedit/core_textinput_bg.png b/src/plugins/styles/bb10style/dark/lineedit/core_textinput_bg.png
new file mode 100755
index 0000000000..07b8ea21bf
--- /dev/null
+++ b/src/plugins/styles/bb10style/dark/lineedit/core_textinput_bg.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/dark/lineedit/core_textinput_bg_disabled.png b/src/plugins/styles/bb10style/dark/lineedit/core_textinput_bg_disabled.png
new file mode 100644
index 0000000000..6bcaf91f87
--- /dev/null
+++ b/src/plugins/styles/bb10style/dark/lineedit/core_textinput_bg_disabled.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/dark/lineedit/core_textinput_bg_highlight.png b/src/plugins/styles/bb10style/dark/lineedit/core_textinput_bg_highlight.png
new file mode 100755
index 0000000000..9b115897e8
--- /dev/null
+++ b/src/plugins/styles/bb10style/dark/lineedit/core_textinput_bg_highlight.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/dark/listitem/core_listitem_active.png b/src/plugins/styles/bb10style/dark/listitem/core_listitem_active.png
new file mode 100755
index 0000000000..52aa4e4aa2
--- /dev/null
+++ b/src/plugins/styles/bb10style/dark/listitem/core_listitem_active.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/dark/listitem/core_listitem_divider.png b/src/plugins/styles/bb10style/dark/listitem/core_listitem_divider.png
new file mode 100755
index 0000000000..39e3a8a4f5
--- /dev/null
+++ b/src/plugins/styles/bb10style/dark/listitem/core_listitem_divider.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/dark/progressbar/core_progressindicator_bg.png b/src/plugins/styles/bb10style/dark/progressbar/core_progressindicator_bg.png
new file mode 100755
index 0000000000..95fcafb437
--- /dev/null
+++ b/src/plugins/styles/bb10style/dark/progressbar/core_progressindicator_bg.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/dark/progressbar/core_progressindicator_complete.png b/src/plugins/styles/bb10style/dark/progressbar/core_progressindicator_complete.png
new file mode 100644
index 0000000000..e849c8f179
--- /dev/null
+++ b/src/plugins/styles/bb10style/dark/progressbar/core_progressindicator_complete.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/dark/progressbar/core_progressindicator_fill.png b/src/plugins/styles/bb10style/dark/progressbar/core_progressindicator_fill.png
new file mode 100644
index 0000000000..e8fd3b0173
--- /dev/null
+++ b/src/plugins/styles/bb10style/dark/progressbar/core_progressindicator_fill.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/dark/progressbar/core_progressindicator_vbg.png b/src/plugins/styles/bb10style/dark/progressbar/core_progressindicator_vbg.png
new file mode 100644
index 0000000000..1433f3ec33
--- /dev/null
+++ b/src/plugins/styles/bb10style/dark/progressbar/core_progressindicator_vbg.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/dark/progressbar/core_progressindicator_vcomplete.png b/src/plugins/styles/bb10style/dark/progressbar/core_progressindicator_vcomplete.png
new file mode 100644
index 0000000000..d750e4671c
--- /dev/null
+++ b/src/plugins/styles/bb10style/dark/progressbar/core_progressindicator_vcomplete.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/dark/progressbar/core_progressindicator_vfill.png b/src/plugins/styles/bb10style/dark/progressbar/core_progressindicator_vfill.png
new file mode 100644
index 0000000000..2c3c0a5e6c
--- /dev/null
+++ b/src/plugins/styles/bb10style/dark/progressbar/core_progressindicator_vfill.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/dark/radiobutton/core_radiobutton_checked.png b/src/plugins/styles/bb10style/dark/radiobutton/core_radiobutton_checked.png
new file mode 100644
index 0000000000..1721586ac5
--- /dev/null
+++ b/src/plugins/styles/bb10style/dark/radiobutton/core_radiobutton_checked.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/dark/radiobutton/core_radiobutton_disabled.png b/src/plugins/styles/bb10style/dark/radiobutton/core_radiobutton_disabled.png
new file mode 100644
index 0000000000..e646c9174b
--- /dev/null
+++ b/src/plugins/styles/bb10style/dark/radiobutton/core_radiobutton_disabled.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/dark/radiobutton/core_radiobutton_disabled_checked.png b/src/plugins/styles/bb10style/dark/radiobutton/core_radiobutton_disabled_checked.png
new file mode 100644
index 0000000000..93b3118e8d
--- /dev/null
+++ b/src/plugins/styles/bb10style/dark/radiobutton/core_radiobutton_disabled_checked.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/dark/radiobutton/core_radiobutton_inactive.png b/src/plugins/styles/bb10style/dark/radiobutton/core_radiobutton_inactive.png
new file mode 100755
index 0000000000..fd61937d65
--- /dev/null
+++ b/src/plugins/styles/bb10style/dark/radiobutton/core_radiobutton_inactive.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/dark/radiobutton/core_radiobutton_pressed.png b/src/plugins/styles/bb10style/dark/radiobutton/core_radiobutton_pressed.png
new file mode 100755
index 0000000000..58a1a57b4c
--- /dev/null
+++ b/src/plugins/styles/bb10style/dark/radiobutton/core_radiobutton_pressed.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/dark/scrollbar/core_scrollbar.png b/src/plugins/styles/bb10style/dark/scrollbar/core_scrollbar.png
new file mode 100755
index 0000000000..384f60758a
--- /dev/null
+++ b/src/plugins/styles/bb10style/dark/scrollbar/core_scrollbar.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/dark/scrollbar/core_scrollbar_v.png b/src/plugins/styles/bb10style/dark/scrollbar/core_scrollbar_v.png
new file mode 100644
index 0000000000..2542f2acaf
--- /dev/null
+++ b/src/plugins/styles/bb10style/dark/scrollbar/core_scrollbar_v.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/dark/slider/core_slider_active.png b/src/plugins/styles/bb10style/dark/slider/core_slider_active.png
new file mode 100644
index 0000000000..6bdb413ced
--- /dev/null
+++ b/src/plugins/styles/bb10style/dark/slider/core_slider_active.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/dark/slider/core_slider_cache.png b/src/plugins/styles/bb10style/dark/slider/core_slider_cache.png
new file mode 100644
index 0000000000..eea5b3d78e
--- /dev/null
+++ b/src/plugins/styles/bb10style/dark/slider/core_slider_cache.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/dark/slider/core_slider_disabled.png b/src/plugins/styles/bb10style/dark/slider/core_slider_disabled.png
new file mode 100644
index 0000000000..6a233315e4
--- /dev/null
+++ b/src/plugins/styles/bb10style/dark/slider/core_slider_disabled.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/dark/slider/core_slider_enabled.png b/src/plugins/styles/bb10style/dark/slider/core_slider_enabled.png
new file mode 100644
index 0000000000..2b297e5ca2
--- /dev/null
+++ b/src/plugins/styles/bb10style/dark/slider/core_slider_enabled.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/dark/slider/core_slider_handle.png b/src/plugins/styles/bb10style/dark/slider/core_slider_handle.png
new file mode 100644
index 0000000000..fbd37e5584
--- /dev/null
+++ b/src/plugins/styles/bb10style/dark/slider/core_slider_handle.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/dark/slider/core_slider_handle_disabled.png b/src/plugins/styles/bb10style/dark/slider/core_slider_handle_disabled.png
new file mode 100644
index 0000000000..49cb6a42a7
--- /dev/null
+++ b/src/plugins/styles/bb10style/dark/slider/core_slider_handle_disabled.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/dark/slider/core_slider_handle_pressed.png b/src/plugins/styles/bb10style/dark/slider/core_slider_handle_pressed.png
new file mode 100755
index 0000000000..803c374015
--- /dev/null
+++ b/src/plugins/styles/bb10style/dark/slider/core_slider_handle_pressed.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/dark/slider/core_slider_inactive.png b/src/plugins/styles/bb10style/dark/slider/core_slider_inactive.png
new file mode 100644
index 0000000000..08a1aecb6c
--- /dev/null
+++ b/src/plugins/styles/bb10style/dark/slider/core_slider_inactive.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/dark/slider/core_slider_vactive.png b/src/plugins/styles/bb10style/dark/slider/core_slider_vactive.png
new file mode 100644
index 0000000000..c8e467d9e6
--- /dev/null
+++ b/src/plugins/styles/bb10style/dark/slider/core_slider_vactive.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/dark/slider/core_slider_vcache.png b/src/plugins/styles/bb10style/dark/slider/core_slider_vcache.png
new file mode 100644
index 0000000000..ff160cbb1d
--- /dev/null
+++ b/src/plugins/styles/bb10style/dark/slider/core_slider_vcache.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/dark/slider/core_slider_vdisabled.png b/src/plugins/styles/bb10style/dark/slider/core_slider_vdisabled.png
new file mode 100644
index 0000000000..27d348122b
--- /dev/null
+++ b/src/plugins/styles/bb10style/dark/slider/core_slider_vdisabled.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/dark/slider/core_slider_venabled.png b/src/plugins/styles/bb10style/dark/slider/core_slider_venabled.png
new file mode 100644
index 0000000000..ff8a74a19f
--- /dev/null
+++ b/src/plugins/styles/bb10style/dark/slider/core_slider_venabled.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/dark/slider/core_slider_vinactive.png b/src/plugins/styles/bb10style/dark/slider/core_slider_vinactive.png
new file mode 100644
index 0000000000..b2b19a5460
--- /dev/null
+++ b/src/plugins/styles/bb10style/dark/slider/core_slider_vinactive.png
Binary files differ
diff --git a/src/plugins/styles/bb10style/qbb10brightstyle.cpp b/src/plugins/styles/bb10style/qbb10brightstyle.cpp
new file mode 100644
index 0000000000..8e6da406ea
--- /dev/null
+++ b/src/plugins/styles/bb10style/qbb10brightstyle.cpp
@@ -0,0 +1,352 @@
+/***************************************************************************
+**
+** Copyright (C) 2014 BlackBerry Limited. All rights reserved.
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qbb10brightstyle.h"
+
+#include <QApplication>
+#include <QFont>
+#include <QStyleOption>
+#include <QProgressBar>
+#include <QComboBox>
+#include <QAbstractItemView>
+#include <QPainter>
+
+QT_BEGIN_NAMESPACE
+
+QBB10BrightStyle::QBB10BrightStyle() :
+ QPixmapStyle()
+{
+ addDescriptor(PB_Enabled,
+ QLatin1String("://bright/button/core_button_inactive.png"),
+ QMargins(13, 13, 13, 13),
+ QTileRules(Qt::RepeatTile, Qt::StretchTile));
+ addDescriptor(PB_Checked,
+ QLatin1String("://bright/button/core_button_enabled_selected.png"),
+ QMargins(13, 13, 13, 13),
+ QTileRules(Qt::RepeatTile, Qt::StretchTile));
+ addDescriptor(PB_Pressed,
+ QLatin1String("://bright/button/core_button_pressed.png"),
+ QMargins(13, 13, 13, 13),
+ QTileRules(Qt::RepeatTile, Qt::StretchTile));
+ addDescriptor(PB_Disabled,
+ QLatin1String("://bright/button/core_button_disabled.png"),
+ QMargins(13, 13, 13, 13),
+ QTileRules(Qt::RepeatTile, Qt::StretchTile));
+ addDescriptor(PB_PressedDisabled,
+ QLatin1String("://bright/button/core_button_disabled_selected.png"),
+ QMargins(13, 13, 13, 13),
+ QTileRules(Qt::RepeatTile, Qt::StretchTile));
+
+ addDescriptor(LE_Enabled,
+ QLatin1String("://bright/lineedit/core_textinput_bg.png"),
+ QMargins(8, 8, 8, 8));
+ addDescriptor(LE_Disabled,
+ QLatin1String("://bright/lineedit/core_textinput_bg_disabled.png"),
+ QMargins(8, 8, 8, 8));
+ addDescriptor(LE_Focused,
+ QLatin1String("://bright/lineedit/core_textinput_bg_highlight.png"),
+ QMargins(8, 8, 8, 8));
+
+ copyDescriptor(LE_Enabled, TE_Enabled);
+ copyDescriptor(LE_Disabled, TE_Disabled);
+ copyDescriptor(LE_Focused, TE_Focused);
+
+ addPixmap(CB_Enabled,
+ QLatin1String("://bright/checkbox/core_checkbox_enabled.png"),
+ QMargins(16, 16, 16, 16));
+ addPixmap(CB_Checked,
+ QLatin1String("://bright/checkbox/core_checkbox_checked.png"),
+ QMargins(16, 16, 16, 16));
+ addPixmap(CB_Pressed,
+ QLatin1String("://bright/checkbox/core_checkbox_pressed.png"),
+ QMargins(16, 16, 16, 16));
+ addPixmap(CB_PressedChecked,
+ QLatin1String("://bright/checkbox/core_checkbox_pressed_checked.png"),
+ QMargins(16, 16, 16, 16));
+ addPixmap(CB_Disabled,
+ QLatin1String("://bright/checkbox/core_checkbox_disabled.png"),
+ QMargins(16, 16, 16, 16));
+ addPixmap(CB_DisabledChecked,
+ QLatin1String("://bright/checkbox/core_checkbox_disabled_checked.png"),
+ QMargins(16, 16, 16, 16));
+
+ addPixmap(RB_Enabled,
+ QLatin1String("://bright/radiobutton/core_radiobutton_inactive.png"),
+ QMargins(16, 16, 16, 16));
+ addPixmap(RB_Checked,
+ QLatin1String("://bright/radiobutton/core_radiobutton_checked.png"),
+ QMargins(16, 16, 16, 16));
+ addPixmap(RB_Pressed,
+ QLatin1String("://bright/radiobutton/core_radiobutton_pressed.png"),
+ QMargins(16, 16, 16, 16));
+ addPixmap(RB_Disabled,
+ QLatin1String("://bright/radiobutton/core_radiobutton_disabled.png"),
+ QMargins(16, 16, 16, 16));
+ addPixmap(RB_DisabledChecked,
+ QLatin1String("://bright/radiobutton/core_radiobutton_disabled_checked.png"),
+ QMargins(16, 16, 16, 16));
+
+ addDescriptor(PB_HBackground,
+ QLatin1String("://bright/progressbar/core_progressindicator_bg.png"),
+ QMargins(10, 10, 10, 10),
+ QTileRules(Qt::RepeatTile, Qt::StretchTile));
+ addDescriptor(PB_HContent,
+ QLatin1String("://bright/progressbar/core_progressindicator_fill.png"),
+ QMargins(10, 10, 10, 10),
+ QTileRules(Qt::RepeatTile, Qt::StretchTile));
+ addDescriptor(PB_HComplete,
+ QLatin1String("://bright/progressbar/core_progressindicator_complete.png"),
+ QMargins(10, 10, 10, 10),
+ QTileRules(Qt::RepeatTile, Qt::StretchTile));
+ addDescriptor(PB_VBackground,
+ QLatin1String("://bright/progressbar/core_progressindicator_vbg.png"),
+ QMargins(10, 10, 10, 10),
+ QTileRules(Qt::StretchTile, Qt::RepeatTile));
+ addDescriptor(PB_VContent,
+ QLatin1String("://bright/progressbar/core_progressindicator_vfill.png"),
+ QMargins(10, 10, 10, 10),
+ QTileRules(Qt::StretchTile, Qt::RepeatTile));
+ addDescriptor(PB_VComplete,
+ QLatin1String("://bright/progressbar/core_progressindicator_vcomplete.png"),
+ QMargins(10, 10, 10, 10),
+ QTileRules(Qt::StretchTile, Qt::RepeatTile));
+
+ addDescriptor(SG_HEnabled,
+ QLatin1String("://bright/slider/core_slider_enabled.png"),
+ QMargins(50, 50, 50, 50),
+ QTileRules(Qt::RepeatTile, Qt::StretchTile));
+ addDescriptor(SG_HDisabled,
+ QLatin1String("://bright/slider/core_slider_disabled.png"),
+ QMargins(50, 50, 50, 50),
+ QTileRules(Qt::RepeatTile, Qt::StretchTile));
+ addDescriptor(SG_HActiveEnabled,
+ QLatin1String("://bright/slider/core_slider_inactive.png"),
+ QMargins(50, 50, 50, 50),
+ QTileRules(Qt::RepeatTile, Qt::StretchTile));
+ addDescriptor(SG_HActivePressed,
+ QLatin1String("://bright/slider/core_slider_active.png"),
+ QMargins(50, 50, 50, 50),
+ QTileRules(Qt::RepeatTile, Qt::StretchTile));
+ addDescriptor(SG_HActiveDisabled,
+ QLatin1String("://bright/slider/core_slider_cache.png"),
+ QMargins(50, 50, 50, 50),
+ QTileRules(Qt::RepeatTile, Qt::StretchTile));
+ addDescriptor(SG_VEnabled,
+ QLatin1String("://bright/slider/core_slider_venabled.png"),
+ QMargins(50, 50, 50, 50),
+ QTileRules(Qt::StretchTile, Qt::RepeatTile));
+ addDescriptor(SG_VDisabled,
+ QLatin1String("://bright/slider/core_slider_vdisabled.png"),
+ QMargins(50, 50, 50, 50),
+ QTileRules(Qt::StretchTile, Qt::RepeatTile));
+ addDescriptor(SG_VActiveEnabled,
+ QLatin1String("://bright/slider/core_slider_vinactive.png"),
+ QMargins(50, 50, 50, 50),
+ QTileRules(Qt::StretchTile, Qt::RepeatTile));
+ addDescriptor(SG_VActivePressed,
+ QLatin1String("://bright/slider/core_slider_vactive.png"),
+ QMargins(50, 50, 50, 50),
+ QTileRules(Qt::StretchTile, Qt::RepeatTile));
+ addDescriptor(SG_VActiveDisabled,
+ QLatin1String("://bright/slider/core_slider_vcache.png"),
+ QMargins(50, 50, 50, 50),
+ QTileRules(Qt::StretchTile, Qt::RepeatTile));
+
+ addPixmap(SH_HEnabled,
+ QLatin1String("://bright/slider/core_slider_handle.png"));
+ addPixmap(SH_HDisabled,
+ QLatin1String("://bright/slider/core_slider_handle_disabled.png"));
+ addPixmap(SH_HPressed,
+ QLatin1String("://bright/slider/core_slider_handle_pressed.png"));
+ addPixmap(SH_VEnabled,
+ QLatin1String("://bright/slider/core_slider_handle.png"));
+ addPixmap(SH_VDisabled,
+ QLatin1String("://bright/slider/core_slider_handle_disabled.png"));
+ addPixmap(SH_VPressed,
+ QLatin1String("://bright/slider/core_slider_handle_pressed.png"));
+
+ addDescriptor(DD_ButtonEnabled,
+ QLatin1String("://bright/combobox/core_dropdown_button.png"),
+ QMargins(14, 14, 14, 14),
+ QTileRules(Qt::RepeatTile, Qt::StretchTile));
+ addDescriptor(DD_ButtonDisabled,
+ QLatin1String("://bright/combobox/core_dropdown_button_disabled.png"),
+ QMargins(14, 14, 14, 14),
+ QTileRules(Qt::RepeatTile, Qt::StretchTile));
+ addDescriptor(DD_ButtonPressed,
+ QLatin1String("://bright/combobox/core_dropdown_button_pressed.png"),
+ QMargins(14, 14, 14, 14),
+ QTileRules(Qt::RepeatTile, Qt::StretchTile));
+ addDescriptor(DD_ItemSelected,
+ QLatin1String("://bright/combobox/core_listitem_active.png"));
+
+ addPixmap(DD_ArrowEnabled,
+ QLatin1String("://bright/combobox/core_dropdown_button_arrowdown.png"),
+ QMargins(35, 39, 35, 39));
+ copyPixmap(DD_ArrowEnabled, DD_ArrowDisabled);
+ addPixmap(DD_ArrowPressed,
+ QLatin1String("://bright/combobox/core_dropdown_button_arrowdown_pressed.png"),
+ QMargins(35, 39, 35, 39));
+ addPixmap(DD_ArrowOpen,
+ QLatin1String("://bright/combobox/core_dropdown_button_arrowup.png"),
+ QMargins(35, 39, 35, 39));
+ addDescriptor(DD_PopupDown,
+ QLatin1String("://bright/combobox/core_dropdown_menu.png"),
+ QMargins(12, 12, 12, 12),
+ QTileRules(Qt::StretchTile, Qt::StretchTile));
+ addDescriptor(DD_PopupUp,
+ QLatin1String("://bright/combobox/core_dropdown_menuup.png"),
+ QMargins(12, 12, 12, 12),
+ QTileRules(Qt::StretchTile, Qt::StretchTile));
+ addPixmap(DD_ItemSeparator,
+ QLatin1String("://bright/combobox/core_dropdown_divider.png"),
+ QMargins(5, 0, 5, 0));
+
+ addDescriptor(ID_Selected,
+ QLatin1String("://bright/listitem/core_listitem_active.png"));
+ addPixmap(ID_Separator,
+ QLatin1String("://bright/listitem/core_listitem_divider.png"));
+
+ addDescriptor(SB_Horizontal,
+ QLatin1String("://bright/scrollbar/core_scrollbar.png"),
+ QMargins(7, 8, 7, 8),
+ QTileRules(Qt::RepeatTile, Qt::StretchTile));
+ addDescriptor(SB_Vertical,
+ QLatin1String("://bright/scrollbar/core_scrollbar_v.png"),
+ QMargins(8, 7, 8, 7),
+ QTileRules(Qt::StretchTile, Qt::RepeatTile));
+}
+
+QBB10BrightStyle::~QBB10BrightStyle()
+{
+}
+
+void QBB10BrightStyle::polish(QApplication *application)
+{
+ QPixmapStyle::polish(application);
+}
+
+void QBB10BrightStyle::polish(QWidget *widget)
+{
+ // Hide the text by default
+ if (QProgressBar *pb = qobject_cast<QProgressBar*>(widget))
+ pb->setTextVisible(false);
+
+ if (QComboBox *cb = qobject_cast<QComboBox*>(widget)) {
+ QAbstractItemView *list = cb->view();
+ QPalette p = list->palette();
+ p.setBrush(QPalette::HighlightedText, p.brush(QPalette::Text));
+ list->setPalette(p);
+ }
+
+ if (qobject_cast<QAbstractItemView*>(widget)) {
+ QPalette p = widget->palette();
+ p.setBrush(QPalette::Disabled, QPalette::HighlightedText, p.brush(QPalette::Text));
+ widget->setPalette(p);
+ }
+
+ QPixmapStyle::polish(widget);
+}
+
+QPalette QBB10BrightStyle::standardPalette() const
+{
+ QPalette p;
+
+ QColor color = QColor(38, 38, 38);
+ p.setBrush(QPalette::ButtonText, color);
+ p.setBrush(QPalette::WindowText, color);
+ p.setBrush(QPalette::Text, color);
+
+ color.setAlpha(179);
+ p.setBrush(QPalette::Disabled, QPalette::ButtonText, color);
+ p.setBrush(QPalette::Disabled, QPalette::WindowText, color);
+ p.setBrush(QPalette::Disabled, QPalette::Text, color);
+
+ p.setColor(QPalette::Window, QColor(248, 248, 248));
+
+ p.setBrush(QPalette::Highlight, QColor(0, 168, 223));
+ p.setBrush(QPalette::HighlightedText, QColor(250, 250,250));
+
+ return p;
+}
+
+void QBB10BrightStyle::drawControl(QStyle::ControlElement element, const QStyleOption *option,
+ QPainter *painter, const QWidget *widget) const
+{
+ switch (element) {
+ case CE_PushButtonLabel:
+ {
+ const bool on = option->state & State_On || option->state & State_Sunken;
+ const QStyleOptionButton *button = qstyleoption_cast<const QStyleOptionButton*>(option);
+ QStyleOptionButton newOpt = *button;
+ if (on)
+ newOpt.palette.setBrush(QPalette::ButtonText, QColor(250, 250, 250));
+ QPixmapStyle::drawControl(CE_PushButtonLabel, &newOpt, painter, widget);
+ break;
+ }
+ case CE_ProgressBarLabel:
+ // Don't draw the progress bar label
+ break;
+ default:
+ QPixmapStyle::drawControl(element, option, painter, widget);
+ }
+}
+
+void QBB10BrightStyle::drawPrimitive(QStyle::PrimitiveElement element, const QStyleOption *option,
+ QPainter *painter, const QWidget *widget) const
+{
+ QPixmapStyle::drawPrimitive(element, option, painter, widget);
+
+ if (element == PE_PanelItemViewItem) {
+ // Draw the checkbox for current item
+ if (widget->property("_pixmap_combobox_list").toBool()
+ && option->state & QStyle::State_Selected) {
+ QPixmap pix(QLatin1String("://bright/combobox/core_dropdown_checkmark.png"));
+ QRect rect = option->rect;
+ const int margin = rect.height() / 2;
+ QPoint pos(rect.right() - margin - pix.width() / 2,
+ rect.top() + margin - pix.height() / 2);
+ painter->drawPixmap(pos, pix);
+ }
+ }
+}
+
+QT_END_NAMESPACE
diff --git a/src/plugins/styles/bb10style/qbb10brightstyle.h b/src/plugins/styles/bb10style/qbb10brightstyle.h
new file mode 100644
index 0000000000..4a63b1dc48
--- /dev/null
+++ b/src/plugins/styles/bb10style/qbb10brightstyle.h
@@ -0,0 +1,70 @@
+/***************************************************************************
+**
+** Copyright (C) 2014 BlackBerry Limited. All rights reserved.
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QBB10BRIGHTSTYLE_H
+#define QBB10BRIGHTSTYLE_H
+
+#include "qpixmapstyle.h"
+
+QT_BEGIN_NAMESPACE
+
+class QBB10BrightStyle : public QPixmapStyle
+{
+ Q_OBJECT
+
+public:
+ QBB10BrightStyle();
+ ~QBB10BrightStyle();
+
+ void polish(QApplication *application);
+ void polish(QWidget *widget);
+
+ QPalette standardPalette() const;
+
+ void drawControl(ControlElement element, const QStyleOption *option,
+ QPainter *painter, const QWidget *widget = 0) const;
+ void drawPrimitive(PrimitiveElement element, const QStyleOption *option,
+ QPainter *painter, const QWidget *widget) const;
+};
+
+QT_END_NAMESPACE
+
+#endif // QBB10BRIGHTSTYLE_H
diff --git a/src/plugins/styles/bb10style/qbb10brightstyle.qrc b/src/plugins/styles/bb10style/qbb10brightstyle.qrc
new file mode 100644
index 0000000000..2172536fa3
--- /dev/null
+++ b/src/plugins/styles/bb10style/qbb10brightstyle.qrc
@@ -0,0 +1,57 @@
+<RCC>
+ <qresource prefix="/">
+ <file>bright/button/core_button_disabled.png</file>
+ <file>bright/button/core_button_disabled_selected.png</file>
+ <file>bright/button/core_button_inactive.png</file>
+ <file>bright/button/core_button_enabled_selected.png</file>
+ <file>bright/button/core_button_pressed.png</file>
+ <file>bright/checkbox/core_checkbox_checked.png</file>
+ <file>bright/checkbox/core_checkbox_disabled.png</file>
+ <file>bright/checkbox/core_checkbox_disabled_checked.png</file>
+ <file>bright/checkbox/core_checkbox_enabled.png</file>
+ <file>bright/checkbox/core_checkbox_pressed.png</file>
+ <file>bright/checkbox/core_checkbox_pressed_checked.png</file>
+ <file>bright/combobox/core_dropdown_button.png</file>
+ <file>bright/combobox/core_dropdown_button_arrowdown.png</file>
+ <file>bright/combobox/core_dropdown_button_arrowdown_pressed.png</file>
+ <file>bright/combobox/core_dropdown_button_arrowup.png</file>
+ <file>bright/combobox/core_dropdown_button_disabled.png</file>
+ <file>bright/combobox/core_dropdown_button_pressed.png</file>
+ <file>bright/combobox/core_dropdown_checkmark.png</file>
+ <file>bright/combobox/core_dropdown_divider.png</file>
+ <file>bright/combobox/core_dropdown_menu.png</file>
+ <file>bright/combobox/core_dropdown_menuup.png</file>
+ <file>bright/combobox/core_listitem_active.png</file>
+ <file>bright/lineedit/core_textinput_bg.png</file>
+ <file>bright/lineedit/core_textinput_bg_disabled.png</file>
+ <file>bright/lineedit/core_textinput_bg_highlight.png</file>
+ <file>bright/listitem/core_listitem_active.png</file>
+ <file>bright/listitem/core_listitem_divider.png</file>
+ <file>bright/progressbar/core_progressindicator_bg.png</file>
+ <file>bright/progressbar/core_progressindicator_complete.png</file>
+ <file>bright/progressbar/core_progressindicator_fill.png</file>
+ <file>bright/progressbar/core_progressindicator_vbg.png</file>
+ <file>bright/progressbar/core_progressindicator_vcomplete.png</file>
+ <file>bright/progressbar/core_progressindicator_vfill.png</file>
+ <file>bright/radiobutton/core_radiobutton_checked.png</file>
+ <file>bright/radiobutton/core_radiobutton_disabled.png</file>
+ <file>bright/radiobutton/core_radiobutton_disabled_checked.png</file>
+ <file>bright/radiobutton/core_radiobutton_inactive.png</file>
+ <file>bright/radiobutton/core_radiobutton_pressed.png</file>
+ <file>bright/scrollbar/core_scrollbar.png</file>
+ <file>bright/scrollbar/core_scrollbar_v.png</file>
+ <file>bright/slider/core_slider_active.png</file>
+ <file>bright/slider/core_slider_cache.png</file>
+ <file>bright/slider/core_slider_disabled.png</file>
+ <file>bright/slider/core_slider_enabled.png</file>
+ <file>bright/slider/core_slider_handle.png</file>
+ <file>bright/slider/core_slider_handle_disabled.png</file>
+ <file>bright/slider/core_slider_handle_pressed.png</file>
+ <file>bright/slider/core_slider_inactive.png</file>
+ <file>bright/slider/core_slider_vactive.png</file>
+ <file>bright/slider/core_slider_vcache.png</file>
+ <file>bright/slider/core_slider_vdisabled.png</file>
+ <file>bright/slider/core_slider_venabled.png</file>
+ <file>bright/slider/core_slider_vinactive.png</file>
+ </qresource>
+</RCC>
diff --git a/src/plugins/styles/bb10style/qbb10darkstyle.cpp b/src/plugins/styles/bb10style/qbb10darkstyle.cpp
new file mode 100644
index 0000000000..85bf4a7917
--- /dev/null
+++ b/src/plugins/styles/bb10style/qbb10darkstyle.cpp
@@ -0,0 +1,357 @@
+/***************************************************************************
+**
+** Copyright (C) 2014 BlackBerry Limited. All rights reserved.
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qbb10darkstyle.h"
+
+#include <QApplication>
+#include <QFont>
+#include <QStyleOption>
+#include <QProgressBar>
+#include <QComboBox>
+#include <QAbstractItemView>
+#include <QPainter>
+#include <QLineEdit>
+#include <QTextEdit>
+
+QT_BEGIN_NAMESPACE
+
+QBB10DarkStyle::QBB10DarkStyle() :
+ QPixmapStyle()
+{
+ addDescriptor(PB_Enabled,
+ QLatin1String("://dark/button/core_button_inactive.png"),
+ QMargins(13, 13, 13, 13),
+ QTileRules(Qt::RepeatTile, Qt::StretchTile));
+ addDescriptor(PB_Checked,
+ QLatin1String("://dark/button/core_button_enabled_selected.png"),
+ QMargins(13, 13, 13, 13),
+ QTileRules(Qt::RepeatTile, Qt::StretchTile));
+ addDescriptor(PB_Pressed,
+ QLatin1String("://dark/button/core_button_pressed.png"),
+ QMargins(13, 13, 13, 13),
+ QTileRules(Qt::RepeatTile, Qt::StretchTile));
+ addDescriptor(PB_Disabled,
+ QLatin1String("://dark/button/core_button_disabled.png"),
+ QMargins(13, 13, 13, 13),
+ QTileRules(Qt::RepeatTile, Qt::StretchTile));
+ addDescriptor(PB_PressedDisabled,
+ QLatin1String("://dark/button/core_button_disabled_selected.png"),
+ QMargins(13, 13, 13, 13),
+ QTileRules(Qt::RepeatTile, Qt::StretchTile));
+
+ addDescriptor(LE_Enabled,
+ QLatin1String("://dark/lineedit/core_textinput_bg.png"),
+ QMargins(8, 8, 8, 8));
+ addDescriptor(LE_Disabled,
+ QLatin1String("://dark/lineedit/core_textinput_bg_disabled.png"),
+ QMargins(8, 8, 8, 8));
+ addDescriptor(LE_Focused,
+ QLatin1String("://dark/lineedit/core_textinput_bg_highlight.png"),
+ QMargins(8, 8, 8, 8));
+
+ copyDescriptor(LE_Enabled, TE_Enabled);
+ copyDescriptor(LE_Disabled, TE_Disabled);
+ copyDescriptor(LE_Focused, TE_Focused);
+
+ addPixmap(CB_Enabled,
+ QLatin1String("://dark/checkbox/core_checkbox_enabled.png"),
+ QMargins(16, 16, 16, 16));
+ addPixmap(CB_Checked,
+ QLatin1String("://dark/checkbox/core_checkbox_checked.png"),
+ QMargins(16, 16, 16, 16));
+ addPixmap(CB_Pressed,
+ QLatin1String("://dark/checkbox/core_checkbox_pressed.png"),
+ QMargins(16, 16, 16, 16));
+ addPixmap(CB_PressedChecked,
+ QLatin1String("://dark/checkbox/core_checkbox_pressed_checked.png"),
+ QMargins(16, 16, 16, 16));
+ addPixmap(CB_Disabled,
+ QLatin1String("://dark/checkbox/core_checkbox_disabled.png"),
+ QMargins(16, 16, 16, 16));
+ addPixmap(CB_DisabledChecked,
+ QLatin1String("://dark/checkbox/core_checkbox_disabled_checked.png"),
+ QMargins(16, 16, 16, 16));
+
+ addPixmap(RB_Enabled,
+ QLatin1String("://dark/radiobutton/core_radiobutton_inactive.png"),
+ QMargins(16, 16, 16, 16));
+ addPixmap(RB_Checked,
+ QLatin1String("://dark/radiobutton/core_radiobutton_checked.png"),
+ QMargins(16, 16, 16, 16));
+ addPixmap(RB_Pressed,
+ QLatin1String("://dark/radiobutton/core_radiobutton_pressed.png"),
+ QMargins(16, 16, 16, 16));
+ addPixmap(RB_Disabled,
+ QLatin1String("://dark/radiobutton/core_radiobutton_disabled.png"),
+ QMargins(16, 16, 16, 16));
+ addPixmap(RB_DisabledChecked,
+ QLatin1String("://dark/radiobutton/core_radiobutton_disabled_checked.png"),
+ QMargins(16, 16, 16, 16));
+
+ addDescriptor(PB_HBackground,
+ QLatin1String("://dark/progressbar/core_progressindicator_bg.png"),
+ QMargins(10, 10, 10, 10),
+ QTileRules(Qt::RepeatTile, Qt::StretchTile));
+ addDescriptor(PB_HContent,
+ QLatin1String("://dark/progressbar/core_progressindicator_fill.png"),
+ QMargins(10, 10, 10, 10),
+ QTileRules(Qt::RepeatTile, Qt::StretchTile));
+ addDescriptor(PB_HComplete,
+ QLatin1String("://dark/progressbar/core_progressindicator_complete.png"),
+ QMargins(10, 10, 10, 10),
+ QTileRules(Qt::RepeatTile, Qt::StretchTile));
+ addDescriptor(PB_VBackground,
+ QLatin1String("://dark/progressbar/core_progressindicator_vbg.png"),
+ QMargins(10, 10, 10, 10),
+ QTileRules(Qt::StretchTile, Qt::RepeatTile));
+ addDescriptor(PB_VContent,
+ QLatin1String("://dark/progressbar/core_progressindicator_vfill.png"),
+ QMargins(10, 10, 10, 10),
+ QTileRules(Qt::StretchTile, Qt::RepeatTile));
+ addDescriptor(PB_VComplete,
+ QLatin1String("://dark/progressbar/core_progressindicator_vcomplete.png"),
+ QMargins(10, 10, 10, 10),
+ QTileRules(Qt::StretchTile, Qt::RepeatTile));
+
+ addDescriptor(SG_HEnabled,
+ QLatin1String("://dark/slider/core_slider_enabled.png"),
+ QMargins(50, 50, 50, 50),
+ QTileRules(Qt::RepeatTile, Qt::StretchTile));
+ addDescriptor(SG_HDisabled,
+ QLatin1String("://dark/slider/core_slider_disabled.png"),
+ QMargins(50, 50, 50, 50),
+ QTileRules(Qt::RepeatTile, Qt::StretchTile));
+ addDescriptor(SG_HActiveEnabled,
+ QLatin1String("://dark/slider/core_slider_inactive.png"),
+ QMargins(50, 50, 50, 50),
+ QTileRules(Qt::RepeatTile, Qt::StretchTile));
+ addDescriptor(SG_HActivePressed,
+ QLatin1String("://dark/slider/core_slider_active.png"),
+ QMargins(50, 50, 50, 50),
+ QTileRules(Qt::RepeatTile, Qt::StretchTile));
+ addDescriptor(SG_HActiveDisabled,
+ QLatin1String("://dark/slider/core_slider_cache.png"),
+ QMargins(50, 50, 50, 50),
+ QTileRules(Qt::RepeatTile, Qt::StretchTile));
+ addDescriptor(SG_VEnabled,
+ QLatin1String("://dark/slider/core_slider_venabled.png"),
+ QMargins(50, 50, 50, 50),
+ QTileRules(Qt::StretchTile, Qt::RepeatTile));
+ addDescriptor(SG_VDisabled,
+ QLatin1String("://dark/slider/core_slider_vdisabled.png"),
+ QMargins(50, 50, 50, 50),
+ QTileRules(Qt::StretchTile, Qt::RepeatTile));
+ addDescriptor(SG_VActiveEnabled,
+ QLatin1String("://dark/slider/core_slider_vinactive.png"),
+ QMargins(50, 50, 50, 50),
+ QTileRules(Qt::StretchTile, Qt::RepeatTile));
+ addDescriptor(SG_VActivePressed,
+ QLatin1String("://dark/slider/core_slider_vactive.png"),
+ QMargins(50, 50, 50, 50),
+ QTileRules(Qt::StretchTile, Qt::RepeatTile));
+ addDescriptor(SG_VActiveDisabled,
+ QLatin1String("://dark/slider/core_slider_vcache.png"),
+ QMargins(50, 50, 50, 50),
+ QTileRules(Qt::StretchTile, Qt::RepeatTile));
+
+ addPixmap(SH_HEnabled,
+ QLatin1String("://dark/slider/core_slider_handle.png"));
+ addPixmap(SH_HDisabled,
+ QLatin1String("://dark/slider/core_slider_handle_disabled.png"));
+ addPixmap(SH_HPressed,
+ QLatin1String("://dark/slider/core_slider_handle_pressed.png"));
+ addPixmap(SH_VEnabled,
+ QLatin1String("://dark/slider/core_slider_handle.png"));
+ addPixmap(SH_VDisabled,
+ QLatin1String("://dark/slider/core_slider_handle_disabled.png"));
+ addPixmap(SH_VPressed,
+ QLatin1String("://dark/slider/core_slider_handle_pressed.png"));
+
+ addDescriptor(DD_ButtonEnabled,
+ QLatin1String("://dark/combobox/core_dropdown_button.png"),
+ QMargins(14, 14, 14, 14),
+ QTileRules(Qt::RepeatTile, Qt::StretchTile));
+ addDescriptor(DD_ButtonDisabled,
+ QLatin1String("://dark/combobox/core_dropdown_button_disabled.png"),
+ QMargins(14, 14, 14, 14),
+ QTileRules(Qt::RepeatTile, Qt::StretchTile));
+ addDescriptor(DD_ButtonPressed,
+ QLatin1String("://dark/combobox/core_dropdown_button_pressed.png"),
+ QMargins(14, 14, 14, 14),
+ QTileRules(Qt::RepeatTile, Qt::StretchTile));
+ addDescriptor(DD_ItemSelected,
+ QLatin1String("://dark/combobox/core_listitem_active.png"));
+ addPixmap(DD_ArrowEnabled,
+ QLatin1String("://dark/combobox/core_dropdown_button_arrowdown.png"),
+ QMargins(35, 39, 35, 39));
+ copyPixmap(DD_ArrowEnabled, DD_ArrowDisabled);
+ addPixmap(DD_ArrowPressed,
+ QLatin1String("://dark/combobox/core_dropdown_button_arrowdown_pressed.png"),
+ QMargins(35, 39, 35, 39));
+ addPixmap(DD_ArrowOpen,
+ QLatin1String("://dark/combobox/core_dropdown_button_arrowup.png"),
+ QMargins(35, 39, 35, 39));
+ addDescriptor(DD_PopupDown,
+ QLatin1String("://dark/combobox/core_dropdown_menu.png"),
+ QMargins(12, 12, 12, 12), QTileRules(Qt::StretchTile, Qt::StretchTile));
+ addDescriptor(DD_PopupUp,
+ QLatin1String("://dark/combobox/core_dropdown_menuup.png"),
+ QMargins(12, 12, 12, 12), QTileRules(Qt::StretchTile, Qt::StretchTile));
+ addPixmap(DD_ItemSeparator,
+ QLatin1String("://dark/combobox/core_dropdown_divider.png"),
+ QMargins(5, 0, 5, 0));
+
+ addDescriptor(ID_Selected,
+ QLatin1String("://dark/listitem/core_listitem_active.png"));
+ addPixmap(ID_Separator,
+ QLatin1String("://dark/listitem/core_listitem_divider.png"));
+
+ addDescriptor(SB_Horizontal,
+ QLatin1String("://dark/scrollbar/core_scrollbar.png"),
+ QMargins(7, 8, 7, 8),
+ QTileRules(Qt::RepeatTile, Qt::StretchTile));
+ addDescriptor(SB_Vertical,
+ QLatin1String("://dark/scrollbar/core_scrollbar_v.png"),
+ QMargins(8, 7, 8, 7),
+ QTileRules(Qt::StretchTile, Qt::RepeatTile));
+}
+
+QBB10DarkStyle::~QBB10DarkStyle()
+{
+}
+
+void QBB10DarkStyle::polish(QApplication *application)
+{
+ QPixmapStyle::polish(application);
+}
+
+void QBB10DarkStyle::polish(QWidget *widget)
+{
+ // Hide the text by default
+ if (QProgressBar *pb = qobject_cast<QProgressBar*>(widget))
+ pb->setTextVisible(false);
+
+ if (QComboBox *cb = qobject_cast<QComboBox*>(widget)) {
+ QAbstractItemView *list = cb->view();
+ QPalette p = list->palette();
+ p.setBrush(QPalette::HighlightedText, p.brush(QPalette::Text));
+ list->setPalette(p);
+ }
+
+ if (qobject_cast<QLineEdit*>(widget) || qobject_cast<QTextEdit*>(widget)) {
+ QPalette p = widget->palette();
+ p.setBrush(QPalette::Text, QColor(38, 38, 38));
+ widget->setPalette(p);
+ }
+
+ if (qobject_cast<QAbstractItemView*>(widget)) {
+ QPalette p = widget->palette();
+ p.setBrush(QPalette::Disabled, QPalette::HighlightedText, p.brush(QPalette::Text));
+ widget->setPalette(p);
+ }
+
+ QPixmapStyle::polish(widget);
+}
+
+QPalette QBB10DarkStyle::standardPalette() const
+{
+ QPalette p;
+
+ QColor color = QColor(250, 250, 250);
+ p.setBrush(QPalette::ButtonText, color);
+ p.setBrush(QPalette::WindowText, color);
+ p.setBrush(QPalette::Text, color);
+
+ color.setAlpha(179);
+ p.setBrush(QPalette::Disabled, QPalette::ButtonText, color);
+ p.setBrush(QPalette::Disabled, QPalette::WindowText, color);
+ p.setBrush(QPalette::Disabled, QPalette::Text, color);
+
+ p.setColor(QPalette::Window, QColor(18, 18, 18));
+
+ p.setBrush(QPalette::Highlight, QColor(0, 168, 223));
+ p.setBrush(QPalette::HighlightedText, QColor(250, 250,250));
+
+ return p;
+}
+
+void QBB10DarkStyle::drawControl(QStyle::ControlElement element, const QStyleOption *option,
+ QPainter *painter, const QWidget *widget) const
+{
+ switch (element) {
+ case CE_PushButtonLabel:
+ {
+ const bool on = option->state & State_On || option->state & State_Sunken;
+ const QStyleOptionButton *button = qstyleoption_cast<const QStyleOptionButton*>(option);
+ QStyleOptionButton newOpt = *button;
+ if (on)
+ newOpt.palette.setBrush(QPalette::ButtonText, QColor(38, 38, 38));
+ QPixmapStyle::drawControl(CE_PushButtonLabel, &newOpt, painter, widget);
+ break;
+ }
+ case CE_ProgressBarLabel:
+ // Don't draw the progress bar label
+ break;
+ default:
+ QPixmapStyle::drawControl(element, option, painter, widget);
+ }
+}
+
+void QBB10DarkStyle::drawPrimitive(QStyle::PrimitiveElement element, const QStyleOption *option,
+ QPainter *painter, const QWidget *widget) const
+{
+ QPixmapStyle::drawPrimitive(element, option, painter, widget);
+
+ if (element == PE_PanelItemViewItem) {
+ // Draw the checkbox for current item
+ if (widget->property("_pixmap_combobox_list").toBool()
+ && option->state & QStyle::State_Selected) {
+ QPixmap pix(QLatin1String("://dark/combobox/core_dropdown_checkmark.png"));
+ QRect rect = option->rect;
+ const int margin = rect.height() / 2;
+ QPoint pos(rect.right() - margin - pix.width() / 2,
+ rect.top() + margin - pix.height() / 2);
+ painter->drawPixmap(pos, pix);
+ }
+ }
+}
+
+QT_END_NAMESPACE
diff --git a/src/plugins/styles/bb10style/qbb10darkstyle.h b/src/plugins/styles/bb10style/qbb10darkstyle.h
new file mode 100644
index 0000000000..1be7b0540c
--- /dev/null
+++ b/src/plugins/styles/bb10style/qbb10darkstyle.h
@@ -0,0 +1,70 @@
+/***************************************************************************
+**
+** Copyright (C) 2014 BlackBerry Limited. All rights reserved.
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QBB10DARKSTYLE_H
+#define QBB10DARKSTYLE_H
+
+#include "qpixmapstyle.h"
+
+QT_BEGIN_NAMESPACE
+
+class QBB10DarkStyle : public QPixmapStyle
+{
+ Q_OBJECT
+
+public:
+ QBB10DarkStyle();
+ ~QBB10DarkStyle();
+
+ void polish(QApplication *application);
+ void polish(QWidget *widget);
+
+ QPalette standardPalette() const;
+
+ void drawControl(ControlElement element, const QStyleOption *option,
+ QPainter *painter, const QWidget *widget = 0) const;
+ void drawPrimitive(PrimitiveElement element, const QStyleOption *option,
+ QPainter *painter, const QWidget *widget) const;
+};
+
+QT_END_NAMESPACE
+
+#endif // QBB10DARKSTYLE_H
diff --git a/src/plugins/styles/bb10style/qbb10darkstyle.qrc b/src/plugins/styles/bb10style/qbb10darkstyle.qrc
new file mode 100644
index 0000000000..31a5236207
--- /dev/null
+++ b/src/plugins/styles/bb10style/qbb10darkstyle.qrc
@@ -0,0 +1,57 @@
+<RCC>
+ <qresource prefix="/">
+ <file>dark/button/core_button_disabled.png</file>
+ <file>dark/button/core_button_disabled_selected.png</file>
+ <file>dark/button/core_button_inactive.png</file>
+ <file>dark/button/core_button_enabled_selected.png</file>
+ <file>dark/button/core_button_pressed.png</file>
+ <file>dark/checkbox/core_checkbox_checked.png</file>
+ <file>dark/checkbox/core_checkbox_disabled.png</file>
+ <file>dark/checkbox/core_checkbox_disabled_checked.png</file>
+ <file>dark/checkbox/core_checkbox_enabled.png</file>
+ <file>dark/checkbox/core_checkbox_pressed.png</file>
+ <file>dark/checkbox/core_checkbox_pressed_checked.png</file>
+ <file>dark/combobox/core_dropdown_button.png</file>
+ <file>dark/combobox/core_dropdown_button_arrowdown.png</file>
+ <file>dark/combobox/core_dropdown_button_arrowdown_pressed.png</file>
+ <file>dark/combobox/core_dropdown_button_arrowup.png</file>
+ <file>dark/combobox/core_dropdown_button_disabled.png</file>
+ <file>dark/combobox/core_dropdown_button_pressed.png</file>
+ <file>dark/combobox/core_dropdown_checkmark.png</file>
+ <file>dark/combobox/core_dropdown_divider.png</file>
+ <file>dark/combobox/core_dropdown_menu.png</file>
+ <file>dark/combobox/core_dropdown_menuup.png</file>
+ <file>dark/combobox/core_listitem_active.png</file>
+ <file>dark/lineedit/core_textinput_bg.png</file>
+ <file>dark/lineedit/core_textinput_bg_disabled.png</file>
+ <file>dark/lineedit/core_textinput_bg_highlight.png</file>
+ <file>dark/listitem/core_listitem_active.png</file>
+ <file>dark/listitem/core_listitem_divider.png</file>
+ <file>dark/progressbar/core_progressindicator_bg.png</file>
+ <file>dark/progressbar/core_progressindicator_complete.png</file>
+ <file>dark/progressbar/core_progressindicator_fill.png</file>
+ <file>dark/progressbar/core_progressindicator_vbg.png</file>
+ <file>dark/progressbar/core_progressindicator_vcomplete.png</file>
+ <file>dark/progressbar/core_progressindicator_vfill.png</file>
+ <file>dark/radiobutton/core_radiobutton_checked.png</file>
+ <file>dark/radiobutton/core_radiobutton_disabled.png</file>
+ <file>dark/radiobutton/core_radiobutton_disabled_checked.png</file>
+ <file>dark/radiobutton/core_radiobutton_inactive.png</file>
+ <file>dark/radiobutton/core_radiobutton_pressed.png</file>
+ <file>dark/scrollbar/core_scrollbar.png</file>
+ <file>dark/scrollbar/core_scrollbar_v.png</file>
+ <file>dark/slider/core_slider_active.png</file>
+ <file>dark/slider/core_slider_cache.png</file>
+ <file>dark/slider/core_slider_disabled.png</file>
+ <file>dark/slider/core_slider_enabled.png</file>
+ <file>dark/slider/core_slider_handle.png</file>
+ <file>dark/slider/core_slider_handle_disabled.png</file>
+ <file>dark/slider/core_slider_handle_pressed.png</file>
+ <file>dark/slider/core_slider_inactive.png</file>
+ <file>dark/slider/core_slider_vactive.png</file>
+ <file>dark/slider/core_slider_vcache.png</file>
+ <file>dark/slider/core_slider_vdisabled.png</file>
+ <file>dark/slider/core_slider_venabled.png</file>
+ <file>dark/slider/core_slider_vinactive.png</file>
+ </qresource>
+</RCC>
diff --git a/src/plugins/styles/bb10style/qbb10styleplugin.cpp b/src/plugins/styles/bb10style/qbb10styleplugin.cpp
new file mode 100644
index 0000000000..eba5e868a2
--- /dev/null
+++ b/src/plugins/styles/bb10style/qbb10styleplugin.cpp
@@ -0,0 +1,74 @@
+/***************************************************************************
+**
+** Copyright (C) 2014 BlackBerry Limited. All rights reserved.
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qbb10styleplugin.h"
+#include "qbb10darkstyle.h"
+#include "qbb10brightstyle.h"
+
+QT_BEGIN_NAMESPACE
+
+QBB10StylePlugin::QBB10StylePlugin()
+{
+}
+
+QBB10StylePlugin::~QBB10StylePlugin()
+{
+}
+
+QStyle *QBB10StylePlugin::create(const QString &key)
+{
+ const QString keyLower(key.toLower());
+ if (keyLower == QLatin1String("bb10bright"))
+ return new QBB10BrightStyle;
+ else if (keyLower == QLatin1String("bb10dark"))
+ return new QBB10DarkStyle;
+
+ return 0;
+}
+
+QStringList QBB10StylePlugin::keys() const
+{
+ return QStringList() << QLatin1String("bb10bright") << QLatin1String("bb10dark");
+}
+
+QT_END_NAMESPACE
+
+#include "moc_qbb10styleplugin.cpp"
diff --git a/src/plugins/styles/bb10style/qbb10styleplugin.h b/src/plugins/styles/bb10style/qbb10styleplugin.h
new file mode 100644
index 0000000000..2bc08d441c
--- /dev/null
+++ b/src/plugins/styles/bb10style/qbb10styleplugin.h
@@ -0,0 +1,64 @@
+/***************************************************************************
+**
+** Copyright (C) 2014 BlackBerry Limited. All rights reserved.
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QBB10STYLEPLUGIN_H
+#define QBB10STYLEPLUGIN_H
+
+#include <QStylePlugin>
+
+QT_BEGIN_NAMESPACE
+
+class QBB10StylePlugin : public QStylePlugin
+{
+ Q_OBJECT
+ Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QStyleFactoryInterface" FILE "qbb10styleplugin.json")
+
+public:
+ QBB10StylePlugin();
+ ~QBB10StylePlugin();
+
+ QStyle *create(const QString &key);
+ QStringList keys() const;
+};
+
+QT_END_NAMESPACE
+
+#endif // QBB10STYLEPLUGIN_H
diff --git a/src/plugins/styles/bb10style/qbb10styleplugin.json b/src/plugins/styles/bb10style/qbb10styleplugin.json
new file mode 100644
index 0000000000..8f79b706c3
--- /dev/null
+++ b/src/plugins/styles/bb10style/qbb10styleplugin.json
@@ -0,0 +1,3 @@
+{
+ "Keys": [ "bb10bright", "bb10dark" ]
+}
diff --git a/src/plugins/styles/bb10style/qpixmapstyle.cpp b/src/plugins/styles/bb10style/qpixmapstyle.cpp
new file mode 100644
index 0000000000..e80a1d991c
--- /dev/null
+++ b/src/plugins/styles/bb10style/qpixmapstyle.cpp
@@ -0,0 +1,994 @@
+/***************************************************************************
+**
+** Copyright (C) 2014 BlackBerry Limited. All rights reserved.
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qpixmapstyle.h"
+
+#include <QDebug>
+#include <QTextEdit>
+#include <QStringBuilder>
+#include <QPainter>
+#include <QPixmapCache>
+#include <QStyleOption>
+#include <QString>
+#include <QProgressBar>
+#include <QSlider>
+#include <QEvent>
+#include <QComboBox>
+#include <QAbstractItemView>
+#include <QListView>
+#include <QTreeView>
+#include <QStyledItemDelegate>
+#include <QAbstractScrollArea>
+#include <QScrollBar>
+
+#include <qscroller.h>
+
+QT_BEGIN_NAMESPACE
+
+QPixmapStyle::QPixmapStyle() :
+ QCommonStyle()
+{
+}
+
+QPixmapStyle::~QPixmapStyle()
+{
+}
+
+void QPixmapStyle::polish(QApplication *application)
+{
+ QCommonStyle::polish(application);
+#if defined(Q_WS_WIN)
+ QApplication::setEffectEnabled(Qt::UI_AnimateCombo, false);
+#endif
+}
+
+void QPixmapStyle::polish(QPalette &palette)
+{
+ palette = proxy()->standardPalette();
+}
+
+void QPixmapStyle::polish(QWidget *widget)
+{
+ // Don't fill the interior of the QTextEdit
+ if (qobject_cast<QTextEdit*>(widget)) {
+ QPalette p = widget->palette();
+ p.setBrush(QPalette::Base, Qt::NoBrush);
+ widget->setPalette(p);
+ }
+
+ if (QProgressBar *pb = qobject_cast<QProgressBar*>(widget)) {
+ // Center the text in the progress bar
+ pb->setAlignment(Qt::AlignCenter);
+ // Change the font size if needed, as it's used to compute the minimum size
+ QFont font = pb->font();
+ font.setPixelSize(m_descriptors.value(PB_HBackground).size.height()/2);
+ pb->setFont(font);
+ }
+
+ if (qobject_cast<QSlider*>(widget))
+ widget->installEventFilter(this);
+
+ if (QComboBox *cb = qobject_cast<QComboBox*>(widget)) {
+ widget->installEventFilter(this);
+ // NOTE: This will break if the private API of QComboBox changes drastically
+ // Make sure the popup is created so we can change the frame style
+ QAbstractItemView *list = cb->view();
+ list->setProperty("_pixmap_combobox_list", true);
+ list->setItemDelegate(new QStyledItemDelegate(list));
+ QPalette p = list->palette();
+ p.setBrush(QPalette::Active, QPalette::Base, QBrush(Qt::transparent) );
+ p.setBrush(QPalette::Active, QPalette::AlternateBase, QBrush(Qt::transparent) );
+ p.setBrush(QPalette::Inactive, QPalette::Base, QBrush(Qt::transparent) );
+ p.setBrush(QPalette::Inactive, QPalette::AlternateBase, QBrush(Qt::transparent) );
+ p.setBrush(QPalette::Disabled, QPalette::Base, QBrush(Qt::transparent) );
+ p.setBrush(QPalette::Disabled, QPalette::AlternateBase, QBrush(Qt::transparent) );
+ list->setPalette(p);
+
+ QFrame *frame = qobject_cast<QFrame*>(list->parent());
+ if (frame) {
+ const Descriptor &desc = m_descriptors.value(DD_PopupDown);
+ const Pixmap &pix = m_pixmaps.value(DD_ItemSeparator);
+ frame->setContentsMargins(pix.margins.left(), desc.margins.top(),
+ pix.margins.right(), desc.margins.bottom());
+ frame->setAttribute(Qt::WA_TranslucentBackground);
+#ifdef Q_WS_WIN
+ // FramelessWindowHint is needed on windows to make
+ // WA_TranslucentBackground work properly
+ frame->setWindowFlags(widget->windowFlags() | Qt::FramelessWindowHint);
+#endif
+ }
+ }
+
+ if (qstrcmp(widget->metaObject()->className(),"QComboBoxPrivateContainer") == 0)
+ widget->installEventFilter(this);
+
+ if (QAbstractScrollArea *scrollArea = qobject_cast<QAbstractScrollArea*>(widget)) {
+ scrollArea->viewport()->setAutoFillBackground(false);
+ if (QAbstractItemView *view = qobject_cast<QAbstractItemView*>(scrollArea)) {
+ view->setHorizontalScrollMode(QAbstractItemView::ScrollPerPixel);
+ view->setVerticalScrollMode(QAbstractItemView::ScrollPerPixel);
+ }
+ QScroller::grabGesture(scrollArea->viewport(), QScroller::LeftMouseButtonGesture);
+ }
+
+ if (qobject_cast<QScrollBar*>(widget))
+ widget->setAttribute(Qt::WA_OpaquePaintEvent, false);
+
+ QCommonStyle::polish(widget);
+}
+
+void QPixmapStyle::unpolish(QWidget *widget)
+{
+ if (qobject_cast<QSlider*>(widget) ||
+ qobject_cast<QComboBox*>(widget)) {
+ widget->removeEventFilter(this);
+ }
+
+ if (qstrcmp(widget->metaObject()->className(),"QComboBoxPrivateContainer") == 0)
+ widget->removeEventFilter(this);
+
+ if (QAbstractScrollArea *scrollArea = qobject_cast<QAbstractScrollArea*>(widget))
+ QScroller::ungrabGesture(scrollArea->viewport());
+
+ QCommonStyle::unpolish(widget);
+}
+
+void QPixmapStyle::drawPrimitive(PrimitiveElement element, const QStyleOption *option,
+ QPainter *painter, const QWidget *widget) const
+{
+ switch (element) {
+ case PE_FrameFocusRect: //disable focus rectangle
+ break;
+ case PE_PanelButtonBevel:
+ case PE_PanelButtonCommand:
+ drawPushButton(option, painter, widget);
+ break;
+ case PE_PanelLineEdit:
+ case PE_FrameLineEdit:
+ drawLineEdit(option, painter, widget);
+ break;
+ case PE_Frame:
+ case PE_FrameDefaultButton:
+ if (qobject_cast<const QTextEdit*>(widget))
+ drawTextEdit(option, painter, widget);
+ break;
+ case PE_IndicatorCheckBox:
+ drawCheckBox(option, painter, widget);
+ break;
+ case PE_IndicatorRadioButton:
+ drawRadioButton(option, painter, widget);
+ break;
+ case PE_PanelItemViewItem:
+ if (qobject_cast<const QListView*>(widget))
+ drawPanelItemViewItem(option, painter, widget);
+ else
+ QCommonStyle::drawPrimitive(element, option, painter, widget);
+ break;
+ default:
+ QCommonStyle::drawPrimitive(element, option, painter, widget);
+ }
+}
+
+void QPixmapStyle::drawControl(ControlElement element, const QStyleOption *option,
+ QPainter *painter, const QWidget *widget) const
+{
+ switch (element) {
+ case CE_ProgressBarGroove:
+ drawProgressBarBackground(option, painter, widget);
+ break;
+ case CE_ProgressBarLabel:
+ drawProgressBarLabel(option, painter, widget);
+ break;
+ case CE_ProgressBarContents:
+ drawProgressBarFill(option, painter, widget);
+ break;
+ case CE_ShapedFrame:
+ // NOTE: This will break if the private API of QComboBox changes drastically
+ if (qstrcmp(widget->metaObject()->className(),"QComboBoxPrivateContainer") == 0) {
+ const Descriptor &desc = m_descriptors.value(DD_PopupDown);
+ const Pixmap &pix = m_pixmaps.value(DD_ItemSeparator);
+ QRect rect = option->rect;
+ rect.adjust(-pix.margins.left(), -desc.margins.top(),
+ pix.margins.right(), desc.margins.bottom());
+ bool up = widget->property("_pixmapstyle_combobox_up").toBool();
+ drawCachedPixmap(up ? DD_PopupUp : DD_PopupDown, rect, painter);
+ }
+ else {
+ QCommonStyle::drawControl(element, option, painter, widget);
+ }
+ break;
+ default:
+ QCommonStyle::drawControl(element, option, painter, widget);
+ }
+}
+
+void QPixmapStyle::drawComplexControl(ComplexControl cc, const QStyleOptionComplex *option,
+ QPainter *painter, const QWidget *widget) const
+{
+ switch (cc) {
+ case CC_Slider:
+ drawSlider(option, painter, widget);
+ break;
+ case CC_ComboBox:
+ drawComboBox(option, painter, widget);
+ break;
+ case CC_ScrollBar:
+ drawScrollBar(option, painter, widget);
+ break;
+ default:
+ QCommonStyle::drawComplexControl(cc, option, painter, widget);
+ }
+}
+
+QSize QPixmapStyle::sizeFromContents(ContentsType type, const QStyleOption *option,
+ const QSize &contentsSize, const QWidget *widget) const
+{
+ switch (type) {
+ case CT_PushButton:
+ return pushButtonSizeFromContents(option, contentsSize, widget);
+ case CT_LineEdit:
+ return lineEditSizeFromContents(option, contentsSize, widget);
+ case CT_ProgressBar:
+ return progressBarSizeFromContents(option, contentsSize, widget);
+ case CT_Slider:
+ return sliderSizeFromContents(option, contentsSize, widget);
+ case CT_ComboBox:
+ return comboBoxSizeFromContents(option, contentsSize, widget);
+ case CT_ItemViewItem:
+ return itemViewSizeFromContents(option, contentsSize, widget);
+ default: ;
+ }
+
+ return QCommonStyle::sizeFromContents(type, option, contentsSize, widget);
+}
+
+QRect QPixmapStyle::subElementRect(SubElement element, const QStyleOption *option,
+ const QWidget *widget) const
+{
+ switch (element) {
+ case SE_LineEditContents:
+ {
+ QRect rect = QCommonStyle::subElementRect(element, option, widget);
+ const Descriptor &desc = m_descriptors.value(LE_Enabled);
+ rect.adjust(desc.margins.left(), desc.margins.top(),
+ -desc.margins.right(), -desc.margins.bottom());
+ rect = visualRect(option->direction, option->rect, rect);
+ return rect;
+ }
+ default: ;
+ }
+
+ return QCommonStyle::subElementRect(element, option, widget);
+}
+
+QRect QPixmapStyle::subControlRect(ComplexControl cc, const QStyleOptionComplex *option,
+ SubControl sc, const QWidget *widget) const
+{
+ switch (cc) {
+ case CC_ComboBox:
+ return comboBoxSubControlRect(option, sc, widget);
+ case CC_ScrollBar:
+ return scrollBarSubControlRect(option, sc, widget);
+ default: ;
+ }
+
+ return QCommonStyle::subControlRect(cc, option, sc, widget);
+}
+
+int QPixmapStyle::pixelMetric(PixelMetric metric, const QStyleOption *option,
+ const QWidget *widget) const
+{
+ switch (metric) {
+ case PM_ButtonShiftHorizontal:
+ case PM_ButtonShiftVertical:
+ return 0;
+ case PM_DefaultFrameWidth:
+ if (qobject_cast<const QTextEdit*>(widget)) {
+ const Descriptor &desc = m_descriptors.value(LE_Enabled);
+ return qMax(qMax(desc.margins.left(), desc.margins.right()),
+ qMax(desc.margins.top(), desc.margins.bottom()));
+ }
+ return 0;
+ case PM_IndicatorWidth:
+ return m_pixmaps.value(CB_Enabled).pixmap.width();
+ case PM_IndicatorHeight:
+ return m_pixmaps.value(CB_Enabled).pixmap.height();
+ case PM_CheckBoxLabelSpacing:
+ {
+ const Pixmap &pix = m_pixmaps.value(CB_Enabled);
+ return qMax(qMax(pix.margins.left(), pix.margins.right()),
+ qMax(pix.margins.top(), pix.margins.bottom()));
+ }
+ case PM_ExclusiveIndicatorWidth:
+ return m_pixmaps.value(RB_Enabled).pixmap.width();
+ case PM_ExclusiveIndicatorHeight:
+ return m_pixmaps.value(RB_Enabled).pixmap.height();
+ case PM_RadioButtonLabelSpacing:
+ {
+ const Pixmap &pix = m_pixmaps.value(RB_Enabled);
+ return qMax(qMax(pix.margins.left(), pix.margins.right()),
+ qMax(pix.margins.top(), pix.margins.bottom()));
+ }
+ case PM_SliderThickness:
+ if (const QStyleOptionSlider *slider =
+ qstyleoption_cast<const QStyleOptionSlider*>(option)) {
+ const Descriptor desc = m_descriptors.value(slider->orientation == Qt::Horizontal
+ ? SG_HEnabled : SG_VEnabled);
+ return slider->orientation == Qt::Horizontal
+ ? desc.size.height() : desc.size.width();
+ }
+ break;
+ case PM_SliderControlThickness:
+ if (const QStyleOptionSlider *slider =
+ qstyleoption_cast<const QStyleOptionSlider*>(option)) {
+ const Pixmap pix = m_pixmaps.value(slider->orientation == Qt::Horizontal
+ ? SH_HEnabled : SH_VEnabled);
+ return slider->orientation == Qt::Horizontal
+ ? pix.pixmap.height() : pix.pixmap.width();
+ }
+ break;
+ case PM_SliderLength:
+ if (const QStyleOptionSlider *slider =
+ qstyleoption_cast<const QStyleOptionSlider*>(option)) {
+ const Pixmap pix = m_pixmaps.value(slider->orientation == Qt::Horizontal
+ ? SH_HEnabled : SH_VEnabled);
+ return slider->orientation == Qt::Horizontal
+ ? pix.pixmap.width() : pix.pixmap.height();
+ }
+ break;
+ case PM_ScrollBarExtent:
+ if (const QStyleOptionSlider *slider =
+ qstyleoption_cast<const QStyleOptionSlider*>(option)) {
+ const Descriptor desc = m_descriptors.value(slider->orientation == Qt::Horizontal
+ ? SB_Horizontal : SB_Vertical);
+ return slider->orientation == Qt::Horizontal
+ ? desc.size.height() : desc.size.width();
+ }
+ break;
+ case PM_ScrollBarSliderMin:
+ return 0;
+ default: ;
+ }
+
+ return QCommonStyle::pixelMetric(metric, option, widget);
+}
+
+int QPixmapStyle::styleHint(StyleHint hint, const QStyleOption *option,
+ const QWidget *widget, QStyleHintReturn *returnData) const
+{
+ switch (hint) {
+ case SH_EtchDisabledText:
+ return false;
+ case SH_ComboBox_Popup:
+ return false;
+ default: ;
+ }
+
+ return QCommonStyle::styleHint(hint, option, widget, returnData);
+}
+
+QStyle::SubControl QPixmapStyle::hitTestComplexControl(QStyle::ComplexControl control,
+ const QStyleOptionComplex *option,
+ const QPoint &pos,
+ const QWidget *widget) const
+{
+ const SubControl sc = QCommonStyle::hitTestComplexControl(control, option, pos, widget);
+ if (control == CC_ScrollBar) {
+ if (sc == SC_ScrollBarAddLine)
+ return SC_ScrollBarAddPage;
+ else if (sc == SC_ScrollBarSubLine)
+ return SC_ScrollBarSubPage;
+ }
+
+ return sc;
+}
+
+bool QPixmapStyle::eventFilter(QObject *watched, QEvent *event)
+{
+ if (QSlider *slider = qobject_cast<QSlider*>(watched)) {
+ switch (event->type()) {
+ case QEvent::MouseButtonPress:
+ case QEvent::MouseButtonRelease:
+ case QEvent::MouseMove:
+ slider->update();
+ break;
+ default: ;
+ }
+ }
+
+ if (QComboBox *comboBox = qobject_cast<QComboBox*>(watched)) {
+ switch (event->type()) {
+ case QEvent::MouseButtonPress:
+ event->ignore();
+ comboBox->setProperty("_pixmapstyle_combobox_pressed", true);
+ comboBox->repaint();
+ return true;
+ case QEvent::MouseButtonRelease:
+ comboBox->setProperty("_pixmapstyle_combobox_pressed", false);
+ comboBox->repaint();
+ if ( comboBox->view() ) {
+ if ( comboBox->view()->isVisible() || (!comboBox->isEnabled()))
+ comboBox->hidePopup();
+ else
+ comboBox->showPopup();
+ }
+ break;
+ default: ;
+ }
+ }
+
+ if (qstrcmp(watched->metaObject()->className(),"QComboBoxPrivateContainer") == 0) {
+ if (event->type() == QEvent::Show) {
+ QWidget *widget = qobject_cast<QWidget*>(watched);
+ int yPopup = widget->geometry().top();
+ int yCombo = widget->parentWidget()->mapToGlobal(QPoint(0, 0)).y();
+ QRect geom = widget->geometry();
+ const Descriptor &desc = m_descriptors.value(DD_ButtonEnabled);
+ const bool up = yPopup < yCombo;
+ geom.moveTop(geom.top() + (up ? desc.margins.top() : -desc.margins.bottom()));
+ widget->setGeometry(geom);
+ widget->setProperty("_pixmapstyle_combobox_up", up);
+ widget->parentWidget()->setProperty("_pixmapstyle_combobox_up", up);
+ }
+ }
+
+ return QCommonStyle::eventFilter(watched, event);
+}
+
+void QPixmapStyle::addDescriptor(QPixmapStyle::ControlDescriptor control, const QString &fileName,
+ QMargins margins, QTileRules tileRules)
+{
+ Descriptor desc;
+
+ QImage image(fileName);
+ if (image.isNull())
+ return;
+
+ desc.fileName = fileName;
+ desc.margins = margins;
+ desc.tileRules = tileRules;
+ desc.size = image.size();
+
+ m_descriptors[control] = desc;
+}
+
+void QPixmapStyle::copyDescriptor(QPixmapStyle::ControlDescriptor source,
+ QPixmapStyle::ControlDescriptor dest)
+{
+ m_descriptors[dest] = m_descriptors.value(source);
+}
+
+void QPixmapStyle::drawCachedPixmap(QPixmapStyle::ControlDescriptor control, const QRect &rect,
+ QPainter *p) const
+{
+ if (!m_descriptors.contains(control))
+ return;
+ const Descriptor &desc = m_descriptors.value(control);
+ const QPixmap pix = getCachedPixmap(control, desc, rect.size());
+ Q_ASSERT(!pix.isNull());
+ p->drawPixmap(rect, pix);
+}
+
+void QPixmapStyle::addPixmap(ControlPixmap control, const QString &fileName,
+ QMargins margins)
+{
+ Pixmap pix;
+
+ QPixmap image(fileName);
+ if (image.isNull())
+ return;
+
+ pix.pixmap = image;
+ pix.margins = margins;
+
+ m_pixmaps[control] = pix;
+}
+
+void QPixmapStyle::copyPixmap(QPixmapStyle::ControlPixmap source, QPixmapStyle::ControlPixmap dest)
+{
+ m_pixmaps[dest] = m_pixmaps.value(source);
+}
+
+void QPixmapStyle::drawPushButton(const QStyleOption *option,
+ QPainter *painter, const QWidget *) const
+{
+ const bool checked = option->state & State_On;
+ const bool pressed = option->state & State_Sunken;
+ const bool enabled = option->state & State_Enabled;
+
+ ControlDescriptor control = PB_Enabled;
+ if (enabled)
+ control = pressed ? PB_Pressed : (checked ? PB_Checked : PB_Enabled);
+ else
+ control = checked ? PB_PressedDisabled : PB_Disabled;
+ drawCachedPixmap(control, option->rect, painter);
+}
+
+void QPixmapStyle::drawLineEdit(const QStyleOption *option,
+ QPainter *painter, const QWidget *widget) const
+{
+ // Don't draw for the line edit inside a combobox
+ if (widget && qobject_cast<const QComboBox*>(widget->parentWidget()))
+ return;
+
+ const bool enabled = option->state & State_Enabled;
+ const bool focused = option->state & State_HasFocus;
+ ControlDescriptor control = enabled ? (focused ? LE_Focused : LE_Enabled) : LE_Disabled;
+ drawCachedPixmap(control, option->rect, painter);
+}
+
+void QPixmapStyle::drawTextEdit(const QStyleOption *option,
+ QPainter *painter, const QWidget *) const
+{
+ const bool enabled = option->state & State_Enabled;
+ const bool focused = option->state & State_HasFocus;
+ ControlDescriptor control = enabled ? (focused ? TE_Focused : TE_Enabled) : TE_Disabled;
+ drawCachedPixmap(control, option->rect, painter);
+}
+
+void QPixmapStyle::drawCheckBox(const QStyleOption *option,
+ QPainter *painter, const QWidget *) const
+{
+ const QStyleOptionButton *button = qstyleoption_cast<const QStyleOptionButton*>(option);
+
+ const bool down = button->state & State_Sunken;
+ const bool enabled = button->state & State_Enabled;
+ const bool on = button->state & State_On;
+
+ ControlPixmap control;
+ if (enabled)
+ control = on ? (down ? CB_PressedChecked : CB_Checked) : (down ? CB_Pressed : CB_Enabled);
+ else
+ control = on ? CB_DisabledChecked : CB_Disabled;
+ painter->drawPixmap(button->rect, m_pixmaps.value(control).pixmap);
+}
+
+void QPixmapStyle::drawRadioButton(const QStyleOption *option,
+ QPainter *painter, const QWidget *) const
+{
+ const QStyleOptionButton *button = qstyleoption_cast<const QStyleOptionButton*>(option);
+
+ const bool down = button->state & State_Sunken;
+ const bool enabled = button->state & State_Enabled;
+ const bool on = button->state & State_On;
+
+ ControlPixmap control;
+ if (enabled)
+ control = on ? RB_Checked : (down ? RB_Pressed : RB_Enabled);
+ else
+ control = on ? RB_DisabledChecked : RB_Disabled;
+ painter->drawPixmap(button->rect, m_pixmaps.value(control).pixmap);
+}
+
+void QPixmapStyle::drawPanelItemViewItem(const QStyleOption *option, QPainter *painter,
+ const QWidget *widget) const
+{
+ ControlPixmap cp = ID_Separator;
+ ControlDescriptor cd = ID_Selected;
+
+ if (widget && widget->property("_pixmap_combobox_list").toBool()) {
+ cp = DD_ItemSeparator;
+ cd = DD_ItemSelected;
+ }
+
+ QPixmap pix = m_pixmaps.value(cp).pixmap;
+ QRect rect = option->rect;
+ rect.setBottom(rect.top() + pix.height()-1);
+ painter->drawPixmap(rect, pix);
+ if (option->state & QStyle::State_Selected) {
+ rect = option->rect;
+ rect.setTop(rect.top() + pix.height());
+ drawCachedPixmap(cd, rect, painter);
+ }
+}
+
+void QPixmapStyle::drawProgressBarBackground(const QStyleOption *option,
+ QPainter *painter, const QWidget *) const
+{
+ bool vertical = false;
+ if (const QStyleOptionProgressBarV2 *pb2 =
+ qstyleoption_cast<const QStyleOptionProgressBarV2 *>(option)) {
+ vertical = (pb2->orientation == Qt::Vertical);
+ }
+ drawCachedPixmap(vertical ? PB_VBackground : PB_HBackground, option->rect, painter);
+}
+
+void QPixmapStyle::drawProgressBarLabel(const QStyleOption *option,
+ QPainter *painter, const QWidget *) const
+{
+ if (const QStyleOptionProgressBar *pb =
+ qstyleoption_cast<const QStyleOptionProgressBar *>(option)) {
+ bool vertical = false;
+ if (const QStyleOptionProgressBarV2 *pb2 =
+ qstyleoption_cast<const QStyleOptionProgressBarV2 *>(option)) {
+ vertical = (pb2->orientation == Qt::Vertical);
+ }
+ if (!vertical) {
+ QPalette::ColorRole textRole = QPalette::ButtonText;
+ proxy()->drawItemText(painter, pb->rect,
+ Qt::AlignCenter | Qt::TextSingleLine, pb->palette,
+ pb->state & State_Enabled, pb->text, textRole);
+ }
+ }
+}
+
+void QPixmapStyle::drawProgressBarFill(const QStyleOption *option,
+ QPainter *painter, const QWidget *) const
+{
+ const QStyleOptionProgressBar *pbar =
+ qstyleoption_cast<const QStyleOptionProgressBar*>(option);
+ bool vertical = false;
+ bool flip = pbar->direction == Qt::RightToLeft;
+ if (const QStyleOptionProgressBarV2 *pb2 =
+ qstyleoption_cast<const QStyleOptionProgressBarV2 *>(option)) {
+ vertical = (pb2->orientation == Qt::Vertical);
+ flip = flip ^ pb2->invertedAppearance;
+ }
+
+ if (pbar->progress == pbar->maximum) {
+ drawCachedPixmap(vertical ? PB_VComplete : PB_HComplete, option->rect, painter);
+
+ } else {
+ if (pbar->progress == 0)
+ return;
+ const int maximum = pbar->maximum;
+ const qreal ratio = qreal(vertical?option->rect.height():option->rect.width())/maximum;
+ const int progress = pbar->progress*ratio;
+
+ QRect optRect = option->rect;
+ if (vertical) {
+ if (flip)
+ optRect.setBottom(optRect.top()+progress-1);
+ else
+ optRect.setTop(optRect.bottom()-progress+1);
+ } else {
+ if (flip)
+ optRect.setLeft(optRect.right()-progress+1);
+ else
+ optRect.setRight(optRect.left()+progress-1);
+ }
+
+ drawCachedPixmap(vertical ? PB_VContent : PB_HContent, optRect, painter);
+ }
+}
+
+void QPixmapStyle::drawSlider(const QStyleOptionComplex *option,
+ QPainter *painter, const QWidget *widget) const
+{
+ const QStyleOptionSlider *slider = qstyleoption_cast<const QStyleOptionSlider*>(option);
+ if (!slider)
+ return;
+
+ const bool enabled = option->state & State_Enabled;
+ const bool pressed = option->state & State_Sunken;
+ const Qt::Orientation orient = slider->orientation;
+
+ const QRect handle = proxy()->subControlRect(CC_Slider, option, SC_SliderHandle, widget);
+ if (option->subControls & SC_SliderGroove) {
+ QRect groove = proxy()->subControlRect(CC_Slider, option, SC_SliderGroove, widget);
+ if (groove.isValid()) {
+ // Draw the background
+ ControlDescriptor control;
+ if (orient == Qt::Horizontal)
+ control = enabled ? SG_HEnabled : SG_HDisabled;
+ else
+ control = enabled ? SG_VEnabled : SG_VDisabled;
+ drawCachedPixmap(control, groove, painter);
+
+ // Draw the active part
+ if (orient == Qt::Horizontal) {
+ control = enabled ? (pressed ? SG_HActivePressed : SG_HActiveEnabled )
+ : SG_HActiveDisabled;
+ } else {
+ control = enabled ? (pressed ? SG_VActivePressed : SG_VActiveEnabled )
+ : SG_VActiveDisabled;
+ }
+ const Descriptor &desc = m_descriptors.value(control);
+ const QPixmap pix = getCachedPixmap(control, desc, groove.size());
+ if (!pix.isNull()) {
+ groove.setRight(orient == Qt::Horizontal
+ ? handle.center().x() : handle.center().y());
+ painter->drawPixmap(groove, pix, groove);
+ }
+ }
+ }
+ if (option->subControls & SC_SliderHandle) {
+ if (handle.isValid()) {
+ ControlPixmap pix;
+ if (orient == Qt::Horizontal)
+ pix = enabled ? (pressed ? SH_HPressed : SH_HEnabled) : SH_HDisabled;
+ else
+ pix = enabled ? (pressed ? SH_VPressed : SH_VEnabled) : SH_VDisabled;
+ painter->drawPixmap(handle, m_pixmaps.value(pix).pixmap);
+ }
+ }
+}
+
+void QPixmapStyle::drawComboBox(const QStyleOptionComplex *option,
+ QPainter *painter, const QWidget *widget) const
+{
+ const bool enabled = option->state & State_Enabled;
+ const bool pressed = widget->property("_pixmapstyle_combobox_pressed").toBool();
+ const bool opened = option->state & State_On;
+
+ ControlDescriptor control =
+ enabled ? (pressed ? DD_ButtonPressed : DD_ButtonEnabled) : DD_ButtonDisabled;
+ drawCachedPixmap(control, option->rect, painter);
+
+ ControlPixmap cp = enabled ? (opened ? DD_ArrowOpen
+ : (pressed ? DD_ArrowPressed : DD_ArrowEnabled))
+ : DD_ArrowDisabled;
+ Pixmap pix = m_pixmaps.value(cp);
+ QRect rect = comboBoxSubControlRect(option, SC_ComboBoxArrow, widget);
+ painter->drawPixmap(rect, pix.pixmap);
+}
+
+void QPixmapStyle::drawScrollBar(const QStyleOptionComplex *option,
+ QPainter *painter, const QWidget *widget) const
+{
+ if (const QStyleOptionSlider *slider =
+ qstyleoption_cast<const QStyleOptionSlider*>(option)) {
+ // Do not draw the scrollbar
+ if (slider->minimum == slider->maximum)
+ return;
+
+ QRect rect = scrollBarSubControlRect(option, SC_ScrollBarSlider, widget);
+ ControlDescriptor control = slider->orientation == Qt::Horizontal
+ ? SB_Horizontal : SB_Vertical;
+ drawCachedPixmap(control, rect, painter);
+ }
+}
+
+QSize QPixmapStyle::pushButtonSizeFromContents(const QStyleOption *option,
+ const QSize &contentsSize,
+ const QWidget *widget) const
+{
+ const Descriptor &desc = m_descriptors.value(PB_Enabled);
+ const int bm = proxy()->pixelMetric(PM_ButtonMargin, option, widget);
+
+ int w = contentsSize.width();
+ int h = contentsSize.height();
+ w += desc.margins.left() + desc.margins.right() + bm;
+ h += desc.margins.top() + desc.margins.bottom() + bm;
+
+ return computeSize(desc, w, h);
+}
+
+QSize QPixmapStyle::lineEditSizeFromContents(const QStyleOption *,
+ const QSize &contentsSize, const QWidget *) const
+{
+ const Descriptor &desc = m_descriptors.value(LE_Enabled);
+ const int border = 2 * proxy()->pixelMetric(PM_DefaultFrameWidth);
+
+ int w = contentsSize.width() + border + desc.margins.left() + desc.margins.right();
+ int h = contentsSize.height() + border + desc.margins.top() + desc.margins.bottom();
+
+ return computeSize(desc, w, h);
+}
+
+QSize QPixmapStyle::progressBarSizeFromContents(const QStyleOption *option,
+ const QSize &contentsSize,
+ const QWidget *widget) const
+{
+ bool vertical = false;
+ if (const QStyleOptionProgressBarV2 *pb2 =
+ qstyleoption_cast<const QStyleOptionProgressBarV2 *>(option)) {
+ vertical = (pb2->orientation == Qt::Vertical);
+ }
+ QSize result = QCommonStyle::sizeFromContents(CT_Slider, option, contentsSize, widget);
+ if (vertical) {
+ const Descriptor desc = m_descriptors.value(PB_VBackground);
+ return QSize(desc.size.height(), result.height());
+ } else {
+ const Descriptor desc = m_descriptors.value(PB_HBackground);
+ return QSize(result.width(), desc.size.height());
+ }
+}
+
+QSize QPixmapStyle::sliderSizeFromContents(const QStyleOption *option,
+ const QSize &contentsSize,
+ const QWidget *widget) const
+{
+ const QStyleOptionSlider *slider = qstyleoption_cast<const QStyleOptionSlider*>(option);
+ if (!slider)
+ return QSize();
+
+ QSize result = QCommonStyle::sizeFromContents(CT_Slider, option, contentsSize, widget);
+
+ const Descriptor desc = m_descriptors.value(slider->orientation == Qt::Horizontal
+ ? SG_HEnabled : SG_VEnabled);
+
+ if (slider->orientation == Qt::Horizontal)
+ return QSize(result.width(), desc.size.height());
+ else
+ return QSize(desc.size.width(), result.height());
+}
+
+QSize QPixmapStyle::comboBoxSizeFromContents(const QStyleOption *option,
+ const QSize &contentsSize,
+ const QWidget *widget) const
+{
+ const Descriptor &desc = m_descriptors.value(DD_ButtonEnabled);
+
+ QSize result = QCommonStyle::sizeFromContents(CT_ComboBox, option, contentsSize, widget);
+ return computeSize(desc, result.width(), result.height());
+}
+
+QSize QPixmapStyle::itemViewSizeFromContents(const QStyleOption *option,
+ const QSize &contentsSize,
+ const QWidget *widget) const
+{
+ QSize size = QCommonStyle::sizeFromContents(CT_ItemViewItem, option, contentsSize, widget);
+
+ ControlPixmap cp = ID_Separator;
+ ControlDescriptor cd = ID_Selected;
+ if (widget && widget->property("_pixmap_combobox_list").toBool()) {
+ cp = DD_ItemSeparator;
+ cd = DD_ItemSelected;
+ }
+
+ const Descriptor &desc = m_descriptors.value(cd);
+ const Pixmap &pix = m_pixmaps.value(cp);
+ size.setHeight(qMax(size.height(),
+ desc.size.height() + pix.pixmap.height()));
+ return size;
+}
+
+QRect QPixmapStyle::comboBoxSubControlRect(const QStyleOptionComplex *option,
+ QStyle::SubControl sc, const QWidget *) const
+{
+ QRect r = option->rect; // Default size
+ const Pixmap &pix = m_pixmaps.value(DD_ArrowEnabled);
+ const Descriptor &desc = m_descriptors.value(DD_ButtonEnabled);
+
+ switch (sc) {
+ case SC_ComboBoxArrow:
+ r.setRect(r.right() - pix.margins.right() - pix.pixmap.width(),
+ r.top() + pix.margins.top(),
+ pix.pixmap.width(), pix.pixmap.height());
+ break;
+ case SC_ComboBoxEditField:
+ r.adjust(desc.margins.left(), desc.margins.right(),
+ -desc.margins.right(), -desc.margins.bottom());
+ r.setRight(r.right() - pix.margins.right() - pix.margins.left() - pix.pixmap.width());
+ break;
+ default:
+ break;
+ }
+
+ r = visualRect(option->direction, option->rect, r);
+ return r;
+}
+
+QRect QPixmapStyle::scrollBarSubControlRect(const QStyleOptionComplex *option,
+ QStyle::SubControl sc, const QWidget *) const
+{
+ if (const QStyleOptionSlider *slider =
+ qstyleoption_cast<const QStyleOptionSlider*>(option)) {
+ int length = (slider->orientation == Qt::Horizontal)
+ ? slider->rect.width() : slider->rect.height();
+ int page = length * slider->pageStep
+ / (slider->maximum - slider->minimum + slider->pageStep);
+ int pos = length * slider->sliderValue
+ / (slider->maximum - slider->minimum + slider->pageStep);
+ pos = qMin(pos+page, length) - page;
+
+ QRect rect = slider->rect;
+
+ if (slider->orientation == Qt::Horizontal) {
+ switch (sc) {
+ case SC_ScrollBarAddPage:
+ rect.setLeft(pos+page);
+ return rect;
+ case SC_ScrollBarSubPage:
+ rect.setRight(pos);
+ return rect;
+ case SC_ScrollBarGroove:
+ return rect;
+ case SC_ScrollBarSlider:
+ rect.setLeft(pos);
+ rect.setRight(pos+page);
+ return rect;
+ default: ;
+ }
+ } else {
+ switch (sc) {
+ case SC_ScrollBarAddPage:
+ rect.setTop(pos+page);
+ return rect;
+ case SC_ScrollBarSubPage:
+ rect.setBottom(pos);
+ return rect;
+ case SC_ScrollBarGroove:
+ return rect;
+ case SC_ScrollBarSlider:
+ rect.setTop(pos);
+ rect.setBottom(pos+page);
+ return rect;
+ default: ;
+ }
+ }
+ }
+ return QRect();
+}
+
+static QPixmap scale(int w, int h, const QPixmap &pixmap, const QPixmapStyle::Descriptor &desc)
+{
+ QPixmap result(w, h);
+ {
+ const QColor transparent(0, 0, 0, 0);
+ result.fill( transparent );
+ QPainter p( &result );
+ const QMargins margins = desc.margins;
+ qDrawBorderPixmap(&p, result.rect(), margins, pixmap,
+ pixmap.rect(), margins, desc.tileRules);
+ }
+ return result;
+}
+
+QPixmap QPixmapStyle::getCachedPixmap(ControlDescriptor control, const Descriptor &desc,
+ const QSize &size) const
+{
+ const QString sizeString = QString::number(size.width()) % QLatin1Char('*')
+ % QString::number(size.height());
+ const QString key = QLatin1String(metaObject()->className()) % QString::number(control)
+ % QLatin1Char('@') % sizeString;
+
+ QPixmap result;
+
+ if (!QPixmapCache::find( key, &result)) {
+ QPixmap source(desc.fileName);
+ result = scale(size.width(), size.height(), source, desc);
+ QPixmapCache::insert(key, result);
+ }
+ return result;
+}
+
+QSize QPixmapStyle::computeSize(const QPixmapStyle::Descriptor &desc, int width, int height) const
+{
+ if (desc.tileRules.horizontal != Qt::RepeatTile)
+ width = qMax(width, desc.size.width());
+ if (desc.tileRules.vertical != Qt::RepeatTile)
+ height = qMax(height, desc.size.height());
+ return QSize(width, height);
+}
+
+QT_END_NAMESPACE
diff --git a/src/plugins/styles/bb10style/qpixmapstyle.h b/src/plugins/styles/bb10style/qpixmapstyle.h
new file mode 100644
index 0000000000..d4a223aab8
--- /dev/null
+++ b/src/plugins/styles/bb10style/qpixmapstyle.h
@@ -0,0 +1,236 @@
+/***************************************************************************
+**
+** Copyright (C) 2014 BlackBerry Limited. All rights reserved.
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QPIXMAPSTYLE_H
+#define QPIXMAPSTYLE_H
+
+#include <QCommonStyle>
+#include <QString>
+#include <QPixmap>
+#include <QMargins>
+#include <QTileRules>
+#include <QHash>
+#include <QPainter>
+
+QT_BEGIN_NAMESPACE
+
+class QPixmapStyle : public QCommonStyle
+{
+ Q_OBJECT
+
+public:
+ struct Descriptor {
+ QString fileName;
+ QSize size;
+ QMargins margins;
+ QTileRules tileRules;
+ };
+
+ enum ControlDescriptor {
+ BG_Background=0,
+ LE_Enabled, // QLineEdit
+ LE_Disabled,
+ LE_Focused,
+ PB_Enabled, // QPushButton
+ PB_Pressed,
+ PB_PressedDisabled,
+ PB_Checked,
+ PB_Disabled,
+ TE_Enabled, // QTextEdit
+ TE_Disabled,
+ TE_Focused,
+ PB_HBackground, // Horizontal QProgressBar
+ PB_HContent,
+ PB_HComplete,
+ PB_VBackground, // Vertical QProgressBar
+ PB_VContent,
+ PB_VComplete,
+ SG_HEnabled, // Horizontal QSlider groove
+ SG_HDisabled,
+ SG_HActiveEnabled,
+ SG_HActivePressed,
+ SG_HActiveDisabled,
+ SG_VEnabled, // Vertical QSlider groove
+ SG_VDisabled,
+ SG_VActiveEnabled,
+ SG_VActivePressed,
+ SG_VActiveDisabled,
+ DD_ButtonEnabled, // QComboBox (DropDown)
+ DD_ButtonDisabled,
+ DD_ButtonPressed,
+ DD_PopupDown,
+ DD_PopupUp,
+ DD_ItemSelected,
+ ID_Selected, // QStyledItemDelegate
+ SB_Horizontal, // QScrollBar
+ SB_Vertical
+ };
+
+ struct Pixmap {
+ QPixmap pixmap;
+ QMargins margins;
+ };
+ enum ControlPixmap {
+ CB_Enabled, // QCheckBox
+ CB_Checked,
+ CB_Pressed,
+ CB_PressedChecked,
+ CB_Disabled,
+ CB_DisabledChecked,
+ RB_Enabled, // QRadioButton
+ RB_Checked,
+ RB_Pressed,
+ RB_Disabled,
+ RB_DisabledChecked,
+ SH_HEnabled, // Horizontal QSlider handle
+ SH_HDisabled,
+ SH_HPressed,
+ SH_VEnabled, // Vertical QSlider handle
+ SH_VDisabled,
+ SH_VPressed,
+ DD_ArrowEnabled, // QComboBox (DropDown) arrow
+ DD_ArrowDisabled,
+ DD_ArrowPressed,
+ DD_ArrowOpen,
+ DD_ItemSeparator,
+ ID_Separator // QStyledItemDelegate separator
+ };
+
+public:
+ QPixmapStyle();
+ ~QPixmapStyle();
+
+ void polish(QApplication *application);
+ void polish(QPalette &palette);
+ void polish(QWidget *widget);
+ void unpolish(QWidget *widget);
+
+ void drawPrimitive(PrimitiveElement element, const QStyleOption *option,
+ QPainter *painter, const QWidget *widget = 0) const;
+ void drawControl(ControlElement element, const QStyleOption *option,
+ QPainter *painter, const QWidget *widget = 0) const;
+ void drawComplexControl(ComplexControl cc, const QStyleOptionComplex *option,
+ QPainter *painter, const QWidget *widget=0) const;
+
+ QSize sizeFromContents(ContentsType type, const QStyleOption *option,
+ const QSize &contentsSize, const QWidget *widget = 0) const;
+ QRect subElementRect(SubElement element, const QStyleOption *option,
+ const QWidget *widget = 0) const;
+ QRect subControlRect(ComplexControl cc, const QStyleOptionComplex *option,
+ SubControl sc, const QWidget *widget = 0) const;
+
+ int pixelMetric(PixelMetric metric, const QStyleOption *option = 0,
+ const QWidget *widget = 0) const;
+ int styleHint(StyleHint hint, const QStyleOption *option,
+ const QWidget *widget, QStyleHintReturn *returnData) const;
+ SubControl hitTestComplexControl(ComplexControl control, const QStyleOptionComplex *option,
+ const QPoint &pos, const QWidget *widget) const;
+
+ bool eventFilter(QObject *watched, QEvent *event);
+
+protected:
+ void addDescriptor(ControlDescriptor control, const QString &fileName,
+ QMargins margins = QMargins(),
+ QTileRules tileRules = QTileRules(Qt::RepeatTile, Qt::RepeatTile));
+ void copyDescriptor(ControlDescriptor source, ControlDescriptor dest);
+ void drawCachedPixmap(ControlDescriptor control, const QRect &rect, QPainter *p) const;
+
+ void addPixmap(ControlPixmap control, const QString &fileName,
+ QMargins margins = QMargins());
+ void copyPixmap(ControlPixmap source, ControlPixmap dest);
+
+ void drawPushButton(const QStyleOption *option,
+ QPainter *painter, const QWidget *widget) const;
+ void drawLineEdit(const QStyleOption *option,
+ QPainter *painter, const QWidget *widget) const;
+ void drawTextEdit(const QStyleOption *option,
+ QPainter *painter, const QWidget *widget) const;
+ void drawCheckBox(const QStyleOption *option,
+ QPainter *painter, const QWidget *widget) const;
+ void drawRadioButton(const QStyleOption *option,
+ QPainter *painter, const QWidget *widget) const;
+ void drawPanelItemViewItem(const QStyleOption *option,
+ QPainter *painter, const QWidget *widget) const;
+ void drawProgressBarBackground(const QStyleOption *option,
+ QPainter *painter, const QWidget *widget) const;
+ void drawProgressBarLabel(const QStyleOption *option,
+ QPainter *painter, const QWidget *widget) const;
+ void drawProgressBarFill(const QStyleOption *option,
+ QPainter *painter, const QWidget *widget) const;
+ void drawSlider(const QStyleOptionComplex *option,
+ QPainter *painter, const QWidget *widget) const;
+ void drawComboBox(const QStyleOptionComplex *option,
+ QPainter *painter, const QWidget *widget) const;
+ void drawScrollBar(const QStyleOptionComplex *option,
+ QPainter *painter, const QWidget *widget) const;
+
+ QSize pushButtonSizeFromContents(const QStyleOption *option,
+ const QSize &contentsSize, const QWidget *widget) const;
+ QSize lineEditSizeFromContents(const QStyleOption *option,
+ const QSize &contentsSize, const QWidget *widget) const;
+ QSize progressBarSizeFromContents(const QStyleOption *option,
+ const QSize &contentsSize, const QWidget *widget) const;
+ QSize sliderSizeFromContents(const QStyleOption *option,
+ const QSize &contentsSize, const QWidget *widget) const;
+ QSize comboBoxSizeFromContents(const QStyleOption *option,
+ const QSize &contentsSize, const QWidget *widget) const;
+ QSize itemViewSizeFromContents(const QStyleOption *option,
+ const QSize &contentsSize, const QWidget *widget) const;
+
+ QRect comboBoxSubControlRect(const QStyleOptionComplex *option,
+ SubControl sc, const QWidget *widget) const;
+ QRect scrollBarSubControlRect(const QStyleOptionComplex *option,
+ SubControl sc, const QWidget *widget) const;
+
+private:
+ QPixmap getCachedPixmap(ControlDescriptor control,
+ const Descriptor &desc, const QSize &size) const;
+
+ QSize computeSize(const Descriptor &desc, int width, int height) const;
+
+private:
+ QHash<ControlDescriptor, Descriptor> m_descriptors;
+ QHash<ControlPixmap, Pixmap> m_pixmaps;
+};
+
+QT_END_NAMESPACE
+
+#endif // QPIXMAPSTYLE_H
diff --git a/src/plugins/styles/styles.pro b/src/plugins/styles/styles.pro
new file mode 100644
index 0000000000..88b3f90e0c
--- /dev/null
+++ b/src/plugins/styles/styles.pro
@@ -0,0 +1,3 @@
+TEMPLATE = subdirs
+
+blackberry:SUBDIRS += bb10style
diff --git a/src/printsupport/dialogs/qpagesetupdialog.h b/src/printsupport/dialogs/qpagesetupdialog.h
index a6edf91cd1..96d26c6d44 100644
--- a/src/printsupport/dialogs/qpagesetupdialog.h
+++ b/src/printsupport/dialogs/qpagesetupdialog.h
@@ -58,18 +58,12 @@ public:
#if defined(Q_OS_MAC) || defined(Q_OS_WIN)
virtual void setVisible(bool visible);
#endif
- virtual int exec();
+ virtual int exec() Q_DECL_OVERRIDE;
-#ifdef Q_NO_USING_KEYWORD
-#ifndef Q_QDOC
- void open() { QDialog::open(); }
-#endif
-#else
using QDialog::open;
-#endif
void open(QObject *receiver, const char *member);
- void done(int result);
+ void done(int result) Q_DECL_OVERRIDE;
QPrinter *printer();
};
diff --git a/src/printsupport/dialogs/qpagesetupdialog_unix.cpp b/src/printsupport/dialogs/qpagesetupdialog_unix.cpp
index a013ed82d3..2651522c47 100644
--- a/src/printsupport/dialogs/qpagesetupdialog_unix.cpp
+++ b/src/printsupport/dialogs/qpagesetupdialog_unix.cpp
@@ -110,7 +110,7 @@ public:
}
protected:
- void paintEvent(QPaintEvent *)
+ void paintEvent(QPaintEvent *) Q_DECL_OVERRIDE
{
QSize pageSize = m_pageLayout.fullRectPoints().size();
QSizeF scaledSize = pageSize.scaled(width() - 10, height() - 10, Qt::KeepAspectRatio);
diff --git a/src/printsupport/dialogs/qprintdialog.h b/src/printsupport/dialogs/qprintdialog.h
index 437c2831d4..c243121054 100644
--- a/src/printsupport/dialogs/qprintdialog.h
+++ b/src/printsupport/dialogs/qprintdialog.h
@@ -57,11 +57,11 @@ public:
explicit QPrintDialog(QWidget *parent = 0);
~QPrintDialog();
- int exec();
+ int exec() Q_DECL_OVERRIDE;
#if defined (Q_OS_UNIX) && !defined(Q_OS_MAC)
- virtual void accept();
+ virtual void accept() Q_DECL_OVERRIDE;
#endif
- void done(int result);
+ void done(int result) Q_DECL_OVERRIDE;
void setOption(PrintDialogOption option, bool on = true);
bool testOption(PrintDialogOption option) const;
@@ -69,29 +69,17 @@ public:
PrintDialogOptions options() const;
#if defined(Q_OS_UNIX) || defined(Q_OS_WIN)
- void setVisible(bool visible);
+ void setVisible(bool visible) Q_DECL_OVERRIDE;
#endif
-#ifdef Q_NO_USING_KEYWORD
-#ifndef Q_QDOC
- void open() { QDialog::open(); }
-#endif
-#else
using QDialog::open;
-#endif
void open(QObject *receiver, const char *member);
#ifdef Q_QDOC
QPrinter *printer();
#endif
-#ifdef Q_NO_USING_KEYWORD
-#ifndef Q_QDOC
- void accepted() { QDialog::accepted(); }
-#endif
-#else
using QDialog::accepted;
-#endif
Q_SIGNALS:
void accepted(QPrinter *printer);
diff --git a/src/printsupport/dialogs/qprintdialog_unix.cpp b/src/printsupport/dialogs/qprintdialog_unix.cpp
index f40a08dd7e..95f128c6ae 100644
--- a/src/printsupport/dialogs/qprintdialog_unix.cpp
+++ b/src/printsupport/dialogs/qprintdialog_unix.cpp
@@ -119,7 +119,7 @@ public:
void setupPrinter() const;
protected:
- void showEvent(QShowEvent* event);
+ void showEvent(QShowEvent* event) Q_DECL_OVERRIDE;
private:
friend class QUnixPrintWidgetPrivate;
@@ -205,7 +205,7 @@ public:
void setupPrinter();
void updateWidgets();
- virtual void setTabs(const QList<QWidget*> &tabs);
+ virtual void setTabs(const QList<QWidget*> &tabs) Q_DECL_OVERRIDE;
Ui::QPrintSettingsOutput options;
QUnixPrintWidget *top;
diff --git a/src/printsupport/dialogs/qprintpreviewdialog.cpp b/src/printsupport/dialogs/qprintpreviewdialog.cpp
index 9c40e7dd51..a71f2122dc 100644
--- a/src/printsupport/dialogs/qprintpreviewdialog.cpp
+++ b/src/printsupport/dialogs/qprintpreviewdialog.cpp
@@ -73,7 +73,7 @@ class QPrintPreviewMainWindow : public QMainWindow
{
public:
QPrintPreviewMainWindow(QWidget *parent) : QMainWindow(parent) {}
- QMenu *createPopupMenu() { return 0; }
+ QMenu *createPopupMenu() Q_DECL_OVERRIDE { return 0; }
};
class ZoomFactorValidator : public QDoubleValidator
@@ -84,7 +84,7 @@ public:
ZoomFactorValidator(qreal bottom, qreal top, int decimals, QObject *parent)
: QDoubleValidator(bottom, top, decimals, parent) {}
- State validate(QString &input, int &pos) const
+ State validate(QString &input, int &pos) const Q_DECL_OVERRIDE
{
bool replacePercent = false;
if (input.endsWith(QLatin1Char('%'))) {
@@ -117,13 +117,13 @@ public:
}
protected:
- void focusInEvent(QFocusEvent *e)
+ void focusInEvent(QFocusEvent *e) Q_DECL_OVERRIDE
{
origText = text();
QLineEdit::focusInEvent(e);
}
- void focusOutEvent(QFocusEvent *e)
+ void focusOutEvent(QFocusEvent *e) Q_DECL_OVERRIDE
{
if (isModified() && !hasAcceptableInput())
setText(origText);
diff --git a/src/printsupport/dialogs/qprintpreviewdialog.h b/src/printsupport/dialogs/qprintpreviewdialog.h
index 423a27db12..3ec462b901 100644
--- a/src/printsupport/dialogs/qprintpreviewdialog.h
+++ b/src/printsupport/dialogs/qprintpreviewdialog.h
@@ -56,19 +56,13 @@ public:
explicit QPrintPreviewDialog(QPrinter *printer, QWidget *parent = 0, Qt::WindowFlags flags = 0);
~QPrintPreviewDialog();
-#ifdef Q_NO_USING_KEYWORD
-#ifndef Q_QDOC
- void open() { QDialog::open(); }
-#endif
-#else
using QDialog::open;
-#endif
void open(QObject *receiver, const char *member);
QPrinter *printer();
- void setVisible(bool visible);
- void done(int result);
+ void setVisible(bool visible) Q_DECL_OVERRIDE;
+ void done(int result) Q_DECL_OVERRIDE;
Q_SIGNALS:
void paintRequested(QPrinter *printer);
diff --git a/src/printsupport/kernel/qcups.cpp b/src/printsupport/kernel/qcups.cpp
index 1a27fbd07c..b8f75c3cb7 100644
--- a/src/printsupport/kernel/qcups.cpp
+++ b/src/printsupport/kernel/qcups.cpp
@@ -168,8 +168,11 @@ void QCUPSSupport::setPagesPerSheetLayout(QPrinter *printer, const PagesPerShee
const PagesPerSheetLayout pagesPerSheetLayout)
{
QStringList cupsOptions = cupsOptionsList(printer);
- static const char *pagesPerSheetData[] = { "1", "2", "4", "6", "9", "16", 0 };
- static const char *pageLayoutData[] = {"lrtb", "lrbt", "rlbt", "rltb", "btlr", "btrl", "tblr", "tbrl", 0};
+ // WARNING: the following trick (with a [2]-extent) only works as
+ // WARNING: long as there's only one two-digit number in the list
+ // WARNING: and it is the last one (before the "\0")!
+ static const char pagesPerSheetData[][2] = { "1", "2", "4", "6", "9", {'1', '6'}, "\0" };
+ static const char pageLayoutData[][5] = {"lrtb", "lrbt", "rlbt", "rltb", "btlr", "btrl", "tblr", "tbrl"};
setCupsOption(cupsOptions, QStringLiteral("number-up"), QLatin1String(pagesPerSheetData[pagesPerSheet]));
setCupsOption(cupsOptions, QStringLiteral("number-up-layout"), QLatin1String(pageLayoutData[pagesPerSheetLayout]));
setCupsOptions(printer, cupsOptions);
diff --git a/src/printsupport/kernel/qprintengine_pdf_p.h b/src/printsupport/kernel/qprintengine_pdf_p.h
index e78950eb97..401aee1af0 100644
--- a/src/printsupport/kernel/qprintengine_pdf_p.h
+++ b/src/printsupport/kernel/qprintengine_pdf_p.h
@@ -81,18 +81,18 @@ public:
virtual ~QPdfPrintEngine();
// reimplementations QPaintEngine
- bool begin(QPaintDevice *pdev);
- bool end();
+ bool begin(QPaintDevice *pdev) Q_DECL_OVERRIDE;
+ bool end() Q_DECL_OVERRIDE;
// end reimplementations QPaintEngine
// reimplementations QPrintEngine
- bool abort() {return false;}
- QPrinter::PrinterState printerState() const {return state;}
+ bool abort() Q_DECL_OVERRIDE {return false;}
+ QPrinter::PrinterState printerState() const Q_DECL_OVERRIDE {return state;}
- bool newPage();
- int metric(QPaintDevice::PaintDeviceMetric) const;
- virtual void setProperty(PrintEnginePropertyKey key, const QVariant &value);
- virtual QVariant property(PrintEnginePropertyKey key) const;
+ bool newPage() Q_DECL_OVERRIDE;
+ int metric(QPaintDevice::PaintDeviceMetric) const Q_DECL_OVERRIDE;
+ virtual void setProperty(PrintEnginePropertyKey key, const QVariant &value) Q_DECL_OVERRIDE;
+ virtual QVariant property(PrintEnginePropertyKey key) const Q_DECL_OVERRIDE;
// end reimplementations QPrintEngine
QPrinter::PrinterState state;
diff --git a/src/printsupport/kernel/qprinter.h b/src/printsupport/kernel/qprinter.h
index 1f0edaf1f3..61065a893e 100644
--- a/src/printsupport/kernel/qprinter.h
+++ b/src/printsupport/kernel/qprinter.h
@@ -66,7 +66,7 @@ public:
explicit QPrinter(const QPrinterInfo& printer, PrinterMode mode = ScreenResolution);
~QPrinter();
- int devType() const;
+ int devType() const Q_DECL_OVERRIDE;
enum Orientation { Portrait, Landscape };
@@ -314,10 +314,10 @@ public:
void setOrientation(Orientation);
Orientation orientation() const;
- void setPageSize(PageSize);
+ void setPageSize(PageSize) Q_DECL_OVERRIDE;
PageSize pageSize() const;
- void setPageSizeMM(const QSizeF &size);
+ void setPageSizeMM(const QSizeF &size) Q_DECL_OVERRIDE;
void setPaperSize(PaperSize);
PaperSize paperSize() const;
@@ -381,12 +381,12 @@ public:
QString printerSelectionOption() const;
void setPrinterSelectionOption(const QString &);
- bool newPage();
+ bool newPage() Q_DECL_OVERRIDE;
bool abort();
PrinterState printerState() const;
- QPaintEngine *paintEngine() const;
+ QPaintEngine *paintEngine() const Q_DECL_OVERRIDE;
QPrintEngine *printEngine() const;
void setFromTo(int fromPage, int toPage);
@@ -396,13 +396,13 @@ public:
void setPrintRange(PrintRange range);
PrintRange printRange() const;
- void setMargins(const Margins &m);
+ void setMargins(const Margins &m) Q_DECL_OVERRIDE;
void setPageMargins(qreal left, qreal top, qreal right, qreal bottom, Unit unit);
void getPageMargins(qreal *left, qreal *top, qreal *right, qreal *bottom, Unit unit) const;
protected:
- int metric(PaintDeviceMetric) const;
+ int metric(PaintDeviceMetric) const Q_DECL_OVERRIDE;
void setEngines(QPrintEngine *printEngine, QPaintEngine *paintEngine);
private:
diff --git a/src/printsupport/widgets/qprintpreviewwidget.cpp b/src/printsupport/widgets/qprintpreviewwidget.cpp
index 208ad5e0f3..7ea8bf9365 100644
--- a/src/printsupport/widgets/qprintpreviewwidget.cpp
+++ b/src/printsupport/widgets/qprintpreviewwidget.cpp
@@ -66,7 +66,7 @@ public:
inline int pageNumber() const
{ return pageNum; }
- void paint(QPainter *painter, const QStyleOptionGraphicsItem *item, QWidget *widget);
+ void paint(QPainter *painter, const QStyleOptionGraphicsItem *item, QWidget *widget) Q_DECL_OVERRIDE;
private:
int pageNum;
@@ -152,7 +152,7 @@ signals:
void resized();
protected:
- void resizeEvent(QResizeEvent* e)
+ void resizeEvent(QResizeEvent* e) Q_DECL_OVERRIDE
{
{
const QSignalBlocker blocker(verticalScrollBar()); // Don't change page, QTBUG-14517
@@ -161,7 +161,7 @@ protected:
emit resized();
}
- void showEvent(QShowEvent* e)
+ void showEvent(QShowEvent* e) Q_DECL_OVERRIDE
{
QGraphicsView::showEvent(e);
emit resized();
diff --git a/src/printsupport/widgets/qprintpreviewwidget.h b/src/printsupport/widgets/qprintpreviewwidget.h
index ff648b03d0..59ac9cdaba 100644
--- a/src/printsupport/widgets/qprintpreviewwidget.h
+++ b/src/printsupport/widgets/qprintpreviewwidget.h
@@ -72,7 +72,7 @@ public:
ZoomMode zoomMode() const;
int currentPage() const;
int pageCount() const;
- void setVisible(bool visible);
+ void setVisible(bool visible) Q_DECL_OVERRIDE;
public Q_SLOTS:
void print();
diff --git a/src/sql/drivers/mysql/qsql_mysql_p.h b/src/sql/drivers/mysql/qsql_mysql_p.h
index 601193f4b5..7cf2c9317c 100644
--- a/src/sql/drivers/mysql/qsql_mysql_p.h
+++ b/src/sql/drivers/mysql/qsql_mysql_p.h
@@ -75,26 +75,26 @@ public:
explicit QMYSQLResult(const QMYSQLDriver* db);
~QMYSQLResult();
- QVariant handle() const;
+ QVariant handle() const Q_DECL_OVERRIDE;
protected:
void cleanup();
- bool fetch(int i);
- bool fetchNext();
- bool fetchLast();
- bool fetchFirst();
- QVariant data(int field);
- bool isNull(int field);
- bool reset (const QString& query);
- int size();
- int numRowsAffected();
- QVariant lastInsertId() const;
- QSqlRecord record() const;
- void virtual_hook(int id, void *data);
- bool nextResult();
+ bool fetch(int i) Q_DECL_OVERRIDE;
+ bool fetchNext() Q_DECL_OVERRIDE;
+ bool fetchLast() Q_DECL_OVERRIDE;
+ bool fetchFirst() Q_DECL_OVERRIDE;
+ QVariant data(int field) Q_DECL_OVERRIDE;
+ bool isNull(int field) Q_DECL_OVERRIDE;
+ bool reset (const QString& query) Q_DECL_OVERRIDE;
+ int size() Q_DECL_OVERRIDE;
+ int numRowsAffected() Q_DECL_OVERRIDE;
+ QVariant lastInsertId() const Q_DECL_OVERRIDE;
+ QSqlRecord record() const Q_DECL_OVERRIDE;
+ void virtual_hook(int id, void *data) Q_DECL_OVERRIDE;
+ bool nextResult() Q_DECL_OVERRIDE;
#if MYSQL_VERSION_ID >= 40108
- bool prepare(const QString& stmt);
- bool exec();
+ bool prepare(const QString& stmt) Q_DECL_OVERRIDE;
+ bool exec() Q_DECL_OVERRIDE;
#endif
private:
QMYSQLResultPrivate* d;
@@ -109,29 +109,29 @@ public:
explicit QMYSQLDriver(QObject *parent=0);
explicit QMYSQLDriver(MYSQL *con, QObject * parent=0);
~QMYSQLDriver();
- bool hasFeature(DriverFeature f) const;
+ bool hasFeature(DriverFeature f) const Q_DECL_OVERRIDE;
bool open(const QString & db,
const QString & user,
const QString & password,
const QString & host,
int port,
- const QString& connOpts);
- void close();
- QSqlResult *createResult() const;
- QStringList tables(QSql::TableType) const;
- QSqlIndex primaryIndex(const QString& tablename) const;
- QSqlRecord record(const QString& tablename) const;
+ const QString& connOpts) Q_DECL_OVERRIDE;
+ void close() Q_DECL_OVERRIDE;
+ QSqlResult *createResult() const Q_DECL_OVERRIDE;
+ QStringList tables(QSql::TableType) const Q_DECL_OVERRIDE;
+ QSqlIndex primaryIndex(const QString& tablename) const Q_DECL_OVERRIDE;
+ QSqlRecord record(const QString& tablename) const Q_DECL_OVERRIDE;
QString formatValue(const QSqlField &field,
- bool trimStrings) const;
- QVariant handle() const;
- QString escapeIdentifier(const QString &identifier, IdentifierType type) const;
+ bool trimStrings) const Q_DECL_OVERRIDE;
+ QVariant handle() const Q_DECL_OVERRIDE;
+ QString escapeIdentifier(const QString &identifier, IdentifierType type) const Q_DECL_OVERRIDE;
- bool isIdentifierEscaped(const QString &identifier, IdentifierType type) const;
+ bool isIdentifierEscaped(const QString &identifier, IdentifierType type) const Q_DECL_OVERRIDE;
protected:
- bool beginTransaction();
- bool commitTransaction();
- bool rollbackTransaction();
+ bool beginTransaction() Q_DECL_OVERRIDE;
+ bool commitTransaction() Q_DECL_OVERRIDE;
+ bool rollbackTransaction() Q_DECL_OVERRIDE;
private:
void init();
};
diff --git a/src/sql/drivers/odbc/qsql_odbc.cpp b/src/sql/drivers/odbc/qsql_odbc.cpp
index f95fb8868e..d9b31c7702 100644
--- a/src/sql/drivers/odbc/qsql_odbc.cpp
+++ b/src/sql/drivers/odbc/qsql_odbc.cpp
@@ -222,12 +222,7 @@ static QString qWarnODBCHandle(int handleType, SQLHANDLE handle, int *nativeCode
if (r == SQL_SUCCESS || r == SQL_SUCCESS_WITH_INFO) {
if (nativeCode)
*nativeCode = nativeCode_;
- QString tmpstore;
-#ifdef UNICODE
- tmpstore = fromSQLTCHAR(description_, msgLen);
-#else
- tmpstore = QString::fromUtf8((const char*)description_.constData(), msgLen);
-#endif
+ const QString tmpstore = fromSQLTCHAR(description_, msgLen);
if(result != tmpstore) {
if(!result.isEmpty())
result += QLatin1Char(' ');
@@ -241,17 +236,39 @@ static QString qWarnODBCHandle(int handleType, SQLHANDLE handle, int *nativeCode
return result;
}
+static QString qODBCWarn(const SQLHANDLE hStmt, const SQLHANDLE envHandle = 0,
+ const SQLHANDLE pDbC = 0, int *nativeCode = 0)
+{
+ QString result;
+ if (envHandle)
+ result += qWarnODBCHandle(SQL_HANDLE_ENV, envHandle, nativeCode);
+ if (pDbC) {
+ const QString dMessage = qWarnODBCHandle(SQL_HANDLE_DBC, pDbC, nativeCode);
+ if (!dMessage.isEmpty()) {
+ if (!result.isEmpty())
+ result += QLatin1Char(' ');
+ result += dMessage;
+ }
+ }
+ if (hStmt) {
+ const QString hMessage = qWarnODBCHandle(SQL_HANDLE_STMT, hStmt, nativeCode);
+ if (!hMessage.isEmpty()) {
+ if (!result.isEmpty())
+ result += QLatin1Char(' ');
+ result += hMessage;
+ }
+ }
+ return result;
+}
+
static QString qODBCWarn(const QODBCPrivate* odbc, int *nativeCode = 0)
{
- return QString(qWarnODBCHandle(SQL_HANDLE_ENV, odbc->dpEnv()) + QLatin1Char(' ')
- + qWarnODBCHandle(SQL_HANDLE_DBC, odbc->dpDbc()) + QLatin1Char(' ')
- + qWarnODBCHandle(SQL_HANDLE_STMT, odbc->hStmt, nativeCode)).simplified();
+ return qODBCWarn(odbc->hStmt, odbc->dpEnv(), odbc->dpDbc(), nativeCode);
}
static QString qODBCWarn(const QODBCDriverPrivate* odbc, int *nativeCode = 0)
{
- return QString(qWarnODBCHandle(SQL_HANDLE_ENV, odbc->hEnv) + QLatin1Char(' ')
- + qWarnODBCHandle(SQL_HANDLE_DBC, odbc->hDbc, nativeCode)).simplified();
+ return qODBCWarn(0, odbc->hEnv, odbc->hDbc, nativeCode);
}
static void qSqlWarning(const QString& message, const QODBCPrivate* odbc)
@@ -264,6 +281,11 @@ static void qSqlWarning(const QString &message, const QODBCDriverPrivate *odbc)
qWarning() << message << "\tError:" << qODBCWarn(odbc);
}
+static void qSqlWarning(const QString &message, const SQLHANDLE hStmt)
+{
+ qWarning() << message << "\tError:" << qODBCWarn(hStmt);
+}
+
static QSqlError qMakeError(const QString& err, QSqlError::ErrorType type, const QODBCPrivate* p)
{
int nativeCode = -1;
@@ -279,10 +301,8 @@ static QSqlError qMakeError(const QString& err, QSqlError::ErrorType type,
return QSqlError(QLatin1String("QODBC3: ") + err, qODBCWarn(p), type, nativeCode);
}
-template<class T>
-static QVariant::Type qDecodeODBCType(SQLSMALLINT sqltype, const T* p, bool isSigned = true)
+static QVariant::Type qDecodeODBCType(SQLSMALLINT sqltype, bool isSigned = true)
{
- Q_UNUSED(p);
QVariant::Type type = QVariant::Invalid;
switch (sqltype) {
case SQL_DECIMAL:
@@ -362,7 +382,7 @@ static QString qGetStringData(SQLHANDLE hStmt, int column, int colSize, bool uni
0,
&lengthIndicator);
if ((r == SQL_SUCCESS || r == SQL_SUCCESS_WITH_INFO) && lengthIndicator > 0)
- colSize = lengthIndicator/sizeof(SQLTCHAR) + 1;
+ colSize = int(lengthIndicator / sizeof(SQLTCHAR) + 1);
QVarLengthArray<SQLTCHAR> buf(colSize);
memset(buf.data(), 0, colSize*sizeof(SQLTCHAR));
while (true) {
@@ -382,7 +402,7 @@ static QString qGetStringData(SQLHANDLE hStmt, int column, int colSize, bool uni
// contain the number of bytes returned - it contains the
// total number of bytes that CAN be fetched
// colSize-1: remove 0 termination when there is more data to fetch
- int rSize = (r == SQL_SUCCESS_WITH_INFO) ? colSize : lengthIndicator/sizeof(SQLTCHAR);
+ int rSize = (r == SQL_SUCCESS_WITH_INFO) ? colSize : int(lengthIndicator / sizeof(SQLTCHAR));
fieldVal += fromSQLTCHAR(buf, rSize);
if (lengthIndicator < SQLLEN(colSize*sizeof(SQLTCHAR))) {
// workaround for Drivermanagers that don't return SQL_NO_DATA
@@ -559,6 +579,21 @@ static QVariant qGetBigIntData(SQLHANDLE hStmt, int column, bool isSigned = true
return quint64(lngbuf);
}
+static bool isAutoValue(const SQLHANDLE hStmt, int column)
+{
+ SQLLEN nNumericAttribute = 0; // Check for auto-increment
+ const SQLRETURN r = ::SQLColAttribute(hStmt, column + 1, SQL_DESC_AUTO_UNIQUE_VALUE,
+ 0, 0, 0, &nNumericAttribute);
+ if (r != SQL_SUCCESS && r != SQL_SUCCESS_WITH_INFO) {
+ qSqlWarning(QStringLiteral("qMakeField: Unable to get autovalue attribute for column ")
+ + QString::number(column), hStmt);
+ return false;
+ }
+ return nNumericAttribute != SQL_FALSE;
+}
+
+static QSqlField qMakeFieldInfo(const SQLHANDLE hStmt, int i, QString *errorMessage);
+
// creates a QSqlField from a valid hStmt generated
// by SQLColumns. The hStmt has to point to a valid position.
static QSqlField qMakeFieldInfo(const SQLHANDLE hStmt, const QODBCDriverPrivate* p)
@@ -583,6 +618,15 @@ static QSqlField qMakeFieldInfo(const SQLHANDLE hStmt, const QODBCDriverPrivate*
static QSqlField qMakeFieldInfo(const QODBCPrivate* p, int i )
{
+ QString errorMessage;
+ const QSqlField result = qMakeFieldInfo(p->hStmt, i, &errorMessage);
+ if (!errorMessage.isEmpty())
+ qSqlWarning(errorMessage, p);
+ return result;
+}
+
+static QSqlField qMakeFieldInfo(const SQLHANDLE hStmt, int i, QString *errorMessage)
+{
SQLSMALLINT colNameLen;
SQLSMALLINT colType;
SQLULEN colSize;
@@ -590,7 +634,8 @@ static QSqlField qMakeFieldInfo(const QODBCPrivate* p, int i )
SQLSMALLINT nullable;
SQLRETURN r = SQL_ERROR;
QVarLengthArray<SQLTCHAR> colName(COLNAMESIZE);
- r = SQLDescribeCol(p->hStmt,
+ errorMessage->clear();
+ r = SQLDescribeCol(hStmt,
i+1,
colName.data(),
(SQLSMALLINT)COLNAMESIZE,
@@ -601,12 +646,12 @@ static QSqlField qMakeFieldInfo(const QODBCPrivate* p, int i )
&nullable);
if (r != SQL_SUCCESS) {
- qSqlWarning(QString::fromLatin1("qMakeField: Unable to describe column %1").arg(i), p);
+ *errorMessage = QStringLiteral("qMakeField: Unable to describe column ") + QString::number(i);
return QSqlField();
}
SQLLEN unsignedFlag = SQL_FALSE;
- r = SQLColAttribute (p->hStmt,
+ r = SQLColAttribute (hStmt,
i + 1,
SQL_DESC_UNSIGNED,
0,
@@ -614,16 +659,13 @@ static QSqlField qMakeFieldInfo(const QODBCPrivate* p, int i )
0,
&unsignedFlag);
if (r != SQL_SUCCESS) {
- qSqlWarning(QString::fromLatin1("qMakeField: Unable to get column attributes for column %1").arg(i), p);
+ qSqlWarning(QStringLiteral("qMakeField: Unable to get column attributes for column ")
+ + QString::number(i), hStmt);
}
-#ifdef UNICODE
- QString qColName(fromSQLTCHAR(colName, colNameLen));
-#else
- QString qColName = QString::fromUtf8((const char *)colName.constData());
-#endif
+ const QString qColName(fromSQLTCHAR(colName, colNameLen));
// nullable can be SQL_NO_NULLS, SQL_NULLABLE or SQL_NULLABLE_UNKNOWN
- QVariant::Type type = qDecodeODBCType(colType, p, unsignedFlag == SQL_FALSE);
+ QVariant::Type type = qDecodeODBCType(colType, unsignedFlag == SQL_FALSE);
QSqlField f(qColName, type);
f.setSqlType(colType);
f.setLength(colSize == 0 ? -1 : int(colSize));
@@ -633,6 +675,7 @@ static QSqlField qMakeFieldInfo(const QODBCPrivate* p, int i )
else if (nullable == SQL_NULLABLE)
f.setRequired(false);
// else we don't know
+ f.setAutoValue(isAutoValue(hStmt, i));
return f;
}
@@ -654,11 +697,7 @@ QChar QODBCDriverPrivate::quoteChar()
sizeof(driverResponse),
&length);
if (r == SQL_SUCCESS || r == SQL_SUCCESS_WITH_INFO)
-#ifdef UNICODE
quote = QChar(driverResponse[0]);
-#else
- quote = QLatin1Char(driverResponse[0]);
-#endif
else
quote = QLatin1Char('"');
isQuoteInitialized = true;
@@ -703,11 +742,7 @@ bool QODBCDriverPrivate::setConnectionOptions(const QString& connOpts)
} else if (opt.toUpper() == QLatin1String("SQL_ATTR_CURRENT_CATALOG")) {
val.utf16(); // 0 terminate
r = SQLSetConnectAttr(hDbc, SQL_ATTR_CURRENT_CATALOG,
-#ifdef UNICODE
toSQLTCHAR(val).data(),
-#else
- (SQLCHAR*) val.toUtf8().data(),
-#endif
val.length()*sizeof(SQLTCHAR));
} else if (opt.toUpper() == QLatin1String("SQL_ATTR_METADATA_ID")) {
if (val.toUpper() == QLatin1String("SQL_TRUE")) {
@@ -725,11 +760,7 @@ bool QODBCDriverPrivate::setConnectionOptions(const QString& connOpts)
} else if (opt.toUpper() == QLatin1String("SQL_ATTR_TRACEFILE")) {
val.utf16(); // 0 terminate
r = SQLSetConnectAttr(hDbc, SQL_ATTR_TRACEFILE,
-#ifdef UNICODE
toSQLTCHAR(val).data(),
-#else
- (SQLCHAR*) val.toUtf8().data(),
-#endif
val.length()*sizeof(SQLTCHAR));
} else if (opt.toUpper() == QLatin1String("SQL_ATTR_TRACE")) {
if (val.toUpper() == QLatin1String("SQL_OPT_TRACE_OFF")) {
@@ -934,16 +965,9 @@ bool QODBCResult::reset (const QString& query)
return false;
}
-#ifdef UNICODE
r = SQLExecDirect(d->hStmt,
toSQLTCHAR(query).data(),
(SQLINTEGER) query.length());
-#else
- QByteArray query8 = query.toUtf8();
- r = SQLExecDirect(d->hStmt,
- (SQLCHAR*) query8.data(),
- (SQLINTEGER) query8.length());
-#endif
if (r != SQL_SUCCESS && r != SQL_SUCCESS_WITH_INFO && r!= SQL_NO_DATA) {
setLastError(qMakeError(QCoreApplication::translate("QODBCResult",
"Unable to execute statement"), QSqlError::StatementError, d));
@@ -1280,16 +1304,9 @@ bool QODBCResult::prepare(const QString& query)
return false;
}
-#ifdef UNICODE
r = SQLPrepare(d->hStmt,
toSQLTCHAR(query).data(),
(SQLINTEGER) query.length());
-#else
- QByteArray query8 = query.toUtf8();
- r = SQLPrepare(d->hStmt,
- (SQLCHAR*) query8.data(),
- (SQLINTEGER) query8.length());
-#endif
if (r != SQL_SUCCESS) {
setLastError(qMakeError(QCoreApplication::translate("QODBCResult",
@@ -1879,11 +1896,7 @@ bool QODBCDriver::open(const QString & db,
memset(connOut.data(), 0, connOut.size() * sizeof(SQLTCHAR));
r = SQLDriverConnect(d->hDbc,
NULL,
-#ifdef UNICODE
toSQLTCHAR(connQStr).data(),
-#else
- (SQLCHAR*)connQStr.toUtf8().data(),
-#endif
(SQLSMALLINT)connQStr.length(),
connOut.data(),
1024,
@@ -2087,15 +2100,10 @@ void QODBCDriverPrivate::checkDBMS()
r = SQLGetInfo(hDbc,
SQL_DBMS_NAME,
serverString.data(),
- serverString.size() * sizeof(SQLTCHAR),
+ SQLSMALLINT(serverString.size() * sizeof(SQLTCHAR)),
&t);
if (r == SQL_SUCCESS || r == SQL_SUCCESS_WITH_INFO) {
- QString serverType;
-#ifdef UNICODE
- serverType = fromSQLTCHAR(serverString, t/sizeof(SQLTCHAR));
-#else
- serverType = QString::fromUtf8((const char *)serverString.constData(), t);
-#endif
+ const QString serverType = fromSQLTCHAR(serverString, t / sizeof(SQLTCHAR));
if (serverType.contains(QLatin1String("PostgreSQL"), Qt::CaseInsensitive))
dbmsType = QSqlDriver::PostgreSQL;
else if (serverType.contains(QLatin1String("Oracle"), Qt::CaseInsensitive))
@@ -2110,15 +2118,10 @@ void QODBCDriverPrivate::checkDBMS()
r = SQLGetInfo(hDbc,
SQL_DRIVER_NAME,
serverString.data(),
- serverString.size() * sizeof(SQLTCHAR),
+ SQLSMALLINT(serverString.size() * sizeof(SQLTCHAR)),
&t);
if (r == SQL_SUCCESS || r == SQL_SUCCESS_WITH_INFO) {
- QString serverType;
-#ifdef UNICODE
- serverType = fromSQLTCHAR(serverString, t/sizeof(SQLTCHAR));
-#else
- serverType = QString::fromUtf8((const char *)serverString.constData(), t);
-#endif
+ const QString serverType = fromSQLTCHAR(serverString, t / sizeof(SQLTCHAR));
isFreeTDSDriver = serverType.contains(QLatin1String("tdsodbc"), Qt::CaseInsensitive);
unicode = unicode && !isFreeTDSDriver;
}
@@ -2141,14 +2144,10 @@ void QODBCDriverPrivate::checkHasMultiResults()
SQLRETURN r = SQLGetInfo(hDbc,
SQL_MULT_RESULT_SETS,
driverResponse.data(),
- driverResponse.size() * sizeof(SQLTCHAR),
+ SQLSMALLINT(driverResponse.size() * sizeof(SQLTCHAR)),
&length);
if (r == SQL_SUCCESS || r == SQL_SUCCESS_WITH_INFO)
-#ifdef UNICODE
hasMultiResultSets = fromSQLTCHAR(driverResponse, length/sizeof(SQLTCHAR)).startsWith(QLatin1Char('Y'));
-#else
- hasMultiResultSets = QString::fromUtf8((const char *)driverResponse.constData(), length).startsWith(QLatin1Char('Y'));
-#endif
}
void QODBCDriverPrivate::checkDateTimePrecision()
@@ -2289,11 +2288,7 @@ QStringList QODBCDriver::tables(QSql::TableType type) const
0,
NULL,
0,
-#ifdef UNICODE
toSQLTCHAR(joinedTableTypeString).data(),
-#else
- (SQLCHAR*)joinedTableTypeString.toUtf8().data(),
-#endif
joinedTableTypeString.length() /* characters, not bytes */);
if (r != SQL_SUCCESS)
@@ -2369,23 +2364,11 @@ QSqlIndex QODBCDriver::primaryIndex(const QString& tablename) const
(SQLPOINTER)SQL_CURSOR_FORWARD_ONLY,
SQL_IS_UINTEGER);
r = SQLPrimaryKeys(hStmt,
-#ifdef UNICODE
catalog.length() == 0 ? NULL : toSQLTCHAR(catalog).data(),
-#else
- catalog.length() == 0 ? NULL : (SQLCHAR*)catalog.toUtf8().data(),
-#endif
catalog.length(),
-#ifdef UNICODE
schema.length() == 0 ? NULL : toSQLTCHAR(schema).data(),
-#else
- schema.length() == 0 ? NULL : (SQLCHAR*)schema.toUtf8().data(),
-#endif
schema.length(),
-#ifdef UNICODE
toSQLTCHAR(table).data(),
-#else
- (SQLCHAR*)table.toUtf8().data(),
-#endif
table.length() /* in characters, not in bytes */);
// if the SQLPrimaryKeys() call does not succeed (e.g the driver
@@ -2394,23 +2377,11 @@ QSqlIndex QODBCDriver::primaryIndex(const QString& tablename) const
if (r != SQL_SUCCESS) {
r = SQLSpecialColumns(hStmt,
SQL_BEST_ROWID,
-#ifdef UNICODE
catalog.length() == 0 ? NULL : toSQLTCHAR(catalog).data(),
-#else
- catalog.length() == 0 ? NULL : (SQLCHAR*)catalog.toUtf8().data(),
-#endif
catalog.length(),
-#ifdef UNICODE
schema.length() == 0 ? NULL : toSQLTCHAR(schema).data(),
-#else
- schema.length() == 0 ? NULL : (SQLCHAR*)schema.toUtf8().data(),
-#endif
schema.length(),
-#ifdef UNICODE
toSQLTCHAR(table).data(),
-#else
- (SQLCHAR*)table.toUtf8().data(),
-#endif
table.length(),
SQL_SCOPE_CURROW,
SQL_NULLABLE);
@@ -2495,23 +2466,11 @@ QSqlRecord QODBCDriver::record(const QString& tablename) const
(SQLPOINTER)SQL_CURSOR_FORWARD_ONLY,
SQL_IS_UINTEGER);
r = SQLColumns(hStmt,
-#ifdef UNICODE
catalog.length() == 0 ? NULL : toSQLTCHAR(catalog).data(),
-#else
- catalog.length() == 0 ? NULL : (SQLCHAR*)catalog.toUtf8().data(),
-#endif
catalog.length(),
-#ifdef UNICODE
schema.length() == 0 ? NULL : toSQLTCHAR(schema).data(),
-#else
- schema.length() == 0 ? NULL : (SQLCHAR*)schema.toUtf8().data(),
-#endif
schema.length(),
-#ifdef UNICODE
toSQLTCHAR(table).data(),
-#else
- (SQLCHAR*)table.toUtf8().data(),
-#endif
table.length(),
NULL,
0);
diff --git a/src/sql/drivers/psql/qsql_psql.cpp b/src/sql/drivers/psql/qsql_psql.cpp
index e76dcc26a0..52b96a5456 100644
--- a/src/sql/drivers/psql/qsql_psql.cpp
+++ b/src/sql/drivers/psql/qsql_psql.cpp
@@ -200,7 +200,7 @@ public:
preparedQueriesEnabled(false)
{ }
- QString fieldSerial(int i) const { return QLatin1Char('$') + QString::number(i + 1); }
+ QString fieldSerial(int i) const Q_DECL_OVERRIDE { return QLatin1Char('$') + QString::number(i + 1); }
void deallocatePreparedStmt();
const QPSQLDriverPrivate * privDriver() const
{
diff --git a/src/sql/drivers/psql/qsql_psql_p.h b/src/sql/drivers/psql/qsql_psql_p.h
index 4d8283ff48..b840fa8ed9 100644
--- a/src/sql/drivers/psql/qsql_psql_p.h
+++ b/src/sql/drivers/psql/qsql_psql_p.h
@@ -71,23 +71,23 @@ public:
QPSQLResult(const QPSQLDriver* db);
~QPSQLResult();
- QVariant handle() const;
- void virtual_hook(int id, void *data);
+ QVariant handle() const Q_DECL_OVERRIDE;
+ void virtual_hook(int id, void *data) Q_DECL_OVERRIDE;
protected:
void cleanup();
- bool fetch(int i);
- bool fetchFirst();
- bool fetchLast();
- QVariant data(int i);
- bool isNull(int field);
- bool reset (const QString& query);
- int size();
- int numRowsAffected();
- QSqlRecord record() const;
- QVariant lastInsertId() const;
- bool prepare(const QString& query);
- bool exec();
+ bool fetch(int i) Q_DECL_OVERRIDE;
+ bool fetchFirst() Q_DECL_OVERRIDE;
+ bool fetchLast() Q_DECL_OVERRIDE;
+ QVariant data(int i) Q_DECL_OVERRIDE;
+ bool isNull(int field) Q_DECL_OVERRIDE;
+ bool reset (const QString& query) Q_DECL_OVERRIDE;
+ int size() Q_DECL_OVERRIDE;
+ int numRowsAffected() Q_DECL_OVERRIDE;
+ QSqlRecord record() const Q_DECL_OVERRIDE;
+ QVariant lastInsertId() const Q_DECL_OVERRIDE;
+ bool prepare(const QString& query) Q_DECL_OVERRIDE;
+ bool exec() Q_DECL_OVERRIDE;
};
class QPSQLDriverPrivate;
@@ -117,34 +117,34 @@ public:
explicit QPSQLDriver(QObject *parent=0);
explicit QPSQLDriver(PGconn *conn, QObject *parent=0);
~QPSQLDriver();
- bool hasFeature(DriverFeature f) const;
+ bool hasFeature(DriverFeature f) const Q_DECL_OVERRIDE;
bool open(const QString & db,
const QString & user,
const QString & password,
const QString & host,
int port,
- const QString& connOpts);
- bool isOpen() const;
- void close();
- QSqlResult *createResult() const;
- QStringList tables(QSql::TableType) const;
- QSqlIndex primaryIndex(const QString& tablename) const;
- QSqlRecord record(const QString& tablename) const;
+ const QString& connOpts) Q_DECL_OVERRIDE;
+ bool isOpen() const Q_DECL_OVERRIDE;
+ void close() Q_DECL_OVERRIDE;
+ QSqlResult *createResult() const Q_DECL_OVERRIDE;
+ QStringList tables(QSql::TableType) const Q_DECL_OVERRIDE;
+ QSqlIndex primaryIndex(const QString& tablename) const Q_DECL_OVERRIDE;
+ QSqlRecord record(const QString& tablename) const Q_DECL_OVERRIDE;
Protocol protocol() const;
- QVariant handle() const;
+ QVariant handle() const Q_DECL_OVERRIDE;
- QString escapeIdentifier(const QString &identifier, IdentifierType type) const;
- QString formatValue(const QSqlField &field, bool trimStrings) const;
+ QString escapeIdentifier(const QString &identifier, IdentifierType type) const Q_DECL_OVERRIDE;
+ QString formatValue(const QSqlField &field, bool trimStrings) const Q_DECL_OVERRIDE;
- bool subscribeToNotification(const QString &name);
- bool unsubscribeFromNotification(const QString &name);
- QStringList subscribedToNotifications() const;
+ bool subscribeToNotification(const QString &name) Q_DECL_OVERRIDE;
+ bool unsubscribeFromNotification(const QString &name) Q_DECL_OVERRIDE;
+ QStringList subscribedToNotifications() const Q_DECL_OVERRIDE;
protected:
- bool beginTransaction();
- bool commitTransaction();
- bool rollbackTransaction();
+ bool beginTransaction() Q_DECL_OVERRIDE;
+ bool commitTransaction() Q_DECL_OVERRIDE;
+ bool rollbackTransaction() Q_DECL_OVERRIDE;
private Q_SLOTS:
void _q_handleNotification(int);
diff --git a/src/sql/drivers/sqlite/qsql_sqlite.cpp b/src/sql/drivers/sqlite/qsql_sqlite.cpp
index 84b6bbe80e..fa79230aa1 100644
--- a/src/sql/drivers/sqlite/qsql_sqlite.cpp
+++ b/src/sql/drivers/sqlite/qsql_sqlite.cpp
@@ -110,19 +110,19 @@ class QSQLiteResult : public QSqlCachedResult
public:
explicit QSQLiteResult(const QSQLiteDriver* db);
~QSQLiteResult();
- QVariant handle() const;
+ QVariant handle() const Q_DECL_OVERRIDE;
protected:
- bool gotoNext(QSqlCachedResult::ValueCache& row, int idx);
- bool reset(const QString &query);
- bool prepare(const QString &query);
- bool exec();
- int size();
- int numRowsAffected();
- QVariant lastInsertId() const;
- QSqlRecord record() const;
- void detachFromResultSet();
- void virtual_hook(int id, void *data);
+ bool gotoNext(QSqlCachedResult::ValueCache& row, int idx) Q_DECL_OVERRIDE;
+ bool reset(const QString &query) Q_DECL_OVERRIDE;
+ bool prepare(const QString &query) Q_DECL_OVERRIDE;
+ bool exec() Q_DECL_OVERRIDE;
+ int size() Q_DECL_OVERRIDE;
+ int numRowsAffected() Q_DECL_OVERRIDE;
+ QVariant lastInsertId() const Q_DECL_OVERRIDE;
+ QSqlRecord record() const Q_DECL_OVERRIDE;
+ void detachFromResultSet() Q_DECL_OVERRIDE;
+ void virtual_hook(int id, void *data) Q_DECL_OVERRIDE;
private:
QSQLiteResultPrivate* d;
diff --git a/src/sql/drivers/sqlite/qsql_sqlite_p.h b/src/sql/drivers/sqlite/qsql_sqlite_p.h
index 45a5bd75ac..5b5792b469 100644
--- a/src/sql/drivers/sqlite/qsql_sqlite_p.h
+++ b/src/sql/drivers/sqlite/qsql_sqlite_p.h
@@ -70,24 +70,24 @@ public:
explicit QSQLiteDriver(QObject *parent = 0);
explicit QSQLiteDriver(sqlite3 *connection, QObject *parent = 0);
~QSQLiteDriver();
- bool hasFeature(DriverFeature f) const;
+ bool hasFeature(DriverFeature f) const Q_DECL_OVERRIDE;
bool open(const QString & db,
const QString & user,
const QString & password,
const QString & host,
int port,
- const QString & connOpts);
- void close();
- QSqlResult *createResult() const;
- bool beginTransaction();
- bool commitTransaction();
- bool rollbackTransaction();
- QStringList tables(QSql::TableType) const;
+ const QString & connOpts) Q_DECL_OVERRIDE;
+ void close() Q_DECL_OVERRIDE;
+ QSqlResult *createResult() const Q_DECL_OVERRIDE;
+ bool beginTransaction() Q_DECL_OVERRIDE;
+ bool commitTransaction() Q_DECL_OVERRIDE;
+ bool rollbackTransaction() Q_DECL_OVERRIDE;
+ QStringList tables(QSql::TableType) const Q_DECL_OVERRIDE;
- QSqlRecord record(const QString& tablename) const;
- QSqlIndex primaryIndex(const QString &table) const;
- QVariant handle() const;
- QString escapeIdentifier(const QString &identifier, IdentifierType) const;
+ QSqlRecord record(const QString& tablename) const Q_DECL_OVERRIDE;
+ QSqlIndex primaryIndex(const QString &table) const Q_DECL_OVERRIDE;
+ QVariant handle() const Q_DECL_OVERRIDE;
+ QString escapeIdentifier(const QString &identifier, IdentifierType) const Q_DECL_OVERRIDE;
};
QT_END_NAMESPACE
diff --git a/src/sql/kernel/qsqldatabase.h b/src/sql/kernel/qsqldatabase.h
index d5f381102e..9e304fe3ee 100644
--- a/src/sql/kernel/qsqldatabase.h
+++ b/src/sql/kernel/qsqldatabase.h
@@ -58,7 +58,7 @@ template <class T>
class QSqlDriverCreator : public QSqlDriverCreatorBase
{
public:
- QSqlDriver *createObject() const { return new T; }
+ QSqlDriver *createObject() const Q_DECL_OVERRIDE { return new T; }
};
class Q_SQL_EXPORT QSqlDatabase
diff --git a/src/sql/kernel/qsqlfield.cpp b/src/sql/kernel/qsqlfield.cpp
index 3fd2c68296..a76e38b6f1 100644
--- a/src/sql/kernel/qsqlfield.cpp
+++ b/src/sql/kernel/qsqlfield.cpp
@@ -534,6 +534,12 @@ QDebug operator<<(QDebug dbg, const QSqlField &f)
Returns \c true if the value is auto-generated by the database,
for example auto-increment primary key values.
+ \note When using the ODBC driver, due to limitations in the ODBC API,
+ the \c isAutoValue() field is only populated in a QSqlField resulting from a
+ QSqlRecord obtained by executing a \c SELECT query. It is \c false in a QSqlField
+ resulting from a QSqlRecord returned from QSqlDatabase::record() or
+ QSqlDatabase::primaryIndex().
+
\sa setAutoValue()
*/
bool QSqlField::isAutoValue() const
diff --git a/src/sql/models/qsqlquerymodel.h b/src/sql/models/qsqlquerymodel.h
index 95910513df..93b1303807 100644
--- a/src/sql/models/qsqlquerymodel.h
+++ b/src/sql/models/qsqlquerymodel.h
@@ -54,19 +54,19 @@ public:
explicit QSqlQueryModel(QObject *parent = 0);
virtual ~QSqlQueryModel();
- int rowCount(const QModelIndex &parent = QModelIndex()) const;
- int columnCount(const QModelIndex &parent = QModelIndex()) const;
+ int rowCount(const QModelIndex &parent = QModelIndex()) const Q_DECL_OVERRIDE;
+ int columnCount(const QModelIndex &parent = QModelIndex()) const Q_DECL_OVERRIDE;
QSqlRecord record(int row) const;
QSqlRecord record() const;
- QVariant data(const QModelIndex &item, int role = Qt::DisplayRole) const;
+ QVariant data(const QModelIndex &item, int role = Qt::DisplayRole) const Q_DECL_OVERRIDE;
QVariant headerData(int section, Qt::Orientation orientation,
- int role = Qt::DisplayRole) const;
+ int role = Qt::DisplayRole) const Q_DECL_OVERRIDE;
bool setHeaderData(int section, Qt::Orientation orientation, const QVariant &value,
- int role = Qt::EditRole);
+ int role = Qt::EditRole) Q_DECL_OVERRIDE;
- bool insertColumns(int column, int count, const QModelIndex &parent = QModelIndex());
- bool removeColumns(int column, int count, const QModelIndex &parent = QModelIndex());
+ bool insertColumns(int column, int count, const QModelIndex &parent = QModelIndex()) Q_DECL_OVERRIDE;
+ bool removeColumns(int column, int count, const QModelIndex &parent = QModelIndex()) Q_DECL_OVERRIDE;
void setQuery(const QSqlQuery &query);
void setQuery(const QString &query, const QSqlDatabase &db = QSqlDatabase());
@@ -76,8 +76,8 @@ public:
QSqlError lastError() const;
- void fetchMore(const QModelIndex &parent = QModelIndex());
- bool canFetchMore(const QModelIndex &parent = QModelIndex()) const;
+ void fetchMore(const QModelIndex &parent = QModelIndex()) Q_DECL_OVERRIDE;
+ bool canFetchMore(const QModelIndex &parent = QModelIndex()) const Q_DECL_OVERRIDE;
protected:
void beginInsertRows(const QModelIndex &parent, int first, int last);
diff --git a/src/sql/models/qsqlrelationaltablemodel.cpp b/src/sql/models/qsqlrelationaltablemodel.cpp
index 8f89f27cde..c6ef1570c0 100644
--- a/src/sql/models/qsqlrelationaltablemodel.cpp
+++ b/src/sql/models/qsqlrelationaltablemodel.cpp
@@ -150,7 +150,7 @@ class QRelatedTableModel : public QSqlTableModel
{
public:
QRelatedTableModel(QRelation *rel, QObject *parent = 0, QSqlDatabase db = QSqlDatabase());
- bool select();
+ bool select() Q_DECL_OVERRIDE;
private:
bool firstSelect;
QRelation *relation;
@@ -262,12 +262,12 @@ public:
{}
QString fullyQualifiedFieldName(const QString &tableName, const QString &fieldName) const;
- int nameToIndex(const QString &name) const;
+ int nameToIndex(const QString &name) const Q_DECL_OVERRIDE;
mutable QVector<QRelation> relations;
QSqlRecord baseRec; // the record without relations
void clearChanges();
- void clearCache();
- void revertCachedRow(int row);
+ void clearCache() Q_DECL_OVERRIDE;
+ void revertCachedRow(int row) Q_DECL_OVERRIDE;
void translateFieldNames(QSqlRecord &values) const;
QSqlRelationalTableModel::JoinMode joinMode;
diff --git a/src/sql/models/qsqlrelationaltablemodel.h b/src/sql/models/qsqlrelationaltablemodel.h
index 8a9ab43443..92ddb03c6c 100644
--- a/src/sql/models/qsqlrelationaltablemodel.h
+++ b/src/sql/models/qsqlrelationaltablemodel.h
@@ -74,27 +74,27 @@ public:
QSqlDatabase db = QSqlDatabase());
virtual ~QSqlRelationalTableModel();
- QVariant data(const QModelIndex &item, int role = Qt::DisplayRole) const;
- bool setData(const QModelIndex &item, const QVariant &value, int role = Qt::EditRole);
- bool removeColumns(int column, int count, const QModelIndex &parent = QModelIndex());
+ QVariant data(const QModelIndex &item, int role = Qt::DisplayRole) const Q_DECL_OVERRIDE;
+ bool setData(const QModelIndex &item, const QVariant &value, int role = Qt::EditRole) Q_DECL_OVERRIDE;
+ bool removeColumns(int column, int count, const QModelIndex &parent = QModelIndex()) Q_DECL_OVERRIDE;
- void clear();
- bool select();
+ void clear() Q_DECL_OVERRIDE;
+ bool select() Q_DECL_OVERRIDE;
- void setTable(const QString &tableName);
+ void setTable(const QString &tableName) Q_DECL_OVERRIDE;
virtual void setRelation(int column, const QSqlRelation &relation);
QSqlRelation relation(int column) const;
virtual QSqlTableModel *relationModel(int column) const;
void setJoinMode( QSqlRelationalTableModel::JoinMode joinMode );
public Q_SLOTS:
- void revertRow(int row);
+ void revertRow(int row) Q_DECL_OVERRIDE;
protected:
- QString selectStatement() const;
- bool updateRowInTable(int row, const QSqlRecord &values);
- bool insertRowIntoTable(const QSqlRecord &values);
- QString orderByClause() const;
+ QString selectStatement() const Q_DECL_OVERRIDE;
+ bool updateRowInTable(int row, const QSqlRecord &values) Q_DECL_OVERRIDE;
+ bool insertRowIntoTable(const QSqlRecord &values) Q_DECL_OVERRIDE;
+ QString orderByClause() const Q_DECL_OVERRIDE;
private:
Q_DECLARE_PRIVATE(QSqlRelationalTableModel)
diff --git a/src/sql/models/qsqltablemodel.h b/src/sql/models/qsqltablemodel.h
index 4263d387ea..98841118f8 100644
--- a/src/sql/models/qsqltablemodel.h
+++ b/src/sql/models/qsqltablemodel.h
@@ -59,19 +59,19 @@ public:
virtual void setTable(const QString &tableName);
QString tableName() const;
- Qt::ItemFlags flags(const QModelIndex &index) const;
+ Qt::ItemFlags flags(const QModelIndex &index) const Q_DECL_OVERRIDE;
QSqlRecord record() const;
QSqlRecord record(int row) const;
- QVariant data(const QModelIndex &idx, int role = Qt::DisplayRole) const;
- bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole);
+ QVariant data(const QModelIndex &idx, int role = Qt::DisplayRole) const Q_DECL_OVERRIDE;
+ bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole) Q_DECL_OVERRIDE;
- QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const;
+ QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const Q_DECL_OVERRIDE;
bool isDirty() const;
bool isDirty(const QModelIndex &index) const;
- void clear();
+ void clear() Q_DECL_OVERRIDE;
virtual void setEditStrategy(EditStrategy strategy);
EditStrategy editStrategy() const;
@@ -80,17 +80,17 @@ public:
QSqlDatabase database() const;
int fieldIndex(const QString &fieldName) const;
- void sort(int column, Qt::SortOrder order);
+ void sort(int column, Qt::SortOrder order) Q_DECL_OVERRIDE;
virtual void setSort(int column, Qt::SortOrder order);
QString filter() const;
virtual void setFilter(const QString &filter);
- int rowCount(const QModelIndex &parent = QModelIndex()) const;
+ int rowCount(const QModelIndex &parent = QModelIndex()) const Q_DECL_OVERRIDE;
- bool removeColumns(int column, int count, const QModelIndex &parent = QModelIndex());
- bool removeRows(int row, int count, const QModelIndex &parent = QModelIndex());
- bool insertRows(int row, int count, const QModelIndex &parent = QModelIndex());
+ bool removeColumns(int column, int count, const QModelIndex &parent = QModelIndex()) Q_DECL_OVERRIDE;
+ bool removeRows(int row, int count, const QModelIndex &parent = QModelIndex()) Q_DECL_OVERRIDE;
+ bool insertRows(int row, int count, const QModelIndex &parent = QModelIndex()) Q_DECL_OVERRIDE;
bool insertRecord(int row, const QSqlRecord &record);
bool setRecord(int row, const QSqlRecord &record);
@@ -101,8 +101,8 @@ public Q_SLOTS:
virtual bool select();
virtual bool selectRow(int row);
- bool submit();
- void revert();
+ bool submit() Q_DECL_OVERRIDE;
+ void revert() Q_DECL_OVERRIDE;
bool submitAll();
void revertAll();
@@ -125,7 +125,7 @@ protected:
void setPrimaryKey(const QSqlIndex &key);
void setQuery(const QSqlQuery &query);
- QModelIndex indexInQuery(const QModelIndex &item) const;
+ QModelIndex indexInQuery(const QModelIndex &item) const Q_DECL_OVERRIDE;
QSqlRecord primaryValues(int row) const;
};
diff --git a/src/testlib/qbenchmarkperfevents_p.h b/src/testlib/qbenchmarkperfevents_p.h
index 2a571cf6a9..21c0150e3b 100644
--- a/src/testlib/qbenchmarkperfevents_p.h
+++ b/src/testlib/qbenchmarkperfevents_p.h
@@ -54,16 +54,16 @@ class QBenchmarkPerfEventsMeasurer : public QBenchmarkMeasurerBase
public:
QBenchmarkPerfEventsMeasurer();
~QBenchmarkPerfEventsMeasurer();
- virtual void init();
- virtual void start();
- virtual qint64 checkpoint();
- virtual qint64 stop();
- virtual bool isMeasurementAccepted(qint64 measurement);
- virtual int adjustIterationCount(int suggestion);
- virtual int adjustMedianCount(int suggestion);
- virtual bool repeatCount() { return 1; }
- virtual bool needsWarmupIteration() { return true; }
- virtual QTest::QBenchmarkMetric metricType();
+ virtual void init() Q_DECL_OVERRIDE;
+ virtual void start() Q_DECL_OVERRIDE;
+ virtual qint64 checkpoint() Q_DECL_OVERRIDE;
+ virtual qint64 stop() Q_DECL_OVERRIDE;
+ virtual bool isMeasurementAccepted(qint64 measurement) Q_DECL_OVERRIDE;
+ virtual int adjustIterationCount(int suggestion) Q_DECL_OVERRIDE;
+ virtual int adjustMedianCount(int suggestion) Q_DECL_OVERRIDE;
+ virtual bool repeatCount() Q_DECL_OVERRIDE { return 1; }
+ virtual bool needsWarmupIteration() Q_DECL_OVERRIDE { return true; }
+ virtual QTest::QBenchmarkMetric metricType() Q_DECL_OVERRIDE;
static bool isAvailable();
static QTest::QBenchmarkMetric metricForEvent(quint32 type, quint64 event_id);
diff --git a/src/testlib/qtest.h b/src/testlib/qtest.h
index 6298262958..40d9eac46d 100644
--- a/src/testlib/qtest.h
+++ b/src/testlib/qtest.h
@@ -286,7 +286,7 @@ int main(int argc, char *argv[]) \
#if defined(QT_WIDGETS_LIB)
-#include <QtTest/qtest_gui.h>
+#include <QtTest/qtest_widgets.h>
#ifdef QT_KEYPAD_NAVIGATION
# define QTEST_DISABLE_KEYPAD_NAVIGATION QApplication::setNavigationMode(Qt::NavigationModeNone);
diff --git a/src/testlib/qtestcase.cpp b/src/testlib/qtestcase.cpp
index 2851f83427..71c3ccff38 100644
--- a/src/testlib/qtestcase.cpp
+++ b/src/testlib/qtestcase.cpp
@@ -47,6 +47,7 @@
#include <QtCore/qprocess.h>
#include <QtCore/qdebug.h>
#include <QtCore/qlibraryinfo.h>
+#include <QtCore/private/qtools_p.h>
#include <QtTest/private/qtestlog_p.h>
#include <QtTest/private/qtesttable_p.h>
@@ -84,6 +85,8 @@
QT_BEGIN_NAMESPACE
+using QtMiscUtils::toHexUpper;
+
/*!
\namespace QTest
\inmodule QtTest
@@ -2060,12 +2063,6 @@ void *fetchData(QTestData *data, const char *tagName, int typeId)
return data->data(idx);
}
-static char toHex(ushort value)
-{
- static const char hexdigits[] = "0123456789ABCDEF";
- return hexdigits[value & 0xF];
-}
-
/*!
\fn char* QTest::toHexRepresentation(const char *ba, int length)
@@ -2115,9 +2112,9 @@ char *toHexRepresentation(const char *ba, int length)
while (true) {
const char at = ba[i];
- result[o] = toHex(at >> 4);
+ result[o] = toHexUpper(at >> 4);
++o;
- result[o] = toHex(at);
+ result[o] = toHexUpper(at);
++i;
++o;
@@ -2183,10 +2180,10 @@ char *toPrettyUnicode(const ushort *p, int length)
break;
default:
*dst++ = 'u';
- *dst++ = toHex(*p >> 12);
- *dst++ = toHex(*p >> 8);
- *dst++ = toHex(*p >> 4);
- *dst++ = toHex(*p);
+ *dst++ = toHexUpper(*p >> 12);
+ *dst++ = toHexUpper(*p >> 8);
+ *dst++ = toHexUpper(*p >> 4);
+ *dst++ = toHexUpper(*p);
}
}
diff --git a/src/testlib/qtestkeyboard.h b/src/testlib/qtestkeyboard.h
index 57c3a27295..e533293476 100644
--- a/src/testlib/qtestkeyboard.h
+++ b/src/testlib/qtestkeyboard.h
@@ -57,6 +57,7 @@
QT_BEGIN_NAMESPACE
Q_GUI_EXPORT void qt_handleKeyEvent(QWindow *w, QEvent::Type t, int k, Qt::KeyboardModifiers mods, const QString & text = QString(), bool autorep = false, ushort count = 1);
+Q_GUI_EXPORT bool qt_sendShortcutOverrideEvent(QObject *o, ulong timestamp, int k, Qt::KeyboardModifiers mods, const QString &text = QString(), bool autorep = false, ushort count = 1);
namespace QTest
{
@@ -170,6 +171,9 @@ namespace QTest
QKeyEvent a(press ? QEvent::KeyPress : QEvent::KeyRelease, code, modifier, text, repeat);
QSpontaneKeyEvent::setSpontaneous(&a);
+
+ if (press && qt_sendShortcutOverrideEvent(widget, a.timestamp(), code, modifier, text, repeat))
+ return;
if (!qApp->notify(widget, &a))
QTest::qWarn("Keyboard event not accepted by receiving widget");
}
diff --git a/src/tools/bootstrap/bootstrap.pro b/src/tools/bootstrap/bootstrap.pro
index 527a932c4d..e0f5546966 100644
--- a/src/tools/bootstrap/bootstrap.pro
+++ b/src/tools/bootstrap/bootstrap.pro
@@ -130,9 +130,15 @@ win32:SOURCES += ../../corelib/io/qfilesystemengine_win.cpp \
../../corelib/plugin/qsystemlibrary.cpp \
mac {
- SOURCES += ../../corelib/kernel/qcoreapplication_mac.cpp \
- ../../corelib/kernel/qcore_mac.cpp
- LIBS += -framework CoreServices -framework Foundation
+ SOURCES += \
+ ../../corelib/kernel/qcoreapplication_mac.cpp \
+ ../../corelib/kernel/qcore_mac.cpp
+ OBJECTIVE_SOURCES += \
+ ../../corelib/kernel/qcore_mac_objc.mm
+
+ LIBS += -framework Foundation
+ osx: LIBS_PRIVATE += -framework CoreServices
+ ios: LIBS_PRIVATE += -framework UIKit
}
macx {
diff --git a/src/tools/moc/generator.cpp b/src/tools/moc/generator.cpp
index 6c5e772e8c..fcc43aca68 100644
--- a/src/tools/moc/generator.cpp
+++ b/src/tools/moc/generator.cpp
@@ -230,13 +230,23 @@ void Generator::generateCode()
//
// Build stringdata struct
//
+ const int constCharArraySizeLimit = 65535;
fprintf(out, "struct qt_meta_stringdata_%s_t {\n", qualifiedClassNameIdentifier.constData());
fprintf(out, " QByteArrayData data[%d];\n", strings.size());
{
- int len = 0;
- for (int i = 0; i < strings.size(); ++i)
- len += strings.at(i).length() + 1;
- fprintf(out, " char stringdata[%d];\n", len);
+ int stringDataLength = 0;
+ int stringDataCounter = 0;
+ for (int i = 0; i < strings.size(); ++i) {
+ int thisLength = strings.at(i).length() + 1;
+ stringDataLength += thisLength;
+ if (stringDataLength / constCharArraySizeLimit) {
+ // save previous stringdata and start computing the next one.
+ fprintf(out, " char stringdata%d[%d];\n", stringDataCounter++, stringDataLength - thisLength);
+ stringDataLength = thisLength;
+ }
+ }
+ fprintf(out, " char stringdata%d[%d];\n", stringDataCounter, stringDataLength);
+
}
fprintf(out, "};\n");
@@ -247,7 +257,7 @@ void Generator::generateCode()
// QByteArrayData::data() implementation returning simply "this + offset".
fprintf(out, "#define QT_MOC_LITERAL(idx, ofs, len) \\\n"
" Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \\\n"
- " qptrdiff(offsetof(qt_meta_stringdata_%s_t, stringdata) + ofs \\\n"
+ " qptrdiff(offsetof(qt_meta_stringdata_%s_t, stringdata0) + ofs \\\n"
" - idx * sizeof(QByteArrayData)) \\\n"
" )\n",
qualifiedClassNameIdentifier.constData());
@@ -282,9 +292,18 @@ void Generator::generateCode()
fprintf(out, " \"");
int col = 0;
int len = 0;
+ int stringDataLength = 0;
for (int i = 0; i < strings.size(); ++i) {
QByteArray s = strings.at(i);
len = s.length();
+ stringDataLength += len + 1;
+ if (stringDataLength >= constCharArraySizeLimit) {
+ fprintf(out, "\",\n \"");
+ stringDataLength = len + 1;
+ col = 0;
+ } else if (i)
+ fputs("\\0", out); // add \0 at the end of each string
+
if (col && col + len >= 72) {
fprintf(out, "\"\n \"");
col = 0;
@@ -309,9 +328,6 @@ void Generator::generateCode()
idx += spanLen;
col += spanLen;
}
-
- if (i != strings.size() - 1) // skip the last \0 the c++ will add it for us
- fputs("\\0", out);
col += len + 2;
}
@@ -359,7 +375,13 @@ void Generator::generateCode()
fprintf(out, " %4d, %4d, // constructors\n", isConstructible ? cdef->constructorList.count() : 0,
isConstructible ? index : 0);
- fprintf(out, " %4d, // flags\n", 0);
+ int flags = 0;
+ if (cdef->hasQGadget) {
+ // Ideally, all the classes could have that flag. But this broke classes generated
+ // by qdbusxml2cpp which generate code that require that we call qt_metacall for properties
+ flags |= PropertyAccessInStaticMetaCall;
+ }
+ fprintf(out, " %4d, // flags\n", flags);
fprintf(out, " %4d, // signalCount\n", cdef->signalList.count());
@@ -425,7 +447,9 @@ void Generator::generateCode()
//
// Generate internal qt_static_metacall() function
//
- if (cdef->hasQObject && !isQt)
+ const bool hasStaticMetaCall = !isQt &&
+ (cdef->hasQObject || !cdef->methodList.isEmpty() || !cdef->propertyList.isEmpty());
+ if (hasStaticMetaCall)
generateStaticMetacall();
//
@@ -513,7 +537,7 @@ void Generator::generateCode()
fprintf(out, "qt_meta_stringdata_%s.data,\n"
" qt_meta_data_%s, ", qualifiedClassNameIdentifier.constData(),
qualifiedClassNameIdentifier.constData());
- if (cdef->hasQObject && !isQt)
+ if (hasStaticMetaCall)
fprintf(out, " qt_static_metacall, ");
else
fprintf(out, " Q_NULLPTR, ");
@@ -538,7 +562,7 @@ void Generator::generateCode()
//
fprintf(out, "\nvoid *%s::qt_metacast(const char *_clname)\n{\n", cdef->qualified.constData());
fprintf(out, " if (!_clname) return Q_NULLPTR;\n");
- fprintf(out, " if (!strcmp(_clname, qt_meta_stringdata_%s.stringdata))\n"
+ fprintf(out, " if (!strcmp(_clname, qt_meta_stringdata_%s.stringdata0))\n"
" return static_cast<void*>(const_cast< %s*>(this));\n",
qualifiedClassNameIdentifier.constData(), cdef->classname.constData());
for (int i = 1; i < cdef->superclassList.size(); ++i) { // for all superclasses but the first one
@@ -919,10 +943,6 @@ void Generator::generateMetacall()
}
if (cdef->propertyList.size()) {
- bool needGet = false;
- bool needTempVarForGet = false;
- bool needSet = false;
- bool needReset = false;
bool needDesignable = false;
bool needScriptable = false;
bool needStored = false;
@@ -930,132 +950,21 @@ void Generator::generateMetacall()
bool needUser = false;
for (int i = 0; i < cdef->propertyList.size(); ++i) {
const PropertyDef &p = cdef->propertyList.at(i);
- needGet |= !p.read.isEmpty() || !p.member.isEmpty();
- if (!p.read.isEmpty() || !p.member.isEmpty())
- needTempVarForGet |= (p.gspec != PropertyDef::PointerSpec
- && p.gspec != PropertyDef::ReferenceSpec);
-
- needSet |= !p.write.isEmpty() || (!p.member.isEmpty() && !p.constant);
- needReset |= !p.reset.isEmpty();
needDesignable |= p.designable.endsWith(')');
needScriptable |= p.scriptable.endsWith(')');
needStored |= p.stored.endsWith(')');
needEditable |= p.editable.endsWith(')');
needUser |= p.user.endsWith(')');
}
- fprintf(out, "\n#ifndef QT_NO_PROPERTIES\n ");
+ fprintf(out, "\n#ifndef QT_NO_PROPERTIES\n ");
if (needElse)
- fprintf(out, " else ");
- fprintf(out, "if (_c == QMetaObject::ReadProperty) {\n");
- if (needGet) {
- if (needTempVarForGet)
- fprintf(out, " void *_v = _a[0];\n");
- fprintf(out, " switch (_id) {\n");
- for (int propindex = 0; propindex < cdef->propertyList.size(); ++propindex) {
- const PropertyDef &p = cdef->propertyList.at(propindex);
- if (p.read.isEmpty() && p.member.isEmpty())
- continue;
- QByteArray prefix;
- if (p.inPrivateClass.size()) {
- prefix = p.inPrivateClass;
- prefix.append("->");
- }
- if (p.gspec == PropertyDef::PointerSpec)
- fprintf(out, " case %d: _a[0] = const_cast<void*>(reinterpret_cast<const void*>(%s%s())); break;\n",
- propindex, prefix.constData(), p.read.constData());
- else if (p.gspec == PropertyDef::ReferenceSpec)
- fprintf(out, " case %d: _a[0] = const_cast<void*>(reinterpret_cast<const void*>(&%s%s())); break;\n",
- propindex, prefix.constData(), p.read.constData());
- else if (cdef->enumDeclarations.value(p.type, false))
- fprintf(out, " case %d: *reinterpret_cast<int*>(_v) = QFlag(%s%s()); break;\n",
- propindex, prefix.constData(), p.read.constData());
- else if (!p.read.isEmpty())
- fprintf(out, " case %d: *reinterpret_cast< %s*>(_v) = %s%s(); break;\n",
- propindex, p.type.constData(), prefix.constData(), p.read.constData());
- else
- fprintf(out, " case %d: *reinterpret_cast< %s*>(_v) = %s%s; break;\n",
- propindex, p.type.constData(), prefix.constData(), p.member.constData());
- }
- fprintf(out, " default: break;\n");
- fprintf(out, " }\n");
- }
-
- fprintf(out,
- " _id -= %d;\n"
- " }", cdef->propertyList.count());
-
- fprintf(out, " else ");
- fprintf(out, "if (_c == QMetaObject::WriteProperty) {\n");
-
- if (needSet) {
- fprintf(out, " void *_v = _a[0];\n");
- fprintf(out, " switch (_id) {\n");
- for (int propindex = 0; propindex < cdef->propertyList.size(); ++propindex) {
- const PropertyDef &p = cdef->propertyList.at(propindex);
- if (p.constant)
- continue;
- if (p.write.isEmpty() && p.member.isEmpty())
- continue;
- QByteArray prefix;
- if (p.inPrivateClass.size()) {
- prefix = p.inPrivateClass;
- prefix.append("->");
- }
- if (cdef->enumDeclarations.value(p.type, false)) {
- fprintf(out, " case %d: %s%s(QFlag(*reinterpret_cast<int*>(_v))); break;\n",
- propindex, prefix.constData(), p.write.constData());
- } else if (!p.write.isEmpty()) {
- fprintf(out, " case %d: %s%s(*reinterpret_cast< %s*>(_v)); break;\n",
- propindex, prefix.constData(), p.write.constData(), p.type.constData());
- } else {
- fprintf(out, " case %d:\n", propindex);
- fprintf(out, " if (%s%s != *reinterpret_cast< %s*>(_v)) {\n",
- prefix.constData(), p.member.constData(), p.type.constData());
- fprintf(out, " %s%s = *reinterpret_cast< %s*>(_v);\n",
- prefix.constData(), p.member.constData(), p.type.constData());
- if (!p.notify.isEmpty() && p.notifyId != -1) {
- const FunctionDef &f = cdef->signalList.at(p.notifyId);
- if (f.arguments.size() == 0)
- fprintf(out, " Q_EMIT %s();\n", p.notify.constData());
- else if (f.arguments.size() == 1 && f.arguments.at(0).normalizedType == p.type)
- fprintf(out, " Q_EMIT %s(%s%s);\n",
- p.notify.constData(), prefix.constData(), p.member.constData());
- }
- fprintf(out, " }\n");
- fprintf(out, " break;\n");
- }
- }
- fprintf(out, " default: break;\n");
- fprintf(out, " }\n");
- }
-
+ fprintf(out, "else ");
fprintf(out,
- " _id -= %d;\n"
- " }", cdef->propertyList.count());
-
- fprintf(out, " else ");
- fprintf(out, "if (_c == QMetaObject::ResetProperty) {\n");
- if (needReset) {
- fprintf(out, " switch (_id) {\n");
- for (int propindex = 0; propindex < cdef->propertyList.size(); ++propindex) {
- const PropertyDef &p = cdef->propertyList.at(propindex);
- if (!p.reset.endsWith(')'))
- continue;
- QByteArray prefix;
- if (p.inPrivateClass.size()) {
- prefix = p.inPrivateClass;
- prefix.append("->");
- }
- fprintf(out, " case %d: %s%s; break;\n",
- propindex, prefix.constData(), p.reset.constData());
- }
- fprintf(out, " default: break;\n");
- fprintf(out, " }\n");
- }
- fprintf(out,
- " _id -= %d;\n"
- " }", cdef->propertyList.count());
+ "if (_c == QMetaObject::ReadProperty || _c == QMetaObject::WriteProperty\n"
+ " || _c == QMetaObject::ResetProperty || _c == QMetaObject::RegisterPropertyMetaType) {\n"
+ " qt_static_metacall(this, _c, _id, _a);\n"
+ " _id -= %d;\n }", cdef->propertyList.count());
fprintf(out, " else ");
fprintf(out, "if (_c == QMetaObject::QueryPropertyDesignable) {\n");
@@ -1153,16 +1062,6 @@ void Generator::generateMetacall()
" _id -= %d;\n"
" }", cdef->propertyList.count());
- fprintf(out, " else ");
- fprintf(out, "if (_c == QMetaObject::RegisterPropertyMetaType) {\n");
- fprintf(out, " if (_id < %d)\n", cdef->propertyList.size());
-
- if (automaticPropertyMetaTypesHelper().isEmpty())
- fprintf(out, " *reinterpret_cast<int*>(_a[0]) = -1;\n");
- else
- fprintf(out, " qt_static_metacall(this, _c, _id, _a);\n");
- fprintf(out, " _id -= %d;\n }", cdef->propertyList.size());
-
fprintf(out, "\n#endif // QT_NO_PROPERTIES");
}
if (methodList.size() || cdef->signalList.size() || cdef->propertyList.size())
@@ -1246,10 +1145,14 @@ void Generator::generateStaticMetacall()
else
fprintf(out, " ");
fprintf(out, "if (_c == QMetaObject::InvokeMetaMethod) {\n");
+ if (cdef->hasQObject) {
#ifndef QT_NO_DEBUG
- fprintf(out, " Q_ASSERT(staticMetaObject.cast(_o));\n");
+ fprintf(out, " Q_ASSERT(staticMetaObject.cast(_o));\n");
#endif
- fprintf(out, " %s *_t = static_cast<%s *>(_o);\n", cdef->classname.constData(), cdef->classname.constData());
+ fprintf(out, " %s *_t = static_cast<%s *>(_o);\n", cdef->classname.constData(), cdef->classname.constData());
+ } else {
+ fprintf(out, " %s *_t = reinterpret_cast<%s *>(_o);\n", cdef->classname.constData(), cdef->classname.constData());
+ }
fprintf(out, " switch (_id) {\n");
for (int methodindex = 0; methodindex < methodList.size(); ++methodindex) {
const FunctionDef &f = methodList.at(methodindex);
@@ -1377,6 +1280,153 @@ void Generator::generateStaticMetacall()
needElse = true;
}
+ if (!cdef->propertyList.empty()) {
+ bool needGet = false;
+ bool needTempVarForGet = false;
+ bool needSet = false;
+ bool needReset = false;
+ for (int i = 0; i < cdef->propertyList.size(); ++i) {
+ const PropertyDef &p = cdef->propertyList.at(i);
+ needGet |= !p.read.isEmpty() || !p.member.isEmpty();
+ if (!p.read.isEmpty() || !p.member.isEmpty())
+ needTempVarForGet |= (p.gspec != PropertyDef::PointerSpec
+ && p.gspec != PropertyDef::ReferenceSpec);
+
+ needSet |= !p.write.isEmpty() || (!p.member.isEmpty() && !p.constant);
+ needReset |= !p.reset.isEmpty();
+ }
+ fprintf(out, "\n#ifndef QT_NO_PROPERTIES\n ");
+
+ if (needElse)
+ fprintf(out, "else ");
+ fprintf(out, "if (_c == QMetaObject::ReadProperty) {\n");
+ if (needGet) {
+ if (cdef->hasQObject) {
+#ifndef QT_NO_DEBUG
+ fprintf(out, " Q_ASSERT(staticMetaObject.cast(_o));\n");
+#endif
+ fprintf(out, " %s *_t = static_cast<%s *>(_o);\n", cdef->classname.constData(), cdef->classname.constData());
+ } else {
+ fprintf(out, " %s *_t = reinterpret_cast<%s *>(_o);\n", cdef->classname.constData(), cdef->classname.constData());
+ }
+ if (needTempVarForGet)
+ fprintf(out, " void *_v = _a[0];\n");
+ fprintf(out, " switch (_id) {\n");
+ for (int propindex = 0; propindex < cdef->propertyList.size(); ++propindex) {
+ const PropertyDef &p = cdef->propertyList.at(propindex);
+ if (p.read.isEmpty() && p.member.isEmpty())
+ continue;
+ QByteArray prefix = "_t->";
+ if (p.inPrivateClass.size()) {
+ prefix += p.inPrivateClass + "->";
+ }
+ if (p.gspec == PropertyDef::PointerSpec)
+ fprintf(out, " case %d: _a[0] = const_cast<void*>(reinterpret_cast<const void*>(%s%s())); break;\n",
+ propindex, prefix.constData(), p.read.constData());
+ else if (p.gspec == PropertyDef::ReferenceSpec)
+ fprintf(out, " case %d: _a[0] = const_cast<void*>(reinterpret_cast<const void*>(&%s%s())); break;\n",
+ propindex, prefix.constData(), p.read.constData());
+ else if (cdef->enumDeclarations.value(p.type, false))
+ fprintf(out, " case %d: *reinterpret_cast<int*>(_v) = QFlag(%s%s()); break;\n",
+ propindex, prefix.constData(), p.read.constData());
+ else if (!p.read.isEmpty())
+ fprintf(out, " case %d: *reinterpret_cast< %s*>(_v) = %s%s(); break;\n",
+ propindex, p.type.constData(), prefix.constData(), p.read.constData());
+ else
+ fprintf(out, " case %d: *reinterpret_cast< %s*>(_v) = %s%s; break;\n",
+ propindex, p.type.constData(), prefix.constData(), p.member.constData());
+ }
+ fprintf(out, " default: break;\n");
+ fprintf(out, " }\n");
+ }
+
+ fprintf(out, " }");
+
+ fprintf(out, " else ");
+ fprintf(out, "if (_c == QMetaObject::WriteProperty) {\n");
+
+ if (needSet) {
+ if (cdef->hasQObject) {
+#ifndef QT_NO_DEBUG
+ fprintf(out, " Q_ASSERT(staticMetaObject.cast(_o));\n");
+#endif
+ fprintf(out, " %s *_t = static_cast<%s *>(_o);\n", cdef->classname.constData(), cdef->classname.constData());
+ } else {
+ fprintf(out, " %s *_t = reinterpret_cast<%s *>(_o);\n", cdef->classname.constData(), cdef->classname.constData());
+ }
+ fprintf(out, " void *_v = _a[0];\n");
+ fprintf(out, " switch (_id) {\n");
+ for (int propindex = 0; propindex < cdef->propertyList.size(); ++propindex) {
+ const PropertyDef &p = cdef->propertyList.at(propindex);
+ if (p.constant)
+ continue;
+ if (p.write.isEmpty() && p.member.isEmpty())
+ continue;
+ QByteArray prefix = "_t->";
+ if (p.inPrivateClass.size()) {
+ prefix += p.inPrivateClass + "->";
+ }
+ if (cdef->enumDeclarations.value(p.type, false)) {
+ fprintf(out, " case %d: %s%s(QFlag(*reinterpret_cast<int*>(_v))); break;\n",
+ propindex, prefix.constData(), p.write.constData());
+ } else if (!p.write.isEmpty()) {
+ fprintf(out, " case %d: %s%s(*reinterpret_cast< %s*>(_v)); break;\n",
+ propindex, prefix.constData(), p.write.constData(), p.type.constData());
+ } else {
+ fprintf(out, " case %d:\n", propindex);
+ fprintf(out, " if (%s%s != *reinterpret_cast< %s*>(_v)) {\n",
+ prefix.constData(), p.member.constData(), p.type.constData());
+ fprintf(out, " %s%s = *reinterpret_cast< %s*>(_v);\n",
+ prefix.constData(), p.member.constData(), p.type.constData());
+ if (!p.notify.isEmpty() && p.notifyId != -1) {
+ const FunctionDef &f = cdef->signalList.at(p.notifyId);
+ if (f.arguments.size() == 0)
+ fprintf(out, " Q_EMIT _t->%s();\n", p.notify.constData());
+ else if (f.arguments.size() == 1 && f.arguments.at(0).normalizedType == p.type)
+ fprintf(out, " Q_EMIT _t->%s(%s%s);\n",
+ p.notify.constData(), prefix.constData(), p.member.constData());
+ }
+ fprintf(out, " }\n");
+ fprintf(out, " break;\n");
+ }
+ }
+ fprintf(out, " default: break;\n");
+ fprintf(out, " }\n");
+ }
+
+ fprintf(out, " }");
+
+ fprintf(out, " else ");
+ fprintf(out, "if (_c == QMetaObject::ResetProperty) {\n");
+ if (needReset) {
+ if (cdef->hasQObject) {
+#ifndef QT_NO_DEBUG
+ fprintf(out, " Q_ASSERT(staticMetaObject.cast(_o));\n");
+#endif
+ fprintf(out, " %s *_t = static_cast<%s *>(_o);\n", cdef->classname.constData(), cdef->classname.constData());
+ } else {
+ fprintf(out, " %s *_t = reinterpret_cast<%s *>(_o);\n", cdef->classname.constData(), cdef->classname.constData());
+ }
+ fprintf(out, " switch (_id) {\n");
+ for (int propindex = 0; propindex < cdef->propertyList.size(); ++propindex) {
+ const PropertyDef &p = cdef->propertyList.at(propindex);
+ if (!p.reset.endsWith(')'))
+ continue;
+ QByteArray prefix = "_t->";
+ if (p.inPrivateClass.size()) {
+ prefix += p.inPrivateClass + "->";
+ }
+ fprintf(out, " case %d: %s%s; break;\n",
+ propindex, prefix.constData(), p.reset.constData());
+ }
+ fprintf(out, " default: break;\n");
+ fprintf(out, " }\n");
+ }
+ fprintf(out, " }");
+ fprintf(out, "\n#endif // QT_NO_PROPERTIES");
+ needElse = true;
+ }
+
if (needElse)
fprintf(out, "\n");
diff --git a/src/tools/moc/preprocessor.cpp b/src/tools/moc/preprocessor.cpp
index c5d6b58412..687c4f8474 100644
--- a/src/tools/moc/preprocessor.cpp
+++ b/src/tools/moc/preprocessor.cpp
@@ -52,11 +52,12 @@ static QByteArray cleaned(const QByteArray &input)
QByteArray result;
result.reserve(input.size());
const char *data = input.constData();
+ const char *end = input.constData() + input.size();
char *output = result.data();
int newlines = 0;
- while (*data) {
- while (*data && is_space(*data))
+ while (data != end) {
+ while (data != end && is_space(*data))
++data;
bool takeLine = (*data == '#');
if (*data == '%' && *(data+1) == ':') {
@@ -66,15 +67,15 @@ static QByteArray cleaned(const QByteArray &input)
if (takeLine) {
*output = '#';
++output;
- do ++data; while (*data && is_space(*data));
+ do ++data; while (data != end && is_space(*data));
}
- while (*data) {
+ while (data != end) {
// handle \\\n, \\\r\n and \\\r
if (*data == '\\') {
if (*(data + 1) == '\r') {
++data;
}
- if (*data && (*(data + 1) == '\n' || (*data) == '\r')) {
+ if (data != end && (*(data + 1) == '\n' || (*data) == '\r')) {
++newlines;
data += 1;
if (*data != '\r')
@@ -201,7 +202,7 @@ Symbols Preprocessor::tokenize(const QByteArray& input, int lineNum, Preprocesso
data = skipQuote(data);
token = STRING_LITERAL;
// concatenate multi-line strings for easier
- // STRING_LITERAAL handling in moc
+ // STRING_LITERAL handling in moc
if (!Preprocessor::preprocessOnly
&& !symbols.isEmpty()
&& symbols.last().token == STRING_LITERAL) {
@@ -964,6 +965,43 @@ int Preprocessor::evaluateCondition()
return expression.value();
}
+static QByteArray readOrMapFile(QFile *file)
+{
+ const qint64 size = file->size();
+ char *rawInput = reinterpret_cast<char*>(file->map(0, size));
+ return rawInput ? QByteArray::fromRawData(rawInput, size) : file->readAll();
+}
+
+static void mergeStringLiterals(Symbols *_symbols)
+{
+ Symbols &symbols = *_symbols;
+ for (Symbols::iterator i = symbols.begin(); i != symbols.end(); ++i) {
+ if (i->token == STRING_LITERAL) {
+ Symbols::Iterator mergeSymbol = i;
+ int literalsLength = mergeSymbol->len;
+ while (++i != symbols.end() && i->token == STRING_LITERAL)
+ literalsLength += i->len - 2; // no quotes
+
+ if (literalsLength != mergeSymbol->len) {
+ QByteArray mergeSymbolOriginalLexem = mergeSymbol->unquotedLexem();
+ QByteArray &mergeSymbolLexem = mergeSymbol->lex;
+ mergeSymbolLexem.resize(0);
+ mergeSymbolLexem.reserve(literalsLength);
+ mergeSymbolLexem.append('"');
+ mergeSymbolLexem.append(mergeSymbolOriginalLexem);
+ for (Symbols::const_iterator j = mergeSymbol + 1; j != i; ++j)
+ mergeSymbolLexem.append(j->lex.constData() + j->from + 1, j->len - 2); // append j->unquotedLexem()
+ mergeSymbolLexem.append('"');
+ mergeSymbol->len = mergeSymbol->lex.length();
+ mergeSymbol->from = 0;
+ i = symbols.erase(mergeSymbol + 1, i);
+ }
+ if (i == symbols.end())
+ break;
+ }
+ }
+}
+
void Preprocessor::preprocess(const QByteArray &filename, Symbols &preprocessed)
{
currentFilenames.push(filename);
@@ -1020,7 +1058,8 @@ void Preprocessor::preprocess(const QByteArray &filename, Symbols &preprocessed)
if (!file.open(QFile::ReadOnly))
continue;
- QByteArray input = file.readAll();
+ QByteArray input = readOrMapFile(&file);
+
file.close();
if (input.isEmpty())
continue;
@@ -1153,9 +1192,10 @@ void Preprocessor::preprocess(const QByteArray &filename, Symbols &preprocessed)
currentFilenames.pop();
}
-Symbols Preprocessor::preprocessed(const QByteArray &filename, QIODevice *file)
+Symbols Preprocessor::preprocessed(const QByteArray &filename, QFile *file)
{
- QByteArray input = file->readAll();
+ QByteArray input = readOrMapFile(file);
+
if (input.isEmpty())
return symbols;
@@ -1176,6 +1216,7 @@ Symbols Preprocessor::preprocessed(const QByteArray &filename, QIODevice *file)
// phase 3: preprocess conditions and substitute macros
Symbols result;
preprocess(filename, result);
+ mergeStringLiterals(&result);
#if 0
for (int j = 0; j < result.size(); ++j)
diff --git a/src/tools/moc/preprocessor.h b/src/tools/moc/preprocessor.h
index fc86781be8..77f3a30ac0 100644
--- a/src/tools/moc/preprocessor.h
+++ b/src/tools/moc/preprocessor.h
@@ -57,7 +57,7 @@ typedef SubArray MacroName;
#endif
typedef QHash<MacroName, Macro> Macros;
-class QIODevice;
+class QFile;
class Preprocessor : public Parser
{
@@ -67,7 +67,7 @@ public:
QList<QByteArray> frameworks;
QSet<QByteArray> preprocessedIncludes;
Macros macros;
- Symbols preprocessed(const QByteArray &filename, QIODevice *device);
+ Symbols preprocessed(const QByteArray &filename, QFile *device);
void parseDefineArguments(Macro *m);
diff --git a/src/tools/qdoc/atom.cpp b/src/tools/qdoc/atom.cpp
index 1af31afedd..9aaa1af319 100644
--- a/src/tools/qdoc/atom.cpp
+++ b/src/tools/qdoc/atom.cpp
@@ -97,6 +97,9 @@ QT_BEGIN_NAMESPACE
\value ImageText
\value ImportantNote
\value InlineImage
+ \value JavaScript
+ \value EndJavaScript
+ \value Keyword
\value LineBreak
\value Link
\value LinkNode
@@ -107,6 +110,8 @@ QT_BEGIN_NAMESPACE
\value ListItemLeft
\value ListItemRight
\value ListRight
+ \value NavAutoLink
+ \value NavLink
\value Nop
\value Note
\value ParaLeft
@@ -181,6 +186,7 @@ static const struct {
{ "InlineImage", Atom::InlineImage },
{ "JavaScript", Atom::JavaScript },
{ "EndJavaScript", Atom::EndJavaScript },
+ { "Keyword", Atom::Keyword },
{ "LegaleseLeft", Atom::LegaleseLeft },
{ "LegaleseRight", Atom::LegaleseRight },
{ "LineBreak", Atom::LineBreak },
@@ -193,6 +199,8 @@ static const struct {
{ "ListItemLeft", Atom::ListItemLeft },
{ "ListItemRight", Atom::ListItemRight },
{ "ListRight", Atom::ListRight },
+ { "NavAutoLink", Atom::NavAutoLink },
+ { "NavLink", Atom::NavLink },
{ "Nop", Atom::Nop },
{ "NoteLeft", Atom::NoteLeft },
{ "NoteRight", Atom::NoteRight },
diff --git a/src/tools/qdoc/atom.h b/src/tools/qdoc/atom.h
index 3a7e992f7b..859ea3e740 100644
--- a/src/tools/qdoc/atom.h
+++ b/src/tools/qdoc/atom.h
@@ -57,7 +57,7 @@ public:
BriefRight,
C,
CaptionLeft,
- CaptionRight, // 10
+ CaptionRight,
Code,
CodeBad,
CodeNew,
@@ -67,7 +67,7 @@ public:
DivLeft,
DivRight,
EndQmlText,
- FootnoteLeft, // 20
+ FootnoteLeft,
FootnoteRight,
FormatElse,
FormatEndif,
@@ -77,17 +77,18 @@ public:
GeneratedList,
GuidLink,
HR,
- Image, // 30
+ Image,
ImageText,
ImportantLeft,
ImportantRight,
InlineImage,
JavaScript,
EndJavaScript,
+ Keyword,
LegaleseLeft,
LegaleseRight,
LineBreak,
- Link, // 40
+ Link,
LinkNode,
ListLeft,
ListItemNumber,
@@ -96,8 +97,10 @@ public:
ListItemLeft,
ListItemRight,
ListRight,
+ NavAutoLink,
+ NavLink,
Nop,
- NoteLeft, // 50
+ NoteLeft,
NoteRight,
ParaLeft,
ParaRight,
@@ -107,7 +110,7 @@ public:
QuotationRight,
RawString,
SectionLeft,
- SectionRight, // 60
+ SectionRight,
SectionHeadingLeft,
SectionHeadingRight,
SidebarLeft,
@@ -117,7 +120,7 @@ public:
SnippetIdentifier,
SnippetLocation,
String,
- TableLeft, // 70
+ TableLeft,
TableRight,
TableHeaderLeft,
TableHeaderRight,
@@ -127,7 +130,7 @@ public:
TableItemRight,
TableOfContents,
Target,
- UnhandledFormat, // 80
+ UnhandledFormat,
UnknownCommand,
Last = UnknownCommand
};
@@ -212,12 +215,12 @@ class LinkAtom : public Atom
LinkAtom(Atom* previous, const LinkAtom& t);
virtual ~LinkAtom() { }
- virtual bool isLinkAtom() const { return true; }
- virtual Node::Genus genus() const { return genus_; }
- virtual bool specifiesDomain() const { return (domain_ != 0); }
- virtual Tree* domain() const { return domain_; }
- virtual Node::Type goal() const { return goal_; }
- virtual const QString& error() { return error_; }
+ virtual bool isLinkAtom() const Q_DECL_OVERRIDE { return true; }
+ virtual Node::Genus genus() const Q_DECL_OVERRIDE { return genus_; }
+ virtual bool specifiesDomain() const Q_DECL_OVERRIDE { return (domain_ != 0); }
+ virtual Tree* domain() const Q_DECL_OVERRIDE { return domain_; }
+ virtual Node::Type goal() const Q_DECL_OVERRIDE { return goal_; }
+ virtual const QString& error() Q_DECL_OVERRIDE { return error_; }
protected:
Node::Genus genus_;
diff --git a/src/tools/qdoc/codeparser.cpp b/src/tools/qdoc/codeparser.cpp
index 00341940da..acb297d5f9 100644
--- a/src/tools/qdoc/codeparser.cpp
+++ b/src/tools/qdoc/codeparser.cpp
@@ -65,9 +65,9 @@ QT_BEGIN_NAMESPACE
#define COMMAND_TITLE Doc::alias(QLatin1String("title"))
#define COMMAND_WRAPPER Doc::alias(QLatin1String("wrapper"))
-QString CodeParser::currentSubDir_;
QList<CodeParser *> CodeParser::parsers;
-bool CodeParser::showInternal = false;
+bool CodeParser::showInternal_ = false;
+bool CodeParser::singleExec_ = false;
/*!
The constructor adds this code parser to the static
@@ -93,7 +93,8 @@ CodeParser::~CodeParser()
*/
void CodeParser::initializeParser(const Config& config)
{
- showInternal = config.getBool(CONFIG_SHOWINTERNAL);
+ showInternal_ = config.getBool(CONFIG_SHOWINTERNAL);
+ singleExec_ = config.getBool(CONFIG_SINGLEEXEC);
}
/*!
@@ -262,7 +263,7 @@ void CodeParser::processCommonMetaCommand(const Location& location,
node->setStatus(Node::Preliminary);
}
else if (command == COMMAND_INTERNAL) {
- if (!showInternal) {
+ if (!showInternal_) {
node->setAccess(Node::Private);
node->setStatus(Node::Internal);
if (node->type() == Node::QmlPropertyGroup) {
diff --git a/src/tools/qdoc/codeparser.h b/src/tools/qdoc/codeparser.h
index 5b3b1192f3..c9a9b746b1 100644
--- a/src/tools/qdoc/codeparser.h
+++ b/src/tools/qdoc/codeparser.h
@@ -74,7 +74,6 @@ public:
static CodeParser *parserForHeaderFile(const QString &filePath);
static CodeParser *parserForSourceFile(const QString &filePath);
static void setLink(Node* node, Node::LinkType linkType, const QString& arg);
- static const QString& currentOutputSubdirectory() { return currentSubDir_; }
protected:
const QSet<QString>& commonMetaCommands();
@@ -89,9 +88,9 @@ protected:
QDocDatabase* qdb_;
private:
- static QString currentSubDir_;
static QList<CodeParser *> parsers;
- static bool showInternal;
+ static bool showInternal_;
+ static bool singleExec_;
};
QT_END_NAMESPACE
diff --git a/src/tools/qdoc/config.cpp b/src/tools/qdoc/config.cpp
index 51ab341869..f73ac147b8 100644
--- a/src/tools/qdoc/config.cpp
+++ b/src/tools/qdoc/config.cpp
@@ -98,6 +98,7 @@ QString ConfigStrings::QUOTINGINFORMATION = QStringLiteral("quotinginformation")
QString ConfigStrings::SCRIPTDIRS = QStringLiteral("scriptdirs");
QString ConfigStrings::SCRIPTS = QStringLiteral("scripts");
QString ConfigStrings::SHOWINTERNAL = QStringLiteral("showinternal");
+QString ConfigStrings::SINGLEEXEC = QStringLiteral("singleexec");
QString ConfigStrings::SOURCEDIRS = QStringLiteral("sourcedirs");
QString ConfigStrings::SOURCEENCODING = QStringLiteral("sourceencoding");
QString ConfigStrings::SOURCES = QStringLiteral("sources");
@@ -118,6 +119,7 @@ QString ConfigStrings::FILEEXTENSIONS = QStringLiteral("fileextensions");
QString ConfigStrings::IMAGEEXTENSIONS = QStringLiteral("imageextensions");
QString ConfigStrings::QMLONLY = QStringLiteral("qmlonly");
QString ConfigStrings::QMLTYPESPAGE = QStringLiteral("qmltypespage");
+QString ConfigStrings::WRITEQAPAGES = QStringLiteral("writeqapages");
/*!
An entry in a stack, where each entry is a list
@@ -350,6 +352,10 @@ QString Config::getOutputDir() const
t = getString(CONFIG_OUTPUTDIR);
else
t = overrideOutputDir;
+ if (Generator::singleExec()) {
+ QString project = getString(CONFIG_PROJECT);
+ t += QLatin1Char('/') + project.toLower();
+ }
if (!Generator::useOutputSubdirs()) {
t = t.left(t.lastIndexOf('/'));
QString singleOutputSubdir = getString("HTML.outputsubdir");
@@ -869,6 +875,36 @@ bool Config::isMetaKeyChar(QChar ch)
}
/*!
+ \a fileName is a master qdocconf file. It contains a list of
+ qdocconf files and nothing else. Read the list and return it.
+ */
+QStringList Config::loadMaster(const QString& fileName)
+{
+ Location location = Location::null;
+ QFile fin(fileName);
+ if (!fin.open(QFile::ReadOnly | QFile::Text)) {
+ if (!Config::installDir.isEmpty()) {
+ int prefix = location.filePath().length() - location.fileName().length();
+ fin.setFileName(Config::installDir + "/" + fileName.right(fileName.length() - prefix));
+ }
+ if (!fin.open(QFile::ReadOnly | QFile::Text))
+ location.fatal(tr("Cannot open master qdocconf file '%1': %2").arg(fileName).arg(fin.errorString()));
+ }
+ QTextStream stream(&fin);
+#ifndef QT_NO_TEXTCODEC
+ stream.setCodec("UTF-8");
+#endif
+ QStringList qdocFiles;
+ QString line = stream.readLine();
+ while (!line.isNull()) {
+ qdocFiles.append(line);
+ line = stream.readLine();
+ }
+ fin.close();
+ return qdocFiles;
+}
+
+/*!
Load, parse, and process a qdoc configuration file. This
function is only called by the other load() function, but
this one is recursive, i.e., it calls itself when it sees
diff --git a/src/tools/qdoc/config.h b/src/tools/qdoc/config.h
index 70b5adfd68..a836448719 100644
--- a/src/tools/qdoc/config.h
+++ b/src/tools/qdoc/config.h
@@ -108,6 +108,7 @@ public:
QStringList getExampleQdocFiles(const QSet<QString> &excludedDirs, const QSet<QString> &excludedFiles);
QStringList getExampleImageFiles(const QSet<QString> &excludedDirs, const QSet<QString> &excludedFiles);
+ static QStringList loadMaster(const QString& fileName);
static QStringList getFilesHere(const QString& dir,
const QString& nameFilter,
const Location &location = Location(),
@@ -209,6 +210,7 @@ struct ConfigStrings
static QString SCRIPTDIRS;
static QString SCRIPTS;
static QString SHOWINTERNAL;
+ static QString SINGLEEXEC;
static QString SOURCEDIRS;
static QString SOURCEENCODING;
static QString SOURCES;
@@ -229,6 +231,7 @@ struct ConfigStrings
static QString IMAGEEXTENSIONS;
static QString QMLONLY;
static QString QMLTYPESPAGE;
+ static QString WRITEQAPAGES;
};
#define CONFIG_ALIAS ConfigStrings::ALIAS
@@ -282,6 +285,7 @@ struct ConfigStrings
#define CONFIG_SCRIPTDIRS ConfigStrings::SCRIPTDIRS
#define CONFIG_SCRIPTS ConfigStrings::SCRIPTS
#define CONFIG_SHOWINTERNAL ConfigStrings::SHOWINTERNAL
+#define CONFIG_SINGLEEXEC ConfigStrings::SINGLEEXEC
#define CONFIG_SOURCEDIRS ConfigStrings::SOURCEDIRS
#define CONFIG_SOURCEENCODING ConfigStrings::SOURCEENCODING
#define CONFIG_SOURCES ConfigStrings::SOURCES
@@ -302,6 +306,7 @@ struct ConfigStrings
#define CONFIG_IMAGEEXTENSIONS ConfigStrings::IMAGEEXTENSIONS
#define CONFIG_QMLONLY ConfigStrings::QMLONLY
#define CONFIG_QMLTYPESPAGE ConfigStrings::QMLTYPESPAGE
+#define CONFIG_WRITEQAPAGES ConfigStrings::WRITEQAPAGES
QT_END_NAMESPACE
diff --git a/src/tools/qdoc/cppcodemarker.h b/src/tools/qdoc/cppcodemarker.h
index ec2ee124d4..899c2018fe 100644
--- a/src/tools/qdoc/cppcodemarker.h
+++ b/src/tools/qdoc/cppcodemarker.h
@@ -50,29 +50,29 @@ public:
CppCodeMarker();
~CppCodeMarker();
- virtual bool recognizeCode(const QString& code);
- virtual bool recognizeExtension(const QString& ext);
- virtual bool recognizeLanguage(const QString& lang);
- virtual Atom::Type atomType() const;
+ virtual bool recognizeCode(const QString& code) Q_DECL_OVERRIDE;
+ virtual bool recognizeExtension(const QString& ext) Q_DECL_OVERRIDE;
+ virtual bool recognizeLanguage(const QString& lang) Q_DECL_OVERRIDE;
+ virtual Atom::Type atomType() const Q_DECL_OVERRIDE;
virtual QString markedUpCode(const QString& code,
const Node *relative,
- const Location &location);
+ const Location &location) Q_DECL_OVERRIDE;
virtual QString markedUpSynopsis(const Node *node,
const Node *relative,
- SynopsisStyle style);
- virtual QString markedUpQmlItem(const Node *node, bool summary);
- virtual QString markedUpName(const Node *node);
- virtual QString markedUpFullName(const Node *node, const Node *relative);
- virtual QString markedUpEnumValue(const QString &enumValue, const Node *relative);
- virtual QString markedUpIncludes(const QStringList& includes);
- virtual QString functionBeginRegExp(const QString& funcName);
- virtual QString functionEndRegExp(const QString& funcName);
+ SynopsisStyle style) Q_DECL_OVERRIDE;
+ virtual QString markedUpQmlItem(const Node *node, bool summary) Q_DECL_OVERRIDE;
+ virtual QString markedUpName(const Node *node) Q_DECL_OVERRIDE;
+ virtual QString markedUpFullName(const Node *node, const Node *relative) Q_DECL_OVERRIDE;
+ virtual QString markedUpEnumValue(const QString &enumValue, const Node *relative) Q_DECL_OVERRIDE;
+ virtual QString markedUpIncludes(const QStringList& includes) Q_DECL_OVERRIDE;
+ virtual QString functionBeginRegExp(const QString& funcName) Q_DECL_OVERRIDE;
+ virtual QString functionEndRegExp(const QString& funcName) Q_DECL_OVERRIDE;
virtual QList<Section> sections(const InnerNode *innerNode,
SynopsisStyle style,
- Status status);
+ Status status) Q_DECL_OVERRIDE;
virtual QList<Section> qmlSections(QmlClassNode* qmlClassNode,
SynopsisStyle style,
- Status status = Okay);
+ Status status = Okay) Q_DECL_OVERRIDE;
private:
QString addMarkUp(const QString& protectedCode,
diff --git a/src/tools/qdoc/cppcodeparser.h b/src/tools/qdoc/cppcodeparser.h
index 7499575d13..03b55c7775 100644
--- a/src/tools/qdoc/cppcodeparser.h
+++ b/src/tools/qdoc/cppcodeparser.h
@@ -65,15 +65,15 @@ public:
CppCodeParser();
~CppCodeParser();
- virtual void initializeParser(const Config& config);
- virtual void terminateParser();
- virtual QString language();
- virtual QStringList headerFileNameFilter();
- virtual QStringList sourceFileNameFilter();
- virtual void parseHeaderFile(const Location& location, const QString& filePath);
- virtual void parseSourceFile(const Location& location, const QString& filePath);
- virtual void doneParsingHeaderFiles();
- virtual void doneParsingSourceFiles();
+ virtual void initializeParser(const Config& config) Q_DECL_OVERRIDE;
+ virtual void terminateParser() Q_DECL_OVERRIDE;
+ virtual QString language() Q_DECL_OVERRIDE;
+ virtual QStringList headerFileNameFilter() Q_DECL_OVERRIDE;
+ virtual QStringList sourceFileNameFilter() Q_DECL_OVERRIDE;
+ virtual void parseHeaderFile(const Location& location, const QString& filePath) Q_DECL_OVERRIDE;
+ virtual void parseSourceFile(const Location& location, const QString& filePath) Q_DECL_OVERRIDE;
+ virtual void doneParsingHeaderFiles() Q_DECL_OVERRIDE;
+ virtual void doneParsingSourceFiles() Q_DECL_OVERRIDE;
protected:
const QSet<QString>& topicCommands();
diff --git a/src/tools/qdoc/ditaxmlgenerator.cpp b/src/tools/qdoc/ditaxmlgenerator.cpp
index d9cf56769b..54b358e170 100644
--- a/src/tools/qdoc/ditaxmlgenerator.cpp
+++ b/src/tools/qdoc/ditaxmlgenerator.cpp
@@ -663,10 +663,10 @@ GuidMap* DitaXmlGenerator::lookupGuidMap(const QString& fileName)
*/
void DitaXmlGenerator::generateDocs()
{
- if (!runPrepareOnly())
+ if (!preparing())
Generator::generateDocs();
- if (!runGenerateOnly()) {
+ if (!generating()) {
QString fileBase = project.toLower().simplified().replace(QLatin1Char(' '), QLatin1Char('-'));
qdb_->generateIndex(outputDir() + QLatin1Char('/') + fileBase + ".index",
projectUrl,
@@ -675,7 +675,7 @@ void DitaXmlGenerator::generateDocs()
true);
}
- if (!runPrepareOnly()) {
+ if (!preparing()) {
writeDitaMap();
/*
Generate the XML tag file, if it was requested.
diff --git a/src/tools/qdoc/ditaxmlgenerator.h b/src/tools/qdoc/ditaxmlgenerator.h
index 4514f19bc8..d2f445dd5b 100644
--- a/src/tools/qdoc/ditaxmlgenerator.h
+++ b/src/tools/qdoc/ditaxmlgenerator.h
@@ -290,11 +290,11 @@ public:
DitaXmlGenerator();
~DitaXmlGenerator();
- virtual void initializeGenerator(const Config& config);
- virtual void terminateGenerator();
- virtual QString format();
- virtual bool canHandleFormat(const QString& format);
- virtual void generateDocs();
+ virtual void initializeGenerator(const Config& config) Q_DECL_OVERRIDE;
+ virtual void terminateGenerator() Q_DECL_OVERRIDE;
+ virtual QString format() Q_DECL_OVERRIDE;
+ virtual bool canHandleFormat(const QString& format) Q_DECL_OVERRIDE;
+ virtual void generateDocs() Q_DECL_OVERRIDE;
QString protectEnc(const QString& string);
static QString protect(const QString& string, const QString& encoding = "ISO-8859-1");
@@ -304,12 +304,12 @@ public:
protected:
virtual int generateAtom(const Atom* atom,
const Node* relative,
- CodeMarker* marker);
- virtual void generateClassLikeNode(InnerNode* inner, CodeMarker* marker);
- virtual void generateQmlBasicTypePage(QmlBasicTypeNode* qbtn, CodeMarker* marker);
- virtual void generateDocNode(DocNode* dn, CodeMarker* marker);
- virtual void generateCollectionNode(CollectionNode* cn, CodeMarker* marker);
- virtual QString fileExtension() const;
+ CodeMarker* marker) Q_DECL_OVERRIDE;
+ virtual void generateClassLikeNode(InnerNode* inner, CodeMarker* marker) Q_DECL_OVERRIDE;
+ virtual void generateQmlBasicTypePage(QmlBasicTypeNode* qbtn, CodeMarker* marker) Q_DECL_OVERRIDE;
+ virtual void generateDocNode(DocNode* dn, CodeMarker* marker) Q_DECL_OVERRIDE;
+ virtual void generateCollectionNode(CollectionNode* cn, CodeMarker* marker) Q_DECL_OVERRIDE;
+ virtual QString fileExtension() const Q_DECL_OVERRIDE;
virtual QString guidForNode(const Node* node);
virtual QString linkForNode(const Node* node, const Node* relative);
@@ -394,8 +394,8 @@ private:
void generateDetailedQmlMember(Node* node,
const InnerNode* relative,
CodeMarker* marker);
- void generateQmlInherits(QmlClassNode* qcn, CodeMarker* marker);
- void generateQmlInheritedBy(const QmlClassNode* qcn, CodeMarker* marker);
+ void generateQmlInherits(QmlClassNode* qcn, CodeMarker* marker) Q_DECL_OVERRIDE;
+ void generateQmlInheritedBy(const QmlClassNode* qcn, CodeMarker* marker) Q_DECL_OVERRIDE;
void generateQmlInstantiates(QmlClassNode* qcn, CodeMarker* marker);
void generateInstantiatedBy(ClassNode* cn, CodeMarker* marker);
void generateQmlModuleDef(QmlClassNode* qcn);
@@ -420,7 +420,7 @@ private:
QString getAutoLink(const Atom *atom, const Node *relative, const Node** node);
QString registerRef(const QString& ref);
- virtual QString fileBase(const Node *node) const;
+ virtual QString fileBase(const Node *node) const Q_DECL_OVERRIDE;
QString fileName(const Node *node);
static int hOffset(const Node *node);
static bool isThreeColumnEnumValueTable(const Atom *atom);
@@ -434,9 +434,9 @@ private:
QString lookupGuid(QString text);
QString lookupGuid(const QString& fileName, const QString& text);
GuidMap* lookupGuidMap(const QString& fileName);
- virtual void beginSubPage(const InnerNode* node, const QString& fileName);
- virtual void endSubPage();
- virtual void generateInnerNode(InnerNode* node);
+ virtual void beginSubPage(const InnerNode* node, const QString& fileName) Q_DECL_OVERRIDE;
+ virtual void endSubPage() Q_DECL_OVERRIDE;
+ virtual void generateInnerNode(InnerNode* node) Q_DECL_OVERRIDE;
QXmlStreamWriter& xmlWriter();
void writeApiDesc(const Node* node, CodeMarker* marker, const QString& title);
void addLink(const QString& href, const QStringRef& text, DitaTag t = DT_xref);
diff --git a/src/tools/qdoc/doc.cpp b/src/tools/qdoc/doc.cpp
index 5a3ad959d2..c10e3b4669 100644
--- a/src/tools/qdoc/doc.cpp
+++ b/src/tools/qdoc/doc.cpp
@@ -1611,12 +1611,14 @@ void DocParser::parse(const QString& source,
QString word = in.mid(startPos, pos - startPos);
// is word a C++ symbol or an English word?
if ((numInternalUppercase >= 1 && numLowercase >= 2)
- || numStrangeSymbols >= 1) {
- append(Atom::AutoLink, word);
+ || numStrangeSymbols > 0) {
+ if (word.startsWith(QString("__")))
+ appendWord(word);
+ else
+ append(Atom::AutoLink, word);
}
- else {
+ else
appendWord(word);
- }
}
}
}
@@ -1690,12 +1692,15 @@ void DocParser::insertTarget(const QString &target, bool keyword)
}
else {
targetMap_.insert(target, location());
- append(Atom::Target, target);
priv->constructExtra();
- if (keyword)
+ if (keyword) {
+ append(Atom::Keyword, target);
priv->extra->keywords_.append(priv->text.lastAtom());
- else
+ }
+ else {
+ append(Atom::Target, target);
priv->extra->targets_.append(priv->text.lastAtom());
+ }
}
}
@@ -1991,7 +1996,7 @@ void DocParser::append(const QString &string)
Atom::Type lastType = priv->text.lastAtom()->type();
if ((lastType == Atom::Code) && priv->text.lastAtom()->string().endsWith(QLatin1String("\n\n")))
priv->text.lastAtom()->chopString();
- priv->text << Atom(string);
+ priv->text << Atom(string); // The Atom type is Link.
}
void DocParser::append(Atom::Type type, const QString& p1, const QString& p2)
@@ -2008,7 +2013,7 @@ void DocParser::append(const QString& p1, const QString& p2)
if ((lastType == Atom::Code) && priv->text.lastAtom()->string().endsWith(QLatin1String("\n\n")))
priv->text.lastAtom()->chopString();
if (p2.isEmpty())
- priv->text << Atom(p1);
+ priv->text << Atom(p1); // The Atom type is Link.
else
priv->text << LinkAtom(p1, p2);
}
@@ -2319,7 +2324,10 @@ QString DocParser::getBracedArgument(bool verbatim)
}
break;
default:
- arg += in[pos];
+ if (in[pos].isSpace() && !verbatim)
+ arg += QChar(' ');
+ else
+ arg += in[pos];
pos++;
}
}
@@ -2816,18 +2824,6 @@ QString DocParser::slashed(const QString& str)
#define COMMAND_BRIEF Doc::alias("brief")
#define COMMAND_QMLBRIEF Doc::alias("qmlbrief")
-#if 0
-Doc::Doc(const Location& start_loc,
- const Location& end_loc,
- const QString& source,
- const QSet<QString>& metaCommandSet)
-{
- priv = new DocPrivate(start_loc,end_loc,source);
- DocParser parser;
- parser.parse(source,priv,metaCommandSet,QSet<QString>());
-}
-#endif
-
/*!
Parse the qdoc comment \a source. Build up a list of all the topic
commands found including their arguments. This constructor is used
@@ -3234,6 +3230,9 @@ void Doc::initialize(const Config& config)
}
}
+/*!
+ All the heap allocated variables are deleted.
+ */
void Doc::terminate()
{
DocParser::exampleFiles.clear();
diff --git a/src/tools/qdoc/doc.h b/src/tools/qdoc/doc.h
index 1c13c0f026..72db2c882c 100644
--- a/src/tools/qdoc/doc.h
+++ b/src/tools/qdoc/doc.h
@@ -97,9 +97,9 @@ public:
TopicRef() { }
~TopicRef();
- virtual bool isMapRef() const { return false; }
- virtual const DitaRefList* subrefs() const { return &subrefs_; }
- virtual void appendSubref(DitaRef* t) { subrefs_.append(t); }
+ virtual bool isMapRef() const Q_DECL_OVERRIDE { return false; }
+ virtual const DitaRefList* subrefs() const Q_DECL_OVERRIDE { return &subrefs_; }
+ virtual void appendSubref(DitaRef* t) Q_DECL_OVERRIDE { subrefs_.append(t); }
private:
DitaRefList subrefs_;
@@ -111,7 +111,7 @@ public:
MapRef() { }
~MapRef() { }
- virtual bool isMapRef() const { return true; }
+ virtual bool isMapRef() const Q_DECL_OVERRIDE { return true; }
};
class Doc
diff --git a/src/tools/qdoc/generator.cpp b/src/tools/qdoc/generator.cpp
index 5aff19e121..db531e3936 100644
--- a/src/tools/qdoc/generator.cpp
+++ b/src/tools/qdoc/generator.cpp
@@ -64,7 +64,7 @@ QString Generator::outSubdir_;
QStringList Generator::outFileNames_;
QSet<QString> Generator::outputFormats;
QHash<QString, QString> Generator::outputPrefixes;
-QString Generator::project;
+QString Generator::project_;
QStringList Generator::scriptDirs;
QStringList Generator::scriptFiles;
QString Generator::sinceTitles[] =
@@ -92,7 +92,9 @@ bool Generator::debugging_ = false;
bool Generator::noLinkErrors_ = false;
bool Generator::autolinkErrors_ = false;
bool Generator::redirectDocumentationToDevNull_ = false;
-Generator::Passes Generator::qdocPass_ = Both;
+Generator::QDocPass Generator::qdocPass_ = Generator::Neither;
+bool Generator::qdocSingleExec_ = false;
+bool Generator::qdocWriteQaPages_ = false;
bool Generator::useOutputSubdirs_ = true;
void Generator::startDebugging(const QString& message)
@@ -134,6 +136,7 @@ Generator::Generator()
inTableHeader_(false),
threeColumnEnumValueTable_(true),
showInternal_(false),
+ singleExec_(false),
numTableRows_(0)
{
qdb_ = QDocDatabase::qdocDB();
@@ -259,7 +262,8 @@ void Generator::writeOutFileNames()
void Generator::beginSubPage(const InnerNode* node, const QString& fileName)
{
QString path = outputDir() + QLatin1Char('/');
- if (Generator::useOutputSubdirs() && !node->outputSubdirectory().isEmpty())
+ if (Generator::useOutputSubdirs() && !node->outputSubdirectory().isEmpty() &&
+ !outputDir().endsWith(node->outputSubdirectory()))
path += node->outputSubdirectory() + QLatin1Char('/');
path += fileName;
@@ -314,7 +318,7 @@ QString Generator::fileBase(const Node *node) const
if (node->isExample() || node->isExampleFile()) {
QString modPrefix(node->moduleName());
if (modPrefix.isEmpty()) {
- modPrefix = project;
+ modPrefix = project_;
}
base.prepend(modPrefix.toLower() + QLatin1Char('-'));
}
@@ -1529,7 +1533,7 @@ void Generator::initialize(const Config &config)
QDir dirInfo;
if (dirInfo.exists(outDir_)) {
- if (!runGenerateOnly() && Generator::useOutputSubdirs()) {
+ if (!generating() && Generator::useOutputSubdirs()) {
if (!Config::removeDirContents(outDir_))
config.lastLocation().error(tr("Cannot empty output directory '%1'").arg(outDir_));
}
@@ -1643,7 +1647,7 @@ void Generator::initialize(const Config &config)
++n;
}
- project = config.getString(CONFIG_PROJECT);
+ project_ = config.getString(CONFIG_PROJECT);
QStringList prefixes = config.getStringList(CONFIG_OUTPUTPREFIXES);
if (!prefixes.isEmpty()) {
@@ -1678,6 +1682,7 @@ void Generator::initializeGenerator(const Config& config)
{
config_ = &config;
showInternal_ = config.getBool(CONFIG_SHOWINTERNAL);
+ singleExec_ = config.getBool(CONFIG_SINGLEEXEC);
}
bool Generator::matchAhead(const Atom *atom, Atom::Type expectedAtomType)
diff --git a/src/tools/qdoc/generator.h b/src/tools/qdoc/generator.h
index 110a8d9e73..b1faf02ae9 100644
--- a/src/tools/qdoc/generator.h
+++ b/src/tools/qdoc/generator.h
@@ -61,7 +61,7 @@ class Generator
Q_DECLARE_TR_FUNCTIONS(QDoc::Generator)
public:
- enum Passes { Both, Prepare, Generate };
+ enum QDocPass { Neither, Prepare, Generate };
enum ListType { Generic, Obsolete };
Generator();
@@ -91,10 +91,14 @@ public:
static bool debugging() { return debugging_; }
static bool noLinkErrors() { return noLinkErrors_; }
static bool autolinkErrors() { return autolinkErrors_; }
- static void setQDocPass(Passes pass) { qdocPass_ = pass; }
- static bool runPrepareOnly() { return (qdocPass_ == Prepare); }
- static bool runGenerateOnly() { return (qdocPass_ == Generate); }
- static QString defaultModuleName() { return project; }
+ static void setQDocPass(QDocPass t) { qdocPass_ = t; }
+ static bool preparing() { return (qdocPass_ == Prepare); }
+ static bool generating() { return (qdocPass_ == Generate); }
+ static bool singleExec() { return qdocSingleExec_; }
+ static bool writeQaPages() { return qdocWriteQaPages_; }
+ static void setSingleExec() { qdocSingleExec_ = true; }
+ static void setWriteQaPages() { qdocWriteQaPages_ = true; }
+ static QString defaultModuleName() { return project_; }
static void resetUseOutputSubdirs() { useOutputSubdirs_ = false; }
static bool useOutputSubdirs() { return useOutputSubdirs_; }
@@ -103,6 +107,7 @@ protected:
virtual void endSubPage();
virtual QString fileBase(const Node* node) const;
virtual QString fileExtension() const = 0;
+ virtual void generateQAPage() { }
virtual void generateAlsoList(const Node *node, CodeMarker *marker);
virtual int generateAtom(const Atom *atom, const Node *relative, CodeMarker *marker);
virtual void generateBody(const Node *node, CodeMarker *marker);
@@ -198,7 +203,7 @@ private:
static QStringList imageDirs;
static QStringList imageFiles;
static QMap<QString, QStringList> imgFileExts;
- static QString project;
+ static QString project_;
static QString outDir_;
static QString outSubdir_;
static QStringList outFileNames_;
@@ -212,7 +217,9 @@ private:
static bool noLinkErrors_;
static bool autolinkErrors_;
static bool redirectDocumentationToDevNull_;
- static Passes qdocPass_;
+ static QDocPass qdocPass_;
+ static bool qdocSingleExec_;
+ static bool qdocWriteQaPages_;
static bool useOutputSubdirs_;
void generateReimplementedFrom(const FunctionNode *func, CodeMarker *marker);
@@ -232,6 +239,7 @@ private:
bool inTableHeader_;
bool threeColumnEnumValueTable_;
bool showInternal_;
+ bool singleExec_;
int numTableRows_;
QString link_;
QString sectionNumber_;
diff --git a/src/tools/qdoc/htmlgenerator.cpp b/src/tools/qdoc/htmlgenerator.cpp
index ced7e637b3..bb1f9cd651 100644
--- a/src/tools/qdoc/htmlgenerator.cpp
+++ b/src/tools/qdoc/htmlgenerator.cpp
@@ -100,8 +100,10 @@ HtmlGenerator::HtmlGenerator()
*/
HtmlGenerator::~HtmlGenerator()
{
- if (helpProjectWriter)
+ if (helpProjectWriter) {
delete helpProjectWriter;
+ helpProjectWriter = 0;
+ }
}
/*!
@@ -130,6 +132,11 @@ void HtmlGenerator::initializeGenerator(const Config &config)
Generator::initializeGenerator(config);
obsoleteLinks = config.getBool(CONFIG_OBSOLETELINKS);
setImageFileExtensions(QStringList() << "png" << "jpg" << "jpeg" << "gif");
+
+ /*
+ The formatting maps are owned by Generator. They are cleared in
+ Generator::terminate().
+ */
int i = 0;
while (defaults[i].key) {
formattingLeftMap().insert(defaults[i].key, defaults[i].left);
@@ -215,7 +222,12 @@ void HtmlGenerator::initializeGenerator(const Config &config)
// The following line was changed to fix QTBUG-27798
//codeIndent = config.getInt(CONFIG_CODEINDENT);
- helpProjectWriter = new HelpProjectWriter(config, project.toLower() + ".qhp", this);
+ /*
+ The help file write should be allocated once and only once
+ per qdoc execution.
+ */
+ if (helpProjectWriter == 0)
+ helpProjectWriter = new HelpProjectWriter(config, project.toLower() + ".qhp", this);
// Documentation template handling
headerScripts = config.getString(HtmlGenerator::format() + Config::dot + CONFIG_HEADERSCRIPTS);
@@ -263,6 +275,20 @@ QString HtmlGenerator::format()
}
/*!
+ Generate targets for any \keyword commands that were seen
+ in the qdoc comment for the \a node.
+ */
+void HtmlGenerator::generateKeywordAnchors(const Node* node)
+{
+ if (!node->doc().isEmpty()) {
+ const QList<Atom*>& keywords = node->doc().keywords();
+ foreach (Atom* a, keywords) {
+ out() << "<a name=\"" << Doc::canonicalTitle(a->string()) << "\"></a>";
+ }
+ }
+}
+
+/*!
Traverses the current tree generating all the HTML documentation.
*/
void HtmlGenerator::generateDocs()
@@ -270,10 +296,12 @@ void HtmlGenerator::generateDocs()
Node* qflags = qdb_->findClassNode(QStringList("QFlags"));
if (qflags)
qflagsHref_ = linkForNode(qflags,0);
- if (!runPrepareOnly())
+ if (!preparing())
Generator::generateDocs();
+ if (Generator::generating() && Generator::writeQaPages())
+ generateQAPage();
- if (!runGenerateOnly()) {
+ if (!generating()) {
QString fileBase = project.toLower().simplified().replace(QLatin1Char(' '), QLatin1Char('-'));
qdb_->generateIndex(outputDir() + QLatin1Char('/') + fileBase + ".index",
projectUrl,
@@ -282,7 +310,7 @@ void HtmlGenerator::generateDocs()
true);
}
- if (!runPrepareOnly()) {
+ if (!preparing()) {
helpProjectWriter->generate();
generateManifestFiles();
/*
@@ -293,6 +321,144 @@ void HtmlGenerator::generateDocs()
}
/*!
+ Output the module's Quality Assurance page.
+ */
+void HtmlGenerator::generateQAPage()
+{
+ NamespaceNode* node = qdb_->primaryTreeRoot();
+ beginSubPage(node, "aaa-" + defaultModuleName().toLower() + "-qa-page.html");
+ CodeMarker* marker = CodeMarker::markerForFileName(node->location().filePath());
+ QString title = "Quality Assurance Page for " + defaultModuleName();
+ QString t = "Quality assurance information for checking the " + defaultModuleName() + " documentation.";
+ generateHeader(title, node, marker);
+ generateTitle(title, Text() << t, LargeSubTitle, node, marker);
+
+ QStringList strings;
+ QVector<int> counts;
+ QString depends = qdb_->getLinkCounts(strings, counts);
+ if (!strings.isEmpty()) {
+ t = "Intermodule Link Counts";
+ QString ref = registerRef(t);
+ out() << "<a name=\"" << ref << "\"></a>" << divNavTop << '\n';
+ out() << "<h2 id=\"" << ref << "\">" << protectEnc(t) << "</h2>\n";
+ out() << "<table class=\"valuelist\"><tr valign=\"top\" "
+ << "class=\"even\"><th class=\"tblConst\">Destination Module</th>"
+ << "<th class=\"tblval\">Link Count</th></tr>\n";
+ QString fileName;
+ for (int i = 0; i< strings.size(); ++i) {
+ fileName = generateLinksToLinksPage(strings.at(i), marker);
+ out() << "<tr><td class=\"topAlign\"><tt>"
+ << "<a href=\"" << fileName << "\">"
+ << strings.at(i) << "</a>"
+ << "</tt></td><td class=\"topAlign\"><tt>" << counts.at(i)
+ << "</tt></td></tr>\n";
+ }
+ int count = 0;
+ fileName = generateLinksToBrokenLinksPage(marker, count);
+ if (count != 0) {
+ out() << "<tr><td class=\"topAlign\"><tt>"
+ << "<a href=\"" << fileName << "\">"
+ << "Broken Links" << "</a>"
+ << "</tt></td><td class=\"topAlign\"><tt>" << count
+ << "</tt></td></tr>\n";
+
+ }
+
+ out() << "</table>\n";
+ t = "The Optimal \"depends\" Variable";
+ out() << "<h2>" << protectEnc(t) << "</h2>\n";
+ t = "Consider replacing the depends variable in " + defaultModuleName().toLower() +
+ ".qdocconf with this one, if the two are not identical:";
+ out() << "<p>" << protectEnc(t) << "</p>\n";
+ out() << "<p>" << protectEnc(depends) << "</p>\n";
+ }
+ generateFooter();
+ endSubPage();
+}
+
+/*!
+ This function writes an html file containing a list of
+ links to links that originate in the current module and
+ go to targets in the specified \a module. The \a marker
+ is used for the same thing the marker is always used for.
+ */
+QString HtmlGenerator::generateLinksToLinksPage(const QString& module, CodeMarker* marker)
+{
+ NamespaceNode* node = qdb_->primaryTreeRoot();
+ QString fileName = "aaa-links-to-" + module + ".html";
+ beginSubPage(node, fileName);
+ QString title = "Links from " + defaultModuleName() + " to " + module;
+ generateHeader(title, node, marker);
+ generateTitle(title, Text(), SmallSubTitle, node, marker);
+ out() << "<p>This is a list of links from " << defaultModuleName()
+ << " to " << module << ". ";
+ out() << "Click on a link to go to the location of the link. The link is marked ";
+ out() << "with red asterisks. ";
+ out() << "Click on the marked link to see if it goes to the right place.</p>\n";
+ TargetList* tlist = qdb_->getTargetList(module);
+ if (tlist) {
+ out() << "<table class=\"valuelist\"><tr valign=\"top\" class=\"odd\"><th class=\"tblConst\">Link to link...</th><th class=\"tblval\">In file...</th><th class=\"tbldscr\">Somewhere after line number...</th></tr>\n";
+ foreach (TargetLoc* t, *tlist) {
+ // e.g.: <a name="link-8421"></a><a href="layout.html">Layout Management</a>
+ out() << "<tr><td class=\"topAlign\">";
+ out() << "<a href=\"" << t->fileName_ << "#" << t->target_ << "\">";
+ out() << t->text_ << "</a></td>";
+ out() << "<td class=\"topAlign\">";
+ QString f = t->loc_->doc().location().filePath();
+ out() << f << "</td>";
+ out() << "<td class=\"topAlign\">";
+ out() << t->loc_->doc().location().lineNo() << "</td></tr>\n";
+ }
+ out() << "</table>\n";
+ }
+ generateFooter();
+ endSubPage();
+ return fileName;
+}
+
+/*!
+ This function writes an html file containing a list of
+ links to broken links that originate in the current
+ module and go nowwhere. It returns the name of the file
+ it generates, and it sets \a count to the number of
+ broken links that were found. The \a marker is used for
+ the same thing the marker is always used for.
+ */
+QString HtmlGenerator::generateLinksToBrokenLinksPage(CodeMarker* marker, int& count)
+{
+ QString fileName;
+ NamespaceNode* node = qdb_->primaryTreeRoot();
+ TargetList* tlist = qdb_->getTargetList("broken");
+ if (tlist && !tlist->isEmpty()) {
+ count = tlist->size();
+ fileName = "aaa-links-to-broken-links.html";
+ beginSubPage(node, fileName);
+ QString title = "Broken links in " + defaultModuleName();
+ generateHeader(title, node, marker);
+ generateTitle(title, Text(), SmallSubTitle, node, marker);
+ out() << "<p>This is a list of broken links in " << defaultModuleName() << ". ";
+ out() << "Click on a link to go to the broken link. ";
+ out() << "The link's target could not be found.</p>\n";
+ out() << "<table class=\"valuelist\"><tr valign=\"top\" class=\"odd\"><th class=\"tblConst\">Link to broken link...</th><th class=\"tblval\">In file...</th><th class=\"tbldscr\">Somewhere after line number...</th></tr>\n";
+ foreach (TargetLoc* t, *tlist) {
+ // e.g.: <a name="link-8421"></a><a href="layout.html">Layout Management</a>
+ out() << "<tr><td class=\"topAlign\">";
+ out() << "<a href=\"" << t->fileName_ << "#" << t->target_ << "\">";
+ out() << t->text_ << "</a></td>";
+ out() << "<td class=\"topAlign\">";
+ QString f = t->loc_->doc().location().filePath();
+ out() << f << "</td>";
+ out() << "<td class=\"topAlign\">";
+ out() << t->loc_->doc().location().lineNo() << "</td></tr>\n";
+ }
+ out() << "</table>\n";
+ generateFooter();
+ endSubPage();
+ }
+ return fileName;
+}
+
+/*!
Generate html from an instance of Atom.
*/
int HtmlGenerator::generateAtom(const Atom *atom, const Node *relative, CodeMarker *marker)
@@ -310,6 +476,7 @@ int HtmlGenerator::generateAtom(const Atom *atom, const Node *relative, CodeMark
case Atom::AbstractRight:
break;
case Atom::AutoLink:
+ case Atom::NavAutoLink:
if (!inLink_ && !inContents_ && !inSectionHeading_) {
const Node *node = 0;
QString link = getAutoLink(atom, relative, &node);
@@ -321,9 +488,15 @@ int HtmlGenerator::generateAtom(const Atom *atom, const Node *relative, CodeMark
if ((relative->parent() != node) && !relative->isObsolete())
link.clear();
}
- if (link.isEmpty())
+ if (link.isEmpty()) {
out() << protectEnc(atom->string());
+ }
else {
+ if (Generator::writeQaPages() && node && (atom->type() != Atom::NavAutoLink)) {
+ QString text = atom->string();
+ QString target = qdb_->getNewLinkTarget(relative, node, outFileName(), text);
+ out() << "<a id=\"" << Doc::canonicalTitle(target) << "\" class=\"qa-mark\"></a>";
+ }
beginLink(link, node, relative);
generateLink(atom, marker);
endLink();
@@ -806,14 +979,31 @@ int HtmlGenerator::generateAtom(const Atom *atom, const Node *relative, CodeMark
out() << "<br/>";
break;
case Atom::Link:
+ case Atom::NavLink:
{
inObsoleteLink = false;
const Node *node = 0;
QString link = getLink(atom, relative, &node);
if (link.isEmpty() && (node != relative) && !noLinkErrors()) {
relative->doc().location().warning(tr("Can't link to '%1'").arg(atom->string()));
+ if (Generator::writeQaPages() && (atom->type() != Atom::NavAutoLink)) {
+ QString text = atom->next()->next()->string();
+ QString target = qdb_->getNewLinkTarget(relative, node, outFileName(), text, true);
+ out() << "<a id=\"" << Doc::canonicalTitle(target) << "\" class=\"qa-mark\"></a>";
+ }
}
else {
+ if (Generator::writeQaPages() && node && (atom->type() != Atom::NavLink)) {
+ QString text = atom->next()->next()->string();
+ QString target = qdb_->getNewLinkTarget(relative, node, outFileName(), text);
+ out() << "<a id=\"" << Doc::canonicalTitle(target) << "\" class=\"qa-mark\"></a>";
+ }
+ /*
+ mws saw this on 17/10/2014.
+ Is this correct? Setting node to 0 means the
+ following test always fails. Did we decide to
+ no longer warn about linking to obsolete things?
+ */
node = 0;
if (node && node->status() == Node::Obsolete) {
if ((relative->parent() != node) && !relative->isObsolete()) {
@@ -1126,6 +1316,8 @@ int HtmlGenerator::generateAtom(const Atom *atom, const Node *relative, CodeMark
break;
case Atom::TableOfContents:
break;
+ case Atom::Keyword:
+ break;
case Atom::Target:
out() << "<a name=\"" << Doc::canonicalTitle(atom->string()) << "\"></a>";
break;
@@ -1173,8 +1365,10 @@ void HtmlGenerator::generateClassLikeNode(InnerNode* inner, CodeMarker* marker)
subtitleText << "(" << Atom(Atom::AutoLink, fullTitle) << ")" << Atom(Atom::LineBreak);
generateHeader(title, inner, marker);
+
sections = marker->sections(inner, CodeMarker::Summary, CodeMarker::Okay);
generateTableOfContents(inner,marker,&sections);
+ generateKeywordAnchors(inner);
generateTitle(title, subtitleText, SmallSubTitle, inner, marker);
generateBrief(inner, marker);
generateRequisites(inner, marker);
@@ -1346,6 +1540,7 @@ void HtmlGenerator::generateQmlTypePage(QmlClassNode* qcn, CodeMarker* marker)
QList<Section> sections = marker->qmlSections(qcn, CodeMarker::Summary);
generateTableOfContents(qcn, marker, &sections);
marker = CodeMarker::markerForLanguage(QLatin1String("QML"));
+ generateKeywordAnchors(qcn);
generateTitle(htmlTitle, Text() << qcn->subTitle(), subTitleSize, qcn, marker);
generateBrief(qcn, marker);
generateQmlRequisites(qcn, marker);
@@ -1417,6 +1612,7 @@ void HtmlGenerator::generateQmlBasicTypePage(QmlBasicTypeNode* qbtn, CodeMarker*
generateHeader(htmlTitle, qbtn, marker);
QList<Section> sections = marker->sections(qbtn, CodeMarker::Summary, CodeMarker::Okay);
generateTableOfContents(qbtn,marker,&sections);
+ generateKeywordAnchors(qbtn);
generateTitle(htmlTitle,
Text() << qbtn->subTitle(),
subTitleSize,
@@ -1462,6 +1658,7 @@ void HtmlGenerator::generateDocNode(DocNode* dn, CodeMarker* marker)
if ((dn->name() != QStringLiteral("index.html")))
generateTableOfContents(dn,marker,0);
+ generateKeywordAnchors(dn);
generateTitle(fullTitle,
Text() << dn->subTitle(),
subTitleSize,
@@ -1546,6 +1743,7 @@ void HtmlGenerator::generateCollectionNode(CollectionNode* cn, CodeMarker* marke
generateHeader(fullTitle, cn, marker);
generateTableOfContents(cn,marker,0);
+ generateKeywordAnchors(cn);
generateTitle(fullTitle, Text() << cn->subTitle(), subTitleSize, cn, marker);
if (cn->isModule()) {
@@ -1646,11 +1844,11 @@ void HtmlGenerator::generateNavigationBar(const QString &title,
return;
if (!homepage.isEmpty())
navigationbar << Atom(Atom::ListItemLeft)
- << Atom(Atom::AutoLink, homepage)
+ << Atom(Atom::NavAutoLink, homepage)
<< Atom(Atom::ListItemRight);
if (!landingpage.isEmpty() && landingpage != title)
navigationbar << Atom(Atom::ListItemLeft)
- << Atom(Atom::AutoLink, landingpage)
+ << Atom(Atom::NavAutoLink, landingpage)
<< Atom(Atom::ListItemRight);
if (node->isClass()) {
@@ -1659,7 +1857,7 @@ void HtmlGenerator::generateNavigationBar(const QString &title,
if (!cppclassespage.isEmpty())
navigationbar << Atom(Atom::ListItemLeft)
- << Atom(Atom::Link, cppclassespage)
+ << Atom(Atom::NavLink, cppclassespage)
<< Atom(Atom::FormattingLeft, ATOM_FORMATTING_LINK)
<< Atom(Atom::String, QLatin1String("C++ Classes"))
<< Atom(Atom::FormattingRight, ATOM_FORMATTING_LINK)
@@ -1673,7 +1871,7 @@ void HtmlGenerator::generateNavigationBar(const QString &title,
else if (node->isQmlType() || node->isQmlBasicType()) {
if (!qmltypespage.isEmpty())
navigationbar << Atom(Atom::ListItemLeft)
- << Atom(Atom::Link, qmltypespage)
+ << Atom(Atom::NavLink, qmltypespage)
<< Atom(Atom::FormattingLeft, ATOM_FORMATTING_LINK)
<< Atom(Atom::String, QLatin1String("QML Types"))
<< Atom(Atom::FormattingRight, ATOM_FORMATTING_LINK)
@@ -1685,7 +1883,7 @@ void HtmlGenerator::generateNavigationBar(const QString &title,
else {
if (node->isExampleFile()) {
navigationbar << Atom(Atom::ListItemLeft)
- << Atom(Atom::Link, node->parent()->name())
+ << Atom(Atom::NavLink, node->parent()->name())
<< Atom(Atom::FormattingLeft, ATOM_FORMATTING_LINK)
<< Atom(Atom::String, node->parent()->title())
<< Atom(Atom::FormattingRight, ATOM_FORMATTING_LINK)
@@ -2329,7 +2527,7 @@ QString HtmlGenerator::generateListOfAllMemberFile(const InnerNode *inner,
out() << ", including inherited members.</p>\n";
Section section = sections.first();
- generateSectionList(section, 0, marker, CodeMarker::Subpage);
+ generateSectionList(section, inner, marker, CodeMarker::Subpage);
generateFooter();
endSubPage();
@@ -2386,7 +2584,7 @@ QString HtmlGenerator::generateAllQmlMembersFile(QmlClassNode* qml_cn, CodeMarke
prefix = keys.at(j).mid(1);
prefix = prefix.left(keys.at(j).indexOf("::")+1);
}
- generateQmlItem(nodes[j], qcn, marker, true);
+ generateQmlItem(nodes[j], qml_cn, marker, true);
if (nodes[j]->isAttached())
out() << " [attached]";
//generateSynopsis(nodes[j], qcn, marker, CodeMarker::Subpage, false, &prefix);
@@ -2815,8 +3013,9 @@ void HtmlGenerator::generateCompactList(ListType listType,
else if (listType == Obsolete) {
QString fileName = fileBase(it.value()) + "-obsolete." + fileExtension();
QString link;
- if (useOutputSubdirs())
+ if (useOutputSubdirs()) {
link = QString("../" + it.value()->outputSubdirectory() + QLatin1Char('/'));
+ }
link += fileName;
out() << "<a href=\"" << link << "\">";
}
@@ -2856,7 +3055,7 @@ void HtmlGenerator::generateFunctionIndex(const Node *relative)
char currentLetter;
out() << "<ul>\n";
- NodeMapMap funcIndex = qdb_->getFunctionIndex();
+ NodeMapMap& funcIndex = qdb_->getFunctionIndex();
QMap<QString, NodeMap >::ConstIterator f = funcIndex.constBegin();
while (f != funcIndex.constEnd()) {
out() << "<li>";
@@ -3675,34 +3874,7 @@ QString HtmlGenerator::getLink(const Atom *atom, const Node *relative, const Nod
if (t.startsWith("mailto:"))
return t;
}
-
- QString ref;
-
- *node = qdb_->findNodeForAtom(atom, relative, ref);
- if (!(*node))
- return QString();
-
- QString url = (*node)->url();
- if (!url.isEmpty()) {
- if (ref.isEmpty())
- return url;
- int hashtag = url.lastIndexOf(QChar('#'));
- if (hashtag != -1)
- url.truncate(hashtag);
- return url + "#" + ref;
- }
- /*
- Given that *node is not null, we now cconstruct a link
- to the page that *node represents, and then if we found
- a target on that page, we connect the target to the link
- with '#'.
- */
- QString link = linkForNode(*node, relative);
- if (*node && (*node)->subType() == Node::Image)
- link = "images/used-in-examples/" + link;
- if (!ref.isEmpty())
- link += QLatin1Char('#') + ref;
- return link;
+ return getAutoLink(atom, relative, node);
}
/*!
@@ -3720,29 +3892,28 @@ QString HtmlGenerator::getLink(const Atom *atom, const Node *relative, const Nod
QString HtmlGenerator::getAutoLink(const Atom *atom, const Node *relative, const Node** node)
{
QString ref;
- QString link;
*node = qdb_->findNodeForAtom(atom, relative, ref);
if (!(*node))
return QString();
- QString url = (*node)->url();
- if (!url.isEmpty()) {
- if (ref.isEmpty())
- return url;
- int hashtag = url.lastIndexOf(QChar('#'));
+ QString link = (*node)->url();
+ if (link.isEmpty()) {
+ link = linkForNode(*node, relative);
+ if ((*node)->subType() == Node::Image)
+ link = "images/used-in-examples/" + link;
+ if (!ref.isEmpty())
+ link += QLatin1Char('#') + ref;
+ }
+ else if (!ref.isEmpty()) {
+ int hashtag = link.lastIndexOf(QChar('#'));
if (hashtag != -1)
- url.truncate(hashtag);
- return url + "#" + ref;
+ link.truncate(hashtag);
+ link += "#" + ref;
}
-
- link = linkForNode(*node, relative);
- if (!ref.isEmpty())
- link += QLatin1Char('#') + ref;
return link;
}
-
/*!
Construct the link string for the \a node and return it.
The \a relative node is use to decide the link we are
@@ -3797,7 +3968,12 @@ QString HtmlGenerator::linkForNode(const Node *node, const Node *relative)
if (node && relative && (node != relative)) {
if (useOutputSubdirs() && !node->isExternalPage() &&
node->outputSubdirectory() != relative->outputSubdirectory()) {
- link.prepend(QString("../" + node->outputSubdirectory() + QLatin1Char('/')));
+ if (link.startsWith(QString(node->outputSubdirectory() + QLatin1Char('/')))) {
+ link.prepend(QString("../"));
+ }
+ else {
+ link.prepend(QString("../" + node->outputSubdirectory() + QLatin1Char('/')));
+ }
}
}
return link;
@@ -3835,6 +4011,7 @@ void HtmlGenerator::generateDetailedMember(const Node *node,
generateMacRef(node, marker);
#endif
generateExtractionMark(node, MemberMark);
+ generateKeywordAnchors(node);
QString nodeRef = refForNode(node);
if (node->type() == Node::Enum
&& (enume = static_cast<const EnumNode *>(node))->flagsType()) {
@@ -4071,6 +4248,7 @@ void HtmlGenerator::generateDetailedQmlMember(Node *node,
generateMacRef(node, marker);
#endif
generateExtractionMark(node, MemberMark);
+ generateKeywordAnchors(node);
out() << "<div class=\"qmlitem\">";
QString nodeRef = refForNode(node);
if (node->type() == Node::QmlPropertyGroup) {
@@ -4524,6 +4702,9 @@ void HtmlGenerator::generateManifestFile(QString manifest, QString element)
Reads metacontent - additional attributes and tags to apply
when generating manifest files, read from config. Takes the
configuration class \a config as a parameter.
+
+ The manifest metacontent map is cleared immediately after
+ the manifest files have been generated.
*/
void HtmlGenerator::readManifestMetaContent(const Config &config)
{
diff --git a/src/tools/qdoc/htmlgenerator.h b/src/tools/qdoc/htmlgenerator.h
index 40360da02e..4d93822db1 100644
--- a/src/tools/qdoc/htmlgenerator.h
+++ b/src/tools/qdoc/htmlgenerator.h
@@ -77,10 +77,10 @@ public:
HtmlGenerator();
~HtmlGenerator();
- virtual void initializeGenerator(const Config& config);
- virtual void terminateGenerator();
- virtual QString format();
- virtual void generateDocs();
+ virtual void initializeGenerator(const Config& config) Q_DECL_OVERRIDE;
+ virtual void terminateGenerator() Q_DECL_OVERRIDE;
+ virtual QString format() Q_DECL_OVERRIDE;
+ virtual void generateDocs() Q_DECL_OVERRIDE;
void generateManifestFiles();
QString protectEnc(const QString &string);
@@ -89,20 +89,24 @@ public:
static QString sinceTitle(int i) { return sinceTitles[i]; }
protected:
+ virtual void generateQAPage() Q_DECL_OVERRIDE;
+ QString generateLinksToLinksPage(const QString& module, CodeMarker* marker);
+ QString generateLinksToBrokenLinksPage(CodeMarker* marker, int& count);
virtual int generateAtom(const Atom *atom,
const Node *relative,
- CodeMarker *marker);
- virtual void generateClassLikeNode(InnerNode* inner, CodeMarker* marker);
- virtual void generateQmlTypePage(QmlClassNode* qcn, CodeMarker* marker);
- virtual void generateQmlBasicTypePage(QmlBasicTypeNode* qbtn, CodeMarker* marker);
- virtual void generateDocNode(DocNode* dn, CodeMarker* marker);
- virtual void generateCollectionNode(CollectionNode* cn, CodeMarker* marker);
- virtual QString fileExtension() const;
+ CodeMarker *marker) Q_DECL_OVERRIDE;
+ virtual void generateClassLikeNode(InnerNode* inner, CodeMarker* marker) Q_DECL_OVERRIDE;
+ virtual void generateQmlTypePage(QmlClassNode* qcn, CodeMarker* marker) Q_DECL_OVERRIDE;
+ virtual void generateQmlBasicTypePage(QmlBasicTypeNode* qbtn, CodeMarker* marker) Q_DECL_OVERRIDE;
+ virtual void generateDocNode(DocNode* dn, CodeMarker* marker) Q_DECL_OVERRIDE;
+ virtual void generateCollectionNode(CollectionNode* cn, CodeMarker* marker) Q_DECL_OVERRIDE;
+ virtual QString fileExtension() const Q_DECL_OVERRIDE;
virtual QString refForNode(const Node *node);
virtual QString linkForNode(const Node *node, const Node *relative);
void generateManifestFile(QString manifest, QString element);
void readManifestMetaContent(const Config &config);
+ void generateKeywordAnchors(const Node* node);
private:
enum SubTitleSize { SmallSubTitle, LargeSubTitle };
@@ -179,7 +183,7 @@ private:
void generateDetailedQmlMember(Node *node,
const InnerNode *relative,
CodeMarker *marker);
- void generateQmlInherits(QmlClassNode* qcn, CodeMarker* marker);
+ void generateQmlInherits(QmlClassNode* qcn, CodeMarker* marker) Q_DECL_OVERRIDE;
void generateQmlInstantiates(QmlClassNode* qcn, CodeMarker* marker);
void generateInstantiatedBy(ClassNode* cn, CodeMarker* marker);
@@ -210,7 +214,7 @@ private:
QString getAutoLink(const Atom *atom, const Node *relative, const Node** node);
QString registerRef(const QString& ref);
- virtual QString fileBase(const Node *node) const;
+ virtual QString fileBase(const Node *node) const Q_DECL_OVERRIDE;
QString fileName(const Node *node);
static int hOffset(const Node *node);
static bool isThreeColumnEnumValueTable(const Atom *atom);
diff --git a/src/tools/qdoc/jscodemarker.h b/src/tools/qdoc/jscodemarker.h
index 52fe8855af..70bf38d67d 100644
--- a/src/tools/qdoc/jscodemarker.h
+++ b/src/tools/qdoc/jscodemarker.h
@@ -50,14 +50,14 @@ public:
JsCodeMarker();
~JsCodeMarker();
- virtual bool recognizeCode(const QString &code);
- virtual bool recognizeExtension(const QString &ext);
- virtual bool recognizeLanguage(const QString &language);
- virtual Atom::Type atomType() const;
+ virtual bool recognizeCode(const QString &code) Q_DECL_OVERRIDE;
+ virtual bool recognizeExtension(const QString &ext) Q_DECL_OVERRIDE;
+ virtual bool recognizeLanguage(const QString &language) Q_DECL_OVERRIDE;
+ virtual Atom::Type atomType() const Q_DECL_OVERRIDE;
virtual QString markedUpCode(const QString &code,
const Node *relative,
- const Location &location);
+ const Location &location) Q_DECL_OVERRIDE;
private:
QString addMarkUp(const QString &code, const Node *relative,
diff --git a/src/tools/qdoc/location.cpp b/src/tools/qdoc/location.cpp
index 040dd0cd88..923901fc34 100644
--- a/src/tools/qdoc/location.cpp
+++ b/src/tools/qdoc/location.cpp
@@ -256,7 +256,7 @@ QString Location::canonicalRelativePath(const QString &path)
*/
void Location::warning(const QString& message, const QString& details) const
{
- if (!Generator::runPrepareOnly())
+ if (!Generator::preparing())
emitMessage(Warning, message, details);
}
@@ -267,7 +267,7 @@ void Location::warning(const QString& message, const QString& details) const
*/
void Location::error(const QString& message, const QString& details) const
{
- if (!Generator::runPrepareOnly())
+ if (!Generator::preparing())
emitMessage(Error, message, details);
}
@@ -286,6 +286,15 @@ void Location::fatal(const QString& message, const QString& details) const
}
/*!
+ Writes \a message and \a detals to stderr as a formatted
+ report message.
+ */
+void Location::report(const QString& message, const QString& details) const
+{
+ emitMessage(Report, message, details);
+}
+
+/*!
Gets several parameters from the \a config, including
tab size, program name, and a regular expression that
appears to be used for matching certain error messages
@@ -371,7 +380,8 @@ void Location::emitMessage(MessageType type,
result.prepend(tr(": error: "));
else if (type == Warning)
result.prepend(tr(": warning: "));
- result.prepend(toString());
+ if (type != Report)
+ result.prepend(toString());
fprintf(stderr, "%s\n", result.toLatin1().data());
fflush(stderr);
}
diff --git a/src/tools/qdoc/location.h b/src/tools/qdoc/location.h
index eb4dbbae98..b6589fd6ab 100644
--- a/src/tools/qdoc/location.h
+++ b/src/tools/qdoc/location.h
@@ -81,6 +81,8 @@ public:
const QString& details = QString()) const;
void fatal(const QString& message,
const QString& details = QString()) const;
+ void report(const QString& message,
+ const QString& details = QString()) const;
static const Location null;
@@ -94,7 +96,7 @@ public:
static QString canonicalRelativePath(const QString &path);
private:
- enum MessageType { Warning, Error };
+ enum MessageType { Warning, Error, Report };
struct StackEntry
{
diff --git a/src/tools/qdoc/main.cpp b/src/tools/qdoc/main.cpp
index 118c206f16..186fd3195b 100644
--- a/src/tools/qdoc/main.cpp
+++ b/src/tools/qdoc/main.cpp
@@ -63,7 +63,6 @@
QT_BEGIN_NAMESPACE
-
bool creationTimeBefore(const QFileInfo &fi1, const QFileInfo &fi2)
{
return fi1.lastModified() < fi2.lastModified();
@@ -71,6 +70,8 @@ bool creationTimeBefore(const QFileInfo &fi1, const QFileInfo &fi2)
static bool highlighting = false;
static bool showInternal = false;
+static bool singleExec = false;
+static bool writeQaPages = false;
static bool redirectDocumentationToDevNull = false;
static bool noLinkErrors = false;
static bool autolinkErrors = false;
@@ -80,14 +81,22 @@ static QStringList dependModules;
static QStringList indexDirs;
static QString currentDir;
static QString prevCurrentDir;
+static QHash<QString,QString> defaults;
+#ifndef QT_NO_TRANSLATION
+typedef QPair<QString, QTranslator*> Translator;
+static QList<Translator> translators;
+#endif
-
+/*!
+ Read some XML indexes containing definitions from other
+ documentation sets. \a config contains a variable that
+ lists directories where index files can bge found. It also
+ contains the \c depends variable, which lists the modules
+ that the current module depends on.
+*/
static void loadIndexFiles(Config& config)
{
QDocDatabase* qdb = QDocDatabase::qdocDB();
- /*
- Read some XML indexes containing definitions from other documentation sets.
- */
QStringList indexFiles;
QStringList configIndexes = config.getStringList(CONFIG_INDEXES);
foreach (const QString &index, configIndexes) {
@@ -194,35 +203,17 @@ static void loadIndexFiles(Config& config)
*/
static void processQdocconfFile(const QString &fileName)
{
-#ifndef QT_NO_TRANSLATION
- QList<QTranslator *> translators;
-#endif
-
/*
The Config instance represents the configuration data for qdoc.
- All the other classes are initialized with the config. Here we
+ All the other classes are initialized with the config. Below, we
initialize the configuration with some default values.
- */
- Config config(QCoreApplication::translate("QDoc", "qdoc"));
- /*
- The default indent for code is 4.
- The default value for false is 0.
- The default supported file extensions are cpp, h, qdoc and qml.
- The default language is c++.
- The default output format is html.
- The default tab size is 8.
- And those are all the default values for configuration variables.
+ I don't think the call to translate() does anything here. For one
+ thing, the translators haven't been installed at this point. And
+ I doubt any translator would translate QDoc anyway. But I left it
+ here because it does no harm.
*/
- static QHash<QString,QString> defaults;
- if (defaults.isEmpty()) {
- defaults.insert(CONFIG_CODEINDENT, QLatin1String("4"));
- defaults.insert(CONFIG_FALSEHOODS, QLatin1String("0"));
- defaults.insert(CONFIG_FILEEXTENSIONS, QLatin1String("*.cpp *.h *.qdoc *.qml"));
- defaults.insert(CONFIG_LANGUAGE, QLatin1String("Cpp"));
- defaults.insert(CONFIG_OUTPUTFORMATS, QLatin1String("HTML"));
- defaults.insert(CONFIG_TABSIZE, QLatin1String("8"));
- }
+ Config config(QCoreApplication::translate("QDoc", "qdoc"));
QHash<QString,QString>::iterator iter;
for (iter = defaults.begin(); iter != defaults.end(); ++iter)
@@ -230,6 +221,8 @@ static void processQdocconfFile(const QString &fileName)
config.setStringList(CONFIG_SYNTAXHIGHLIGHTING, QStringList(highlighting ? "true" : "false"));
config.setStringList(CONFIG_SHOWINTERNAL, QStringList(showInternal ? "true" : "false"));
+ config.setStringList(CONFIG_SINGLEEXEC, QStringList(singleExec ? "true" : "false"));
+ config.setStringList(CONFIG_WRITEQAPAGES, QStringList(writeQaPages ? "true" : "false"));
config.setStringList(CONFIG_REDIRECTDOCUMENTATIONTODEVNULL, QStringList(redirectDocumentationToDevNull ? "true" : "false"));
config.setStringList(CONFIG_NOLINKERRORS, QStringList(noLinkErrors ? "true" : "false"));
config.setStringList(CONFIG_AUTOLINKERRORS, QStringList(autolinkErrors ? "true" : "false"));
@@ -247,8 +240,8 @@ static void processQdocconfFile(const QString &fileName)
currentDir = QFileInfo(fileName).path();
Location::initialize(config);
config.load(fileName);
- QString project = config.getString(CONFIG_PROJECT).toLower();
- //qDebug() << "\nStart project:" << project;
+ QString project = config.getString(CONFIG_PROJECT);
+ //qDebug() << "Start project:" << project;
/*
Add the defines to the configuration variables.
*/
@@ -261,17 +254,24 @@ static void processQdocconfFile(const QString &fileName)
if (!currentDir.isEmpty())
QDir::setCurrent(currentDir);
- QString phase;
- if (Generator::runPrepareOnly())
- phase = " in -prepare mode ";
- else if (Generator::runGenerateOnly())
- phase = " in -generate mode ";
+ QString phase = " in -";
+ if (Generator::singleExec())
+ phase += "single exec mode, ";
+ else
+ phase += "separate exec mode, ";
+ if (Generator::preparing())
+ phase += "prepare phase ";
+ else if (Generator::generating())
+ phase += "generate phase ";
QString msg = "Running qdoc for " + config.getString(CONFIG_PROJECT) + phase;
Location::logToStdErr(msg);
/*
Initialize all the classes and data structures with the
- qdoc configuration.
+ qdoc configuration. This is safe to do for each qdocconf
+ file processed, because all the data structures created
+ are either cleared after they have been used, or they
+ are cleared in the terminate() functions below.
*/
Location::initialize(config);
Tokenizer::initialize(config);
@@ -282,16 +282,32 @@ static void processQdocconfFile(const QString &fileName)
#ifndef QT_NO_TRANSLATION
/*
- Load the language translators, if the configuration specifies any.
+ Load the language translators, if the configuration specifies any,
+ but only if they haven't already been loaded. This works in both
+ -prepare/-generate mode and -singleexec mode.
*/
QStringList fileNames = config.getStringList(CONFIG_TRANSLATORS);
QStringList::ConstIterator fn = fileNames.constBegin();
while (fn != fileNames.constEnd()) {
- QTranslator *translator = new QTranslator(0);
- if (!translator->load(*fn))
- config.lastLocation().error(QCoreApplication::translate("QDoc", "Cannot load translator '%1'").arg(*fn));
- QCoreApplication::instance()->installTranslator(translator);
- translators.append(translator);
+ bool found = false;
+ if (!translators.isEmpty()) {
+ for (int i=0; i<translators.size(); ++i) {
+ if (translators.at(i).first == *fn) {
+ found = true;
+ break;
+ }
+ }
+ }
+ if (!found) {
+ QTranslator *translator = new QTranslator(0);
+ if (!translator->load(*fn)) {
+ config.lastLocation().error(QCoreApplication::translate("QDoc", "Cannot load translator '%1'").arg(*fn));
+ }
+ else {
+ QCoreApplication::instance()->installTranslator(translator);
+ translators.append(Translator(*fn, translator));
+ }
+ }
++fn;
}
#endif
@@ -311,175 +327,228 @@ static void processQdocconfFile(const QString &fileName)
will be stored. The database includes a tree of nodes, which gets
built as the source files are parsed. The documentation output is
generated by traversing that tree.
+
+ Note: qdocDB() allocates a new instance only if no instance exists.
+ So it is safe to call qdocDB() any time.
*/
QDocDatabase* qdb = QDocDatabase::qdocDB();
qdb->setVersion(config.getString(CONFIG_VERSION));
qdb->setShowInternal(config.getBool(CONFIG_SHOWINTERNAL));
+ qdb->setSingleExec(config.getBool(CONFIG_SINGLEEXEC));
/*
By default, the only output format is HTML.
*/
QSet<QString> outputFormats = config.getOutputFormats();
Location outputFormatsLocation = config.lastLocation();
- //if (!Generator::runPrepareOnly())
- Generator::debug(" loading index files");
- loadIndexFiles(config);
- qdb->newPrimaryTree(config.getString(CONFIG_PROJECT));
- qdb->setSearchOrder();
- Generator::debug(" done loading index files");
+ qdb->clearSearchOrder();
+ QString p = config.getString(CONFIG_PROJECT).toLower();
+ if (!Generator::singleExec()) {
+ Generator::debug(" loading index files");
+ loadIndexFiles(config);
+ Generator::debug(" done loading index files");
+ qdb->newPrimaryTree(p);
+ }
+ else if (Generator::preparing())
+ qdb->newPrimaryTree(p);
+ else
+ qdb->setPrimaryTree(p);
+
+ dependModules = config.getStringList(CONFIG_DEPENDS);
+ dependModules.removeDuplicates();
+ qdb->setSearchOrder(dependModules);
QSet<QString> excludedDirs;
QSet<QString> excludedFiles;
- QStringList headerList;
- QStringList sourceList;
QStringList excludedDirsList;
QStringList excludedFilesList;
- Generator::debug("Reading excludedirs");
- excludedDirsList = config.getCanonicalPathList(CONFIG_EXCLUDEDIRS);
- foreach (const QString &excludeDir, excludedDirsList) {
- QString p = QDir::fromNativeSeparators(excludeDir);
- QDir tmp(p);
- if (tmp.exists())
- excludedDirs.insert(p);
- }
+ if (!Generator::singleExec() || !Generator::generating()) {
+ QStringList headerList;
+ QStringList sourceList;
+
+ Generator::debug("Reading excludedirs");
+ excludedDirsList = config.getCanonicalPathList(CONFIG_EXCLUDEDIRS);
+ foreach (const QString &excludeDir, excludedDirsList) {
+ QString p = QDir::fromNativeSeparators(excludeDir);
+ QDir tmp(p);
+ if (tmp.exists())
+ excludedDirs.insert(p);
+ }
- Generator::debug("Reading excludefiles");
- excludedFilesList = config.getCanonicalPathList(CONFIG_EXCLUDEFILES);
- foreach (const QString& excludeFile, excludedFilesList) {
- QString p = QDir::fromNativeSeparators(excludeFile);
- excludedFiles.insert(p);
- }
+ Generator::debug("Reading excludefiles");
+ excludedFilesList = config.getCanonicalPathList(CONFIG_EXCLUDEFILES);
+ foreach (const QString& excludeFile, excludedFilesList) {
+ QString p = QDir::fromNativeSeparators(excludeFile);
+ excludedFiles.insert(p);
+ }
- Generator::debug("Reading headerdirs");
- headerList = config.getAllFiles(CONFIG_HEADERS,CONFIG_HEADERDIRS,excludedDirs,excludedFiles);
- QMap<QString,QString> headers;
- QMultiMap<QString,QString> headerFileNames;
- for (int i=0; i<headerList.size(); ++i) {
- if (headerList[i].contains(QString("doc/snippets")))
- continue;
- if (headers.contains(headerList[i]))
- continue;
- headers.insert(headerList[i],headerList[i]);
- QString t = headerList[i].mid(headerList[i].lastIndexOf('/')+1);
- headerFileNames.insert(t,t);
- }
+ Generator::debug("Reading headerdirs");
+ headerList = config.getAllFiles(CONFIG_HEADERS,CONFIG_HEADERDIRS,excludedDirs,excludedFiles);
+ QMap<QString,QString> headers;
+ QMultiMap<QString,QString> headerFileNames;
+ for (int i=0; i<headerList.size(); ++i) {
+ if (headerList[i].contains(QString("doc/snippets")))
+ continue;
+ if (headers.contains(headerList[i]))
+ continue;
+ headers.insert(headerList[i],headerList[i]);
+ QString t = headerList[i].mid(headerList[i].lastIndexOf('/')+1);
+ headerFileNames.insert(t,t);
+ }
- Generator::debug("Reading sourcedirs");
- sourceList = config.getAllFiles(CONFIG_SOURCES,CONFIG_SOURCEDIRS,excludedDirs,excludedFiles);
- QMap<QString,QString> sources;
- QMultiMap<QString,QString> sourceFileNames;
- for (int i=0; i<sourceList.size(); ++i) {
- if (sourceList[i].contains(QString("doc/snippets")))
- continue;
- if (sources.contains(sourceList[i]))
- continue;
- sources.insert(sourceList[i],sourceList[i]);
- QString t = sourceList[i].mid(sourceList[i].lastIndexOf('/')+1);
- sourceFileNames.insert(t,t);
- }
- /*
- Find all the qdoc files in the example dirs, and add
- them to the source files to be parsed.
- */
- Generator::debug("Reading exampledirs");
- QStringList exampleQdocList = config.getExampleQdocFiles(excludedDirs, excludedFiles);
- for (int i=0; i<exampleQdocList.size(); ++i) {
- if (!sources.contains(exampleQdocList[i])) {
- sources.insert(exampleQdocList[i],exampleQdocList[i]);
- QString t = exampleQdocList[i].mid(exampleQdocList[i].lastIndexOf('/')+1);
+ Generator::debug("Reading sourcedirs");
+ sourceList = config.getAllFiles(CONFIG_SOURCES,CONFIG_SOURCEDIRS,excludedDirs,excludedFiles);
+ QMap<QString,QString> sources;
+ QMultiMap<QString,QString> sourceFileNames;
+ for (int i=0; i<sourceList.size(); ++i) {
+ if (sourceList[i].contains(QString("doc/snippets")))
+ continue;
+ if (sources.contains(sourceList[i]))
+ continue;
+ sources.insert(sourceList[i],sourceList[i]);
+ QString t = sourceList[i].mid(sourceList[i].lastIndexOf('/')+1);
sourceFileNames.insert(t,t);
}
- }
+ /*
+ Find all the qdoc files in the example dirs, and add
+ them to the source files to be parsed.
+ */
+ Generator::debug("Reading exampledirs");
+ QStringList exampleQdocList = config.getExampleQdocFiles(excludedDirs, excludedFiles);
+ for (int i=0; i<exampleQdocList.size(); ++i) {
+ if (!sources.contains(exampleQdocList[i])) {
+ sources.insert(exampleQdocList[i],exampleQdocList[i]);
+ QString t = exampleQdocList[i].mid(exampleQdocList[i].lastIndexOf('/')+1);
+ sourceFileNames.insert(t,t);
+ }
+ }
- Generator::debug("Adding doc/image dirs found in exampledirs to imagedirs");
- QSet<QString> exampleImageDirs;
- QStringList exampleImageList = config.getExampleImageFiles(excludedDirs, excludedFiles);
- for (int i=0; i<exampleImageList.size(); ++i) {
- if (exampleImageList[i].contains("doc/images")) {
- QString t = exampleImageList[i].left(exampleImageList[i].lastIndexOf("doc/images")+10);
- if (!exampleImageDirs.contains(t)) {
- exampleImageDirs.insert(t);
+ Generator::debug("Adding doc/image dirs found in exampledirs to imagedirs");
+ QSet<QString> exampleImageDirs;
+ QStringList exampleImageList = config.getExampleImageFiles(excludedDirs, excludedFiles);
+ for (int i=0; i<exampleImageList.size(); ++i) {
+ if (exampleImageList[i].contains("doc/images")) {
+ QString t = exampleImageList[i].left(exampleImageList[i].lastIndexOf("doc/images")+10);
+ if (!exampleImageDirs.contains(t)) {
+ exampleImageDirs.insert(t);
+ }
}
}
- }
- Generator::augmentImageDirs(exampleImageDirs);
+ Generator::augmentImageDirs(exampleImageDirs);
+
+ /*
+ Parse each header file in the set using the appropriate parser and add it
+ to the big tree.
+ */
+ QSet<CodeParser *> usedParsers;
+
+ Generator::debug("Parsing header files");
+ int parsed = 0;
+ QMap<QString,QString>::ConstIterator h = headers.constBegin();
+ while (h != headers.constEnd()) {
+ CodeParser *codeParser = CodeParser::parserForHeaderFile(h.key());
+ if (codeParser) {
+ ++parsed;
+ Generator::debug(QString("Parsing " + h.key()));
+ codeParser->parseHeaderFile(config.location(), h.key());
+ usedParsers.insert(codeParser);
+ }
+ ++h;
+ }
- /*
- Parse each header file in the set using the appropriate parser and add it
- to the big tree.
- */
- QSet<CodeParser *> usedParsers;
-
- Generator::debug("Parsing header files");
- int parsed = 0;
- QMap<QString,QString>::ConstIterator h = headers.constBegin();
- while (h != headers.constEnd()) {
- CodeParser *codeParser = CodeParser::parserForHeaderFile(h.key());
- if (codeParser) {
- ++parsed;
- Generator::debug(QString("Parsing " + h.key()));
- codeParser->parseHeaderFile(config.location(), h.key());
- usedParsers.insert(codeParser);
+ foreach (CodeParser *codeParser, usedParsers)
+ codeParser->doneParsingHeaderFiles();
+
+ usedParsers.clear();
+ qdb->resolveInheritance();
+
+ /*
+ Parse each source text file in the set using the appropriate parser and
+ add it to the big tree.
+ */
+ parsed = 0;
+ Generator::debug("Parsing source files");
+ QMap<QString,QString>::ConstIterator s = sources.constBegin();
+ while (s != sources.constEnd()) {
+ CodeParser *codeParser = CodeParser::parserForSourceFile(s.key());
+ if (codeParser) {
+ ++parsed;
+ Generator::debug(QString("Parsing " + s.key()));
+ codeParser->parseSourceFile(config.location(), s.key());
+ usedParsers.insert(codeParser);
+ }
+ ++s;
}
- ++h;
+ Generator::debug(QString("Parsing done."));
+
+ foreach (CodeParser *codeParser, usedParsers)
+ codeParser->doneParsingSourceFiles();
+
+ /*
+ Now the primary tree has been built from all the header and
+ source files. Resolve all the class names, function names,
+ targets, URLs, links, and other stuff that needs resolving.
+ */
+ Generator::debug("Resolving stuff prior to generating docs");
+ qdb->resolveIssues();
}
+ else {
+ Generator::debug("Reading excludedirs");
+ excludedDirsList = config.getCanonicalPathList(CONFIG_EXCLUDEDIRS);
+ foreach (const QString &excludeDir, excludedDirsList) {
+ QString p = QDir::fromNativeSeparators(excludeDir);
+ QDir tmp(p);
+ if (tmp.exists())
+ excludedDirs.insert(p);
+ }
- foreach (CodeParser *codeParser, usedParsers)
- codeParser->doneParsingHeaderFiles();
-
- usedParsers.clear();
- qdb->resolveInheritance();
+ Generator::debug("Reading excludefiles");
+ excludedFilesList = config.getCanonicalPathList(CONFIG_EXCLUDEFILES);
+ foreach (const QString& excludeFile, excludedFilesList) {
+ QString p = QDir::fromNativeSeparators(excludeFile);
+ excludedFiles.insert(p);
+ }
- /*
- Parse each source text file in the set using the appropriate parser and
- add it to the big tree.
- */
- parsed = 0;
- Generator::debug("Parsing source files");
- QMap<QString,QString>::ConstIterator s = sources.constBegin();
- while (s != sources.constEnd()) {
- CodeParser *codeParser = CodeParser::parserForSourceFile(s.key());
- if (codeParser) {
- ++parsed;
- Generator::debug(QString("Parsing " + s.key()));
- codeParser->parseSourceFile(config.location(), s.key());
- usedParsers.insert(codeParser);
+ Generator::debug("Adding doc/image dirs found in exampledirs to imagedirs");
+ QSet<QString> exampleImageDirs;
+ QStringList exampleImageList = config.getExampleImageFiles(excludedDirs, excludedFiles);
+ for (int i=0; i<exampleImageList.size(); ++i) {
+ if (exampleImageList[i].contains("doc/images")) {
+ QString t = exampleImageList[i].left(exampleImageList[i].lastIndexOf("doc/images")+10);
+ if (!exampleImageDirs.contains(t)) {
+ exampleImageDirs.insert(t);
+ }
+ }
}
- ++s;
+ Generator::augmentImageDirs(exampleImageDirs);
+ qdb->resolveStuff();
}
- Generator::debug(QString("Parsing done."));
-
- foreach (CodeParser *codeParser, usedParsers)
- codeParser->doneParsingSourceFiles();
/*
- Now the big tree has been built from all the header and
- source files. Resolve all the class names, function names,
- targets, URLs, links, and other stuff that needs resolving.
- */
- Generator::debug("Resolving stuff prior to generating docs");
- qdb->resolveIssues();
-
- /*
- The tree is built and all the stuff that needed resolving
- has been resolved. Now traverse the tree and generate the
- documentation output. More than one output format can be
- requested. The tree is traversed for each one.
+ The primary tree is built and all the stuff that needed
+ resolving has been resolved. Now traverse the tree and
+ generate the documentation output. More than one output
+ format can be requested. The tree is traversed for each
+ one.
*/
Generator::debug("Generating docs");
QSet<QString>::ConstIterator of = outputFormats.constBegin();
while (of != outputFormats.constEnd()) {
Generator* generator = Generator::generatorForFormat(*of);
if (generator == 0)
- outputFormatsLocation.fatal(QCoreApplication::translate("QDoc", "Unknown output format '%1'").arg(*of));
+ outputFormatsLocation.fatal(QCoreApplication::translate("QDoc",
+ "Unknown output format '%1'").arg(*of));
generator->generateDocs();
++of;
}
+#if 0
+ if (Generator::generating() && Generator::writeQaPages())
+ qdb->printLinkCounts(project);
+#endif
+ qdb->clearLinkCounts();
-
- //Generator::writeOutFileNames();
- Generator::debug("Shutting down qdoc");
+ Generator::debug("Terminating qdoc classes");
if (Generator::debugging())
Generator::stopDebugging(project);
@@ -492,17 +561,7 @@ static void processQdocconfFile(const QString &fileName)
Location::terminate();
QDir::setCurrent(prevCurrentDir);
-#ifndef QT_NO_TRANSLATION
- qDeleteAll(translators);
-#endif
-#ifdef DEBUG_SHUTDOWN_CRASH
- qDebug() << "main(): Delete qdoc database";
-#endif
- QDocDatabase::destroyQdocDB();
-#ifdef DEBUG_SHUTDOWN_CRASH
- qDebug() << "main(): qdoc database deleted";
-#endif
- Generator::debug("qdoc finished!");
+ Generator::debug("qdoc classes terminated");
}
extern Q_CORE_EXPORT QBasicAtomicInt qt_qhash_seed;
@@ -621,12 +680,22 @@ int main(int argc, char **argv)
logProgressOption.setDescription(QCoreApplication::translate("qdoc", "Log progress on stderr."));
parser.addOption(logProgressOption);
+ QCommandLineOption singleExecOption(QStringList() << QStringLiteral("single-exec"));
+ singleExecOption.setDescription(QCoreApplication::translate("qdoc", "Run qdoc once over all the qdoc conf files."));
+ parser.addOption(singleExecOption);
+
+ QCommandLineOption writeQaPagesOption(QStringList() << QStringLiteral("write-qa-pages"));
+ writeQaPagesOption.setDescription(QCoreApplication::translate("qdoc", "Write QA pages."));
+ parser.addOption(writeQaPagesOption);
+
parser.process(app);
defines += parser.values(defineOption);
dependModules += parser.values(dependsOption);
highlighting = parser.isSet(highlightingOption);
showInternal = parser.isSet(showInternalOption);
+ singleExec = parser.isSet(singleExecOption);
+ writeQaPages = parser.isSet(writeQaPagesOption);
redirectDocumentationToDevNull = parser.isSet(redirectDocumentationToDevNullOption);
Config::generateExamples = !parser.isSet(noExamplesOption);
foreach (const QString &indexDir, parser.values(indexDirOption)) {
@@ -650,21 +719,73 @@ int main(int argc, char **argv)
Generator::setQDocPass(Generator::Prepare);
if (parser.isSet(generateOption))
Generator::setQDocPass(Generator::Generate);
+ if (parser.isSet(singleExecOption))
+ Generator::setSingleExec();
+ if (parser.isSet(writeQaPagesOption))
+ Generator::setWriteQaPages();
if (parser.isSet(logProgressOption))
Location::startLoggingProgress();
- const QStringList qdocFiles = parser.positionalArguments();
+ /*
+ The default indent for code is 4.
+ The default value for false is 0.
+ The default supported file extensions are cpp, h, qdoc and qml.
+ The default language is c++.
+ The default output format is html.
+ The default tab size is 8.
+ And those are all the default values for configuration variables.
+ */
+ if (defaults.isEmpty()) {
+ defaults.insert(CONFIG_CODEINDENT, QLatin1String("4"));
+ defaults.insert(CONFIG_FALSEHOODS, QLatin1String("0"));
+ defaults.insert(CONFIG_FILEEXTENSIONS, QLatin1String("*.cpp *.h *.qdoc *.qml"));
+ defaults.insert(CONFIG_LANGUAGE, QLatin1String("Cpp"));
+ defaults.insert(CONFIG_OUTPUTFORMATS, QLatin1String("HTML"));
+ defaults.insert(CONFIG_TABSIZE, QLatin1String("8"));
+ }
+
+ QStringList qdocFiles = parser.positionalArguments();
if (qdocFiles.isEmpty())
parser.showHelp();
+ if (singleExec)
+ qdocFiles = Config::loadMaster(qdocFiles.at(0));
+
/*
- Main loop.
+ Main loop is now modified to handle single exec mode.
*/
+ if (Generator::singleExec())
+ Generator::setQDocPass(Generator::Prepare);
foreach (const QString &qf, qdocFiles) {
- //qDebug() << "PROCESSING:" << qf;
+ dependModules.clear();
processQdocconfFile(qf);
}
+ if (Generator::singleExec()) {
+ Generator::setQDocPass(Generator::Generate);
+ QDocDatabase* qdb = QDocDatabase::qdocDB();
+ qdb->processForest();
+ foreach (const QString &qf, qdocFiles) {
+ dependModules.clear();
+ processQdocconfFile(qf);
+ }
+ }
+
+#ifndef QT_NO_TRANSLATION
+ if (!translators.isEmpty()) {
+ for (int i=0; i<translators.size(); ++i) {
+ delete translators.at(i).second;
+ }
+ }
+ translators.clear();
+#endif
+
+#ifdef DEBUG_SHUTDOWN_CRASH
+ qDebug() << "main(): Delete qdoc database";
+#endif
+ QDocDatabase::destroyQdocDB();
+#ifdef DEBUG_SHUTDOWN_CRASH
+ qDebug() << "main(): qdoc database deleted";
+#endif
return EXIT_SUCCESS;
}
-
diff --git a/src/tools/qdoc/node.cpp b/src/tools/qdoc/node.cpp
index ce655efef6..f012aae87a 100644
--- a/src/tools/qdoc/node.cpp
+++ b/src/tools/qdoc/node.cpp
@@ -218,7 +218,7 @@ Node::Node(Type type, InnerNode *parent, const QString& name)
{
if (parent_)
parent_->addChild(this);
- outSubDir_ = CodeParser::currentOutputSubdirectory();
+ outSubDir_ = Generator::outputSubdir();
if (operators_.isEmpty()) {
operators_.insert("++","inc");
operators_.insert("--","dec");
diff --git a/src/tools/qdoc/node.h b/src/tools/qdoc/node.h
index e25bbd7a4a..811c9400de 100644
--- a/src/tools/qdoc/node.h
+++ b/src/tools/qdoc/node.h
@@ -359,7 +359,7 @@ public:
//Node* findChildNode(const QString& name, bool qml) const;
Node* findChildNode(const QString& name, Type type);
//void findNodes(const QString& name, NodeList& n);
- virtual void findChildren(const QString& name, NodeList& nodes) const;
+ virtual void findChildren(const QString& name, NodeList& nodes) const Q_DECL_OVERRIDE;
FunctionNode* findFunctionNode(const QString& name) const;
FunctionNode* findFunctionNode(const FunctionNode* clone);
void addInclude(const QString &include);
@@ -370,8 +370,8 @@ public:
void deleteChildren();
void removeFromRelated();
- virtual bool isInnerNode() const { return true; }
- virtual bool isLeaf() const { return false; }
+ virtual bool isInnerNode() const Q_DECL_OVERRIDE { return true; }
+ virtual bool isLeaf() const Q_DECL_OVERRIDE { return false; }
const EnumNode* findEnumNodeForValue(const QString &enumValue) const;
const NodeList & childNodes() const { return children_; }
const NodeList & relatedNodes() const { return related_; }
@@ -384,14 +384,14 @@ public:
QStringList primaryKeys();
QStringList secondaryKeys();
const QStringList& pageKeywords() const { return pageKeywds; }
- virtual void addPageKeywords(const QString& t) { pageKeywds << t; }
- virtual void setOutputFileName(const QString& f) { outputFileName_ = f; }
- virtual QString outputFileName() const { return outputFileName_; }
- virtual QmlPropertyNode* hasQmlProperty(const QString& ) const;
- virtual QmlPropertyNode* hasQmlProperty(const QString&, bool attached) const;
+ virtual void addPageKeywords(const QString& t) Q_DECL_OVERRIDE { pageKeywds << t; }
+ virtual void setOutputFileName(const QString& f) Q_DECL_OVERRIDE { outputFileName_ = f; }
+ virtual QString outputFileName() const Q_DECL_OVERRIDE { return outputFileName_; }
+ virtual QmlPropertyNode* hasQmlProperty(const QString& ) const Q_DECL_OVERRIDE;
+ virtual QmlPropertyNode* hasQmlProperty(const QString&, bool attached) const Q_DECL_OVERRIDE;
void addChild(Node* child, const QString& title);
const QStringList& groupNames() const { return groupNames_; }
- virtual void appendGroupName(const QString& t) { groupNames_.append(t); }
+ virtual void appendGroupName(const QString& t) Q_DECL_OVERRIDE { groupNames_.append(t); }
void printChildren(const QString& title);
protected:
@@ -423,8 +423,8 @@ public:
LeafNode();
virtual ~LeafNode() { }
- virtual bool isInnerNode() const { return false; }
- virtual bool isLeaf() const { return true; }
+ virtual bool isInnerNode() const Q_DECL_OVERRIDE { return false; }
+ virtual bool isLeaf() const Q_DECL_OVERRIDE { return true; }
protected:
LeafNode(Type type, InnerNode* parent, const QString& name);
@@ -436,10 +436,10 @@ class NamespaceNode : public InnerNode
public:
NamespaceNode(InnerNode* parent, const QString& name);
virtual ~NamespaceNode() { }
- virtual bool isNamespace() const { return true; }
- virtual Tree* tree() const { return (parent() ? parent()->tree() : tree_); }
- virtual bool isCppNode() const { return true; }
- virtual Node::Genus genus() const { return Node::CPP; }
+ virtual bool isNamespace() const Q_DECL_OVERRIDE { return true; }
+ virtual Tree* tree() const Q_DECL_OVERRIDE { return (parent() ? parent()->tree() : tree_); }
+ virtual bool isCppNode() const Q_DECL_OVERRIDE { return true; }
+ virtual Node::Genus genus() const Q_DECL_OVERRIDE { return Node::CPP; }
void setTree(Tree* t) { tree_ = t; }
private:
@@ -469,13 +469,13 @@ class ClassNode : public InnerNode
public:
ClassNode(InnerNode* parent, const QString& name);
virtual ~ClassNode() { }
- virtual bool isClass() const { return true; }
- virtual bool isCppNode() const { return true; }
- virtual bool isWrapper() const { return wrapper_; }
- virtual Node::Genus genus() const { return Node::CPP; }
- virtual QString obsoleteLink() const { return obsoleteLink_; }
- virtual void setObsoleteLink(const QString& t) { obsoleteLink_ = t; }
- virtual void setWrapper() { wrapper_ = true; }
+ virtual bool isClass() const Q_DECL_OVERRIDE { return true; }
+ virtual bool isCppNode() const Q_DECL_OVERRIDE { return true; }
+ virtual bool isWrapper() const Q_DECL_OVERRIDE { return wrapper_; }
+ virtual Node::Genus genus() const Q_DECL_OVERRIDE { return Node::CPP; }
+ virtual QString obsoleteLink() const Q_DECL_OVERRIDE { return obsoleteLink_; }
+ virtual void setObsoleteLink(const QString& t) Q_DECL_OVERRIDE { obsoleteLink_ = t; }
+ virtual void setWrapper() Q_DECL_OVERRIDE { wrapper_ = true; }
void addResolvedBaseClass(Access access, ClassNode* node);
void addDerivedClass(Access access, ClassNode* node);
@@ -495,8 +495,8 @@ public:
void setServiceName(const QString& value) { sname = value; }
QmlClassNode* qmlElement() { return qmlelement; }
void setQmlElement(QmlClassNode* qcn) { qmlelement = qcn; }
- virtual bool isAbstract() const { return abstract_; }
- virtual void setAbstract(bool b) { abstract_ = b; }
+ virtual bool isAbstract() const Q_DECL_OVERRIDE { return abstract_; }
+ virtual void setAbstract(bool b) Q_DECL_OVERRIDE { abstract_ = b; }
PropertyNode* findPropertyNode(const QString& name);
QmlClassNode* findQmlBaseNode();
@@ -521,21 +521,21 @@ public:
PageType ptype);
virtual ~DocNode() { }
- virtual void setTitle(const QString &title);
- virtual void setSubTitle(const QString &subTitle) { subtitle_ = subTitle; }
+ virtual void setTitle(const QString &title) Q_DECL_OVERRIDE;
+ virtual void setSubTitle(const QString &subTitle) Q_DECL_OVERRIDE { subtitle_ = subTitle; }
- SubType subType() const { return nodeSubtype_; }
- virtual QString title() const { return title_; }
- virtual QString fullTitle() const;
- virtual QString subTitle() const;
+ SubType subType() const Q_DECL_OVERRIDE { return nodeSubtype_; }
+ virtual QString title() const Q_DECL_OVERRIDE { return title_; }
+ virtual QString fullTitle() const Q_DECL_OVERRIDE;
+ virtual QString subTitle() const Q_DECL_OVERRIDE;
virtual QString imageFileName() const { return QString(); }
- virtual QString nameForLists() const { return title(); }
+ virtual QString nameForLists() const Q_DECL_OVERRIDE { return title(); }
virtual void setImageFileName(const QString& ) { }
- virtual bool isHeaderFile() const { return (subType() == Node::HeaderFile); }
- virtual bool isExample() const { return (subType() == Node::Example); }
- virtual bool isExampleFile() const { return (parent() && parent()->isExample()); }
- virtual bool isExternalPage() const { return nodeSubtype_ == ExternalPage; }
- virtual bool isDocNode() const { return true; }
+ virtual bool isHeaderFile() const Q_DECL_OVERRIDE { return (subType() == Node::HeaderFile); }
+ virtual bool isExample() const Q_DECL_OVERRIDE { return (subType() == Node::Example); }
+ virtual bool isExampleFile() const Q_DECL_OVERRIDE { return (parent() && parent()->isExample()); }
+ virtual bool isExternalPage() const Q_DECL_OVERRIDE { return nodeSubtype_ == ExternalPage; }
+ virtual bool isDocNode() const Q_DECL_OVERRIDE { return true; }
protected:
SubType nodeSubtype_;
@@ -549,8 +549,8 @@ public:
ExampleNode(InnerNode* parent, const QString& name)
: DocNode(parent, name, Node::Example, Node::ExamplePage) { }
virtual ~ExampleNode() { }
- virtual QString imageFileName() const { return imageFileName_; }
- virtual void setImageFileName(const QString& ifn) { imageFileName_ = ifn; }
+ virtual QString imageFileName() const Q_DECL_OVERRIDE { return imageFileName_; }
+ virtual void setImageFileName(const QString& ifn) Q_DECL_OVERRIDE { imageFileName_ = ifn; }
private:
QString imageFileName_;
@@ -581,25 +581,25 @@ class QmlClassNode : public InnerNode
public:
QmlClassNode(InnerNode* parent, const QString& name);
virtual ~QmlClassNode();
- virtual bool isQmlNode() const { return true; }
- virtual bool isQmlType() const { return true; }
- virtual bool isQtQuickNode() const { return (qmlModuleName() == QLatin1String("QtQuick")); }
- virtual ClassNode* classNode() { return cnode_; }
- virtual void setClassNode(ClassNode* cn) { cnode_ = cn; }
- virtual bool isAbstract() const { return abstract_; }
- virtual bool isWrapper() const { return wrapper_; }
- virtual void setAbstract(bool b) { abstract_ = b; }
- virtual void setWrapper() { wrapper_ = true; }
- virtual bool isInternal() const { return (status() == Internal); }
- virtual QString qmlFullBaseName() const;
- virtual QString obsoleteLink() const { return obsoleteLink_; }
- virtual void setObsoleteLink(const QString& t) { obsoleteLink_ = t; };
- virtual QString qmlModuleName() const;
- virtual QString qmlModuleVersion() const;
- virtual QString qmlModuleIdentifier() const;
- virtual QmlModuleNode* qmlModule() const { return qmlModule_; }
- virtual void setQmlModule(QmlModuleNode* t) { qmlModule_ = t; }
- virtual Node::Genus genus() const { return Node::QML; }
+ virtual bool isQmlNode() const Q_DECL_OVERRIDE { return true; }
+ virtual bool isQmlType() const Q_DECL_OVERRIDE { return true; }
+ virtual bool isQtQuickNode() const Q_DECL_OVERRIDE { return (qmlModuleName() == QLatin1String("QtQuick")); }
+ virtual ClassNode* classNode() Q_DECL_OVERRIDE { return cnode_; }
+ virtual void setClassNode(ClassNode* cn) Q_DECL_OVERRIDE { cnode_ = cn; }
+ virtual bool isAbstract() const Q_DECL_OVERRIDE { return abstract_; }
+ virtual bool isWrapper() const Q_DECL_OVERRIDE { return wrapper_; }
+ virtual void setAbstract(bool b) Q_DECL_OVERRIDE { abstract_ = b; }
+ virtual void setWrapper() Q_DECL_OVERRIDE { wrapper_ = true; }
+ virtual bool isInternal() const Q_DECL_OVERRIDE { return (status() == Internal); }
+ virtual QString qmlFullBaseName() const Q_DECL_OVERRIDE;
+ virtual QString obsoleteLink() const Q_DECL_OVERRIDE { return obsoleteLink_; }
+ virtual void setObsoleteLink(const QString& t) Q_DECL_OVERRIDE { obsoleteLink_ = t; };
+ virtual QString qmlModuleName() const Q_DECL_OVERRIDE;
+ virtual QString qmlModuleVersion() const Q_DECL_OVERRIDE;
+ virtual QString qmlModuleIdentifier() const Q_DECL_OVERRIDE;
+ virtual QmlModuleNode* qmlModule() const Q_DECL_OVERRIDE { return qmlModule_; }
+ virtual void setQmlModule(QmlModuleNode* t) Q_DECL_OVERRIDE { qmlModule_ = t; }
+ virtual Node::Genus genus() const Q_DECL_OVERRIDE { return Node::QML; }
const ImportList& importList() const { return importList_; }
void setImportList(const ImportList& il) { importList_ = il; }
const QString& qmlBaseName() const { return qmlBaseName_; }
@@ -635,9 +635,9 @@ public:
QmlBasicTypeNode(InnerNode* parent,
const QString& name);
virtual ~QmlBasicTypeNode() { }
- virtual bool isQmlNode() const { return true; }
- virtual bool isQmlBasicType() const { return true; }
- virtual Node::Genus genus() const { return Node::QML; }
+ virtual bool isQmlNode() const Q_DECL_OVERRIDE { return true; }
+ virtual bool isQmlBasicType() const Q_DECL_OVERRIDE { return true; }
+ virtual Node::Genus genus() const Q_DECL_OVERRIDE { return Node::QML; }
};
class QmlPropertyGroupNode : public InnerNode
@@ -645,17 +645,17 @@ class QmlPropertyGroupNode : public InnerNode
public:
QmlPropertyGroupNode(QmlClassNode* parent, const QString& name);
virtual ~QmlPropertyGroupNode() { }
- virtual bool isQmlNode() const { return true; }
- virtual bool isQtQuickNode() const { return parent()->isQtQuickNode(); }
- virtual QString qmlTypeName() const { return parent()->qmlTypeName(); }
- virtual QString qmlModuleName() const { return parent()->qmlModuleName(); }
- virtual QString qmlModuleVersion() const { return parent()->qmlModuleVersion(); }
- virtual QString qmlModuleIdentifier() const { return parent()->qmlModuleIdentifier(); }
- virtual QString idNumber();
- virtual bool isQmlPropertyGroup() const { return true; }
- virtual Node::Genus genus() const { return Node::QML; }
-
- virtual QString element() const { return parent()->name(); }
+ virtual bool isQmlNode() const Q_DECL_OVERRIDE { return true; }
+ virtual bool isQtQuickNode() const Q_DECL_OVERRIDE { return parent()->isQtQuickNode(); }
+ virtual QString qmlTypeName() const Q_DECL_OVERRIDE { return parent()->qmlTypeName(); }
+ virtual QString qmlModuleName() const Q_DECL_OVERRIDE { return parent()->qmlModuleName(); }
+ virtual QString qmlModuleVersion() const Q_DECL_OVERRIDE { return parent()->qmlModuleVersion(); }
+ virtual QString qmlModuleIdentifier() const Q_DECL_OVERRIDE { return parent()->qmlModuleIdentifier(); }
+ virtual QString idNumber() Q_DECL_OVERRIDE;
+ virtual bool isQmlPropertyGroup() const Q_DECL_OVERRIDE { return true; }
+ virtual Node::Genus genus() const Q_DECL_OVERRIDE { return Node::QML; }
+
+ virtual QString element() const Q_DECL_OVERRIDE { return parent()->name(); }
private:
int idNumber_;
@@ -672,11 +672,11 @@ public:
bool attached);
virtual ~QmlPropertyNode() { }
- virtual Node::Genus genus() const { return Node::QML; }
- virtual void setDataType(const QString& dataType) { type_ = dataType; }
+ virtual Node::Genus genus() const Q_DECL_OVERRIDE { return Node::QML; }
+ virtual void setDataType(const QString& dataType) Q_DECL_OVERRIDE { type_ = dataType; }
void setStored(bool stored) { stored_ = toFlagValue(stored); }
void setDesignable(bool designable) { designable_ = toFlagValue(designable); }
- virtual void setReadOnly(bool ro) { readOnly_ = toFlagValue(ro); }
+ virtual void setReadOnly(bool ro) Q_DECL_OVERRIDE { readOnly_ = toFlagValue(ro); }
void setDefault() { isdefault_ = true; }
const QString &dataType() const { return type_; }
@@ -685,17 +685,17 @@ public:
bool isStored() const { return fromFlagValue(stored_,true); }
bool isDesignable() const { return fromFlagValue(designable_,false); }
bool isWritable();
- virtual bool isDefault() const { return isdefault_; }
- virtual bool isReadOnly() const { return fromFlagValue(readOnly_,false); }
- virtual bool isAlias() const { return isAlias_; }
- virtual bool isAttached() const { return attached_; }
- virtual bool isQmlNode() const { return true; }
- virtual bool isQtQuickNode() const { return parent()->isQtQuickNode(); }
- virtual QString qmlTypeName() const { return parent()->qmlTypeName(); }
- virtual QString qmlModuleName() const { return parent()->qmlModuleName(); }
- virtual QString qmlModuleVersion() const { return parent()->qmlModuleVersion(); }
- virtual QString qmlModuleIdentifier() const { return parent()->qmlModuleIdentifier(); }
- virtual QString element() const;
+ virtual bool isDefault() const Q_DECL_OVERRIDE { return isdefault_; }
+ virtual bool isReadOnly() const Q_DECL_OVERRIDE { return fromFlagValue(readOnly_,false); }
+ virtual bool isAlias() const Q_DECL_OVERRIDE { return isAlias_; }
+ virtual bool isAttached() const Q_DECL_OVERRIDE { return attached_; }
+ virtual bool isQmlNode() const Q_DECL_OVERRIDE { return true; }
+ virtual bool isQtQuickNode() const Q_DECL_OVERRIDE { return parent()->isQtQuickNode(); }
+ virtual QString qmlTypeName() const Q_DECL_OVERRIDE { return parent()->qmlTypeName(); }
+ virtual QString qmlModuleName() const Q_DECL_OVERRIDE { return parent()->qmlModuleName(); }
+ virtual QString qmlModuleVersion() const Q_DECL_OVERRIDE { return parent()->qmlModuleVersion(); }
+ virtual QString qmlModuleIdentifier() const Q_DECL_OVERRIDE { return parent()->qmlModuleIdentifier(); }
+ virtual QString element() const Q_DECL_OVERRIDE;
private:
PropertyNode* findCorrespondingCppProperty();
@@ -731,8 +731,8 @@ public:
EnumNode(InnerNode* parent, const QString& name);
virtual ~EnumNode() { }
- virtual Node::Genus genus() const { return Node::CPP; }
- virtual bool isCppNode() const { return true; }
+ virtual Node::Genus genus() const Q_DECL_OVERRIDE { return Node::CPP; }
+ virtual bool isCppNode() const Q_DECL_OVERRIDE { return true; }
void addItem(const EnumItem& item);
void setFlagsType(TypedefNode* typedeff);
bool hasItem(const QString &name) const { return names.contains(name); }
@@ -754,8 +754,8 @@ public:
TypedefNode(InnerNode* parent, const QString& name);
virtual ~TypedefNode() { }
- virtual Node::Genus genus() const { return Node::CPP; }
- virtual bool isCppNode() const { return true; }
+ virtual Node::Genus genus() const Q_DECL_OVERRIDE { return Node::CPP; }
+ virtual bool isCppNode() const Q_DECL_OVERRIDE { return true; }
const EnumNode* associatedEnum() const { return ae; }
private:
@@ -842,8 +842,8 @@ public:
bool isConst() const { return con; }
bool isStatic() const { return sta; }
bool isOverload() const { return ove; }
- bool isReimp() const { return reimp; }
- bool isFunction() const { return true; }
+ bool isReimp() const Q_DECL_OVERRIDE { return reimp; }
+ bool isFunction() const Q_DECL_OVERRIDE { return true; }
int overloadNumber() const;
const QList<Parameter>& parameters() const { return params; }
QStringList parameterNames() const;
@@ -855,20 +855,20 @@ public:
QStringList reconstructParams(bool values = false) const;
QString signature(bool values = false) const;
- virtual QString element() const { return parent()->name(); }
- virtual bool isAttached() const { return attached_; }
- virtual bool isQmlNode() const {
+ virtual QString element() const Q_DECL_OVERRIDE { return parent()->name(); }
+ virtual bool isAttached() const Q_DECL_OVERRIDE { return attached_; }
+ virtual bool isQmlNode() const Q_DECL_OVERRIDE {
return ((type() == QmlSignal) ||
(type() == QmlMethod) ||
(type() == QmlSignalHandler));
}
- virtual bool isCppNode() const { return !isQmlNode(); }
- virtual Node::Genus genus() const { return (isQmlNode() ? Node::QML : Node::CPP); }
- virtual bool isQtQuickNode() const { return parent()->isQtQuickNode(); }
- virtual QString qmlTypeName() const { return parent()->qmlTypeName(); }
- virtual QString qmlModuleName() const { return parent()->qmlModuleName(); }
- virtual QString qmlModuleVersion() const { return parent()->qmlModuleVersion(); }
- virtual QString qmlModuleIdentifier() const { return parent()->qmlModuleIdentifier(); }
+ virtual bool isCppNode() const Q_DECL_OVERRIDE { return !isQmlNode(); }
+ virtual Node::Genus genus() const Q_DECL_OVERRIDE { return (isQmlNode() ? Node::QML : Node::CPP); }
+ virtual bool isQtQuickNode() const Q_DECL_OVERRIDE { return parent()->isQtQuickNode(); }
+ virtual QString qmlTypeName() const Q_DECL_OVERRIDE { return parent()->qmlTypeName(); }
+ virtual QString qmlModuleName() const Q_DECL_OVERRIDE { return parent()->qmlModuleName(); }
+ virtual QString qmlModuleVersion() const Q_DECL_OVERRIDE { return parent()->qmlModuleVersion(); }
+ virtual QString qmlModuleIdentifier() const Q_DECL_OVERRIDE { return parent()->qmlModuleIdentifier(); }
void debug() const;
@@ -902,9 +902,9 @@ public:
PropertyNode(InnerNode* parent, const QString& name);
virtual ~PropertyNode() { }
- virtual Node::Genus genus() const { return Node::CPP; }
- virtual bool isCppNode() const { return true; }
- virtual void setDataType(const QString& dataType) { type_ = dataType; }
+ virtual Node::Genus genus() const Q_DECL_OVERRIDE { return Node::CPP; }
+ virtual bool isCppNode() const Q_DECL_OVERRIDE { return true; }
+ virtual void setDataType(const QString& dataType) Q_DECL_OVERRIDE { type_ = dataType; }
void addFunction(FunctionNode* function, FunctionRole role);
void addSignal(FunctionNode* function, FunctionRole role);
void setStored(bool stored) { stored_ = toFlagValue(stored); }
@@ -991,8 +991,8 @@ public:
VariableNode(InnerNode* parent, const QString &name);
virtual ~VariableNode() { }
- virtual Node::Genus genus() const { return Node::CPP; }
- virtual bool isCppNode() const { return true; }
+ virtual Node::Genus genus() const Q_DECL_OVERRIDE { return Node::CPP; }
+ virtual bool isCppNode() const Q_DECL_OVERRIDE { return true; }
void setLeftType(const QString &leftType) { lt = leftType; }
void setRightType(const QString &rightType) { rt = rightType; }
void setStatic(bool statique) { sta = statique; }
@@ -1033,20 +1033,20 @@ class CollectionNode : public InnerNode
}
virtual ~CollectionNode() { }
- virtual bool isCollectionNode() const { return true; }
- virtual void addMember(Node* node);
- virtual bool hasMembers() const;
- virtual bool hasNamespaces() const;
- virtual bool hasClasses() const;
- virtual void getMemberNamespaces(NodeMap& out);
- virtual void getMemberClasses(NodeMap& out);
- virtual bool wasSeen() const { return seen_; }
- virtual QString title() const { return title_; }
- virtual QString subTitle() const { return subtitle_; }
- virtual QString fullTitle() const { return title_; }
- virtual QString nameForLists() const { return title_; }
- virtual void setTitle(const QString &title);
- virtual void setSubTitle(const QString &subTitle) { subtitle_ = subTitle; }
+ virtual bool isCollectionNode() const Q_DECL_OVERRIDE { return true; }
+ virtual void addMember(Node* node) Q_DECL_OVERRIDE;
+ virtual bool hasMembers() const Q_DECL_OVERRIDE;
+ virtual bool hasNamespaces() const Q_DECL_OVERRIDE;
+ virtual bool hasClasses() const Q_DECL_OVERRIDE;
+ virtual void getMemberNamespaces(NodeMap& out) Q_DECL_OVERRIDE;
+ virtual void getMemberClasses(NodeMap& out) Q_DECL_OVERRIDE;
+ virtual bool wasSeen() const Q_DECL_OVERRIDE { return seen_; }
+ virtual QString title() const Q_DECL_OVERRIDE { return title_; }
+ virtual QString subTitle() const Q_DECL_OVERRIDE { return subtitle_; }
+ virtual QString fullTitle() const Q_DECL_OVERRIDE { return title_; }
+ virtual QString nameForLists() const Q_DECL_OVERRIDE { return title_; }
+ virtual void setTitle(const QString &title) Q_DECL_OVERRIDE;
+ virtual void setSubTitle(const QString &subTitle) Q_DECL_OVERRIDE { subtitle_ = subTitle; }
const NodeList& members() const { return members_; }
void printMembers(const QString& title);
@@ -1068,7 +1068,7 @@ class GroupNode : public CollectionNode
: CollectionNode(Node::Group, parent, name) { }
virtual ~GroupNode() { }
- virtual bool isGroup() const { return true; }
+ virtual bool isGroup() const Q_DECL_OVERRIDE { return true; }
};
class ModuleNode : public CollectionNode
@@ -1078,10 +1078,10 @@ class ModuleNode : public CollectionNode
: CollectionNode(Node::Module, parent, name) { }
virtual ~ModuleNode() { }
- virtual bool isModule() const { return true; }
- virtual bool isCppNode() const { return true; }
- virtual void setQtVariable(const QString& v) { qtVariable_ = v; }
- virtual QString qtVariable() const { return qtVariable_; }
+ virtual bool isModule() const Q_DECL_OVERRIDE { return true; }
+ virtual bool isCppNode() const Q_DECL_OVERRIDE { return true; }
+ virtual void setQtVariable(const QString& v) Q_DECL_OVERRIDE { qtVariable_ = v; }
+ virtual QString qtVariable() const Q_DECL_OVERRIDE { return qtVariable_; }
private:
QString qtVariable_;
@@ -1094,18 +1094,18 @@ class QmlModuleNode : public CollectionNode
: CollectionNode(Node::QmlModule, parent, name) { }
virtual ~QmlModuleNode() { }
- virtual bool isQmlNode() const { return true; }
- virtual bool isQmlModule() const { return true; }
- virtual QString qmlModuleName() const { return qmlModuleName_; }
- virtual QString qmlModuleVersion() const {
+ virtual bool isQmlNode() const Q_DECL_OVERRIDE { return true; }
+ virtual bool isQmlModule() const Q_DECL_OVERRIDE { return true; }
+ virtual QString qmlModuleName() const Q_DECL_OVERRIDE { return qmlModuleName_; }
+ virtual QString qmlModuleVersion() const Q_DECL_OVERRIDE {
return qmlModuleVersionMajor_ + "." + qmlModuleVersionMinor_;
}
- virtual QString qmlModuleIdentifier() const {
+ virtual QString qmlModuleIdentifier() const Q_DECL_OVERRIDE {
return qmlModuleName_ + qmlModuleVersionMajor_;
}
- virtual void setQmlModuleInfo(const QString& );
- virtual void setQtVariable(const QString& v) { qtVariable_ = v; }
- virtual QString qtVariable() const { return qtVariable_; }
+ virtual void setQmlModuleInfo(const QString& ) Q_DECL_OVERRIDE;
+ virtual void setQtVariable(const QString& v) Q_DECL_OVERRIDE { qtVariable_ = v; }
+ virtual QString qtVariable() const Q_DECL_OVERRIDE { return qtVariable_; }
private:
QString qmlModuleName_;
diff --git a/src/tools/qdoc/plaincodemarker.h b/src/tools/qdoc/plaincodemarker.h
index df6beebd03..2fb97c443d 100644
--- a/src/tools/qdoc/plaincodemarker.h
+++ b/src/tools/qdoc/plaincodemarker.h
@@ -48,20 +48,20 @@ public:
PlainCodeMarker();
~PlainCodeMarker();
- bool recognizeCode( const QString& code );
- bool recognizeExtension( const QString& ext );
- bool recognizeLanguage( const QString& lang );
- Atom::Type atomType() const;
- QString markedUpCode( const QString& code, const Node *relative, const Location &location );
+ bool recognizeCode( const QString& code ) Q_DECL_OVERRIDE;
+ bool recognizeExtension( const QString& ext ) Q_DECL_OVERRIDE;
+ bool recognizeLanguage( const QString& lang ) Q_DECL_OVERRIDE;
+ Atom::Type atomType() const Q_DECL_OVERRIDE;
+ QString markedUpCode( const QString& code, const Node *relative, const Location &location ) Q_DECL_OVERRIDE;
QString markedUpSynopsis( const Node *node, const Node *relative,
- SynopsisStyle style );
- QString markedUpName( const Node *node );
- QString markedUpFullName( const Node *node, const Node *relative );
- QString markedUpEnumValue(const QString &enumValue, const Node *relative);
- QString markedUpIncludes( const QStringList& includes );
- QString functionBeginRegExp( const QString& funcName );
- QString functionEndRegExp( const QString& funcName );
- QList<Section> sections(const InnerNode *innerNode, SynopsisStyle style, Status status);
+ SynopsisStyle style ) Q_DECL_OVERRIDE;
+ QString markedUpName( const Node *node ) Q_DECL_OVERRIDE;
+ QString markedUpFullName( const Node *node, const Node *relative ) Q_DECL_OVERRIDE;
+ QString markedUpEnumValue(const QString &enumValue, const Node *relative) Q_DECL_OVERRIDE;
+ QString markedUpIncludes( const QStringList& includes ) Q_DECL_OVERRIDE;
+ QString functionBeginRegExp( const QString& funcName ) Q_DECL_OVERRIDE;
+ QString functionEndRegExp( const QString& funcName ) Q_DECL_OVERRIDE;
+ QList<Section> sections(const InnerNode *innerNode, SynopsisStyle style, Status status) Q_DECL_OVERRIDE;
};
QT_END_NAMESPACE
diff --git a/src/tools/qdoc/puredocparser.h b/src/tools/qdoc/puredocparser.h
index e6a4eca9d8..4100b50e2d 100644
--- a/src/tools/qdoc/puredocparser.h
+++ b/src/tools/qdoc/puredocparser.h
@@ -57,8 +57,8 @@ public:
PureDocParser();
virtual ~PureDocParser();
- virtual QStringList sourceFileNameFilter();
- virtual void parseSourceFile(const Location& location, const QString& filePath);
+ virtual QStringList sourceFileNameFilter() Q_DECL_OVERRIDE;
+ virtual void parseSourceFile(const Location& location, const QString& filePath) Q_DECL_OVERRIDE;
private:
bool processQdocComments();
diff --git a/src/tools/qdoc/qdocdatabase.cpp b/src/tools/qdoc/qdocdatabase.cpp
index 36dd05bb92..51908bc9e3 100644
--- a/src/tools/qdoc/qdocdatabase.cpp
+++ b/src/tools/qdoc/qdocdatabase.cpp
@@ -128,142 +128,54 @@ Tree* QDocForest::nextTree()
*/
/*!
+ Finds the tree for module \a t in the forest and
+ sets the primary tree to be that tree. After the
+ primary tree is set, that tree is removed from the
+ forest.
+
+ \node It gets re-inserted into the forest after the
+ search order is built.
+ */
+void QDocForest::setPrimaryTree(const QString& t)
+{
+ primaryTree_ = findTree(t);
+ forest_.remove(t);
+ if (!primaryTree_)
+ qDebug() << "ERROR: Could not set primary tree to:" << t;
+}
+
+/*!
If the search order array is empty, create the search order.
If the search order array is not empty, do nothing.
*/
-void QDocForest::setSearchOrder()
+void QDocForest::setSearchOrder(QStringList& t)
{
if (!searchOrder_.isEmpty())
return;
- QString primaryName = primaryTree()->moduleName();
- searchOrder_.clear();
+
+ /* Allocate space for the search order. */
searchOrder_.reserve(forest_.size()+1);
+ searchOrder_.clear();
moduleNames_.reserve(forest_.size()+1);
+ moduleNames_.clear();
+
+ /* The primary tree is always first in the search order. */
+ QString primaryName = primaryTree()->moduleName();
searchOrder_.append(primaryTree_);
moduleNames_.append(primaryName);
+ forest_.remove(primaryName);
+
QMap<QString, Tree*>::iterator i;
- if (primaryName != "QtCore") {
- i = forest_.find("QtCore");
- if (i != forest_.end()) {
- searchOrder_.append(i.value());
- moduleNames_.append("QtCore");
- forest_.erase(i);
- }
- }
- if (primaryName != "QtGui") {
- i = forest_.find("QtGui");
- if (i != forest_.end()) {
- searchOrder_.append(i.value());
- moduleNames_.append("QtGui");
- forest_.erase(i);
- }
- }
- if (primaryName != "QtNetwork") {
- i = forest_.find("QtNetwork");
- if (i != forest_.end()) {
- searchOrder_.append(i.value());
- moduleNames_.append("QtNetwork");
- forest_.erase(i);
- }
- }
- if (primaryName != "QtOpenGL") {
- i = forest_.find("QtOpenGL");
- if (i != forest_.end()) {
- searchOrder_.append(i.value());
- moduleNames_.append("QtOpenGL");
- forest_.erase(i);
- }
- }
- if (primaryName != "QtWidgets") {
- i = forest_.find("QtWidgets");
- if (i != forest_.end()) {
- searchOrder_.append(i.value());
- moduleNames_.append("QtWidgets");
- forest_.erase(i);
- }
- }
- if (primaryName != "QtSql") {
- i = forest_.find("QtSql");
- if (i != forest_.end()) {
- searchOrder_.append(i.value());
- moduleNames_.append("QtSql");
- forest_.erase(i);
- }
- }
- if (primaryName != "QtXml") {
- i = forest_.find("QtXml");
- if (i != forest_.end()) {
- searchOrder_.append(i.value());
- moduleNames_.append("QtXml");
- forest_.erase(i);
- }
- }
- if (primaryName != "QtSvg") {
- i = forest_.find("QtSvg");
- if (i != forest_.end()) {
- searchOrder_.append(i.value());
- moduleNames_.append("QtSvg");
- forest_.erase(i);
- }
- }
- if (primaryName != "QtDoc") {
- i = forest_.find("QtDoc");
- if (i != forest_.end()) {
- searchOrder_.append(i.value());
- moduleNames_.append("QtDoc");
- forest_.erase(i);
- }
- }
- if (primaryName != "QtQuick") {
- i = forest_.find("QtQuick");
- if (i != forest_.end()) {
- searchOrder_.append(i.value());
- moduleNames_.append("QtQuick");
- forest_.erase(i);
- }
- }
- if (primaryName != "QtQml") {
- i = forest_.find("QtQml");
- if (i != forest_.end()) {
- searchOrder_.append(i.value());
- moduleNames_.append("QtQml");
- forest_.erase(i);
- }
- }
- if (primaryName != "QtPrintSupport") {
- i = forest_.find("QtPrintSupport");
- if (i != forest_.end()) {
- searchOrder_.append(i.value());
- moduleNames_.append("QtPrintSupport");
- forest_.erase(i);
- }
- }
- if (primaryName != "QtGraphicalEffects") {
- i = forest_.find("QtGraphicalEffects");
- if (i != forest_.end()) {
- searchOrder_.append(i.value());
- moduleNames_.append("QtGraphicalEffects");
- forest_.erase(i);
- }
- }
- if (primaryName != "QtConcurrent") {
- i = forest_.find("QtConcurrent");
- if (i != forest_.end()) {
- searchOrder_.append(i.value());
- moduleNames_.append("QtConcurrent");
- forest_.erase(i);
- }
- }
-#if 0
- if (primaryName != "zzz") {
- i = forest_.find("zzz");
- if (i != forest_.end()) {
- searchOrder_.append(i.value());
- moduleNames_.append("zzz");
- forest_.erase(i);
+ foreach (QString m, t) {
+ if (primaryName != m) {
+ i = forest_.find(m);
+ if (i != forest_.end()) {
+ searchOrder_.append(i.value());
+ moduleNames_.append(m);
+ forest_.remove(m);
+ }
}
}
-#endif
/*
If any trees remain in the forest, just add them
to the search order sequentially, because we don't
@@ -283,15 +195,21 @@ void QDocForest::setSearchOrder()
Rebuild the forest after constructing the search order.
It was destroyed during construction of the search order,
but it is needed for module-specific searches.
+
+ Note that this loop also inserts the primary tree into the
+ forrest. That is a requirement.
*/
for (int i=0; i<searchOrder_.size(); ++i) {
- forest_.insert(moduleNames_.at(i).toLower(), searchOrder_.at(i));
+ if (!forest_.contains(moduleNames_.at(i))) {
+ forest_.insert(moduleNames_.at(i), searchOrder_.at(i));
+ }
}
-
#if 0
- qDebug() << " SEARCH ORDER:";
+ qDebug() << " SEARCH ORDER:";
for (int i=0; i<moduleNames_.size(); ++i)
- qDebug() << " " << i+1 << "." << moduleNames_.at(i);
+ qDebug() << " " << i+1 << "." << moduleNames_.at(i);
+ qDebug() << " FOREST:" << forest_.keys();
+ qDebug() << "SEARCH ORDER:" << moduleNames_;
#endif
}
@@ -363,7 +281,7 @@ NamespaceNode* QDocForest::newIndexTree(const QString& module)
/*!
Create a new Tree for use as the primary tree. This tree
- will represent the primary module.
+ will represent the primary module. \a module is camel case.
*/
void QDocForest::newPrimaryTree(const QString& module)
{
@@ -431,6 +349,61 @@ void QDocForest::mergeCollectionMaps(Node::Type nt, CNMultiMap& cnmm)
}
}
+/*!
+ Print the list of module names ordered according
+ to how many successful searches each tree had.
+ */
+void QDocForest::printLinkCounts(const QString& project)
+{
+ Location::null.report(QString("%1: Link Counts").arg(project));
+ QMultiMap<int, QString> m;
+ foreach (Tree* t, searchOrder()) {
+ if (t->linkCount() < 0)
+ m.insert(t->linkCount(), t->moduleName());
+ }
+ QString depends = "depends +=";
+ QString module = project.toLower();
+ QMultiMap<int, QString>::iterator i = m.begin();
+ while (i != m.end()) {
+ QString line = " " + i.value();
+ if (i.value() != module)
+ depends += " " + i.value();
+ int pad = 30 - line.length();
+ for (int k=0; k<pad; ++k)
+ line += " ";
+ line += "%1";
+ Location::null.report(line.arg(-(i.key())));
+ ++i;
+ }
+ Location::null.report("Optimal depends variable:");
+ Location::null.report(depends);
+}
+
+/*!
+ Print the list of module names ordered according
+ to how many successful searches each tree had.
+ */
+QString QDocForest::getLinkCounts(QStringList& strings, QVector<int>& counts)
+{
+ QMultiMap<int, QString> m;
+ foreach (Tree* t, searchOrder()) {
+ if (t->linkCount() < 0)
+ m.insert(t->linkCount(), t->moduleName());
+ }
+ QString depends = "depends +=";
+ QString module = Generator::defaultModuleName().toLower();
+ QMultiMap<int, QString>::iterator i = m.begin();
+ while (i != m.end()) {
+ if (i.value() != module) {
+ counts.append(-(i.key()));
+ strings.append(i.value());
+ depends += " " + i.value();
+ }
+ ++i;
+ }
+ return depends;
+}
+
/*! \class QDocDatabase
This class provides exclusive access to the qdoc database,
which consists of a forrest of trees and a lot of maps and
@@ -445,8 +418,19 @@ NodeMap QDocDatabase::typeNodeMap_;
constructs the \a forest_ object, which is also a singleton.
\a showInternal_ is normally false. If it is true, qdoc will
write documentation for nodes marked \c internal.
+
+ \a singleExec_ is false when qdoc is being used in the standard
+ way of running qdoc twices for each module, first with -prepare
+ and then with -generate. First the -prepare phase is run for
+ each module, then the -generate phase is run for each module.
+
+ When \a singleExec_ is true, qdoc is run only once. During the
+ single execution, qdoc processes the qdocconf files for all the
+ modules sequentially in a loop. Each source file for each module
+ is read exactly once.
*/
-QDocDatabase::QDocDatabase() : showInternal_(false), forest_(this)
+QDocDatabase::QDocDatabase()
+ : showInternal_(false), singleExec_(false), forest_(this)
{
// nothing
}
@@ -809,13 +793,41 @@ QmlClassNode* QDocDatabase::findQmlType(const ImportRec& import, const QString&
}
/*!
- This function calls \a func for each tree in the forest.
+ This function calls a set of functions for each tree in the
+ forest that has not already been analyzed. In this way, when
+ running qdoc in \e singleExec mode, each tree is analyzed in
+ turn, and its classes and types are added to the appropriate
+ node maps.
+ */
+void QDocDatabase::processForest()
+{
+ Tree* t = forest_.firstTree();
+ while (t) {
+ findAllNamespaces(t->root());
+ findAllClasses(t->root());
+ findAllFunctions(t->root());
+ findAllObsoleteThings(t->root());
+ findAllLegaleseTexts(t->root());
+ findAllSince(t->root());
+ t->setTreeHasBeenAnalyzed();
+ t = forest_.nextTree();
+ }
+}
+
+/*!
+ This function calls \a func for each tree in the forest,
+ but only if Tree::treeHasBeenAnalyzed() returns false for
+ the tree. In this way, when running qdoc in \e singleExec
+ mode, each tree is analyzed in turn, and its classes and
+ types are added to the appropriate node maps.
*/
void QDocDatabase::processForest(void (QDocDatabase::*func) (InnerNode*))
{
Tree* t = forest_.firstTree();
while (t) {
- (this->*(func))(t->root());
+ if (!t->treeHasBeenAnalyzed()) {
+ (this->*(func))(t->root());
+ }
t = forest_.nextTree();
}
}
@@ -887,7 +899,7 @@ NodeMap& QDocDatabase::getNamespaces()
*/
NodeMap& QDocDatabase::getServiceClasses()
{
- if (nonCompatClasses_.isEmpty() && qmlClasses_.isEmpty())
+ if (cppClasses_.isEmpty() && qmlTypes_.isEmpty())
processForest(&QDocDatabase::findAllClasses);
return serviceClasses_;
}
@@ -899,7 +911,7 @@ NodeMap& QDocDatabase::getServiceClasses()
*/
NodeMap& QDocDatabase::getQmlBasicTypes()
{
- if (nonCompatClasses_.isEmpty() && qmlBasicTypes_.isEmpty())
+ if (cppClasses_.isEmpty() && qmlBasicTypes_.isEmpty())
processForest(&QDocDatabase::findAllClasses);
return qmlBasicTypes_;
}
@@ -911,9 +923,9 @@ NodeMap& QDocDatabase::getQmlBasicTypes()
*/
NodeMap& QDocDatabase::getQmlTypes()
{
- if (nonCompatClasses_.isEmpty() && qmlClasses_.isEmpty())
+ if (cppClasses_.isEmpty() && qmlTypes_.isEmpty())
processForest(&QDocDatabase::findAllClasses);
- return qmlClasses_;
+ return qmlTypes_;
}
/*!
@@ -935,7 +947,7 @@ NodeMap& QDocDatabase::getObsoleteClasses()
*/
NodeMap& QDocDatabase::getCompatibilityClasses()
{
- if (nonCompatClasses_.isEmpty() && qmlClasses_.isEmpty())
+ if (cppClasses_.isEmpty() && qmlTypes_.isEmpty())
processForest(&QDocDatabase::findAllClasses);
return compatClasses_;
}
@@ -950,7 +962,7 @@ NodeMap& QDocDatabase::getCompatibilityClasses()
*/
NodeMap& QDocDatabase::getMainClasses()
{
- if (nonCompatClasses_.isEmpty() && qmlClasses_.isEmpty())
+ if (cppClasses_.isEmpty() && qmlTypes_.isEmpty())
processForest(&QDocDatabase::findAllClasses);
return mainClasses_;
}
@@ -962,9 +974,9 @@ NodeMap& QDocDatabase::getMainClasses()
*/
NodeMap& QDocDatabase::getCppClasses()
{
- if (nonCompatClasses_.isEmpty() && qmlClasses_.isEmpty())
+ if (cppClasses_.isEmpty() && qmlTypes_.isEmpty())
processForest(&QDocDatabase::findAllClasses);
- return nonCompatClasses_;
+ return cppClasses_;
}
/*!
@@ -987,7 +999,7 @@ void QDocDatabase::findAllClasses(InnerNode* node)
compatClasses_.insert(className, *c);
}
else {
- nonCompatClasses_.insert(className, *c);
+ cppClasses_.insert(className, *c);
if ((*c)->status() == Node::Main)
mainClasses_.insert(className, *c);
}
@@ -1000,9 +1012,9 @@ void QDocDatabase::findAllClasses(InnerNode* node)
else if (((*c)->isQmlType() || (*c)->isQmlBasicType())&& !(*c)->doc().isEmpty()) {
QString qmlTypeName = (*c)->name();
if (qmlTypeName.startsWith(QLatin1String("QML:")))
- qmlClasses_.insert(qmlTypeName.mid(4),*c);
+ qmlTypes_.insert(qmlTypeName.mid(4),*c);
else
- qmlClasses_.insert(qmlTypeName,*c);
+ qmlTypes_.insert(qmlTypeName,*c);
//also add to the QML basic type map
if ((*c)->isQmlBasicType())
@@ -1022,7 +1034,6 @@ void QDocDatabase::findAllClasses(InnerNode* node)
*/
NodeMapMap& QDocDatabase::getFunctionIndex()
{
- funcIndex_.clear();
processForest(&QDocDatabase::findAllFunctions);
return funcIndex_;
}
@@ -1314,7 +1325,15 @@ const NodeMultiMap& QDocDatabase::getSinceMap(const QString& key)
*/
void QDocDatabase::resolveIssues() {
resolveQmlInheritance(primaryTreeRoot());
- resolveTargets();
+ primaryTree()->resolveTargets(primaryTreeRoot());
+ primaryTree()->resolveCppToQmlLinks();
+}
+
+void QDocDatabase::resolveStuff()
+{
+ primaryTree()->resolveInheritance();
+ resolveQmlInheritance(primaryTreeRoot());
+ //primaryTree()->resolveTargets(primaryTreeRoot());
primaryTree()->resolveCppToQmlLinks();
}
@@ -1424,10 +1443,18 @@ void QDocDatabase::generateTagFile(const QString& name, Generator* g)
}
/*!
- Reads and parses the qdoc index files listed in \a indexFiles.
+ Reads and parses the qdoc index files listed in \a t.
*/
-void QDocDatabase::readIndexes(const QStringList& indexFiles)
+void QDocDatabase::readIndexes(const QStringList& t)
{
+ QStringList indexFiles;
+ foreach (const QString& f, t) {
+ QString fn = f.mid(f.lastIndexOf(QChar('/'))+1);
+ if (!isLoaded(fn))
+ indexFiles << f;
+ else
+ qDebug() << "This index file is already in memory:" << f;
+ }
QDocIndexFiles::qdocIndexFiles()->readIndexes(indexFiles);
QDocIndexFiles::destroyQDocIndexFiles();
}
@@ -1443,6 +1470,8 @@ void QDocDatabase::generateIndex(const QString& fileName,
Generator* g,
bool generateInternalNodes)
{
+ QString t = fileName.mid(fileName.lastIndexOf(QChar('/'))+1);
+ primaryTree()->setIndexFileName(t);
QDocIndexFiles::qdocIndexFiles()->generateIndex(fileName, url, title, g, generateInternalNodes);
QDocIndexFiles::destroyQDocIndexFiles();
}
diff --git a/src/tools/qdoc/qdocdatabase.h b/src/tools/qdoc/qdocdatabase.h
index 8b67aca971..9b4d7019ad 100644
--- a/src/tools/qdoc/qdocdatabase.h
+++ b/src/tools/qdoc/qdocdatabase.h
@@ -78,7 +78,14 @@ class QDocForest
bool done() { return (currentIndex_ >= searchOrder().size()); }
const QVector<Tree*>& searchOrder();
const QVector<Tree*>& indexSearchOrder();
- void setSearchOrder();
+ void setSearchOrder(QStringList& t);
+ bool isLoaded(const QString& fn) {
+ foreach (Tree* t, searchOrder()) {
+ if (fn == t->indexFileName())
+ return true;
+ }
+ return false;
+ }
const Node* findNode(const QStringList& path,
const Node* relative,
@@ -186,8 +193,18 @@ class QDocForest
}
}
+ void clearSearchOrder() { searchOrder_.clear(); }
+ void clearLinkCounts()
+ {
+ foreach (Tree* t, searchOrder())
+ t->clearLinkCount();
+ }
+ void printLinkCounts(const QString& project);
+ QString getLinkCounts(QStringList& strings, QVector<int>& counts);
+
private:
void newPrimaryTree(const QString& module);
+ void setPrimaryTree(const QString& t);
NamespaceNode* newIndexTree(const QString& module);
private:
@@ -274,12 +291,10 @@ class QDocDatabase
void resolveInheritance() { primaryTree()->resolveInheritance(); }
void resolveQmlInheritance(InnerNode* root);
void resolveIssues();
+ void resolveStuff();
void fixInheritance() { primaryTree()->fixInheritance(); }
void resolveProperties() { primaryTree()->resolveProperties(); }
- void resolveTargets() {
- primaryTree()->resolveTargets(primaryTreeRoot());
- }
void insertTarget(const QString& name,
const QString& title,
TargetRec::Type type,
@@ -355,18 +370,37 @@ class QDocDatabase
void clearOpenNamespaces() { openNamespaces_.clear(); }
void insertOpenNamespace(const QString& path) { openNamespaces_.insert(path); }
void setShowInternal(bool value) { showInternal_ = value; }
+ void setSingleExec(bool value) { singleExec_ = value; }
+ void processForest();
// Try to make this function private.
QDocForest& forest() { return forest_; }
NamespaceNode* primaryTreeRoot() { return forest_.primaryTreeRoot(); }
void newPrimaryTree(const QString& module) { forest_.newPrimaryTree(module); }
+ void setPrimaryTree(const QString& t) { forest_.setPrimaryTree(t); }
NamespaceNode* newIndexTree(const QString& module) { return forest_.newIndexTree(module); }
const QVector<Tree*>& searchOrder() { return forest_.searchOrder(); }
void setLocalSearch() { forest_.searchOrder_ = QVector<Tree*>(1, primaryTree()); }
void setSearchOrder(const QVector<Tree*>& searchOrder) { forest_.searchOrder_ = searchOrder; }
- void setSearchOrder() { forest_.setSearchOrder(); }
+ void setSearchOrder(QStringList& t) { forest_.setSearchOrder(t); }
void mergeCollections(Node::Type nt, CNMap& cnm, const Node* relative);
void mergeCollections(CollectionNode* cn);
+ void clearSearchOrder() { forest_.clearSearchOrder(); }
+ void incrementLinkCount(const Node* t) { t->tree()->incrementLinkCount(); }
+ void clearLinkCounts() { forest_.clearLinkCounts(); }
+ void printLinkCounts(const QString& t) { forest_.printLinkCounts(t); }
+ QString getLinkCounts(QStringList& strings, QVector<int>& counts) {
+ return forest_.getLinkCounts(strings, counts);
+ }
+ QString getNewLinkTarget(const Node* locNode,
+ const Node* t,
+ const QString& fileName,
+ QString& text,
+ bool broken = false) {
+ return primaryTree()->getNewLinkTarget(locNode, t, fileName, text, broken);
+ }
+ TargetList* getTargetList(const QString& t) { return primaryTree()->getTargetList(t); }
+ QStringList getTargetListKeys() { return primaryTree()->getTargetListKeys(); }
private:
friend class QDocIndexFiles;
@@ -379,6 +413,7 @@ class QDocDatabase
return forest_.findNode(path, relative, findFlags, genus);
}
void processForest(void (QDocDatabase::*) (InnerNode*));
+ bool isLoaded(const QString& t) { return forest_.isLoaded(t); }
static void initializeDB();
private:
@@ -394,20 +429,21 @@ class QDocDatabase
static QDocDatabase* qdocDB_;
static NodeMap typeNodeMap_;
bool showInternal_;
+ bool singleExec_;
QString version_;
QDocForest forest_;
- NodeMap nonCompatClasses_;
- NodeMap mainClasses_;
+ NodeMap cppClasses_;
+ NodeMap mainClasses_; // MWS: not needed, should be delete
NodeMap compatClasses_;
NodeMap obsoleteClasses_;
NodeMap classesWithObsoleteMembers_;
NodeMap obsoleteQmlTypes_;
NodeMap qmlTypesWithObsoleteMembers_;
NodeMap namespaceIndex_;
- NodeMap serviceClasses_;
+ NodeMap serviceClasses_; // MWS: not needed, should be deleted
NodeMap qmlBasicTypes_;
- NodeMap qmlClasses_;
+ NodeMap qmlTypes_;
NodeMapMap newClassMaps_;
NodeMapMap newQmlTypeMaps_;
NodeMultiMapMap newSinceMaps_;
diff --git a/src/tools/qdoc/qdocindexfiles.cpp b/src/tools/qdoc/qdocindexfiles.cpp
index 00041b2b65..e152b04ead 100644
--- a/src/tools/qdoc/qdocindexfiles.cpp
+++ b/src/tools/qdoc/qdocindexfiles.cpp
@@ -564,7 +564,6 @@ void QDocIndexFiles::readIndexSection(const QDomElement& element,
node->setReconstitutedBrief(briefAttr);
}
- // zzz
bool useParent = (element.nodeName() == "namespace" && name.isEmpty());
if (element.hasChildNodes()) {
QDomElement child = element.firstChildElement();
@@ -806,11 +805,14 @@ bool QDocIndexFiles::generateIndexSection(QXmlStreamWriter& writer,
QString fullName = node->fullDocumentName();
if (fullName != objName)
writer.writeAttribute("fullname", fullName);
+#if 0
if (Generator::useOutputSubdirs())
href = node->outputSubdirectory();
if (!href.isEmpty())
href.append(QLatin1Char('/'));
href.append(gen_->fullDocumentLocation(node));
+#endif
+ href = gen_->fullDocumentLocation(node);
}
else
href = node->name();
diff --git a/src/tools/qdoc/qmlcodemarker.h b/src/tools/qdoc/qmlcodemarker.h
index c6e4aa7e19..e9a54710df 100644
--- a/src/tools/qdoc/qmlcodemarker.h
+++ b/src/tools/qdoc/qmlcodemarker.h
@@ -51,19 +51,19 @@ public:
QmlCodeMarker();
~QmlCodeMarker();
- virtual bool recognizeCode(const QString &code);
- virtual bool recognizeExtension(const QString &ext);
- virtual bool recognizeLanguage(const QString &language);
- virtual Atom::Type atomType() const;
+ virtual bool recognizeCode(const QString &code) Q_DECL_OVERRIDE;
+ virtual bool recognizeExtension(const QString &ext) Q_DECL_OVERRIDE;
+ virtual bool recognizeLanguage(const QString &language) Q_DECL_OVERRIDE;
+ virtual Atom::Type atomType() const Q_DECL_OVERRIDE;
virtual QString markedUpCode(const QString &code,
const Node *relative,
- const Location &location);
+ const Location &location) Q_DECL_OVERRIDE;
- virtual QString markedUpName(const Node *node);
- virtual QString markedUpFullName(const Node *node, const Node *relative);
- virtual QString markedUpIncludes(const QStringList &includes);
- virtual QString functionBeginRegExp(const QString &funcName);
- virtual QString functionEndRegExp(const QString &funcName);
+ virtual QString markedUpName(const Node *node) Q_DECL_OVERRIDE;
+ virtual QString markedUpFullName(const Node *node, const Node *relative) Q_DECL_OVERRIDE;
+ virtual QString markedUpIncludes(const QStringList &includes) Q_DECL_OVERRIDE;
+ virtual QString functionBeginRegExp(const QString &funcName) Q_DECL_OVERRIDE;
+ virtual QString functionEndRegExp(const QString &funcName) Q_DECL_OVERRIDE;
/* Copied from src/declarative/qml/qdeclarativescriptparser.cpp */
QList<QQmlJS::AST::SourceLocation> extractPragmas(QString &script);
diff --git a/src/tools/qdoc/qmlcodeparser.h b/src/tools/qdoc/qmlcodeparser.h
index cf60b1d7d7..715b4278b9 100644
--- a/src/tools/qdoc/qmlcodeparser.h
+++ b/src/tools/qdoc/qmlcodeparser.h
@@ -59,12 +59,12 @@ public:
QmlCodeParser();
virtual ~QmlCodeParser();
- virtual void initializeParser(const Config& config);
- virtual void terminateParser();
- virtual QString language();
- virtual QStringList sourceFileNameFilter();
- virtual void parseSourceFile(const Location& location, const QString& filePath);
- virtual void doneParsingSourceFiles();
+ virtual void initializeParser(const Config& config) Q_DECL_OVERRIDE;
+ virtual void terminateParser() Q_DECL_OVERRIDE;
+ virtual QString language() Q_DECL_OVERRIDE;
+ virtual QStringList sourceFileNameFilter() Q_DECL_OVERRIDE;
+ virtual void parseSourceFile(const Location& location, const QString& filePath) Q_DECL_OVERRIDE;
+ virtual void doneParsingSourceFiles() Q_DECL_OVERRIDE;
/* Copied from src/declarative/qml/qdeclarativescriptparser.cpp */
void extractPragmas(QString &script);
diff --git a/src/tools/qdoc/qmlmarkupvisitor.h b/src/tools/qdoc/qmlmarkupvisitor.h
index 09aa1f7400..4debce9129 100644
--- a/src/tools/qdoc/qmlmarkupvisitor.h
+++ b/src/tools/qdoc/qmlmarkupvisitor.h
@@ -56,92 +56,92 @@ public:
QString markedUpCode();
- virtual bool visit(QQmlJS::AST::UiImport *);
- virtual void endVisit(QQmlJS::AST::UiImport *);
-
- virtual bool visit(QQmlJS::AST::UiPublicMember *);
- virtual bool visit(QQmlJS::AST::UiObjectDefinition *);
-
- virtual bool visit(QQmlJS::AST::UiObjectInitializer *);
- virtual void endVisit(QQmlJS::AST::UiObjectInitializer *);
-
- virtual bool visit(QQmlJS::AST::UiObjectBinding *);
- virtual bool visit(QQmlJS::AST::UiScriptBinding *);
- virtual bool visit(QQmlJS::AST::UiArrayBinding *);
- virtual bool visit(QQmlJS::AST::UiArrayMemberList *);
- virtual bool visit(QQmlJS::AST::UiQualifiedId *);
-
- virtual bool visit(QQmlJS::AST::ThisExpression *);
- virtual bool visit(QQmlJS::AST::IdentifierExpression *);
- virtual bool visit(QQmlJS::AST::NullExpression *);
- virtual bool visit(QQmlJS::AST::TrueLiteral *);
- virtual bool visit(QQmlJS::AST::FalseLiteral *);
- virtual bool visit(QQmlJS::AST::NumericLiteral *);
- virtual bool visit(QQmlJS::AST::StringLiteral *);
- virtual bool visit(QQmlJS::AST::RegExpLiteral *);
- virtual bool visit(QQmlJS::AST::ArrayLiteral *);
-
- virtual bool visit(QQmlJS::AST::ObjectLiteral *);
- virtual void endVisit(QQmlJS::AST::ObjectLiteral *);
-
- virtual bool visit(QQmlJS::AST::ElementList *);
- virtual bool visit(QQmlJS::AST::Elision *);
- virtual bool visit(QQmlJS::AST::PropertyNameAndValue *);
- virtual bool visit(QQmlJS::AST::ArrayMemberExpression *);
- virtual bool visit(QQmlJS::AST::FieldMemberExpression *);
- virtual bool visit(QQmlJS::AST::NewMemberExpression *);
- virtual bool visit(QQmlJS::AST::NewExpression *);
- virtual bool visit(QQmlJS::AST::ArgumentList *);
- virtual bool visit(QQmlJS::AST::PostIncrementExpression *);
- virtual bool visit(QQmlJS::AST::PostDecrementExpression *);
- virtual bool visit(QQmlJS::AST::DeleteExpression *);
- virtual bool visit(QQmlJS::AST::VoidExpression *);
- virtual bool visit(QQmlJS::AST::TypeOfExpression *);
- virtual bool visit(QQmlJS::AST::PreIncrementExpression *);
- virtual bool visit(QQmlJS::AST::PreDecrementExpression *);
- virtual bool visit(QQmlJS::AST::UnaryPlusExpression *);
- virtual bool visit(QQmlJS::AST::UnaryMinusExpression *);
- virtual bool visit(QQmlJS::AST::TildeExpression *);
- virtual bool visit(QQmlJS::AST::NotExpression *);
- virtual bool visit(QQmlJS::AST::BinaryExpression *);
- virtual bool visit(QQmlJS::AST::ConditionalExpression *);
- virtual bool visit(QQmlJS::AST::Expression *);
-
- virtual bool visit(QQmlJS::AST::Block *);
- virtual void endVisit(QQmlJS::AST::Block *);
-
- virtual bool visit(QQmlJS::AST::VariableStatement *);
- virtual bool visit(QQmlJS::AST::VariableDeclarationList *);
- virtual bool visit(QQmlJS::AST::VariableDeclaration *);
- virtual bool visit(QQmlJS::AST::EmptyStatement *);
- virtual bool visit(QQmlJS::AST::ExpressionStatement *);
- virtual bool visit(QQmlJS::AST::IfStatement *);
- virtual bool visit(QQmlJS::AST::DoWhileStatement *);
- virtual bool visit(QQmlJS::AST::WhileStatement *);
- virtual bool visit(QQmlJS::AST::ForStatement *);
- virtual bool visit(QQmlJS::AST::LocalForStatement *);
- virtual bool visit(QQmlJS::AST::ForEachStatement *);
- virtual bool visit(QQmlJS::AST::LocalForEachStatement *);
- virtual bool visit(QQmlJS::AST::ContinueStatement *);
- virtual bool visit(QQmlJS::AST::BreakStatement *);
- virtual bool visit(QQmlJS::AST::ReturnStatement *);
- virtual bool visit(QQmlJS::AST::WithStatement *);
-
- virtual bool visit(QQmlJS::AST::CaseBlock *);
- virtual void endVisit(QQmlJS::AST::CaseBlock *);
-
- virtual bool visit(QQmlJS::AST::SwitchStatement *);
- virtual bool visit(QQmlJS::AST::CaseClause *);
- virtual bool visit(QQmlJS::AST::DefaultClause *);
- virtual bool visit(QQmlJS::AST::LabelledStatement *);
- virtual bool visit(QQmlJS::AST::ThrowStatement *);
- virtual bool visit(QQmlJS::AST::TryStatement *);
- virtual bool visit(QQmlJS::AST::Catch *);
- virtual bool visit(QQmlJS::AST::Finally *);
- virtual bool visit(QQmlJS::AST::FunctionDeclaration *);
- virtual bool visit(QQmlJS::AST::FunctionExpression *);
- virtual bool visit(QQmlJS::AST::FormalParameterList *);
- virtual bool visit(QQmlJS::AST::DebuggerStatement *);
+ virtual bool visit(QQmlJS::AST::UiImport *) Q_DECL_OVERRIDE;
+ virtual void endVisit(QQmlJS::AST::UiImport *) Q_DECL_OVERRIDE;
+
+ virtual bool visit(QQmlJS::AST::UiPublicMember *) Q_DECL_OVERRIDE;
+ virtual bool visit(QQmlJS::AST::UiObjectDefinition *) Q_DECL_OVERRIDE;
+
+ virtual bool visit(QQmlJS::AST::UiObjectInitializer *) Q_DECL_OVERRIDE;
+ virtual void endVisit(QQmlJS::AST::UiObjectInitializer *) Q_DECL_OVERRIDE;
+
+ virtual bool visit(QQmlJS::AST::UiObjectBinding *) Q_DECL_OVERRIDE;
+ virtual bool visit(QQmlJS::AST::UiScriptBinding *) Q_DECL_OVERRIDE;
+ virtual bool visit(QQmlJS::AST::UiArrayBinding *) Q_DECL_OVERRIDE;
+ virtual bool visit(QQmlJS::AST::UiArrayMemberList *) Q_DECL_OVERRIDE;
+ virtual bool visit(QQmlJS::AST::UiQualifiedId *) Q_DECL_OVERRIDE;
+
+ virtual bool visit(QQmlJS::AST::ThisExpression *) Q_DECL_OVERRIDE;
+ virtual bool visit(QQmlJS::AST::IdentifierExpression *) Q_DECL_OVERRIDE;
+ virtual bool visit(QQmlJS::AST::NullExpression *) Q_DECL_OVERRIDE;
+ virtual bool visit(QQmlJS::AST::TrueLiteral *) Q_DECL_OVERRIDE;
+ virtual bool visit(QQmlJS::AST::FalseLiteral *) Q_DECL_OVERRIDE;
+ virtual bool visit(QQmlJS::AST::NumericLiteral *) Q_DECL_OVERRIDE;
+ virtual bool visit(QQmlJS::AST::StringLiteral *) Q_DECL_OVERRIDE;
+ virtual bool visit(QQmlJS::AST::RegExpLiteral *) Q_DECL_OVERRIDE;
+ virtual bool visit(QQmlJS::AST::ArrayLiteral *) Q_DECL_OVERRIDE;
+
+ virtual bool visit(QQmlJS::AST::ObjectLiteral *) Q_DECL_OVERRIDE;
+ virtual void endVisit(QQmlJS::AST::ObjectLiteral *) Q_DECL_OVERRIDE;
+
+ virtual bool visit(QQmlJS::AST::ElementList *) Q_DECL_OVERRIDE;
+ virtual bool visit(QQmlJS::AST::Elision *) Q_DECL_OVERRIDE;
+ virtual bool visit(QQmlJS::AST::PropertyNameAndValue *) Q_DECL_OVERRIDE;
+ virtual bool visit(QQmlJS::AST::ArrayMemberExpression *) Q_DECL_OVERRIDE;
+ virtual bool visit(QQmlJS::AST::FieldMemberExpression *) Q_DECL_OVERRIDE;
+ virtual bool visit(QQmlJS::AST::NewMemberExpression *) Q_DECL_OVERRIDE;
+ virtual bool visit(QQmlJS::AST::NewExpression *) Q_DECL_OVERRIDE;
+ virtual bool visit(QQmlJS::AST::ArgumentList *) Q_DECL_OVERRIDE;
+ virtual bool visit(QQmlJS::AST::PostIncrementExpression *) Q_DECL_OVERRIDE;
+ virtual bool visit(QQmlJS::AST::PostDecrementExpression *) Q_DECL_OVERRIDE;
+ virtual bool visit(QQmlJS::AST::DeleteExpression *) Q_DECL_OVERRIDE;
+ virtual bool visit(QQmlJS::AST::VoidExpression *) Q_DECL_OVERRIDE;
+ virtual bool visit(QQmlJS::AST::TypeOfExpression *) Q_DECL_OVERRIDE;
+ virtual bool visit(QQmlJS::AST::PreIncrementExpression *) Q_DECL_OVERRIDE;
+ virtual bool visit(QQmlJS::AST::PreDecrementExpression *) Q_DECL_OVERRIDE;
+ virtual bool visit(QQmlJS::AST::UnaryPlusExpression *) Q_DECL_OVERRIDE;
+ virtual bool visit(QQmlJS::AST::UnaryMinusExpression *) Q_DECL_OVERRIDE;
+ virtual bool visit(QQmlJS::AST::TildeExpression *) Q_DECL_OVERRIDE;
+ virtual bool visit(QQmlJS::AST::NotExpression *) Q_DECL_OVERRIDE;
+ virtual bool visit(QQmlJS::AST::BinaryExpression *) Q_DECL_OVERRIDE;
+ virtual bool visit(QQmlJS::AST::ConditionalExpression *) Q_DECL_OVERRIDE;
+ virtual bool visit(QQmlJS::AST::Expression *) Q_DECL_OVERRIDE;
+
+ virtual bool visit(QQmlJS::AST::Block *) Q_DECL_OVERRIDE;
+ virtual void endVisit(QQmlJS::AST::Block *) Q_DECL_OVERRIDE;
+
+ virtual bool visit(QQmlJS::AST::VariableStatement *) Q_DECL_OVERRIDE;
+ virtual bool visit(QQmlJS::AST::VariableDeclarationList *) Q_DECL_OVERRIDE;
+ virtual bool visit(QQmlJS::AST::VariableDeclaration *) Q_DECL_OVERRIDE;
+ virtual bool visit(QQmlJS::AST::EmptyStatement *) Q_DECL_OVERRIDE;
+ virtual bool visit(QQmlJS::AST::ExpressionStatement *) Q_DECL_OVERRIDE;
+ virtual bool visit(QQmlJS::AST::IfStatement *) Q_DECL_OVERRIDE;
+ virtual bool visit(QQmlJS::AST::DoWhileStatement *) Q_DECL_OVERRIDE;
+ virtual bool visit(QQmlJS::AST::WhileStatement *) Q_DECL_OVERRIDE;
+ virtual bool visit(QQmlJS::AST::ForStatement *) Q_DECL_OVERRIDE;
+ virtual bool visit(QQmlJS::AST::LocalForStatement *) Q_DECL_OVERRIDE;
+ virtual bool visit(QQmlJS::AST::ForEachStatement *) Q_DECL_OVERRIDE;
+ virtual bool visit(QQmlJS::AST::LocalForEachStatement *) Q_DECL_OVERRIDE;
+ virtual bool visit(QQmlJS::AST::ContinueStatement *) Q_DECL_OVERRIDE;
+ virtual bool visit(QQmlJS::AST::BreakStatement *) Q_DECL_OVERRIDE;
+ virtual bool visit(QQmlJS::AST::ReturnStatement *) Q_DECL_OVERRIDE;
+ virtual bool visit(QQmlJS::AST::WithStatement *) Q_DECL_OVERRIDE;
+
+ virtual bool visit(QQmlJS::AST::CaseBlock *) Q_DECL_OVERRIDE;
+ virtual void endVisit(QQmlJS::AST::CaseBlock *) Q_DECL_OVERRIDE;
+
+ virtual bool visit(QQmlJS::AST::SwitchStatement *) Q_DECL_OVERRIDE;
+ virtual bool visit(QQmlJS::AST::CaseClause *) Q_DECL_OVERRIDE;
+ virtual bool visit(QQmlJS::AST::DefaultClause *) Q_DECL_OVERRIDE;
+ virtual bool visit(QQmlJS::AST::LabelledStatement *) Q_DECL_OVERRIDE;
+ virtual bool visit(QQmlJS::AST::ThrowStatement *) Q_DECL_OVERRIDE;
+ virtual bool visit(QQmlJS::AST::TryStatement *) Q_DECL_OVERRIDE;
+ virtual bool visit(QQmlJS::AST::Catch *) Q_DECL_OVERRIDE;
+ virtual bool visit(QQmlJS::AST::Finally *) Q_DECL_OVERRIDE;
+ virtual bool visit(QQmlJS::AST::FunctionDeclaration *) Q_DECL_OVERRIDE;
+ virtual bool visit(QQmlJS::AST::FunctionExpression *) Q_DECL_OVERRIDE;
+ virtual bool visit(QQmlJS::AST::FormalParameterList *) Q_DECL_OVERRIDE;
+ virtual bool visit(QQmlJS::AST::DebuggerStatement *) Q_DECL_OVERRIDE;
protected:
QString protect(const QString &string);
diff --git a/src/tools/qdoc/qmlparser/qqmljsast_p.h b/src/tools/qdoc/qmlparser/qqmljsast_p.h
index fa4b2c3e13..ae79046563 100644
--- a/src/tools/qdoc/qmlparser/qqmljsast_p.h
+++ b/src/tools/qdoc/qmlparser/qqmljsast_p.h
@@ -247,7 +247,7 @@ class QML_PARSER_EXPORT ExpressionNode: public Node
public:
ExpressionNode() {}
- virtual ExpressionNode *expressionCast();
+ virtual ExpressionNode *expressionCast() Q_DECL_OVERRIDE;
};
class QML_PARSER_EXPORT Statement: public Node
@@ -255,7 +255,7 @@ class QML_PARSER_EXPORT Statement: public Node
public:
Statement() {}
- virtual Statement *statementCast();
+ virtual Statement *statementCast() Q_DECL_OVERRIDE;
};
class QML_PARSER_EXPORT NestedExpression: public ExpressionNode
@@ -267,12 +267,12 @@ public:
: expression(expression)
{ kind = K; }
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return lparenToken; }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return rparenToken; }
// attributes
@@ -288,12 +288,12 @@ public:
ThisExpression() { kind = K; }
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return thisToken; }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return thisToken; }
// attributes
@@ -308,12 +308,12 @@ public:
IdentifierExpression(const QStringRef &n):
name (n) { kind = K; }
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return identifierToken; }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return identifierToken; }
// attributes
@@ -328,12 +328,12 @@ public:
NullExpression() { kind = K; }
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return nullToken; }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return nullToken; }
// attributes
@@ -347,12 +347,12 @@ public:
TrueLiteral() { kind = K; }
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return trueToken; }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return trueToken; }
// attributes
@@ -366,12 +366,12 @@ public:
FalseLiteral() { kind = K; }
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return falseToken; }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return falseToken; }
// attributes
@@ -386,12 +386,12 @@ public:
NumericLiteral(double v):
value(v) { kind = K; }
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return literalToken; }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return literalToken; }
// attributes:
@@ -407,12 +407,12 @@ public:
StringLiteral(const QStringRef &v):
value (v) { kind = K; }
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return literalToken; }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return literalToken; }
// attributes:
@@ -428,12 +428,12 @@ public:
RegExpLiteral(const QStringRef &p, int f):
pattern (p), flags (f) { kind = K; }
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return literalToken; }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return literalToken; }
// attributes:
@@ -459,12 +459,12 @@ public:
elements (elts), elision (e)
{ kind = K; }
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return lbracketToken; }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return rbracketToken; }
// attributes
@@ -486,12 +486,12 @@ public:
ObjectLiteral(PropertyAssignmentList *plist):
properties (plist) { kind = K; }
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return lbraceToken; }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return rbraceToken; }
// attributes
@@ -515,12 +515,12 @@ public:
previous->next = this;
}
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return commaToken; }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return next ? next->lastSourceLocation() : commaToken; }
inline Elision *finish ()
@@ -559,16 +559,16 @@ public:
return front;
}
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{
if (elision)
return elision->firstSourceLocation();
return expression->firstSourceLocation();
}
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{
if (next)
return next->lastSourceLocation();
@@ -589,10 +589,10 @@ public:
PropertyName() { kind = K; }
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return propertyNameToken; }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return propertyNameToken; }
// attributes
@@ -630,12 +630,12 @@ public:
return front;
}
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return assignment->firstSourceLocation(); }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return next ? next->lastSourceLocation() : assignment->lastSourceLocation(); }
// attributes
@@ -653,12 +653,12 @@ public:
: name(n), value(v)
{ kind = K; }
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return name->firstSourceLocation(); }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return value->lastSourceLocation(); }
// attributes
@@ -686,12 +686,12 @@ public:
: type(Setter), name(n), formals(f), functionBody (b)
{ kind = K; }
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return getSetToken; }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return rbraceToken; }
// attributes
@@ -714,7 +714,7 @@ public:
IdentifierPropertyName(const QStringRef &n):
id (n) { kind = K; }
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
// attributes
QStringRef id;
@@ -728,7 +728,7 @@ public:
StringLiteralPropertyName(const QStringRef &n):
id (n) { kind = K; }
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
// attributes
QStringRef id;
@@ -742,7 +742,7 @@ public:
NumericLiteralPropertyName(double n):
id (n) { kind = K; }
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
// attributes
double id;
@@ -757,12 +757,12 @@ public:
base (b), expression (e)
{ kind = K; }
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return base->firstSourceLocation(); }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return rbracketToken; }
// attributes
@@ -781,12 +781,12 @@ public:
base (b), name (n)
{ kind = K; }
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return base->firstSourceLocation(); }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return identifierToken; }
// attributes
@@ -805,12 +805,12 @@ public:
base (b), arguments (a)
{ kind = K; }
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return newToken; }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return rparenToken; }
// attributes
@@ -829,12 +829,12 @@ public:
NewExpression(ExpressionNode *e):
expression (e) { kind = K; }
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return newToken; }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return expression->lastSourceLocation(); }
// attributes
@@ -851,12 +851,12 @@ public:
base (b), arguments (a)
{ kind = K; }
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return base->firstSourceLocation(); }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return rparenToken; }
// attributes
@@ -883,12 +883,12 @@ public:
previous->next = this;
}
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return expression->firstSourceLocation(); }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{
if (next)
return next->lastSourceLocation();
@@ -916,12 +916,12 @@ public:
PostIncrementExpression(ExpressionNode *b):
base (b) { kind = K; }
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return base->firstSourceLocation(); }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return incrementToken; }
// attributes
@@ -937,12 +937,12 @@ public:
PostDecrementExpression(ExpressionNode *b):
base (b) { kind = K; }
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return base->firstSourceLocation(); }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return decrementToken; }
// attributes
@@ -958,12 +958,12 @@ public:
DeleteExpression(ExpressionNode *e):
expression (e) { kind = K; }
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return deleteToken; }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return expression->lastSourceLocation(); }
// attributes
@@ -979,12 +979,12 @@ public:
VoidExpression(ExpressionNode *e):
expression (e) { kind = K; }
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return voidToken; }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return expression->lastSourceLocation(); }
// attributes
@@ -1000,12 +1000,12 @@ public:
TypeOfExpression(ExpressionNode *e):
expression (e) { kind = K; }
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return typeofToken; }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return expression->lastSourceLocation(); }
// attributes
@@ -1021,12 +1021,12 @@ public:
PreIncrementExpression(ExpressionNode *e):
expression (e) { kind = K; }
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return incrementToken; }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return expression->lastSourceLocation(); }
// attributes
@@ -1042,12 +1042,12 @@ public:
PreDecrementExpression(ExpressionNode *e):
expression (e) { kind = K; }
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return decrementToken; }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return expression->lastSourceLocation(); }
// attributes
@@ -1063,12 +1063,12 @@ public:
UnaryPlusExpression(ExpressionNode *e):
expression (e) { kind = K; }
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return plusToken; }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return expression->lastSourceLocation(); }
// attributes
@@ -1084,12 +1084,12 @@ public:
UnaryMinusExpression(ExpressionNode *e):
expression (e) { kind = K; }
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return minusToken; }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return expression->lastSourceLocation(); }
// attributes
@@ -1105,12 +1105,12 @@ public:
TildeExpression(ExpressionNode *e):
expression (e) { kind = K; }
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return tildeToken; }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return expression->lastSourceLocation(); }
// attributes
@@ -1126,12 +1126,12 @@ public:
NotExpression(ExpressionNode *e):
expression (e) { kind = K; }
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return notToken; }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return expression->lastSourceLocation(); }
// attributes
@@ -1148,14 +1148,14 @@ public:
left (l), op (o), right (r)
{ kind = K; }
- virtual BinaryExpression *binaryExpressionCast();
+ virtual BinaryExpression *binaryExpressionCast() Q_DECL_OVERRIDE;
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return left->firstSourceLocation(); }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return right->lastSourceLocation(); }
// attributes
@@ -1174,12 +1174,12 @@ public:
expression (e), ok (t), ko (f)
{ kind = K; }
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return expression->firstSourceLocation(); }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return ko->lastSourceLocation(); }
// attributes
@@ -1198,12 +1198,12 @@ public:
Expression(ExpressionNode *l, ExpressionNode *r):
left (l), right (r) { kind = K; }
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return left->firstSourceLocation(); }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return right->lastSourceLocation(); }
// attributes
@@ -1220,12 +1220,12 @@ public:
Block(StatementList *slist):
statements (slist) { kind = K; }
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return lbraceToken; }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return rbraceToken; }
// attributes
@@ -1251,12 +1251,12 @@ public:
previous->next = this;
}
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return statement->firstSourceLocation(); }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return next ? next->lastSourceLocation() : statement->lastSourceLocation(); }
inline StatementList *finish ()
@@ -1280,12 +1280,12 @@ public:
declarations (vlist)
{ kind = K; }
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return declarationKindToken; }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return semicolonToken; }
// attributes
@@ -1303,12 +1303,12 @@ public:
name (n), expression (e), readOnly(false)
{ kind = K; }
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return identifierToken; }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return expression ? expression->lastSourceLocation() : identifierToken; }
// attributes
@@ -1335,12 +1335,12 @@ public:
previous->next = this;
}
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return declaration->firstSourceLocation(); }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{
if (next)
return next->lastSourceLocation();
@@ -1372,12 +1372,12 @@ public:
EmptyStatement() { kind = K; }
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return semicolonToken; }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return semicolonToken; }
// attributes
@@ -1392,12 +1392,12 @@ public:
ExpressionStatement(ExpressionNode *e):
expression (e) { kind = K; }
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return expression->firstSourceLocation(); }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return semicolonToken; }
// attributes
@@ -1414,12 +1414,12 @@ public:
expression (e), ok (t), ko (f)
{ kind = K; }
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return ifToken; }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{
if (ko)
return ko->lastSourceLocation();
@@ -1446,12 +1446,12 @@ public:
statement (stmt), expression (e)
{ kind = K; }
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return doToken; }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return semicolonToken; }
// attributes
@@ -1473,12 +1473,12 @@ public:
expression (e), statement (stmt)
{ kind = K; }
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return whileToken; }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return statement->lastSourceLocation(); }
// attributes
@@ -1498,12 +1498,12 @@ public:
initialiser (i), condition (c), expression (e), statement (stmt)
{ kind = K; }
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return forToken; }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return statement->lastSourceLocation(); }
// attributes
@@ -1527,12 +1527,12 @@ public:
declarations (vlist), condition (c), expression (e), statement (stmt)
{ kind = K; }
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return forToken; }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return statement->lastSourceLocation(); }
// attributes
@@ -1557,12 +1557,12 @@ public:
initialiser (i), expression (e), statement (stmt)
{ kind = K; }
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return forToken; }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return statement->lastSourceLocation(); }
// attributes
@@ -1584,12 +1584,12 @@ public:
declaration (v), expression (e), statement (stmt)
{ kind = K; }
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return forToken; }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return statement->lastSourceLocation(); }
// attributes
@@ -1611,12 +1611,12 @@ public:
ContinueStatement(const QStringRef &l = QStringRef()):
label (l) { kind = K; }
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return continueToken; }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return semicolonToken; }
// attributes
@@ -1634,12 +1634,12 @@ public:
BreakStatement(const QStringRef &l):
label (l) { kind = K; }
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return breakToken; }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return semicolonToken; }
// attributes
@@ -1657,12 +1657,12 @@ public:
ReturnStatement(ExpressionNode *e):
expression (e) { kind = K; }
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return returnToken; }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return semicolonToken; }
// attributes
@@ -1680,12 +1680,12 @@ public:
expression (e), statement (stmt)
{ kind = K; }
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return withToken; }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return statement->lastSourceLocation(); }
// attributes
@@ -1705,12 +1705,12 @@ public:
clauses (c), defaultClause (d), moreClauses (r)
{ kind = K; }
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return lbraceToken; }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return rbraceToken; }
// attributes
@@ -1730,12 +1730,12 @@ public:
expression (e), block (b)
{ kind = K; }
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return switchToken; }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return block->rbraceToken; }
// attributes
@@ -1755,12 +1755,12 @@ public:
expression (e), statements (slist)
{ kind = K; }
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return caseToken; }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return statements ? statements->lastSourceLocation() : colonToken; }
// attributes
@@ -1787,12 +1787,12 @@ public:
previous->next = this;
}
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return clause->firstSourceLocation(); }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return next ? next->lastSourceLocation() : clause->lastSourceLocation(); }
inline CaseClauses *finish ()
@@ -1816,12 +1816,12 @@ public:
statements (slist)
{ kind = K; }
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return defaultToken; }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return statements ? statements->lastSourceLocation() : colonToken; }
// attributes
@@ -1839,12 +1839,12 @@ public:
label (l), statement (stmt)
{ kind = K; }
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return identifierToken; }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return statement->lastSourceLocation(); }
// attributes
@@ -1862,12 +1862,12 @@ public:
ThrowStatement(ExpressionNode *e):
expression (e) { kind = K; }
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return throwToken; }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return semicolonToken; }
// attributes
@@ -1885,12 +1885,12 @@ public:
name (n), statement (stmt)
{ kind = K; }
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return catchToken; }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return statement->lastSourceLocation(); }
// attributes
@@ -1911,12 +1911,12 @@ public:
statement (stmt)
{ kind = K; }
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return finallyToken; }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return statement ? statement->lastSourceLocation() : finallyToken; }
// attributes
@@ -1941,12 +1941,12 @@ public:
statement (stmt), catchExpression (c), finallyExpression (0)
{ kind = K; }
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return tryToken; }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{
if (finallyExpression)
return finallyExpression->statement->rbraceToken;
@@ -1972,12 +1972,12 @@ public:
name (n), formals (f), body (b)
{ kind = K; }
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return functionToken; }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return rbraceToken; }
// attributes
@@ -2001,7 +2001,7 @@ public:
FunctionExpression(n, f, b)
{ kind = K; }
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
};
class QML_PARSER_EXPORT FormalParameterList: public Node
@@ -2021,12 +2021,12 @@ public:
previous->next = this;
}
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return identifierToken; }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return next ? next->lastSourceLocation() : identifierToken; }
inline FormalParameterList *finish ()
@@ -2069,12 +2069,12 @@ public:
previous->next = this;
}
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return element->firstSourceLocation(); }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return next ? next->lastSourceLocation() : element->lastSourceLocation(); }
inline SourceElements *finish ()
@@ -2098,12 +2098,12 @@ public:
elements (elts)
{ kind = K; }
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return elements ? elements->firstSourceLocation() : SourceLocation(); }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return elements ? elements->lastSourceLocation() : SourceLocation(); }
// attributes
@@ -2119,12 +2119,12 @@ public:
elements (elts)
{ kind = K; }
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return elements ? elements->firstSourceLocation() : SourceLocation(); }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return elements ? elements->lastSourceLocation() : SourceLocation(); }
// attributes
@@ -2140,12 +2140,12 @@ public:
declaration (f)
{ kind = K; }
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return declaration->firstSourceLocation(); }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return declaration->lastSourceLocation(); }
// attributes
@@ -2161,12 +2161,12 @@ public:
statement (stmt)
{ kind = K; }
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return statement->firstSourceLocation(); }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return statement->lastSourceLocation(); }
// attributes
@@ -2181,12 +2181,12 @@ public:
DebuggerStatement()
{ kind = K; }
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return debuggerToken; }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return semicolonToken; }
// attributes
@@ -2218,12 +2218,12 @@ public:
return head;
}
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return identifierToken; }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return next ? next->lastSourceLocation() : identifierToken; }
// attributes
@@ -2245,12 +2245,12 @@ public:
: importUri(uri)
{ kind = K; }
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return importToken; }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return semicolonToken; }
// attributes
@@ -2271,7 +2271,7 @@ public:
virtual SourceLocation firstSourceLocation() const = 0;
virtual SourceLocation lastSourceLocation() const = 0;
- virtual UiObjectMember *uiObjectMemberCast();
+ virtual UiObjectMember *uiObjectMemberCast() Q_DECL_OVERRIDE;
};
class QML_PARSER_EXPORT UiObjectMemberList: public Node
@@ -2291,12 +2291,12 @@ public:
previous->next = this;
}
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return member->firstSourceLocation(); }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return next ? next->lastSourceLocation() : member->lastSourceLocation(); }
UiObjectMemberList *finish()
@@ -2335,12 +2335,12 @@ public:
return head;
}
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return identifierToken; }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return next ? next->lastSourceLocation() : identifierToken; }
// attributes
@@ -2358,12 +2358,12 @@ public:
: pragmaType(type)
{ kind = K; }
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return pragmaToken; }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return semicolonToken; }
// attributes
@@ -2408,12 +2408,12 @@ public:
return head;
}
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return headerItem->firstSourceLocation(); }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return next ? next->lastSourceLocation() : headerItem->lastSourceLocation(); }
// attributes
@@ -2430,9 +2430,9 @@ public:
: headers(headers), members(members)
{ kind = K; }
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{
if (headers)
return headers->firstSourceLocation();
@@ -2441,7 +2441,7 @@ public:
return SourceLocation();
}
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{
if (members)
return members->lastSourceLocation();
@@ -2472,12 +2472,12 @@ public:
previous->next = this;
}
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return member->firstSourceLocation(); }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return next ? next->lastSourceLocation() : member->lastSourceLocation(); }
UiArrayMemberList *finish()
@@ -2502,12 +2502,12 @@ public:
: members(members)
{ kind = K; }
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return lbraceToken; }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return rbraceToken; }
// attributes
@@ -2533,12 +2533,12 @@ public:
previous->next = this;
}
- virtual void accept0(Visitor *);
+ virtual void accept0(Visitor *) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return propertyTypeToken; }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return next ? next->lastSourceLocation() : identifierToken; }
inline UiParameterList *finish ()
@@ -2573,9 +2573,9 @@ public:
: type(Property), memberType(memberType), name(name), statement(statement), binding(0), isDefaultMember(false), isReadonlyMember(false), parameters(0)
{ kind = K; }
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{
if (defaultToken.isValid())
return defaultToken;
@@ -2585,7 +2585,7 @@ public:
return propertyToken;
}
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{
if (binding)
return binding->lastSourceLocation();
@@ -2625,12 +2625,12 @@ public:
: qualifiedTypeNameId(qualifiedTypeNameId), initializer(initializer)
{ kind = K; }
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return qualifiedTypeNameId->identifierToken; }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return initializer->rbraceToken; }
// attributes
@@ -2647,7 +2647,7 @@ public:
: sourceElement(sourceElement)
{ kind = K; }
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{
if (FunctionDeclaration *funDecl = cast<FunctionDeclaration *>(sourceElement))
return funDecl->firstSourceLocation();
@@ -2657,7 +2657,7 @@ public:
return SourceLocation();
}
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{
if (FunctionDeclaration *funDecl = cast<FunctionDeclaration *>(sourceElement))
return funDecl->lastSourceLocation();
@@ -2667,7 +2667,7 @@ public:
return SourceLocation();
}
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
// attributes
@@ -2688,7 +2688,7 @@ public:
hasOnToken(false)
{ kind = K; }
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{
if (hasOnToken && qualifiedTypeNameId)
return qualifiedTypeNameId->identifierToken;
@@ -2696,10 +2696,10 @@ public:
return qualifiedId->identifierToken;
}
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return initializer->rbraceToken; }
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
// attributes
@@ -2721,13 +2721,13 @@ public:
statement(statement)
{ kind = K; }
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return qualifiedId->identifierToken; }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return statement->lastSourceLocation(); }
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
// attributes
UiQualifiedId *qualifiedId;
@@ -2746,13 +2746,13 @@ public:
members(members)
{ kind = K; }
- virtual SourceLocation firstSourceLocation() const
+ virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
{ return qualifiedId->identifierToken; }
- virtual SourceLocation lastSourceLocation() const
+ virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
{ return rbracketToken; }
- virtual void accept0(Visitor *visitor);
+ virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
// attributes
UiQualifiedId *qualifiedId;
diff --git a/src/tools/qdoc/qmlvisitor.h b/src/tools/qdoc/qmlvisitor.h
index ed9ba7c6eb..418772cdff 100644
--- a/src/tools/qdoc/qmlvisitor.h
+++ b/src/tools/qdoc/qmlvisitor.h
@@ -67,30 +67,30 @@ public:
const QSet<QString> &topics);
virtual ~QmlDocVisitor();
- bool visit(QQmlJS::AST::UiImport *import);
- void endVisit(QQmlJS::AST::UiImport *definition);
+ bool visit(QQmlJS::AST::UiImport *import) Q_DECL_OVERRIDE;
+ void endVisit(QQmlJS::AST::UiImport *definition) Q_DECL_OVERRIDE;
- bool visit(QQmlJS::AST::UiObjectDefinition *definition);
- void endVisit(QQmlJS::AST::UiObjectDefinition *definition);
+ bool visit(QQmlJS::AST::UiObjectDefinition *definition) Q_DECL_OVERRIDE;
+ void endVisit(QQmlJS::AST::UiObjectDefinition *definition) Q_DECL_OVERRIDE;
- bool visit(QQmlJS::AST::UiPublicMember *member);
- void endVisit(QQmlJS::AST::UiPublicMember *definition);
+ bool visit(QQmlJS::AST::UiPublicMember *member) Q_DECL_OVERRIDE;
+ void endVisit(QQmlJS::AST::UiPublicMember *definition) Q_DECL_OVERRIDE;
- virtual bool visit(QQmlJS::AST::UiObjectBinding *);
- virtual void endVisit(QQmlJS::AST::UiObjectBinding *);
- virtual void endVisit(QQmlJS::AST::UiArrayBinding *);
- virtual bool visit(QQmlJS::AST::UiArrayBinding *);
+ virtual bool visit(QQmlJS::AST::UiObjectBinding *) Q_DECL_OVERRIDE;
+ virtual void endVisit(QQmlJS::AST::UiObjectBinding *) Q_DECL_OVERRIDE;
+ virtual void endVisit(QQmlJS::AST::UiArrayBinding *) Q_DECL_OVERRIDE;
+ virtual bool visit(QQmlJS::AST::UiArrayBinding *) Q_DECL_OVERRIDE;
- bool visit(QQmlJS::AST::IdentifierPropertyName *idproperty);
+ bool visit(QQmlJS::AST::IdentifierPropertyName *idproperty) Q_DECL_OVERRIDE;
- bool visit(QQmlJS::AST::FunctionDeclaration *);
- void endVisit(QQmlJS::AST::FunctionDeclaration *);
+ bool visit(QQmlJS::AST::FunctionDeclaration *) Q_DECL_OVERRIDE;
+ void endVisit(QQmlJS::AST::FunctionDeclaration *) Q_DECL_OVERRIDE;
- bool visit(QQmlJS::AST::UiScriptBinding *);
- void endVisit(QQmlJS::AST::UiScriptBinding *);
+ bool visit(QQmlJS::AST::UiScriptBinding *) Q_DECL_OVERRIDE;
+ void endVisit(QQmlJS::AST::UiScriptBinding *) Q_DECL_OVERRIDE;
- bool visit(QQmlJS::AST::UiQualifiedId *);
- void endVisit(QQmlJS::AST::UiQualifiedId *);
+ bool visit(QQmlJS::AST::UiQualifiedId *) Q_DECL_OVERRIDE;
+ void endVisit(QQmlJS::AST::UiQualifiedId *) Q_DECL_OVERRIDE;
private:
QString getFullyQualifiedId(QQmlJS::AST::UiQualifiedId *id);
diff --git a/src/tools/qdoc/tokenizer.cpp b/src/tools/qdoc/tokenizer.cpp
index 7c9e9f338a..dca1e9bb55 100644
--- a/src/tools/qdoc/tokenizer.cpp
+++ b/src/tools/qdoc/tokenizer.cpp
@@ -511,6 +511,9 @@ void Tokenizer::initialize(const Config &config)
defines = new QRegExp(d.join('|'));
falsehoods = new QRegExp(config.getStringList(CONFIG_FALSEHOODS).join('|'));
+ /*
+ The keyword hash table is always cleared before any words are inserted.
+ */
memset(kwordHashTable, 0, sizeof(kwordHashTable));
for (int i = 0; i < Tok_LastKeyword - Tok_FirstKeyword + 1; i++)
insertKwordIntoHash(kwords[i], i + 1);
@@ -533,6 +536,11 @@ void Tokenizer::initialize(const Config &config)
}
}
+/*!
+ The heap allocated variables are freed here. The keyword
+ hash table is not cleared here, but it is cleared in the
+ initialize() function, before any keywords are inserted.
+ */
void Tokenizer::terminate()
{
delete comment;
diff --git a/src/tools/qdoc/tree.cpp b/src/tools/qdoc/tree.cpp
index 2e327a5ac8..a4b8d8cd8a 100644
--- a/src/tools/qdoc/tree.cpp
+++ b/src/tools/qdoc/tree.cpp
@@ -66,10 +66,19 @@ QT_BEGIN_NAMESPACE
be necessary, and it might be removed later.
*/
Tree::Tree(const QString& module, QDocDatabase* qdb)
- : module_(module), qdb_(qdb), root_(0, QString())
+ : treeHasBeenAnalyzed_(false),
+ docsHaveBeenGenerated_(false),
+ linkCount_(0),
+ module_(module),
+ qdb_(qdb),
+ root_(0, QString()),
+ targetListMap_(0)
{
root_.setModuleName(module_);
root_.setTree(this);
+ if (Generator::writeQaPages()) {
+ targetListMap_ = new TargetListMap;
+ }
}
/*!
@@ -95,6 +104,18 @@ Tree::~Tree()
}
nodesByTargetRef_.clear();
nodesByTargetTitle_.clear();
+ if (Generator::writeQaPages() && targetListMap_) {
+ TargetListMap::iterator i = targetListMap_->begin();
+ while (i != targetListMap_->end()) {
+ TargetList* tlist = i.value();
+ if (tlist) {
+ foreach (TargetLoc* tloc, *tlist)
+ delete tloc;
+ }
+ delete tlist;
+ ++i;
+ }
+ }
}
/* API members */
@@ -1114,7 +1135,7 @@ QString Tree::refForAtom(const Atom* atom)
if (atom) {
if (atom->type() == Atom::SectionLeft)
return Doc::canonicalTitle(Text::sectionHeading(atom).toString());
- if (atom->type() == Atom::Target)
+ if ((atom->type() == Atom::Target) || (atom->type() == Atom::Keyword))
return Doc::canonicalTitle(atom->string());
}
return QString();
@@ -1394,4 +1415,51 @@ const Node* Tree::checkForCollision(const QString& name)
return findNode(QStringList(name), 0, 0, Node::DontCare);
}
+/*!
+ Generate a target of the form link-nnn, where the nnn is
+ the current link count for this tree. This target string
+ is returned. It will be output as an HTML anchor just before
+ an HTML link to the node \a t.
+
+ The node \a t
+ */
+QString Tree::getNewLinkTarget(const Node* locNode,
+ const Node* t,
+ const QString& fileName,
+ QString& text,
+ bool broken)
+{
+ QString moduleName;
+ if (t && !broken) {
+ Tree* tree = t->tree();
+ if (tree != this)
+ tree->incrementLinkCount();
+ moduleName = tree->moduleName();
+ }
+ else
+ moduleName = "broken";
+ incrementLinkCount();
+ QString target = QString("qa-target-%1").arg(-(linkCount()));
+ TargetLoc* tloc = new TargetLoc(locNode, target, fileName, text, broken);
+ TargetList* tList = 0;
+ TargetListMap::iterator i = targetListMap_->find(moduleName);
+ if (i == targetListMap_->end()) {
+ tList = new TargetList;
+ i = targetListMap_->insert(moduleName, tList);
+ }
+ else
+ tList = i.value();
+ tList->append(tloc);
+ return target;
+}
+
+/*!
+ Look up the target list for the specified \a module
+ and return a pointer to it.
+ */
+TargetList* Tree::getTargetList(const QString& module)
+{
+ return targetListMap_->value(module);
+}
+
QT_END_NAMESPACE
diff --git a/src/tools/qdoc/tree.h b/src/tools/qdoc/tree.h
index 6bb13ee327..6ccf85371b 100644
--- a/src/tools/qdoc/tree.h
+++ b/src/tools/qdoc/tree.h
@@ -67,10 +67,24 @@ struct TargetRec
Type type_;
};
+struct TargetLoc
+{
+ public:
+ TargetLoc(const Node* loc, const QString& t, const QString& fileName, const QString& text, bool broken)
+ : loc_(loc), target_(t), fileName_(fileName), text_(text), broken_(broken) { }
+ const Node* loc_;
+ QString target_;
+ QString fileName_;
+ QString text_;
+ bool broken_;
+};
+
typedef QMultiMap<QString, TargetRec*> TargetMap;
typedef QMultiMap<QString, DocNode*> DocNodeMultiMap;
typedef QMap<QString, QmlClassNode*> QmlTypeMap;
typedef QMultiMap<QString, const ExampleNode*> ExampleNodeMap;
+typedef QVector<TargetLoc*> TargetList;
+typedef QMap<QString, TargetList*> TargetListMap;
class Tree
{
@@ -187,12 +201,33 @@ class Tree
void addExampleNode(ExampleNode* n) { exampleNodeMap_.insert(n->title(), n); }
ExampleNodeMap& exampleNodeMap() { return exampleNodeMap_; }
const Node* checkForCollision(const QString& name);
+ void setIndexFileName(const QString& t) { indexFileName_ = t; }
+
+ bool treeHasBeenAnalyzed() const { return treeHasBeenAnalyzed_; }
+ bool docsHaveBeenGenerated() const { return docsHaveBeenGenerated_; }
+ void setTreeHasBeenAnalyzed() { treeHasBeenAnalyzed_ = true; }
+ void setdocsHaveBeenGenerated() { docsHaveBeenGenerated_ = true; }
+ QString getNewLinkTarget(const Node* locNode,
+ const Node* t,
+ const QString& fileName,
+ QString& text,
+ bool broken);
+ TargetList* getTargetList(const QString& module);
+ QStringList getTargetListKeys() { return targetListMap_->keys(); }
public:
const QString& moduleName() const { return module_; }
+ const QString& indexFileName() const { return indexFileName_; }
+ long incrementLinkCount() { return --linkCount_; }
+ void clearLinkCount() { linkCount_ = 0; }
+ long linkCount() const { return linkCount_; }
private:
+ bool treeHasBeenAnalyzed_;
+ bool docsHaveBeenGenerated_;
+ long linkCount_;
QString module_;
+ QString indexFileName_;
QDocDatabase* qdb_;
NamespaceNode root_;
PropertyMap unresolvedPropertyMap;
@@ -204,6 +239,7 @@ private:
CNMap qmlModules_;
QmlTypeMap qmlTypeMap_;
ExampleNodeMap exampleNodeMap_;
+ TargetListMap* targetListMap_;
};
QT_END_NAMESPACE
diff --git a/src/tools/uic/cpp/cppextractimages.h b/src/tools/uic/cpp/cppextractimages.h
index ce5fd75b5d..162359ca13 100644
--- a/src/tools/uic/cpp/cppextractimages.h
+++ b/src/tools/uic/cpp/cppextractimages.h
@@ -52,9 +52,9 @@ class ExtractImages : public TreeWalker
public:
ExtractImages(const Option &opt);
- void acceptUI(DomUI *node);
- void acceptImages(DomImages *images);
- void acceptImage(DomImage *image);
+ void acceptUI(DomUI *node) Q_DECL_OVERRIDE;
+ void acceptImages(DomImages *images) Q_DECL_OVERRIDE;
+ void acceptImage(DomImage *image) Q_DECL_OVERRIDE;
private:
QTextStream *m_output;
diff --git a/src/tools/uic/cpp/cppwritedeclaration.h b/src/tools/uic/cpp/cppwritedeclaration.h
index 7cd8b3581e..7ce7cd083c 100644
--- a/src/tools/uic/cpp/cppwritedeclaration.h
+++ b/src/tools/uic/cpp/cppwritedeclaration.h
@@ -50,13 +50,13 @@ struct WriteDeclaration : public TreeWalker
{
WriteDeclaration(Uic *uic, bool activateScripts);
- void acceptUI(DomUI *node);
- void acceptWidget(DomWidget *node);
- void acceptSpacer(DomSpacer *node);
- void acceptLayout(DomLayout *node);
- void acceptActionGroup(DomActionGroup *node);
- void acceptAction(DomAction *node);
- void acceptButtonGroup(const DomButtonGroup *buttonGroup);
+ void acceptUI(DomUI *node) Q_DECL_OVERRIDE;
+ void acceptWidget(DomWidget *node) Q_DECL_OVERRIDE;
+ void acceptSpacer(DomSpacer *node) Q_DECL_OVERRIDE;
+ void acceptLayout(DomLayout *node) Q_DECL_OVERRIDE;
+ void acceptActionGroup(DomActionGroup *node) Q_DECL_OVERRIDE;
+ void acceptAction(DomAction *node) Q_DECL_OVERRIDE;
+ void acceptButtonGroup(const DomButtonGroup *buttonGroup) Q_DECL_OVERRIDE;
private:
Uic *m_uic;
diff --git a/src/tools/uic/cpp/cppwriteicondata.h b/src/tools/uic/cpp/cppwriteicondata.h
index 0dc2bf0721..613b7d7ca3 100644
--- a/src/tools/uic/cpp/cppwriteicondata.h
+++ b/src/tools/uic/cpp/cppwriteicondata.h
@@ -52,9 +52,9 @@ class WriteIconData : public TreeWalker
public:
WriteIconData(Uic *uic);
- void acceptUI(DomUI *node);
- void acceptImages(DomImages *images);
- void acceptImage(DomImage *image);
+ void acceptUI(DomUI *node) Q_DECL_OVERRIDE;
+ void acceptImages(DomImages *images) Q_DECL_OVERRIDE;
+ void acceptImage(DomImage *image) Q_DECL_OVERRIDE;
static void writeImage(QTextStream &output, const QString &indent,
bool limitXPM_LineLength, const DomImage *image);
diff --git a/src/tools/uic/cpp/cppwriteicondeclaration.h b/src/tools/uic/cpp/cppwriteicondeclaration.h
index c093430bec..f717208b59 100644
--- a/src/tools/uic/cpp/cppwriteicondeclaration.h
+++ b/src/tools/uic/cpp/cppwriteicondeclaration.h
@@ -51,9 +51,9 @@ class WriteIconDeclaration : public TreeWalker
public:
WriteIconDeclaration(Uic *uic);
- void acceptUI(DomUI *node);
- void acceptImages(DomImages *images);
- void acceptImage(DomImage *image);
+ void acceptUI(DomUI *node) Q_DECL_OVERRIDE;
+ void acceptImages(DomImages *images) Q_DECL_OVERRIDE;
+ void acceptImage(DomImage *image) Q_DECL_OVERRIDE;
private:
Driver *driver;
diff --git a/src/tools/uic/cpp/cppwriteiconinitialization.h b/src/tools/uic/cpp/cppwriteiconinitialization.h
index d8a0a6195f..53f7de6597 100644
--- a/src/tools/uic/cpp/cppwriteiconinitialization.h
+++ b/src/tools/uic/cpp/cppwriteiconinitialization.h
@@ -53,9 +53,9 @@ class WriteIconInitialization : public TreeWalker
public:
WriteIconInitialization(Uic *uic);
- void acceptUI(DomUI *node);
- void acceptImages(DomImages *images);
- void acceptImage(DomImage *image);
+ void acceptUI(DomUI *node) Q_DECL_OVERRIDE;
+ void acceptImages(DomImages *images) Q_DECL_OVERRIDE;
+ void acceptImage(DomImage *image) Q_DECL_OVERRIDE;
static QString iconFromDataFunction();
diff --git a/src/tools/uic/cpp/cppwriteincludes.h b/src/tools/uic/cpp/cppwriteincludes.h
index 6f6a0f6105..0d446514f1 100644
--- a/src/tools/uic/cpp/cppwriteincludes.h
+++ b/src/tools/uic/cpp/cppwriteincludes.h
@@ -53,24 +53,24 @@ struct WriteIncludes : public TreeWalker
{
WriteIncludes(Uic *uic);
- void acceptUI(DomUI *node);
- void acceptWidget(DomWidget *node);
- void acceptLayout(DomLayout *node);
- void acceptSpacer(DomSpacer *node);
- void acceptProperty(DomProperty *node);
- void acceptWidgetScripts(const DomScripts &, DomWidget *, const DomWidgets &);
+ void acceptUI(DomUI *node) Q_DECL_OVERRIDE;
+ void acceptWidget(DomWidget *node) Q_DECL_OVERRIDE;
+ void acceptLayout(DomLayout *node) Q_DECL_OVERRIDE;
+ void acceptSpacer(DomSpacer *node) Q_DECL_OVERRIDE;
+ void acceptProperty(DomProperty *node) Q_DECL_OVERRIDE;
+ void acceptWidgetScripts(const DomScripts &, DomWidget *, const DomWidgets &) Q_DECL_OVERRIDE;
//
// custom widgets
//
- void acceptCustomWidgets(DomCustomWidgets *node);
- void acceptCustomWidget(DomCustomWidget *node);
+ void acceptCustomWidgets(DomCustomWidgets *node) Q_DECL_OVERRIDE;
+ void acceptCustomWidget(DomCustomWidget *node) Q_DECL_OVERRIDE;
//
// include hints
//
- void acceptIncludes(DomIncludes *node);
- void acceptInclude(DomInclude *node);
+ void acceptIncludes(DomIncludes *node) Q_DECL_OVERRIDE;
+ void acceptInclude(DomInclude *node) Q_DECL_OVERRIDE;
bool scriptsActivated() const { return m_scriptsActivated; }
diff --git a/src/tools/uic/cpp/cppwriteinitialization.cpp b/src/tools/uic/cpp/cppwriteinitialization.cpp
index 5a1c1850d4..2627c4cf5c 100644
--- a/src/tools/uic/cpp/cppwriteinitialization.cpp
+++ b/src/tools/uic/cpp/cppwriteinitialization.cpp
@@ -913,6 +913,7 @@ void WriteInitialization::acceptLayout(DomLayout *node)
m_layoutMarginType = SubLayoutMargin;
DomPropertyList propList = node->elementProperty();
+ DomPropertyList newPropList;
if (m_layoutWidget) {
bool left, top, right, bottom;
left = top = right = bottom = false;
@@ -932,31 +933,38 @@ void WriteInitialization::acceptLayout(DomLayout *node)
DomProperty *p = new DomProperty();
p->setAttributeName(QLatin1String("leftMargin"));
p->setElementNumber(0);
- propList.append(p);
+ newPropList.append(p);
}
if (!top) {
DomProperty *p = new DomProperty();
p->setAttributeName(QLatin1String("topMargin"));
p->setElementNumber(0);
- propList.append(p);
+ newPropList.append(p);
}
if (!right) {
DomProperty *p = new DomProperty();
p->setAttributeName(QLatin1String("rightMargin"));
p->setElementNumber(0);
- propList.append(p);
+ newPropList.append(p);
}
if (!bottom) {
DomProperty *p = new DomProperty();
p->setAttributeName(QLatin1String("bottomMargin"));
p->setElementNumber(0);
- propList.append(p);
+ newPropList.append(p);
}
m_layoutWidget = false;
}
+ propList.append(newPropList);
+
writeProperties(varName, className, propList, WritePropertyIgnoreMargin|WritePropertyIgnoreSpacing);
+ // Clean up again:
+ propList.clear();
+ qDeleteAll(newPropList);
+ newPropList.clear();
+
m_layoutChain.push(node);
TreeWalker::acceptLayout(node);
m_layoutChain.pop();
diff --git a/src/tools/uic/cpp/cppwriteinitialization.h b/src/tools/uic/cpp/cppwriteinitialization.h
index 1cf3e750b4..53bc57d376 100644
--- a/src/tools/uic/cpp/cppwriteinitialization.h
+++ b/src/tools/uic/cpp/cppwriteinitialization.h
@@ -110,47 +110,47 @@ struct WriteInitialization : public TreeWalker
//
// widgets
//
- void acceptUI(DomUI *node);
- void acceptWidget(DomWidget *node);
- void acceptWidgetScripts(const DomScripts &, DomWidget *node, const DomWidgets &childWidgets);
+ void acceptUI(DomUI *node) Q_DECL_OVERRIDE;
+ void acceptWidget(DomWidget *node) Q_DECL_OVERRIDE;
+ void acceptWidgetScripts(const DomScripts &, DomWidget *node, const DomWidgets &childWidgets) Q_DECL_OVERRIDE;
- void acceptLayout(DomLayout *node);
- void acceptSpacer(DomSpacer *node);
- void acceptLayoutItem(DomLayoutItem *node);
+ void acceptLayout(DomLayout *node) Q_DECL_OVERRIDE;
+ void acceptSpacer(DomSpacer *node) Q_DECL_OVERRIDE;
+ void acceptLayoutItem(DomLayoutItem *node) Q_DECL_OVERRIDE;
//
// actions
//
- void acceptActionGroup(DomActionGroup *node);
- void acceptAction(DomAction *node);
- void acceptActionRef(DomActionRef *node);
+ void acceptActionGroup(DomActionGroup *node) Q_DECL_OVERRIDE;
+ void acceptAction(DomAction *node) Q_DECL_OVERRIDE;
+ void acceptActionRef(DomActionRef *node) Q_DECL_OVERRIDE;
//
// tab stops
//
- void acceptTabStops(DomTabStops *tabStops);
+ void acceptTabStops(DomTabStops *tabStops) Q_DECL_OVERRIDE;
//
// custom widgets
//
- void acceptCustomWidgets(DomCustomWidgets *node);
- void acceptCustomWidget(DomCustomWidget *node);
+ void acceptCustomWidgets(DomCustomWidgets *node) Q_DECL_OVERRIDE;
+ void acceptCustomWidget(DomCustomWidget *node) Q_DECL_OVERRIDE;
//
// layout defaults/functions
//
- void acceptLayoutDefault(DomLayoutDefault *node) { m_LayoutDefaultHandler.acceptLayoutDefault(node); }
- void acceptLayoutFunction(DomLayoutFunction *node) { m_LayoutDefaultHandler.acceptLayoutFunction(node); }
+ void acceptLayoutDefault(DomLayoutDefault *node) Q_DECL_OVERRIDE { m_LayoutDefaultHandler.acceptLayoutDefault(node); }
+ void acceptLayoutFunction(DomLayoutFunction *node) Q_DECL_OVERRIDE { m_LayoutDefaultHandler.acceptLayoutFunction(node); }
//
// signal/slot connections
//
- void acceptConnection(DomConnection *connection);
+ void acceptConnection(DomConnection *connection) Q_DECL_OVERRIDE;
//
// images
//
- void acceptImage(DomImage *image);
+ void acceptImage(DomImage *image) Q_DECL_OVERRIDE;
enum {
Use43UiFile = 0,
diff --git a/src/tools/uic/customwidgetsinfo.h b/src/tools/uic/customwidgetsinfo.h
index 5e58d6c3ce..6b0f7ed81a 100644
--- a/src/tools/uic/customwidgetsinfo.h
+++ b/src/tools/uic/customwidgetsinfo.h
@@ -48,10 +48,10 @@ class CustomWidgetsInfo : public TreeWalker
public:
CustomWidgetsInfo();
- void acceptUI(DomUI *node);
+ void acceptUI(DomUI *node) Q_DECL_OVERRIDE;
- void acceptCustomWidgets(DomCustomWidgets *node);
- void acceptCustomWidget(DomCustomWidget *node);
+ void acceptCustomWidgets(DomCustomWidgets *node) Q_DECL_OVERRIDE;
+ void acceptCustomWidget(DomCustomWidget *node) Q_DECL_OVERRIDE;
inline QStringList customWidgets() const
{ return m_customWidgets.keys(); }
diff --git a/src/tools/uic/databaseinfo.h b/src/tools/uic/databaseinfo.h
index 0c80ad9551..92e0b37fe1 100644
--- a/src/tools/uic/databaseinfo.h
+++ b/src/tools/uic/databaseinfo.h
@@ -47,8 +47,8 @@ class DatabaseInfo : public TreeWalker
public:
DatabaseInfo();
- void acceptUI(DomUI *node);
- void acceptWidget(DomWidget *node);
+ void acceptUI(DomUI *node) Q_DECL_OVERRIDE;
+ void acceptWidget(DomWidget *node) Q_DECL_OVERRIDE;
inline QStringList connections() const
{ return m_connections; }
diff --git a/src/tools/uic/validator.h b/src/tools/uic/validator.h
index 82f6b71b1a..82511776a8 100644
--- a/src/tools/uic/validator.h
+++ b/src/tools/uic/validator.h
@@ -48,14 +48,14 @@ struct Validator : public TreeWalker
{
Validator(Uic *uic);
- void acceptUI(DomUI *node);
- void acceptWidget(DomWidget *node);
+ void acceptUI(DomUI *node) Q_DECL_OVERRIDE;
+ void acceptWidget(DomWidget *node) Q_DECL_OVERRIDE;
- void acceptLayoutItem(DomLayoutItem *node);
- void acceptLayout(DomLayout *node);
+ void acceptLayoutItem(DomLayoutItem *node) Q_DECL_OVERRIDE;
+ void acceptLayout(DomLayout *node) Q_DECL_OVERRIDE;
- void acceptActionGroup(DomActionGroup *node);
- void acceptAction(DomAction *node);
+ void acceptActionGroup(DomActionGroup *node) Q_DECL_OVERRIDE;
+ void acceptAction(DomAction *node) Q_DECL_OVERRIDE;
private:
Driver *m_driver;
diff --git a/src/widgets/accessible/complexwidgets.cpp b/src/widgets/accessible/complexwidgets.cpp
index 30f9ccb1f4..1945fd8416 100644
--- a/src/widgets/accessible/complexwidgets.cpp
+++ b/src/widgets/accessible/complexwidgets.cpp
@@ -77,16 +77,16 @@ public:
: m_parent(parent), m_index(index)
{}
- void *interface_cast(QAccessible::InterfaceType t) {
+ void *interface_cast(QAccessible::InterfaceType t) Q_DECL_OVERRIDE {
if (t == QAccessible::ActionInterface) {
return static_cast<QAccessibleActionInterface*>(this);
}
return 0;
}
- QObject *object() const { return 0; }
- QAccessible::Role role() const { return QAccessible::PageTab; }
- QAccessible::State state() const {
+ QObject *object() const Q_DECL_OVERRIDE { return 0; }
+ QAccessible::Role role() const Q_DECL_OVERRIDE { return QAccessible::PageTab; }
+ QAccessible::State state() const Q_DECL_OVERRIDE {
if (!isValid()) {
QAccessible::State s;
s.invalid = true;
@@ -94,7 +94,7 @@ public:
}
return parent()->state();
}
- QRect rect() const {
+ QRect rect() const Q_DECL_OVERRIDE {
if (!isValid())
return QRect();
@@ -104,13 +104,13 @@ public:
return rec;
}
- bool isValid() const { return m_parent.data() && m_parent->count() > m_index; }
+ bool isValid() const Q_DECL_OVERRIDE { return m_parent.data() && m_parent->count() > m_index; }
- QAccessibleInterface *childAt(int, int) const { return 0; }
- int childCount() const { return 0; }
- int indexOfChild(const QAccessibleInterface *) const { return -1; }
+ QAccessibleInterface *childAt(int, int) const Q_DECL_OVERRIDE { return 0; }
+ int childCount() const Q_DECL_OVERRIDE { return 0; }
+ int indexOfChild(const QAccessibleInterface *) const Q_DECL_OVERRIDE { return -1; }
- QString text(QAccessible::Text t) const
+ QString text(QAccessible::Text t) const Q_DECL_OVERRIDE
{
if (!isValid())
return QString();
@@ -129,26 +129,26 @@ public:
return QString();
}
- void setText(QAccessible::Text, const QString &) {}
+ void setText(QAccessible::Text, const QString &) Q_DECL_OVERRIDE {}
- QAccessibleInterface *parent() const {
+ QAccessibleInterface *parent() const Q_DECL_OVERRIDE {
return QAccessible::queryAccessibleInterface(m_parent.data());
}
- QAccessibleInterface *child(int) const { return 0; }
+ QAccessibleInterface *child(int) const Q_DECL_OVERRIDE { return 0; }
// action interface
- QStringList actionNames() const
+ QStringList actionNames() const Q_DECL_OVERRIDE
{
return QStringList(pressAction());
}
- void doAction(const QString &actionName)
+ void doAction(const QString &actionName) Q_DECL_OVERRIDE
{
if (isValid() && actionName == pressAction())
m_parent->setCurrentIndex(m_index);
}
- QStringList keyBindingsForAction(const QString &) const
+ QStringList keyBindingsForAction(const QString &) const Q_DECL_OVERRIDE
{
return QStringList();
}
diff --git a/src/widgets/accessible/qaccessiblewidgets.h b/src/widgets/accessible/qaccessiblewidgets.h
index b2459fe71e..50a01be397 100644
--- a/src/widgets/accessible/qaccessiblewidgets.h
+++ b/src/widgets/accessible/qaccessiblewidgets.h
@@ -67,7 +67,7 @@ class QAccessibleTextWidget : public QAccessibleWidget,
public:
QAccessibleTextWidget(QWidget *o, QAccessible::Role r = QAccessible::EditableText, const QString &name = QString());
- QAccessible::State state() const;
+ QAccessible::State state() const Q_DECL_OVERRIDE;
// QAccessibleTextInterface
// selection
@@ -89,7 +89,7 @@ public:
int *startOffset, int *endOffset) const Q_DECL_OVERRIDE;
QString textAtOffset(int offset, QAccessible::TextBoundaryType boundaryType,
int *startOffset, int *endOffset) const Q_DECL_OVERRIDE;
- int characterCount() const;
+ int characterCount() const Q_DECL_OVERRIDE;
// character <-> geometry
QRect characterRect(int offset) const Q_DECL_OVERRIDE;
diff --git a/src/widgets/dialogs/qcolordialog.cpp b/src/widgets/dialogs/qcolordialog.cpp
index f04e5b9ea6..40ef6505cf 100644
--- a/src/widgets/dialogs/qcolordialog.cpp
+++ b/src/widgets/dialogs/qcolordialog.cpp
@@ -83,7 +83,7 @@ public:
virtual void setCurrent(int row, int col);
virtual void setSelected(int row, int col);
- QSize sizeHint() const;
+ QSize sizeHint() const Q_DECL_OVERRIDE;
virtual void setCellBrush(int row, int col, const QBrush &);
QBrush cellBrush(int row, int col);
@@ -136,12 +136,12 @@ protected:
virtual void paintCell(QPainter *, int row, int col, const QRect&);
virtual void paintCellContents(QPainter *, int row, int col, const QRect&);
- void mousePressEvent(QMouseEvent*);
- void mouseReleaseEvent(QMouseEvent*);
- void keyPressEvent(QKeyEvent*);
- void focusInEvent(QFocusEvent*);
- void focusOutEvent(QFocusEvent*);
- void paintEvent(QPaintEvent *);
+ void mousePressEvent(QMouseEvent*) Q_DECL_OVERRIDE;
+ void mouseReleaseEvent(QMouseEvent*) Q_DECL_OVERRIDE;
+ void keyPressEvent(QKeyEvent*) Q_DECL_OVERRIDE;
+ void focusInEvent(QFocusEvent*) Q_DECL_OVERRIDE;
+ void focusOutEvent(QFocusEvent*) Q_DECL_OVERRIDE;
+ void paintEvent(QPaintEvent *) Q_DECL_OVERRIDE;
private:
Q_DISABLE_COPY(QWellArray)
@@ -513,15 +513,15 @@ public:
{ setSizePolicy(QSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum)); }
protected:
- void paintCellContents(QPainter *, int row, int col, const QRect&);
- void mousePressEvent(QMouseEvent *e);
- void mouseMoveEvent(QMouseEvent *e);
- void mouseReleaseEvent(QMouseEvent *e);
+ void paintCellContents(QPainter *, int row, int col, const QRect&) Q_DECL_OVERRIDE;
+ void mousePressEvent(QMouseEvent *e) Q_DECL_OVERRIDE;
+ void mouseMoveEvent(QMouseEvent *e) Q_DECL_OVERRIDE;
+ void mouseReleaseEvent(QMouseEvent *e) Q_DECL_OVERRIDE;
#ifndef QT_NO_DRAGANDDROP
- void dragEnterEvent(QDragEnterEvent *e);
- void dragLeaveEvent(QDragLeaveEvent *e);
- void dragMoveEvent(QDragMoveEvent *e);
- void dropEvent(QDropEvent *e);
+ void dragEnterEvent(QDragEnterEvent *e) Q_DECL_OVERRIDE;
+ void dragLeaveEvent(QDragLeaveEvent *e) Q_DECL_OVERRIDE;
+ void dragMoveEvent(QDragMoveEvent *e) Q_DECL_OVERRIDE;
+ void dropEvent(QDropEvent *e) Q_DECL_OVERRIDE;
#endif
private:
@@ -635,11 +635,11 @@ signals:
void newCol(int h, int s);
protected:
- QSize sizeHint() const;
- void paintEvent(QPaintEvent*);
- void mouseMoveEvent(QMouseEvent *);
- void mousePressEvent(QMouseEvent *);
- void resizeEvent(QResizeEvent *);
+ QSize sizeHint() const Q_DECL_OVERRIDE;
+ void paintEvent(QPaintEvent*) Q_DECL_OVERRIDE;
+ void mouseMoveEvent(QMouseEvent *) Q_DECL_OVERRIDE;
+ void mousePressEvent(QMouseEvent *) Q_DECL_OVERRIDE;
+ void resizeEvent(QResizeEvent *) Q_DECL_OVERRIDE;
private:
int hue;
@@ -672,9 +672,9 @@ signals:
void newHsv(int h, int s, int v);
protected:
- void paintEvent(QPaintEvent*);
- void mouseMoveEvent(QMouseEvent *);
- void mousePressEvent(QMouseEvent *);
+ void paintEvent(QPaintEvent*) Q_DECL_OVERRIDE;
+ void mouseMoveEvent(QMouseEvent *) Q_DECL_OVERRIDE;
+ void mousePressEvent(QMouseEvent *) Q_DECL_OVERRIDE;
private:
enum { foff = 3, coff = 4 }; //frame and contents offset
@@ -994,14 +994,14 @@ signals:
void colorDropped(QRgb);
protected:
- void paintEvent(QPaintEvent *);
- void mousePressEvent(QMouseEvent *e);
- void mouseMoveEvent(QMouseEvent *e);
- void mouseReleaseEvent(QMouseEvent *e);
+ void paintEvent(QPaintEvent *) Q_DECL_OVERRIDE;
+ void mousePressEvent(QMouseEvent *e) Q_DECL_OVERRIDE;
+ void mouseMoveEvent(QMouseEvent *e) Q_DECL_OVERRIDE;
+ void mouseReleaseEvent(QMouseEvent *e) Q_DECL_OVERRIDE;
#ifndef QT_NO_DRAGANDDROP
- void dragEnterEvent(QDragEnterEvent *e);
- void dragLeaveEvent(QDragLeaveEvent *e);
- void dropEvent(QDropEvent *e);
+ void dragEnterEvent(QDragEnterEvent *e) Q_DECL_OVERRIDE;
+ void dragLeaveEvent(QDragLeaveEvent *e) Q_DECL_OVERRIDE;
+ void dropEvent(QDropEvent *e) Q_DECL_OVERRIDE;
#endif
private:
@@ -1669,7 +1669,7 @@ void QColorDialogPrivate::initWidgets()
#if !defined(Q_OS_WINCE) && !defined(QT_SMALL_COLORDIALOG)
// The screen color picker button
- screenColorPickerButton = new QPushButton(QColorDialog::tr("Pick Screen Color"));
+ screenColorPickerButton = new QPushButton();
leftLay->addWidget(screenColorPickerButton);
lblScreenColorInfo = new QLabel(QLatin1String("\n"));
leftLay->addWidget(lblScreenColorInfo);
@@ -1812,6 +1812,7 @@ void QColorDialogPrivate::retranslateStrings()
lblBasicColors->setText(QColorDialog::tr("&Basic colors"));
lblCustomColors->setText(QColorDialog::tr("&Custom colors"));
addCusBt->setText(QColorDialog::tr("&Add to Custom Colors"));
+ screenColorPickerButton->setText(QColorDialog::tr("&Pick Screen Color"));
}
cs->retranslateStrings();
@@ -2114,16 +2115,6 @@ void QColorDialog::open(QObject *receiver, const char *member)
}
/*!
- \fn QColorDialog::open()
-
- \since 4.5
- Shows the dialog as a \l{QDialog#Modal Dialogs}{window modal dialog},
- returning immediately.
-
- \sa QDialog::open()
-*/
-
-/*!
\since 4.5
Pops up a modal color dialog with the given window \a title (or "Select Color" if none is
diff --git a/src/widgets/dialogs/qcolordialog.h b/src/widgets/dialogs/qcolordialog.h
index d23254a2b2..22ff907e7a 100644
--- a/src/widgets/dialogs/qcolordialog.h
+++ b/src/widgets/dialogs/qcolordialog.h
@@ -75,14 +75,10 @@ public:
void setOptions(ColorDialogOptions options);
ColorDialogOptions options() const;
-#ifdef Q_NO_USING_KEYWORD
- void open() { QDialog::open(); }
-#else
using QDialog::open;
-#endif
void open(QObject *receiver, const char *member);
- void setVisible(bool visible);
+ void setVisible(bool visible) Q_DECL_OVERRIDE;
static QColor getColor(const QColor &initial = Qt::white,
QWidget *parent = 0,
@@ -103,8 +99,8 @@ Q_SIGNALS:
void colorSelected(const QColor &color);
protected:
- void changeEvent(QEvent *event);
- void done(int result);
+ void changeEvent(QEvent *event) Q_DECL_OVERRIDE;
+ void done(int result) Q_DECL_OVERRIDE;
private:
Q_DISABLE_COPY(QColorDialog)
diff --git a/src/widgets/dialogs/qcolordialog_p.h b/src/widgets/dialogs/qcolordialog_p.h
index af3ebe8925..c2d6f48f49 100644
--- a/src/widgets/dialogs/qcolordialog_p.h
+++ b/src/widgets/dialogs/qcolordialog_p.h
@@ -109,7 +109,7 @@ public:
bool handleColorPickingMouseButtonRelease(QMouseEvent *e);
bool handleColorPickingKeyPress(QKeyEvent *e);
- bool canBeNativeDialog() const;
+ bool canBeNativeDialog() const Q_DECL_OVERRIDE;
QWellArray *custom;
QWellArray *standard;
@@ -155,8 +155,8 @@ public:
void mac_nativeDialogModalHelp();
#endif
private:
- virtual void initHelper(QPlatformDialogHelper *h);
- virtual void helperPrepareShow(QPlatformDialogHelper *h);
+ virtual void initHelper(QPlatformDialogHelper *h) Q_DECL_OVERRIDE;
+ virtual void helperPrepareShow(QPlatformDialogHelper *h) Q_DECL_OVERRIDE;
};
#endif // QT_NO_COLORDIALOG
diff --git a/src/widgets/dialogs/qerrormessage.cpp b/src/widgets/dialogs/qerrormessage.cpp
index 6bab921d21..65da7e3928 100644
--- a/src/widgets/dialogs/qerrormessage.cpp
+++ b/src/widgets/dialogs/qerrormessage.cpp
@@ -84,8 +84,8 @@ public:
QErrorMessageTextView(QWidget *parent)
: QTextEdit(parent) { setReadOnly(true); }
- virtual QSize minimumSizeHint() const;
- virtual QSize sizeHint() const;
+ virtual QSize minimumSizeHint() const Q_DECL_OVERRIDE;
+ virtual QSize sizeHint() const Q_DECL_OVERRIDE;
};
QSize QErrorMessageTextView::minimumSizeHint() const
diff --git a/src/widgets/dialogs/qerrormessage.h b/src/widgets/dialogs/qerrormessage.h
index 0925923d96..301fbc7f8d 100644
--- a/src/widgets/dialogs/qerrormessage.h
+++ b/src/widgets/dialogs/qerrormessage.h
@@ -58,8 +58,8 @@ public Q_SLOTS:
void showMessage(const QString &message, const QString &type);
protected:
- void done(int);
- void changeEvent(QEvent *e);
+ void done(int) Q_DECL_OVERRIDE;
+ void changeEvent(QEvent *e) Q_DECL_OVERRIDE;
private:
Q_DISABLE_COPY(QErrorMessage)
diff --git a/src/widgets/dialogs/qfiledialog.h b/src/widgets/dialogs/qfiledialog.h
index 70e498a2cd..c991256eef 100644
--- a/src/widgets/dialogs/qfiledialog.h
+++ b/src/widgets/dialogs/qfiledialog.h
@@ -172,15 +172,9 @@ public:
void setOptions(Options options);
Options options() const;
-#ifdef Q_NO_USING_KEYWORD
-#ifndef Q_QDOC
- void open() { QDialog::open(); }
-#endif
-#else
using QDialog::open;
-#endif
void open(QObject *receiver, const char *member);
- void setVisible(bool visible);
+ void setVisible(bool visible) Q_DECL_OVERRIDE;
Q_SIGNALS:
void fileSelected(const QString &file);
@@ -256,9 +250,9 @@ public:
protected:
QFileDialog(const QFileDialogArgs &args);
- void done(int result);
- void accept();
- void changeEvent(QEvent *e);
+ void done(int result) Q_DECL_OVERRIDE;
+ void accept() Q_DECL_OVERRIDE;
+ void changeEvent(QEvent *e) Q_DECL_OVERRIDE;
private:
Q_DECLARE_PRIVATE(QFileDialog)
diff --git a/src/widgets/dialogs/qfiledialog_p.h b/src/widgets/dialogs/qfiledialog_p.h
index cc2f481eb9..991d2a0f7a 100644
--- a/src/widgets/dialogs/qfiledialog_p.h
+++ b/src/widgets/dialogs/qfiledialog_p.h
@@ -243,7 +243,7 @@ public:
// setVisible_sys returns true if it ends up showing a native
// dialog. Returning false means that a non-native dialog must be
// used instead.
- bool canBeNativeDialog() const;
+ bool canBeNativeDialog() const Q_DECL_OVERRIDE;
inline bool usingWidgets() const;
void setDirectory_sys(const QUrl &directory);
@@ -273,9 +273,9 @@ public:
~QFileDialogPrivate();
private:
- virtual void initHelper(QPlatformDialogHelper *);
- virtual void helperPrepareShow(QPlatformDialogHelper *);
- virtual void helperDone(QDialog::DialogCode, QPlatformDialogHelper *);
+ virtual void initHelper(QPlatformDialogHelper *) Q_DECL_OVERRIDE;
+ virtual void helperPrepareShow(QPlatformDialogHelper *) Q_DECL_OVERRIDE;
+ virtual void helperDone(QDialog::DialogCode, QPlatformDialogHelper *) Q_DECL_OVERRIDE;
Q_DISABLE_COPY(QFileDialogPrivate)
};
@@ -285,7 +285,7 @@ class QFileDialogLineEdit : public QLineEdit
public:
QFileDialogLineEdit(QWidget *parent = 0) : QLineEdit(parent), d_ptr(0){}
void setFileDialogPrivate(QFileDialogPrivate *d_pointer) {d_ptr = d_pointer; }
- void keyPressEvent(QKeyEvent *e);
+ void keyPressEvent(QKeyEvent *e) Q_DECL_OVERRIDE;
bool hideOnEsc;
private:
QFileDialogPrivate *d_ptr;
@@ -296,10 +296,10 @@ class QFileDialogComboBox : public QComboBox
public:
QFileDialogComboBox(QWidget *parent = 0) : QComboBox(parent), urlModel(0) {}
void setFileDialogPrivate(QFileDialogPrivate *d_pointer);
- void showPopup();
+ void showPopup() Q_DECL_OVERRIDE;
void setHistory(const QStringList &paths);
QStringList history() const { return m_history; }
- void paintEvent(QPaintEvent *);
+ void paintEvent(QPaintEvent *) Q_DECL_OVERRIDE;
private:
QUrlModel *urlModel;
@@ -312,9 +312,9 @@ class QFileDialogListView : public QListView
public:
QFileDialogListView(QWidget *parent = 0);
void setFileDialogPrivate(QFileDialogPrivate *d_pointer);
- QSize sizeHint() const;
+ QSize sizeHint() const Q_DECL_OVERRIDE;
protected:
- void keyPressEvent(QKeyEvent *e);
+ void keyPressEvent(QKeyEvent *e) Q_DECL_OVERRIDE;
private:
QFileDialogPrivate *d_ptr;
};
@@ -324,10 +324,10 @@ class QFileDialogTreeView : public QTreeView
public:
QFileDialogTreeView(QWidget *parent);
void setFileDialogPrivate(QFileDialogPrivate *d_pointer);
- QSize sizeHint() const;
+ QSize sizeHint() const Q_DECL_OVERRIDE;
protected:
- void keyPressEvent(QKeyEvent *e);
+ void keyPressEvent(QKeyEvent *e) Q_DECL_OVERRIDE;
private:
QFileDialogPrivate *d_ptr;
};
diff --git a/src/widgets/dialogs/qfilesystemmodel.h b/src/widgets/dialogs/qfilesystemmodel.h
index bde699d2a0..28c5660080 100644
--- a/src/widgets/dialogs/qfilesystemmodel.h
+++ b/src/widgets/dialogs/qfilesystemmodel.h
@@ -72,31 +72,31 @@ public:
explicit QFileSystemModel(QObject *parent = 0);
~QFileSystemModel();
- QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const;
+ QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const Q_DECL_OVERRIDE;
QModelIndex index(const QString &path, int column = 0) const;
- QModelIndex parent(const QModelIndex &child) const;
- bool hasChildren(const QModelIndex &parent = QModelIndex()) const;
- bool canFetchMore(const QModelIndex &parent) const;
- void fetchMore(const QModelIndex &parent);
+ QModelIndex parent(const QModelIndex &child) const Q_DECL_OVERRIDE;
+ bool hasChildren(const QModelIndex &parent = QModelIndex()) const Q_DECL_OVERRIDE;
+ bool canFetchMore(const QModelIndex &parent) const Q_DECL_OVERRIDE;
+ void fetchMore(const QModelIndex &parent) Q_DECL_OVERRIDE;
- int rowCount(const QModelIndex &parent = QModelIndex()) const;
- int columnCount(const QModelIndex &parent = QModelIndex()) const;
+ int rowCount(const QModelIndex &parent = QModelIndex()) const Q_DECL_OVERRIDE;
+ int columnCount(const QModelIndex &parent = QModelIndex()) const Q_DECL_OVERRIDE;
QVariant myComputer(int role = Qt::DisplayRole) const;
- QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
- bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole);
+ QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const Q_DECL_OVERRIDE;
+ bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole) Q_DECL_OVERRIDE;
- QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const;
+ QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const Q_DECL_OVERRIDE;
- Qt::ItemFlags flags(const QModelIndex &index) const;
+ Qt::ItemFlags flags(const QModelIndex &index) const Q_DECL_OVERRIDE;
- void sort(int column, Qt::SortOrder order = Qt::AscendingOrder);
+ void sort(int column, Qt::SortOrder order = Qt::AscendingOrder) Q_DECL_OVERRIDE;
- QStringList mimeTypes() const;
- QMimeData *mimeData(const QModelIndexList &indexes) const;
+ QStringList mimeTypes() const Q_DECL_OVERRIDE;
+ QMimeData *mimeData(const QModelIndexList &indexes) const Q_DECL_OVERRIDE;
bool dropMimeData(const QMimeData *data, Qt::DropAction action,
- int row, int column, const QModelIndex &parent);
- Qt::DropActions supportedDropActions() const;
+ int row, int column, const QModelIndex &parent) Q_DECL_OVERRIDE;
+ Qt::DropActions supportedDropActions() const Q_DECL_OVERRIDE;
// QFileSystemModel specific API
QModelIndex setRootPath(const QString &path);
@@ -137,8 +137,8 @@ public:
protected:
QFileSystemModel(QFileSystemModelPrivate &, QObject *parent = 0);
- void timerEvent(QTimerEvent *event);
- bool event(QEvent *event);
+ void timerEvent(QTimerEvent *event) Q_DECL_OVERRIDE;
+ bool event(QEvent *event) Q_DECL_OVERRIDE;
private:
Q_DECLARE_PRIVATE(QFileSystemModel)
diff --git a/src/widgets/dialogs/qfontdialog.cpp b/src/widgets/dialogs/qfontdialog.cpp
index d12b109d9f..5294e78bfe 100644
--- a/src/widgets/dialogs/qfontdialog.cpp
+++ b/src/widgets/dialogs/qfontdialog.cpp
@@ -84,7 +84,7 @@ public:
int row = QListView::currentIndex().row();
return row < 0 ? QString() : model()->stringList().at(row);
}
- void currentChanged(const QModelIndex &current, const QModelIndex &previous) {
+ void currentChanged(const QModelIndex &current, const QModelIndex &previous) Q_DECL_OVERRIDE {
QListView::currentChanged(current, previous);
if (current.isValid())
emit highlighted(current.row());
diff --git a/src/widgets/dialogs/qfontdialog.h b/src/widgets/dialogs/qfontdialog.h
index 455b5d3f3e..a065f8bebf 100644
--- a/src/widgets/dialogs/qfontdialog.h
+++ b/src/widgets/dialogs/qfontdialog.h
@@ -79,16 +79,10 @@ public:
void setOptions(FontDialogOptions options);
FontDialogOptions options() const;
-#ifdef Q_NO_USING_KEYWORD
-#ifndef Q_QDOC
- void open() { QDialog::open(); }
-#endif
-#else
using QDialog::open;
-#endif
void open(QObject *receiver, const char *member);
- void setVisible(bool visible);
+ void setVisible(bool visible) Q_DECL_OVERRIDE;
static QFont getFont(bool *ok, QWidget *parent = 0);
static QFont getFont(bool *ok, const QFont &initial, QWidget *parent = 0, const QString &title = QString(),
@@ -99,9 +93,9 @@ Q_SIGNALS:
void fontSelected(const QFont &font);
protected:
- void changeEvent(QEvent *event);
- void done(int result);
- bool eventFilter(QObject *object, QEvent *event);
+ void changeEvent(QEvent *event) Q_DECL_OVERRIDE;
+ void done(int result) Q_DECL_OVERRIDE;
+ bool eventFilter(QObject *object, QEvent *event) Q_DECL_OVERRIDE;
private:
Q_DISABLE_COPY(QFontDialog)
diff --git a/src/widgets/dialogs/qfontdialog_p.h b/src/widgets/dialogs/qfontdialog_p.h
index 3af6f9f29a..9e6adfbf27 100644
--- a/src/widgets/dialogs/qfontdialog_p.h
+++ b/src/widgets/dialogs/qfontdialog_p.h
@@ -135,12 +135,12 @@ public:
QPointer<QObject> receiverToDisconnectOnClose;
QByteArray memberToDisconnectOnClose;
- bool canBeNativeDialog() const;
+ bool canBeNativeDialog() const Q_DECL_OVERRIDE;
void _q_runNativeAppModalPanel();
private:
- virtual void initHelper(QPlatformDialogHelper *);
- virtual void helperPrepareShow(QPlatformDialogHelper *);
+ virtual void initHelper(QPlatformDialogHelper *) Q_DECL_OVERRIDE;
+ virtual void helperPrepareShow(QPlatformDialogHelper *) Q_DECL_OVERRIDE;
};
#endif // QT_NO_FONTDIALOG
diff --git a/src/widgets/dialogs/qfscompleter_p.h b/src/widgets/dialogs/qfscompleter_p.h
index a5871e34f7..4a75f59f26 100644
--- a/src/widgets/dialogs/qfscompleter_p.h
+++ b/src/widgets/dialogs/qfscompleter_p.h
@@ -62,8 +62,8 @@ public:
setCaseSensitivity(Qt::CaseInsensitive);
#endif
}
- QString pathFromIndex(const QModelIndex &index) const;
- QStringList splitPath(const QString& path) const;
+ QString pathFromIndex(const QModelIndex &index) const Q_DECL_OVERRIDE;
+ QStringList splitPath(const QString& path) const Q_DECL_OVERRIDE;
QAbstractProxyModel *proxyModel;
QFileSystemModel *sourceModel;
diff --git a/src/widgets/dialogs/qinputdialog.cpp b/src/widgets/dialogs/qinputdialog.cpp
index b52cebadfa..67ed741159 100644
--- a/src/widgets/dialogs/qinputdialog.cpp
+++ b/src/widgets/dialogs/qinputdialog.cpp
@@ -111,7 +111,7 @@ private slots:
void notifyTextChanged() { emit textChanged(hasAcceptableInput()); }
private:
- void keyPressEvent(QKeyEvent *event) {
+ void keyPressEvent(QKeyEvent *event) Q_DECL_OVERRIDE {
if ((event->key() == Qt::Key_Return || event->key() == Qt::Key_Enter) && !hasAcceptableInput()) {
#ifndef QT_NO_PROPERTIES
setProperty("value", property("value"));
@@ -122,7 +122,7 @@ private:
notifyTextChanged();
}
- void mousePressEvent(QMouseEvent *event) {
+ void mousePressEvent(QMouseEvent *event) Q_DECL_OVERRIDE {
QSpinBox::mousePressEvent(event);
notifyTextChanged();
}
@@ -146,7 +146,7 @@ private slots:
void notifyTextChanged() { emit textChanged(hasAcceptableInput()); }
private:
- void keyPressEvent(QKeyEvent *event) {
+ void keyPressEvent(QKeyEvent *event) Q_DECL_OVERRIDE {
if ((event->key() == Qt::Key_Return || event->key() == Qt::Key_Enter) && !hasAcceptableInput()) {
#ifndef QT_NO_PROPERTIES
setProperty("value", property("value"));
@@ -157,7 +157,7 @@ private:
notifyTextChanged();
}
- void mousePressEvent(QMouseEvent *event) {
+ void mousePressEvent(QMouseEvent *event) Q_DECL_OVERRIDE {
QDoubleSpinBox::mousePressEvent(event);
notifyTextChanged();
}
diff --git a/src/widgets/dialogs/qinputdialog.h b/src/widgets/dialogs/qinputdialog.h
index 4511e367d4..a56bd6d78b 100644
--- a/src/widgets/dialogs/qinputdialog.h
+++ b/src/widgets/dialogs/qinputdialog.h
@@ -143,19 +143,13 @@ public:
void setCancelButtonText(const QString &text);
QString cancelButtonText() const;
-#ifdef Q_NO_USING_KEYWORD
-#ifndef Q_QDOC
- void open() { QDialog::open(); }
-#endif
-#else
using QDialog::open;
-#endif
void open(QObject *receiver, const char *member);
- QSize minimumSizeHint() const;
- QSize sizeHint() const;
+ QSize minimumSizeHint() const Q_DECL_OVERRIDE;
+ QSize sizeHint() const Q_DECL_OVERRIDE;
- void setVisible(bool visible);
+ void setVisible(bool visible) Q_DECL_OVERRIDE;
static QString getText(QWidget *parent, const QString &title, const QString &label,
QLineEdit::EchoMode echo = QLineEdit::Normal,
@@ -195,7 +189,7 @@ Q_SIGNALS:
void doubleValueSelected(double value);
public:
- void done(int result);
+ void done(int result) Q_DECL_OVERRIDE;
private:
Q_DISABLE_COPY(QInputDialog)
diff --git a/src/widgets/dialogs/qmessagebox.cpp b/src/widgets/dialogs/qmessagebox.cpp
index effcef2bc9..e4862f16d1 100644
--- a/src/widgets/dialogs/qmessagebox.cpp
+++ b/src/widgets/dialogs/qmessagebox.cpp
@@ -89,7 +89,7 @@ public:
{
public:
TextEdit(QWidget *parent=0) : QTextEdit(parent) { }
- void contextMenuEvent(QContextMenuEvent * e)
+ void contextMenuEvent(QContextMenuEvent * e) Q_DECL_OVERRIDE
{
#ifndef QT_NO_CONTEXTMENU
QMenu *menu = createStandardContextMenu();
@@ -167,7 +167,7 @@ public:
void setLabel(DetailButtonLabel lbl)
{ setText(label(lbl)); }
- QSize sizeHint() const
+ QSize sizeHint() const Q_DECL_OVERRIDE
{
ensurePolished();
QStyleOptionButton opt;
@@ -256,9 +256,9 @@ public:
QByteArray signalToDisconnectOnClose;
QSharedPointer<QMessageDialogOptions> options;
private:
- void initHelper(QPlatformDialogHelper *);
- void helperPrepareShow(QPlatformDialogHelper *);
- void helperDone(QDialog::DialogCode, QPlatformDialogHelper *);
+ void initHelper(QPlatformDialogHelper *) Q_DECL_OVERRIDE;
+ void helperPrepareShow(QPlatformDialogHelper *) Q_DECL_OVERRIDE;
+ void helperDone(QDialog::DialogCode, QPlatformDialogHelper *) Q_DECL_OVERRIDE;
};
void QMessageBoxPrivate::init(const QString &title, const QString &text)
diff --git a/src/widgets/dialogs/qmessagebox.h b/src/widgets/dialogs/qmessagebox.h
index 1b47e9c575..f75331c967 100644
--- a/src/widgets/dialogs/qmessagebox.h
+++ b/src/widgets/dialogs/qmessagebox.h
@@ -140,13 +140,7 @@ public:
void setVisible(bool visible);
#endif
-#ifdef Q_NO_USING_KEYWORD
-#ifndef Q_QDOC
- void open() { QDialog::open(); }
-#endif
-#else
using QDialog::open;
-#endif
void open(QObject *receiver, const char *member);
QList<QAbstractButton *> buttons() const;
@@ -293,12 +287,12 @@ public Q_SLOTS:
#endif
protected:
- bool event(QEvent *e);
- void resizeEvent(QResizeEvent *event);
- void showEvent(QShowEvent *event);
- void closeEvent(QCloseEvent *event);
- void keyPressEvent(QKeyEvent *event);
- void changeEvent(QEvent *event);
+ bool event(QEvent *e) Q_DECL_OVERRIDE;
+ void resizeEvent(QResizeEvent *event) Q_DECL_OVERRIDE;
+ void showEvent(QShowEvent *event) Q_DECL_OVERRIDE;
+ void closeEvent(QCloseEvent *event) Q_DECL_OVERRIDE;
+ void keyPressEvent(QKeyEvent *event) Q_DECL_OVERRIDE;
+ void changeEvent(QEvent *event) Q_DECL_OVERRIDE;
private:
Q_PRIVATE_SLOT(d_func(), void _q_buttonClicked(QAbstractButton *))
diff --git a/src/widgets/dialogs/qprogressdialog.h b/src/widgets/dialogs/qprogressdialog.h
index 7547f06682..2b7a14aed3 100644
--- a/src/widgets/dialogs/qprogressdialog.h
+++ b/src/widgets/dialogs/qprogressdialog.h
@@ -77,7 +77,7 @@ public:
int value() const;
- QSize sizeHint() const;
+ QSize sizeHint() const Q_DECL_OVERRIDE;
QString labelText() const;
int minimumDuration() const;
@@ -87,13 +87,7 @@ public:
void setAutoClose(bool close);
bool autoClose() const;
-#ifdef Q_NO_USING_KEYWORD
-#ifndef Q_QDOC
- void open() { QDialog::open(); }
-#endif
-#else
using QDialog::open;
-#endif
void open(QObject *receiver, const char *member);
public Q_SLOTS:
@@ -111,10 +105,10 @@ Q_SIGNALS:
void canceled();
protected:
- void resizeEvent(QResizeEvent *event);
- void closeEvent(QCloseEvent *event);
- void changeEvent(QEvent *event);
- void showEvent(QShowEvent *event);
+ void resizeEvent(QResizeEvent *event) Q_DECL_OVERRIDE;
+ void closeEvent(QCloseEvent *event) Q_DECL_OVERRIDE;
+ void changeEvent(QEvent *event) Q_DECL_OVERRIDE;
+ void showEvent(QShowEvent *event) Q_DECL_OVERRIDE;
protected Q_SLOTS:
void forceShow();
diff --git a/src/widgets/dialogs/qsidebar_p.h b/src/widgets/dialogs/qsidebar_p.h
index 402863da85..e90fe5e636 100644
--- a/src/widgets/dialogs/qsidebar_p.h
+++ b/src/widgets/dialogs/qsidebar_p.h
@@ -61,7 +61,7 @@ class QSideBarDelegate : public QStyledItemDelegate
public:
QSideBarDelegate(QWidget *parent = 0) : QStyledItemDelegate(parent) {}
void initStyleOption(QStyleOptionViewItem *option,
- const QModelIndex &index) const;
+ const QModelIndex &index) const Q_DECL_OVERRIDE;
};
class Q_AUTOTEST_EXPORT QUrlModel : public QStandardItemModel
@@ -76,14 +76,14 @@ public:
QUrlModel(QObject *parent = 0);
- QStringList mimeTypes() const;
- QMimeData *mimeData(const QModelIndexList &indexes) const;
+ QStringList mimeTypes() const Q_DECL_OVERRIDE;
+ QMimeData *mimeData(const QModelIndexList &indexes) const Q_DECL_OVERRIDE;
#ifndef QT_NO_DRAGANDDROP
bool canDrop(QDragEnterEvent *event);
- bool dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent);
+ bool dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) Q_DECL_OVERRIDE;
#endif
- Qt::ItemFlags flags(const QModelIndex &index) const;
- bool setData(const QModelIndex &index, const QVariant &value, int role=Qt::EditRole);
+ Qt::ItemFlags flags(const QModelIndex &index) const Q_DECL_OVERRIDE;
+ bool setData(const QModelIndex &index, const QVariant &value, int role=Qt::EditRole) Q_DECL_OVERRIDE;
void setUrls(const QList<QUrl> &list);
void addUrls(const QList<QUrl> &urls, int row = -1, bool move = true);
@@ -116,7 +116,7 @@ public:
void setModelAndUrls(QFileSystemModel *model, const QList<QUrl> &newUrls);
~QSidebar();
- QSize sizeHint() const;
+ QSize sizeHint() const Q_DECL_OVERRIDE;
void setUrls(const QList<QUrl> &list) { urlModel->setUrls(list); }
void addUrls(const QList<QUrl> &list, int row) { urlModel->addUrls(list, row); }
@@ -125,10 +125,10 @@ public:
void selectUrl(const QUrl &url);
protected:
- bool event(QEvent * e);
- void focusInEvent(QFocusEvent *event);
+ bool event(QEvent * e) Q_DECL_OVERRIDE;
+ void focusInEvent(QFocusEvent *event) Q_DECL_OVERRIDE;
#ifndef QT_NO_DRAGANDDROP
- void dragEnterEvent(QDragEnterEvent *event);
+ void dragEnterEvent(QDragEnterEvent *event) Q_DECL_OVERRIDE;
#endif
private Q_SLOTS:
diff --git a/src/widgets/dialogs/qwizard.cpp b/src/widgets/dialogs/qwizard.cpp
index a378daa3d3..35ff6d73f1 100644
--- a/src/widgets/dialogs/qwizard.cpp
+++ b/src/widgets/dialogs/qwizard.cpp
@@ -290,7 +290,7 @@ public:
Qt::TextFormat titleFormat, Qt::TextFormat subTitleFormat);
protected:
- void paintEvent(QPaintEvent *event);
+ void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE;
#if !defined(QT_NO_STYLE_WINDOWSVISTA)
private:
bool vistaDisabled() const;
@@ -446,7 +446,7 @@ public:
m_layout->addWidget(m_sideWidget);
}
- QSize minimumSizeHint() const {
+ QSize minimumSizeHint() const Q_DECL_OVERRIDE {
if (!pixmap() && !pixmap()->isNull())
return pixmap()->size();
return QFrame::minimumSizeHint();
diff --git a/src/widgets/dialogs/qwizard.h b/src/widgets/dialogs/qwizard.h
index 25b0d5e3ee..7ceddf5049 100644
--- a/src/widgets/dialogs/qwizard.h
+++ b/src/widgets/dialogs/qwizard.h
@@ -161,8 +161,8 @@ public:
void setDefaultProperty(const char *className, const char *property,
const char *changedSignal);
- void setVisible(bool visible);
- QSize sizeHint() const;
+ void setVisible(bool visible) Q_DECL_OVERRIDE;
+ QSize sizeHint() const Q_DECL_OVERRIDE;
Q_SIGNALS:
void currentIdChanged(int id);
@@ -177,13 +177,13 @@ public Q_SLOTS:
void restart();
protected:
- bool event(QEvent *event);
- void resizeEvent(QResizeEvent *event);
- void paintEvent(QPaintEvent *event);
+ bool event(QEvent *event) Q_DECL_OVERRIDE;
+ void resizeEvent(QResizeEvent *event) Q_DECL_OVERRIDE;
+ void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE;
#ifdef Q_OS_WIN
bool nativeEvent(const QByteArray &eventType, void * message, long * result);
#endif
- void done(int result);
+ void done(int result) Q_DECL_OVERRIDE;
virtual void initializePage(int id);
virtual void cleanupPage(int id);
diff --git a/src/widgets/effects/qgraphicseffect.h b/src/widgets/effects/qgraphicseffect.h
index a7db19431d..bdb1770f83 100644
--- a/src/widgets/effects/qgraphicseffect.h
+++ b/src/widgets/effects/qgraphicseffect.h
@@ -137,7 +137,7 @@ Q_SIGNALS:
void strengthChanged(qreal strength);
protected:
- void draw(QPainter *painter);
+ void draw(QPainter *painter) Q_DECL_OVERRIDE;
private:
Q_DECLARE_PRIVATE(QGraphicsColorizeEffect)
@@ -162,7 +162,7 @@ public:
QGraphicsBlurEffect(QObject *parent = 0);
~QGraphicsBlurEffect();
- QRectF boundingRectFor(const QRectF &rect) const;
+ QRectF boundingRectFor(const QRectF &rect) const Q_DECL_OVERRIDE;
qreal blurRadius() const;
BlurHints blurHints() const;
@@ -175,7 +175,7 @@ Q_SIGNALS:
void blurHintsChanged(BlurHints hints);
protected:
- void draw(QPainter *painter);
+ void draw(QPainter *painter) Q_DECL_OVERRIDE;
private:
Q_DECLARE_PRIVATE(QGraphicsBlurEffect)
@@ -197,7 +197,7 @@ public:
QGraphicsDropShadowEffect(QObject *parent = 0);
~QGraphicsDropShadowEffect();
- QRectF boundingRectFor(const QRectF &rect) const;
+ QRectF boundingRectFor(const QRectF &rect) const Q_DECL_OVERRIDE;
QPointF offset() const;
inline qreal xOffset() const
@@ -233,7 +233,7 @@ Q_SIGNALS:
void colorChanged(const QColor &color);
protected:
- void draw(QPainter *painter);
+ void draw(QPainter *painter) Q_DECL_OVERRIDE;
private:
Q_DECLARE_PRIVATE(QGraphicsDropShadowEffect)
@@ -262,7 +262,7 @@ Q_SIGNALS:
void opacityMaskChanged(const QBrush &mask);
protected:
- void draw(QPainter *painter);
+ void draw(QPainter *painter) Q_DECL_OVERRIDE;
private:
Q_DECLARE_PRIVATE(QGraphicsOpacityEffect)
diff --git a/src/widgets/effects/qpixmapfilter.cpp b/src/widgets/effects/qpixmapfilter.cpp
index 6f618b8914..e4e409a542 100644
--- a/src/widgets/effects/qpixmapfilter.cpp
+++ b/src/widgets/effects/qpixmapfilter.cpp
@@ -705,7 +705,8 @@ void expblur(QImage &img, qreal radius, bool improvedQuality = false, int transp
Q_ASSERT(img.format() == QImage::Format_ARGB32_Premultiplied
|| img.format() == QImage::Format_RGB32
- || img.format() == QImage::Format_Indexed8);
+ || img.format() == QImage::Format_Indexed8
+ || img.format() == QImage::Format_Grayscale8);
// choose the alpha such that pixels at radius distance from a fully
// saturated pixel will have an alpha component of no greater than
@@ -780,7 +781,7 @@ Q_WIDGETS_EXPORT QImage qt_halfScaled(const QImage &source)
QImage srcImage = source;
- if (source.format() == QImage::Format_Indexed8) {
+ if (source.format() == QImage::Format_Indexed8 || source.format() == QImage::Format_Grayscale8) {
// assumes grayscale
QImage dest(source.width() / 2, source.height() / 2, srcImage.format());
@@ -890,7 +891,7 @@ Q_WIDGETS_EXPORT void qt_blurImage(QPainter *p, QImage &blurImage, qreal radius,
Q_WIDGETS_EXPORT void qt_blurImage(QImage &blurImage, qreal radius, bool quality, int transposed = 0)
{
- if (blurImage.format() == QImage::Format_Indexed8)
+ if (blurImage.format() == QImage::Format_Indexed8 || blurImage.format() == QImage::Format_Grayscale8)
expblur<12, 10, true>(blurImage, radius, quality, transposed);
else
expblur<12, 10, false>(blurImage, radius, quality, transposed);
diff --git a/src/widgets/effects/qpixmapfilter_p.h b/src/widgets/effects/qpixmapfilter_p.h
index 22925f66cf..6f71bd93e0 100644
--- a/src/widgets/effects/qpixmapfilter_p.h
+++ b/src/widgets/effects/qpixmapfilter_p.h
@@ -98,8 +98,8 @@ public:
void setConvolutionKernel(const qreal *matrix, int rows, int columns);
- QRectF boundingRectFor(const QRectF &rect) const;
- void draw(QPainter *painter, const QPointF &dest, const QPixmap &src, const QRectF &srcRect = QRectF()) const;
+ QRectF boundingRectFor(const QRectF &rect) const Q_DECL_OVERRIDE;
+ void draw(QPainter *painter, const QPointF &dest, const QPixmap &src, const QRectF &srcRect = QRectF()) const Q_DECL_OVERRIDE;
private:
friend class QGLPixmapConvolutionFilter;
@@ -126,8 +126,8 @@ public:
qreal radius() const;
QGraphicsBlurEffect::BlurHints blurHints() const;
- QRectF boundingRectFor(const QRectF &rect) const;
- void draw(QPainter *painter, const QPointF &dest, const QPixmap &src, const QRectF &srcRect = QRectF()) const;
+ QRectF boundingRectFor(const QRectF &rect) const Q_DECL_OVERRIDE;
+ void draw(QPainter *painter, const QPointF &dest, const QPixmap &src, const QRectF &srcRect = QRectF()) const Q_DECL_OVERRIDE;
private:
friend class QGLPixmapBlurFilter;
@@ -149,7 +149,7 @@ public:
void setStrength(qreal strength);
qreal strength() const;
- void draw(QPainter *painter, const QPointF &dest, const QPixmap &src, const QRectF &srcRect = QRectF()) const;
+ void draw(QPainter *painter, const QPointF &dest, const QPixmap &src, const QRectF &srcRect = QRectF()) const Q_DECL_OVERRIDE;
};
class QPixmapDropShadowFilterPrivate;
@@ -163,8 +163,8 @@ public:
QPixmapDropShadowFilter(QObject *parent = 0);
~QPixmapDropShadowFilter();
- QRectF boundingRectFor(const QRectF &rect) const;
- void draw(QPainter *p, const QPointF &pos, const QPixmap &px, const QRectF &src = QRectF()) const;
+ QRectF boundingRectFor(const QRectF &rect) const Q_DECL_OVERRIDE;
+ void draw(QPainter *p, const QPointF &pos, const QPixmap &px, const QRectF &src = QRectF()) const Q_DECL_OVERRIDE;
qreal blurRadius() const;
void setBlurRadius(qreal radius);
diff --git a/src/widgets/graphicsview/qgraphicsanchorlayout.h b/src/widgets/graphicsview/qgraphicsanchorlayout.h
index 13494dd81a..cec85f8430 100644
--- a/src/widgets/graphicsview/qgraphicsanchorlayout.h
+++ b/src/widgets/graphicsview/qgraphicsanchorlayout.h
@@ -92,14 +92,14 @@ public:
qreal horizontalSpacing() const;
qreal verticalSpacing() const;
- void removeAt(int index);
- void setGeometry(const QRectF &rect);
- int count() const;
- QGraphicsLayoutItem *itemAt(int index) const;
+ void removeAt(int index) Q_DECL_OVERRIDE;
+ void setGeometry(const QRectF &rect) Q_DECL_OVERRIDE;
+ int count() const Q_DECL_OVERRIDE;
+ QGraphicsLayoutItem *itemAt(int index) const Q_DECL_OVERRIDE;
- void invalidate();
+ void invalidate() Q_DECL_OVERRIDE;
protected:
- QSizeF sizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const;
+ QSizeF sizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const Q_DECL_OVERRIDE;
private:
Q_DISABLE_COPY(QGraphicsAnchorLayout)
diff --git a/src/widgets/graphicsview/qgraphicsanchorlayout_p.h b/src/widgets/graphicsview/qgraphicsanchorlayout_p.h
index 457a5a2769..96ca7544ee 100644
--- a/src/widgets/graphicsview/qgraphicsanchorlayout_p.h
+++ b/src/widgets/graphicsview/qgraphicsanchorlayout_p.h
@@ -189,7 +189,7 @@ struct SequentialAnchorData : public AnchorData
#endif
}
- virtual void updateChildrenSizes();
+ virtual void updateChildrenSizes() Q_DECL_OVERRIDE;
void calculateSizeHints();
QVector<AnchorVertex*> m_children; // list of vertices in the sequence
@@ -217,7 +217,7 @@ struct ParallelAnchorData : public AnchorData
#endif
}
- virtual void updateChildrenSizes();
+ virtual void updateChildrenSizes() Q_DECL_OVERRIDE;
bool calculateSizeHints();
bool secondForward() const {
diff --git a/src/widgets/graphicsview/qgraphicsgridlayout.cpp b/src/widgets/graphicsview/qgraphicsgridlayout.cpp
index 9720bbf9ba..5f689edef6 100644
--- a/src/widgets/graphicsview/qgraphicsgridlayout.cpp
+++ b/src/widgets/graphicsview/qgraphicsgridlayout.cpp
@@ -108,7 +108,6 @@ QGraphicsLayoutStyleInfo *QGraphicsGridLayoutPrivate::styleInfo() const
{
if (!m_styleInfo)
m_styleInfo = new QGraphicsLayoutStyleInfo(this);
- m_styleInfo->updateChanged(QAbstractLayoutStyleInfo::Unknown);
return m_styleInfo;
}
diff --git a/src/widgets/graphicsview/qgraphicsgridlayout.h b/src/widgets/graphicsview/qgraphicsgridlayout.h
index 26b6daa96f..43400c3ce4 100644
--- a/src/widgets/graphicsview/qgraphicsgridlayout.h
+++ b/src/widgets/graphicsview/qgraphicsgridlayout.h
@@ -100,16 +100,16 @@ public:
QGraphicsLayoutItem *itemAt(int row, int column) const;
// inherited from QGraphicsLayout
- int count() const;
- QGraphicsLayoutItem *itemAt(int index) const;
- void removeAt(int index);
+ int count() const Q_DECL_OVERRIDE;
+ QGraphicsLayoutItem *itemAt(int index) const Q_DECL_OVERRIDE;
+ void removeAt(int index) Q_DECL_OVERRIDE;
void removeItem(QGraphicsLayoutItem *item);
- void invalidate();
+ void invalidate() Q_DECL_OVERRIDE;
// inherited from QGraphicsLayoutItem
- void setGeometry(const QRectF &rect);
- QSizeF sizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const;
+ void setGeometry(const QRectF &rect) Q_DECL_OVERRIDE;
+ QSizeF sizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const Q_DECL_OVERRIDE;
// ####
//QRect cellRect(int row, int column, int rowSpan = 1, int columnSpan = 1) const;
diff --git a/src/widgets/graphicsview/qgraphicsitem.cpp b/src/widgets/graphicsview/qgraphicsitem.cpp
index a543445244..3e9294343e 100644
--- a/src/widgets/graphicsview/qgraphicsitem.cpp
+++ b/src/widgets/graphicsview/qgraphicsitem.cpp
@@ -8034,16 +8034,6 @@ void QGraphicsItemPrivate::resetHeight()
*/
/*!
- \fn const QObjectList &QGraphicsObject::children() const
- \internal
-
- This function returns the same value as QObject::children(). It's
- provided to differentiate between the obsolete member
- QGraphicsItem::children() and QObject::children(). QGraphicsItem now
- provides childItems() instead.
-*/
-
-/*!
\property QGraphicsObject::transformOriginPoint
\brief the transformation origin
diff --git a/src/widgets/graphicsview/qgraphicsitem.h b/src/widgets/graphicsview/qgraphicsitem.h
index 3a238390d7..4435840e22 100644
--- a/src/widgets/graphicsview/qgraphicsitem.h
+++ b/src/widgets/graphicsview/qgraphicsitem.h
@@ -556,11 +556,7 @@ public:
explicit QGraphicsObject(QGraphicsItem *parent = 0);
~QGraphicsObject();
-#ifdef Q_NO_USING_KEYWORD
- const QObjectList &children() const { return QObject::children(); }
-#else
using QObject::children;
-#endif
#ifndef QT_NO_GESTURES
void grabGesture(Qt::GestureType type, Qt::GestureFlags flags = Qt::GestureFlags());
@@ -587,7 +583,7 @@ Q_SIGNALS:
protected:
QGraphicsObject(QGraphicsItemPrivate &dd, QGraphicsItem *parent);
- bool event(QEvent *ev);
+ bool event(QEvent *ev) Q_DECL_OVERRIDE;
private:
friend class QGraphicsItem;
@@ -608,8 +604,8 @@ public:
QBrush brush() const;
void setBrush(const QBrush &brush);
- bool isObscuredBy(const QGraphicsItem *item) const;
- QPainterPath opaqueArea() const;
+ bool isObscuredBy(const QGraphicsItem *item) const Q_DECL_OVERRIDE;
+ QPainterPath opaqueArea() const Q_DECL_OVERRIDE;
protected:
QAbstractGraphicsShapeItem(QAbstractGraphicsShapeItemPrivate &dd,
@@ -631,22 +627,22 @@ public:
QPainterPath path() const;
void setPath(const QPainterPath &path);
- QRectF boundingRect() const;
- QPainterPath shape() const;
- bool contains(const QPointF &point) const;
+ QRectF boundingRect() const Q_DECL_OVERRIDE;
+ QPainterPath shape() const Q_DECL_OVERRIDE;
+ bool contains(const QPointF &point) const Q_DECL_OVERRIDE;
- void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0);
+ void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0) Q_DECL_OVERRIDE;
- bool isObscuredBy(const QGraphicsItem *item) const;
- QPainterPath opaqueArea() const;
+ bool isObscuredBy(const QGraphicsItem *item) const Q_DECL_OVERRIDE;
+ QPainterPath opaqueArea() const Q_DECL_OVERRIDE;
enum { Type = 2 };
- int type() const;
+ int type() const Q_DECL_OVERRIDE;
protected:
- bool supportsExtension(Extension extension) const;
- void setExtension(Extension extension, const QVariant &variant);
- QVariant extension(const QVariant &variant) const;
+ bool supportsExtension(Extension extension) const Q_DECL_OVERRIDE;
+ void setExtension(Extension extension, const QVariant &variant) Q_DECL_OVERRIDE;
+ QVariant extension(const QVariant &variant) const Q_DECL_OVERRIDE;
private:
Q_DISABLE_COPY(QGraphicsPathItem)
@@ -666,22 +662,22 @@ public:
void setRect(const QRectF &rect);
inline void setRect(qreal x, qreal y, qreal w, qreal h);
- QRectF boundingRect() const;
- QPainterPath shape() const;
- bool contains(const QPointF &point) const;
+ QRectF boundingRect() const Q_DECL_OVERRIDE;
+ QPainterPath shape() const Q_DECL_OVERRIDE;
+ bool contains(const QPointF &point) const Q_DECL_OVERRIDE;
- void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0);
+ void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0) Q_DECL_OVERRIDE;
- bool isObscuredBy(const QGraphicsItem *item) const;
- QPainterPath opaqueArea() const;
+ bool isObscuredBy(const QGraphicsItem *item) const Q_DECL_OVERRIDE;
+ QPainterPath opaqueArea() const Q_DECL_OVERRIDE;
enum { Type = 3 };
- int type() const;
+ int type() const Q_DECL_OVERRIDE;
protected:
- bool supportsExtension(Extension extension) const;
- void setExtension(Extension extension, const QVariant &variant);
- QVariant extension(const QVariant &variant) const;
+ bool supportsExtension(Extension extension) const Q_DECL_OVERRIDE;
+ void setExtension(Extension extension, const QVariant &variant) Q_DECL_OVERRIDE;
+ QVariant extension(const QVariant &variant) const Q_DECL_OVERRIDE;
private:
Q_DISABLE_COPY(QGraphicsRectItem)
@@ -710,22 +706,22 @@ public:
int spanAngle() const;
void setSpanAngle(int angle);
- QRectF boundingRect() const;
- QPainterPath shape() const;
- bool contains(const QPointF &point) const;
+ QRectF boundingRect() const Q_DECL_OVERRIDE;
+ QPainterPath shape() const Q_DECL_OVERRIDE;
+ bool contains(const QPointF &point) const Q_DECL_OVERRIDE;
- void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0);
+ void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0) Q_DECL_OVERRIDE;
- bool isObscuredBy(const QGraphicsItem *item) const;
- QPainterPath opaqueArea() const;
+ bool isObscuredBy(const QGraphicsItem *item) const Q_DECL_OVERRIDE;
+ QPainterPath opaqueArea() const Q_DECL_OVERRIDE;
enum { Type = 4 };
- int type() const;
+ int type() const Q_DECL_OVERRIDE;
protected:
- bool supportsExtension(Extension extension) const;
- void setExtension(Extension extension, const QVariant &variant);
- QVariant extension(const QVariant &variant) const;
+ bool supportsExtension(Extension extension) const Q_DECL_OVERRIDE;
+ void setExtension(Extension extension, const QVariant &variant) Q_DECL_OVERRIDE;
+ QVariant extension(const QVariant &variant) const Q_DECL_OVERRIDE;
private:
Q_DISABLE_COPY(QGraphicsEllipseItem)
@@ -750,22 +746,22 @@ public:
Qt::FillRule fillRule() const;
void setFillRule(Qt::FillRule rule);
- QRectF boundingRect() const;
- QPainterPath shape() const;
- bool contains(const QPointF &point) const;
+ QRectF boundingRect() const Q_DECL_OVERRIDE;
+ QPainterPath shape() const Q_DECL_OVERRIDE;
+ bool contains(const QPointF &point) const Q_DECL_OVERRIDE;
- void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0);
+ void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0) Q_DECL_OVERRIDE;
- bool isObscuredBy(const QGraphicsItem *item) const;
- QPainterPath opaqueArea() const;
+ bool isObscuredBy(const QGraphicsItem *item) const Q_DECL_OVERRIDE;
+ QPainterPath opaqueArea() const Q_DECL_OVERRIDE;
enum { Type = 5 };
- int type() const;
+ int type() const Q_DECL_OVERRIDE;
protected:
- bool supportsExtension(Extension extension) const;
- void setExtension(Extension extension, const QVariant &variant);
- QVariant extension(const QVariant &variant) const;
+ bool supportsExtension(Extension extension) const Q_DECL_OVERRIDE;
+ void setExtension(Extension extension, const QVariant &variant) Q_DECL_OVERRIDE;
+ QVariant extension(const QVariant &variant) const Q_DECL_OVERRIDE;
private:
Q_DISABLE_COPY(QGraphicsPolygonItem)
@@ -789,22 +785,22 @@ public:
inline void setLine(qreal x1, qreal y1, qreal x2, qreal y2)
{ setLine(QLineF(x1, y1, x2, y2)); }
- QRectF boundingRect() const;
- QPainterPath shape() const;
- bool contains(const QPointF &point) const;
+ QRectF boundingRect() const Q_DECL_OVERRIDE;
+ QPainterPath shape() const Q_DECL_OVERRIDE;
+ bool contains(const QPointF &point) const Q_DECL_OVERRIDE;
- void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0);
+ void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0) Q_DECL_OVERRIDE;
- bool isObscuredBy(const QGraphicsItem *item) const;
- QPainterPath opaqueArea() const;
+ bool isObscuredBy(const QGraphicsItem *item) const Q_DECL_OVERRIDE;
+ QPainterPath opaqueArea() const Q_DECL_OVERRIDE;
enum { Type = 6 };
- int type() const;
+ int type() const Q_DECL_OVERRIDE;
protected:
- bool supportsExtension(Extension extension) const;
- void setExtension(Extension extension, const QVariant &variant);
- QVariant extension(const QVariant &variant) const;
+ bool supportsExtension(Extension extension) const Q_DECL_OVERRIDE;
+ void setExtension(Extension extension, const QVariant &variant) Q_DECL_OVERRIDE;
+ QVariant extension(const QVariant &variant) const Q_DECL_OVERRIDE;
private:
Q_DISABLE_COPY(QGraphicsLineItem)
@@ -835,25 +831,25 @@ public:
void setOffset(const QPointF &offset);
inline void setOffset(qreal x, qreal y);
- QRectF boundingRect() const;
- QPainterPath shape() const;
- bool contains(const QPointF &point) const;
+ QRectF boundingRect() const Q_DECL_OVERRIDE;
+ QPainterPath shape() const Q_DECL_OVERRIDE;
+ bool contains(const QPointF &point) const Q_DECL_OVERRIDE;
- void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
+ void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) Q_DECL_OVERRIDE;
- bool isObscuredBy(const QGraphicsItem *item) const;
- QPainterPath opaqueArea() const;
+ bool isObscuredBy(const QGraphicsItem *item) const Q_DECL_OVERRIDE;
+ QPainterPath opaqueArea() const Q_DECL_OVERRIDE;
enum { Type = 7 };
- int type() const;
+ int type() const Q_DECL_OVERRIDE;
ShapeMode shapeMode() const;
void setShapeMode(ShapeMode mode);
protected:
- bool supportsExtension(Extension extension) const;
- void setExtension(Extension extension, const QVariant &variant);
- QVariant extension(const QVariant &variant) const;
+ bool supportsExtension(Extension extension) const Q_DECL_OVERRIDE;
+ void setExtension(Extension extension, const QVariant &variant) Q_DECL_OVERRIDE;
+ QVariant extension(const QVariant &variant) const Q_DECL_OVERRIDE;
private:
Q_DISABLE_COPY(QGraphicsPixmapItem)
@@ -889,17 +885,17 @@ public:
void setDefaultTextColor(const QColor &c);
QColor defaultTextColor() const;
- QRectF boundingRect() const;
- QPainterPath shape() const;
- bool contains(const QPointF &point) const;
+ QRectF boundingRect() const Q_DECL_OVERRIDE;
+ QPainterPath shape() const Q_DECL_OVERRIDE;
+ bool contains(const QPointF &point) const Q_DECL_OVERRIDE;
- void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
+ void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) Q_DECL_OVERRIDE;
- bool isObscuredBy(const QGraphicsItem *item) const;
- QPainterPath opaqueArea() const;
+ bool isObscuredBy(const QGraphicsItem *item) const Q_DECL_OVERRIDE;
+ QPainterPath opaqueArea() const Q_DECL_OVERRIDE;
enum { Type = 8 };
- int type() const;
+ int type() const Q_DECL_OVERRIDE;
void setTextWidth(qreal width);
qreal textWidth() const;
@@ -926,30 +922,30 @@ Q_SIGNALS:
void linkHovered(const QString &);
protected:
- bool sceneEvent(QEvent *event);
- void mousePressEvent(QGraphicsSceneMouseEvent *event);
- void mouseMoveEvent(QGraphicsSceneMouseEvent *event);
- void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);
- void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event);
- void contextMenuEvent(QGraphicsSceneContextMenuEvent *event);
- void keyPressEvent(QKeyEvent *event);
- void keyReleaseEvent(QKeyEvent *event);
- void focusInEvent(QFocusEvent *event);
- void focusOutEvent(QFocusEvent *event);
- void dragEnterEvent(QGraphicsSceneDragDropEvent *event);
- void dragLeaveEvent(QGraphicsSceneDragDropEvent *event);
- void dragMoveEvent(QGraphicsSceneDragDropEvent *event);
- void dropEvent(QGraphicsSceneDragDropEvent *event);
- void inputMethodEvent(QInputMethodEvent *event);
- void hoverEnterEvent(QGraphicsSceneHoverEvent *event);
- void hoverMoveEvent(QGraphicsSceneHoverEvent *event);
- void hoverLeaveEvent(QGraphicsSceneHoverEvent *event);
-
- QVariant inputMethodQuery(Qt::InputMethodQuery query) const;
-
- bool supportsExtension(Extension extension) const;
- void setExtension(Extension extension, const QVariant &variant);
- QVariant extension(const QVariant &variant) const;
+ bool sceneEvent(QEvent *event) Q_DECL_OVERRIDE;
+ void mousePressEvent(QGraphicsSceneMouseEvent *event) Q_DECL_OVERRIDE;
+ void mouseMoveEvent(QGraphicsSceneMouseEvent *event) Q_DECL_OVERRIDE;
+ void mouseReleaseEvent(QGraphicsSceneMouseEvent *event) Q_DECL_OVERRIDE;
+ void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) Q_DECL_OVERRIDE;
+ void contextMenuEvent(QGraphicsSceneContextMenuEvent *event) Q_DECL_OVERRIDE;
+ void keyPressEvent(QKeyEvent *event) Q_DECL_OVERRIDE;
+ void keyReleaseEvent(QKeyEvent *event) Q_DECL_OVERRIDE;
+ void focusInEvent(QFocusEvent *event) Q_DECL_OVERRIDE;
+ void focusOutEvent(QFocusEvent *event) Q_DECL_OVERRIDE;
+ void dragEnterEvent(QGraphicsSceneDragDropEvent *event) Q_DECL_OVERRIDE;
+ void dragLeaveEvent(QGraphicsSceneDragDropEvent *event) Q_DECL_OVERRIDE;
+ void dragMoveEvent(QGraphicsSceneDragDropEvent *event) Q_DECL_OVERRIDE;
+ void dropEvent(QGraphicsSceneDragDropEvent *event) Q_DECL_OVERRIDE;
+ void inputMethodEvent(QInputMethodEvent *event) Q_DECL_OVERRIDE;
+ void hoverEnterEvent(QGraphicsSceneHoverEvent *event) Q_DECL_OVERRIDE;
+ void hoverMoveEvent(QGraphicsSceneHoverEvent *event) Q_DECL_OVERRIDE;
+ void hoverLeaveEvent(QGraphicsSceneHoverEvent *event) Q_DECL_OVERRIDE;
+
+ QVariant inputMethodQuery(Qt::InputMethodQuery query) const Q_DECL_OVERRIDE;
+
+ bool supportsExtension(Extension extension) const Q_DECL_OVERRIDE;
+ void setExtension(Extension extension, const QVariant &variant) Q_DECL_OVERRIDE;
+ QVariant extension(const QVariant &variant) const Q_DECL_OVERRIDE;
private:
Q_DISABLE_COPY(QGraphicsTextItem)
@@ -974,22 +970,22 @@ public:
void setFont(const QFont &font);
QFont font() const;
- QRectF boundingRect() const;
- QPainterPath shape() const;
- bool contains(const QPointF &point) const;
+ QRectF boundingRect() const Q_DECL_OVERRIDE;
+ QPainterPath shape() const Q_DECL_OVERRIDE;
+ bool contains(const QPointF &point) const Q_DECL_OVERRIDE;
- void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
+ void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) Q_DECL_OVERRIDE;
- bool isObscuredBy(const QGraphicsItem *item) const;
- QPainterPath opaqueArea() const;
+ bool isObscuredBy(const QGraphicsItem *item) const Q_DECL_OVERRIDE;
+ QPainterPath opaqueArea() const Q_DECL_OVERRIDE;
enum { Type = 9 };
- int type() const;
+ int type() const Q_DECL_OVERRIDE;
protected:
- bool supportsExtension(Extension extension) const;
- void setExtension(Extension extension, const QVariant &variant);
- QVariant extension(const QVariant &variant) const;
+ bool supportsExtension(Extension extension) const Q_DECL_OVERRIDE;
+ void setExtension(Extension extension, const QVariant &variant) Q_DECL_OVERRIDE;
+ QVariant extension(const QVariant &variant) const Q_DECL_OVERRIDE;
private:
Q_DISABLE_COPY(QGraphicsSimpleTextItem)
@@ -1006,14 +1002,14 @@ public:
void addToGroup(QGraphicsItem *item);
void removeFromGroup(QGraphicsItem *item);
- QRectF boundingRect() const;
- void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0);
+ QRectF boundingRect() const Q_DECL_OVERRIDE;
+ void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0) Q_DECL_OVERRIDE;
- bool isObscuredBy(const QGraphicsItem *item) const;
- QPainterPath opaqueArea() const;
+ bool isObscuredBy(const QGraphicsItem *item) const Q_DECL_OVERRIDE;
+ QPainterPath opaqueArea() const Q_DECL_OVERRIDE;
enum { Type = 10 };
- int type() const;
+ int type() const Q_DECL_OVERRIDE;
private:
Q_DISABLE_COPY(QGraphicsItemGroup)
diff --git a/src/widgets/graphicsview/qgraphicsitem_p.h b/src/widgets/graphicsview/qgraphicsitem_p.h
index f1986a5072..4af39cac2f 100644
--- a/src/widgets/graphicsview/qgraphicsitem_p.h
+++ b/src/widgets/graphicsview/qgraphicsitem_p.h
@@ -699,11 +699,11 @@ public:
return info->widget->rect();
}
- QRectF boundingRect(Qt::CoordinateSystem system) const;
- void draw(QPainter *);
+ QRectF boundingRect(Qt::CoordinateSystem system) const Q_DECL_OVERRIDE;
+ void draw(QPainter *) Q_DECL_OVERRIDE;
QPixmap pixmap(Qt::CoordinateSystem system,
QPoint *offset,
- QGraphicsEffect::PixmapPadMode mode) const;
+ QGraphicsEffect::PixmapPadMode mode) const Q_DECL_OVERRIDE;
QRect paddedEffectRect(Qt::CoordinateSystem system, QGraphicsEffect::PixmapPadMode mode, const QRectF &sourceRect, bool *unpadded = 0) const;
QGraphicsItem *item;
diff --git a/src/widgets/graphicsview/qgraphicslayout.h b/src/widgets/graphicsview/qgraphicslayout.h
index 83004e36f9..226c3984cf 100644
--- a/src/widgets/graphicsview/qgraphicslayout.h
+++ b/src/widgets/graphicsview/qgraphicslayout.h
@@ -52,12 +52,12 @@ public:
~QGraphicsLayout();
void setContentsMargins(qreal left, qreal top, qreal right, qreal bottom);
- void getContentsMargins(qreal *left, qreal *top, qreal *right, qreal *bottom) const;
+ void getContentsMargins(qreal *left, qreal *top, qreal *right, qreal *bottom) const Q_DECL_OVERRIDE;
void activate();
bool isActivated() const;
virtual void invalidate();
- virtual void updateGeometry();
+ virtual void updateGeometry() Q_DECL_OVERRIDE;
virtual void widgetEvent(QEvent *e);
diff --git a/src/widgets/graphicsview/qgraphicslayout_p.h b/src/widgets/graphicsview/qgraphicslayout_p.h
index a45cb31b28..698118eb75 100644
--- a/src/widgets/graphicsview/qgraphicslayout_p.h
+++ b/src/widgets/graphicsview/qgraphicslayout_p.h
@@ -65,7 +65,7 @@ inline bool qt_graphicsLayoutDebug()
{
static int checked_env = -1;
if(checked_env == -1)
- checked_env = !!qgetenv("QT_GRAPHICSLAYOUT_DEBUG").toInt();
+ checked_env = !!qEnvironmentVariableIntValue("QT_GRAPHICSLAYOUT_DEBUG");
return checked_env;
}
#endif
diff --git a/src/widgets/graphicsview/qgraphicslayoutstyleinfo_p.h b/src/widgets/graphicsview/qgraphicslayoutstyleinfo_p.h
index 9e216c8200..1cf94d3962 100644
--- a/src/widgets/graphicsview/qgraphicslayoutstyleinfo_p.h
+++ b/src/widgets/graphicsview/qgraphicslayoutstyleinfo_p.h
@@ -77,13 +77,6 @@ public:
QAbstractLayoutStyleInfo::invalidate();
}
- virtual bool hasChangedCore() const Q_DECL_OVERRIDE
- {
- QStyle *s = m_style;
- // Note that style() will change m_style
- return s != style();
- }
-
QWidget *widget() const;
QStyle *style() const;
diff --git a/src/widgets/graphicsview/qgraphicslinearlayout.cpp b/src/widgets/graphicsview/qgraphicslinearlayout.cpp
index cad049c30a..baf68d6eef 100644
--- a/src/widgets/graphicsview/qgraphicslinearlayout.cpp
+++ b/src/widgets/graphicsview/qgraphicslinearlayout.cpp
@@ -173,7 +173,6 @@ QGraphicsLayoutStyleInfo *QGraphicsLinearLayoutPrivate::styleInfo() const
{
if (!m_styleInfo)
m_styleInfo = new QGraphicsLayoutStyleInfo(this);
- m_styleInfo->updateChanged(QAbstractLayoutStyleInfo::Unknown);
return m_styleInfo;
}
diff --git a/src/widgets/graphicsview/qgraphicslinearlayout.h b/src/widgets/graphicsview/qgraphicslinearlayout.h
index 28c6fb4813..2602ea2a51 100644
--- a/src/widgets/graphicsview/qgraphicslinearlayout.h
+++ b/src/widgets/graphicsview/qgraphicslinearlayout.h
@@ -61,7 +61,7 @@ public:
void insertStretch(int index, int stretch = 1);
void removeItem(QGraphicsLayoutItem *item);
- void removeAt(int index);
+ void removeAt(int index) Q_DECL_OVERRIDE;
void setSpacing(qreal spacing);
qreal spacing() const;
@@ -74,13 +74,13 @@ public:
void setAlignment(QGraphicsLayoutItem *item, Qt::Alignment alignment);
Qt::Alignment alignment(QGraphicsLayoutItem *item) const;
- void setGeometry(const QRectF &rect);
+ void setGeometry(const QRectF &rect) Q_DECL_OVERRIDE;
- int count() const;
- QGraphicsLayoutItem *itemAt(int index) const;
+ int count() const Q_DECL_OVERRIDE;
+ QGraphicsLayoutItem *itemAt(int index) const Q_DECL_OVERRIDE;
- void invalidate();
- QSizeF sizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const;
+ void invalidate() Q_DECL_OVERRIDE;
+ QSizeF sizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const Q_DECL_OVERRIDE;
#if 0 // ###
Q5SizePolicy::ControlTypes controlTypes(LayoutSide side) const;
diff --git a/src/widgets/graphicsview/qgraphicsproxywidget.h b/src/widgets/graphicsview/qgraphicsproxywidget.h
index 765caea0b1..c2bd73e056 100644
--- a/src/widgets/graphicsview/qgraphicsproxywidget.h
+++ b/src/widgets/graphicsview/qgraphicsproxywidget.h
@@ -55,63 +55,63 @@ public:
QRectF subWidgetRect(const QWidget *widget) const;
- void setGeometry(const QRectF &rect);
+ void setGeometry(const QRectF &rect) Q_DECL_OVERRIDE;
- void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
+ void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) Q_DECL_OVERRIDE;
enum {
Type = 12
};
- int type() const;
+ int type() const Q_DECL_OVERRIDE;
QGraphicsProxyWidget *createProxyForChildWidget(QWidget *child);
protected:
- QVariant itemChange(GraphicsItemChange change, const QVariant &value);
+ QVariant itemChange(GraphicsItemChange change, const QVariant &value) Q_DECL_OVERRIDE;
- bool event(QEvent *event);
- bool eventFilter(QObject *object, QEvent *event);
+ bool event(QEvent *event) Q_DECL_OVERRIDE;
+ bool eventFilter(QObject *object, QEvent *event) Q_DECL_OVERRIDE;
- void showEvent(QShowEvent *event);
- void hideEvent(QHideEvent *event);
+ void showEvent(QShowEvent *event) Q_DECL_OVERRIDE;
+ void hideEvent(QHideEvent *event) Q_DECL_OVERRIDE;
#ifndef QT_NO_CONTEXTMENU
- void contextMenuEvent(QGraphicsSceneContextMenuEvent *event);
+ void contextMenuEvent(QGraphicsSceneContextMenuEvent *event) Q_DECL_OVERRIDE;
#endif
#ifndef QT_NO_DRAGANDDROP
- void dragEnterEvent(QGraphicsSceneDragDropEvent *event);
- void dragLeaveEvent(QGraphicsSceneDragDropEvent *event);
- void dragMoveEvent(QGraphicsSceneDragDropEvent *event);
- void dropEvent(QGraphicsSceneDragDropEvent *event);
+ void dragEnterEvent(QGraphicsSceneDragDropEvent *event) Q_DECL_OVERRIDE;
+ void dragLeaveEvent(QGraphicsSceneDragDropEvent *event) Q_DECL_OVERRIDE;
+ void dragMoveEvent(QGraphicsSceneDragDropEvent *event) Q_DECL_OVERRIDE;
+ void dropEvent(QGraphicsSceneDragDropEvent *event) Q_DECL_OVERRIDE;
#endif
- void hoverEnterEvent(QGraphicsSceneHoverEvent *event);
- void hoverLeaveEvent(QGraphicsSceneHoverEvent *event);
- void hoverMoveEvent(QGraphicsSceneHoverEvent *event);
- void grabMouseEvent(QEvent *event);
- void ungrabMouseEvent(QEvent *event);
+ void hoverEnterEvent(QGraphicsSceneHoverEvent *event) Q_DECL_OVERRIDE;
+ void hoverLeaveEvent(QGraphicsSceneHoverEvent *event) Q_DECL_OVERRIDE;
+ void hoverMoveEvent(QGraphicsSceneHoverEvent *event) Q_DECL_OVERRIDE;
+ void grabMouseEvent(QEvent *event) Q_DECL_OVERRIDE;
+ void ungrabMouseEvent(QEvent *event) Q_DECL_OVERRIDE;
- void mouseMoveEvent(QGraphicsSceneMouseEvent *event);
- void mousePressEvent(QGraphicsSceneMouseEvent *event);
- void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);
- void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event);
+ void mouseMoveEvent(QGraphicsSceneMouseEvent *event) Q_DECL_OVERRIDE;
+ void mousePressEvent(QGraphicsSceneMouseEvent *event) Q_DECL_OVERRIDE;
+ void mouseReleaseEvent(QGraphicsSceneMouseEvent *event) Q_DECL_OVERRIDE;
+ void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) Q_DECL_OVERRIDE;
#ifndef QT_NO_WHEELEVENT
- void wheelEvent(QGraphicsSceneWheelEvent *event);
+ void wheelEvent(QGraphicsSceneWheelEvent *event) Q_DECL_OVERRIDE;
#endif
- void keyPressEvent(QKeyEvent *event);
- void keyReleaseEvent(QKeyEvent *event);
+ void keyPressEvent(QKeyEvent *event) Q_DECL_OVERRIDE;
+ void keyReleaseEvent(QKeyEvent *event) Q_DECL_OVERRIDE;
- void focusInEvent(QFocusEvent *event);
- void focusOutEvent(QFocusEvent *event);
- bool focusNextPrevChild(bool next);
+ void focusInEvent(QFocusEvent *event) Q_DECL_OVERRIDE;
+ void focusOutEvent(QFocusEvent *event) Q_DECL_OVERRIDE;
+ bool focusNextPrevChild(bool next) Q_DECL_OVERRIDE;
- QVariant inputMethodQuery(Qt::InputMethodQuery query) const;
- void inputMethodEvent(QInputMethodEvent *event);
+ QVariant inputMethodQuery(Qt::InputMethodQuery query) const Q_DECL_OVERRIDE;
+ void inputMethodEvent(QInputMethodEvent *event) Q_DECL_OVERRIDE;
- QSizeF sizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const;
- void resizeEvent(QGraphicsSceneResizeEvent *event);
+ QSizeF sizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const Q_DECL_OVERRIDE;
+ void resizeEvent(QGraphicsSceneResizeEvent *event) Q_DECL_OVERRIDE;
protected Q_SLOTS:
QGraphicsProxyWidget *newProxyWidget(const QWidget *);
diff --git a/src/widgets/graphicsview/qgraphicsscene.cpp b/src/widgets/graphicsview/qgraphicsscene.cpp
index 988152da9d..8765b8114d 100644
--- a/src/widgets/graphicsview/qgraphicsscene.cpp
+++ b/src/widgets/graphicsview/qgraphicsscene.cpp
@@ -4910,7 +4910,7 @@ void QGraphicsScenePrivate::draw(QGraphicsItem *item, QPainter *painter, const Q
if (painterStateProtection || restorePainterClip)
painter->restore();
- static int drawRect = qgetenv("QT_DRAW_SCENE_ITEM_RECTS").toInt();
+ static int drawRect = qEnvironmentVariableIntValue("QT_DRAW_SCENE_ITEM_RECTS");
if (drawRect) {
QPen oldPen = painter->pen();
QBrush oldBrush = painter->brush();
diff --git a/src/widgets/graphicsview/qgraphicsscene.h b/src/widgets/graphicsview/qgraphicsscene.h
index 24255c3b30..6cd5da00c8 100644
--- a/src/widgets/graphicsview/qgraphicsscene.h
+++ b/src/widgets/graphicsview/qgraphicsscene.h
@@ -253,8 +253,8 @@ public Q_SLOTS:
void clear();
protected:
- bool event(QEvent *event);
- bool eventFilter(QObject *watched, QEvent *event);
+ bool event(QEvent *event) Q_DECL_OVERRIDE;
+ bool eventFilter(QObject *watched, QEvent *event) Q_DECL_OVERRIDE;
virtual void contextMenuEvent(QGraphicsSceneContextMenuEvent *event);
virtual void dragEnterEvent(QGraphicsSceneDragDropEvent *event);
virtual void dragMoveEvent(QGraphicsSceneDragDropEvent *event);
diff --git a/src/widgets/graphicsview/qgraphicsscene_bsp.cpp b/src/widgets/graphicsview/qgraphicsscene_bsp.cpp
index 739acecf5b..9a2932d127 100644
--- a/src/widgets/graphicsview/qgraphicsscene_bsp.cpp
+++ b/src/widgets/graphicsview/qgraphicsscene_bsp.cpp
@@ -45,7 +45,7 @@ class QGraphicsSceneInsertItemBspTreeVisitor : public QGraphicsSceneBspTreeVisit
public:
QGraphicsItem *item;
- void visit(QList<QGraphicsItem *> *items)
+ void visit(QList<QGraphicsItem *> *items) Q_DECL_OVERRIDE
{ items->prepend(item); }
};
@@ -54,7 +54,7 @@ class QGraphicsSceneRemoveItemBspTreeVisitor : public QGraphicsSceneBspTreeVisit
public:
QGraphicsItem *item;
- void visit(QList<QGraphicsItem *> *items)
+ void visit(QList<QGraphicsItem *> *items) Q_DECL_OVERRIDE
{ items->removeAll(item); }
};
@@ -64,7 +64,7 @@ public:
QList<QGraphicsItem *> *foundItems;
bool onlyTopLevelItems;
- void visit(QList<QGraphicsItem *> *items)
+ void visit(QList<QGraphicsItem *> *items) Q_DECL_OVERRIDE
{
for (int i = 0; i < items->size(); ++i) {
QGraphicsItem *item = items->at(i);
diff --git a/src/widgets/graphicsview/qgraphicsscenebsptreeindex_p.h b/src/widgets/graphicsview/qgraphicsscenebsptreeindex_p.h
index 02a3b44ff2..c329083844 100644
--- a/src/widgets/graphicsview/qgraphicsscenebsptreeindex_p.h
+++ b/src/widgets/graphicsview/qgraphicsscenebsptreeindex_p.h
@@ -71,25 +71,25 @@ public:
QGraphicsSceneBspTreeIndex(QGraphicsScene *scene = 0);
~QGraphicsSceneBspTreeIndex();
- QList<QGraphicsItem *> estimateItems(const QRectF &rect, Qt::SortOrder order) const;
- QList<QGraphicsItem *> estimateTopLevelItems(const QRectF &rect, Qt::SortOrder order) const;
- QList<QGraphicsItem *> items(Qt::SortOrder order = Qt::DescendingOrder) const;
+ QList<QGraphicsItem *> estimateItems(const QRectF &rect, Qt::SortOrder order) const Q_DECL_OVERRIDE;
+ QList<QGraphicsItem *> estimateTopLevelItems(const QRectF &rect, Qt::SortOrder order) const Q_DECL_OVERRIDE;
+ QList<QGraphicsItem *> items(Qt::SortOrder order = Qt::DescendingOrder) const Q_DECL_OVERRIDE;
int bspTreeDepth() const;
void setBspTreeDepth(int depth);
protected Q_SLOTS:
- void updateSceneRect(const QRectF &rect);
+ void updateSceneRect(const QRectF &rect) Q_DECL_OVERRIDE;
protected:
- bool event(QEvent *event);
- void clear();
+ bool event(QEvent *event) Q_DECL_OVERRIDE;
+ void clear() Q_DECL_OVERRIDE;
- void addItem(QGraphicsItem *item);
- void removeItem(QGraphicsItem *item);
- void prepareBoundingRectChange(const QGraphicsItem *item);
+ void addItem(QGraphicsItem *item) Q_DECL_OVERRIDE;
+ void removeItem(QGraphicsItem *item) Q_DECL_OVERRIDE;
+ void prepareBoundingRectChange(const QGraphicsItem *item) Q_DECL_OVERRIDE;
- void itemChange(const QGraphicsItem *item, QGraphicsItem::GraphicsItemChange change, const void *const value);
+ void itemChange(const QGraphicsItem *item, QGraphicsItem::GraphicsItemChange change, const void *const value) Q_DECL_OVERRIDE;
private :
Q_DECLARE_PRIVATE(QGraphicsSceneBspTreeIndex)
diff --git a/src/widgets/graphicsview/qgraphicsscenelinearindex_p.h b/src/widgets/graphicsview/qgraphicsscenelinearindex_p.h
index 57d4ce9702..691e030a89 100644
--- a/src/widgets/graphicsview/qgraphicsscenelinearindex_p.h
+++ b/src/widgets/graphicsview/qgraphicsscenelinearindex_p.h
@@ -65,10 +65,10 @@ public:
QGraphicsSceneLinearIndex(QGraphicsScene *scene = 0) : QGraphicsSceneIndex(scene), m_numSortedElements(0)
{ }
- QList<QGraphicsItem *> items(Qt::SortOrder order = Qt::DescendingOrder) const
+ QList<QGraphicsItem *> items(Qt::SortOrder order = Qt::DescendingOrder) const Q_DECL_OVERRIDE
{ Q_UNUSED(order); return m_items; }
- virtual QList<QGraphicsItem *> estimateItems(const QRectF &rect, Qt::SortOrder order) const
+ virtual QList<QGraphicsItem *> estimateItems(const QRectF &rect, Qt::SortOrder order) const Q_DECL_OVERRIDE
{
Q_UNUSED(rect);
Q_UNUSED(order);
@@ -76,16 +76,16 @@ public:
}
protected :
- virtual void clear()
+ virtual void clear() Q_DECL_OVERRIDE
{
m_items.clear();
m_numSortedElements = 0;
}
- virtual void addItem(QGraphicsItem *item)
+ virtual void addItem(QGraphicsItem *item) Q_DECL_OVERRIDE
{ m_items << item; }
- virtual void removeItem(QGraphicsItem *item)
+ virtual void removeItem(QGraphicsItem *item) Q_DECL_OVERRIDE
{
// Sort m_items if needed
if (m_numSortedElements < m_items.size())
diff --git a/src/widgets/graphicsview/qgraphicstransform.h b/src/widgets/graphicsview/qgraphicstransform.h
index db8b574515..c2ee71d78d 100644
--- a/src/widgets/graphicsview/qgraphicstransform.h
+++ b/src/widgets/graphicsview/qgraphicstransform.h
@@ -93,7 +93,7 @@ public:
qreal zScale() const;
void setZScale(qreal);
- void applyTo(QMatrix4x4 *matrix) const;
+ void applyTo(QMatrix4x4 *matrix) const Q_DECL_OVERRIDE;
Q_SIGNALS:
void originChanged();
@@ -129,7 +129,7 @@ public:
void setAxis(const QVector3D &axis);
void setAxis(Qt::Axis axis);
- void applyTo(QMatrix4x4 *matrix) const;
+ void applyTo(QMatrix4x4 *matrix) const Q_DECL_OVERRIDE;
Q_SIGNALS:
void originChanged();
diff --git a/src/widgets/graphicsview/qgraphicsview.h b/src/widgets/graphicsview/qgraphicsview.h
index b681551fe7..39c28a1b64 100644
--- a/src/widgets/graphicsview/qgraphicsview.h
+++ b/src/widgets/graphicsview/qgraphicsview.h
@@ -110,7 +110,7 @@ public:
QGraphicsView(QGraphicsScene *scene, QWidget *parent = 0);
~QGraphicsView();
- QSize sizeHint() const;
+ QSize sizeHint() const Q_DECL_OVERRIDE;
QPainter::RenderHints renderHints() const;
void setRenderHint(QPainter::RenderHint hint, bool enabled = true);
@@ -206,7 +206,7 @@ public:
inline QPoint mapFromScene(qreal x, qreal y) const;
inline QPolygon mapFromScene(qreal x, qreal y, qreal w, qreal h) const;
- QVariant inputMethodQuery(Qt::InputMethodQuery query) const;
+ QVariant inputMethodQuery(Qt::InputMethodQuery query) const Q_DECL_OVERRIDE;
QBrush backgroundBrush() const;
void setBackgroundBrush(const QBrush &brush);
@@ -225,37 +225,37 @@ Q_SIGNALS:
#endif
protected Q_SLOTS:
- void setupViewport(QWidget *widget);
+ void setupViewport(QWidget *widget) Q_DECL_OVERRIDE;
protected:
QGraphicsView(QGraphicsViewPrivate &, QWidget *parent = 0);
- bool event(QEvent *event);
- bool viewportEvent(QEvent *event);
+ bool event(QEvent *event) Q_DECL_OVERRIDE;
+ bool viewportEvent(QEvent *event) Q_DECL_OVERRIDE;
#ifndef QT_NO_CONTEXTMENU
- void contextMenuEvent(QContextMenuEvent *event);
+ void contextMenuEvent(QContextMenuEvent *event) Q_DECL_OVERRIDE;
#endif
- void dragEnterEvent(QDragEnterEvent *event);
- void dragLeaveEvent(QDragLeaveEvent *event);
- void dragMoveEvent(QDragMoveEvent *event);
- void dropEvent(QDropEvent *event);
- void focusInEvent(QFocusEvent *event);
- bool focusNextPrevChild(bool next);
- void focusOutEvent(QFocusEvent *event);
- void keyPressEvent(QKeyEvent *event);
- void keyReleaseEvent(QKeyEvent *event);
- void mouseDoubleClickEvent(QMouseEvent *event);
- void mousePressEvent(QMouseEvent *event);
- void mouseMoveEvent(QMouseEvent *event);
- void mouseReleaseEvent(QMouseEvent *event);
+ void dragEnterEvent(QDragEnterEvent *event) Q_DECL_OVERRIDE;
+ void dragLeaveEvent(QDragLeaveEvent *event) Q_DECL_OVERRIDE;
+ void dragMoveEvent(QDragMoveEvent *event) Q_DECL_OVERRIDE;
+ void dropEvent(QDropEvent *event) Q_DECL_OVERRIDE;
+ void focusInEvent(QFocusEvent *event) Q_DECL_OVERRIDE;
+ bool focusNextPrevChild(bool next) Q_DECL_OVERRIDE;
+ void focusOutEvent(QFocusEvent *event) Q_DECL_OVERRIDE;
+ void keyPressEvent(QKeyEvent *event) Q_DECL_OVERRIDE;
+ void keyReleaseEvent(QKeyEvent *event) Q_DECL_OVERRIDE;
+ void mouseDoubleClickEvent(QMouseEvent *event) Q_DECL_OVERRIDE;
+ void mousePressEvent(QMouseEvent *event) Q_DECL_OVERRIDE;
+ void mouseMoveEvent(QMouseEvent *event) Q_DECL_OVERRIDE;
+ void mouseReleaseEvent(QMouseEvent *event) Q_DECL_OVERRIDE;
#ifndef QT_NO_WHEELEVENT
- void wheelEvent(QWheelEvent *event);
+ void wheelEvent(QWheelEvent *event) Q_DECL_OVERRIDE;
#endif
- void paintEvent(QPaintEvent *event);
- void resizeEvent(QResizeEvent *event);
- void scrollContentsBy(int dx, int dy);
- void showEvent(QShowEvent *event);
- void inputMethodEvent(QInputMethodEvent *event);
+ void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE;
+ void resizeEvent(QResizeEvent *event) Q_DECL_OVERRIDE;
+ void scrollContentsBy(int dx, int dy) Q_DECL_OVERRIDE;
+ void showEvent(QShowEvent *event) Q_DECL_OVERRIDE;
+ void inputMethodEvent(QInputMethodEvent *event) Q_DECL_OVERRIDE;
virtual void drawBackground(QPainter *painter, const QRectF &rect);
virtual void drawForeground(QPainter *painter, const QRectF &rect);
diff --git a/src/widgets/graphicsview/qgraphicswidget.cpp b/src/widgets/graphicsview/qgraphicswidget.cpp
index 5bd563e535..fd4f66e3a8 100644
--- a/src/widgets/graphicsview/qgraphicswidget.cpp
+++ b/src/widgets/graphicsview/qgraphicswidget.cpp
@@ -2390,18 +2390,6 @@ bool QGraphicsWidget::close()
return true;
}
-#ifdef Q_NO_USING_KEYWORD
-/*!
- \fn const QObjectList &QGraphicsWidget::children() const
- \internal
-
- This function returns the same value as QObject::children(). It's
- provided to differentiate between the obsolete member
- QGraphicsItem::children() and QObject::children(). QGraphicsItem now
- provides childItems() instead.
-*/
-#endif
-
#if 0
void QGraphicsWidget::dumpFocusChain()
{
diff --git a/src/widgets/graphicsview/qgraphicswidget.h b/src/widgets/graphicsview/qgraphicswidget.h
index d0f3ac9af6..7999add64e 100644
--- a/src/widgets/graphicsview/qgraphicswidget.h
+++ b/src/widgets/graphicsview/qgraphicswidget.h
@@ -100,12 +100,12 @@ public:
inline void resize(qreal w, qreal h) { resize(QSizeF(w, h)); }
QSizeF size() const;
- void setGeometry(const QRectF &rect);
+ void setGeometry(const QRectF &rect) Q_DECL_OVERRIDE;
inline void setGeometry(qreal x, qreal y, qreal w, qreal h);
inline QRectF rect() const { return QRectF(QPointF(), size()); }
void setContentsMargins(qreal left, qreal top, qreal right, qreal bottom);
- void getContentsMargins(qreal *left, qreal *top, qreal *right, qreal *bottom) const;
+ void getContentsMargins(qreal *left, qreal *top, qreal *right, qreal *bottom) const Q_DECL_OVERRIDE;
void setWindowFrameMargins(qreal left, qreal top, qreal right, qreal bottom);
void getWindowFrameMargins(qreal *left, qreal *top, qreal *right, qreal *bottom) const;
@@ -150,22 +150,18 @@ public:
enum {
Type = 11
};
- int type() const;
+ int type() const Q_DECL_OVERRIDE;
- void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0);
+ void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0) Q_DECL_OVERRIDE;
virtual void paintWindowFrame(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0);
- QRectF boundingRect() const;
- QPainterPath shape() const;
+ QRectF boundingRect() const Q_DECL_OVERRIDE;
+ QPainterPath shape() const Q_DECL_OVERRIDE;
#if 0
void dumpFocusChain();
#endif
-#ifdef Q_NO_USING_KEYWORD
- const QObjectList &children() const { return QObject::children(); }
-#else
using QObject::children;
-#endif
Q_SIGNALS:
void geometryChanged();
@@ -177,28 +173,28 @@ public Q_SLOTS:
protected:
virtual void initStyleOption(QStyleOption *option) const;
- QSizeF sizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const;
- void updateGeometry();
+ QSizeF sizeHint(Qt::SizeHint which, const QSizeF &constraint = QSizeF()) const Q_DECL_OVERRIDE;
+ void updateGeometry() Q_DECL_OVERRIDE;
// Notification
- QVariant itemChange(GraphicsItemChange change, const QVariant &value);
+ QVariant itemChange(GraphicsItemChange change, const QVariant &value) Q_DECL_OVERRIDE;
virtual QVariant propertyChange(const QString &propertyName, const QVariant &value);
// Scene events
- bool sceneEvent(QEvent *event);
+ bool sceneEvent(QEvent *event) Q_DECL_OVERRIDE;
virtual bool windowFrameEvent(QEvent *e);
virtual Qt::WindowFrameSection windowFrameSectionAt(const QPointF& pos) const;
// Base event handlers
- bool event(QEvent *event);
+ bool event(QEvent *event) Q_DECL_OVERRIDE;
//virtual void actionEvent(QActionEvent *event);
virtual void changeEvent(QEvent *event);
virtual void closeEvent(QCloseEvent *event);
//void create(WId window = 0, bool initializeWindow = true, bool destroyOldWindow = true);
//void destroy(bool destroyWindow = true, bool destroySubWindows = true);
- void focusInEvent(QFocusEvent *event);
+ void focusInEvent(QFocusEvent *event) Q_DECL_OVERRIDE;
virtual bool focusNextPrevChild(bool next);
- void focusOutEvent(QFocusEvent *event);
+ void focusOutEvent(QFocusEvent *event) Q_DECL_OVERRIDE;
virtual void hideEvent(QHideEvent *event);
//virtual int metric(PaintDeviceMetric m ) const;
virtual void moveEvent(QGraphicsSceneMoveEvent *event);
@@ -207,8 +203,8 @@ protected:
virtual void resizeEvent(QGraphicsSceneResizeEvent *event);
virtual void showEvent(QShowEvent *event);
//virtual void tabletEvent(QTabletEvent *event);
- virtual void hoverMoveEvent(QGraphicsSceneHoverEvent *event);
- virtual void hoverLeaveEvent(QGraphicsSceneHoverEvent *event);
+ virtual void hoverMoveEvent(QGraphicsSceneHoverEvent *event) Q_DECL_OVERRIDE;
+ virtual void hoverLeaveEvent(QGraphicsSceneHoverEvent *event) Q_DECL_OVERRIDE;
virtual void grabMouseEvent(QEvent *event);
virtual void ungrabMouseEvent(QEvent *event);
virtual void grabKeyboardEvent(QEvent *event);
diff --git a/src/widgets/graphicsview/qgraphicswidget_p.h b/src/widgets/graphicsview/qgraphicswidget_p.h
index 2cb6565f87..16bf2e7c51 100644
--- a/src/widgets/graphicsview/qgraphicswidget_p.h
+++ b/src/widgets/graphicsview/qgraphicswidget_p.h
@@ -103,13 +103,13 @@ public:
QPalette palette;
uint inheritedPaletteResolveMask;
void setPalette_helper(const QPalette &palette);
- void resolvePalette(uint inheritedMask);
+ void resolvePalette(uint inheritedMask) Q_DECL_OVERRIDE;
void updatePalette(const QPalette &palette);
QPalette naturalWidgetPalette() const;
QFont font;
uint inheritedFontResolveMask;
void setFont_helper(const QFont &font);
- void resolveFont(uint inheritedMask);
+ void resolveFont(uint inheritedMask) Q_DECL_OVERRIDE;
void updateFont(const QFont &font);
QFont naturalWidgetFont() const;
@@ -124,13 +124,13 @@ public:
bool hasDecoration() const;
// Private Properties
- qreal width() const;
- void setWidth(qreal);
- void resetWidth();
+ qreal width() const Q_DECL_OVERRIDE;
+ void setWidth(qreal) Q_DECL_OVERRIDE;
+ void resetWidth() Q_DECL_OVERRIDE;
- qreal height() const;
- void setHeight(qreal);
- void resetHeight();
+ qreal height() const Q_DECL_OVERRIDE;
+ void setHeight(qreal) Q_DECL_OVERRIDE;
+ void resetHeight() Q_DECL_OVERRIDE;
void setGeometryFromSetPos();
// State
diff --git a/src/widgets/itemviews/itemviews.pri b/src/widgets/itemviews/itemviews.pri
index 4e152d18bb..2bbf7ac1ff 100644
--- a/src/widgets/itemviews/itemviews.pri
+++ b/src/widgets/itemviews/itemviews.pri
@@ -12,6 +12,7 @@ HEADERS += \
itemviews/qtreeview.h \
itemviews/qtreeview_p.h \
itemviews/qabstractitemdelegate.h \
+ itemviews/qabstractitemdelegate_p.h \
itemviews/qitemdelegate.h \
itemviews/qdirmodel.h \
itemviews/qlistwidget.h \
diff --git a/src/widgets/itemviews/qabstractitemdelegate.cpp b/src/widgets/itemviews/qabstractitemdelegate.cpp
index 4dffa6efe7..4d0840c3d6 100644
--- a/src/widgets/itemviews/qabstractitemdelegate.cpp
+++ b/src/widgets/itemviews/qabstractitemdelegate.cpp
@@ -42,7 +42,17 @@
#include <qevent.h>
#include <qstring.h>
#include <qdebug.h>
+#include <qlineedit.h>
+#include <qtextedit.h>
+#include <qplaintextedit.h>
+#include <qapplication.h>
#include <private/qtextengine_p.h>
+#include <private/qabstractitemdelegate_p.h>
+
+#include <qpa/qplatformintegration.h>
+#include <qpa/qplatformdrag.h>
+#include <private/qguiapplication_p.h>
+#include <private/qdnd_p.h>
QT_BEGIN_NAMESPACE
@@ -165,7 +175,7 @@ QT_BEGIN_NAMESPACE
Creates a new abstract item delegate with the given \a parent.
*/
QAbstractItemDelegate::QAbstractItemDelegate(QObject *parent)
- : QObject(parent)
+ : QObject(*new QAbstractItemDelegatePrivate, parent)
{
}
@@ -405,6 +415,112 @@ QVector<int> QAbstractItemDelegate::paintingRoles() const
return QVector<int>();
}
+QAbstractItemDelegatePrivate::QAbstractItemDelegatePrivate()
+ : QObjectPrivate()
+{
+}
+
+bool QAbstractItemDelegatePrivate::editorEventFilter(QObject *object, QEvent *event)
+{
+ Q_Q(QAbstractItemDelegate);
+
+ QWidget *editor = qobject_cast<QWidget*>(object);
+ if (!editor)
+ return false;
+ if (event->type() == QEvent::KeyPress) {
+ switch (static_cast<QKeyEvent *>(event)->key()) {
+ case Qt::Key_Tab:
+ if (tryFixup(editor)) {
+ emit q->commitData(editor);
+ emit q->closeEditor(editor, QAbstractItemDelegate::EditNextItem);
+ }
+ return true;
+ case Qt::Key_Backtab:
+ if (tryFixup(editor)) {
+ emit q->commitData(editor);
+ emit q->closeEditor(editor, QAbstractItemDelegate::EditPreviousItem);
+ }
+ return true;
+ case Qt::Key_Enter:
+ case Qt::Key_Return:
+#ifndef QT_NO_TEXTEDIT
+ if (qobject_cast<QTextEdit *>(editor) || qobject_cast<QPlainTextEdit *>(editor))
+ return false; // don't filter enter key events for QTextEdit or QPlainTextEdit
+#endif // QT_NO_TEXTEDIT
+ // We want the editor to be able to process the key press
+ // before committing the data (e.g. so it can do
+ // validation/fixup of the input).
+ if (!tryFixup(editor))
+ return true;
+
+ QMetaObject::invokeMethod(q, "_q_commitDataAndCloseEditor",
+ Qt::QueuedConnection, Q_ARG(QWidget*, editor));
+ return false;
+ case Qt::Key_Escape:
+ // don't commit data
+ emit q->closeEditor(editor, QAbstractItemDelegate::RevertModelCache);
+ return true;
+ default:
+ return false;
+ }
+ } else if (event->type() == QEvent::FocusOut || (event->type() == QEvent::Hide && editor->isWindow())) {
+ //the Hide event will take care of he editors that are in fact complete dialogs
+ if (!editor->isActiveWindow() || (QApplication::focusWidget() != editor)) {
+ QWidget *w = QApplication::focusWidget();
+ while (w) { // don't worry about focus changes internally in the editor
+ if (w == editor)
+ return false;
+ w = w->parentWidget();
+ }
+#ifndef QT_NO_DRAGANDDROP
+ // The window may lose focus during an drag operation.
+ // i.e when dragging involves the taskbar on Windows.
+ QPlatformDrag *platformDrag = QGuiApplicationPrivate::instance()->platformIntegration()->drag();
+ if (platformDrag && platformDrag->currentDrag()) {
+ return false;
+ }
+#endif
+ if (tryFixup(editor))
+ emit q->commitData(editor);
+
+ emit q->closeEditor(editor, QAbstractItemDelegate::NoHint);
+ }
+ } else if (event->type() == QEvent::ShortcutOverride) {
+ if (static_cast<QKeyEvent*>(event)->key() == Qt::Key_Escape) {
+ event->accept();
+ return true;
+ }
+ }
+ return false;
+}
+
+bool QAbstractItemDelegatePrivate::tryFixup(QWidget *editor)
+{
+#ifndef QT_NO_LINEEDIT
+ if (QLineEdit *e = qobject_cast<QLineEdit*>(editor)) {
+ if (!e->hasAcceptableInput()) {
+ if (const QValidator *validator = e->validator()) {
+ QString text = e->text();
+ validator->fixup(text);
+ e->setText(text);
+ }
+ return e->hasAcceptableInput();
+ }
+ }
+#endif // QT_NO_LINEEDIT
+
+ return true;
+}
+
+void QAbstractItemDelegatePrivate::_q_commitDataAndCloseEditor(QWidget *editor)
+{
+ Q_Q(QAbstractItemDelegate);
+ emit q->commitData(editor);
+ emit q->closeEditor(editor, QAbstractItemDelegate::SubmitModelCache);
+}
+
QT_END_NAMESPACE
+#include "moc_qabstractitemdelegate.cpp"
+
#endif // QT_NO_ITEMVIEWS
diff --git a/src/widgets/itemviews/qabstractitemdelegate.h b/src/widgets/itemviews/qabstractitemdelegate.h
index 9bce527bdc..8cd902f58e 100644
--- a/src/widgets/itemviews/qabstractitemdelegate.h
+++ b/src/widgets/itemviews/qabstractitemdelegate.h
@@ -47,6 +47,7 @@ class QModelIndex;
class QAbstractItemModel;
class QAbstractItemView;
class QHelpEvent;
+class QAbstractItemDelegatePrivate;
class Q_WIDGETS_EXPORT QAbstractItemDelegate : public QObject
{
@@ -114,7 +115,9 @@ Q_SIGNALS:
protected:
QAbstractItemDelegate(QObjectPrivate &, QObject *parent = 0);
private:
+ Q_DECLARE_PRIVATE(QAbstractItemDelegate)
Q_DISABLE_COPY(QAbstractItemDelegate)
+ Q_PRIVATE_SLOT(d_func(), void _q_commitDataAndCloseEditor(QWidget*))
};
#endif // QT_NO_ITEMVIEWS
diff --git a/src/widgets/itemviews/qabstractitemdelegate_p.h b/src/widgets/itemviews/qabstractitemdelegate_p.h
new file mode 100644
index 0000000000..debc9f5926
--- /dev/null
+++ b/src/widgets/itemviews/qabstractitemdelegate_p.h
@@ -0,0 +1,70 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtWidgets module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL21$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 or version 3 as published by the Free
+** Software Foundation and appearing in the file LICENSE.LGPLv21 and
+** LICENSE.LGPLv3 included in the packaging of this file. Please review the
+** following information to ensure the GNU Lesser General Public License
+** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QABSTRACTITEMDELEGATE_P_H
+#define QABSTRACTITEMDELEGATE_P_H
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists for the convenience
+// of other Qt classes. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+//
+
+#include "qabstractitemdelegate.h"
+#include <private/qobject_p.h>
+
+#ifndef QT_NO_ITEMVIEWS
+
+QT_BEGIN_NAMESPACE
+
+class QAbstractItemDelegatePrivate : public QObjectPrivate
+{
+ Q_DECLARE_PUBLIC(QAbstractItemDelegate)
+public:
+ explicit QAbstractItemDelegatePrivate();
+
+ bool editorEventFilter(QObject *object, QEvent *event);
+ bool tryFixup(QWidget *editor);
+ void _q_commitDataAndCloseEditor(QWidget *editor);
+};
+
+QT_END_NAMESPACE
+
+#endif // QT_NO_ITEMVIEWS
+
+#endif // QABSTRACTITEMDELEGATE_P_H
diff --git a/src/widgets/itemviews/qabstractitemview.cpp b/src/widgets/itemviews/qabstractitemview.cpp
index 0f346a9682..2460955eb4 100644
--- a/src/widgets/itemviews/qabstractitemview.cpp
+++ b/src/widgets/itemviews/qabstractitemview.cpp
@@ -594,11 +594,6 @@ void QAbstractItemViewPrivate::_q_scrollerStateChanged()
*/
/*!
- \fn void QAbstractItemView::update()
- \internal
-*/
-
-/*!
Constructs an abstract item view with the given \a parent.
*/
QAbstractItemView::QAbstractItemView(QWidget *parent)
@@ -1538,6 +1533,7 @@ void QAbstractItemView::setIconSize(const QSize &size)
return;
d->iconSize = size;
d->doDelayedItemsLayout();
+ emit iconSizeChanged(size);
}
QSize QAbstractItemView::iconSize() const
diff --git a/src/widgets/itemviews/qabstractitemview.h b/src/widgets/itemviews/qabstractitemview.h
index f7cdcc8451..28c43633ea 100644
--- a/src/widgets/itemviews/qabstractitemview.h
+++ b/src/widgets/itemviews/qabstractitemview.h
@@ -68,7 +68,7 @@ class Q_WIDGETS_EXPORT QAbstractItemView : public QAbstractScrollArea
Q_PROPERTY(bool alternatingRowColors READ alternatingRowColors WRITE setAlternatingRowColors)
Q_PROPERTY(SelectionMode selectionMode READ selectionMode WRITE setSelectionMode)
Q_PROPERTY(SelectionBehavior selectionBehavior READ selectionBehavior WRITE setSelectionBehavior)
- Q_PROPERTY(QSize iconSize READ iconSize WRITE setIconSize)
+ Q_PROPERTY(QSize iconSize READ iconSize WRITE setIconSize NOTIFY iconSizeChanged)
Q_PROPERTY(Qt::TextElideMode textElideMode READ textElideMode WRITE setTextElideMode)
Q_PROPERTY(ScrollMode verticalScrollMode READ verticalScrollMode WRITE setVerticalScrollMode)
Q_PROPERTY(ScrollMode horizontalScrollMode READ horizontalScrollMode WRITE setHorizontalScrollMode)
@@ -209,13 +209,9 @@ public:
QAbstractItemDelegate *itemDelegate(const QModelIndex &index) const;
- virtual QVariant inputMethodQuery(Qt::InputMethodQuery query) const;
+ virtual QVariant inputMethodQuery(Qt::InputMethodQuery query) const Q_DECL_OVERRIDE;
-#ifdef Q_NO_USING_KEYWORD
- inline void update() { QAbstractScrollArea::update(); }
-#else
using QAbstractScrollArea::update;
-#endif
public Q_SLOTS:
virtual void reset();
@@ -255,6 +251,8 @@ Q_SIGNALS:
void entered(const QModelIndex &index);
void viewportEntered();
+ void iconSizeChanged(const QSize &size);
+
protected:
QAbstractItemView(QAbstractItemViewPrivate &, QWidget *parent = 0);
@@ -313,25 +311,25 @@ protected:
void stopAutoScroll();
void doAutoScroll();
- bool focusNextPrevChild(bool next);
- bool event(QEvent *event);
- bool viewportEvent(QEvent *event);
- void mousePressEvent(QMouseEvent *event);
- void mouseMoveEvent(QMouseEvent *event);
- void mouseReleaseEvent(QMouseEvent *event);
- void mouseDoubleClickEvent(QMouseEvent *event);
+ bool focusNextPrevChild(bool next) Q_DECL_OVERRIDE;
+ bool event(QEvent *event) Q_DECL_OVERRIDE;
+ bool viewportEvent(QEvent *event) Q_DECL_OVERRIDE;
+ void mousePressEvent(QMouseEvent *event) Q_DECL_OVERRIDE;
+ void mouseMoveEvent(QMouseEvent *event) Q_DECL_OVERRIDE;
+ void mouseReleaseEvent(QMouseEvent *event) Q_DECL_OVERRIDE;
+ void mouseDoubleClickEvent(QMouseEvent *event) Q_DECL_OVERRIDE;
#ifndef QT_NO_DRAGANDDROP
- void dragEnterEvent(QDragEnterEvent *event);
- void dragMoveEvent(QDragMoveEvent *event);
- void dragLeaveEvent(QDragLeaveEvent *event);
- void dropEvent(QDropEvent *event);
+ void dragEnterEvent(QDragEnterEvent *event) Q_DECL_OVERRIDE;
+ void dragMoveEvent(QDragMoveEvent *event) Q_DECL_OVERRIDE;
+ void dragLeaveEvent(QDragLeaveEvent *event) Q_DECL_OVERRIDE;
+ void dropEvent(QDropEvent *event) Q_DECL_OVERRIDE;
#endif
- void focusInEvent(QFocusEvent *event);
- void focusOutEvent(QFocusEvent *event);
- void keyPressEvent(QKeyEvent *event);
- void resizeEvent(QResizeEvent *event);
- void timerEvent(QTimerEvent *event);
- void inputMethodEvent(QInputMethodEvent *event);
+ void focusInEvent(QFocusEvent *event) Q_DECL_OVERRIDE;
+ void focusOutEvent(QFocusEvent *event) Q_DECL_OVERRIDE;
+ void keyPressEvent(QKeyEvent *event) Q_DECL_OVERRIDE;
+ void resizeEvent(QResizeEvent *event) Q_DECL_OVERRIDE;
+ void timerEvent(QTimerEvent *event) Q_DECL_OVERRIDE;
+ void inputMethodEvent(QInputMethodEvent *event) Q_DECL_OVERRIDE;
#ifndef QT_NO_DRAGANDDROP
enum DropIndicatorPosition { OnItem, AboveItem, BelowItem, OnViewport };
diff --git a/src/widgets/itemviews/qcolumnview.h b/src/widgets/itemviews/qcolumnview.h
index 85b38840cf..91b5c10376 100644
--- a/src/widgets/itemviews/qcolumnview.h
+++ b/src/widgets/itemviews/qcolumnview.h
@@ -56,14 +56,14 @@ public:
~QColumnView();
// QAbstractItemView overloads
- QModelIndex indexAt(const QPoint &point) const;
- void scrollTo(const QModelIndex &index, ScrollHint hint = EnsureVisible);
- QSize sizeHint() const;
- QRect visualRect(const QModelIndex &index) const;
- void setModel(QAbstractItemModel *model);
- void setSelectionModel(QItemSelectionModel * selectionModel);
- void setRootIndex(const QModelIndex &index);
- void selectAll();
+ QModelIndex indexAt(const QPoint &point) const Q_DECL_OVERRIDE;
+ void scrollTo(const QModelIndex &index, ScrollHint hint = EnsureVisible) Q_DECL_OVERRIDE;
+ QSize sizeHint() const Q_DECL_OVERRIDE;
+ QRect visualRect(const QModelIndex &index) const Q_DECL_OVERRIDE;
+ void setModel(QAbstractItemModel *model) Q_DECL_OVERRIDE;
+ void setSelectionModel(QItemSelectionModel * selectionModel) Q_DECL_OVERRIDE;
+ void setRootIndex(const QModelIndex &index) Q_DECL_OVERRIDE;
+ void selectAll() Q_DECL_OVERRIDE;
// QColumnView functions
void setResizeGripsVisible(bool visible);
@@ -79,18 +79,18 @@ protected:
QColumnView(QColumnViewPrivate &dd, QWidget *parent = 0);
// QAbstractItemView overloads
- bool isIndexHidden(const QModelIndex &index) const;
- QModelIndex moveCursor(CursorAction cursorAction, Qt::KeyboardModifiers modifiers);
- void resizeEvent(QResizeEvent *event);
- void setSelection(const QRect & rect, QItemSelectionModel::SelectionFlags command);
- QRegion visualRegionForSelection(const QItemSelection &selection) const;
- int horizontalOffset() const;
- int verticalOffset() const;
- void rowsInserted(const QModelIndex &parent, int start, int end);
- void currentChanged(const QModelIndex &current, const QModelIndex &previous);
+ bool isIndexHidden(const QModelIndex &index) const Q_DECL_OVERRIDE;
+ QModelIndex moveCursor(CursorAction cursorAction, Qt::KeyboardModifiers modifiers) Q_DECL_OVERRIDE;
+ void resizeEvent(QResizeEvent *event) Q_DECL_OVERRIDE;
+ void setSelection(const QRect & rect, QItemSelectionModel::SelectionFlags command) Q_DECL_OVERRIDE;
+ QRegion visualRegionForSelection(const QItemSelection &selection) const Q_DECL_OVERRIDE;
+ int horizontalOffset() const Q_DECL_OVERRIDE;
+ int verticalOffset() const Q_DECL_OVERRIDE;
+ void rowsInserted(const QModelIndex &parent, int start, int end) Q_DECL_OVERRIDE;
+ void currentChanged(const QModelIndex &current, const QModelIndex &previous) Q_DECL_OVERRIDE;
// QColumnView functions
- void scrollContentsBy(int dx, int dy);
+ void scrollContentsBy(int dx, int dy) Q_DECL_OVERRIDE;
virtual QAbstractItemView* createColumn(const QModelIndex &rootIndex);
void initializeColumn(QAbstractItemView *column) const;
diff --git a/src/widgets/itemviews/qcolumnview_p.h b/src/widgets/itemviews/qcolumnview_p.h
index f96170679f..29bd97e5ef 100644
--- a/src/widgets/itemviews/qcolumnview_p.h
+++ b/src/widgets/itemviews/qcolumnview_p.h
@@ -73,7 +73,7 @@ public:
setMinimumWidth(previewWidget->minimumWidth());
}
- void resizeEvent(QResizeEvent * event){
+ void resizeEvent(QResizeEvent * event) Q_DECL_OVERRIDE{
if (!previewWidget)
return;
previewWidget->resize(
@@ -89,36 +89,36 @@ public:
QAbstractScrollArea::resizeEvent(event);
}
- QRect visualRect(const QModelIndex &) const
+ QRect visualRect(const QModelIndex &) const Q_DECL_OVERRIDE
{
return QRect();
}
- void scrollTo(const QModelIndex &, ScrollHint)
+ void scrollTo(const QModelIndex &, ScrollHint) Q_DECL_OVERRIDE
{
}
- QModelIndex indexAt(const QPoint &) const
+ QModelIndex indexAt(const QPoint &) const Q_DECL_OVERRIDE
{
return QModelIndex();
}
- QModelIndex moveCursor(CursorAction, Qt::KeyboardModifiers)
+ QModelIndex moveCursor(CursorAction, Qt::KeyboardModifiers) Q_DECL_OVERRIDE
{
return QModelIndex();
}
- int horizontalOffset () const {
+ int horizontalOffset () const Q_DECL_OVERRIDE {
return 0;
}
- int verticalOffset () const {
+ int verticalOffset () const Q_DECL_OVERRIDE {
return 0;
}
- QRegion visualRegionForSelection(const QItemSelection &) const
+ QRegion visualRegionForSelection(const QItemSelection &) const Q_DECL_OVERRIDE
{
return QRegion();
}
- bool isIndexHidden(const QModelIndex &) const
+ bool isIndexHidden(const QModelIndex &) const Q_DECL_OVERRIDE
{
return false;
}
- void setSelection(const QRect &, QItemSelectionModel::SelectionFlags)
+ void setSelection(const QRect &, QItemSelectionModel::SelectionFlags) Q_DECL_OVERRIDE
{
}
private:
@@ -146,7 +146,7 @@ public:
void _q_gripMoved(int offset);
void _q_changeCurrentColumn();
void _q_clicked(const QModelIndex &index);
- void _q_columnsInserted(const QModelIndex &parent, int start, int end);
+ void _q_columnsInserted(const QModelIndex &parent, int start, int end) Q_DECL_OVERRIDE;
QList<QAbstractItemView*> columns;
QVector<int> columnSizes; // used during init and corner moving
@@ -171,7 +171,7 @@ public:
void paint(QPainter *painter,
const QStyleOptionViewItem &option,
- const QModelIndex &index) const;
+ const QModelIndex &index) const Q_DECL_OVERRIDE;
};
#endif // QT_NO_QCOLUMNVIEW
diff --git a/src/widgets/itemviews/qcolumnviewgrip_p.h b/src/widgets/itemviews/qcolumnviewgrip_p.h
index e5e936a30d..e80f4b37be 100644
--- a/src/widgets/itemviews/qcolumnviewgrip_p.h
+++ b/src/widgets/itemviews/qcolumnviewgrip_p.h
@@ -67,11 +67,11 @@ public:
protected:
QColumnViewGrip(QColumnViewGripPrivate &, QWidget *parent = 0, Qt::WindowFlags f = 0);
- void paintEvent(QPaintEvent *event);
- void mouseDoubleClickEvent(QMouseEvent *event);
- void mouseMoveEvent(QMouseEvent *event);
- void mouseReleaseEvent(QMouseEvent *event);
- void mousePressEvent(QMouseEvent *event);
+ void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE;
+ void mouseDoubleClickEvent(QMouseEvent *event) Q_DECL_OVERRIDE;
+ void mouseMoveEvent(QMouseEvent *event) Q_DECL_OVERRIDE;
+ void mouseReleaseEvent(QMouseEvent *event) Q_DECL_OVERRIDE;
+ void mousePressEvent(QMouseEvent *event) Q_DECL_OVERRIDE;
private:
Q_DECLARE_PRIVATE(QColumnViewGrip)
diff --git a/src/widgets/itemviews/qdatawidgetmapper.cpp b/src/widgets/itemviews/qdatawidgetmapper.cpp
index 43ed0b2ae5..2cf0725657 100644
--- a/src/widgets/itemviews/qdatawidgetmapper.cpp
+++ b/src/widgets/itemviews/qdatawidgetmapper.cpp
@@ -202,7 +202,7 @@ void QDataWidgetMapperPrivate::_q_commitData(QWidget *w)
class QFocusHelper: public QWidget
{
public:
- bool focusNextPrevChild(bool next)
+ bool focusNextPrevChild(bool next) Q_DECL_OVERRIDE
{
return QWidget::focusNextPrevChild(next);
}
diff --git a/src/widgets/itemviews/qdirmodel.cpp b/src/widgets/itemviews/qdirmodel.cpp
index 6bb8cd29c5..bff50fae0a 100644
--- a/src/widgets/itemviews/qdirmodel.cpp
+++ b/src/widgets/itemviews/qdirmodel.cpp
@@ -1146,11 +1146,6 @@ QFileInfo QDirModel::fileInfo(const QModelIndex &index) const
return node->info;
}
-/*!
- \fn QObject *QDirModel::parent() const
- \internal
-*/
-
/*
The root node is never seen outside the model.
*/
diff --git a/src/widgets/itemviews/qdirmodel.h b/src/widgets/itemviews/qdirmodel.h
index 249d7711c0..56b5a247d4 100644
--- a/src/widgets/itemviews/qdirmodel.h
+++ b/src/widgets/itemviews/qdirmodel.h
@@ -64,27 +64,27 @@ public:
explicit QDirModel(QObject *parent = 0);
~QDirModel();
- QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const;
- QModelIndex parent(const QModelIndex &child) const;
+ QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const Q_DECL_OVERRIDE;
+ QModelIndex parent(const QModelIndex &child) const Q_DECL_OVERRIDE;
- int rowCount(const QModelIndex &parent = QModelIndex()) const;
- int columnCount(const QModelIndex &parent = QModelIndex()) const;
+ int rowCount(const QModelIndex &parent = QModelIndex()) const Q_DECL_OVERRIDE;
+ int columnCount(const QModelIndex &parent = QModelIndex()) const Q_DECL_OVERRIDE;
- QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
- bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole);
+ QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const Q_DECL_OVERRIDE;
+ bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole) Q_DECL_OVERRIDE;
- QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const;
+ QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const Q_DECL_OVERRIDE;
- bool hasChildren(const QModelIndex &index = QModelIndex()) const;
- Qt::ItemFlags flags(const QModelIndex &index) const;
+ bool hasChildren(const QModelIndex &index = QModelIndex()) const Q_DECL_OVERRIDE;
+ Qt::ItemFlags flags(const QModelIndex &index) const Q_DECL_OVERRIDE;
- void sort(int column, Qt::SortOrder order = Qt::AscendingOrder);
+ void sort(int column, Qt::SortOrder order = Qt::AscendingOrder) Q_DECL_OVERRIDE;
- QStringList mimeTypes() const;
- QMimeData *mimeData(const QModelIndexList &indexes) const;
+ QStringList mimeTypes() const Q_DECL_OVERRIDE;
+ QMimeData *mimeData(const QModelIndexList &indexes) const Q_DECL_OVERRIDE;
bool dropMimeData(const QMimeData *data, Qt::DropAction action,
- int row, int column, const QModelIndex &parent);
- Qt::DropActions supportedDropActions() const;
+ int row, int column, const QModelIndex &parent) Q_DECL_OVERRIDE;
+ Qt::DropActions supportedDropActions() const Q_DECL_OVERRIDE;
// QDirModel specific API
@@ -121,11 +121,7 @@ public:
QIcon fileIcon(const QModelIndex &index) const;
QFileInfo fileInfo(const QModelIndex &index) const;
-#ifdef Q_NO_USING_KEYWORD
- inline QObject *parent() const { return QObject::parent(); }
-#else
using QObject::parent;
-#endif
public Q_SLOTS:
void refresh(const QModelIndex &parent = QModelIndex());
diff --git a/src/widgets/itemviews/qheaderview.cpp b/src/widgets/itemviews/qheaderview.cpp
index beade16339..aad382ed49 100644
--- a/src/widgets/itemviews/qheaderview.cpp
+++ b/src/widgets/itemviews/qheaderview.cpp
@@ -1515,6 +1515,11 @@ void QHeaderView::setCascadingSectionResizes(bool enable)
This property only affects sections that have \l Interactive or \l Fixed
as their resize mode.
+ By default, the value of this property is style dependent.
+ Thus, when the style changes, this property updates from it.
+ Calling setDefaultSectionSize() stops the updates, calling
+ resetDefaultSectionSize() will restore default behavior.
+
\sa setSectionResizeMode(), minimumSectionSize
*/
int QHeaderView::defaultSectionSize() const
@@ -1531,6 +1536,15 @@ void QHeaderView::setDefaultSectionSize(int size)
d->setDefaultSectionSize(size);
}
+void QHeaderView::resetDefaultSectionSize()
+{
+ Q_D(QHeaderView);
+ if (d->customDefaultSectionSize) {
+ d->updateDefaultSectionSizeFromStyle();
+ d->customDefaultSectionSize = false;
+ }
+}
+
/*!
\since 4.2
\property QHeaderView::minimumSectionSize
@@ -2209,6 +2223,10 @@ bool QHeaderView::event(QEvent *e)
resizeSections();
}
break; }
+ case QEvent::StyleChange:
+ if (!d->customDefaultSectionSize)
+ d->updateDefaultSectionSizeFromStyle();
+ break;
default:
break;
}
@@ -2371,7 +2389,7 @@ void QHeaderView::mouseMoveEvent(QMouseEvent *e)
{
Q_D(QHeaderView);
int pos = d->orientation == Qt::Horizontal ? e->x() : e->y();
- if (pos < 0)
+ if (pos < 0 && d->state != QHeaderViewPrivate::SelectSections)
return;
if (e->buttons() == Qt::NoButton) {
#if !defined(Q_WS_MAC)
@@ -2430,7 +2448,9 @@ void QHeaderView::mouseMoveEvent(QMouseEvent *e)
return;
}
case QHeaderViewPrivate::SelectSections: {
- int logical = logicalIndexAt(pos);
+ int logical = logicalIndexAt(qMax(-d->offset, pos));
+ if (logical == -1 && pos > 0)
+ logical = d->lastVisibleVisualIndex();
if (logical == d->pressed)
return; // nothing to do
else if (d->pressed != -1)
@@ -3463,6 +3483,7 @@ void QHeaderViewPrivate::setDefaultSectionSize(int size)
executePostedLayout();
invalidateCachedSizeHint();
defaultSectionSize = size;
+ customDefaultSectionSize = true;
if (state == QHeaderViewPrivate::ResizeSection)
preventCursorChangeInSetOffset = true;
for (int i = 0; i < sectionItems.count(); ++i) {
@@ -3483,6 +3504,17 @@ void QHeaderViewPrivate::setDefaultSectionSize(int size)
viewport->update();
}
+void QHeaderViewPrivate::updateDefaultSectionSizeFromStyle()
+{
+ Q_Q(QHeaderView);
+ if (orientation == Qt::Horizontal) {
+ defaultSectionSize = q->style()->pixelMetric(QStyle::PM_HeaderDefaultSectionSizeHorizontal, 0, q);
+ } else {
+ defaultSectionSize = qMax(q->minimumSectionSize(),
+ q->style()->pixelMetric(QStyle::PM_HeaderDefaultSectionSizeVertical, 0, q));
+ }
+}
+
void QHeaderViewPrivate::recalcSectionStartPos() const // linear (but fast)
{
int pixelpos = 0;
@@ -3630,6 +3662,7 @@ void QHeaderViewPrivate::write(QDataStream &out) const
out << sectionItems;
out << resizeContentsPrecision;
+ out << customDefaultSectionSize;
}
bool QHeaderViewPrivate::read(QDataStream &in)
@@ -3641,6 +3674,17 @@ bool QHeaderViewPrivate::read(QDataStream &in)
QVector<int> visualIndicesIn;
QVector<int> logicalIndicesIn;
QHash<int, int> hiddenSectionSizeIn;
+ bool movableSectionsIn;
+ bool clickableSectionsIn;
+ bool highlightSelectedIn;
+ bool stretchLastSectionIn;
+ bool cascadingResizingIn;
+ int stretchSectionsIn;
+ int contentsSectionsIn;
+ int defaultSectionSizeIn;
+ int minimumSectionSizeIn;
+ QVector<SectionItem> sectionItemsIn;
+
in >> orient;
in >> order;
@@ -3662,6 +3706,37 @@ bool QHeaderViewPrivate::read(QDataStream &in)
if (in.status() != QDataStream::Ok || lengthIn < 0)
return false;
+ in >> movableSectionsIn;
+ in >> clickableSectionsIn;
+ in >> highlightSelectedIn;
+ in >> stretchLastSectionIn;
+ in >> cascadingResizingIn;
+ in >> stretchSectionsIn;
+ in >> contentsSectionsIn;
+ in >> defaultSectionSizeIn;
+ in >> minimumSectionSizeIn;
+
+ in >> align;
+
+ in >> global;
+
+ in >> sectionItemsIn;
+ // In Qt4 we had a vector of spans where one span could hold information on more sections.
+ // Now we have an itemvector where one items contains information about one section
+ // For backward compatibility with Qt4 we do the following
+ QVector<SectionItem> newSectionItems;
+ for (int u = 0; u < sectionItemsIn.count(); ++u) {
+ int count = sectionItemsIn.at(u).tmpDataStreamSectionCount;
+ for (int n = 0; n < count; ++n)
+ newSectionItems.append(sectionItemsIn[u]);
+ }
+
+ int sectionItemsLengthTotal = 0;
+ foreach (const SectionItem& section, sectionItemsIn)
+ sectionItemsLengthTotal += section.size;
+ if (sectionItemsLengthTotal != lengthIn)
+ return false;
+
orientation = static_cast<Qt::Orientation>(orient);
sortIndicatorOrder = static_cast<Qt::SortOrder>(order);
sortIndicatorSection = sortIndicatorSectionIn;
@@ -3671,32 +3746,19 @@ bool QHeaderViewPrivate::read(QDataStream &in)
hiddenSectionSize = hiddenSectionSizeIn;
length = lengthIn;
- in >> movableSections;
- in >> clickableSections;
- in >> highlightSelected;
- in >> stretchLastSection;
- in >> cascadingResizing;
- in >> stretchSections;
- in >> contentsSections;
- in >> defaultSectionSize;
- in >> minimumSectionSize;
+ movableSections = movableSectionsIn;
+ clickableSections = clickableSectionsIn;
+ highlightSelected = highlightSelectedIn;
+ stretchLastSection = stretchLastSectionIn;
+ cascadingResizing = cascadingResizingIn;
+ stretchSections = stretchSectionsIn;
+ contentsSections = contentsSectionsIn;
+ defaultSectionSize = defaultSectionSizeIn;
+ minimumSectionSize = minimumSectionSizeIn;
- in >> align;
defaultAlignment = Qt::Alignment(align);
+ globalResizeMode = static_cast<QHeaderView::ResizeMode>(global);
- in >> global;
- globalResizeMode = (QHeaderView::ResizeMode)global;
-
- in >> sectionItems;
- // In Qt4 we had a vector of spans where one span could hold information on more sections.
- // Now we have an itemvector where one items contains information about one section
- // For backward compatibility with Qt4 we do the following
- QVector<SectionItem> newSectionItems;
- for (int u = 0; u < sectionItems.count(); ++u) {
- int count = sectionItems.at(u).tmpDataStreamSectionCount;
- for (int n = 0; n < count; ++n)
- newSectionItems.append(sectionItems[u]);
- }
sectionItems = newSectionItems;
setHiddenSectionsFromBitVector(sectionHidden);
recalcSectionStartPos();
@@ -3706,6 +3768,14 @@ bool QHeaderViewPrivate::read(QDataStream &in)
if (in.status() == QDataStream::Ok) // we haven't read past end
resizeContentsPrecision = tmpint;
+ bool tmpbool;
+ in >> tmpbool;
+ if (in.status() == QDataStream::Ok) { // we haven't read past end
+ customDefaultSectionSize = tmpbool;
+ if (!customDefaultSectionSize)
+ updateDefaultSectionSizeFromStyle();
+ }
+
return true;
}
diff --git a/src/widgets/itemviews/qheaderview.h b/src/widgets/itemviews/qheaderview.h
index 4a627b26b4..0163243cdf 100644
--- a/src/widgets/itemviews/qheaderview.h
+++ b/src/widgets/itemviews/qheaderview.h
@@ -51,7 +51,7 @@ class Q_WIDGETS_EXPORT QHeaderView : public QAbstractItemView
Q_PROPERTY(bool highlightSections READ highlightSections WRITE setHighlightSections)
Q_PROPERTY(bool stretchLastSection READ stretchLastSection WRITE setStretchLastSection)
Q_PROPERTY(bool cascadingSectionResizes READ cascadingSectionResizes WRITE setCascadingSectionResizes)
- Q_PROPERTY(int defaultSectionSize READ defaultSectionSize WRITE setDefaultSectionSize)
+ Q_PROPERTY(int defaultSectionSize READ defaultSectionSize WRITE setDefaultSectionSize RESET resetDefaultSectionSize)
Q_PROPERTY(int minimumSectionSize READ minimumSectionSize WRITE setMinimumSectionSize)
Q_PROPERTY(int maximumSectionSize READ maximumSectionSize WRITE setMaximumSectionSize)
Q_PROPERTY(Qt::Alignment defaultAlignment READ defaultAlignment WRITE setDefaultAlignment)
@@ -71,13 +71,13 @@ public:
explicit QHeaderView(Qt::Orientation orientation, QWidget *parent = 0);
virtual ~QHeaderView();
- void setModel(QAbstractItemModel *model);
+ void setModel(QAbstractItemModel *model) Q_DECL_OVERRIDE;
Qt::Orientation orientation() const;
int offset() const;
int length() const;
- QSize sizeHint() const;
- void setVisible(bool v);
+ QSize sizeHint() const Q_DECL_OVERRIDE;
+ void setVisible(bool v) Q_DECL_OVERRIDE;
int sectionSizeHint(int logicalIndex) const;
int visualIndexAt(int position) const;
@@ -156,6 +156,7 @@ public:
int defaultSectionSize() const;
void setDefaultSectionSize(int size);
+ void resetDefaultSectionSize();
int minimumSectionSize() const;
void setMinimumSectionSize(int size);
@@ -165,7 +166,7 @@ public:
Qt::Alignment defaultAlignment() const;
void setDefaultAlignment(Qt::Alignment alignment);
- void doItemsLayout();
+ void doItemsLayout() Q_DECL_OVERRIDE;
bool sectionsMoved() const;
bool sectionsHidden() const;
@@ -174,7 +175,7 @@ public:
bool restoreState(const QByteArray &state);
#endif
- void reset();
+ void reset() Q_DECL_OVERRIDE;
public Q_SLOTS:
void setOffset(int offset);
@@ -206,36 +207,36 @@ protected:
void initializeSections();
void initializeSections(int start, int end);
- void currentChanged(const QModelIndex &current, const QModelIndex &old);
+ void currentChanged(const QModelIndex &current, const QModelIndex &old) Q_DECL_OVERRIDE;
- bool event(QEvent *e);
- void paintEvent(QPaintEvent *e);
- void mousePressEvent(QMouseEvent *e);
- void mouseMoveEvent(QMouseEvent *e);
- void mouseReleaseEvent(QMouseEvent *e);
- void mouseDoubleClickEvent(QMouseEvent *e);
- bool viewportEvent(QEvent *e);
+ bool event(QEvent *e) Q_DECL_OVERRIDE;
+ void paintEvent(QPaintEvent *e) Q_DECL_OVERRIDE;
+ void mousePressEvent(QMouseEvent *e) Q_DECL_OVERRIDE;
+ void mouseMoveEvent(QMouseEvent *e) Q_DECL_OVERRIDE;
+ void mouseReleaseEvent(QMouseEvent *e) Q_DECL_OVERRIDE;
+ void mouseDoubleClickEvent(QMouseEvent *e) Q_DECL_OVERRIDE;
+ bool viewportEvent(QEvent *e) Q_DECL_OVERRIDE;
virtual void paintSection(QPainter *painter, const QRect &rect, int logicalIndex) const;
virtual QSize sectionSizeFromContents(int logicalIndex) const;
- int horizontalOffset() const;
- int verticalOffset() const;
- void updateGeometries();
- void scrollContentsBy(int dx, int dy);
+ int horizontalOffset() const Q_DECL_OVERRIDE;
+ int verticalOffset() const Q_DECL_OVERRIDE;
+ void updateGeometries() Q_DECL_OVERRIDE;
+ void scrollContentsBy(int dx, int dy) Q_DECL_OVERRIDE;
- void dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector<int> &roles = QVector<int>());
- void rowsInserted(const QModelIndex &parent, int start, int end);
+ void dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector<int> &roles = QVector<int>()) Q_DECL_OVERRIDE;
+ void rowsInserted(const QModelIndex &parent, int start, int end) Q_DECL_OVERRIDE;
- QRect visualRect(const QModelIndex &index) const;
- void scrollTo(const QModelIndex &index, ScrollHint hint);
+ QRect visualRect(const QModelIndex &index) const Q_DECL_OVERRIDE;
+ void scrollTo(const QModelIndex &index, ScrollHint hint) Q_DECL_OVERRIDE;
- QModelIndex indexAt(const QPoint &p) const;
- bool isIndexHidden(const QModelIndex &index) const;
+ QModelIndex indexAt(const QPoint &p) const Q_DECL_OVERRIDE;
+ bool isIndexHidden(const QModelIndex &index) const Q_DECL_OVERRIDE;
- QModelIndex moveCursor(CursorAction, Qt::KeyboardModifiers);
- void setSelection(const QRect& rect, QItemSelectionModel::SelectionFlags flags);
- QRegion visualRegionForSelection(const QItemSelection &selection) const;
+ QModelIndex moveCursor(CursorAction, Qt::KeyboardModifiers) Q_DECL_OVERRIDE;
+ void setSelection(const QRect& rect, QItemSelectionModel::SelectionFlags flags) Q_DECL_OVERRIDE;
+ QRegion visualRegionForSelection(const QItemSelection &selection) const Q_DECL_OVERRIDE;
void initStyleOption(QStyleOptionHeader *option) const;
friend class QTableView;
diff --git a/src/widgets/itemviews/qheaderview_p.h b/src/widgets/itemviews/qheaderview_p.h
index fd99ea5474..2fde1bf79a 100644
--- a/src/widgets/itemviews/qheaderview_p.h
+++ b/src/widgets/itemviews/qheaderview_p.h
@@ -84,6 +84,7 @@ public:
cascadingResizing(false),
resizeRecursionBlock(false),
allowUserMoveOfSection0(true), // will be false for QTreeView and true for QTableView
+ customDefaultSectionSize(false),
stretchSections(0),
contentsSections(0),
minimumSectionSize(-1),
@@ -155,8 +156,7 @@ public:
inline void setDefaultValues(Qt::Orientation o) {
orientation = o;
- defaultSectionSize = (o == Qt::Horizontal ? 100
- : qMax(q_func()->minimumSectionSize(), 30));
+ updateDefaultSectionSizeFromStyle();
defaultAlignment = (o == Qt::Horizontal
? Qt::Alignment(Qt::AlignCenter)
: Qt::AlignLeft|Qt::AlignVCenter);
@@ -275,6 +275,7 @@ public:
bool cascadingResizing;
bool resizeRecursionBlock;
bool allowUserMoveOfSection0;
+ bool customDefaultSectionSize;
int stretchSections;
int contentsSections;
int defaultSectionSize;
@@ -321,6 +322,7 @@ public:
void removeSectionsFromSectionItems(int start, int end);
void resizeSectionItem(int visualIndex, int oldSize, int newSize);
void setDefaultSectionSize(int size);
+ void updateDefaultSectionSizeFromStyle();
void recalcSectionStartPos() const; // not really const
inline int headerLength() const { // for debugging
diff --git a/src/widgets/itemviews/qitemdelegate.cpp b/src/widgets/itemviews/qitemdelegate.cpp
index ef14ab8ed5..9303800e87 100644
--- a/src/widgets/itemviews/qitemdelegate.cpp
+++ b/src/widgets/itemviews/qitemdelegate.cpp
@@ -36,13 +36,7 @@
#ifndef QT_NO_ITEMVIEWS
#include <qabstractitemmodel.h>
#include <qapplication.h>
-#include <qpa/qplatformintegration.h>
-#include <qpa/qplatformdrag.h>
-#include <private/qguiapplication_p.h>
#include <qbrush.h>
-#include <qlineedit.h>
-#include <qtextedit.h>
-#include <qplaintextedit.h>
#include <qpainter.h>
#include <qpalette.h>
#include <qpoint.h>
@@ -58,8 +52,7 @@
#include <qitemeditorfactory.h>
#include <qmetaobject.h>
#include <qtextlayout.h>
-#include <private/qobject_p.h>
-#include <private/qdnd_p.h>
+#include <private/qabstractitemdelegate_p.h>
#include <private/qtextengine_p.h>
#include <qdebug.h>
#include <qlocale.h>
@@ -74,7 +67,7 @@
QT_BEGIN_NAMESPACE
-class QItemDelegatePrivate : public QObjectPrivate
+class QItemDelegatePrivate : public QAbstractItemDelegatePrivate
{
Q_DECLARE_PUBLIC(QItemDelegate)
@@ -105,9 +98,6 @@ public:
static QString valueToText(const QVariant &value, const QStyleOptionViewItem &option);
- bool tryFixup(QWidget *editor);
- void _q_commitDataAndCloseEditor(QWidget *editor);
-
QItemEditorFactory *f;
bool clipPainting;
@@ -129,13 +119,6 @@ public:
} tmp;
};
-void QItemDelegatePrivate::_q_commitDataAndCloseEditor(QWidget *editor)
-{
- Q_Q(QItemDelegate);
- emit q->commitData(editor);
- emit q->closeEditor(editor, QAbstractItemDelegate::SubmitModelCache);
-}
-
QRect QItemDelegatePrivate::textLayoutBounds(const QStyleOptionViewItem &option) const
{
QRect rect = option.rect;
@@ -379,24 +362,6 @@ QString QItemDelegatePrivate::valueToText(const QVariant &value, const QStyleOpt
return text;
}
-bool QItemDelegatePrivate::tryFixup(QWidget *editor)
-{
-#ifndef QT_NO_LINEEDIT
- if (QLineEdit *e = qobject_cast<QLineEdit*>(editor)) {
- if (!e->hasAcceptableInput()) {
- if (const QValidator *validator = e->validator()) {
- QString text = e->text();
- validator->fixup(text);
- e->setText(text);
- }
- return e->hasAcceptableInput();
- }
- }
-#endif // QT_NO_LINEEDIT
-
- return true;
-}
-
/*!
Renders the delegate using the given \a painter and style \a option for
the item specified by \a index.
@@ -1166,75 +1131,7 @@ QRect QItemDelegate::textRectangle(QPainter * /*painter*/, const QRect &rect,
bool QItemDelegate::eventFilter(QObject *object, QEvent *event)
{
Q_D(QItemDelegate);
-
- QWidget *editor = qobject_cast<QWidget*>(object);
- if (!editor)
- return false;
- if (event->type() == QEvent::KeyPress) {
- switch (static_cast<QKeyEvent *>(event)->key()) {
- case Qt::Key_Tab:
- if (d->tryFixup(editor)) {
- emit commitData(editor);
- emit closeEditor(editor, EditNextItem);
- }
- return true;
- case Qt::Key_Backtab:
- if (d->tryFixup(editor)) {
- emit commitData(editor);
- emit closeEditor(editor, EditPreviousItem);
- }
- return true;
- case Qt::Key_Enter:
- case Qt::Key_Return:
-#ifndef QT_NO_TEXTEDIT
- if (qobject_cast<QTextEdit *>(editor) || qobject_cast<QPlainTextEdit *>(editor))
- return false; // don't filter enter key events for QTextEdit
- // We want the editor to be able to process the key press
- // before committing the data (e.g. so it can do
- // validation/fixup of the input).
-#endif // QT_NO_TEXTEDIT
- if (!d->tryFixup(editor))
- return true;
-
- QMetaObject::invokeMethod(this, "_q_commitDataAndCloseEditor",
- Qt::QueuedConnection, Q_ARG(QWidget*, editor));
- return false;
- case Qt::Key_Escape:
- // don't commit data
- emit closeEditor(editor, QAbstractItemDelegate::RevertModelCache);
- return true;
- default:
- return false;
- }
- } else if (event->type() == QEvent::FocusOut || (event->type() == QEvent::Hide && editor->isWindow())) {
- //the Hide event will take care of he editors that are in fact complete dialogs
- if (!editor->isActiveWindow() || (QApplication::focusWidget() != editor)) {
- QWidget *w = QApplication::focusWidget();
- while (w) { // don't worry about focus changes internally in the editor
- if (w == editor)
- return false;
- w = w->parentWidget();
- }
-#ifndef QT_NO_DRAGANDDROP
- // The window may lose focus during an drag operation.
- // i.e when dragging involves the taskbar on Windows.
- QPlatformDrag *platformDrag = QGuiApplicationPrivate::instance()->platformIntegration()->drag();
- if (platformDrag && platformDrag->currentDrag()) {
- return false;
- }
-#endif
- if (d->tryFixup(editor))
- emit commitData(editor);
-
- emit closeEditor(editor, NoHint);
- }
- } else if (event->type() == QEvent::ShortcutOverride) {
- if (static_cast<QKeyEvent*>(event)->key() == Qt::Key_Escape) {
- event->accept();
- return true;
- }
- }
- return false;
+ return d->editorEventFilter(object, event);
}
/*!
diff --git a/src/widgets/itemviews/qitemdelegate.h b/src/widgets/itemviews/qitemdelegate.h
index 55b33b69b2..148e049333 100644
--- a/src/widgets/itemviews/qitemdelegate.h
+++ b/src/widgets/itemviews/qitemdelegate.h
@@ -62,21 +62,21 @@ public:
// painting
void paint(QPainter *painter,
const QStyleOptionViewItem &option,
- const QModelIndex &index) const;
+ const QModelIndex &index) const Q_DECL_OVERRIDE;
QSize sizeHint(const QStyleOptionViewItem &option,
- const QModelIndex &index) const;
+ const QModelIndex &index) const Q_DECL_OVERRIDE;
// editing
QWidget *createEditor(QWidget *parent,
const QStyleOptionViewItem &option,
- const QModelIndex &index) const;
+ const QModelIndex &index) const Q_DECL_OVERRIDE;
- void setEditorData(QWidget *editor, const QModelIndex &index) const;
- void setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const;
+ void setEditorData(QWidget *editor, const QModelIndex &index) const Q_DECL_OVERRIDE;
+ void setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const Q_DECL_OVERRIDE;
void updateEditorGeometry(QWidget *editor,
const QStyleOptionViewItem &option,
- const QModelIndex &index) const;
+ const QModelIndex &index) const Q_DECL_OVERRIDE;
// editor factory
QItemEditorFactory *itemEditorFactory() const;
@@ -99,9 +99,9 @@ protected:
QRect rect(const QStyleOptionViewItem &option, const QModelIndex &index, int role) const;
- bool eventFilter(QObject *object, QEvent *event);
+ bool eventFilter(QObject *object, QEvent *event) Q_DECL_OVERRIDE;
bool editorEvent(QEvent *event, QAbstractItemModel *model,
- const QStyleOptionViewItem &option, const QModelIndex &index);
+ const QStyleOptionViewItem &option, const QModelIndex &index) Q_DECL_OVERRIDE;
QStyleOptionViewItem setOptions(const QModelIndex &index,
const QStyleOptionViewItem &option) const;
@@ -117,8 +117,6 @@ protected:
private:
Q_DECLARE_PRIVATE(QItemDelegate)
Q_DISABLE_COPY(QItemDelegate)
-
- Q_PRIVATE_SLOT(d_func(), void _q_commitDataAndCloseEditor(QWidget*))
};
#endif // QT_NO_ITEMVIEWS
diff --git a/src/widgets/itemviews/qitemeditorfactory.cpp b/src/widgets/itemviews/qitemeditorfactory.cpp
index 2e8cca2997..ee1cb9b002 100644
--- a/src/widgets/itemviews/qitemeditorfactory.cpp
+++ b/src/widgets/itemviews/qitemeditorfactory.cpp
@@ -213,8 +213,8 @@ class QDefaultItemEditorFactory : public QItemEditorFactory
{
public:
inline QDefaultItemEditorFactory() {}
- QWidget *createEditor(int userType, QWidget *parent) const;
- QByteArray valuePropertyName(int) const;
+ QWidget *createEditor(int userType, QWidget *parent) const Q_DECL_OVERRIDE;
+ QByteArray valuePropertyName(int) const Q_DECL_OVERRIDE;
};
QWidget *QDefaultItemEditorFactory::createEditor(int userType, QWidget *parent) const
diff --git a/src/widgets/itemviews/qitemeditorfactory_p.h b/src/widgets/itemviews/qitemeditorfactory_p.h
index 9b46f1c728..739b75c63e 100644
--- a/src/widgets/itemviews/qitemeditorfactory_p.h
+++ b/src/widgets/itemviews/qitemeditorfactory_p.h
@@ -69,7 +69,7 @@ public:
}
protected:
- void changeEvent(QEvent *e);
+ void changeEvent(QEvent *e) Q_DECL_OVERRIDE;
public Q_SLOTS:
void resizeToContents();
diff --git a/src/widgets/itemviews/qlistview.h b/src/widgets/itemviews/qlistview.h
index ed0972413b..8e4cc7ff41 100644
--- a/src/widgets/itemviews/qlistview.h
+++ b/src/widgets/itemviews/qlistview.h
@@ -115,13 +115,13 @@ public:
void setSelectionRectVisible(bool show);
bool isSelectionRectVisible() const;
- QRect visualRect(const QModelIndex &index) const;
- void scrollTo(const QModelIndex &index, ScrollHint hint = EnsureVisible);
- QModelIndex indexAt(const QPoint &p) const;
+ QRect visualRect(const QModelIndex &index) const Q_DECL_OVERRIDE;
+ void scrollTo(const QModelIndex &index, ScrollHint hint = EnsureVisible) Q_DECL_OVERRIDE;
+ QModelIndex indexAt(const QPoint &p) const Q_DECL_OVERRIDE;
- void doItemsLayout();
- void reset();
- void setRootIndex(const QModelIndex &index);
+ void doItemsLayout() Q_DECL_OVERRIDE;
+ void reset() Q_DECL_OVERRIDE;
+ void setRootIndex(const QModelIndex &index) Q_DECL_OVERRIDE;
Q_SIGNALS:
void indexesMoved(const QModelIndexList &indexes);
@@ -129,48 +129,48 @@ Q_SIGNALS:
protected:
QListView(QListViewPrivate &, QWidget *parent = 0);
- bool event(QEvent *e);
+ bool event(QEvent *e) Q_DECL_OVERRIDE;
- void scrollContentsBy(int dx, int dy);
+ void scrollContentsBy(int dx, int dy) Q_DECL_OVERRIDE;
void resizeContents(int width, int height);
QSize contentsSize() const;
- void dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector<int> &roles = QVector<int>());
- void rowsInserted(const QModelIndex &parent, int start, int end);
- void rowsAboutToBeRemoved(const QModelIndex &parent, int start, int end);
+ void dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector<int> &roles = QVector<int>()) Q_DECL_OVERRIDE;
+ void rowsInserted(const QModelIndex &parent, int start, int end) Q_DECL_OVERRIDE;
+ void rowsAboutToBeRemoved(const QModelIndex &parent, int start, int end) Q_DECL_OVERRIDE;
- void mouseMoveEvent(QMouseEvent *e);
- void mouseReleaseEvent(QMouseEvent *e);
+ void mouseMoveEvent(QMouseEvent *e) Q_DECL_OVERRIDE;
+ void mouseReleaseEvent(QMouseEvent *e) Q_DECL_OVERRIDE;
- void timerEvent(QTimerEvent *e);
- void resizeEvent(QResizeEvent *e);
+ void timerEvent(QTimerEvent *e) Q_DECL_OVERRIDE;
+ void resizeEvent(QResizeEvent *e) Q_DECL_OVERRIDE;
#ifndef QT_NO_DRAGANDDROP
- void dragMoveEvent(QDragMoveEvent *e);
- void dragLeaveEvent(QDragLeaveEvent *e);
- void dropEvent(QDropEvent *e);
- void startDrag(Qt::DropActions supportedActions);
+ void dragMoveEvent(QDragMoveEvent *e) Q_DECL_OVERRIDE;
+ void dragLeaveEvent(QDragLeaveEvent *e) Q_DECL_OVERRIDE;
+ void dropEvent(QDropEvent *e) Q_DECL_OVERRIDE;
+ void startDrag(Qt::DropActions supportedActions) Q_DECL_OVERRIDE;
#endif // QT_NO_DRAGANDDROP
- QStyleOptionViewItem viewOptions() const;
- void paintEvent(QPaintEvent *e);
+ QStyleOptionViewItem viewOptions() const Q_DECL_OVERRIDE;
+ void paintEvent(QPaintEvent *e) Q_DECL_OVERRIDE;
- int horizontalOffset() const;
- int verticalOffset() const;
- QModelIndex moveCursor(CursorAction cursorAction, Qt::KeyboardModifiers modifiers);
+ int horizontalOffset() const Q_DECL_OVERRIDE;
+ int verticalOffset() const Q_DECL_OVERRIDE;
+ QModelIndex moveCursor(CursorAction cursorAction, Qt::KeyboardModifiers modifiers) Q_DECL_OVERRIDE;
QRect rectForIndex(const QModelIndex &index) const;
void setPositionForIndex(const QPoint &position, const QModelIndex &index);
- void setSelection(const QRect &rect, QItemSelectionModel::SelectionFlags command);
- QRegion visualRegionForSelection(const QItemSelection &selection) const;
- QModelIndexList selectedIndexes() const;
+ void setSelection(const QRect &rect, QItemSelectionModel::SelectionFlags command) Q_DECL_OVERRIDE;
+ QRegion visualRegionForSelection(const QItemSelection &selection) const Q_DECL_OVERRIDE;
+ QModelIndexList selectedIndexes() const Q_DECL_OVERRIDE;
- void updateGeometries();
+ void updateGeometries() Q_DECL_OVERRIDE;
- bool isIndexHidden(const QModelIndex &index) const;
+ bool isIndexHidden(const QModelIndex &index) const Q_DECL_OVERRIDE;
- void selectionChanged(const QItemSelection &selected, const QItemSelection &deselected);
- void currentChanged(const QModelIndex &current, const QModelIndex &previous);
+ void selectionChanged(const QItemSelection &selected, const QItemSelection &deselected) Q_DECL_OVERRIDE;
+ void currentChanged(const QModelIndex &current, const QModelIndex &previous) Q_DECL_OVERRIDE;
QSize viewportSizeHint() const Q_DECL_OVERRIDE;
diff --git a/src/widgets/itemviews/qlistwidget.cpp b/src/widgets/itemviews/qlistwidget.cpp
index 51561ac23b..aae75e5651 100644
--- a/src/widgets/itemviews/qlistwidget.cpp
+++ b/src/widgets/itemviews/qlistwidget.cpp
@@ -1783,9 +1783,24 @@ QStringList QListWidget::mimeTypes() const
If the list of items is empty, 0 is returned instead of a serialized empty
list.
*/
-QMimeData *QListWidget::mimeData(const QList<QListWidgetItem*>) const
+QMimeData *QListWidget::mimeData(const QList<QListWidgetItem*> items) const
{
- return d_func()->listModel()->internalMimeData();
+ Q_D(const QListWidget);
+
+ QModelIndexList &cachedIndexes = d->listModel()->cachedIndexes;
+
+ // if non empty, it's called from the model's own mimeData
+ if (cachedIndexes.isEmpty()) {
+ foreach (QListWidgetItem *item, items)
+ cachedIndexes << indexFromItem(item);
+
+ QMimeData *result = d->listModel()->internalMimeData();
+
+ cachedIndexes.clear();
+ return result;
+ }
+
+ return d->listModel()->internalMimeData();
}
#ifndef QT_NO_DRAGANDDROP
diff --git a/src/widgets/itemviews/qlistwidget.h b/src/widgets/itemviews/qlistwidget.h
index 753ad250cd..d5b131722d 100644
--- a/src/widgets/itemviews/qlistwidget.h
+++ b/src/widgets/itemviews/qlistwidget.h
@@ -243,7 +243,7 @@ public:
bool isItemHidden(const QListWidgetItem *item) const;
void setItemHidden(const QListWidgetItem *item, bool hide);
- void dropEvent(QDropEvent *event);
+ void dropEvent(QDropEvent *event) Q_DECL_OVERRIDE;
public Q_SLOTS:
void scrollToItem(const QListWidgetItem *item, QAbstractItemView::ScrollHint hint = EnsureVisible);
@@ -264,7 +264,7 @@ Q_SIGNALS:
void itemSelectionChanged();
protected:
- bool event(QEvent *e);
+ bool event(QEvent *e) Q_DECL_OVERRIDE;
virtual QStringList mimeTypes() const;
virtual QMimeData *mimeData(const QList<QListWidgetItem*> items) const;
#ifndef QT_NO_DRAGANDDROP
@@ -277,7 +277,7 @@ protected:
QListWidgetItem *itemFromIndex(const QModelIndex &index) const;
private:
- void setModel(QAbstractItemModel *model);
+ void setModel(QAbstractItemModel *model) Q_DECL_OVERRIDE;
Qt::SortOrder sortOrder() const;
Q_DECLARE_PRIVATE(QListWidget)
diff --git a/src/widgets/itemviews/qlistwidget_p.h b/src/widgets/itemviews/qlistwidget_p.h
index b019cd5eaf..1f2e9e8819 100644
--- a/src/widgets/itemviews/qlistwidget_p.h
+++ b/src/widgets/itemviews/qlistwidget_p.h
@@ -72,6 +72,8 @@ public:
class Q_AUTOTEST_EXPORT QListModel : public QAbstractListModel
{
Q_OBJECT
+ friend class QListWidget;
+
public:
QListModel(QListWidget *parent);
~QListModel();
diff --git a/src/widgets/itemviews/qstyleditemdelegate.cpp b/src/widgets/itemviews/qstyleditemdelegate.cpp
index fd4fb4440e..9d16b2abfc 100644
--- a/src/widgets/itemviews/qstyleditemdelegate.cpp
+++ b/src/widgets/itemviews/qstyleditemdelegate.cpp
@@ -36,9 +36,6 @@
#ifndef QT_NO_ITEMVIEWS
#include <qabstractitemmodel.h>
#include <qapplication.h>
-#include <qpa/qplatformintegration.h>
-#include <qpa/qplatformdrag.h>
-#include <private/qguiapplication_p.h>
#include <qbrush.h>
#include <qlineedit.h>
#include <qtextedit.h>
@@ -59,8 +56,7 @@
#include <private/qitemeditorfactory_p.h>
#include <qmetaobject.h>
#include <qtextlayout.h>
-#include <private/qobject_p.h>
-#include <private/qdnd_p.h>
+#include <private/qabstractitemdelegate_p.h>
#include <private/qtextengine_p.h>
#include <private/qlayoutengine_p.h>
#include <qdebug.h>
@@ -72,7 +68,7 @@
QT_BEGIN_NAMESPACE
-class QStyledItemDelegatePrivate : public QObjectPrivate
+class QStyledItemDelegatePrivate : public QAbstractItemDelegatePrivate
{
Q_DECLARE_PUBLIC(QStyledItemDelegate)
@@ -89,34 +85,9 @@ public:
return factory ? factory : QItemEditorFactory::defaultFactory();
}
- bool tryFixup(QWidget *editor);
- void _q_commitDataAndCloseEditor(QWidget *editor)
- {
- Q_Q(QStyledItemDelegate);
- emit q->commitData(editor);
- emit q->closeEditor(editor, QAbstractItemDelegate::SubmitModelCache);
- }
QItemEditorFactory *factory;
};
-bool QStyledItemDelegatePrivate::tryFixup(QWidget *editor)
-{
-#ifndef QT_NO_LINEEDIT
- if (QLineEdit *e = qobject_cast<QLineEdit*>(editor)) {
- if (!e->hasAcceptableInput()) {
- if (const QValidator *validator = e->validator()) {
- QString text = e->text();
- validator->fixup(text);
- e->setText(text);
- }
- return e->hasAcceptableInput();
- }
- }
-#endif // QT_NO_LINEEDIT
-
- return true;
-}
-
/*!
\class QStyledItemDelegate
@@ -637,75 +608,7 @@ void QStyledItemDelegate::setItemEditorFactory(QItemEditorFactory *factory)
bool QStyledItemDelegate::eventFilter(QObject *object, QEvent *event)
{
Q_D(QStyledItemDelegate);
-
- QWidget *editor = qobject_cast<QWidget*>(object);
- if (!editor)
- return false;
- if (event->type() == QEvent::KeyPress) {
- switch (static_cast<QKeyEvent *>(event)->key()) {
- case Qt::Key_Tab:
- if (d->tryFixup(editor)) {
- emit commitData(editor);
- emit closeEditor(editor, EditNextItem);
- }
- return true;
- case Qt::Key_Backtab:
- if (d->tryFixup(editor)) {
- emit commitData(editor);
- emit closeEditor(editor, EditPreviousItem);
- }
- return true;
- case Qt::Key_Enter:
- case Qt::Key_Return:
-#ifndef QT_NO_TEXTEDIT
- if (qobject_cast<QTextEdit *>(editor) || qobject_cast<QPlainTextEdit *>(editor))
- return false; // don't filter enter key events for QTextEdit
- // We want the editor to be able to process the key press
- // before committing the data (e.g. so it can do
- // validation/fixup of the input).
-#endif // QT_NO_TEXTEDIT
- if (!d->tryFixup(editor))
- return true;
-
- QMetaObject::invokeMethod(this, "_q_commitDataAndCloseEditor",
- Qt::QueuedConnection, Q_ARG(QWidget*, editor));
- return false;
- case Qt::Key_Escape:
- // don't commit data
- emit closeEditor(editor, QAbstractItemDelegate::RevertModelCache);
- return true;
- default:
- return false;
- }
- } else if (event->type() == QEvent::FocusOut || (event->type() == QEvent::Hide && editor->isWindow())) {
- //the Hide event will take care of he editors that are in fact complete dialogs
- if (!editor->isActiveWindow() || (QApplication::focusWidget() != editor)) {
- QWidget *w = QApplication::focusWidget();
- while (w) { // don't worry about focus changes internally in the editor
- if (w == editor)
- return false;
- w = w->parentWidget();
- }
-#ifndef QT_NO_DRAGANDDROP
- // The window may lose focus during an drag operation.
- // i.e when dragging involves the taskbar on Windows.
- QPlatformDrag *platformDrag = QGuiApplicationPrivate::instance()->platformIntegration()->drag();
- if (platformDrag && platformDrag->currentDrag()) {
- return false;
- }
-#endif
- if (d->tryFixup(editor))
- emit commitData(editor);
-
- emit closeEditor(editor, NoHint);
- }
- } else if (event->type() == QEvent::ShortcutOverride) {
- if (static_cast<QKeyEvent*>(event)->key() == Qt::Key_Escape) {
- event->accept();
- return true;
- }
- }
- return false;
+ return d->editorEventFilter(object, event);
}
/*!
diff --git a/src/widgets/itemviews/qstyleditemdelegate.h b/src/widgets/itemviews/qstyleditemdelegate.h
index b523263bd9..7f4ff006a3 100644
--- a/src/widgets/itemviews/qstyleditemdelegate.h
+++ b/src/widgets/itemviews/qstyleditemdelegate.h
@@ -57,23 +57,23 @@ public:
// painting
void paint(QPainter *painter,
- const QStyleOptionViewItem &option, const QModelIndex &index) const;
+ const QStyleOptionViewItem &option, const QModelIndex &index) const Q_DECL_OVERRIDE;
QSize sizeHint(const QStyleOptionViewItem &option,
- const QModelIndex &index) const;
+ const QModelIndex &index) const Q_DECL_OVERRIDE;
// editing
QWidget *createEditor(QWidget *parent,
const QStyleOptionViewItem &option,
- const QModelIndex &index) const;
+ const QModelIndex &index) const Q_DECL_OVERRIDE;
- void setEditorData(QWidget *editor, const QModelIndex &index) const;
+ void setEditorData(QWidget *editor, const QModelIndex &index) const Q_DECL_OVERRIDE;
void setModelData(QWidget *editor,
QAbstractItemModel *model,
- const QModelIndex &index) const;
+ const QModelIndex &index) const Q_DECL_OVERRIDE;
void updateEditorGeometry(QWidget *editor,
const QStyleOptionViewItem &option,
- const QModelIndex &index) const;
+ const QModelIndex &index) const Q_DECL_OVERRIDE;
// editor factory
QItemEditorFactory *itemEditorFactory() const;
@@ -85,15 +85,13 @@ protected:
virtual void initStyleOption(QStyleOptionViewItem *option,
const QModelIndex &index) const;
- bool eventFilter(QObject *object, QEvent *event);
+ bool eventFilter(QObject *object, QEvent *event) Q_DECL_OVERRIDE;
bool editorEvent(QEvent *event, QAbstractItemModel *model,
- const QStyleOptionViewItem &option, const QModelIndex &index);
+ const QStyleOptionViewItem &option, const QModelIndex &index) Q_DECL_OVERRIDE;
private:
Q_DECLARE_PRIVATE(QStyledItemDelegate)
Q_DISABLE_COPY(QStyledItemDelegate)
-
- Q_PRIVATE_SLOT(d_func(), void _q_commitDataAndCloseEditor(QWidget*))
};
#endif // QT_NO_ITEMVIEWS
diff --git a/src/widgets/itemviews/qtableview.cpp b/src/widgets/itemviews/qtableview.cpp
index b5eb509766..062debf4ee 100644
--- a/src/widgets/itemviews/qtableview.cpp
+++ b/src/widgets/itemviews/qtableview.cpp
@@ -584,7 +584,7 @@ class QTableCornerButton : public QAbstractButton
Q_OBJECT
public:
QTableCornerButton(QWidget *parent) : QAbstractButton(parent) {}
- void paintEvent(QPaintEvent*) {
+ void paintEvent(QPaintEvent*) Q_DECL_OVERRIDE {
QStyleOptionHeader opt;
opt.init(this);
QStyle::State state = QStyle::State_None;
diff --git a/src/widgets/itemviews/qtableview.h b/src/widgets/itemviews/qtableview.h
index 66e1318fad..a38d28f93e 100644
--- a/src/widgets/itemviews/qtableview.h
+++ b/src/widgets/itemviews/qtableview.h
@@ -57,10 +57,10 @@ public:
explicit QTableView(QWidget *parent = 0);
~QTableView();
- void setModel(QAbstractItemModel *model);
- void setRootIndex(const QModelIndex &index);
- void setSelectionModel(QItemSelectionModel *selectionModel);
- void doItemsLayout();
+ void setModel(QAbstractItemModel *model) Q_DECL_OVERRIDE;
+ void setRootIndex(const QModelIndex &index) Q_DECL_OVERRIDE;
+ void setSelectionModel(QItemSelectionModel *selectionModel) Q_DECL_OVERRIDE;
+ void doItemsLayout() Q_DECL_OVERRIDE;
QHeaderView *horizontalHeader() const;
QHeaderView *verticalHeader() const;
@@ -99,9 +99,9 @@ public:
void setCornerButtonEnabled(bool enable);
bool isCornerButtonEnabled() const;
- QRect visualRect(const QModelIndex &index) const;
- void scrollTo(const QModelIndex &index, ScrollHint hint = EnsureVisible);
- QModelIndex indexAt(const QPoint &p) const;
+ QRect visualRect(const QModelIndex &index) const Q_DECL_OVERRIDE;
+ void scrollTo(const QModelIndex &index, ScrollHint hint = EnsureVisible) Q_DECL_OVERRIDE;
+ QModelIndex indexAt(const QPoint &p) const Q_DECL_OVERRIDE;
void setSpan(int row, int column, int rowSpan, int columnSpan);
int rowSpan(int row, int column) const;
@@ -134,37 +134,37 @@ protected Q_SLOTS:
protected:
QTableView(QTableViewPrivate &, QWidget *parent);
- void scrollContentsBy(int dx, int dy);
+ void scrollContentsBy(int dx, int dy) Q_DECL_OVERRIDE;
- QStyleOptionViewItem viewOptions() const;
- void paintEvent(QPaintEvent *e);
+ QStyleOptionViewItem viewOptions() const Q_DECL_OVERRIDE;
+ void paintEvent(QPaintEvent *e) Q_DECL_OVERRIDE;
- void timerEvent(QTimerEvent *event);
+ void timerEvent(QTimerEvent *event) Q_DECL_OVERRIDE;
- int horizontalOffset() const;
- int verticalOffset() const;
- QModelIndex moveCursor(CursorAction cursorAction, Qt::KeyboardModifiers modifiers);
+ int horizontalOffset() const Q_DECL_OVERRIDE;
+ int verticalOffset() const Q_DECL_OVERRIDE;
+ QModelIndex moveCursor(CursorAction cursorAction, Qt::KeyboardModifiers modifiers) Q_DECL_OVERRIDE;
- void setSelection(const QRect &rect, QItemSelectionModel::SelectionFlags command);
- QRegion visualRegionForSelection(const QItemSelection &selection) const;
- QModelIndexList selectedIndexes() const;
+ void setSelection(const QRect &rect, QItemSelectionModel::SelectionFlags command) Q_DECL_OVERRIDE;
+ QRegion visualRegionForSelection(const QItemSelection &selection) const Q_DECL_OVERRIDE;
+ QModelIndexList selectedIndexes() const Q_DECL_OVERRIDE;
- void updateGeometries();
+ void updateGeometries() Q_DECL_OVERRIDE;
QSize viewportSizeHint() const Q_DECL_OVERRIDE;
- int sizeHintForRow(int row) const;
- int sizeHintForColumn(int column) const;
+ int sizeHintForRow(int row) const Q_DECL_OVERRIDE;
+ int sizeHintForColumn(int column) const Q_DECL_OVERRIDE;
- void verticalScrollbarAction(int action);
- void horizontalScrollbarAction(int action);
+ void verticalScrollbarAction(int action) Q_DECL_OVERRIDE;
+ void horizontalScrollbarAction(int action) Q_DECL_OVERRIDE;
- bool isIndexHidden(const QModelIndex &index) const;
+ bool isIndexHidden(const QModelIndex &index) const Q_DECL_OVERRIDE;
void selectionChanged(const QItemSelection &selected,
- const QItemSelection &deselected);
+ const QItemSelection &deselected) Q_DECL_OVERRIDE;
void currentChanged(const QModelIndex &current,
- const QModelIndex &previous);
+ const QModelIndex &previous) Q_DECL_OVERRIDE;
private:
friend class QAccessibleItemView;
diff --git a/src/widgets/itemviews/qtablewidget.cpp b/src/widgets/itemviews/qtablewidget.cpp
index 7c24819c0e..eb239f8025 100644
--- a/src/widgets/itemviews/qtablewidget.cpp
+++ b/src/widgets/itemviews/qtablewidget.cpp
@@ -2553,9 +2553,24 @@ QStringList QTableWidget::mimeTypes() const
If the list of items is empty, 0 is returned rather than a serialized
empty list.
*/
-QMimeData *QTableWidget::mimeData(const QList<QTableWidgetItem*>) const
+QMimeData *QTableWidget::mimeData(const QList<QTableWidgetItem*> items) const
{
- return d_func()->tableModel()->internalMimeData();
+ Q_D(const QTableWidget);
+
+ QModelIndexList &cachedIndexes = d->tableModel()->cachedIndexes;
+
+ // if non empty, it's called from the model's own mimeData
+ if (cachedIndexes.isEmpty()) {
+ foreach (QTableWidgetItem *item, items)
+ cachedIndexes << indexFromItem(item);
+
+ QMimeData *result = d->tableModel()->internalMimeData();
+
+ cachedIndexes.clear();
+ return result;
+ }
+
+ return d->tableModel()->internalMimeData();
}
/*!
diff --git a/src/widgets/itemviews/qtablewidget.h b/src/widgets/itemviews/qtablewidget.h
index a1d5b4e172..b7b5203d37 100644
--- a/src/widgets/itemviews/qtablewidget.h
+++ b/src/widgets/itemviews/qtablewidget.h
@@ -311,7 +311,7 @@ Q_SIGNALS:
void currentCellChanged(int currentRow, int currentColumn, int previousRow, int previousColumn);
protected:
- bool event(QEvent *e);
+ bool event(QEvent *e) Q_DECL_OVERRIDE;
virtual QStringList mimeTypes() const;
virtual QMimeData *mimeData(const QList<QTableWidgetItem*> items) const;
virtual bool dropMimeData(int row, int column, const QMimeData *data, Qt::DropAction action);
@@ -320,10 +320,10 @@ protected:
QModelIndex indexFromItem(QTableWidgetItem *item) const;
QTableWidgetItem *itemFromIndex(const QModelIndex &index) const;
- void dropEvent(QDropEvent *event);
+ void dropEvent(QDropEvent *event) Q_DECL_OVERRIDE;
private:
- void setModel(QAbstractItemModel *model);
+ void setModel(QAbstractItemModel *model) Q_DECL_OVERRIDE;
Q_DECLARE_PRIVATE(QTableWidget)
Q_DISABLE_COPY(QTableWidget)
diff --git a/src/widgets/itemviews/qtablewidget_p.h b/src/widgets/itemviews/qtablewidget_p.h
index 50b5a66eb5..92a8f5f305 100644
--- a/src/widgets/itemviews/qtablewidget_p.h
+++ b/src/widgets/itemviews/qtablewidget_p.h
@@ -82,6 +82,8 @@ public:
class QTableModel : public QAbstractTableModel
{
Q_OBJECT
+ friend class QTableWidget;
+
public:
enum ItemFlagsExtension {
ItemIsHeaderItem = 128
diff --git a/src/widgets/itemviews/qtreeview.cpp b/src/widgets/itemviews/qtreeview.cpp
index 2c5f4b7c72..71bf92f321 100644
--- a/src/widgets/itemviews/qtreeview.cpp
+++ b/src/widgets/itemviews/qtreeview.cpp
@@ -3094,8 +3094,6 @@ void QTreeViewPrivate::expand(int item, bool emitSignal)
void QTreeViewPrivate::insertViewItems(int pos, int count, const QTreeViewItem &viewItem)
{
- Q_Q(QTreeView);
- Q_UNUSED(q)
viewItems.insert(pos, count, viewItem);
QTreeViewItem *items = viewItems.data();
for (int i = pos + count; i < viewItems.count(); i++)
@@ -3105,8 +3103,6 @@ void QTreeViewPrivate::insertViewItems(int pos, int count, const QTreeViewItem &
void QTreeViewPrivate::removeViewItems(int pos, int count)
{
- Q_Q(QTreeView);
- Q_UNUSED(q)
viewItems.remove(pos, count);
QTreeViewItem *items = viewItems.data();
for (int i = pos; i < viewItems.count(); i++)
diff --git a/src/widgets/itemviews/qtreeview.h b/src/widgets/itemviews/qtreeview.h
index afdb94d770..2d7aaee69d 100644
--- a/src/widgets/itemviews/qtreeview.h
+++ b/src/widgets/itemviews/qtreeview.h
@@ -63,9 +63,9 @@ public:
explicit QTreeView(QWidget *parent = 0);
~QTreeView();
- void setModel(QAbstractItemModel *model);
- void setRootIndex(const QModelIndex &index);
- void setSelectionModel(QItemSelectionModel *selectionModel);
+ void setModel(QAbstractItemModel *model) Q_DECL_OVERRIDE;
+ void setRootIndex(const QModelIndex &index) Q_DECL_OVERRIDE;
+ void setSelectionModel(QItemSelectionModel *selectionModel) Q_DECL_OVERRIDE;
QHeaderView *header() const;
void setHeader(QHeaderView *header);
@@ -124,21 +124,21 @@ public:
void setTreePosition(int logicalIndex);
int treePosition() const;
- void keyboardSearch(const QString &search);
+ void keyboardSearch(const QString &search) Q_DECL_OVERRIDE;
- QRect visualRect(const QModelIndex &index) const;
- void scrollTo(const QModelIndex &index, ScrollHint hint = EnsureVisible);
- QModelIndex indexAt(const QPoint &p) const;
+ QRect visualRect(const QModelIndex &index) const Q_DECL_OVERRIDE;
+ void scrollTo(const QModelIndex &index, ScrollHint hint = EnsureVisible) Q_DECL_OVERRIDE;
+ QModelIndex indexAt(const QPoint &p) const Q_DECL_OVERRIDE;
QModelIndex indexAbove(const QModelIndex &index) const;
QModelIndex indexBelow(const QModelIndex &index) const;
- void doItemsLayout();
- void reset();
+ void doItemsLayout() Q_DECL_OVERRIDE;
+ void reset() Q_DECL_OVERRIDE;
void sortByColumn(int column, Qt::SortOrder order);
- void dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector<int> &roles = QVector<int>());
- void selectAll();
+ void dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector<int> &roles = QVector<int>()) Q_DECL_OVERRIDE;
+ void selectAll() Q_DECL_OVERRIDE;
Q_SIGNALS:
void expanded(const QModelIndex &index);
@@ -164,20 +164,20 @@ protected Q_SLOTS:
protected:
QTreeView(QTreeViewPrivate &dd, QWidget *parent = 0);
- void scrollContentsBy(int dx, int dy);
- void rowsInserted(const QModelIndex &parent, int start, int end);
- void rowsAboutToBeRemoved(const QModelIndex &parent, int start, int end);
+ void scrollContentsBy(int dx, int dy) Q_DECL_OVERRIDE;
+ void rowsInserted(const QModelIndex &parent, int start, int end) Q_DECL_OVERRIDE;
+ void rowsAboutToBeRemoved(const QModelIndex &parent, int start, int end) Q_DECL_OVERRIDE;
- QModelIndex moveCursor(CursorAction cursorAction, Qt::KeyboardModifiers modifiers);
- int horizontalOffset() const;
- int verticalOffset() const;
+ QModelIndex moveCursor(CursorAction cursorAction, Qt::KeyboardModifiers modifiers) Q_DECL_OVERRIDE;
+ int horizontalOffset() const Q_DECL_OVERRIDE;
+ int verticalOffset() const Q_DECL_OVERRIDE;
- void setSelection(const QRect &rect, QItemSelectionModel::SelectionFlags command);
- QRegion visualRegionForSelection(const QItemSelection &selection) const;
- QModelIndexList selectedIndexes() const;
+ void setSelection(const QRect &rect, QItemSelectionModel::SelectionFlags command) Q_DECL_OVERRIDE;
+ QRegion visualRegionForSelection(const QItemSelection &selection) const Q_DECL_OVERRIDE;
+ QModelIndexList selectedIndexes() const Q_DECL_OVERRIDE;
- void timerEvent(QTimerEvent *event);
- void paintEvent(QPaintEvent *event);
+ void timerEvent(QTimerEvent *event) Q_DECL_OVERRIDE;
+ void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE;
void drawTree(QPainter *painter, const QRegion &region) const;
virtual void drawRow(QPainter *painter,
@@ -187,30 +187,30 @@ protected:
const QRect &rect,
const QModelIndex &index) const;
- void mousePressEvent(QMouseEvent *event);
- void mouseReleaseEvent(QMouseEvent *event);
- void mouseDoubleClickEvent(QMouseEvent *event);
- void mouseMoveEvent(QMouseEvent *event);
- void keyPressEvent(QKeyEvent *event);
+ void mousePressEvent(QMouseEvent *event) Q_DECL_OVERRIDE;
+ void mouseReleaseEvent(QMouseEvent *event) Q_DECL_OVERRIDE;
+ void mouseDoubleClickEvent(QMouseEvent *event) Q_DECL_OVERRIDE;
+ void mouseMoveEvent(QMouseEvent *event) Q_DECL_OVERRIDE;
+ void keyPressEvent(QKeyEvent *event) Q_DECL_OVERRIDE;
#ifndef QT_NO_DRAGANDDROP
- void dragMoveEvent(QDragMoveEvent *event);
+ void dragMoveEvent(QDragMoveEvent *event) Q_DECL_OVERRIDE;
#endif
- bool viewportEvent(QEvent *event);
+ bool viewportEvent(QEvent *event) Q_DECL_OVERRIDE;
- void updateGeometries();
+ void updateGeometries() Q_DECL_OVERRIDE;
QSize viewportSizeHint() const Q_DECL_OVERRIDE;
- int sizeHintForColumn(int column) const;
+ int sizeHintForColumn(int column) const Q_DECL_OVERRIDE;
int indexRowSizeHint(const QModelIndex &index) const;
int rowHeight(const QModelIndex &index) const;
- void horizontalScrollbarAction(int action);
+ void horizontalScrollbarAction(int action) Q_DECL_OVERRIDE;
- bool isIndexHidden(const QModelIndex &index) const;
+ bool isIndexHidden(const QModelIndex &index) const Q_DECL_OVERRIDE;
void selectionChanged(const QItemSelection &selected,
- const QItemSelection &deselected);
- void currentChanged(const QModelIndex &current, const QModelIndex &previous);
+ const QItemSelection &deselected) Q_DECL_OVERRIDE;
+ void currentChanged(const QModelIndex &current, const QModelIndex &previous) Q_DECL_OVERRIDE;
private:
friend class QAccessibleTable;
diff --git a/src/widgets/itemviews/qtreeview_p.h b/src/widgets/itemviews/qtreeview_p.h
index bc444eb37f..72cb897353 100644
--- a/src/widgets/itemviews/qtreeview_p.h
+++ b/src/widgets/itemviews/qtreeview_p.h
@@ -210,6 +210,8 @@ public:
QSet<QPersistentModelIndex> hiddenIndexes;
inline bool isRowHidden(const QModelIndex &idx) const {
+ if (hiddenIndexes.isEmpty())
+ return false;
//We first check if the idx is a QPersistentModelIndex, because creating QPersistentModelIndex is slow
return isPersistent(idx) && hiddenIndexes.contains(idx);
}
diff --git a/src/widgets/itemviews/qtreewidget.cpp b/src/widgets/itemviews/qtreewidget.cpp
index 0a4e57812a..704f8975b9 100644
--- a/src/widgets/itemviews/qtreewidget.cpp
+++ b/src/widgets/itemviews/qtreewidget.cpp
@@ -2153,10 +2153,11 @@ QVariant QTreeWidgetItem::childrenCheckState(int column) const
default:
return Qt::PartiallyChecked;
}
+
+ if (uncheckedChildren && checkedChildren)
+ return Qt::PartiallyChecked;
}
- if (uncheckedChildren && checkedChildren)
- return Qt::PartiallyChecked;
if (uncheckedChildren)
return Qt::Unchecked;
else if (checkedChildren)
diff --git a/src/widgets/itemviews/qtreewidget.h b/src/widgets/itemviews/qtreewidget.h
index b2b477289d..8ebfdd1b2a 100644
--- a/src/widgets/itemviews/qtreewidget.h
+++ b/src/widgets/itemviews/qtreewidget.h
@@ -316,7 +316,7 @@ public:
QTreeWidgetItem *itemAbove(const QTreeWidgetItem *item) const;
QTreeWidgetItem *itemBelow(const QTreeWidgetItem *item) const;
- void setSelectionModel(QItemSelectionModel *selectionModel);
+ void setSelectionModel(QItemSelectionModel *selectionModel) Q_DECL_OVERRIDE;
public Q_SLOTS:
void scrollToItem(const QTreeWidgetItem *item,
@@ -338,7 +338,7 @@ Q_SIGNALS:
void itemSelectionChanged();
protected:
- bool event(QEvent *e);
+ bool event(QEvent *e) Q_DECL_OVERRIDE;
virtual QStringList mimeTypes() const;
virtual QMimeData *mimeData(const QList<QTreeWidgetItem*> items) const;
virtual bool dropMimeData(QTreeWidgetItem *parent, int index,
@@ -348,10 +348,10 @@ protected:
QModelIndex indexFromItem(QTreeWidgetItem *item, int column = 0) const;
QTreeWidgetItem *itemFromIndex(const QModelIndex &index) const;
- void dropEvent(QDropEvent *event);
+ void dropEvent(QDropEvent *event) Q_DECL_OVERRIDE;
private:
- void setModel(QAbstractItemModel *model);
+ void setModel(QAbstractItemModel *model) Q_DECL_OVERRIDE;
Q_DECLARE_PRIVATE(QTreeWidget)
Q_DISABLE_COPY(QTreeWidget)
diff --git a/src/widgets/itemviews/qtreewidget_p.h b/src/widgets/itemviews/qtreewidget_p.h
index ec1395b9fb..3f7997d49b 100644
--- a/src/widgets/itemviews/qtreewidget_p.h
+++ b/src/widgets/itemviews/qtreewidget_p.h
@@ -84,24 +84,24 @@ public:
void itemChanged(QTreeWidgetItem *item);
QModelIndex index(const QTreeWidgetItem *item, int column) const;
- QModelIndex index(int row, int column, const QModelIndex &parent) const;
- QModelIndex parent(const QModelIndex &child) const;
- int rowCount(const QModelIndex &parent) const;
- int columnCount(const QModelIndex &parent = QModelIndex()) const;
- bool hasChildren(const QModelIndex &parent) const;
+ QModelIndex index(int row, int column, const QModelIndex &parent) const Q_DECL_OVERRIDE;
+ QModelIndex parent(const QModelIndex &child) const Q_DECL_OVERRIDE;
+ int rowCount(const QModelIndex &parent) const Q_DECL_OVERRIDE;
+ int columnCount(const QModelIndex &parent = QModelIndex()) const Q_DECL_OVERRIDE;
+ bool hasChildren(const QModelIndex &parent) const Q_DECL_OVERRIDE;
- QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
- bool setData(const QModelIndex &index, const QVariant &value, int role);
+ QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const Q_DECL_OVERRIDE;
+ bool setData(const QModelIndex &index, const QVariant &value, int role) Q_DECL_OVERRIDE;
- QMap<int, QVariant> itemData(const QModelIndex &index) const;
+ QMap<int, QVariant> itemData(const QModelIndex &index) const Q_DECL_OVERRIDE;
- QVariant headerData(int section, Qt::Orientation orientation, int role) const;
+ QVariant headerData(int section, Qt::Orientation orientation, int role) const Q_DECL_OVERRIDE;
bool setHeaderData(int section, Qt::Orientation orientation, const QVariant &value,
- int role);
+ int role) Q_DECL_OVERRIDE;
- Qt::ItemFlags flags(const QModelIndex &index) const;
+ Qt::ItemFlags flags(const QModelIndex &index) const Q_DECL_OVERRIDE;
- void sort(int column, Qt::SortOrder order);
+ void sort(int column, Qt::SortOrder order) Q_DECL_OVERRIDE;
void ensureSorted(int column, Qt::SortOrder order,
int start, int end, const QModelIndex &parent);
static bool itemLessThan(const QPair<QTreeWidgetItem*,int> &left,
@@ -113,17 +113,17 @@ public:
const QList<QTreeWidgetItem*>::iterator &end,
Qt::SortOrder order, QTreeWidgetItem *item);
- bool insertRows(int row, int count, const QModelIndex &);
- bool insertColumns(int column, int count, const QModelIndex &);
+ bool insertRows(int row, int count, const QModelIndex &) Q_DECL_OVERRIDE;
+ bool insertColumns(int column, int count, const QModelIndex &) Q_DECL_OVERRIDE;
- bool removeRows(int row, int count, const QModelIndex &parent = QModelIndex());
+ bool removeRows(int row, int count, const QModelIndex &parent = QModelIndex()) Q_DECL_OVERRIDE;
// dnd
- QStringList mimeTypes() const;
- QMimeData *mimeData(const QModelIndexList &indexes) const;
+ QStringList mimeTypes() const Q_DECL_OVERRIDE;
+ QMimeData *mimeData(const QModelIndexList &indexes) const Q_DECL_OVERRIDE;
bool dropMimeData(const QMimeData *data, Qt::DropAction action,
- int row, int column, const QModelIndex &parent);
- Qt::DropActions supportedDropActions() const;
+ int row, int column, const QModelIndex &parent) Q_DECL_OVERRIDE;
+ Qt::DropActions supportedDropActions() const Q_DECL_OVERRIDE;
QMimeData *internalMimeData() const;
@@ -138,7 +138,7 @@ protected:
void beginRemoveItems(QTreeWidgetItem *parent, int row, int count);
void endRemoveItems();
void sortItems(QList<QTreeWidgetItem*> *items, int column, Qt::SortOrder order);
- void timerEvent(QTimerEvent *);
+ void timerEvent(QTimerEvent *) Q_DECL_OVERRIDE;
private:
QTreeWidgetItem *rootItem;
diff --git a/src/widgets/kernel/qaction.h b/src/widgets/kernel/qaction.h
index 15364b4785..4fc4b424f6 100644
--- a/src/widgets/kernel/qaction.h
+++ b/src/widgets/kernel/qaction.h
@@ -170,7 +170,7 @@ public:
#endif
protected:
- bool event(QEvent *);
+ bool event(QEvent *) Q_DECL_OVERRIDE;
QAction(QActionPrivate &dd, QObject *parent);
public Q_SLOTS:
diff --git a/src/widgets/kernel/qapplication.cpp b/src/widgets/kernel/qapplication.cpp
index b7d0869289..943abd1f1a 100644
--- a/src/widgets/kernel/qapplication.cpp
+++ b/src/widgets/kernel/qapplication.cpp
@@ -64,6 +64,7 @@
#include <QtWidgets/qgraphicsproxywidget.h>
#include <QtGui/qstylehints.h>
#include <QtGui/qinputmethod.h>
+#include <QtGui/private/qwindow_p.h>
#include <qpa/qplatformtheme.h>
#ifndef QT_NO_WHATSTHIS
#include <QtWidgets/QWhatsThis>
@@ -636,7 +637,7 @@ void QApplicationPrivate::initialize()
qRegisterGuiStateMachine();
#endif
- if (qgetenv("QT_USE_NATIVE_WINDOWS").toInt() > 0)
+ if (qEnvironmentVariableIntValue("QT_USE_NATIVE_WINDOWS") > 0)
QCoreApplication::setAttribute(Qt::AA_NativeWindows);
#ifdef Q_OS_WINCE
@@ -658,8 +659,12 @@ void QApplicationPrivate::initialize()
initializeMultitouch();
if (QApplication::desktopSettingsAware())
- if (const QPlatformTheme *theme = QGuiApplicationPrivate::platformTheme())
+ if (const QPlatformTheme *theme = QGuiApplicationPrivate::platformTheme()) {
QApplicationPrivate::enabledAnimations = theme->themeHint(QPlatformTheme::UiEffects).toInt();
+#ifndef QT_NO_WHEELEVENT
+ QApplicationPrivate::wheel_scroll_lines = theme->themeHint(QPlatformTheme::WheelScrollLines).toInt();
+#endif
+ }
is_app_running = true; // no longer starting up
}
@@ -2485,7 +2490,7 @@ bool QApplicationPrivate::isWindowBlocked(QWindow *window, QWindow **blockingWin
}
QWidget *popupWidget = QApplication::activePopupWidget();
QWindow *popupWindow = popupWidget ? popupWidget->windowHandle() : 0;
- if (popupWindow == window) {
+ if (popupWindow == window || (!popupWindow && QWindowPrivate::get(window)->isPopup())) {
*blockingWindow = 0;
return false;
}
@@ -3122,39 +3127,15 @@ bool QApplication::notify(QObject *receiver, QEvent *e)
}
switch (e->type()) {
- case QEvent::KeyPress:
- {
- bool isWidget = receiver->isWidgetType();
- bool isWindow = receiver->isWindowType();
- bool isGraphicsWidget = false;
-#ifndef QT_NO_GRAPHICSVIEW
- isGraphicsWidget = !isWidget && !isWindow && qobject_cast<QGraphicsWidget *>(receiver);
-#endif
- if (!isWidget && !isGraphicsWidget && !isWindow) {
- return d->notify_helper(receiver, e);
- }
-
- QKeyEvent* key = static_cast<QKeyEvent*>(e);
-#ifndef QT_NO_SHORTCUT
- // Try looking for a Shortcut before sending key events
- QObject *shortcutReceiver = receiver;
- if (!isWidget && isWindow) {
- QWindow *w = qobject_cast<QWindow *>(receiver);
- QObject *focus = w ? w->focusObject() : 0;
- if (focus)
- shortcutReceiver = focus;
- }
- if (qApp->d_func()->shortcutMap.tryShortcutEvent(shortcutReceiver, key))
- return true;
-#endif
- qt_in_tab_key_event = (key->key() == Qt::Key_Backtab
- || key->key() == Qt::Key_Tab
- || key->key() == Qt::Key_Left
- || key->key() == Qt::Key_Up
- || key->key() == Qt::Key_Right
- || key->key() == Qt::Key_Down);
-
- }
+ case QEvent::KeyPress: {
+ int key = static_cast<QKeyEvent*>(e)->key();
+ qt_in_tab_key_event = (key == Qt::Key_Backtab
+ || key == Qt::Key_Tab
+ || key == Qt::Key_Left
+ || key == Qt::Key_Up
+ || key == Qt::Key_Right
+ || key == Qt::Key_Down);
+ }
default:
break;
}
diff --git a/src/widgets/kernel/qapplication.h b/src/widgets/kernel/qapplication.h
index ceba0c96c4..6762889b73 100644
--- a/src/widgets/kernel/qapplication.h
+++ b/src/widgets/kernel/qapplication.h
@@ -42,9 +42,6 @@
#ifdef QT_INCLUDE_COMPAT
# include <QtWidgets/qdesktopwidget.h>
#endif
-#ifdef Q_NO_USING_KEYWORD
-#include <QtGui/qpalette.h>
-#endif
#include <QtGui/qguiapplication.h>
QT_BEGIN_NAMESPACE
@@ -104,11 +101,7 @@ public:
QT_DEPRECATED static inline void setGraphicsSystem(const QString &) {}
#endif
-#if defined(Q_NO_USING_KEYWORD) && !defined(Q_QDOC)
- static QPalette palette() { return QGuiApplication::palette(); }
-#else
using QGuiApplication::palette;
-#endif
static QPalette palette(const QWidget *);
static QPalette palette(const char *className);
static void setPalette(const QPalette &, const char* className = 0);
@@ -178,7 +171,7 @@ public:
#endif
static int exec();
- bool notify(QObject *, QEvent *);
+ bool notify(QObject *, QEvent *) Q_DECL_OVERRIDE;
#ifdef QT_KEYPAD_NAVIGATION
static Q_DECL_DEPRECATED void setKeypadNavigationEnabled(bool);
@@ -206,8 +199,8 @@ public Q_SLOTS:
static void aboutQt();
protected:
- bool event(QEvent *);
- bool compressEvent(QEvent *, QObject *receiver, QPostEventList *);
+ bool event(QEvent *) Q_DECL_OVERRIDE;
+ bool compressEvent(QEvent *, QObject *receiver, QPostEventList *) Q_DECL_OVERRIDE;
private:
Q_DISABLE_COPY(QApplication)
diff --git a/src/widgets/kernel/qapplication_p.h b/src/widgets/kernel/qapplication_p.h
index 7d97235c66..10f81a403a 100644
--- a/src/widgets/kernel/qapplication_p.h
+++ b/src/widgets/kernel/qapplication_p.h
@@ -108,10 +108,10 @@ public:
QApplicationPrivate(int &argc, char **argv, int flags);
~QApplicationPrivate();
- virtual void notifyLayoutDirectionChange();
- virtual void notifyActiveWindowChange(QWindow *);
+ virtual void notifyLayoutDirectionChange() Q_DECL_OVERRIDE;
+ virtual void notifyActiveWindowChange(QWindow *) Q_DECL_OVERRIDE;
- virtual bool shouldQuit();
+ virtual bool shouldQuit() Q_DECL_OVERRIDE;
bool tryCloseAllWindows() Q_DECL_OVERRIDE;
#if defined(Q_WS_X11)
@@ -127,7 +127,7 @@ public:
static QString desktopStyleKey();
- void createEventDispatcher();
+ void createEventDispatcher() Q_DECL_OVERRIDE;
static void dispatchEnterLeave(QWidget *enter, QWidget *leave, const QPointF &globalPosF);
void notifyWindowIconChanged() Q_DECL_OVERRIDE;
@@ -188,9 +188,9 @@ public:
static QPalette *set_pal;
protected:
- void notifyThemeChanged();
+ void notifyThemeChanged() Q_DECL_OVERRIDE;
#ifndef QT_NO_DRAGANDDROP
- void notifyDragStarted(const QDrag *);
+ void notifyDragStarted(const QDrag *) Q_DECL_OVERRIDE;
#endif // QT_NO_DRAGANDDROP
public:
@@ -289,7 +289,7 @@ public:
ulong timestamp);
static void translateTouchCancel(QTouchDevice *device, ulong timestamp);
- QPixmap applyQIconStyleHelper(QIcon::Mode mode, const QPixmap& base) const;
+ QPixmap applyQIconStyleHelper(QIcon::Mode mode, const QPixmap& base) const Q_DECL_OVERRIDE;
private:
static QApplicationPrivate *self;
static bool tryCloseAllWidgetWindows(QWindowList *processedWindows);
diff --git a/src/widgets/kernel/qboxlayout.h b/src/widgets/kernel/qboxlayout.h
index c2da23f34c..9c83248773 100644
--- a/src/widgets/kernel/qboxlayout.h
+++ b/src/widgets/kernel/qboxlayout.h
@@ -67,7 +67,7 @@ public:
void addWidget(QWidget *, int stretch = 0, Qt::Alignment alignment = 0);
void addLayout(QLayout *layout, int stretch = 0);
void addStrut(int);
- void addItem(QLayoutItem *);
+ void addItem(QLayoutItem *) Q_DECL_OVERRIDE;
void insertSpacing(int index, int size);
void insertStretch(int index, int stretch = 0);
@@ -84,20 +84,20 @@ public:
void setStretch(int index, int stretch);
int stretch(int index) const;
- QSize sizeHint() const;
- QSize minimumSize() const;
- QSize maximumSize() const;
+ QSize sizeHint() const Q_DECL_OVERRIDE;
+ QSize minimumSize() const Q_DECL_OVERRIDE;
+ QSize maximumSize() const Q_DECL_OVERRIDE;
- bool hasHeightForWidth() const;
- int heightForWidth(int) const;
- int minimumHeightForWidth(int) const;
+ bool hasHeightForWidth() const Q_DECL_OVERRIDE;
+ int heightForWidth(int) const Q_DECL_OVERRIDE;
+ int minimumHeightForWidth(int) const Q_DECL_OVERRIDE;
- Qt::Orientations expandingDirections() const;
- void invalidate();
- QLayoutItem *itemAt(int) const;
- QLayoutItem *takeAt(int);
- int count() const;
- void setGeometry(const QRect&);
+ Qt::Orientations expandingDirections() const Q_DECL_OVERRIDE;
+ void invalidate() Q_DECL_OVERRIDE;
+ QLayoutItem *itemAt(int) const Q_DECL_OVERRIDE;
+ QLayoutItem *takeAt(int) Q_DECL_OVERRIDE;
+ int count() const Q_DECL_OVERRIDE;
+ void setGeometry(const QRect&) Q_DECL_OVERRIDE;
private:
Q_DISABLE_COPY(QBoxLayout)
diff --git a/src/widgets/kernel/qdesktopwidget.h b/src/widgets/kernel/qdesktopwidget.h
index e8ce49503b..322510aff4 100644
--- a/src/widgets/kernel/qdesktopwidget.h
+++ b/src/widgets/kernel/qdesktopwidget.h
@@ -79,7 +79,7 @@ Q_SIGNALS:
void screenCountChanged(int);
protected:
- void resizeEvent(QResizeEvent *e);
+ void resizeEvent(QResizeEvent *e) Q_DECL_OVERRIDE;
private:
Q_DISABLE_COPY(QDesktopWidget)
diff --git a/src/widgets/kernel/qdesktopwidget_p.h b/src/widgets/kernel/qdesktopwidget_p.h
index 62f4d8ed6f..0f3083cbb5 100644
--- a/src/widgets/kernel/qdesktopwidget_p.h
+++ b/src/widgets/kernel/qdesktopwidget_p.h
@@ -48,6 +48,8 @@
#include "QDesktopWidget"
#include "private/qwidget_p.h"
+#include <QtCore/qalgorithms.h>
+
QT_BEGIN_NAMESPACE
class QDesktopScreenWidget : public QWidget {
@@ -65,7 +67,7 @@ class QDesktopWidgetPrivate : public QWidgetPrivate {
Q_DECLARE_PUBLIC(QDesktopWidget)
public:
- ~QDesktopWidgetPrivate() {foreach(QDesktopScreenWidget *s, screens) delete s; }
+ ~QDesktopWidgetPrivate() { qDeleteAll(screens); }
void _q_updateScreens();
void _q_availableGeometryChanged();
diff --git a/src/widgets/kernel/qformlayout.h b/src/widgets/kernel/qformlayout.h
index 06100f858f..e06f1f7375 100644
--- a/src/widgets/kernel/qformlayout.h
+++ b/src/widgets/kernel/qformlayout.h
@@ -118,19 +118,19 @@ public:
QWidget *labelForField(QLayout *field) const;
// reimplemented from QLayout
- void addItem(QLayoutItem *item);
- QLayoutItem *itemAt(int index) const;
- QLayoutItem *takeAt(int index);
-
- void setGeometry(const QRect &rect);
- QSize minimumSize() const;
- QSize sizeHint() const;
- void invalidate();
-
- bool hasHeightForWidth() const;
- int heightForWidth(int width) const;
- Qt::Orientations expandingDirections() const;
- int count() const;
+ void addItem(QLayoutItem *item) Q_DECL_OVERRIDE;
+ QLayoutItem *itemAt(int index) const Q_DECL_OVERRIDE;
+ QLayoutItem *takeAt(int index) Q_DECL_OVERRIDE;
+
+ void setGeometry(const QRect &rect) Q_DECL_OVERRIDE;
+ QSize minimumSize() const Q_DECL_OVERRIDE;
+ QSize sizeHint() const Q_DECL_OVERRIDE;
+ void invalidate() Q_DECL_OVERRIDE;
+
+ bool hasHeightForWidth() const Q_DECL_OVERRIDE;
+ int heightForWidth(int width) const Q_DECL_OVERRIDE;
+ Qt::Orientations expandingDirections() const Q_DECL_OVERRIDE;
+ int count() const Q_DECL_OVERRIDE;
int rowCount() const;
diff --git a/src/widgets/kernel/qgesture.cpp b/src/widgets/kernel/qgesture.cpp
index 2b8f04ccdf..902f1fbcb1 100644
--- a/src/widgets/kernel/qgesture.cpp
+++ b/src/widgets/kernel/qgesture.cpp
@@ -36,6 +36,7 @@
#include "private/qstandardgestures_p.h"
#include "qgraphicsview.h"
+#include <QtCore/QDebug>
#ifndef QT_NO_GESTURES
QT_BEGIN_NAMESPACE
@@ -1086,46 +1087,79 @@ QPointF QGestureEvent::mapToGraphicsScene(const QPointF &gesturePoint) const
}
#endif //QT_NO_GRAPHICSVIEW
-#ifdef Q_NO_USING_KEYWORD
-/*!
- \fn void QGestureEvent::setAccepted(bool accepted)
-
- Sets or clears the event's internal flag that determines whether it should
- be delivered to other objects.
-
- Calling this function with a value of true for \a accepted indicates that the
- caller has accepted the event and that it should not be propagated further.
- Calling this function with a value of false indicates that the caller has
- ignored the event and that it should be delivered to other objects.
-
- For convenience, the accept flag can also be set with accept(), and cleared
- with ignore().
-
- \sa QEvent::accepted
-*/
-/*!
- \fn bool QGestureEvent::isAccepted() const
+#ifndef QT_NO_DEBUG_STREAM
- Returns \c true is the event has been accepted; otherwise returns \c false.
-
- \sa QEvent::accepted
-*/
-/*!
- \fn void QGestureEvent::accept()
-
- Accepts the event, the equivalent of calling setAccepted(true).
-
- \sa QEvent::accept()
-*/
-/*!
- \fn void QGestureEvent::ignore()
+static void formatGestureHeader(QDebug d, const char *className, const QGesture *gesture)
+{
+ d << className << "(state=" << gesture->state();
+ if (gesture->hasHotSpot())
+ d << ",hotSpot=" << gesture->hotSpot();
+}
- Ignores the event, the equivalent of calling setAccepted(false).
+Q_WIDGETS_EXPORT QDebug operator<<(QDebug d, const QGesture *gesture)
+{
+ QDebugStateSaver saver(d);
+ d.nospace();
+ switch (gesture->gestureType()) {
+ case Qt::TapGesture:
+ formatGestureHeader(d, "QTapGesture", gesture);
+ d << ",position=" << static_cast<const QTapGesture*>(gesture)->position() << ')';
+ break;
+ case Qt::TapAndHoldGesture: {
+ const QTapAndHoldGesture *tap = static_cast<const QTapAndHoldGesture*>(gesture);
+ formatGestureHeader(d, "QTapAndHoldGesture", tap);
+ d << ",position=" << tap->position() << ",timeout=" << tap->timeout() << ')';
+ }
+ break;
+ case Qt::PanGesture: {
+ const QPanGesture *pan = static_cast<const QPanGesture*>(gesture);
+ formatGestureHeader(d, "QPanGesture", pan);
+ d << ",lastOffset=" << pan->lastOffset() << ",offset=" << pan->offset()
+ << ",acceleration=" << pan->acceleration()
+ << ",delta=" << pan->delta() << ')';
+ }
+ break;
+ case Qt::PinchGesture: {
+ const QPinchGesture *pinch = static_cast<const QPinchGesture*>(gesture);
+ formatGestureHeader(d, "QPinchGesture", pinch);
+ d << ",totalChangeFlags=" << pinch->totalChangeFlags()
+ << ",changeFlags=" << pinch->changeFlags()
+ << ",startCenterPoint=" << pinch->startCenterPoint()
+ << ",lastCenterPoint=" << pinch->lastCenterPoint()
+ << ",centerPoint=" << pinch->centerPoint()
+ << ",totalScaleFactor=" << pinch->totalScaleFactor()
+ << ",lastScaleFactor=" << pinch->lastScaleFactor()
+ << ",scaleFactor=" << pinch->scaleFactor()
+ << ",totalRotationAngle=" << pinch->totalRotationAngle()
+ << ",lastRotationAngle=" << pinch->lastRotationAngle()
+ << ",rotationAngle=" << pinch->rotationAngle() << ')';
+ }
+ break;
+ case Qt::SwipeGesture: {
+ const QSwipeGesture *swipe = static_cast<const QSwipeGesture*>(gesture);
+ formatGestureHeader(d, "QSwipeGesture", swipe);
+ d << ",horizontalDirection=" << swipe->horizontalDirection()
+ << ",verticalDirection=" << swipe->verticalDirection()
+ << ",swipeAngle=" << swipe->swipeAngle() << ')';
+ }
+ break;
+ default:
+ formatGestureHeader(d, "Custom gesture", gesture);
+ d << ",type=" << gesture->gestureType() << ')';
+ break;
+ }
+ return d;
+}
- \sa QEvent::ignore()
-*/
-#endif
+Q_WIDGETS_EXPORT QDebug operator<<(QDebug d, const QGestureEvent *gestureEvent)
+{
+ QDebugStateSaver saver(d);
+ d.nospace();
+ d << "QGestureEvent(" << gestureEvent->gestures() << ')';
+ return d;
+}
+#endif // !QT_NO_DEBUG_STREAM
QT_END_NAMESPACE
#include <moc_qgesture.cpp>
diff --git a/src/widgets/kernel/qgesture.h b/src/widgets/kernel/qgesture.h
index 9e3ee64c87..a66132566b 100644
--- a/src/widgets/kernel/qgesture.h
+++ b/src/widgets/kernel/qgesture.h
@@ -275,18 +275,10 @@ public:
QList<QGesture *> activeGestures() const;
QList<QGesture *> canceledGestures() const;
-#ifdef Q_NO_USING_KEYWORD
- inline void setAccepted(bool accepted) { QEvent::setAccepted(accepted); }
- inline bool isAccepted() const { return QEvent::isAccepted(); }
-
- inline void accept() { QEvent::accept(); }
- inline void ignore() { QEvent::ignore(); }
-#else
using QEvent::setAccepted;
using QEvent::isAccepted;
using QEvent::accept;
using QEvent::ignore;
-#endif
void setAccepted(QGesture *, bool);
void accept(QGesture *);
@@ -315,6 +307,11 @@ private:
friend class QGestureManager;
};
+# ifndef QT_NO_DEBUG_STREAM
+Q_WIDGETS_EXPORT QDebug operator<<(QDebug, const QGesture *);
+Q_WIDGETS_EXPORT QDebug operator<<(QDebug, const QGestureEvent *);
+# endif
+
QT_END_NAMESPACE
Q_DECLARE_METATYPE(QGesture::GestureCancelPolicy)
diff --git a/src/widgets/kernel/qgesturemanager.cpp b/src/widgets/kernel/qgesturemanager.cpp
index f0aceaacf7..0dcb88fb39 100644
--- a/src/widgets/kernel/qgesturemanager.cpp
+++ b/src/widgets/kernel/qgesturemanager.cpp
@@ -51,18 +51,14 @@
#endif
#include "qdebug.h"
-
-// #define GESTURE_DEBUG
-#ifndef GESTURE_DEBUG
-# define DEBUG if (0) qDebug
-#else
-# define DEBUG qDebug
-#endif
+#include <QtCore/QLoggingCategory>
#ifndef QT_NO_GESTURES
QT_BEGIN_NAMESPACE
+Q_LOGGING_CATEGORY(lcGestureManager, "qt.widgets.gestures")
+
#if !defined(Q_OS_OSX)
static inline int panTouchPoints()
{
@@ -231,9 +227,8 @@ QGesture *QGestureManager::getState(QObject *object, QGestureRecognizer *recogni
// if the recognizer didn't fill in the gesture type, then this
// is a custom gesture with autogenerated id and we fill it.
state->d_func()->gestureType = type;
-#if defined(GESTURE_DEBUG)
- state->setObjectName(QString::number((int)type));
-#endif
+ if (lcGestureManager().isDebugEnabled())
+ state->setObjectName(QString::number((int)type));
}
m_objectGestures[QGestureManager::ObjectGesture(object, type)].append(state);
m_gestureToRecognizer[state] = recognizer;
@@ -275,26 +270,26 @@ bool QGestureManager::filterEventThroughContexts(const QMultiMap<QObject *,
QGestureRecognizer::Result recognizerState = recognizerResult & QGestureRecognizer::ResultState_Mask;
QGestureRecognizer::Result resultHint = recognizerResult & QGestureRecognizer::ResultHint_Mask;
if (recognizerState == QGestureRecognizer::TriggerGesture) {
- DEBUG() << "QGestureManager:Recognizer: gesture triggered: " << state;
+ qCDebug(lcGestureManager) << "QGestureManager:Recognizer: gesture triggered: " << state << event;
triggeredGestures << state;
} else if (recognizerState == QGestureRecognizer::FinishGesture) {
- DEBUG() << "QGestureManager:Recognizer: gesture finished: " << state;
+ qCDebug(lcGestureManager) << "QGestureManager:Recognizer: gesture finished: " << state << event;
finishedGestures << state;
} else if (recognizerState == QGestureRecognizer::MayBeGesture) {
- DEBUG() << "QGestureManager:Recognizer: maybe gesture: " << state;
+ qCDebug(lcGestureManager) << "QGestureManager:Recognizer: maybe gesture: " << state << event;
newMaybeGestures << state;
} else if (recognizerState == QGestureRecognizer::CancelGesture) {
- DEBUG() << "QGestureManager:Recognizer: not gesture: " << state;
+ qCDebug(lcGestureManager) << "QGestureManager:Recognizer: not gesture: " << state << event;
notGestures << state;
} else if (recognizerState == QGestureRecognizer::Ignore) {
- DEBUG() << "QGestureManager:Recognizer: ignored the event: " << state;
+ qCDebug(lcGestureManager) << "QGestureManager:Recognizer: ignored the event: " << state << event;
} else {
- DEBUG() << "QGestureManager:Recognizer: hm, lets assume the recognizer"
- << "ignored the event: " << state;
+ qCDebug(lcGestureManager) << "QGestureManager:Recognizer: hm, lets assume the recognizer"
+ << "ignored the event: " << state << event;
}
if (resultHint & QGestureRecognizer::ConsumeEventHint) {
- DEBUG() << "QGestureManager: we were asked to consume the event: "
- << state;
+ qCDebug(lcGestureManager) << "QGestureManager: we were asked to consume the event: "
+ << state << event;
consumeEventHint = true;
}
}
@@ -363,7 +358,7 @@ bool QGestureManager::filterEventThroughContexts(const QMultiMap<QObject *,
if (!m_activeGestures.isEmpty() || !m_maybeGestures.isEmpty() ||
!startedGestures.isEmpty() || !triggeredGestures.isEmpty() ||
!finishedGestures.isEmpty() || !canceledGestures.isEmpty()) {
- DEBUG() << "QGestureManager::filterEventThroughContexts:"
+ qCDebug(lcGestureManager) << "QGestureManager::filterEventThroughContexts:"
<< "\n\tactiveGestures:" << m_activeGestures
<< "\n\tmaybeGestures:" << m_maybeGestures
<< "\n\tstarted:" << startedGestures
@@ -381,7 +376,7 @@ bool QGestureManager::filterEventThroughContexts(const QMultiMap<QObject *,
if (undeliveredGestures.contains(g))
continue;
if (g->gestureCancelPolicy() == QGesture::CancelAllInContext) {
- DEBUG() << "lets try to cancel some";
+ qCDebug(lcGestureManager) << "lets try to cancel some";
// find gestures in context in Qt::GestureStarted or Qt::GestureUpdated state and cancel them
cancelGesturesForChildren(g);
}
@@ -421,7 +416,7 @@ void QGestureManager::cancelGesturesForChildren(QGesture *original)
QWidget *widget = m_gestureTargets.value(*iter);
// note that we don't touch the gestures for our originatingWidget
if (widget != originatingWidget && originatingWidget->isAncestorOf(widget)) {
- DEBUG() << " found a gesture to cancel" << (*iter);
+ qCDebug(lcGestureManager) << " found a gesture to cancel" << (*iter);
(*iter)->d_func()->state = Qt::GestureCanceled;
cancelledGestures << *iter;
iter = m_activeGestures.erase(iter);
@@ -648,7 +643,7 @@ void QGestureManager::deliverEvents(const QSet<QGesture *> &gestures,
normalStartedGestures[target].append(gesture);
}
} else {
- DEBUG() << "QGestureManager::deliverEvent: could not find the target for gesture"
+ qCDebug(lcGestureManager) << "QGestureManager::deliverEvent: could not find the target for gesture"
<< gesture->gestureType();
qWarning("QGestureManager::deliverEvent: could not find the target for gesture");
undeliveredGestures->insert(gesture);
@@ -656,7 +651,7 @@ void QGestureManager::deliverEvents(const QSet<QGesture *> &gestures,
}
getGestureTargets(startedGestures, &conflictedGestures, &normalStartedGestures);
- DEBUG() << "QGestureManager::deliverEvents:"
+ qCDebug(lcGestureManager) << "QGestureManager::deliverEvents:"
<< "\nstarted: " << startedGestures
<< "\nconflicted: " << conflictedGestures
<< "\nnormal: " << normalStartedGestures
@@ -667,7 +662,7 @@ void QGestureManager::deliverEvents(const QSet<QGesture *> &gestures,
e = conflictedGestures.constEnd(); it != e; ++it) {
QWidget *receiver = it.key();
QList<QGesture *> gestures = it.value();
- DEBUG() << "QGestureManager::deliverEvents: sending GestureOverride to"
+ qCDebug(lcGestureManager) << "QGestureManager::deliverEvents: sending GestureOverride to"
<< receiver
<< "gestures:" << gestures;
QGestureEvent event(gestures);
@@ -683,13 +678,13 @@ void QGestureManager::deliverEvents(const QSet<QGesture *> &gestures,
if (eventAccepted || event.isAccepted(gesture)) {
QWidget *w = event.m_targetWidgets.value(gesture->gestureType(), 0);
Q_ASSERT(w);
- DEBUG() << "override event: gesture was accepted:" << gesture << w;
+ qCDebug(lcGestureManager) << "override event: gesture was accepted:" << gesture << w;
QList<QGesture *> &gestures = normalStartedGestures[w];
gestures.append(gesture);
// override the target
m_gestureTargets[gesture] = w;
} else {
- DEBUG() << "override event: gesture wasn't accepted. putting back:" << gesture;
+ qCDebug(lcGestureManager) << "override event: gesture wasn't accepted. putting back:" << gesture;
QList<QGesture *> &gestures = normalStartedGestures[receiver];
gestures.append(gesture);
}
@@ -700,7 +695,7 @@ void QGestureManager::deliverEvents(const QSet<QGesture *> &gestures,
for (GesturesPerWidget::const_iterator it = normalStartedGestures.constBegin(),
e = normalStartedGestures.constEnd(); it != e; ++it) {
if (!it.value().isEmpty()) {
- DEBUG() << "QGestureManager::deliverEvents: sending to" << it.key()
+ qCDebug(lcGestureManager) << "QGestureManager::deliverEvents: sending to" << it.key()
<< "gestures:" << it.value();
QGestureEvent event(it.value());
QApplication::sendEvent(it.key(), &event);
@@ -710,7 +705,7 @@ void QGestureManager::deliverEvents(const QSet<QGesture *> &gestures,
(eventAccepted || event.isAccepted(gesture))) {
QWidget *w = event.m_targetWidgets.value(gesture->gestureType(), 0);
Q_ASSERT(w);
- DEBUG() << "started gesture was delivered and accepted by" << w;
+ qCDebug(lcGestureManager) << "started gesture was delivered and accepted by" << w;
m_gestureTargets[gesture] = w;
}
}
diff --git a/src/widgets/kernel/qgridlayout.h b/src/widgets/kernel/qgridlayout.h
index 95d8a0a445..89ece8f080 100644
--- a/src/widgets/kernel/qgridlayout.h
+++ b/src/widgets/kernel/qgridlayout.h
@@ -59,9 +59,9 @@ public:
~QGridLayout();
- QSize sizeHint() const;
- QSize minimumSize() const;
- QSize maximumSize() const;
+ QSize sizeHint() const Q_DECL_OVERRIDE;
+ QSize minimumSize() const Q_DECL_OVERRIDE;
+ QSize maximumSize() const Q_DECL_OVERRIDE;
void setHorizontalSpacing(int spacing);
int horizontalSpacing() const;
@@ -85,12 +85,12 @@ public:
QRect cellRect(int row, int column) const;
- bool hasHeightForWidth() const;
- int heightForWidth(int) const;
- int minimumHeightForWidth(int) const;
+ bool hasHeightForWidth() const Q_DECL_OVERRIDE;
+ int heightForWidth(int) const Q_DECL_OVERRIDE;
+ int minimumHeightForWidth(int) const Q_DECL_OVERRIDE;
- Qt::Orientations expandingDirections() const;
- void invalidate();
+ Qt::Orientations expandingDirections() const Q_DECL_OVERRIDE;
+ void invalidate() Q_DECL_OVERRIDE;
inline void addWidget(QWidget *w) { QLayout::addWidget(w); }
void addWidget(QWidget *, int row, int column, Qt::Alignment = 0);
@@ -101,11 +101,11 @@ public:
void setOriginCorner(Qt::Corner);
Qt::Corner originCorner() const;
- QLayoutItem *itemAt(int index) const;
+ QLayoutItem *itemAt(int index) const Q_DECL_OVERRIDE;
QLayoutItem *itemAtPosition(int row, int column) const;
- QLayoutItem *takeAt(int index);
- int count() const;
- void setGeometry(const QRect&);
+ QLayoutItem *takeAt(int index) Q_DECL_OVERRIDE;
+ int count() const Q_DECL_OVERRIDE;
+ void setGeometry(const QRect&) Q_DECL_OVERRIDE;
void addItem(QLayoutItem *item, int row, int column, int rowSpan = 1, int columnSpan = 1, Qt::Alignment = 0);
@@ -113,7 +113,7 @@ public:
void getItemPosition(int idx, int *row, int *column, int *rowSpan, int *columnSpan) const;
protected:
- void addItem(QLayoutItem *);
+ void addItem(QLayoutItem *) Q_DECL_OVERRIDE;
private:
Q_DISABLE_COPY(QGridLayout)
diff --git a/src/widgets/kernel/qlayout.cpp b/src/widgets/kernel/qlayout.cpp
index f124f1ed8e..d2bc8f8347 100644
--- a/src/widgets/kernel/qlayout.cpp
+++ b/src/widgets/kernel/qlayout.cpp
@@ -268,14 +268,6 @@ bool QLayout::setAlignment(QLayout *l, Qt::Alignment alignment)
}
/*!
- \fn void QLayout::setAlignment(Qt::Alignment alignment)
-
- Sets the alignment of this item to \a alignment.
-
- \sa QLayoutItem::setAlignment()
-*/
-
-/*!
\property QLayout::margin
\brief the width of the outside border of the layout
\obsolete
diff --git a/src/widgets/kernel/qlayout.h b/src/widgets/kernel/qlayout.h
index 38568e434c..8bcbb700f4 100644
--- a/src/widgets/kernel/qlayout.h
+++ b/src/widgets/kernel/qlayout.h
@@ -88,11 +88,7 @@ public:
bool setAlignment(QWidget *w, Qt::Alignment alignment);
bool setAlignment(QLayout *l, Qt::Alignment alignment);
-#ifdef Q_NO_USING_KEYWORD
- inline void setAlignment(Qt::Alignment alignment) { QLayoutItem::setAlignment(alignment); }
-#else
using QLayoutItem::setAlignment;
-#endif
void setSizeConstraint(SizeConstraint);
SizeConstraint sizeConstraint() const;
@@ -101,8 +97,8 @@ public:
QWidget *parentWidget() const;
- void invalidate();
- QRect geometry() const;
+ void invalidate() Q_DECL_OVERRIDE;
+ QRect geometry() const Q_DECL_OVERRIDE;
bool activate();
void update();
@@ -112,16 +108,16 @@ public:
void removeWidget(QWidget *w);
void removeItem(QLayoutItem *);
- Qt::Orientations expandingDirections() const;
- QSize minimumSize() const;
- QSize maximumSize() const;
- virtual void setGeometry(const QRect&);
+ Qt::Orientations expandingDirections() const Q_DECL_OVERRIDE;
+ QSize minimumSize() const Q_DECL_OVERRIDE;
+ QSize maximumSize() const Q_DECL_OVERRIDE;
+ virtual void setGeometry(const QRect&) Q_DECL_OVERRIDE;
virtual QLayoutItem *itemAt(int index) const = 0;
virtual QLayoutItem *takeAt(int index) = 0;
virtual int indexOf(QWidget *) const;
virtual int count() const = 0;
- bool isEmpty() const;
- QSizePolicy::ControlTypes controlTypes() const;
+ bool isEmpty() const Q_DECL_OVERRIDE;
+ QSizePolicy::ControlTypes controlTypes() const Q_DECL_OVERRIDE;
// ### Qt 6 make this function virtual
QLayoutItem *replaceWidget(QWidget *from, QWidget *to, Qt::FindChildOptions options = Qt::FindChildrenRecursively);
@@ -130,7 +126,7 @@ public:
QSize totalMinimumSize() const;
QSize totalMaximumSize() const;
QSize totalSizeHint() const;
- QLayout *layout();
+ QLayout *layout() Q_DECL_OVERRIDE;
void setEnabled(bool);
bool isEnabled() const;
@@ -140,7 +136,7 @@ public:
protected:
void widgetEvent(QEvent *);
- void childEvent(QChildEvent *e);
+ void childEvent(QChildEvent *e) Q_DECL_OVERRIDE;
void addChildLayout(QLayout *l);
void addChildWidget(QWidget *w);
bool adoptLayout(QLayout *layout);
diff --git a/src/widgets/kernel/qopenglwidget.cpp b/src/widgets/kernel/qopenglwidget.cpp
index db116b070c..63ef4d6cc6 100644
--- a/src/widgets/kernel/qopenglwidget.cpp
+++ b/src/widgets/kernel/qopenglwidget.cpp
@@ -420,10 +420,25 @@ QT_BEGIN_NAMESPACE
the intention is to have a semi-transparent window. In that case the
traditional approach of setting Qt::WA_TranslucentBackground is sufficient.
+ QOpenGLWidget supports multiple update behaviors, just like QOpenGLWindow. In
+ preserved mode the rendered content from the previous paintGL() call is
+ available in the next one, allowing incremental rendering. In non-preserved
+ mode the content is lost and paintGL() implementations are expected to redraw
+ everything in the view.
+
+ Before Qt 5.5 the default behavior of QOpenGLWidget was to preserve the
+ rendered contents between paintGL() calls. Since Qt 5.5 the default behavior
+ is non-preserved because this provides better performance and the majority of
+ applications have no need for the previous content. This also resembles the
+ semantics of an OpenGL-based QWindow and matches the default behavior of
+ QOpenGLWindow in that the color and ancillary buffers are invalidated for
+ each frame. To restore the preserved behavior, call setUpdateBehavior() with
+ \c PartialUpdate.
+
\e{OpenGL is a trademark of Silicon Graphics, Inc. in the United States and other
countries.}
- \sa QOpenGLFunctions, QOpenGLWindow, Qt::AA_ShareOpenGLContexts
+ \sa QOpenGLFunctions, QOpenGLWindow, Qt::AA_ShareOpenGLContexts, UpdateBehavior
*/
/*!
@@ -455,6 +470,30 @@ QT_BEGIN_NAMESPACE
due to resizing the widget.
*/
+/*!
+ \enum QOpenGLWidget::UpdateBehavior
+ \since 5.5
+
+ This enum describes the update semantics of QOpenGLWidget.
+
+ \value NoPartialUpdate QOpenGLWidget will discard the
+ contents of the color buffer and the ancillary buffers after the
+ QOpenGLWidget is rendered to screen. This is the same behavior that can be
+ expected by calling QOpenGLContext::swapBuffers with a default opengl
+ enabled QWindow as the argument. NoPartialUpdate can have some performance
+ benefits on certain hardware architectures common in the mobile and
+ embedded space when a framebuffer object is used as the rendering target.
+ The framebuffer object is invalidated between frames with
+ glDiscardFramebufferEXT if supported or a glClear. Please see the
+ documentation of EXT_discard_framebuffer for more information:
+ https://www.khronos.org/registry/gles/extensions/EXT/EXT_discard_framebuffer.txt
+
+ \value PartialUpdate The framebuffer objects color buffer and ancillary
+ buffers are not invalidated between frames.
+
+ \sa updateBehavior(), setUpdateBehavior()
+*/
+
class QOpenGLWidgetPaintDevicePrivate : public QOpenGLPaintDevicePrivate
{
public:
@@ -486,9 +525,11 @@ public:
surface(0),
initialized(false),
fakeHidden(false),
- paintDevice(0),
inBackingStorePaint(false),
- flushPending(false)
+ hasBeenComposed(false),
+ flushPending(false),
+ paintDevice(0),
+ updateBehavior(QOpenGLWidget::NoPartialUpdate)
{
requestedFormat = QSurfaceFormat::defaultFormat();
}
@@ -507,6 +548,8 @@ public:
void invokeUserPaint();
void render();
+ void invalidateFbo();
+
QImage grabFramebuffer() Q_DECL_OVERRIDE;
void beginBackingStorePainting() Q_DECL_OVERRIDE { inBackingStorePaint = true; }
void endBackingStorePainting() Q_DECL_OVERRIDE { inBackingStorePaint = false; }
@@ -522,10 +565,12 @@ public:
QOffscreenSurface *surface;
bool initialized;
bool fakeHidden;
- QOpenGLPaintDevice *paintDevice;
bool inBackingStorePaint;
- QSurfaceFormat requestedFormat;
+ bool hasBeenComposed;
bool flushPending;
+ QOpenGLPaintDevice *paintDevice;
+ QSurfaceFormat requestedFormat;
+ QOpenGLWidget::UpdateBehavior updateBehavior;
};
void QOpenGLWidgetPaintDevicePrivate::beginPaint()
@@ -648,6 +693,7 @@ void QOpenGLWidgetPrivate::beginCompose()
q->makeCurrent();
context->functions()->glFlush();
}
+ hasBeenComposed = true;
emit q->aboutToCompose();
}
@@ -743,9 +789,31 @@ void QOpenGLWidgetPrivate::render()
return;
q->makeCurrent();
+
+ if (updateBehavior == QOpenGLWidget::NoPartialUpdate && hasBeenComposed) {
+ invalidateFbo();
+ hasBeenComposed = false;
+ }
+
invokeUserPaint();
}
+void QOpenGLWidgetPrivate::invalidateFbo()
+{
+ QOpenGLExtensions *f = static_cast<QOpenGLExtensions *>(QOpenGLContext::currentContext()->functions());
+ if (f->hasOpenGLExtension(QOpenGLExtensions::DiscardFramebuffer)) {
+ const int gl_color_attachment0 = 0x8CE0; // GL_COLOR_ATTACHMENT0
+ const int gl_depth_attachment = 0x8D00; // GL_DEPTH_ATTACHMENT
+ const int gl_stencil_attachment = 0x8D20; // GL_STENCIL_ATTACHMENT
+ const GLenum attachments[] = {
+ gl_color_attachment0, gl_depth_attachment, gl_stencil_attachment
+ };
+ f->glDiscardFramebufferEXT(GL_FRAMEBUFFER, sizeof attachments / sizeof *attachments, attachments);
+ } else {
+ f->glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);
+ }
+}
+
extern Q_GUI_EXPORT QImage qt_gl_read_framebuffer(const QSize &size, bool alpha_format, bool include_alpha);
QImage QOpenGLWidgetPrivate::grabFramebuffer()
@@ -801,6 +869,26 @@ QOpenGLWidget::~QOpenGLWidget()
}
/*!
+ Sets this widget's update behavior to \a updateBehavior.
+ \since 5.5
+*/
+void QOpenGLWidget::setUpdateBehavior(UpdateBehavior updateBehavior)
+{
+ Q_D(QOpenGLWidget);
+ d->updateBehavior = updateBehavior;
+}
+
+/*!
+ \return the update behavior of the widget.
+ \since 5.5
+*/
+QOpenGLWidget::UpdateBehavior QOpenGLWidget::updateBehavior() const
+{
+ Q_D(const QOpenGLWidget);
+ return d->updateBehavior;
+}
+
+/*!
Sets the requested surface \a format.
When the format is not explicitly set via this function, the format returned by
diff --git a/src/widgets/kernel/qopenglwidget.h b/src/widgets/kernel/qopenglwidget.h
index 2439fe65ce..3a4c1780dd 100644
--- a/src/widgets/kernel/qopenglwidget.h
+++ b/src/widgets/kernel/qopenglwidget.h
@@ -52,9 +52,17 @@ class Q_WIDGETS_EXPORT QOpenGLWidget : public QWidget
Q_DECLARE_PRIVATE(QOpenGLWidget)
public:
+ enum UpdateBehavior {
+ NoPartialUpdate,
+ PartialUpdate
+ };
+
explicit QOpenGLWidget(QWidget* parent = 0, Qt::WindowFlags f = 0);
~QOpenGLWidget();
+ void setUpdateBehavior(UpdateBehavior updateBehavior);
+ UpdateBehavior updateBehavior() const;
+
void setFormat(const QSurfaceFormat &format);
QSurfaceFormat format() const;
diff --git a/src/widgets/kernel/qshortcut.h b/src/widgets/kernel/qshortcut.h
index 86db4bcdab..0edaab7175 100644
--- a/src/widgets/kernel/qshortcut.h
+++ b/src/widgets/kernel/qshortcut.h
@@ -84,7 +84,7 @@ Q_SIGNALS:
void activatedAmbiguously();
protected:
- bool event(QEvent *e);
+ bool event(QEvent *e) Q_DECL_OVERRIDE;
};
#endif // QT_NO_SHORTCUT
diff --git a/src/widgets/kernel/qsizepolicy.h b/src/widgets/kernel/qsizepolicy.h
index 41adf5c58a..5b236d6e44 100644
--- a/src/widgets/kernel/qsizepolicy.h
+++ b/src/widgets/kernel/qsizepolicy.h
@@ -45,6 +45,7 @@ class Q_WIDGETS_EXPORT QSizePolicy
{
Q_GADGET
Q_ENUMS(Policy)
+ Q_FLAGS(ControlTypes)
public:
enum PolicyFlag {
diff --git a/src/widgets/kernel/qstackedlayout.cpp b/src/widgets/kernel/qstackedlayout.cpp
index d9a7745686..94ac97e1f8 100644
--- a/src/widgets/kernel/qstackedlayout.cpp
+++ b/src/widgets/kernel/qstackedlayout.cpp
@@ -140,11 +140,6 @@ QLayoutItem* QStackedLayoutPrivate::replaceAt(int idx, QLayoutItem *newitem)
*/
/*!
- \fn QWidget *QStackedLayout::widget()
- \internal
-*/
-
-/*!
Constructs a QStackedLayout with no parent.
This QStackedLayout must be installed on a widget later on to
diff --git a/src/widgets/kernel/qstackedlayout.h b/src/widgets/kernel/qstackedlayout.h
index b715f02069..afa45afc68 100644
--- a/src/widgets/kernel/qstackedlayout.h
+++ b/src/widgets/kernel/qstackedlayout.h
@@ -66,26 +66,22 @@ public:
QWidget *currentWidget() const;
int currentIndex() const;
-#ifdef Q_NO_USING_KEYWORD
- inline QWidget *widget() { return QLayout::widget(); }
-#else
using QLayout::widget;
-#endif
QWidget *widget(int) const;
- int count() const;
+ int count() const Q_DECL_OVERRIDE;
StackingMode stackingMode() const;
void setStackingMode(StackingMode stackingMode);
// abstract virtual functions:
- void addItem(QLayoutItem *item);
- QSize sizeHint() const;
- QSize minimumSize() const;
- QLayoutItem *itemAt(int) const;
- QLayoutItem *takeAt(int);
- void setGeometry(const QRect &rect);
- bool hasHeightForWidth() const;
- int heightForWidth(int width) const;
+ void addItem(QLayoutItem *item) Q_DECL_OVERRIDE;
+ QSize sizeHint() const Q_DECL_OVERRIDE;
+ QSize minimumSize() const Q_DECL_OVERRIDE;
+ QLayoutItem *itemAt(int) const Q_DECL_OVERRIDE;
+ QLayoutItem *takeAt(int) Q_DECL_OVERRIDE;
+ void setGeometry(const QRect &rect) Q_DECL_OVERRIDE;
+ bool hasHeightForWidth() const Q_DECL_OVERRIDE;
+ int heightForWidth(int width) const Q_DECL_OVERRIDE;
Q_SIGNALS:
void widgetRemoved(int index);
diff --git a/src/widgets/kernel/qstandardgestures_p.h b/src/widgets/kernel/qstandardgestures_p.h
index 15ba31f26a..2f2aac45c1 100644
--- a/src/widgets/kernel/qstandardgestures_p.h
+++ b/src/widgets/kernel/qstandardgestures_p.h
@@ -57,9 +57,9 @@ class QPanGestureRecognizer : public QGestureRecognizer
public:
explicit QPanGestureRecognizer(int pointCount = 2) : m_pointCount(pointCount) {}
- QGesture *create(QObject *target);
- QGestureRecognizer::Result recognize(QGesture *state, QObject *watched, QEvent *event);
- void reset(QGesture *state);
+ QGesture *create(QObject *target) Q_DECL_OVERRIDE;
+ QGestureRecognizer::Result recognize(QGesture *state, QObject *watched, QEvent *event) Q_DECL_OVERRIDE;
+ void reset(QGesture *state) Q_DECL_OVERRIDE;
private:
const int m_pointCount;
@@ -70,9 +70,9 @@ class QPinchGestureRecognizer : public QGestureRecognizer
public:
QPinchGestureRecognizer();
- QGesture *create(QObject *target);
- QGestureRecognizer::Result recognize(QGesture *state, QObject *watched, QEvent *event);
- void reset(QGesture *state);
+ QGesture *create(QObject *target) Q_DECL_OVERRIDE;
+ QGestureRecognizer::Result recognize(QGesture *state, QObject *watched, QEvent *event) Q_DECL_OVERRIDE;
+ void reset(QGesture *state) Q_DECL_OVERRIDE;
};
class QSwipeGestureRecognizer : public QGestureRecognizer
@@ -80,9 +80,9 @@ class QSwipeGestureRecognizer : public QGestureRecognizer
public:
QSwipeGestureRecognizer();
- QGesture *create(QObject *target);
- QGestureRecognizer::Result recognize(QGesture *state, QObject *watched, QEvent *event);
- void reset(QGesture *state);
+ QGesture *create(QObject *target) Q_DECL_OVERRIDE;
+ QGestureRecognizer::Result recognize(QGesture *state, QObject *watched, QEvent *event) Q_DECL_OVERRIDE;
+ void reset(QGesture *state) Q_DECL_OVERRIDE;
};
class QTapGestureRecognizer : public QGestureRecognizer
@@ -90,9 +90,9 @@ class QTapGestureRecognizer : public QGestureRecognizer
public:
QTapGestureRecognizer();
- QGesture *create(QObject *target);
- QGestureRecognizer::Result recognize(QGesture *state, QObject *watched, QEvent *event);
- void reset(QGesture *state);
+ QGesture *create(QObject *target) Q_DECL_OVERRIDE;
+ QGestureRecognizer::Result recognize(QGesture *state, QObject *watched, QEvent *event) Q_DECL_OVERRIDE;
+ void reset(QGesture *state) Q_DECL_OVERRIDE;
};
class QTapAndHoldGestureRecognizer : public QGestureRecognizer
@@ -100,9 +100,9 @@ class QTapAndHoldGestureRecognizer : public QGestureRecognizer
public:
QTapAndHoldGestureRecognizer();
- QGesture *create(QObject *target);
- QGestureRecognizer::Result recognize(QGesture *state, QObject *watched, QEvent *event);
- void reset(QGesture *state);
+ QGesture *create(QObject *target) Q_DECL_OVERRIDE;
+ QGestureRecognizer::Result recognize(QGesture *state, QObject *watched, QEvent *event) Q_DECL_OVERRIDE;
+ void reset(QGesture *state) Q_DECL_OVERRIDE;
};
QT_END_NAMESPACE
diff --git a/src/widgets/kernel/qtooltip.cpp b/src/widgets/kernel/qtooltip.cpp
index 7fcc5d3bc6..bb095e2ee0 100644
--- a/src/widgets/kernel/qtooltip.cpp
+++ b/src/widgets/kernel/qtooltip.cpp
@@ -116,7 +116,7 @@ public:
~QTipLabel();
static QTipLabel *instance;
- bool eventFilter(QObject *, QEvent *);
+ bool eventFilter(QObject *, QEvent *) Q_DECL_OVERRIDE;
QBasicTimer hideTimer, expireTimer;
@@ -132,10 +132,10 @@ public:
static int getTipScreen(const QPoint &pos, QWidget *w);
protected:
- void timerEvent(QTimerEvent *e);
- void paintEvent(QPaintEvent *e);
- void mouseMoveEvent(QMouseEvent *e);
- void resizeEvent(QResizeEvent *e);
+ void timerEvent(QTimerEvent *e) Q_DECL_OVERRIDE;
+ void paintEvent(QPaintEvent *e) Q_DECL_OVERRIDE;
+ void mouseMoveEvent(QMouseEvent *e) Q_DECL_OVERRIDE;
+ void resizeEvent(QResizeEvent *e) Q_DECL_OVERRIDE;
#ifndef QT_NO_STYLE_STYLESHEET
public slots:
diff --git a/src/widgets/kernel/qwhatsthis.cpp b/src/widgets/kernel/qwhatsthis.cpp
index 632cb242dc..b4d18844a9 100644
--- a/src/widgets/kernel/qwhatsthis.cpp
+++ b/src/widgets/kernel/qwhatsthis.cpp
@@ -141,12 +141,12 @@ public:
static QWhatsThat *instance;
protected:
- void showEvent(QShowEvent *e);
- void mousePressEvent(QMouseEvent*);
- void mouseReleaseEvent(QMouseEvent*);
- void mouseMoveEvent(QMouseEvent*);
- void keyPressEvent(QKeyEvent*);
- void paintEvent(QPaintEvent*);
+ void showEvent(QShowEvent *e) Q_DECL_OVERRIDE;
+ void mousePressEvent(QMouseEvent*) Q_DECL_OVERRIDE;
+ void mouseReleaseEvent(QMouseEvent*) Q_DECL_OVERRIDE;
+ void mouseMoveEvent(QMouseEvent*) Q_DECL_OVERRIDE;
+ void keyPressEvent(QKeyEvent*) Q_DECL_OVERRIDE;
+ void paintEvent(QPaintEvent*) Q_DECL_OVERRIDE;
private:
QPointer<QWidget>widget;
@@ -361,7 +361,7 @@ class QWhatsThisPrivate : public QObject
QWhatsThisPrivate();
~QWhatsThisPrivate();
static QWhatsThisPrivate *instance;
- bool eventFilter(QObject *, QEvent *);
+ bool eventFilter(QObject *, QEvent *) Q_DECL_OVERRIDE;
QPointer<QAction> action;
static void say(QWidget *, const QString &, int x = 0, int y = 0);
static void notifyToplevels(QEvent *e);
diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp
index c362530264..7b7600fdc3 100644
--- a/src/widgets/kernel/qwidget.cpp
+++ b/src/widgets/kernel/qwidget.cpp
@@ -1283,10 +1283,8 @@ void QWidget::create(WId window, bool initializeWindow, bool destroyOldWindow)
}
- static int paintOnScreenEnv = -1;
- if (paintOnScreenEnv == -1)
- paintOnScreenEnv = qgetenv("QT_ONSCREEN_PAINT").toInt() > 0 ? 1 : 0;
- if (paintOnScreenEnv == 1)
+ static const bool paintOnScreenEnv = qEnvironmentVariableIntValue("QT_ONSCREEN_PAINT") > 0;
+ if (paintOnScreenEnv)
setAttribute(Qt::WA_PaintOnScreen);
if (QApplicationPrivate::testAttribute(Qt::AA_NativeWindows))
@@ -2112,7 +2110,7 @@ void QWidgetPrivate::subtractOpaqueSiblings(QRegion &sourceRegion, bool *hasDirt
bool alsoNonOpaque) const
{
Q_Q(const QWidget);
- static int disableSubtractOpaqueSiblings = qgetenv("QT_NO_SUBTRACTOPAQUESIBLINGS").toInt();
+ static int disableSubtractOpaqueSiblings = qEnvironmentVariableIntValue("QT_NO_SUBTRACTOPAQUESIBLINGS");
if (disableSubtractOpaqueSiblings || q->isWindow())
return;
@@ -10917,9 +10915,9 @@ void QWidget::setAttribute(Qt::WidgetAttribute attribute, bool on)
return;
Q_D(QWidget);
- Q_ASSERT_X(sizeof(d->high_attributes)*8 >= (Qt::WA_AttributeCount - sizeof(uint)*8),
- "QWidget::setAttribute(WidgetAttribute, bool)",
- "QWidgetPrivate::high_attributes[] too small to contain all attributes in WidgetAttribute");
+ Q_STATIC_ASSERT_X(sizeof(d->high_attributes)*8 >= (Qt::WA_AttributeCount - sizeof(uint)*8),
+ "QWidget::setAttribute(WidgetAttribute, bool): "
+ "QWidgetPrivate::high_attributes[] too small to contain all attributes in WidgetAttribute");
#ifdef Q_OS_WIN
// ### Don't use PaintOnScreen+paintEngine() to do native painting in some future release
if (attribute == Qt::WA_PaintOnScreen && on && windowType() != Qt::Desktop && !inherits("QGLWidget")) {
@@ -12579,13 +12577,10 @@ int QWidget::metric(PaintDeviceMetric m) const
QWindow *topLevelWindow = 0;
QScreen *screen = 0;
- if (QWidget *topLevel = window())
+ if (QWidget *topLevel = window()) {
topLevelWindow = topLevel->windowHandle();
-
- if (topLevelWindow) {
- QPlatformScreen *platformScreen = QPlatformScreen::platformScreenForWindow(topLevelWindow);
- if (platformScreen)
- screen = platformScreen->screen();
+ if (topLevelWindow)
+ screen = topLevelWindow->screen();
}
if (!screen && QGuiApplication::primaryScreen())
screen = QGuiApplication::primaryScreen();
diff --git a/src/widgets/kernel/qwidget.h b/src/widgets/kernel/qwidget.h
index ad1e276567..52c12d3730 100644
--- a/src/widgets/kernel/qwidget.h
+++ b/src/widgets/kernel/qwidget.h
@@ -203,7 +203,7 @@ public:
explicit QWidget(QWidget* parent = 0, Qt::WindowFlags f = 0);
~QWidget();
- int devType() const;
+ int devType() const Q_DECL_OVERRIDE;
WId winId() const;
void createWinId(); // internal, going away
@@ -568,7 +568,7 @@ public:
void setAttribute(Qt::WidgetAttribute, bool on = true);
inline bool testAttribute(Qt::WidgetAttribute) const;
- QPaintEngine *paintEngine() const;
+ QPaintEngine *paintEngine() const Q_DECL_OVERRIDE;
void ensurePolished() const;
@@ -598,7 +598,7 @@ Q_SIGNALS:
protected:
// Event handlers
- bool event(QEvent *);
+ bool event(QEvent *) Q_DECL_OVERRIDE;
virtual void mousePressEvent(QMouseEvent *);
virtual void mouseReleaseEvent(QMouseEvent *);
virtual void mouseDoubleClickEvent(QMouseEvent *);
@@ -640,10 +640,10 @@ protected:
// Misc. protected functions
virtual void changeEvent(QEvent *);
- int metric(PaintDeviceMetric) const;
- void initPainter(QPainter *painter) const;
- QPaintDevice *redirected(QPoint *offset) const;
- QPainter *sharedPainter() const;
+ int metric(PaintDeviceMetric) const Q_DECL_OVERRIDE;
+ void initPainter(QPainter *painter) const Q_DECL_OVERRIDE;
+ QPaintDevice *redirected(QPoint *offset) const Q_DECL_OVERRIDE;
+ QPainter *sharedPainter() const Q_DECL_OVERRIDE;
virtual void inputMethodEvent(QInputMethodEvent *);
public:
diff --git a/src/widgets/kernel/qwidget_p.h b/src/widgets/kernel/qwidget_p.h
index b3552cba68..50a8066a41 100644
--- a/src/widgets/kernel/qwidget_p.h
+++ b/src/widgets/kernel/qwidget_p.h
@@ -612,10 +612,10 @@ public:
{ return p + data.wrect.topLeft(); }
inline QRect mapToWS(const QRect &r) const
- { QRect rr(r); rr.translate(-data.wrect.topLeft()); return rr; }
+ { return r.translated(-data.wrect.topLeft()); }
inline QRect mapFromWS(const QRect &r) const
- { QRect rr(r); rr.translate(data.wrect.topLeft()); return rr; }
+ { return r.translated(data.wrect.topLeft()); }
QOpenGLContext *shareContext() const;
@@ -909,10 +909,10 @@ public:
inline QRect deviceRect() const
{ return m_widget->window()->rect(); }
- QRectF boundingRect(Qt::CoordinateSystem system) const;
- void draw(QPainter *p);
+ QRectF boundingRect(Qt::CoordinateSystem system) const Q_DECL_OVERRIDE;
+ void draw(QPainter *p) Q_DECL_OVERRIDE;
QPixmap pixmap(Qt::CoordinateSystem system, QPoint *offset,
- QGraphicsEffect::PixmapPadMode mode) const;
+ QGraphicsEffect::PixmapPadMode mode) const Q_DECL_OVERRIDE;
QWidget *m_widget;
QWidgetPaintContext *context;
diff --git a/src/widgets/kernel/qwidgetaction.h b/src/widgets/kernel/qwidgetaction.h
index afea8454d9..896fc1ffe4 100644
--- a/src/widgets/kernel/qwidgetaction.h
+++ b/src/widgets/kernel/qwidgetaction.h
@@ -59,8 +59,8 @@ public:
void releaseWidget(QWidget *widget);
protected:
- virtual bool event(QEvent *);
- virtual bool eventFilter(QObject *, QEvent *);
+ virtual bool event(QEvent *) Q_DECL_OVERRIDE;
+ virtual bool eventFilter(QObject *, QEvent *) Q_DECL_OVERRIDE;
virtual QWidget *createWidget(QWidget *parent);
virtual void deleteWidget(QWidget *widget);
QList<QWidget *> createdWidgets() const;
diff --git a/src/widgets/kernel/qwidgetbackingstore.cpp b/src/widgets/kernel/qwidgetbackingstore.cpp
index cd01869af2..68beb9afca 100644
--- a/src/widgets/kernel/qwidgetbackingstore.cpp
+++ b/src/widgets/kernel/qwidgetbackingstore.cpp
@@ -81,14 +81,14 @@ void QWidgetBackingStore::qt_flush(QWidget *widget, const QRegion &region, QBack
Q_ASSERT(tlw);
#if !defined(QT_NO_PAINT_DEBUG)
- static int flushUpdate = qgetenv("QT_FLUSH_UPDATE").toInt();
+ static int flushUpdate = qEnvironmentVariableIntValue("QT_FLUSH_UPDATE");
if (flushUpdate > 0)
QWidgetBackingStore::showYellowThing(widget, region, flushUpdate * 10, false);
#endif
if (tlw->testAttribute(Qt::WA_DontShowOnScreen) || widget->testAttribute(Qt::WA_DontShowOnScreen))
return;
- static bool fpsDebug = qgetenv("QT_DEBUG_FPS").toInt();
+ static bool fpsDebug = qEnvironmentVariableIntValue("QT_DEBUG_FPS");
if (fpsDebug) {
if (!widgetBackingStore->perfFrames++)
widgetBackingStore->perfTime.start();
@@ -239,12 +239,12 @@ bool QWidgetBackingStore::flushPaint(QWidget *widget, const QRegion &rgn)
int delay = 0;
if (widget->testAttribute(Qt::WA_WState_InPaintEvent)) {
- static int flushPaintEvent = qgetenv("QT_FLUSH_PAINT_EVENT").toInt();
+ static int flushPaintEvent = qEnvironmentVariableIntValue("QT_FLUSH_PAINT_EVENT");
if (!flushPaintEvent)
return false;
delay = flushPaintEvent;
} else {
- static int flushPaint = qgetenv("QT_FLUSH_PAINT").toInt();
+ static int flushPaint = qEnvironmentVariableIntValue("QT_FLUSH_PAINT");
if (!flushPaint)
return false;
delay = flushPaint;
@@ -780,10 +780,7 @@ void QWidgetPrivate::moveRect(const QRect &rect, int dx, int dy)
if (x->inTopLevelResize)
return;
- static int accelEnv = -1;
- if (accelEnv == -1) {
- accelEnv = qgetenv("QT_NO_FAST_MOVE").toInt() == 0;
- }
+ static const bool accelEnv = qEnvironmentVariableIntValue("QT_NO_FAST_MOVE") == 0;
QWidget *pw = q->parentWidget();
QPoint toplevelOffset = pw->mapTo(tlw, QPoint());
@@ -862,10 +859,7 @@ void QWidgetPrivate::scrollRect(const QRect &rect, int dx, int dy)
if (!wbs)
return;
- static int accelEnv = -1;
- if (accelEnv == -1) {
- accelEnv = qgetenv("QT_NO_FAST_SCROLL").toInt() == 0;
- }
+ static const bool accelEnv = qEnvironmentVariableIntValue("QT_NO_FAST_SCROLL") == 0;
QRect scrollRect = rect & clipRect();
bool overlapped = false;
diff --git a/src/widgets/kernel/qwidgetwindow.cpp b/src/widgets/kernel/qwidgetwindow.cpp
index b31f9a51dd..f543086969 100644
--- a/src/widgets/kernel/qwidgetwindow.cpp
+++ b/src/widgets/kernel/qwidgetwindow.cpp
@@ -63,7 +63,7 @@ class QWidgetWindowPrivate : public QWindowPrivate
{
Q_DECLARE_PUBLIC(QWidgetWindow)
public:
- QWindow *eventReceiver() {
+ QWindow *eventReceiver() Q_DECL_OVERRIDE {
Q_Q(QWidgetWindow);
QWindow *w = q;
while (w->parent() && qobject_cast<QWidgetWindow *>(w) && qobject_cast<QWidgetWindow *>(w->parent())) {
@@ -72,7 +72,7 @@ public:
return w;
}
- void clearFocusObject()
+ void clearFocusObject() Q_DECL_OVERRIDE
{
Q_Q(QWidgetWindow);
QWidget *widget = q->widget();
@@ -440,6 +440,7 @@ void QWidgetWindow::handleMouseEvent(QMouseEvent *event)
QGuiApplicationPrivate::setMouseEventSource(&e, QGuiApplicationPrivate::mouseEventSource(event));
e.setTimestamp(event->timestamp());
QApplicationPrivate::sendMouseEvent(receiver, &e, alien, m_widget, &qt_button_down, qt_last_mouse_receiver);
+ qt_last_mouse_receiver = receiver;
} else {
// close disabled popups when a mouse button is pressed or released
switch (event->type()) {
diff --git a/src/widgets/kernel/qwidgetwindow_p.h b/src/widgets/kernel/qwidgetwindow_p.h
index 0632a5c364..3bacb0c8e4 100644
--- a/src/widgets/kernel/qwidgetwindow_p.h
+++ b/src/widgets/kernel/qwidgetwindow_p.h
@@ -65,12 +65,12 @@ public:
QWidget *widget() const { return m_widget; }
#ifndef QT_NO_ACCESSIBILITY
- QAccessibleInterface *accessibleRoot() const;
+ QAccessibleInterface *accessibleRoot() const Q_DECL_OVERRIDE;
#endif
- QObject *focusObject() const;
+ QObject *focusObject() const Q_DECL_OVERRIDE;
protected:
- bool event(QEvent *);
+ bool event(QEvent *) Q_DECL_OVERRIDE;
void handleCloseEvent(QCloseEvent *);
void handleEnterLeaveEvent(QEvent *);
@@ -91,7 +91,7 @@ protected:
#endif
void handleExposeEvent(QExposeEvent *);
void handleWindowStateChangedEvent(QWindowStateChangeEvent *event);
- bool nativeEvent(const QByteArray &eventType, void *message, long *result);
+ bool nativeEvent(const QByteArray &eventType, void *message, long *result) Q_DECL_OVERRIDE;
#ifndef QT_NO_TABLETEVENT
void handleTabletEvent(QTabletEvent *);
#endif
diff --git a/src/widgets/kernel/qwindowcontainer_p.h b/src/widgets/kernel/qwindowcontainer_p.h
index 6ba1ab544e..751c932ef0 100644
--- a/src/widgets/kernel/qwindowcontainer_p.h
+++ b/src/widgets/kernel/qwindowcontainer_p.h
@@ -68,7 +68,7 @@ public:
static void parentWasLowered(QWidget *parent);
protected:
- bool event(QEvent *ev);
+ bool event(QEvent *ev) Q_DECL_OVERRIDE;
private slots:
void focusWindowChanged(QWindow *focusWindow);
diff --git a/src/widgets/statemachine/qbasickeyeventtransition_p.h b/src/widgets/statemachine/qbasickeyeventtransition_p.h
index cae7342b2e..4a856be57c 100644
--- a/src/widgets/statemachine/qbasickeyeventtransition_p.h
+++ b/src/widgets/statemachine/qbasickeyeventtransition_p.h
@@ -75,8 +75,8 @@ public:
void setModifierMask(Qt::KeyboardModifiers modifiers);
protected:
- bool eventTest(QEvent *event);
- void onTransition(QEvent *);
+ bool eventTest(QEvent *event) Q_DECL_OVERRIDE;
+ void onTransition(QEvent *) Q_DECL_OVERRIDE;
private:
Q_DISABLE_COPY(QBasicKeyEventTransition)
diff --git a/src/widgets/statemachine/qbasicmouseeventtransition_p.h b/src/widgets/statemachine/qbasicmouseeventtransition_p.h
index 5adb8702cc..beedec2201 100644
--- a/src/widgets/statemachine/qbasicmouseeventtransition_p.h
+++ b/src/widgets/statemachine/qbasicmouseeventtransition_p.h
@@ -78,8 +78,8 @@ public:
void setHitTestPath(const QPainterPath &path);
protected:
- bool eventTest(QEvent *event);
- void onTransition(QEvent *);
+ bool eventTest(QEvent *event) Q_DECL_OVERRIDE;
+ void onTransition(QEvent *) Q_DECL_OVERRIDE;
private:
Q_DISABLE_COPY(QBasicMouseEventTransition)
diff --git a/src/widgets/statemachine/qkeyeventtransition.h b/src/widgets/statemachine/qkeyeventtransition.h
index 816770c04a..571040a748 100644
--- a/src/widgets/statemachine/qkeyeventtransition.h
+++ b/src/widgets/statemachine/qkeyeventtransition.h
@@ -60,8 +60,8 @@ public:
void setModifierMask(Qt::KeyboardModifiers modifiers);
protected:
- void onTransition(QEvent *event);
- bool eventTest(QEvent *event);
+ void onTransition(QEvent *event) Q_DECL_OVERRIDE;
+ bool eventTest(QEvent *event) Q_DECL_OVERRIDE;
private:
Q_DISABLE_COPY(QKeyEventTransition)
diff --git a/src/widgets/statemachine/qmouseeventtransition.h b/src/widgets/statemachine/qmouseeventtransition.h
index 2bad8b13bd..d2caf8d5fe 100644
--- a/src/widgets/statemachine/qmouseeventtransition.h
+++ b/src/widgets/statemachine/qmouseeventtransition.h
@@ -64,8 +64,8 @@ public:
void setHitTestPath(const QPainterPath &path);
protected:
- void onTransition(QEvent *event);
- bool eventTest(QEvent *event);
+ void onTransition(QEvent *event) Q_DECL_OVERRIDE;
+ bool eventTest(QEvent *event) Q_DECL_OVERRIDE;
private:
Q_DISABLE_COPY(QMouseEventTransition)
diff --git a/src/widgets/styles/qcommonstyle.cpp b/src/widgets/styles/qcommonstyle.cpp
index c688462794..29df1c6387 100644
--- a/src/widgets/styles/qcommonstyle.cpp
+++ b/src/widgets/styles/qcommonstyle.cpp
@@ -4592,6 +4592,12 @@ int QCommonStyle::pixelMetric(PixelMetric m, const QStyleOption *opt, const QWid
case PM_HeaderGripMargin:
ret = int(QStyleHelper::dpiScaled(4.));
break;
+ case PM_HeaderDefaultSectionSizeHorizontal:
+ ret = int(QStyleHelper::dpiScaled(100.));
+ break;
+ case PM_HeaderDefaultSectionSizeVertical:
+ ret = int(QStyleHelper::dpiScaled(30.));
+ break;
case PM_TabBarScrollButtonWidth:
ret = int(QStyleHelper::dpiScaled(16.));
break;
@@ -4926,6 +4932,25 @@ int QCommonStyle::styleHint(StyleHint sh, const QStyleOption *opt, const QWidget
ret = true;
break;
+ case SH_Menu_SubMenuUniDirection:
+ ret = false;
+ break;
+ case SH_Menu_SubMenuUniDirectionFailCount:
+ ret = 1;
+ break;
+ case SH_Menu_SubMenuSloppySelectOtherActions:
+ ret = true;
+ break;
+ case SH_Menu_SubMenuSloppyCloseTimeout:
+ ret = 1000;
+ break;
+ case SH_Menu_SubMenuResetWhenReenteringParent:
+ ret = false;
+ break;
+ case SH_Menu_SubMenuDontStartSloppyOnLeave:
+ ret = false;
+ break;
+
case SH_ProgressDialog_TextLabelAlignment:
ret = Qt::AlignCenter;
break;
diff --git a/src/widgets/styles/qcommonstyle.h b/src/widgets/styles/qcommonstyle.h
index 7e885d0b77..465d0f17aa 100644
--- a/src/widgets/styles/qcommonstyle.h
+++ b/src/widgets/styles/qcommonstyle.h
@@ -49,40 +49,40 @@ public:
~QCommonStyle();
void drawPrimitive(PrimitiveElement pe, const QStyleOption *opt, QPainter *p,
- const QWidget *w = 0) const;
+ const QWidget *w = 0) const Q_DECL_OVERRIDE;
void drawControl(ControlElement element, const QStyleOption *opt, QPainter *p,
- const QWidget *w = 0) const;
- QRect subElementRect(SubElement r, const QStyleOption *opt, const QWidget *widget = 0) const;
+ const QWidget *w = 0) const Q_DECL_OVERRIDE;
+ QRect subElementRect(SubElement r, const QStyleOption *opt, const QWidget *widget = 0) const Q_DECL_OVERRIDE;
void drawComplexControl(ComplexControl cc, const QStyleOptionComplex *opt, QPainter *p,
- const QWidget *w = 0) const;
+ const QWidget *w = 0) const Q_DECL_OVERRIDE;
SubControl hitTestComplexControl(ComplexControl cc, const QStyleOptionComplex *opt,
- const QPoint &pt, const QWidget *w = 0) const;
+ const QPoint &pt, const QWidget *w = 0) const Q_DECL_OVERRIDE;
QRect subControlRect(ComplexControl cc, const QStyleOptionComplex *opt, SubControl sc,
- const QWidget *w = 0) const;
+ const QWidget *w = 0) const Q_DECL_OVERRIDE;
QSize sizeFromContents(ContentsType ct, const QStyleOption *opt,
- const QSize &contentsSize, const QWidget *widget = 0) const;
+ const QSize &contentsSize, const QWidget *widget = 0) const Q_DECL_OVERRIDE;
- int pixelMetric(PixelMetric m, const QStyleOption *opt = 0, const QWidget *widget = 0) const;
+ int pixelMetric(PixelMetric m, const QStyleOption *opt = 0, const QWidget *widget = 0) const Q_DECL_OVERRIDE;
int styleHint(StyleHint sh, const QStyleOption *opt = 0, const QWidget *w = 0,
- QStyleHintReturn *shret = 0) const;
+ QStyleHintReturn *shret = 0) const Q_DECL_OVERRIDE;
QIcon standardIcon(StandardPixmap standardIcon, const QStyleOption *opt = 0,
- const QWidget *widget = 0) const;
+ const QWidget *widget = 0) const Q_DECL_OVERRIDE;
QPixmap standardPixmap(StandardPixmap sp, const QStyleOption *opt = 0,
- const QWidget *widget = 0) const;
+ const QWidget *widget = 0) const Q_DECL_OVERRIDE;
QPixmap generatedIconPixmap(QIcon::Mode iconMode, const QPixmap &pixmap,
- const QStyleOption *opt) const;
+ const QStyleOption *opt) const Q_DECL_OVERRIDE;
int layoutSpacing(QSizePolicy::ControlType control1, QSizePolicy::ControlType control2,
Qt::Orientation orientation, const QStyleOption *option = 0,
- const QWidget *widget = 0) const;
+ const QWidget *widget = 0) const Q_DECL_OVERRIDE;
- void polish(QPalette &);
- void polish(QApplication *app);
- void polish(QWidget *widget);
- void unpolish(QWidget *widget);
- void unpolish(QApplication *application);
+ void polish(QPalette &) Q_DECL_OVERRIDE;
+ void polish(QApplication *app) Q_DECL_OVERRIDE;
+ void polish(QWidget *widget) Q_DECL_OVERRIDE;
+ void unpolish(QWidget *widget) Q_DECL_OVERRIDE;
+ void unpolish(QApplication *application) Q_DECL_OVERRIDE;
protected:
QCommonStyle(QCommonStylePrivate &dd);
diff --git a/src/widgets/styles/qfusionstyle.cpp b/src/widgets/styles/qfusionstyle.cpp
index ed7b4ab3b6..c4f78b9998 100644
--- a/src/widgets/styles/qfusionstyle.cpp
+++ b/src/widgets/styles/qfusionstyle.cpp
@@ -1541,7 +1541,8 @@ void QFusionStyle::drawControl(ControlElement element, const QStyleOption *optio
bool ignoreCheckMark = false;
int checkcol = qMax(menuItem->maxIconWidth, 20);
- if (qobject_cast<const QComboBox*>(widget))
+ if (qobject_cast<const QComboBox*>(widget) ||
+ (option->styleObject && option->styleObject->property("_q_isComboBoxPopupItem").toBool()))
ignoreCheckMark = true; //ignore the checkmarks provided by the QComboMenuDelegate
if (!ignoreCheckMark) {
@@ -1610,7 +1611,7 @@ void QFusionStyle::drawControl(ControlElement element, const QStyleOption *optio
QRect pmr(0, 0, pixw, pixh);
pmr.moveCenter(vCheckRect.center());
painter->setPen(menuItem->palette.text().color());
- if (checkable && checked) {
+ if (!ignoreCheckMark && checkable && checked) {
QStyleOption opt = *option;
if (act) {
QColor activeColor = mergedColors(option->palette.background().color(),
diff --git a/src/widgets/styles/qfusionstyle_p.h b/src/widgets/styles/qfusionstyle_p.h
index 7d0326d0a1..e7ba66f818 100644
--- a/src/widgets/styles/qfusionstyle_p.h
+++ b/src/widgets/styles/qfusionstyle_p.h
@@ -62,41 +62,41 @@ public:
QFusionStyle();
~QFusionStyle();
- QPalette standardPalette () const;
+ QPalette standardPalette () const Q_DECL_OVERRIDE;
void drawPrimitive(PrimitiveElement elem,
const QStyleOption *option,
- QPainter *painter, const QWidget *widget = 0) const;
+ QPainter *painter, const QWidget *widget = 0) const Q_DECL_OVERRIDE;
void drawControl(ControlElement ce, const QStyleOption *option, QPainter *painter,
- const QWidget *widget) const;
- int pixelMetric(PixelMetric metric, const QStyleOption *option = 0, const QWidget *widget = 0) const;
+ const QWidget *widget) const Q_DECL_OVERRIDE;
+ int pixelMetric(PixelMetric metric, const QStyleOption *option = 0, const QWidget *widget = 0) const Q_DECL_OVERRIDE;
void drawComplexControl(ComplexControl control, const QStyleOptionComplex *option,
- QPainter *painter, const QWidget *widget) const;
- QRect subElementRect(SubElement r, const QStyleOption *opt, const QWidget *widget = 0) const;
+ QPainter *painter, const QWidget *widget) const Q_DECL_OVERRIDE;
+ QRect subElementRect(SubElement r, const QStyleOption *opt, const QWidget *widget = 0) const Q_DECL_OVERRIDE;
QSize sizeFromContents(ContentsType type, const QStyleOption *option,
- const QSize &size, const QWidget *widget) const;
+ const QSize &size, const QWidget *widget) const Q_DECL_OVERRIDE;
SubControl hitTestComplexControl(ComplexControl cc, const QStyleOptionComplex *opt,
- const QPoint &pt, const QWidget *w = 0) const;
+ const QPoint &pt, const QWidget *w = 0) const Q_DECL_OVERRIDE;
QRect subControlRect(ComplexControl cc, const QStyleOptionComplex *opt,
- SubControl sc, const QWidget *widget) const;
+ SubControl sc, const QWidget *widget) const Q_DECL_OVERRIDE;
QPixmap generatedIconPixmap(QIcon::Mode iconMode, const QPixmap &pixmap,
- const QStyleOption *opt) const;
+ const QStyleOption *opt) const Q_DECL_OVERRIDE;
int styleHint(StyleHint hint, const QStyleOption *option = 0, const QWidget *widget = 0,
- QStyleHintReturn *returnData = 0) const;
- QRect itemPixmapRect(const QRect &r, int flags, const QPixmap &pixmap) const;
+ QStyleHintReturn *returnData = 0) const Q_DECL_OVERRIDE;
+ QRect itemPixmapRect(const QRect &r, int flags, const QPixmap &pixmap) const Q_DECL_OVERRIDE;
QIcon standardIcon(StandardPixmap standardIcon, const QStyleOption *option = 0,
- const QWidget *widget = 0) const;
+ const QWidget *widget = 0) const Q_DECL_OVERRIDE;
QPixmap standardPixmap(StandardPixmap standardPixmap, const QStyleOption *opt,
- const QWidget *widget = 0) const;
+ const QWidget *widget = 0) const Q_DECL_OVERRIDE;
void drawItemPixmap(QPainter *painter, const QRect &rect,
- int alignment, const QPixmap &pixmap) const;
+ int alignment, const QPixmap &pixmap) const Q_DECL_OVERRIDE;
void drawItemText(QPainter *painter, const QRect &rect,
int flags, const QPalette &pal, bool enabled,
- const QString &text, QPalette::ColorRole textRole = QPalette::NoRole) const;
- void polish(QWidget *widget);
- void polish(QApplication *app);
- void polish(QPalette &pal);
- void unpolish(QWidget *widget);
- void unpolish(QApplication *app);
+ const QString &text, QPalette::ColorRole textRole = QPalette::NoRole) const Q_DECL_OVERRIDE;
+ void polish(QWidget *widget) Q_DECL_OVERRIDE;
+ void polish(QApplication *app) Q_DECL_OVERRIDE;
+ void polish(QPalette &pal) Q_DECL_OVERRIDE;
+ void unpolish(QWidget *widget) Q_DECL_OVERRIDE;
+ void unpolish(QApplication *app) Q_DECL_OVERRIDE;
protected:
QFusionStyle(QFusionStylePrivate &dd);
diff --git a/src/widgets/styles/qgtk2painter_p.h b/src/widgets/styles/qgtk2painter_p.h
index 432daaca29..6204e11fa9 100644
--- a/src/widgets/styles/qgtk2painter_p.h
+++ b/src/widgets/styles/qgtk2painter_p.h
@@ -59,33 +59,33 @@ public:
void paintBoxGap(GtkWidget *gtkWidget, const gchar* part, const QRect &rect,
GtkStateType state, GtkShadowType shadow, GtkPositionType gap_side, gint x,
- gint width, GtkStyle *style);
+ gint width, GtkStyle *style) Q_DECL_OVERRIDE;
void paintBox(GtkWidget *gtkWidget, const gchar* part,
const QRect &rect, GtkStateType state, GtkShadowType shadow, GtkStyle *style,
- const QString &pmKey = QString());
+ const QString &pmKey = QString()) Q_DECL_OVERRIDE;
void paintHline(GtkWidget *gtkWidget, const gchar* part, const QRect &rect, GtkStateType state, GtkStyle *style,
- int x1, int x2, int y, const QString &pmKey = QString());
+ int x1, int x2, int y, const QString &pmKey = QString()) Q_DECL_OVERRIDE;
void paintVline(GtkWidget *gtkWidget, const gchar* part, const QRect &rect, GtkStateType state, GtkStyle *style,
- int y1, int y2, int x, const QString &pmKey = QString());
+ int y1, int y2, int x, const QString &pmKey = QString()) Q_DECL_OVERRIDE;
void paintExpander(GtkWidget *gtkWidget, const gchar* part, const QRect &rect, GtkStateType state,
- GtkExpanderStyle expander_state, GtkStyle *style, const QString &pmKey = QString());
+ GtkExpanderStyle expander_state, GtkStyle *style, const QString &pmKey = QString()) Q_DECL_OVERRIDE;
void paintFocus(GtkWidget *gtkWidget, const gchar* part, const QRect &rect, GtkStateType state, GtkStyle *style,
- const QString &pmKey = QString());
+ const QString &pmKey = QString()) Q_DECL_OVERRIDE;
void paintResizeGrip(GtkWidget *gtkWidget, const gchar* part, const QRect &rect, GtkStateType state, GtkShadowType shadow,
- GdkWindowEdge edge, GtkStyle *style, const QString &pmKey = QString());
+ GdkWindowEdge edge, GtkStyle *style, const QString &pmKey = QString()) Q_DECL_OVERRIDE;
void paintArrow(GtkWidget *gtkWidget, const gchar* part, const QRect &arrowrect, GtkArrowType arrow_type, GtkStateType state, GtkShadowType shadow,
- gboolean fill, GtkStyle *style, const QString &pmKey = QString());
+ gboolean fill, GtkStyle *style, const QString &pmKey = QString()) Q_DECL_OVERRIDE;
void paintHandle(GtkWidget *gtkWidget, const gchar* part, const QRect &rect,
- GtkStateType state, GtkShadowType shadow, GtkOrientation orientation, GtkStyle *style);
+ GtkStateType state, GtkShadowType shadow, GtkOrientation orientation, GtkStyle *style) Q_DECL_OVERRIDE;
void paintSlider(GtkWidget *gtkWidget, const gchar* part, const QRect &rect, GtkStateType state, GtkShadowType shadow,
- GtkStyle *style, GtkOrientation orientation, const QString &pmKey = QString());
+ GtkStyle *style, GtkOrientation orientation, const QString &pmKey = QString()) Q_DECL_OVERRIDE;
void paintShadow(GtkWidget *gtkWidget, const gchar* part, const QRect &rect, GtkStateType state, GtkShadowType shadow,
- GtkStyle *style, const QString &pmKey = QString());
- void paintFlatBox(GtkWidget *gtkWidget, const gchar* part, const QRect &rect, GtkStateType state, GtkShadowType shadow, GtkStyle *style, const QString & = QString());
+ GtkStyle *style, const QString &pmKey = QString()) Q_DECL_OVERRIDE;
+ void paintFlatBox(GtkWidget *gtkWidget, const gchar* part, const QRect &rect, GtkStateType state, GtkShadowType shadow, GtkStyle *style, const QString & = QString()) Q_DECL_OVERRIDE;
void paintExtention(GtkWidget *gtkWidget, const gchar *part, const QRect &rect, GtkStateType state, GtkShadowType shadow,
- GtkPositionType gap_pos, GtkStyle *style);
- void paintOption(GtkWidget *gtkWidget, const QRect &rect, GtkStateType state, GtkShadowType shadow, GtkStyle *style, const QString &detail);
- void paintCheckbox(GtkWidget *gtkWidget, const QRect &rect, GtkStateType state, GtkShadowType shadow, GtkStyle *style, const QString &detail);
+ GtkPositionType gap_pos, GtkStyle *style) Q_DECL_OVERRIDE;
+ void paintOption(GtkWidget *gtkWidget, const QRect &rect, GtkStateType state, GtkShadowType shadow, GtkStyle *style, const QString &detail) Q_DECL_OVERRIDE;
+ void paintCheckbox(GtkWidget *gtkWidget, const QRect &rect, GtkStateType state, GtkShadowType shadow, GtkStyle *style, const QString &detail) Q_DECL_OVERRIDE;
private:
QPixmap renderTheme(uchar *bdata, uchar *wdata, const QRect &rect) const;
diff --git a/src/widgets/styles/qgtkstyle_p.cpp b/src/widgets/styles/qgtkstyle_p.cpp
index 61d1cd796e..beb52c01a7 100644
--- a/src/widgets/styles/qgtkstyle_p.cpp
+++ b/src/widgets/styles/qgtkstyle_p.cpp
@@ -57,6 +57,7 @@
#include <private/qgtk2painter_p.h>
#include <private/qapplication_p.h>
#include <private/qiconloader_p.h>
+#include <qpa/qplatformfontdatabase.h>
#include <QtWidgets/QMenu>
#include <QtWidgets/QStyle>
@@ -823,17 +824,8 @@ QFont QGtkStylePrivate::getThemeFont()
if (!family.isEmpty())
font.setFamily(family);
- int weight = pango_font_description_get_weight(gtk_font);
- if (weight >= PANGO_WEIGHT_HEAVY)
- font.setWeight(QFont::Black);
- else if (weight >= PANGO_WEIGHT_BOLD)
- font.setWeight(QFont::Bold);
- else if (weight >= PANGO_WEIGHT_SEMIBOLD)
- font.setWeight(QFont::DemiBold);
- else if (weight >= PANGO_WEIGHT_NORMAL)
- font.setWeight(QFont::Normal);
- else
- font.setWeight(QFont::Light);
+ const int weight = pango_font_description_get_weight(gtk_font);
+ font.setWeight(QPlatformFontDatabase::weightFromInteger(weight));
PangoStyle fontstyle = pango_font_description_get_style(gtk_font);
if (fontstyle == PANGO_STYLE_ITALIC)
diff --git a/src/widgets/styles/qgtkstyle_p.h b/src/widgets/styles/qgtkstyle_p.h
index d8a4fb093d..5aecf66152 100644
--- a/src/widgets/styles/qgtkstyle_p.h
+++ b/src/widgets/styles/qgtkstyle_p.h
@@ -69,48 +69,48 @@ public:
~QGtkStyle();
- QPalette standardPalette() const;
+ QPalette standardPalette() const Q_DECL_OVERRIDE;
void drawPrimitive(PrimitiveElement element, const QStyleOption *option,
- QPainter *painter, const QWidget *widget) const;
+ QPainter *painter, const QWidget *widget) const Q_DECL_OVERRIDE;
void drawControl(ControlElement control, const QStyleOption *option,
- QPainter *painter, const QWidget *widget) const;
+ QPainter *painter, const QWidget *widget) const Q_DECL_OVERRIDE;
void drawComplexControl(ComplexControl control, const QStyleOptionComplex *option,
- QPainter *painter, const QWidget *widget) const;
+ QPainter *painter, const QWidget *widget) const Q_DECL_OVERRIDE;
void drawItemPixmap(QPainter *painter, const QRect &rect, int alignment,
- const QPixmap &pixmap) const;
+ const QPixmap &pixmap) const Q_DECL_OVERRIDE;
void drawItemText(QPainter *painter, const QRect &rect, int alignment, const QPalette &pal,
- bool enabled, const QString& text, QPalette::ColorRole textRole) const;
+ bool enabled, const QString& text, QPalette::ColorRole textRole) const Q_DECL_OVERRIDE;
int pixelMetric(PixelMetric metric, const QStyleOption *option = 0,
- const QWidget *widget = 0) const;
+ const QWidget *widget = 0) const Q_DECL_OVERRIDE;
int styleHint(StyleHint hint, const QStyleOption *option,
- const QWidget *widget, QStyleHintReturn *returnData) const;
+ const QWidget *widget, QStyleHintReturn *returnData) const Q_DECL_OVERRIDE;
QStyle::SubControl hitTestComplexControl(ComplexControl cc, const QStyleOptionComplex *opt,
- const QPoint &pt, const QWidget *w) const;
+ const QPoint &pt, const QWidget *w) const Q_DECL_OVERRIDE;
QRect subControlRect(ComplexControl control, const QStyleOptionComplex *option,
- SubControl subControl, const QWidget *widget) const;
- QRect subElementRect(SubElement sr, const QStyleOption *opt, const QWidget *w) const;
- QRect itemPixmapRect(const QRect &r, int flags, const QPixmap &pixmap) const;
+ SubControl subControl, const QWidget *widget) const Q_DECL_OVERRIDE;
+ QRect subElementRect(SubElement sr, const QStyleOption *opt, const QWidget *w) const Q_DECL_OVERRIDE;
+ QRect itemPixmapRect(const QRect &r, int flags, const QPixmap &pixmap) const Q_DECL_OVERRIDE;
QSize sizeFromContents(ContentsType type, const QStyleOption *option,
- const QSize &size, const QWidget *widget) const;
+ const QSize &size, const QWidget *widget) const Q_DECL_OVERRIDE;
QIcon standardIcon(StandardPixmap standardIcon, const QStyleOption *option = 0,
- const QWidget *widget = 0) const;
+ const QWidget *widget = 0) const Q_DECL_OVERRIDE;
QPixmap standardPixmap(StandardPixmap sp, const QStyleOption *option,
- const QWidget *widget) const;
+ const QWidget *widget) const Q_DECL_OVERRIDE;
QPixmap generatedIconPixmap(QIcon::Mode iconMode, const QPixmap &pixmap,
- const QStyleOption *opt) const;
+ const QStyleOption *opt) const Q_DECL_OVERRIDE;
- void polish(QWidget *widget);
- void polish(QApplication *app);
- void polish(QPalette &palette);
+ void polish(QWidget *widget) Q_DECL_OVERRIDE;
+ void polish(QApplication *app) Q_DECL_OVERRIDE;
+ void polish(QPalette &palette) Q_DECL_OVERRIDE;
- void unpolish(QWidget *widget);
- void unpolish(QApplication *app);
+ void unpolish(QWidget *widget) Q_DECL_OVERRIDE;
+ void unpolish(QApplication *app) Q_DECL_OVERRIDE;
static bool getGConfBool(const QString &key, bool fallback = 0);
static QString getGConfString(const QString &key, const QString &fallback = QString());
diff --git a/src/widgets/styles/qgtkstyle_p_p.h b/src/widgets/styles/qgtkstyle_p_p.h
index 0076f14ba3..02b375bc54 100644
--- a/src/widgets/styles/qgtkstyle_p_p.h
+++ b/src/widgets/styles/qgtkstyle_p_p.h
@@ -228,7 +228,7 @@ public:
{}
private:
QGtkStylePrivate* stylePrivate;
- bool eventFilter(QObject *obj, QEvent *e);
+ bool eventFilter(QObject *obj, QEvent *e) Q_DECL_OVERRIDE;
};
typedef enum {
diff --git a/src/widgets/styles/qmacstyle_mac.mm b/src/widgets/styles/qmacstyle_mac.mm
index c166b1b26e..6f573ab809 100644
--- a/src/widgets/styles/qmacstyle_mac.mm
+++ b/src/widgets/styles/qmacstyle_mac.mm
@@ -2798,6 +2798,19 @@ int QMacStyle::styleHint(StyleHint sh, const QStyleOption *opt, const QWidget *w
case SH_Menu_SubMenuPopupDelay:
ret = 100;
break;
+ case SH_Menu_SubMenuUniDirection:
+ ret = true;
+ break;
+ case SH_Menu_SubMenuSloppySelectOtherActions:
+ ret = false;
+ break;
+ case SH_Menu_SubMenuResetWhenReenteringParent:
+ ret = true;
+ break;
+ case SH_Menu_SubMenuDontStartSloppyOnLeave:
+ ret = true;
+ break;
+
case SH_ScrollBar_LeftClickAbsolutePosition: {
NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
bool result = [defaults boolForKey:@"AppleScrollerPagingBehavior"];
@@ -3044,8 +3057,11 @@ int QMacStyle::styleHint(StyleHint sh, const QStyleOption *opt, const QWidget *w
break;
case SH_ScrollBar_Transient:
if ((qobject_cast<const QScrollBar *>(w) && w->parent() &&
- qobject_cast<QAbstractScrollArea*>(w->parent()->parent())) ||
- (opt && QStyleHelper::hasAncestor(opt->styleObject, QAccessible::ScrollBar))) {
+ qobject_cast<QAbstractScrollArea*>(w->parent()->parent()))
+#ifndef QT_NO_ACCESSIBILITY
+ || (opt && QStyleHelper::hasAncestor(opt->styleObject, QAccessible::ScrollBar))
+#endif
+ ) {
ret = [NSScroller preferredScrollerStyle] == NSScrollerStyleOverlay;
}
break;
@@ -3687,6 +3703,7 @@ void QMacStyle::drawControl(ControlElement ce, const QStyleOption *opt, QPainter
if (const QStyleOptionToolButton *tb = qstyleoption_cast<const QStyleOptionToolButton *>(opt)) {
QStyleOptionToolButton myTb = *tb;
myTb.state &= ~State_AutoRaise;
+#ifndef QT_NO_ACCESSIBILITY
if (QStyleHelper::hasAncestor(opt->styleObject, QAccessible::ToolBar)) {
QRect cr = tb->rect;
int shiftX = 0;
@@ -3776,6 +3793,9 @@ void QMacStyle::drawControl(ControlElement ce, const QStyleOption *opt, QPainter
} else {
QCommonStyle::drawControl(ce, &myTb, p, w);
}
+#else
+ Q_UNUSED(tb)
+#endif
}
break;
case CE_ToolBoxTabShape:
@@ -5914,7 +5934,7 @@ void QMacStyle::drawComplexControl(ComplexControl cc, const QStyleOptionComplex
case CC_ToolButton:
if (const QStyleOptionToolButton *tb
= qstyleoption_cast<const QStyleOptionToolButton *>(opt)) {
-
+#ifndef QT_NO_ACCESSIBILITY
if (QStyleHelper::hasAncestor(opt->styleObject, QAccessible::ToolBar)) {
if (tb->subControls & SC_ToolButtonMenu) {
QStyleOption arrowOpt(0);
@@ -6040,6 +6060,7 @@ void QMacStyle::drawComplexControl(ComplexControl cc, const QStyleOptionComplex
label.rect = buttonRect.adjusted(fw, fw, -fw, -fw);
proxy()->drawControl(CE_ToolButtonLabel, &label, p, widget);
}
+#endif
}
break;
case CC_Dial:
@@ -6518,7 +6539,11 @@ QRect QMacStyle::subControlRect(ComplexControl cc, const QStyleOptionComplex *op
break;
case CC_ToolButton:
ret = QCommonStyle::subControlRect(cc, opt, sc, widget);
- if (sc == SC_ToolButtonMenu && !QStyleHelper::hasAncestor(opt->styleObject, QAccessible::ToolBar)) {
+ if (sc == SC_ToolButtonMenu
+#ifndef QT_NO_ACCESSIBILITY
+ && !QStyleHelper::hasAncestor(opt->styleObject, QAccessible::ToolBar)
+#endif
+ ) {
ret.adjust(-1, 0, 0, 0);
}
break;
diff --git a/src/widgets/styles/qproxystyle.h b/src/widgets/styles/qproxystyle.h
index 24779925a5..f2ddf6bda1 100644
--- a/src/widgets/styles/qproxystyle.h
+++ b/src/widgets/styles/qproxystyle.h
@@ -54,40 +54,40 @@ public:
QStyle *baseStyle() const;
void setBaseStyle(QStyle *style);
- void drawPrimitive(PrimitiveElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget = 0) const;
- void drawControl(ControlElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget = 0) const;
- void drawComplexControl(ComplexControl control, const QStyleOptionComplex *option, QPainter *painter, const QWidget *widget = 0) const;
+ void drawPrimitive(PrimitiveElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget = 0) const Q_DECL_OVERRIDE;
+ void drawControl(ControlElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget = 0) const Q_DECL_OVERRIDE;
+ void drawComplexControl(ComplexControl control, const QStyleOptionComplex *option, QPainter *painter, const QWidget *widget = 0) const Q_DECL_OVERRIDE;
void drawItemText(QPainter *painter, const QRect &rect, int flags, const QPalette &pal, bool enabled,
- const QString &text, QPalette::ColorRole textRole = QPalette::NoRole) const;
- virtual void drawItemPixmap(QPainter *painter, const QRect &rect, int alignment, const QPixmap &pixmap) const;
+ const QString &text, QPalette::ColorRole textRole = QPalette::NoRole) const Q_DECL_OVERRIDE;
+ virtual void drawItemPixmap(QPainter *painter, const QRect &rect, int alignment, const QPixmap &pixmap) const Q_DECL_OVERRIDE;
- QSize sizeFromContents(ContentsType type, const QStyleOption *option, const QSize &size, const QWidget *widget) const;
+ QSize sizeFromContents(ContentsType type, const QStyleOption *option, const QSize &size, const QWidget *widget) const Q_DECL_OVERRIDE;
- QRect subElementRect(SubElement element, const QStyleOption *option, const QWidget *widget) const;
- QRect subControlRect(ComplexControl cc, const QStyleOptionComplex *opt, SubControl sc, const QWidget *widget) const;
- QRect itemTextRect(const QFontMetrics &fm, const QRect &r, int flags, bool enabled, const QString &text) const;
- QRect itemPixmapRect(const QRect &r, int flags, const QPixmap &pixmap) const;
+ QRect subElementRect(SubElement element, const QStyleOption *option, const QWidget *widget) const Q_DECL_OVERRIDE;
+ QRect subControlRect(ComplexControl cc, const QStyleOptionComplex *opt, SubControl sc, const QWidget *widget) const Q_DECL_OVERRIDE;
+ QRect itemTextRect(const QFontMetrics &fm, const QRect &r, int flags, bool enabled, const QString &text) const Q_DECL_OVERRIDE;
+ QRect itemPixmapRect(const QRect &r, int flags, const QPixmap &pixmap) const Q_DECL_OVERRIDE;
- SubControl hitTestComplexControl(ComplexControl control, const QStyleOptionComplex *option, const QPoint &pos, const QWidget *widget = 0) const;
- int styleHint(StyleHint hint, const QStyleOption *option = 0, const QWidget *widget = 0, QStyleHintReturn *returnData = 0) const;
- int pixelMetric(PixelMetric metric, const QStyleOption *option = 0, const QWidget *widget = 0) const;
+ SubControl hitTestComplexControl(ComplexControl control, const QStyleOptionComplex *option, const QPoint &pos, const QWidget *widget = 0) const Q_DECL_OVERRIDE;
+ int styleHint(StyleHint hint, const QStyleOption *option = 0, const QWidget *widget = 0, QStyleHintReturn *returnData = 0) const Q_DECL_OVERRIDE;
+ int pixelMetric(PixelMetric metric, const QStyleOption *option = 0, const QWidget *widget = 0) const Q_DECL_OVERRIDE;
int layoutSpacing(QSizePolicy::ControlType control1, QSizePolicy::ControlType control2,
- Qt::Orientation orientation, const QStyleOption *option = 0, const QWidget *widget = 0) const;
+ Qt::Orientation orientation, const QStyleOption *option = 0, const QWidget *widget = 0) const Q_DECL_OVERRIDE;
- QIcon standardIcon(StandardPixmap standardIcon, const QStyleOption *option = 0, const QWidget *widget = 0) const;
- QPixmap standardPixmap(StandardPixmap standardPixmap, const QStyleOption *opt, const QWidget *widget = 0) const;
- QPixmap generatedIconPixmap(QIcon::Mode iconMode, const QPixmap &pixmap, const QStyleOption *opt) const;
- QPalette standardPalette() const;
+ QIcon standardIcon(StandardPixmap standardIcon, const QStyleOption *option = 0, const QWidget *widget = 0) const Q_DECL_OVERRIDE;
+ QPixmap standardPixmap(StandardPixmap standardPixmap, const QStyleOption *opt, const QWidget *widget = 0) const Q_DECL_OVERRIDE;
+ QPixmap generatedIconPixmap(QIcon::Mode iconMode, const QPixmap &pixmap, const QStyleOption *opt) const Q_DECL_OVERRIDE;
+ QPalette standardPalette() const Q_DECL_OVERRIDE;
- void polish(QWidget *widget);
- void polish(QPalette &pal);
- void polish(QApplication *app);
+ void polish(QWidget *widget) Q_DECL_OVERRIDE;
+ void polish(QPalette &pal) Q_DECL_OVERRIDE;
+ void polish(QApplication *app) Q_DECL_OVERRIDE;
- void unpolish(QWidget *widget);
- void unpolish(QApplication *app);
+ void unpolish(QWidget *widget) Q_DECL_OVERRIDE;
+ void unpolish(QApplication *app) Q_DECL_OVERRIDE;
protected:
- bool event(QEvent *e);
+ bool event(QEvent *e) Q_DECL_OVERRIDE;
private:
Q_DISABLE_COPY(QProxyStyle)
diff --git a/src/widgets/styles/qstyle.cpp b/src/widgets/styles/qstyle.cpp
index 6072842fc9..8df68d25a5 100644
--- a/src/widgets/styles/qstyle.cpp
+++ b/src/widgets/styles/qstyle.cpp
@@ -1472,6 +1472,11 @@ void QStyle::drawItemPixmap(QPainter *painter, const QRect &rect, int alignment,
\value PM_TreeViewIndentation The indentation of items in a tree view.
This enum value has been introduced in Qt 5.4.
+ \value PM_HeaderDefaultSectionSizeHorizontal The default size of sections
+ in a horizontal header. This enum value has been introduced in Qt 5.5.
+ \value PM_HeaderDefaultSectionSizeVertical The default size of sections
+ in a vertical header. This enum value has been introduced in Qt 5.5.
+
\value PM_CustomBase Base value for custom pixel metrics. Custom
values must be greater than this value.
@@ -1708,6 +1713,32 @@ void QStyle::drawItemPixmap(QPainter *painter, const QRect &rect, int alignment,
other items of the menu. This is supported on most modern
desktop platforms.
+ \value SH_Menu_SubMenuUniDirection Since Qt 5.5. If the cursor has
+ to move towards the submenu (like it is on OS X), or if the
+ cursor can move in any direction as long as it reaches the
+ submenu before the sloppy timeout.
+
+ \value SH_Menu_SubMenuUniDirectionFailCount Since Qt 5.5. When
+ SH_Menu_SubMenuUniDirection is defined this enum defines the
+ number of failed mouse moves before the sloppy submenu is
+ discarded. This can be used to control the "strictness" of the
+ uni direction algorithm.
+
+ \value SH_Menu_SubMenuSloppySelectOtherActions Since Qt 5.5. Should
+ other action items be selected when the mouse moves towards a
+ sloppy submenu.
+
+ \value SH_Menu_SubMenuSloppyCloseTimeout Since Qt 5.5. The timeout
+ used to close sloppy submenus.
+
+ \value SH_Menu_SubMenuResetWhenReenteringParent Since Qt 5.5. When
+ entering parent from child submenu, should the sloppy state be
+ reset, effectively closing the child and making the current
+ submenu active.
+
+ \value SH_Menu_SubMenuDontStartSloppyOnLeave Since Qt 5.5. Do not
+ start sloppy timers when the mouse leaves a sub-menu.
+
\value SH_ScrollView_FrameOnlyAroundContents Whether scrollviews
draw their frame only around contents (like Motif), or around
contents, scroll bars and corner widgets (like Windows).
diff --git a/src/widgets/styles/qstyle.h b/src/widgets/styles/qstyle.h
index 43a49e3746..225146c5bb 100644
--- a/src/widgets/styles/qstyle.h
+++ b/src/widgets/styles/qstyle.h
@@ -550,6 +550,9 @@ public:
PM_SubMenuOverlap,
PM_TreeViewIndentation,
+ PM_HeaderDefaultSectionSizeHorizontal,
+ PM_HeaderDefaultSectionSizeVertical,
+
// do not add any values below/greater than this
PM_CustomBase = 0xf0000000
};
@@ -703,6 +706,12 @@ public:
SH_ComboBox_UseNativePopup,
SH_LineEdit_PasswordMaskDelay,
SH_TabBar_ChangeCurrentDelay,
+ SH_Menu_SubMenuUniDirection,
+ SH_Menu_SubMenuUniDirectionFailCount,
+ SH_Menu_SubMenuSloppySelectOtherActions,
+ SH_Menu_SubMenuSloppyCloseTimeout,
+ SH_Menu_SubMenuResetWhenReenteringParent,
+ SH_Menu_SubMenuDontStartSloppyOnLeave,
// Add new style hint values here
SH_CustomBase = 0xf0000000
diff --git a/src/widgets/styles/qstyleanimation_p.h b/src/widgets/styles/qstyleanimation_p.h
index a9f9325826..7bfdb34e5e 100644
--- a/src/widgets/styles/qstyleanimation_p.h
+++ b/src/widgets/styles/qstyleanimation_p.h
@@ -63,7 +63,7 @@ public:
QObject *target() const;
- int duration() const;
+ int duration() const Q_DECL_OVERRIDE;
void setDuration(int duration);
int delay() const;
@@ -89,7 +89,7 @@ public Q_SLOTS:
protected:
virtual bool isUpdateNeeded() const;
- virtual void updateCurrentTime(int time);
+ virtual void updateCurrentTime(int time) Q_DECL_OVERRIDE;
private:
int _delay;
@@ -113,7 +113,7 @@ public:
void setSpeed(int speed);
protected:
- bool isUpdateNeeded() const;
+ bool isUpdateNeeded() const Q_DECL_OVERRIDE;
private:
int _speed;
@@ -136,7 +136,7 @@ public:
qreal currentValue() const;
protected:
- bool isUpdateNeeded() const;
+ bool isUpdateNeeded() const Q_DECL_OVERRIDE;
private:
qreal _start;
@@ -162,7 +162,7 @@ public:
QImage currentImage() const;
protected:
- virtual void updateCurrentTime(int time);
+ virtual void updateCurrentTime(int time) Q_DECL_OVERRIDE;
private:
Type _type;
@@ -186,7 +186,7 @@ public:
void setActive(bool active);
private slots:
- void updateCurrentTime(int time);
+ void updateCurrentTime(int time) Q_DECL_OVERRIDE;
private:
Mode _mode;
diff --git a/src/widgets/styles/qstyleoption.cpp b/src/widgets/styles/qstyleoption.cpp
index 1d98a56063..027e36387a 100644
--- a/src/widgets/styles/qstyleoption.cpp
+++ b/src/widgets/styles/qstyleoption.cpp
@@ -1626,6 +1626,9 @@ QStyleOptionProgressBar::QStyleOptionProgressBar(int version)
\brief the progress bar's orientation (horizontal or vertical);
the default orentation is Qt::Horizontal
+ \deprecated
+ Use the QStyle::State_Horizontal flag instead (in the the QStyleOption::state member).
+
\sa QProgressBar::orientation
*/
diff --git a/src/widgets/styles/qstyleoption.h b/src/widgets/styles/qstyleoption.h
index a475f485df..4b55cf3faf 100644
--- a/src/widgets/styles/qstyleoption.h
+++ b/src/widgets/styles/qstyleoption.h
@@ -317,7 +317,7 @@ public:
QString text;
Qt::Alignment textAlignment;
bool textVisible;
- Qt::Orientation orientation;
+ Qt::Orientation orientation; // ### Qt 6: remove
bool invertedAppearance;
bool bottomToTop;
diff --git a/src/widgets/styles/qstylesheetstyle.cpp b/src/widgets/styles/qstylesheetstyle.cpp
index e9f20de842..21464ef090 100644
--- a/src/widgets/styles/qstylesheetstyle.cpp
+++ b/src/widgets/styles/qstylesheetstyle.cpp
@@ -1413,7 +1413,7 @@ class QStyleSheetStyleSelector : public StyleSelector
public:
QStyleSheetStyleSelector() { }
- QStringList nodeNames(NodePtr node) const
+ QStringList nodeNames(NodePtr node) const Q_DECL_OVERRIDE
{
if (isNullNode(node))
return QStringList();
@@ -1429,7 +1429,7 @@ public:
} while (metaObject != 0);
return result;
}
- QString attribute(NodePtr node, const QString& name) const
+ QString attribute(NodePtr node, const QString& name) const Q_DECL_OVERRIDE
{
if (isNullNode(node))
return QString();
@@ -1466,7 +1466,7 @@ public:
cache[name] = valueStr;
return valueStr;
}
- bool nodeNameEquals(NodePtr node, const QString& nodeName) const
+ bool nodeNameEquals(NodePtr node, const QString& nodeName) const Q_DECL_OVERRIDE
{
if (isNullNode(node))
return false;
@@ -1489,19 +1489,19 @@ public:
} while (metaObject != 0);
return false;
}
- bool hasAttributes(NodePtr) const
+ bool hasAttributes(NodePtr) const Q_DECL_OVERRIDE
{ return true; }
- QStringList nodeIds(NodePtr node) const
+ QStringList nodeIds(NodePtr node) const Q_DECL_OVERRIDE
{ return isNullNode(node) ? QStringList() : QStringList(OBJECT_PTR(node)->objectName()); }
- bool isNullNode(NodePtr node) const
+ bool isNullNode(NodePtr node) const Q_DECL_OVERRIDE
{ return node.ptr == 0; }
- NodePtr parentNode(NodePtr node) const
+ NodePtr parentNode(NodePtr node) const Q_DECL_OVERRIDE
{ NodePtr n; n.ptr = isNullNode(node) ? 0 : parentObject(OBJECT_PTR(node)); return n; }
- NodePtr previousSiblingNode(NodePtr) const
+ NodePtr previousSiblingNode(NodePtr) const Q_DECL_OVERRIDE
{ NodePtr n; n.ptr = 0; return n; }
- NodePtr duplicateNode(NodePtr node) const
+ NodePtr duplicateNode(NodePtr node) const Q_DECL_OVERRIDE
{ return node; }
- void freeNode(NodePtr) const
+ void freeNode(NodePtr) const Q_DECL_OVERRIDE
{ }
private:
diff --git a/src/widgets/styles/qstylesheetstyle_p.h b/src/widgets/styles/qstylesheetstyle_p.h
index c4e81787b5..212be5f530 100644
--- a/src/widgets/styles/qstylesheetstyle_p.h
+++ b/src/widgets/styles/qstylesheetstyle_p.h
@@ -74,48 +74,48 @@ public:
~QStyleSheetStyle();
void drawComplexControl(ComplexControl cc, const QStyleOptionComplex *opt, QPainter *p,
- const QWidget *w = 0) const;
+ const QWidget *w = 0) const Q_DECL_OVERRIDE;
void drawControl(ControlElement element, const QStyleOption *opt, QPainter *p,
- const QWidget *w = 0) const;
- void drawItemPixmap(QPainter *painter, const QRect &rect, int alignment, const QPixmap &pixmap) const;
+ const QWidget *w = 0) const Q_DECL_OVERRIDE;
+ void drawItemPixmap(QPainter *painter, const QRect &rect, int alignment, const QPixmap &pixmap) const Q_DECL_OVERRIDE;
void drawItemText(QPainter *painter, const QRect& rect, int alignment, const QPalette &pal,
- bool enabled, const QString& text, QPalette::ColorRole textRole = QPalette::NoRole) const;
+ bool enabled, const QString& text, QPalette::ColorRole textRole = QPalette::NoRole) const Q_DECL_OVERRIDE;
void drawPrimitive(PrimitiveElement pe, const QStyleOption *opt, QPainter *p,
- const QWidget *w = 0) const;
+ const QWidget *w = 0) const Q_DECL_OVERRIDE;
QPixmap generatedIconPixmap(QIcon::Mode iconMode, const QPixmap &pixmap,
- const QStyleOption *option) const;
+ const QStyleOption *option) const Q_DECL_OVERRIDE;
SubControl hitTestComplexControl(ComplexControl cc, const QStyleOptionComplex *opt,
- const QPoint &pt, const QWidget *w = 0) const;
- QRect itemPixmapRect(const QRect &rect, int alignment, const QPixmap &pixmap) const;
+ const QPoint &pt, const QWidget *w = 0) const Q_DECL_OVERRIDE;
+ QRect itemPixmapRect(const QRect &rect, int alignment, const QPixmap &pixmap) const Q_DECL_OVERRIDE;
QRect itemTextRect(const QFontMetrics &metrics, const QRect &rect, int alignment, bool enabled,
- const QString &text) const;
- int pixelMetric(PixelMetric metric, const QStyleOption *option = 0, const QWidget *widget = 0) const;
- void polish(QWidget *widget);
- void polish(QApplication *app);
- void polish(QPalette &pal);
+ const QString &text) const Q_DECL_OVERRIDE;
+ int pixelMetric(PixelMetric metric, const QStyleOption *option = 0, const QWidget *widget = 0) const Q_DECL_OVERRIDE;
+ void polish(QWidget *widget) Q_DECL_OVERRIDE;
+ void polish(QApplication *app) Q_DECL_OVERRIDE;
+ void polish(QPalette &pal) Q_DECL_OVERRIDE;
QSize sizeFromContents(ContentsType ct, const QStyleOption *opt,
- const QSize &contentsSize, const QWidget *widget = 0) const;
- QPalette standardPalette() const;
+ const QSize &contentsSize, const QWidget *widget = 0) const Q_DECL_OVERRIDE;
+ QPalette standardPalette() const Q_DECL_OVERRIDE;
QIcon standardIcon(StandardPixmap standardIcon, const QStyleOption *opt = 0,
- const QWidget *widget = 0) const;
+ const QWidget *widget = 0) const Q_DECL_OVERRIDE;
QPixmap standardPixmap(StandardPixmap standardPixmap, const QStyleOption *option = 0,
- const QWidget *w = 0 ) const;
+ const QWidget *w = 0 ) const Q_DECL_OVERRIDE;
int layoutSpacing(QSizePolicy::ControlType control1, QSizePolicy::ControlType control2,
Qt::Orientation orientation, const QStyleOption *option = 0,
- const QWidget *widget = 0) const;
+ const QWidget *widget = 0) const Q_DECL_OVERRIDE;
int styleHint(StyleHint sh, const QStyleOption *opt = 0, const QWidget *w = 0,
- QStyleHintReturn *shret = 0) const;
- QRect subElementRect(SubElement r, const QStyleOption *opt, const QWidget *widget = 0) const;
+ QStyleHintReturn *shret = 0) const Q_DECL_OVERRIDE;
+ QRect subElementRect(SubElement r, const QStyleOption *opt, const QWidget *widget = 0) const Q_DECL_OVERRIDE;
QRect subControlRect(ComplexControl cc, const QStyleOptionComplex *opt, SubControl sc,
- const QWidget *w = 0) const;
+ const QWidget *w = 0) const Q_DECL_OVERRIDE;
// These functions are called from QApplication/QWidget. Be careful.
QStyle *baseStyle() const;
void repolish(QWidget *widget);
void repolish(QApplication *app);
- void unpolish(QWidget *widget);
- void unpolish(QApplication *app);
+ void unpolish(QWidget *widget) Q_DECL_OVERRIDE;
+ void unpolish(QApplication *app) Q_DECL_OVERRIDE;
QStyle *base;
void ref() { ++refcount; }
@@ -128,7 +128,7 @@ public:
bool styleSheetPalette(const QWidget* w, const QStyleOption* opt, QPalette* pal);
protected:
- bool event(QEvent *e);
+ bool event(QEvent *e) Q_DECL_OVERRIDE;
private:
int refcount;
diff --git a/src/widgets/styles/qwindowsstyle.cpp b/src/widgets/styles/qwindowsstyle.cpp
index a10bdc67e1..9deeb725f9 100644
--- a/src/widgets/styles/qwindowsstyle.cpp
+++ b/src/widgets/styles/qwindowsstyle.cpp
@@ -586,6 +586,17 @@ int QWindowsStyle::styleHint(StyleHint hint, const QStyleOption *opt, const QWid
break;
}
#endif // Q_OS_WIN && !Q_OS_WINRT
+ case SH_Menu_SubMenuSloppyCloseTimeout:
+ case SH_Menu_SubMenuPopupDelay: {
+#if defined(Q_OS_WIN) && !defined(Q_OS_WINCE) && !defined(Q_OS_WINRT)
+ DWORD delay;
+ if (SystemParametersInfo(SPI_GETMENUSHOWDELAY, 0, &delay, 0))
+ ret = delay;
+ else
+#endif // Q_OS_WIN && !Q_OS_WINCE && !Q_OS_WINRT
+ ret = 400;
+ break;
+ }
#ifndef QT_NO_RUBBERBAND
case SH_RubberBand_Mask:
if (const QStyleOptionRubberBand *rbOpt = qstyleoption_cast<const QStyleOptionRubberBand *>(opt)) {
diff --git a/src/widgets/styles/qwindowsstyle_p.h b/src/widgets/styles/qwindowsstyle_p.h
index b3c6f831d8..9b3efc6f1f 100644
--- a/src/widgets/styles/qwindowsstyle_p.h
+++ b/src/widgets/styles/qwindowsstyle_p.h
@@ -61,37 +61,37 @@ public:
QWindowsStyle();
~QWindowsStyle();
- void polish(QApplication*);
- void unpolish(QApplication*);
+ void polish(QApplication*) Q_DECL_OVERRIDE;
+ void unpolish(QApplication*) Q_DECL_OVERRIDE;
- void polish(QWidget*);
- void unpolish(QWidget*);
+ void polish(QWidget*) Q_DECL_OVERRIDE;
+ void unpolish(QWidget*) Q_DECL_OVERRIDE;
- void polish(QPalette &);
+ void polish(QPalette &) Q_DECL_OVERRIDE;
void drawPrimitive(PrimitiveElement pe, const QStyleOption *opt, QPainter *p,
- const QWidget *w = 0) const;
+ const QWidget *w = 0) const Q_DECL_OVERRIDE;
void drawControl(ControlElement element, const QStyleOption *opt, QPainter *p,
- const QWidget *w = 0) const;
- QRect subElementRect(SubElement r, const QStyleOption *opt, const QWidget *widget = 0) const;
+ const QWidget *w = 0) const Q_DECL_OVERRIDE;
+ QRect subElementRect(SubElement r, const QStyleOption *opt, const QWidget *widget = 0) const Q_DECL_OVERRIDE;
void drawComplexControl(ComplexControl cc, const QStyleOptionComplex *opt, QPainter *p,
- const QWidget *w = 0) const;
+ const QWidget *w = 0) const Q_DECL_OVERRIDE;
QSize sizeFromContents(ContentsType ct, const QStyleOption *opt,
- const QSize &contentsSize, const QWidget *widget = 0) const;
+ const QSize &contentsSize, const QWidget *widget = 0) const Q_DECL_OVERRIDE;
- int pixelMetric(PixelMetric pm, const QStyleOption *option = 0, const QWidget *widget = 0) const;
+ int pixelMetric(PixelMetric pm, const QStyleOption *option = 0, const QWidget *widget = 0) const Q_DECL_OVERRIDE;
int styleHint(StyleHint hint, const QStyleOption *opt = 0, const QWidget *widget = 0,
- QStyleHintReturn *returnData = 0) const;
+ QStyleHintReturn *returnData = 0) const Q_DECL_OVERRIDE;
QPixmap standardPixmap(StandardPixmap standardPixmap, const QStyleOption *opt,
- const QWidget *widget = 0) const;
+ const QWidget *widget = 0) const Q_DECL_OVERRIDE;
QIcon standardIcon(StandardPixmap standardIcon, const QStyleOption *option = 0,
- const QWidget *widget = 0) const;
+ const QWidget *widget = 0) const Q_DECL_OVERRIDE;
protected:
- bool eventFilter(QObject *o, QEvent *e);
+ bool eventFilter(QObject *o, QEvent *e) Q_DECL_OVERRIDE;
QWindowsStyle(QWindowsStylePrivate &dd);
private:
diff --git a/src/widgets/util/qcompleter.h b/src/widgets/util/qcompleter.h
index 3bee280719..c252284b85 100644
--- a/src/widgets/util/qcompleter.h
+++ b/src/widgets/util/qcompleter.h
@@ -136,8 +136,8 @@ public:
virtual QStringList splitPath(const QString &path) const;
protected:
- bool eventFilter(QObject *o, QEvent *e);
- bool event(QEvent *);
+ bool eventFilter(QObject *o, QEvent *e) Q_DECL_OVERRIDE;
+ bool event(QEvent *) Q_DECL_OVERRIDE;
Q_SIGNALS:
void activated(const QString &text);
diff --git a/src/widgets/util/qcompleter_p.h b/src/widgets/util/qcompleter_p.h
index 50f7cdacdb..b4ead17cab 100644
--- a/src/widgets/util/qcompleter_p.h
+++ b/src/widgets/util/qcompleter_p.h
@@ -167,7 +167,7 @@ class QSortedModelEngine : public QCompletionEngine
{
public:
QSortedModelEngine(QCompleterPrivate *c) : QCompletionEngine(c) { }
- QMatchData filter(const QString&, const QModelIndex&, int);
+ QMatchData filter(const QString&, const QModelIndex&, int) Q_DECL_OVERRIDE;
QIndexMapper indexHint(QString, const QModelIndex&, Qt::SortOrder);
Qt::SortOrder sortOrder(const QModelIndex&) const;
};
@@ -177,8 +177,8 @@ class QUnsortedModelEngine : public QCompletionEngine
public:
QUnsortedModelEngine(QCompleterPrivate *c) : QCompletionEngine(c) { }
- void filterOnDemand(int);
- QMatchData filter(const QString&, const QModelIndex&, int);
+ void filterOnDemand(int) Q_DECL_OVERRIDE;
+ QMatchData filter(const QString&, const QModelIndex&, int) Q_DECL_OVERRIDE;
private:
int buildIndices(const QString& str, const QModelIndex& parent, int n,
const QIndexMapper& iv, QMatchData* m);
@@ -189,7 +189,7 @@ class QCompleterItemDelegate : public QItemDelegate
public:
QCompleterItemDelegate(QAbstractItemView *view)
: QItemDelegate(view), view(view) { }
- void paint(QPainter *p, const QStyleOptionViewItem& opt, const QModelIndex& idx) const {
+ void paint(QPainter *p, const QStyleOptionViewItem& opt, const QModelIndex& idx) const Q_DECL_OVERRIDE {
QStyleOptionViewItem optCopy = opt;
optCopy.showDecorationSelected = true;
if (view->currentIndex() == idx)
@@ -218,16 +218,16 @@ public:
bool setCurrentRow(int row);
QModelIndex currentIndex(bool) const;
- QModelIndex index(int row, int column, const QModelIndex & = QModelIndex()) const;
- int rowCount(const QModelIndex &index = QModelIndex()) const;
- int columnCount(const QModelIndex &index = QModelIndex()) const;
- bool hasChildren(const QModelIndex &parent = QModelIndex()) const;
- QModelIndex parent(const QModelIndex & = QModelIndex()) const { return QModelIndex(); }
- QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const;
+ QModelIndex index(int row, int column, const QModelIndex & = QModelIndex()) const Q_DECL_OVERRIDE;
+ int rowCount(const QModelIndex &index = QModelIndex()) const Q_DECL_OVERRIDE;
+ int columnCount(const QModelIndex &index = QModelIndex()) const Q_DECL_OVERRIDE;
+ bool hasChildren(const QModelIndex &parent = QModelIndex()) const Q_DECL_OVERRIDE;
+ QModelIndex parent(const QModelIndex & = QModelIndex()) const Q_DECL_OVERRIDE { return QModelIndex(); }
+ QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const Q_DECL_OVERRIDE;
- void setSourceModel(QAbstractItemModel *sourceModel);
- QModelIndex mapToSource(const QModelIndex& proxyIndex) const;
- QModelIndex mapFromSource(const QModelIndex& sourceIndex) const;
+ void setSourceModel(QAbstractItemModel *sourceModel) Q_DECL_OVERRIDE;
+ QModelIndex mapToSource(const QModelIndex& proxyIndex) const Q_DECL_OVERRIDE;
+ QModelIndex mapFromSource(const QModelIndex& sourceIndex) const Q_DECL_OVERRIDE;
QCompleterPrivate *c;
QScopedPointer<QCompletionEngine> engine;
diff --git a/src/widgets/util/qflickgesture.cpp b/src/widgets/util/qflickgesture.cpp
index 42ead263f8..f7abd008b7 100644
--- a/src/widgets/util/qflickgesture.cpp
+++ b/src/widgets/util/qflickgesture.cpp
@@ -248,7 +248,7 @@ public:
}
protected:
- void timerEvent(QTimerEvent *e)
+ void timerEvent(QTimerEvent *e) Q_DECL_OVERRIDE
{
if (e->timerId() == pressDelayTimer) {
if (pressDelayEvent && mouseTarget) {
diff --git a/src/widgets/util/qscroller.cpp b/src/widgets/util/qscroller.cpp
index 8cd7b97e30..5235511b6d 100644
--- a/src/widgets/util/qscroller.cpp
+++ b/src/widgets/util/qscroller.cpp
@@ -190,7 +190,7 @@ public:
: d(_d), ignoreUpdate(false), skip(0)
{ }
- int duration() const
+ int duration() const Q_DECL_OVERRIDE
{
return -1;
}
@@ -206,7 +206,7 @@ public:
}
protected:
- void updateCurrentTime(int /*currentTime*/)
+ void updateCurrentTime(int /*currentTime*/) Q_DECL_OVERRIDE
{
if (!ignoreUpdate) {
if (++skip >= d->frameRateSkip()) {
diff --git a/src/widgets/util/qsystemtrayicon.cpp b/src/widgets/util/qsystemtrayicon.cpp
index 7d04cab05e..30ef7e82e5 100644
--- a/src/widgets/util/qsystemtrayicon.cpp
+++ b/src/widgets/util/qsystemtrayicon.cpp
@@ -718,8 +718,8 @@ void QSystemTrayIconPrivate::updateToolTip_sys_qpa()
qpa_sys->updateToolTip(toolTip);
}
-void QSystemTrayIconPrivate::showMessage_sys_qpa(const QString &message,
- const QString &title,
+void QSystemTrayIconPrivate::showMessage_sys_qpa(const QString &title,
+ const QString &message,
QSystemTrayIcon::MessageIcon icon,
int msecs)
{
@@ -737,7 +737,7 @@ void QSystemTrayIconPrivate::showMessage_sys_qpa(const QString &message,
default:
break;
}
- qpa_sys->showMessage(message, title, notificationIcon,
+ qpa_sys->showMessage(title, message, notificationIcon,
static_cast<QPlatformSystemTrayIcon::MessageIcon>(icon), msecs);
}
diff --git a/src/widgets/util/qsystemtrayicon.h b/src/widgets/util/qsystemtrayicon.h
index 4d92d811ed..29a9f849b4 100644
--- a/src/widgets/util/qsystemtrayicon.h
+++ b/src/widgets/util/qsystemtrayicon.h
@@ -102,7 +102,7 @@ Q_SIGNALS:
void messageClicked();
protected:
- bool event(QEvent *event);
+ bool event(QEvent *event) Q_DECL_OVERRIDE;
private:
Q_DISABLE_COPY(QSystemTrayIcon)
diff --git a/src/widgets/util/qsystemtrayicon_p.h b/src/widgets/util/qsystemtrayicon_p.h
index 0dda689c51..fdf91d4c43 100644
--- a/src/widgets/util/qsystemtrayicon_p.h
+++ b/src/widgets/util/qsystemtrayicon_p.h
@@ -77,7 +77,7 @@ public:
void updateToolTip_sys();
void updateMenu_sys();
QRect geometry_sys() const;
- void showMessage_sys(const QString &msg, const QString &title, QSystemTrayIcon::MessageIcon icon, int secs);
+ void showMessage_sys(const QString &title, const QString &msg, QSystemTrayIcon::MessageIcon icon, int secs);
static bool isSystemTrayAvailable_sys();
static bool supportsMessages_sys();
@@ -98,7 +98,7 @@ private:
void updateToolTip_sys_qpa();
void updateMenu_sys_qpa();
QRect geometry_sys_qpa() const;
- void showMessage_sys_qpa(const QString &msg, const QString &title, QSystemTrayIcon::MessageIcon icon, int secs);
+ void showMessage_sys_qpa(const QString &title, const QString &msg, QSystemTrayIcon::MessageIcon icon, int secs);
};
class QBalloonTip : public QWidget
@@ -119,10 +119,10 @@ private:
void balloon(const QPoint&, int, bool);
protected:
- void paintEvent(QPaintEvent *);
- void resizeEvent(QResizeEvent *);
- void mousePressEvent(QMouseEvent *e);
- void timerEvent(QTimerEvent *e);
+ void paintEvent(QPaintEvent *) Q_DECL_OVERRIDE;
+ void resizeEvent(QResizeEvent *) Q_DECL_OVERRIDE;
+ void mousePressEvent(QMouseEvent *e) Q_DECL_OVERRIDE;
+ void timerEvent(QTimerEvent *e) Q_DECL_OVERRIDE;
private:
QSystemTrayIcon *trayIcon;
diff --git a/src/widgets/util/qsystemtrayicon_qpa.cpp b/src/widgets/util/qsystemtrayicon_qpa.cpp
index 08764b405d..7dc848d3ab 100644
--- a/src/widgets/util/qsystemtrayicon_qpa.cpp
+++ b/src/widgets/util/qsystemtrayicon_qpa.cpp
@@ -111,13 +111,11 @@ bool QSystemTrayIconPrivate::supportsMessages_sys()
return false;
}
-void QSystemTrayIconPrivate::showMessage_sys(const QString &message,
- const QString &title,
- QSystemTrayIcon::MessageIcon icon,
- int msecs)
+void QSystemTrayIconPrivate::showMessage_sys(const QString &title, const QString &message,
+ QSystemTrayIcon::MessageIcon icon, int msecs)
{
if (qpa_sys)
- showMessage_sys_qpa(message, title, icon, msecs);
+ showMessage_sys_qpa(title, message, icon, msecs);
}
QT_END_NAMESPACE
diff --git a/src/widgets/util/qsystemtrayicon_x11.cpp b/src/widgets/util/qsystemtrayicon_x11.cpp
index 09f2d6266c..ba80734876 100644
--- a/src/widgets/util/qsystemtrayicon_x11.cpp
+++ b/src/widgets/util/qsystemtrayicon_x11.cpp
@@ -74,12 +74,12 @@ public:
QRect globalGeometry() const;
protected:
- virtual void mousePressEvent(QMouseEvent *ev);
- virtual void mouseDoubleClickEvent(QMouseEvent *ev);
- virtual bool event(QEvent *);
- virtual void paintEvent(QPaintEvent *);
- virtual void resizeEvent(QResizeEvent *);
- virtual void moveEvent(QMoveEvent *);
+ virtual void mousePressEvent(QMouseEvent *ev) Q_DECL_OVERRIDE;
+ virtual void mouseDoubleClickEvent(QMouseEvent *ev) Q_DECL_OVERRIDE;
+ virtual bool event(QEvent *) Q_DECL_OVERRIDE;
+ virtual void paintEvent(QPaintEvent *) Q_DECL_OVERRIDE;
+ virtual void resizeEvent(QResizeEvent *) Q_DECL_OVERRIDE;
+ virtual void moveEvent(QMoveEvent *) Q_DECL_OVERRIDE;
private slots:
void systemTrayWindowChanged(QScreen *screen);
@@ -107,13 +107,29 @@ QSystemTrayIconSys::QSystemTrayIconSys(QSystemTrayIcon *qIn)
// If we have a visual that has an alpha channel, we can paint this widget with a transparent
// background and it will work.
// However, if there's no alpha channel visual, in order for transparent tray icons to work,
- // we do not have a transparent background on the widget, but call xcb_clear_region before
- // painting the icon
+ // we do not have a transparent background on the widget, but set the BackPixmap property of our
+ // window to ParentRelative (so that it inherits the background of its X11 parent window), call
+ // xcb_clear_region before painting (so that the inherited background is visible) and then grab
+ // the just-drawn background from the X11 server.
bool hasAlphaChannel = false;
QMetaObject::invokeMethod(QGuiApplication::platformNativeInterface(),
"systrayVisualHasAlphaChannel", Qt::DirectConnection,
Q_RETURN_ARG(bool, hasAlphaChannel));
setAttribute(Qt::WA_TranslucentBackground, hasAlphaChannel);
+ if (!hasAlphaChannel) {
+ createWinId();
+ QMetaObject::invokeMethod(QGuiApplication::platformNativeInterface(),
+ "setParentRelativeBackPixmap", Qt::DirectConnection,
+ Q_ARG(const QWindow *, windowHandle())
+ );
+
+ // XXX: This is actually required, but breaks things ("QWidget::paintEngine: Should no
+ // longer be called"). Why is this needed? When the widget is drawn, we use tricks to grab
+ // the tray icon's background from the server. If the tray icon isn't visible (because
+ // another window is on top of it), the trick fails and instead uses the content of that
+ // other window as the background.
+ // setAttribute(Qt::WA_PaintOnScreen);
+ }
addToTray();
}
@@ -214,11 +230,18 @@ void QSystemTrayIconSys::paintEvent(QPaintEvent *)
painter.setCompositionMode(QPainter::CompositionMode_Source);
painter.fillRect(rect, Qt::transparent);
} else {
+ // Without Qt::WA_TranslucentBackground, we use a ParentRelative BackPixmap and jump through
+ // some hops to draw this background below our icon. This clears the whole tray icon to its
+ // background color and thus causes flickering (you can see that the icon is being
+ // repainted). However, we can't really do much about this.
QMetaObject::invokeMethod(QGuiApplication::platformNativeInterface(),
"clearRegion", Qt::DirectConnection,
Q_ARG(const QWindow *, windowHandle()),
Q_ARG(const QRect&, rect)
);
+ painter.drawPixmap(QPoint(0, 0),
+ QGuiApplication::primaryScreen()->grabWindow(winId(),
+ 0, 0, rect.size().width(), rect.size().height()));
}
painter.setCompositionMode(QPainter::CompositionMode_SourceOver);
q->icon().paint(&painter, rect);
@@ -341,11 +364,11 @@ bool QSystemTrayIconPrivate::supportsMessages_sys()
return true;
}
-void QSystemTrayIconPrivate::showMessage_sys(const QString &message, const QString &title,
+void QSystemTrayIconPrivate::showMessage_sys(const QString &title, const QString &message,
QSystemTrayIcon::MessageIcon icon, int msecs)
{
if (qpa_sys) {
- showMessage_sys_qpa(message, title, icon, msecs);
+ showMessage_sys_qpa(title, message, icon, msecs);
return;
}
if (!sys)
diff --git a/src/widgets/util/qundoview.cpp b/src/widgets/util/qundoview.cpp
index 970541cf73..4ead2910a2 100644
--- a/src/widgets/util/qundoview.cpp
+++ b/src/widgets/util/qundoview.cpp
@@ -53,11 +53,11 @@ public:
QUndoStack *stack() const;
virtual QModelIndex index(int row, int column,
- const QModelIndex &parent = QModelIndex()) const;
- virtual QModelIndex parent(const QModelIndex &child) const;
- virtual int rowCount(const QModelIndex &parent = QModelIndex()) const;
- virtual int columnCount(const QModelIndex &parent = QModelIndex()) const;
- virtual QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
+ const QModelIndex &parent = QModelIndex()) const Q_DECL_OVERRIDE;
+ virtual QModelIndex parent(const QModelIndex &child) const Q_DECL_OVERRIDE;
+ virtual int rowCount(const QModelIndex &parent = QModelIndex()) const Q_DECL_OVERRIDE;
+ virtual int columnCount(const QModelIndex &parent = QModelIndex()) const Q_DECL_OVERRIDE;
+ virtual QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const Q_DECL_OVERRIDE;
QModelIndex selectedIndex() const;
QItemSelectionModel *selectionModel() const;
diff --git a/src/widgets/widgets/qabstractbutton.h b/src/widgets/widgets/qabstractbutton.h
index 7fa50f4c0b..c80e2e9d5d 100644
--- a/src/widgets/widgets/qabstractbutton.h
+++ b/src/widgets/widgets/qabstractbutton.h
@@ -122,16 +122,16 @@ protected:
virtual void checkStateSet();
virtual void nextCheckState();
- bool event(QEvent *e);
- void keyPressEvent(QKeyEvent *e);
- void keyReleaseEvent(QKeyEvent *e);
- void mousePressEvent(QMouseEvent *e);
- void mouseReleaseEvent(QMouseEvent *e);
- void mouseMoveEvent(QMouseEvent *e);
- void focusInEvent(QFocusEvent *e);
- void focusOutEvent(QFocusEvent *e);
- void changeEvent(QEvent *e);
- void timerEvent(QTimerEvent *e);
+ bool event(QEvent *e) Q_DECL_OVERRIDE;
+ void keyPressEvent(QKeyEvent *e) Q_DECL_OVERRIDE;
+ void keyReleaseEvent(QKeyEvent *e) Q_DECL_OVERRIDE;
+ void mousePressEvent(QMouseEvent *e) Q_DECL_OVERRIDE;
+ void mouseReleaseEvent(QMouseEvent *e) Q_DECL_OVERRIDE;
+ void mouseMoveEvent(QMouseEvent *e) Q_DECL_OVERRIDE;
+ void focusInEvent(QFocusEvent *e) Q_DECL_OVERRIDE;
+ void focusOutEvent(QFocusEvent *e) Q_DECL_OVERRIDE;
+ void changeEvent(QEvent *e) Q_DECL_OVERRIDE;
+ void timerEvent(QTimerEvent *e) Q_DECL_OVERRIDE;
protected:
diff --git a/src/widgets/widgets/qabstractscrollarea.cpp b/src/widgets/widgets/qabstractscrollarea.cpp
index 4cafeafcec..bcf0bbe1fc 100644
--- a/src/widgets/widgets/qabstractscrollarea.cpp
+++ b/src/widgets/widgets/qabstractscrollarea.cpp
@@ -923,7 +923,7 @@ QWidgetList QAbstractScrollArea::scrollBarWidgets(Qt::Alignment alignment)
they should not call this function.
By default all margins are zero.
-
+ \sa viewportMargins()
*/
void QAbstractScrollArea::setViewportMargins(int left, int top, int right, int bottom)
{
@@ -943,7 +943,7 @@ void QAbstractScrollArea::setViewportMargins(int left, int top, int right, int b
area.
By default all margins are zero.
-
+ \sa viewportMargins()
*/
void QAbstractScrollArea::setViewportMargins(const QMargins &margins)
{
@@ -951,6 +951,19 @@ void QAbstractScrollArea::setViewportMargins(const QMargins &margins)
margins.right(), margins.bottom());
}
+/*!
+ \since 5.5
+ Returns the margins around the scrolling area.
+ By default all the margins are zero.
+
+ \sa setViewportMargins()
+*/
+QMargins QAbstractScrollArea::viewportMargins() const
+{
+ Q_D(const QAbstractScrollArea);
+ return QMargins(d->left, d->top, d->right, d->bottom);
+}
+
/*! \internal */
bool QAbstractScrollArea::eventFilter(QObject *o, QEvent *e)
{
diff --git a/src/widgets/widgets/qabstractscrollarea.h b/src/widgets/widgets/qabstractscrollarea.h
index a3f6c3e2d4..6a9a86b07f 100644
--- a/src/widgets/widgets/qabstractscrollarea.h
+++ b/src/widgets/widgets/qabstractscrollarea.h
@@ -84,9 +84,9 @@ public:
void setViewport(QWidget *widget);
QSize maximumViewportSize() const;
- QSize minimumSizeHint() const;
+ QSize minimumSizeHint() const Q_DECL_OVERRIDE;
- QSize sizeHint() const;
+ QSize sizeHint() const Q_DECL_OVERRIDE;
virtual void setupViewport(QWidget *viewport);
@@ -97,31 +97,32 @@ protected:
QAbstractScrollArea(QAbstractScrollAreaPrivate &dd, QWidget *parent = 0);
void setViewportMargins(int left, int top, int right, int bottom);
void setViewportMargins(const QMargins &margins);
+ QMargins viewportMargins() const;
- bool eventFilter(QObject *, QEvent *);
- bool event(QEvent *);
+ bool eventFilter(QObject *, QEvent *) Q_DECL_OVERRIDE;
+ bool event(QEvent *) Q_DECL_OVERRIDE;
virtual bool viewportEvent(QEvent *);
- void resizeEvent(QResizeEvent *);
- void paintEvent(QPaintEvent *);
- void mousePressEvent(QMouseEvent *);
- void mouseReleaseEvent(QMouseEvent *);
- void mouseDoubleClickEvent(QMouseEvent *);
- void mouseMoveEvent(QMouseEvent *);
+ void resizeEvent(QResizeEvent *) Q_DECL_OVERRIDE;
+ void paintEvent(QPaintEvent *) Q_DECL_OVERRIDE;
+ void mousePressEvent(QMouseEvent *) Q_DECL_OVERRIDE;
+ void mouseReleaseEvent(QMouseEvent *) Q_DECL_OVERRIDE;
+ void mouseDoubleClickEvent(QMouseEvent *) Q_DECL_OVERRIDE;
+ void mouseMoveEvent(QMouseEvent *) Q_DECL_OVERRIDE;
#ifndef QT_NO_WHEELEVENT
- void wheelEvent(QWheelEvent *);
+ void wheelEvent(QWheelEvent *) Q_DECL_OVERRIDE;
#endif
#ifndef QT_NO_CONTEXTMENU
- void contextMenuEvent(QContextMenuEvent *);
+ void contextMenuEvent(QContextMenuEvent *) Q_DECL_OVERRIDE;
#endif
#ifndef QT_NO_DRAGANDDROP
- void dragEnterEvent(QDragEnterEvent *);
- void dragMoveEvent(QDragMoveEvent *);
- void dragLeaveEvent(QDragLeaveEvent *);
- void dropEvent(QDropEvent *);
+ void dragEnterEvent(QDragEnterEvent *) Q_DECL_OVERRIDE;
+ void dragMoveEvent(QDragMoveEvent *) Q_DECL_OVERRIDE;
+ void dragLeaveEvent(QDragLeaveEvent *) Q_DECL_OVERRIDE;
+ void dropEvent(QDropEvent *) Q_DECL_OVERRIDE;
#endif
- void keyPressEvent(QKeyEvent *);
+ void keyPressEvent(QKeyEvent *) Q_DECL_OVERRIDE;
virtual void scrollContentsBy(int dx, int dy);
diff --git a/src/widgets/widgets/qabstractscrollarea_p.h b/src/widgets/widgets/qabstractscrollarea_p.h
index aaf93a3352..a70b4df5eb 100644
--- a/src/widgets/widgets/qabstractscrollarea_p.h
+++ b/src/widgets/widgets/qabstractscrollarea_p.h
@@ -114,7 +114,7 @@ class QAbstractScrollAreaFilter : public QObject
public:
QAbstractScrollAreaFilter(QAbstractScrollAreaPrivate *p) : d(p)
{ setObjectName(QLatin1String("qt_abstractscrollarea_filter")); }
- bool eventFilter(QObject *o, QEvent *e)
+ bool eventFilter(QObject *o, QEvent *e) Q_DECL_OVERRIDE
{ return (o == d->viewport ? d->viewportEvent(e) : false); }
private:
QAbstractScrollAreaPrivate *d;
diff --git a/src/widgets/widgets/qabstractslider.h b/src/widgets/widgets/qabstractslider.h
index 99312a0ef7..3b107d5502 100644
--- a/src/widgets/widgets/qabstractslider.h
+++ b/src/widgets/widgets/qabstractslider.h
@@ -122,7 +122,7 @@ Q_SIGNALS:
void actionTriggered(int action);
protected:
- bool event(QEvent *e);
+ bool event(QEvent *e) Q_DECL_OVERRIDE;
void setRepeatAction(SliderAction action, int thresholdTime = 500, int repeatTime = 50);
SliderAction repeatAction() const;
@@ -135,12 +135,12 @@ protected:
};
virtual void sliderChange(SliderChange change);
- void keyPressEvent(QKeyEvent *ev);
- void timerEvent(QTimerEvent *);
+ void keyPressEvent(QKeyEvent *ev) Q_DECL_OVERRIDE;
+ void timerEvent(QTimerEvent *) Q_DECL_OVERRIDE;
#ifndef QT_NO_WHEELEVENT
- void wheelEvent(QWheelEvent *e);
+ void wheelEvent(QWheelEvent *e) Q_DECL_OVERRIDE;
#endif
- void changeEvent(QEvent *e);
+ void changeEvent(QEvent *e) Q_DECL_OVERRIDE;
protected:
diff --git a/src/widgets/widgets/qcalendarwidget.cpp b/src/widgets/widgets/qcalendarwidget.cpp
index fa3dbc1f32..0071143958 100644
--- a/src/widgets/widgets/qcalendarwidget.cpp
+++ b/src/widgets/widgets/qcalendarwidget.cpp
@@ -104,11 +104,11 @@ class QCalendarDayValidator : public QCalendarDateSectionValidator
public:
QCalendarDayValidator();
- virtual Section handleKey(int key);
- virtual QDate applyToDate(const QDate &date) const;
- virtual void setDate(const QDate &date);
- virtual QString text() const;
- virtual QString text(const QDate &date, int repeat) const;
+ virtual Section handleKey(int key) Q_DECL_OVERRIDE;
+ virtual QDate applyToDate(const QDate &date) const Q_DECL_OVERRIDE;
+ virtual void setDate(const QDate &date) Q_DECL_OVERRIDE;
+ virtual QString text() const Q_DECL_OVERRIDE;
+ virtual QString text(const QDate &date, int repeat) const Q_DECL_OVERRIDE;
private:
int m_pos;
int m_day;
@@ -220,11 +220,11 @@ class QCalendarMonthValidator : public QCalendarDateSectionValidator
public:
QCalendarMonthValidator();
- virtual Section handleKey(int key);
- virtual QDate applyToDate(const QDate &date) const;
- virtual void setDate(const QDate &date);
- virtual QString text() const;
- virtual QString text(const QDate &date, int repeat) const;
+ virtual Section handleKey(int key) Q_DECL_OVERRIDE;
+ virtual QDate applyToDate(const QDate &date) const Q_DECL_OVERRIDE;
+ virtual void setDate(const QDate &date) Q_DECL_OVERRIDE;
+ virtual QString text() const Q_DECL_OVERRIDE;
+ virtual QString text(const QDate &date, int repeat) const Q_DECL_OVERRIDE;
private:
int m_pos;
int m_month;
@@ -337,11 +337,11 @@ class QCalendarYearValidator : public QCalendarDateSectionValidator
public:
QCalendarYearValidator();
- virtual Section handleKey(int key);
- virtual QDate applyToDate(const QDate &date) const;
- virtual void setDate(const QDate &date);
- virtual QString text() const;
- virtual QString text(const QDate &date, int repeat) const;
+ virtual Section handleKey(int key) Q_DECL_OVERRIDE;
+ virtual QDate applyToDate(const QDate &date) const Q_DECL_OVERRIDE;
+ virtual void setDate(const QDate &date) Q_DECL_OVERRIDE;
+ virtual QString text() const Q_DECL_OVERRIDE;
+ virtual QString text(const QDate &date, int repeat) const Q_DECL_OVERRIDE;
private:
int pow10(int n);
int m_pos;
@@ -683,8 +683,8 @@ public:
QDate date() const;
void setDate(const QDate &date);
- bool eventFilter(QObject *o, QEvent *e);
- void timerEvent(QTimerEvent *e);
+ bool eventFilter(QObject *o, QEvent *e) Q_DECL_OVERRIDE;
+ void timerEvent(QTimerEvent *e) Q_DECL_OVERRIDE;
signals:
void dateChanged(const QDate &date);
@@ -853,32 +853,32 @@ class QCalendarModel : public QAbstractTableModel
public:
QCalendarModel(QObject *parent = 0);
- int rowCount(const QModelIndex &) const
+ int rowCount(const QModelIndex &) const Q_DECL_OVERRIDE
{ return RowCount + m_firstRow; }
- int columnCount(const QModelIndex &) const
+ int columnCount(const QModelIndex &) const Q_DECL_OVERRIDE
{ return ColumnCount + m_firstColumn; }
- QVariant data(const QModelIndex &index, int role) const;
- Qt::ItemFlags flags(const QModelIndex &index) const;
+ QVariant data(const QModelIndex &index, int role) const Q_DECL_OVERRIDE;
+ Qt::ItemFlags flags(const QModelIndex &index) const Q_DECL_OVERRIDE;
- bool insertRows(int row, int count, const QModelIndex &parent = QModelIndex())
+ bool insertRows(int row, int count, const QModelIndex &parent = QModelIndex()) Q_DECL_OVERRIDE
{
beginInsertRows(parent, row, row + count - 1);
endInsertRows();
return true;
}
- bool insertColumns(int column, int count, const QModelIndex &parent = QModelIndex())
+ bool insertColumns(int column, int count, const QModelIndex &parent = QModelIndex()) Q_DECL_OVERRIDE
{
beginInsertColumns(parent, column, column + count - 1);
endInsertColumns();
return true;
}
- bool removeRows(int row, int count, const QModelIndex &parent = QModelIndex())
+ bool removeRows(int row, int count, const QModelIndex &parent = QModelIndex()) Q_DECL_OVERRIDE
{
beginRemoveRows(parent, row, row + count - 1);
endRemoveRows();
return true;
}
- bool removeColumns(int column, int count, const QModelIndex &parent = QModelIndex())
+ bool removeColumns(int column, int count, const QModelIndex &parent = QModelIndex()) Q_DECL_OVERRIDE
{
beginRemoveColumns(parent, column, column + count - 1);
endRemoveColumns();
@@ -939,7 +939,7 @@ public:
void internalUpdate() { updateGeometries(); }
void setReadOnly(bool enable);
- virtual void keyboardSearch(const QString & search) { Q_UNUSED(search) }
+ virtual void keyboardSearch(const QString & search) Q_DECL_OVERRIDE { Q_UNUSED(search) }
signals:
void showDate(const QDate &date);
@@ -947,16 +947,16 @@ signals:
void clicked(const QDate &date);
void editingFinished();
protected:
- QModelIndex moveCursor(CursorAction cursorAction, Qt::KeyboardModifiers modifiers);
- void mouseDoubleClickEvent(QMouseEvent *event);
- void mousePressEvent(QMouseEvent *event);
- void mouseMoveEvent(QMouseEvent *event);
- void mouseReleaseEvent(QMouseEvent *event);
+ QModelIndex moveCursor(CursorAction cursorAction, Qt::KeyboardModifiers modifiers) Q_DECL_OVERRIDE;
+ void mouseDoubleClickEvent(QMouseEvent *event) Q_DECL_OVERRIDE;
+ void mousePressEvent(QMouseEvent *event) Q_DECL_OVERRIDE;
+ void mouseMoveEvent(QMouseEvent *event) Q_DECL_OVERRIDE;
+ void mouseReleaseEvent(QMouseEvent *event) Q_DECL_OVERRIDE;
#ifndef QT_NO_WHEELEVENT
- void wheelEvent(QWheelEvent *event);
+ void wheelEvent(QWheelEvent *event) Q_DECL_OVERRIDE;
#endif
- void keyPressEvent(QKeyEvent *event);
- bool event(QEvent *event);
+ void keyPressEvent(QKeyEvent *event) Q_DECL_OVERRIDE;
+ bool event(QEvent *event) Q_DECL_OVERRIDE;
QDate handleMouseEvent(QMouseEvent *event);
public:
@@ -1555,7 +1555,7 @@ public:
: QItemDelegate(parent), calendarWidgetPrivate(w)
{ }
virtual void paint(QPainter *painter, const QStyleOptionViewItem &option,
- const QModelIndex &index) const;
+ const QModelIndex &index) const Q_DECL_OVERRIDE;
void paintCell(QPainter *painter, const QRect &rect, const QDate &date) const;
private:
@@ -1571,7 +1571,7 @@ public:
: QToolButton(parent)
{ }
protected:
- void paintEvent(QPaintEvent *e)
+ void paintEvent(QPaintEvent *e) Q_DECL_OVERRIDE
{
Q_UNUSED(e)
@@ -1599,7 +1599,7 @@ class QPrevNextCalButton : public QToolButton
public:
QPrevNextCalButton(QWidget *parent) : QToolButton(parent) {}
protected:
- void paintEvent(QPaintEvent *) {
+ void paintEvent(QPaintEvent *) Q_DECL_OVERRIDE {
QStylePainter painter(this);
QStyleOptionToolButton opt;
initStyleOption(&opt);
diff --git a/src/widgets/widgets/qcalendarwidget.h b/src/widgets/widgets/qcalendarwidget.h
index e838098e53..f039fdf6c9 100644
--- a/src/widgets/widgets/qcalendarwidget.h
+++ b/src/widgets/widgets/qcalendarwidget.h
@@ -86,8 +86,8 @@ public:
explicit QCalendarWidget(QWidget *parent = 0);
~QCalendarWidget();
- virtual QSize sizeHint() const;
- virtual QSize minimumSizeHint() const;
+ virtual QSize sizeHint() const Q_DECL_OVERRIDE;
+ virtual QSize minimumSizeHint() const Q_DECL_OVERRIDE;
QDate selectedDate() const;
@@ -132,11 +132,11 @@ public:
void setDateEditAcceptDelay(int delay);
protected:
- bool event(QEvent *event);
- bool eventFilter(QObject *watched, QEvent *event);
- void mousePressEvent(QMouseEvent *event);
- void resizeEvent(QResizeEvent * event);
- void keyPressEvent(QKeyEvent * event);
+ bool event(QEvent *event) Q_DECL_OVERRIDE;
+ bool eventFilter(QObject *watched, QEvent *event) Q_DECL_OVERRIDE;
+ void mousePressEvent(QMouseEvent *event) Q_DECL_OVERRIDE;
+ void resizeEvent(QResizeEvent * event) Q_DECL_OVERRIDE;
+ void keyPressEvent(QKeyEvent * event) Q_DECL_OVERRIDE;
virtual void paintCell(QPainter *painter, const QRect &rect, const QDate &date) const;
void updateCell(const QDate &date);
diff --git a/src/widgets/widgets/qcheckbox.h b/src/widgets/widgets/qcheckbox.h
index fe954571aa..6586793db2 100644
--- a/src/widgets/widgets/qcheckbox.h
+++ b/src/widgets/widgets/qcheckbox.h
@@ -53,8 +53,8 @@ public:
explicit QCheckBox(const QString &text, QWidget *parent=0);
~QCheckBox();
- QSize sizeHint() const;
- QSize minimumSizeHint() const;
+ QSize sizeHint() const Q_DECL_OVERRIDE;
+ QSize minimumSizeHint() const Q_DECL_OVERRIDE;
void setTristate(bool y = true);
bool isTristate() const;
@@ -66,12 +66,12 @@ Q_SIGNALS:
void stateChanged(int);
protected:
- bool event(QEvent *e);
- bool hitButton(const QPoint &pos) const;
- void checkStateSet();
- void nextCheckState();
- void paintEvent(QPaintEvent *);
- void mouseMoveEvent(QMouseEvent *);
+ bool event(QEvent *e) Q_DECL_OVERRIDE;
+ bool hitButton(const QPoint &pos) const Q_DECL_OVERRIDE;
+ void checkStateSet() Q_DECL_OVERRIDE;
+ void nextCheckState() Q_DECL_OVERRIDE;
+ void paintEvent(QPaintEvent *) Q_DECL_OVERRIDE;
+ void mouseMoveEvent(QMouseEvent *) Q_DECL_OVERRIDE;
void initStyleOption(QStyleOptionButton *option) const;
diff --git a/src/widgets/widgets/qcombobox.cpp b/src/widgets/widgets/qcombobox.cpp
index 40cf2f0f95..a83aecf52c 100644
--- a/src/widgets/widgets/qcombobox.cpp
+++ b/src/widgets/widgets/qcombobox.cpp
@@ -1931,6 +1931,9 @@ void QComboBox::setModel(QAbstractItemModel *model)
return;
}
+ if (model == d->model)
+ return;
+
#ifndef QT_NO_COMPLETER
if (d->lineEdit && d->lineEdit->completer()
&& d->lineEdit->completer() == d->completer)
diff --git a/src/widgets/widgets/qcombobox.h b/src/widgets/widgets/qcombobox.h
index 806653d2d8..7e399ec1f5 100644
--- a/src/widgets/widgets/qcombobox.h
+++ b/src/widgets/widgets/qcombobox.h
@@ -188,14 +188,14 @@ public:
QAbstractItemView *view() const;
void setView(QAbstractItemView *itemView);
- QSize sizeHint() const;
- QSize minimumSizeHint() const;
+ QSize sizeHint() const Q_DECL_OVERRIDE;
+ QSize minimumSizeHint() const Q_DECL_OVERRIDE;
virtual void showPopup();
virtual void hidePopup();
- bool event(QEvent *event);
- QVariant inputMethodQuery(Qt::InputMethodQuery) const;
+ bool event(QEvent *event) Q_DECL_OVERRIDE;
+ QVariant inputMethodQuery(Qt::InputMethodQuery) const Q_DECL_OVERRIDE;
public Q_SLOTS:
void clear();
@@ -215,22 +215,22 @@ Q_SIGNALS:
void currentTextChanged(const QString &);
protected:
- void focusInEvent(QFocusEvent *e);
- void focusOutEvent(QFocusEvent *e);
- void changeEvent(QEvent *e);
- void resizeEvent(QResizeEvent *e);
- void paintEvent(QPaintEvent *e);
- void showEvent(QShowEvent *e);
- void hideEvent(QHideEvent *e);
- void mousePressEvent(QMouseEvent *e);
- void mouseReleaseEvent(QMouseEvent *e);
- void keyPressEvent(QKeyEvent *e);
- void keyReleaseEvent(QKeyEvent *e);
+ void focusInEvent(QFocusEvent *e) Q_DECL_OVERRIDE;
+ void focusOutEvent(QFocusEvent *e) Q_DECL_OVERRIDE;
+ void changeEvent(QEvent *e) Q_DECL_OVERRIDE;
+ void resizeEvent(QResizeEvent *e) Q_DECL_OVERRIDE;
+ void paintEvent(QPaintEvent *e) Q_DECL_OVERRIDE;
+ void showEvent(QShowEvent *e) Q_DECL_OVERRIDE;
+ void hideEvent(QHideEvent *e) Q_DECL_OVERRIDE;
+ void mousePressEvent(QMouseEvent *e) Q_DECL_OVERRIDE;
+ void mouseReleaseEvent(QMouseEvent *e) Q_DECL_OVERRIDE;
+ void keyPressEvent(QKeyEvent *e) Q_DECL_OVERRIDE;
+ void keyReleaseEvent(QKeyEvent *e) Q_DECL_OVERRIDE;
#ifndef QT_NO_WHEELEVENT
- void wheelEvent(QWheelEvent *e);
+ void wheelEvent(QWheelEvent *e) Q_DECL_OVERRIDE;
#endif
- void contextMenuEvent(QContextMenuEvent *e);
- void inputMethodEvent(QInputMethodEvent *);
+ void contextMenuEvent(QContextMenuEvent *e) Q_DECL_OVERRIDE;
+ void inputMethodEvent(QInputMethodEvent *) Q_DECL_OVERRIDE;
void initStyleOption(QStyleOptionComboBox *option) const;
diff --git a/src/widgets/widgets/qcommandlinkbutton.h b/src/widgets/widgets/qcommandlinkbutton.h
index bfef2e300d..582f666e83 100644
--- a/src/widgets/widgets/qcommandlinkbutton.h
+++ b/src/widgets/widgets/qcommandlinkbutton.h
@@ -58,11 +58,11 @@ public:
void setDescription(const QString &description);
protected:
- QSize sizeHint() const;
- int heightForWidth(int) const;
- QSize minimumSizeHint() const;
- bool event(QEvent *e);
- void paintEvent(QPaintEvent *);
+ QSize sizeHint() const Q_DECL_OVERRIDE;
+ int heightForWidth(int) const Q_DECL_OVERRIDE;
+ QSize minimumSizeHint() const Q_DECL_OVERRIDE;
+ bool event(QEvent *e) Q_DECL_OVERRIDE;
+ void paintEvent(QPaintEvent *) Q_DECL_OVERRIDE;
private:
Q_DISABLE_COPY(QCommandLinkButton)
diff --git a/src/widgets/widgets/qdial.cpp b/src/widgets/widgets/qdial.cpp
index 0dd6515f5b..a9de9a7154 100644
--- a/src/widgets/widgets/qdial.cpp
+++ b/src/widgets/widgets/qdial.cpp
@@ -75,7 +75,7 @@ public:
int valueFromPoint(const QPoint &) const;
double angle(const QPoint &, const QPoint &) const;
void init();
- virtual int bound(int val) const;
+ virtual int bound(int val) const Q_DECL_OVERRIDE;
};
void QDialPrivate::init()
diff --git a/src/widgets/widgets/qdial.h b/src/widgets/widgets/qdial.h
index de233b09b7..acaf6c8c9e 100644
--- a/src/widgets/widgets/qdial.h
+++ b/src/widgets/widgets/qdial.h
@@ -66,23 +66,23 @@ public:
qreal notchTarget() const;
bool notchesVisible() const;
- QSize sizeHint() const;
- QSize minimumSizeHint() const;
+ QSize sizeHint() const Q_DECL_OVERRIDE;
+ QSize minimumSizeHint() const Q_DECL_OVERRIDE;
public Q_SLOTS:
void setNotchesVisible(bool visible);
void setWrapping(bool on);
protected:
- bool event(QEvent *e);
- void resizeEvent(QResizeEvent *re);
- void paintEvent(QPaintEvent *pe);
+ bool event(QEvent *e) Q_DECL_OVERRIDE;
+ void resizeEvent(QResizeEvent *re) Q_DECL_OVERRIDE;
+ void paintEvent(QPaintEvent *pe) Q_DECL_OVERRIDE;
- void mousePressEvent(QMouseEvent *me);
- void mouseReleaseEvent(QMouseEvent *me);
- void mouseMoveEvent(QMouseEvent *me);
+ void mousePressEvent(QMouseEvent *me) Q_DECL_OVERRIDE;
+ void mouseReleaseEvent(QMouseEvent *me) Q_DECL_OVERRIDE;
+ void mouseMoveEvent(QMouseEvent *me) Q_DECL_OVERRIDE;
- void sliderChange(SliderChange change);
+ void sliderChange(SliderChange change) Q_DECL_OVERRIDE;
void initStyleOption(QStyleOptionSlider *option) const;
diff --git a/src/widgets/widgets/qdialogbuttonbox.h b/src/widgets/widgets/qdialogbuttonbox.h
index e20a166d29..7bf497e3e5 100644
--- a/src/widgets/widgets/qdialogbuttonbox.h
+++ b/src/widgets/widgets/qdialogbuttonbox.h
@@ -140,8 +140,8 @@ Q_SIGNALS:
void rejected();
protected:
- void changeEvent(QEvent *event);
- bool event(QEvent *event);
+ void changeEvent(QEvent *event) Q_DECL_OVERRIDE;
+ bool event(QEvent *event) Q_DECL_OVERRIDE;
private:
Q_DISABLE_COPY(QDialogButtonBox)
diff --git a/src/widgets/widgets/qdockwidget.cpp b/src/widgets/widgets/qdockwidget.cpp
index 93e6131ab9..121fb2da49 100644
--- a/src/widgets/widgets/qdockwidget.cpp
+++ b/src/widgets/widgets/qdockwidget.cpp
@@ -109,13 +109,13 @@ class QDockWidgetTitleButton : public QAbstractButton
public:
QDockWidgetTitleButton(QDockWidget *dockWidget);
- QSize sizeHint() const;
+ QSize sizeHint() const Q_DECL_OVERRIDE;
inline QSize minimumSizeHint() const
{ return sizeHint(); }
- void enterEvent(QEvent *event);
- void leaveEvent(QEvent *event);
- void paintEvent(QPaintEvent *event);
+ void enterEvent(QEvent *event) Q_DECL_OVERRIDE;
+ void leaveEvent(QEvent *event) Q_DECL_OVERRIDE;
+ void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE;
};
diff --git a/src/widgets/widgets/qdockwidget.h b/src/widgets/widgets/qdockwidget.h
index 70ee2a4dcb..fb5c2c375a 100644
--- a/src/widgets/widgets/qdockwidget.h
+++ b/src/widgets/widgets/qdockwidget.h
@@ -106,10 +106,10 @@ Q_SIGNALS:
void dockLocationChanged(Qt::DockWidgetArea area);
protected:
- void changeEvent(QEvent *event);
- void closeEvent(QCloseEvent *event);
- void paintEvent(QPaintEvent *event);
- bool event(QEvent *event);
+ void changeEvent(QEvent *event) Q_DECL_OVERRIDE;
+ void closeEvent(QCloseEvent *event) Q_DECL_OVERRIDE;
+ void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE;
+ bool event(QEvent *event) Q_DECL_OVERRIDE;
void initStyleOption(QStyleOptionDockWidget *option) const;
private:
diff --git a/src/widgets/widgets/qdockwidget_p.h b/src/widgets/widgets/qdockwidget_p.h
index 7d75b4859c..e8c4720a98 100644
--- a/src/widgets/widgets/qdockwidget_p.h
+++ b/src/widgets/widgets/qdockwidget_p.h
@@ -128,18 +128,18 @@ class Q_WIDGETS_EXPORT QDockWidgetLayout : public QLayout
public:
QDockWidgetLayout(QWidget *parent = 0);
~QDockWidgetLayout();
- void addItem(QLayoutItem *item);
- QLayoutItem *itemAt(int index) const;
- QLayoutItem *takeAt(int index);
- int count() const;
+ void addItem(QLayoutItem *item) Q_DECL_OVERRIDE;
+ QLayoutItem *itemAt(int index) const Q_DECL_OVERRIDE;
+ QLayoutItem *takeAt(int index) Q_DECL_OVERRIDE;
+ int count() const Q_DECL_OVERRIDE;
- QSize maximumSize() const;
- QSize minimumSize() const;
- QSize sizeHint() const;
+ QSize maximumSize() const Q_DECL_OVERRIDE;
+ QSize minimumSize() const Q_DECL_OVERRIDE;
+ QSize sizeHint() const Q_DECL_OVERRIDE;
QSize sizeFromContent(const QSize &content, bool floating) const;
- void setGeometry(const QRect &r);
+ void setGeometry(const QRect &r) Q_DECL_OVERRIDE;
enum Role { Content, CloseButton, FloatButton, TitleBar, RoleCount };
QWidget *widgetForRole(Role r) const;
@@ -170,9 +170,9 @@ class QDockWidgetItem : public QWidgetItem
{
public:
QDockWidgetItem(QDockWidget *dockWidget);
- QSize minimumSize() const;
- QSize maximumSize() const;
- QSize sizeHint() const;
+ QSize minimumSize() const Q_DECL_OVERRIDE;
+ QSize maximumSize() const Q_DECL_OVERRIDE;
+ QSize sizeHint() const Q_DECL_OVERRIDE;
private:
inline QLayoutItem *dockWidgetChildItem() const;
diff --git a/src/widgets/widgets/qeffects.cpp b/src/widgets/widgets/qeffects.cpp
index 33fa772d83..79e9c0669a 100644
--- a/src/widgets/widgets/qeffects.cpp
+++ b/src/widgets/widgets/qeffects.cpp
@@ -64,10 +64,10 @@ public:
void run(int time);
protected:
- void paintEvent(QPaintEvent* e);
- void closeEvent(QCloseEvent*);
+ void paintEvent(QPaintEvent* e) Q_DECL_OVERRIDE;
+ void closeEvent(QCloseEvent*) Q_DECL_OVERRIDE;
void alphaBlend();
- bool eventFilter(QObject *, QEvent *);
+ bool eventFilter(QObject *, QEvent *) Q_DECL_OVERRIDE;
protected slots:
void render();
@@ -341,8 +341,8 @@ public:
void run(int time);
protected:
- void paintEvent(QPaintEvent*);
- void closeEvent(QCloseEvent*);
+ void paintEvent(QPaintEvent*) Q_DECL_OVERRIDE;
+ void closeEvent(QCloseEvent*) Q_DECL_OVERRIDE;
private slots:
void scroll();
diff --git a/src/widgets/widgets/qfocusframe.h b/src/widgets/widgets/qfocusframe.h
index d84f286bb6..08eb2a570d 100644
--- a/src/widgets/widgets/qfocusframe.h
+++ b/src/widgets/widgets/qfocusframe.h
@@ -53,10 +53,10 @@ public:
QWidget *widget() const;
protected:
- bool event(QEvent *e);
+ bool event(QEvent *e) Q_DECL_OVERRIDE;
- bool eventFilter(QObject *, QEvent *);
- void paintEvent(QPaintEvent *);
+ bool eventFilter(QObject *, QEvent *) Q_DECL_OVERRIDE;
+ void paintEvent(QPaintEvent *) Q_DECL_OVERRIDE;
void initStyleOption(QStyleOption *option) const;
private:
diff --git a/src/widgets/widgets/qfontcombobox.cpp b/src/widgets/widgets/qfontcombobox.cpp
index 4e3b57bd02..b040d9ba0d 100644
--- a/src/widgets/widgets/qfontcombobox.cpp
+++ b/src/widgets/widgets/qfontcombobox.cpp
@@ -188,10 +188,10 @@ public:
// painting
void paint(QPainter *painter,
const QStyleOptionViewItem &option,
- const QModelIndex &index) const;
+ const QModelIndex &index) const Q_DECL_OVERRIDE;
QSize sizeHint(const QStyleOptionViewItem &option,
- const QModelIndex &index) const;
+ const QModelIndex &index) const Q_DECL_OVERRIDE;
QIcon truetype;
QIcon bitmap;
diff --git a/src/widgets/widgets/qfontcombobox.h b/src/widgets/widgets/qfontcombobox.h
index 95bedc7009..c2e5332c50 100644
--- a/src/widgets/widgets/qfontcombobox.h
+++ b/src/widgets/widgets/qfontcombobox.h
@@ -72,7 +72,7 @@ public:
FontFilters fontFilters() const;
QFont currentFont() const;
- QSize sizeHint() const;
+ QSize sizeHint() const Q_DECL_OVERRIDE;
public Q_SLOTS:
void setCurrentFont(const QFont &f);
@@ -81,7 +81,7 @@ Q_SIGNALS:
void currentFontChanged(const QFont &f);
protected:
- bool event(QEvent *e);
+ bool event(QEvent *e) Q_DECL_OVERRIDE;
private:
Q_DISABLE_COPY(QFontComboBox)
diff --git a/src/widgets/widgets/qframe.cpp b/src/widgets/widgets/qframe.cpp
index 57cd51396c..b914a80f1d 100644
--- a/src/widgets/widgets/qframe.cpp
+++ b/src/widgets/widgets/qframe.cpp
@@ -202,6 +202,49 @@ QFrame::QFrame(QFramePrivate &dd, QWidget* parent, Qt::WindowFlags f)
d->init();
}
+/*!
+ \since 5.5
+
+ Initializes \a option with the values from this QFrame. This method is
+ useful for subclasses when they need a QStyleOptionFrame but don't want to
+ fill in all the information themselves.
+
+ \sa QStyleOption::initFrom()
+*/
+void QFrame::initStyleOption(QStyleOptionFrame *option) const
+{
+ if (!option)
+ return;
+
+ Q_D(const QFrame);
+ option->initFrom(this);
+
+ int frameShape = d->frameStyle & QFrame::Shape_Mask;
+ int frameShadow = d->frameStyle & QFrame::Shadow_Mask;
+ option->frameShape = Shape(int(option->frameShape) | frameShape);
+ option->rect = frameRect();
+ switch (frameShape) {
+ case QFrame::Box:
+ case QFrame::HLine:
+ case QFrame::VLine:
+ case QFrame::StyledPanel:
+ case QFrame::Panel:
+ option->lineWidth = d->lineWidth;
+ option->midLineWidth = d->midLineWidth;
+ break;
+ default:
+ // most frame styles do not handle customized line and midline widths
+ // (see updateFrameWidth()).
+ option->lineWidth = d->frameWidth;
+ break;
+ }
+
+ if (frameShadow == Sunken)
+ option->state |= QStyle::State_Sunken;
+ else if (frameShadow == Raised)
+ option->state |= QStyle::State_Raised;
+}
+
/*!
Destroys the frame.
@@ -362,10 +405,7 @@ void QFramePrivate::updateStyledFrameWidths()
{
Q_Q(const QFrame);
QStyleOptionFrame opt;
- opt.initFrom(q);
- opt.lineWidth = lineWidth;
- opt.midLineWidth = midLineWidth;
- opt.frameShape = QFrame::Shape(frameStyle & QFrame::Shape_Mask);
+ q->initStyleOption(&opt);
QRect cr = q->style()->subElementRect(QStyle::SE_ShapedFrameContents, &opt, q);
leftFrameWidth = cr.left() - opt.rect.left();
@@ -472,34 +512,8 @@ void QFrame::paintEvent(QPaintEvent *)
*/
void QFrame::drawFrame(QPainter *p)
{
- Q_D(QFrame);
QStyleOptionFrame opt;
- opt.init(this);
- int frameShape = d->frameStyle & QFrame::Shape_Mask;
- int frameShadow = d->frameStyle & QFrame::Shadow_Mask;
- opt.frameShape = Shape(int(opt.frameShape) | frameShape);
- opt.rect = frameRect();
- switch (frameShape) {
- case QFrame::Box:
- case QFrame::HLine:
- case QFrame::VLine:
- case QFrame::StyledPanel:
- case QFrame::Panel:
- opt.lineWidth = d->lineWidth;
- opt.midLineWidth = d->midLineWidth;
- break;
- default:
- // most frame styles do not handle customized line and midline widths
- // (see updateFrameWidth()).
- opt.lineWidth = d->frameWidth;
- break;
- }
-
- if (frameShadow == Sunken)
- opt.state |= QStyle::State_Sunken;
- else if (frameShadow == Raised)
- opt.state |= QStyle::State_Raised;
-
+ initStyleOption(&opt);
style()->drawControl(QStyle::CE_ShapedFrame, &opt, p, this);
}
diff --git a/src/widgets/widgets/qframe.h b/src/widgets/widgets/qframe.h
index ff04d70afc..90e434722e 100644
--- a/src/widgets/widgets/qframe.h
+++ b/src/widgets/widgets/qframe.h
@@ -40,6 +40,7 @@ QT_BEGIN_NAMESPACE
class QFramePrivate;
+class QStyleOptionFrame;
class Q_WIDGETS_EXPORT QFrame : public QWidget
{
@@ -62,7 +63,7 @@ public:
int frameWidth() const;
- QSize sizeHint() const;
+ QSize sizeHint() const Q_DECL_OVERRIDE;
enum Shape {
NoFrame = 0, // no frame
@@ -99,14 +100,15 @@ public:
void setFrameRect(const QRect &);
protected:
- bool event(QEvent *e);
- void paintEvent(QPaintEvent *);
- void changeEvent(QEvent *);
+ bool event(QEvent *e) Q_DECL_OVERRIDE;
+ void paintEvent(QPaintEvent *) Q_DECL_OVERRIDE;
+ void changeEvent(QEvent *) Q_DECL_OVERRIDE;
void drawFrame(QPainter *);
protected:
QFrame(QFramePrivate &dd, QWidget* parent = 0, Qt::WindowFlags f = 0);
+ void initStyleOption(QStyleOptionFrame *option) const;
private:
Q_DISABLE_COPY(QFrame)
diff --git a/src/widgets/widgets/qgroupbox.h b/src/widgets/widgets/qgroupbox.h
index ca5a95e79e..da0f4680d6 100644
--- a/src/widgets/widgets/qgroupbox.h
+++ b/src/widgets/widgets/qgroupbox.h
@@ -63,7 +63,7 @@ public:
Qt::Alignment alignment() const;
void setAlignment(int alignment);
- QSize minimumSizeHint() const;
+ QSize minimumSizeHint() const Q_DECL_OVERRIDE;
bool isFlat() const;
void setFlat(bool flat);
@@ -79,15 +79,15 @@ Q_SIGNALS:
void toggled(bool);
protected:
- bool event(QEvent *event);
- void childEvent(QChildEvent *event);
- void resizeEvent(QResizeEvent *event);
- void paintEvent(QPaintEvent *event);
- void focusInEvent(QFocusEvent *event);
- void changeEvent(QEvent *event);
- void mousePressEvent(QMouseEvent *event);
- void mouseMoveEvent(QMouseEvent *event);
- void mouseReleaseEvent(QMouseEvent *event);
+ bool event(QEvent *event) Q_DECL_OVERRIDE;
+ void childEvent(QChildEvent *event) Q_DECL_OVERRIDE;
+ void resizeEvent(QResizeEvent *event) Q_DECL_OVERRIDE;
+ void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE;
+ void focusInEvent(QFocusEvent *event) Q_DECL_OVERRIDE;
+ void changeEvent(QEvent *event) Q_DECL_OVERRIDE;
+ void mousePressEvent(QMouseEvent *event) Q_DECL_OVERRIDE;
+ void mouseMoveEvent(QMouseEvent *event) Q_DECL_OVERRIDE;
+ void mouseReleaseEvent(QMouseEvent *event) Q_DECL_OVERRIDE;
void initStyleOption(QStyleOptionGroupBox *option) const;
diff --git a/src/widgets/widgets/qlabel.h b/src/widgets/widgets/qlabel.h
index a1e9543187..be56d3bf0f 100644
--- a/src/widgets/widgets/qlabel.h
+++ b/src/widgets/widgets/qlabel.h
@@ -88,13 +88,13 @@ public:
bool hasScaledContents() const;
void setScaledContents(bool);
- QSize sizeHint() const;
- QSize minimumSizeHint() const;
+ QSize sizeHint() const Q_DECL_OVERRIDE;
+ QSize minimumSizeHint() const Q_DECL_OVERRIDE;
#ifndef QT_NO_SHORTCUT
void setBuddy(QWidget *);
QWidget *buddy() const;
#endif
- int heightForWidth(int) const;
+ int heightForWidth(int) const Q_DECL_OVERRIDE;
bool openExternalLinks() const;
void setOpenExternalLinks(bool open);
@@ -125,17 +125,17 @@ Q_SIGNALS:
void linkHovered(const QString& link);
protected:
- bool event(QEvent *e);
- void keyPressEvent(QKeyEvent *ev);
- void paintEvent(QPaintEvent *);
- void changeEvent(QEvent *);
- void mousePressEvent(QMouseEvent *ev);
- void mouseMoveEvent(QMouseEvent *ev);
- void mouseReleaseEvent(QMouseEvent *ev);
- void contextMenuEvent(QContextMenuEvent *ev);
- void focusInEvent(QFocusEvent *ev);
- void focusOutEvent(QFocusEvent *ev);
- bool focusNextPrevChild(bool next);
+ bool event(QEvent *e) Q_DECL_OVERRIDE;
+ void keyPressEvent(QKeyEvent *ev) Q_DECL_OVERRIDE;
+ void paintEvent(QPaintEvent *) Q_DECL_OVERRIDE;
+ void changeEvent(QEvent *) Q_DECL_OVERRIDE;
+ void mousePressEvent(QMouseEvent *ev) Q_DECL_OVERRIDE;
+ void mouseMoveEvent(QMouseEvent *ev) Q_DECL_OVERRIDE;
+ void mouseReleaseEvent(QMouseEvent *ev) Q_DECL_OVERRIDE;
+ void contextMenuEvent(QContextMenuEvent *ev) Q_DECL_OVERRIDE;
+ void focusInEvent(QFocusEvent *ev) Q_DECL_OVERRIDE;
+ void focusOutEvent(QFocusEvent *ev) Q_DECL_OVERRIDE;
+ bool focusNextPrevChild(bool next) Q_DECL_OVERRIDE;
private:
diff --git a/src/widgets/widgets/qlcdnumber.h b/src/widgets/widgets/qlcdnumber.h
index 0c3a4d6cf5..6acba3f7c1 100644
--- a/src/widgets/widgets/qlcdnumber.h
+++ b/src/widgets/widgets/qlcdnumber.h
@@ -81,7 +81,7 @@ public:
double value() const;
int intValue() const;
- QSize sizeHint() const;
+ QSize sizeHint() const Q_DECL_OVERRIDE;
public Q_SLOTS:
void display(const QString &str);
@@ -97,8 +97,8 @@ Q_SIGNALS:
void overflow();
protected:
- bool event(QEvent *e);
- void paintEvent(QPaintEvent *);
+ bool event(QEvent *e) Q_DECL_OVERRIDE;
+ void paintEvent(QPaintEvent *) Q_DECL_OVERRIDE;
public:
diff --git a/src/widgets/widgets/qlineedit.cpp b/src/widgets/widgets/qlineedit.cpp
index bd8dd783ff..f10608a8be 100644
--- a/src/widgets/widgets/qlineedit.cpp
+++ b/src/widgets/widgets/qlineedit.cpp
@@ -434,12 +434,6 @@ bool QLineEdit::hasFrame() const
*/
/*!
- \fn void QLineEdit::addAction(QAction *action)
- \overload
- \internal
-*/
-
-/*!
\overload
Adds the \a action to the list of actions at the \a position.
@@ -1405,7 +1399,7 @@ bool QLineEdit::event(QEvent * e)
{
Q_D(QLineEdit);
if (e->type() == QEvent::Timer) {
- // should be timerEvent, is here for binary compatibility
+ // ### Qt6: move to timerEvent, is here for binary compatibility
int timerId = ((QTimerEvent*)e)->timerId();
if (false) {
#ifndef QT_NO_DRAGANDDROP
diff --git a/src/widgets/widgets/qlineedit.h b/src/widgets/widgets/qlineedit.h
index 3997ed16fd..bfbf9fe670 100644
--- a/src/widgets/widgets/qlineedit.h
+++ b/src/widgets/widgets/qlineedit.h
@@ -121,8 +121,8 @@ public:
QCompleter *completer() const;
#endif
- QSize sizeHint() const;
- QSize minimumSizeHint() const;
+ QSize sizeHint() const Q_DECL_OVERRIDE;
+ QSize minimumSizeHint() const Q_DECL_OVERRIDE;
int cursorPosition() const;
void setCursorPosition(int);
@@ -166,13 +166,7 @@ public:
void getTextMargins(int *left, int *top, int *right, int *bottom) const;
QMargins textMargins() const;
-#ifdef Q_NO_USING_KEYWORD
- inline void addAction(QAction *action)
- { QWidget::addAction(action); }
-#else
using QWidget::addAction;
-#endif
-
void addAction(QAction *action, ActionPosition position);
QAction *addAction(const QIcon &icon, ActionPosition position);
@@ -204,30 +198,30 @@ Q_SIGNALS:
void selectionChanged();
protected:
- void mousePressEvent(QMouseEvent *);
- void mouseMoveEvent(QMouseEvent *);
- void mouseReleaseEvent(QMouseEvent *);
- void mouseDoubleClickEvent(QMouseEvent *);
- void keyPressEvent(QKeyEvent *);
- void focusInEvent(QFocusEvent *);
- void focusOutEvent(QFocusEvent *);
- void paintEvent(QPaintEvent *);
+ void mousePressEvent(QMouseEvent *) Q_DECL_OVERRIDE;
+ void mouseMoveEvent(QMouseEvent *) Q_DECL_OVERRIDE;
+ void mouseReleaseEvent(QMouseEvent *) Q_DECL_OVERRIDE;
+ void mouseDoubleClickEvent(QMouseEvent *) Q_DECL_OVERRIDE;
+ void keyPressEvent(QKeyEvent *) Q_DECL_OVERRIDE;
+ void focusInEvent(QFocusEvent *) Q_DECL_OVERRIDE;
+ void focusOutEvent(QFocusEvent *) Q_DECL_OVERRIDE;
+ void paintEvent(QPaintEvent *) Q_DECL_OVERRIDE;
#ifndef QT_NO_DRAGANDDROP
- void dragEnterEvent(QDragEnterEvent *);
- void dragMoveEvent(QDragMoveEvent *e);
- void dragLeaveEvent(QDragLeaveEvent *e);
- void dropEvent(QDropEvent *);
+ void dragEnterEvent(QDragEnterEvent *) Q_DECL_OVERRIDE;
+ void dragMoveEvent(QDragMoveEvent *e) Q_DECL_OVERRIDE;
+ void dragLeaveEvent(QDragLeaveEvent *e) Q_DECL_OVERRIDE;
+ void dropEvent(QDropEvent *) Q_DECL_OVERRIDE;
#endif
- void changeEvent(QEvent *);
+ void changeEvent(QEvent *) Q_DECL_OVERRIDE;
#ifndef QT_NO_CONTEXTMENU
- void contextMenuEvent(QContextMenuEvent *);
+ void contextMenuEvent(QContextMenuEvent *) Q_DECL_OVERRIDE;
#endif
- void inputMethodEvent(QInputMethodEvent *);
+ void inputMethodEvent(QInputMethodEvent *) Q_DECL_OVERRIDE;
void initStyleOption(QStyleOptionFrame *option) const;
public:
- QVariant inputMethodQuery(Qt::InputMethodQuery) const;
- bool event(QEvent *);
+ QVariant inputMethodQuery(Qt::InputMethodQuery) const Q_DECL_OVERRIDE;
+ bool event(QEvent *) Q_DECL_OVERRIDE;
protected:
QRect cursorRect() const;
diff --git a/src/widgets/widgets/qlineedit_p.h b/src/widgets/widgets/qlineedit_p.h
index 6426329de6..95fc7551fc 100644
--- a/src/widgets/widgets/qlineedit_p.h
+++ b/src/widgets/widgets/qlineedit_p.h
@@ -81,7 +81,7 @@ public:
#endif
protected:
- void paintEvent(QPaintEvent *event);
+ void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE;
private slots:
void updateCursor();
diff --git a/src/widgets/widgets/qmainwindow.h b/src/widgets/widgets/qmainwindow.h
index 4478c47449..717bc32739 100644
--- a/src/widgets/widgets/qmainwindow.h
+++ b/src/widgets/widgets/qmainwindow.h
@@ -188,9 +188,9 @@ Q_SIGNALS:
protected:
#ifndef QT_NO_CONTEXTMENU
- void contextMenuEvent(QContextMenuEvent *event);
+ void contextMenuEvent(QContextMenuEvent *event) Q_DECL_OVERRIDE;
#endif
- bool event(QEvent *event);
+ bool event(QEvent *event) Q_DECL_OVERRIDE;
private:
Q_DECLARE_PRIVATE(QMainWindow)
diff --git a/src/widgets/widgets/qmainwindowlayout.cpp b/src/widgets/widgets/qmainwindowlayout.cpp
index 827e2ed2ba..9e8e0aee27 100644
--- a/src/widgets/widgets/qmainwindowlayout.cpp
+++ b/src/widgets/widgets/qmainwindowlayout.cpp
@@ -1243,7 +1243,7 @@ class QMainWindowTabBar : public QTabBar
public:
QMainWindowTabBar(QWidget *parent);
protected:
- bool event(QEvent *e);
+ bool event(QEvent *e) Q_DECL_OVERRIDE;
};
QMainWindowTabBar::QMainWindowTabBar(QWidget *parent)
diff --git a/src/widgets/widgets/qmainwindowlayout_p.h b/src/widgets/widgets/qmainwindowlayout_p.h
index d9e18b03f4..4e10aef891 100644
--- a/src/widgets/widgets/qmainwindowlayout_p.h
+++ b/src/widgets/widgets/qmainwindowlayout_p.h
@@ -151,7 +151,7 @@ public:
void setDockOptions(QMainWindow::DockOptions opts);
bool usesHIToolBar(QToolBar *toolbar) const;
- void timerEvent(QTimerEvent *e);
+ void timerEvent(QTimerEvent *e) Q_DECL_OVERRIDE;
// status bar
@@ -249,17 +249,17 @@ public:
// QLayout interface
- void addItem(QLayoutItem *item);
- void setGeometry(const QRect &r);
- QLayoutItem *itemAt(int index) const;
- QLayoutItem *takeAt(int index);
- int count() const;
+ void addItem(QLayoutItem *item) Q_DECL_OVERRIDE;
+ void setGeometry(const QRect &r) Q_DECL_OVERRIDE;
+ QLayoutItem *itemAt(int index) const Q_DECL_OVERRIDE;
+ QLayoutItem *takeAt(int index) Q_DECL_OVERRIDE;
+ int count() const Q_DECL_OVERRIDE;
- QSize sizeHint() const;
- QSize minimumSize() const;
+ QSize sizeHint() const Q_DECL_OVERRIDE;
+ QSize minimumSize() const Q_DECL_OVERRIDE;
mutable QSize szHint;
mutable QSize minSize;
- void invalidate();
+ void invalidate() Q_DECL_OVERRIDE;
// animations
diff --git a/src/widgets/widgets/qmdiarea.cpp b/src/widgets/widgets/qmdiarea.cpp
index 3553baf68a..e104a3511b 100644
--- a/src/widgets/widgets/qmdiarea.cpp
+++ b/src/widgets/widgets/qmdiarea.cpp
@@ -567,9 +567,9 @@ public:
QMdiAreaTabBar(QWidget *parent) : QTabBar(parent) {}
protected:
- void mousePressEvent(QMouseEvent *event);
+ void mousePressEvent(QMouseEvent *event) Q_DECL_OVERRIDE;
#ifndef QT_NO_CONTEXTMENU
- void contextMenuEvent(QContextMenuEvent *event);
+ void contextMenuEvent(QContextMenuEvent *event) Q_DECL_OVERRIDE;
#endif
private:
diff --git a/src/widgets/widgets/qmdiarea.h b/src/widgets/widgets/qmdiarea.h
index 18d559e21b..b824cfb4ae 100644
--- a/src/widgets/widgets/qmdiarea.h
+++ b/src/widgets/widgets/qmdiarea.h
@@ -82,8 +82,8 @@ public:
QMdiArea(QWidget *parent = 0);
~QMdiArea();
- QSize sizeHint() const;
- QSize minimumSizeHint() const;
+ QSize sizeHint() const Q_DECL_OVERRIDE;
+ QSize minimumSizeHint() const Q_DECL_OVERRIDE;
QMdiSubWindow *currentSubWindow() const;
QMdiSubWindow *activeSubWindow() const;
@@ -135,18 +135,18 @@ public Q_SLOTS:
void activatePreviousSubWindow();
protected Q_SLOTS:
- void setupViewport(QWidget *viewport);
+ void setupViewport(QWidget *viewport) Q_DECL_OVERRIDE;
protected:
- bool event(QEvent *event);
- bool eventFilter(QObject *object, QEvent *event);
- void paintEvent(QPaintEvent *paintEvent);
- void childEvent(QChildEvent *childEvent);
- void resizeEvent(QResizeEvent *resizeEvent);
- void timerEvent(QTimerEvent *timerEvent);
- void showEvent(QShowEvent *showEvent);
- bool viewportEvent(QEvent *event);
- void scrollContentsBy(int dx, int dy);
+ bool event(QEvent *event) Q_DECL_OVERRIDE;
+ bool eventFilter(QObject *object, QEvent *event) Q_DECL_OVERRIDE;
+ void paintEvent(QPaintEvent *paintEvent) Q_DECL_OVERRIDE;
+ void childEvent(QChildEvent *childEvent) Q_DECL_OVERRIDE;
+ void resizeEvent(QResizeEvent *resizeEvent) Q_DECL_OVERRIDE;
+ void timerEvent(QTimerEvent *timerEvent) Q_DECL_OVERRIDE;
+ void showEvent(QShowEvent *showEvent) Q_DECL_OVERRIDE;
+ bool viewportEvent(QEvent *event) Q_DECL_OVERRIDE;
+ void scrollContentsBy(int dx, int dy) Q_DECL_OVERRIDE;
private:
Q_DISABLE_COPY(QMdiArea)
diff --git a/src/widgets/widgets/qmdiarea_p.h b/src/widgets/widgets/qmdiarea_p.h
index ba531adaad..d1341d5837 100644
--- a/src/widgets/widgets/qmdiarea_p.h
+++ b/src/widgets/widgets/qmdiarea_p.h
@@ -81,7 +81,7 @@ class RegularTiler : public Rearranger
// Rearranges widgets according to a regular tiling pattern
// covering the entire domain.
// Both positions and sizes may change.
- void rearrange(QList<QWidget *> &widgets, const QRect &domain) const;
+ void rearrange(QList<QWidget *> &widgets, const QRect &domain) const Q_DECL_OVERRIDE;
inline Type type() const { return Rearranger::RegularTiler; }
};
@@ -90,7 +90,7 @@ class SimpleCascader : public Rearranger
// Rearranges widgets according to a simple, regular cascading pattern.
// Widgets are resized to minimumSize.
// Both positions and sizes may change.
- void rearrange(QList<QWidget *> &widgets, const QRect &domain) const;
+ void rearrange(QList<QWidget *> &widgets, const QRect &domain) const Q_DECL_OVERRIDE;
inline Type type() const { return Rearranger::SimpleCascader; }
};
@@ -99,7 +99,7 @@ class IconTiler : public Rearranger
// Rearranges icons (assumed to be the same size) according to a regular
// tiling pattern filling up the domain from the bottom.
// Only positions may change.
- void rearrange(QList<QWidget *> &widgets, const QRect &domain) const;
+ void rearrange(QList<QWidget *> &widgets, const QRect &domain) const Q_DECL_OVERRIDE;
inline Type type() const { return Rearranger::IconTiler; }
};
@@ -115,7 +115,7 @@ public:
class MinOverlapPlacer : public Placer
{
- QPoint place(const QSize &size, const QVector<QRect> &rects, const QRect &domain) const;
+ QPoint place(const QSize &size, const QVector<QRect> &rects, const QRect &domain) const Q_DECL_OVERRIDE;
static int accumulatedOverlap(const QRect &source, const QVector<QRect> &rects);
static QRect findMinOverlapRect(const QVector<QRect> &source, const QVector<QRect> &rects);
static QVector<QRect> getCandidatePlacements(const QSize &size, const QVector<QRect> &rects, const QRect &domain);
@@ -199,7 +199,7 @@ public:
bool lastWindowAboutToBeDestroyed() const;
void setChildActivationEnabled(bool enable = true, bool onlyNextActivationEvent = false) const;
QRect resizeToMinimumTileSize(const QSize &minSubWindowSize, int subWindowCount);
- void scrollBarPolicyChanged(Qt::Orientation, Qt::ScrollBarPolicy); // reimp
+ void scrollBarPolicyChanged(Qt::Orientation, Qt::ScrollBarPolicy) Q_DECL_OVERRIDE; // reimp
QMdiSubWindow *nextVisibleSubWindow(int increaseFactor, QMdiArea::WindowOrder,
int removed = -1, int fromIndex = -1) const;
void highlightNextSubWindow(int increaseFactor);
diff --git a/src/widgets/widgets/qmdisubwindow.cpp b/src/widgets/widgets/qmdisubwindow.cpp
index 2340c8fe4b..d656c0abb7 100644
--- a/src/widgets/widgets/qmdisubwindow.cpp
+++ b/src/widgets/widgets/qmdisubwindow.cpp
@@ -362,18 +362,18 @@ class ControlLabel : public QWidget
public:
ControlLabel(QMdiSubWindow *subWindow, QWidget *parent = 0);
- QSize sizeHint() const;
+ QSize sizeHint() const Q_DECL_OVERRIDE;
signals:
void _q_clicked();
void _q_doubleClicked();
protected:
- bool event(QEvent *event);
- void paintEvent(QPaintEvent *paintEvent);
- void mousePressEvent(QMouseEvent *mouseEvent);
- void mouseDoubleClickEvent(QMouseEvent *mouseEvent);
- void mouseReleaseEvent(QMouseEvent *mouseEvent);
+ bool event(QEvent *event) Q_DECL_OVERRIDE;
+ void paintEvent(QPaintEvent *paintEvent) Q_DECL_OVERRIDE;
+ void mousePressEvent(QMouseEvent *mouseEvent) Q_DECL_OVERRIDE;
+ void mouseDoubleClickEvent(QMouseEvent *mouseEvent) Q_DECL_OVERRIDE;
+ void mouseReleaseEvent(QMouseEvent *mouseEvent) Q_DECL_OVERRIDE;
private:
QPixmap label;
@@ -488,7 +488,7 @@ class ControllerWidget : public QWidget
Q_OBJECT
public:
ControllerWidget(QMdiSubWindow *subWindow, QWidget *parent = 0);
- QSize sizeHint() const;
+ QSize sizeHint() const Q_DECL_OVERRIDE;
void setControlVisible(QMdiSubWindowPrivate::WindowStateAction action, bool visible);
inline bool hasVisibleControls() const
{
@@ -503,12 +503,12 @@ signals:
void _q_close();
protected:
- void paintEvent(QPaintEvent *event);
- void mousePressEvent(QMouseEvent *event);
- void mouseReleaseEvent(QMouseEvent *event);
- void mouseMoveEvent(QMouseEvent *event);
- void leaveEvent(QEvent *event);
- bool event(QEvent *event);
+ void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE;
+ void mousePressEvent(QMouseEvent *event) Q_DECL_OVERRIDE;
+ void mouseReleaseEvent(QMouseEvent *event) Q_DECL_OVERRIDE;
+ void mouseMoveEvent(QMouseEvent *event) Q_DECL_OVERRIDE;
+ void leaveEvent(QEvent *event) Q_DECL_OVERRIDE;
+ bool event(QEvent *event) Q_DECL_OVERRIDE;
private:
QStyle::SubControl activeControl;
diff --git a/src/widgets/widgets/qmdisubwindow.h b/src/widgets/widgets/qmdisubwindow.h
index a94ecfb48e..6e4d0514ee 100644
--- a/src/widgets/widgets/qmdisubwindow.h
+++ b/src/widgets/widgets/qmdisubwindow.h
@@ -63,8 +63,8 @@ public:
QMdiSubWindow(QWidget *parent = 0, Qt::WindowFlags flags = 0);
~QMdiSubWindow();
- QSize sizeHint() const;
- QSize minimumSizeHint() const;
+ QSize sizeHint() const Q_DECL_OVERRIDE;
+ QSize minimumSizeHint() const Q_DECL_OVERRIDE;
void setWidget(QWidget *widget);
QWidget *widget() const;
@@ -101,28 +101,28 @@ public Q_SLOTS:
void showShaded();
protected:
- bool eventFilter(QObject *object, QEvent *event);
- bool event(QEvent *event);
- void showEvent(QShowEvent *showEvent);
- void hideEvent(QHideEvent *hideEvent);
- void changeEvent(QEvent *changeEvent);
- void closeEvent(QCloseEvent *closeEvent);
- void leaveEvent(QEvent *leaveEvent);
- void resizeEvent(QResizeEvent *resizeEvent);
- void timerEvent(QTimerEvent *timerEvent);
- void moveEvent(QMoveEvent *moveEvent);
- void paintEvent(QPaintEvent *paintEvent);
- void mousePressEvent(QMouseEvent *mouseEvent);
- void mouseDoubleClickEvent(QMouseEvent *mouseEvent);
- void mouseReleaseEvent(QMouseEvent *mouseEvent);
- void mouseMoveEvent(QMouseEvent *mouseEvent);
- void keyPressEvent(QKeyEvent *keyEvent);
+ bool eventFilter(QObject *object, QEvent *event) Q_DECL_OVERRIDE;
+ bool event(QEvent *event) Q_DECL_OVERRIDE;
+ void showEvent(QShowEvent *showEvent) Q_DECL_OVERRIDE;
+ void hideEvent(QHideEvent *hideEvent) Q_DECL_OVERRIDE;
+ void changeEvent(QEvent *changeEvent) Q_DECL_OVERRIDE;
+ void closeEvent(QCloseEvent *closeEvent) Q_DECL_OVERRIDE;
+ void leaveEvent(QEvent *leaveEvent) Q_DECL_OVERRIDE;
+ void resizeEvent(QResizeEvent *resizeEvent) Q_DECL_OVERRIDE;
+ void timerEvent(QTimerEvent *timerEvent) Q_DECL_OVERRIDE;
+ void moveEvent(QMoveEvent *moveEvent) Q_DECL_OVERRIDE;
+ void paintEvent(QPaintEvent *paintEvent) Q_DECL_OVERRIDE;
+ void mousePressEvent(QMouseEvent *mouseEvent) Q_DECL_OVERRIDE;
+ void mouseDoubleClickEvent(QMouseEvent *mouseEvent) Q_DECL_OVERRIDE;
+ void mouseReleaseEvent(QMouseEvent *mouseEvent) Q_DECL_OVERRIDE;
+ void mouseMoveEvent(QMouseEvent *mouseEvent) Q_DECL_OVERRIDE;
+ void keyPressEvent(QKeyEvent *keyEvent) Q_DECL_OVERRIDE;
#ifndef QT_NO_CONTEXTMENU
- void contextMenuEvent(QContextMenuEvent *contextMenuEvent);
+ void contextMenuEvent(QContextMenuEvent *contextMenuEvent) Q_DECL_OVERRIDE;
#endif
- void focusInEvent(QFocusEvent *focusInEvent);
- void focusOutEvent(QFocusEvent *focusOutEvent);
- void childEvent(QChildEvent *childEvent);
+ void focusInEvent(QFocusEvent *focusInEvent) Q_DECL_OVERRIDE;
+ void focusOutEvent(QFocusEvent *focusOutEvent) Q_DECL_OVERRIDE;
+ void childEvent(QChildEvent *childEvent) Q_DECL_OVERRIDE;
private:
Q_DISABLE_COPY(QMdiSubWindow)
diff --git a/src/widgets/widgets/qmdisubwindow_p.h b/src/widgets/widgets/qmdisubwindow_p.h
index 763f6ba039..f5cb94faea 100644
--- a/src/widgets/widgets/qmdisubwindow_p.h
+++ b/src/widgets/widgets/qmdisubwindow_p.h
@@ -260,7 +260,7 @@ public:
void setFocusWidget();
bool restoreFocus();
void storeFocusWidget();
- void setWindowFlags(Qt::WindowFlags windowFlags);
+ void setWindowFlags(Qt::WindowFlags windowFlags) Q_DECL_OVERRIDE;
void setVisible(WindowStateAction, bool visible = true);
#ifndef QT_NO_ACTION
void setEnabled(WindowStateAction, bool enable = true);
diff --git a/src/widgets/widgets/qmenu.cpp b/src/widgets/widgets/qmenu.cpp
index 5e5126e1e8..7e446fd087 100644
--- a/src/widgets/widgets/qmenu.cpp
+++ b/src/widgets/widgets/qmenu.cpp
@@ -70,6 +70,22 @@
QT_BEGIN_NAMESPACE
QMenu *QMenuPrivate::mouseDown = 0;
+QPointer<QMenu> QMenuPrivate::previousMouseMenu(Q_NULLPTR);
+static void handleEnterLeaveEvents(QPointer<QMenu> *previous_ptr, QMenu *next)
+{
+ QWidget *previous = previous_ptr->data();
+ if (previous != next) {
+ if (previous) {
+ QEvent leaveEvent(QEvent::Leave);
+ QApplication::sendEvent(previous, &leaveEvent);
+ }
+ if (next) {
+ QEvent enterEvent(QEvent::Enter);
+ QApplication::sendEvent(next, &enterEvent);
+ }
+ }
+ *previous_ptr = next;
+}
/* QMenu code */
// internal class used for the torn off popup
@@ -86,7 +102,7 @@ class QTornOffMenu : public QMenu
causedPopup.action = ((QTornOffMenu*)p)->d_func()->causedPopup.action;
causedStack = ((QTornOffMenu*)p)->d_func()->calcCausedStack();
}
- QList<QPointer<QWidget> > calcCausedStack() const { return causedStack; }
+ QList<QPointer<QWidget> > calcCausedStack() const Q_DECL_OVERRIDE { return causedStack; }
QPointer<QMenu> causedMenu;
QList<QPointer<QWidget> > causedStack;
};
@@ -119,7 +135,7 @@ public:
} else if (act->type() == QEvent::ActionRemoved)
removeAction(act->action());
}
- void actionEvent(QActionEvent *e)
+ void actionEvent(QActionEvent *e) Q_DECL_OVERRIDE
{
QMenu::actionEvent(e);
setFixedSize(sizeHint());
@@ -148,6 +164,9 @@ void QMenuPrivate::init()
}
setPlatformMenu(QGuiApplicationPrivate::platformTheme()->createPlatformMenu());
+ sloppyState.initialize(q);
+ delayState.initialize(q);
+ mousePopupDelay = q->style()->styleHint(QStyle::SH_Menu_SubMenuPopupDelay, 0, q);
}
void QMenuPrivate::setPlatformMenu(QPlatformMenu *menu)
@@ -270,7 +289,6 @@ void QMenuPrivate::updateActionRects(const QRect &screen) const
maxIconWidth = 0;
hasCheckableItems = false;
ncols = 1;
- sloppyAction = 0;
for (int i = 0; i < actions.count(); ++i) {
QAction *action = actions.at(i);
@@ -482,21 +500,30 @@ void QMenuPrivate::hideMenu(QMenu *menu)
aboutToHide = false;
blocker.unblock();
#endif // QT_NO_EFFECTS
+ if (activeMenu == menu)
+ activeMenu = 0;
+ menu->d_func()->causedPopup.action = 0;
+ menu->d_func()->causedPopup.widget = 0;
menu->close();
+ if (previousMouseMenu.data() == menu)
+ handleEnterLeaveEvents(&previousMouseMenu, Q_NULLPTR);
}
void QMenuPrivate::popupAction(QAction *action, int delay, bool activateFirst)
{
Q_Q(QMenu);
- if (action && action->isEnabled()) {
- if (!delay)
- q->internalDelayedPopup();
- else if (!menuDelayTimer.isActive() && (!action->menu() || !action->menu()->isVisible()))
- menuDelayTimer.start(delay, q);
- if (activateFirst && action->menu())
- action->menu()->d_func()->setFirstActionActive();
+ if (action) {
+ if (action->isEnabled()) {
+ if (!delay)
+ q->internalDelayedPopup();
+ else if (action->menu() && !action->menu()->isVisible())
+ delayState.start(delay, action);
+ else if (!action->menu())
+ delayState.stop();
+ if (activateFirst && action->menu())
+ action->menu()->d_func()->setFirstActionActive();
+ }
} else if (QMenu *menu = activeMenu) { //hide the current item
- activeMenu = 0;
hideMenu(menu);
}
}
@@ -547,33 +574,32 @@ void QMenuPrivate::setCurrentAction(QAction *action, int popup, SelectionReason
{
Q_Q(QMenu);
tearoffHighlighted = 0;
+
+ if (action
+ && (action->isSeparator()
+ || (!action->isEnabled() && !q->style()->styleHint(QStyle::SH_Menu_AllowActiveAndDisabled, 0, q))))
+ action = Q_NULLPTR;
+
// Reselect the currently active action in case mouse moved over other menu items when
// moving from sub menu action to sub menu (QTBUG-20094).
- if (reason != SelectedFromKeyboard && action == currentAction && !(action && action->menu() && action->menu() != activeMenu)) {
+ if (reason != SelectedFromKeyboard) {
if (QMenu *menu = qobject_cast<QMenu*>(causedPopup.widget)) {
if (causedPopup.action && menu->d_func()->activeMenu == q)
menu->d_func()->setCurrentAction(causedPopup.action, 0, reason, false);
}
- return;
}
if (currentAction)
q->update(actionRect(currentAction));
- sloppyAction = 0;
- if (!sloppyRegion.isEmpty())
- sloppyRegion = QRegion();
QMenu *hideActiveMenu = activeMenu;
-#ifndef QT_NO_STATUSTIP
QAction *previousAction = currentAction;
-#endif
currentAction = action;
if (action) {
if (!action->isSeparator()) {
activateAction(action, QAction::Hover);
if (popup != -1) {
- hideActiveMenu = 0; //will be done "later"
// if the menu is visible then activate the required action,
// otherwise we just mark the action as currentAction
// and activate it when the menu will be popuped.
@@ -596,24 +622,122 @@ void QMenuPrivate::setCurrentAction(QAction *action, int popup, SelectionReason
}
}
}
- } else { //action is a separator
- if (popup != -1)
- hideActiveMenu = 0; //will be done "later"
}
#ifndef QT_NO_STATUSTIP
} else if (previousAction) {
previousAction->d_func()->showStatusText(topCausedWidget(), QString());
#endif
}
- if (hideActiveMenu) {
- activeMenu = 0;
+ if (hideActiveMenu && previousAction != currentAction) {
+ if (popup == -1) {
#ifndef QT_NO_EFFECTS
- // kill any running effect
- qFadeEffect(0);
- qScrollEffect(0);
+ // kill any running effect
+ qFadeEffect(0);
+ qScrollEffect(0);
#endif
- hideMenu(hideActiveMenu);
+ hideMenu(hideActiveMenu);
+ } else if (!currentAction || !currentAction->menu()) {
+ sloppyState.startTimerIfNotRunning();
+ }
+ }
+}
+
+void QMenuSloppyState::reset()
+{
+ m_enabled = false;
+ m_first_mouse = true;
+ m_init_guard = false;
+ m_uni_dir_discarded_count = 0;
+ m_time.stop();
+ m_reset_action = Q_NULLPTR;
+ m_origin_action = Q_NULLPTR;
+ m_action_rect = QRect();
+ m_previous_point = QPointF();
+ if (m_sub_menu) {
+ QMenuPrivate::get(m_sub_menu)->sloppyState.m_parent = Q_NULLPTR;
+ m_sub_menu = Q_NULLPTR;
+ }
+}
+void QMenuSloppyState::enter()
+{
+ QMenuPrivate *menuPriv = QMenuPrivate::get(m_menu);
+
+ if (m_discard_state_when_entering_parent && m_sub_menu == menuPriv->activeMenu) {
+ menuPriv->hideMenu(m_sub_menu);
+ reset();
+ }
+ if (m_parent)
+ m_parent->childEnter();
+}
+
+void QMenuSloppyState::childLeave()
+{
+ if (m_enabled && !QMenuPrivate::get(m_menu)->hasReceievedEnter) {
+ startTimer();
+ if (m_parent)
+ m_parent->childLeave();
+ }
+}
+
+void QMenuSloppyState::setSubMenuPopup(const QRect &actionRect, QAction *resetAction, QMenu *subMenu)
+{
+ m_enabled = true;
+ m_init_guard = true;
+ m_time.stop();
+ m_action_rect = actionRect;
+ m_sub_menu = subMenu;
+ QMenuPrivate::get(subMenu)->sloppyState.m_parent = this;
+ m_reset_action = resetAction;
+ m_origin_action = resetAction;
+}
+
+bool QMenuSloppyState::hasParentActiveDelayTimer() const
+{
+ return m_parent && m_parent->m_menu && QMenuPrivate::get(m_parent->m_menu)->delayState.timer.isActive();
+}
+
+class ResetOnDestroy
+{
+public:
+ ResetOnDestroy(QMenuSloppyState *sloppyState, bool *guard)
+ : toReset(sloppyState)
+ , guard(guard)
+ {
+ *guard = false;
+ }
+
+ ~ResetOnDestroy()
+ {
+ if (!*guard)
+ toReset->reset();
}
+
+ QMenuSloppyState *toReset;
+ bool *guard;
+};
+
+void QMenuSloppyState::timeout()
+{
+ QMenuPrivate *menu_priv = QMenuPrivate::get(m_menu);
+ if (menu_priv->currentAction == m_reset_action
+ && menu_priv->hasReceievedEnter
+ && (menu_priv->currentAction
+ && menu_priv->currentAction->menu() == menu_priv->activeMenu)) {
+ return;
+ }
+
+ ResetOnDestroy resetState(this, &m_init_guard);
+
+ if (hasParentActiveDelayTimer() || !m_menu || !m_menu->isVisible())
+ return;
+
+ if (m_sub_menu)
+ menu_priv->hideMenu(m_sub_menu);
+
+ if (menu_priv->hasReceievedEnter)
+ menu_priv->setCurrentAction(m_reset_action,0);
+ else
+ menu_priv->setCurrentAction(Q_NULLPTR, 0);
}
//return the top causedPopup.widget that is not a QMenu
@@ -964,8 +1088,10 @@ bool QMenuPrivate::mouseEventTaken(QMouseEvent *e)
tearoffHighlighted = 0;
}
- if (q->frameGeometry().contains(e->globalPos())) //otherwise if the event is in our rect we want it..
+ if (q->frameGeometry().contains(e->globalPos())) { //otherwise if the event is in our rect we want it..
+ handleEnterLeaveEvents(&previousMouseMenu, q);
return false;
+ }
for(QWidget *caused = causedPopup.widget; caused;) {
bool passOnEvent = false;
@@ -981,17 +1107,18 @@ bool QMenuPrivate::mouseEventTaken(QMouseEvent *e)
next_widget = m->d_func()->causedPopup.widget;
}
if (passOnEvent) {
+ handleEnterLeaveEvents(&previousMouseMenu,qobject_cast<QMenu *>(caused));
if(e->type() != QEvent::MouseButtonRelease || mouseDown == caused) {
QMouseEvent new_e(e->type(), cpos, caused->mapTo(caused->topLevelWidget(), cpos), e->screenPos(),
e->button(), e->buttons(), e->modifiers());
QGuiApplicationPrivate::setMouseEventSource(&new_e, e->source());
QApplication::sendEvent(caused, &new_e);
return true;
+ }
}
- }
- if (!next_widget)
- break;
caused = next_widget;
+ if (!caused)
+ handleEnterLeaveEvents(&previousMouseMenu, Q_NULLPTR);
}
return false;
}
@@ -2236,6 +2363,8 @@ void QMenu::hideEvent(QHideEvent *)
#endif
d->mouseDown = 0;
d->hasHadMouse = false;
+ if (d->activeMenu)
+ d->hideMenu(d->activeMenu);
d->causedPopup.widget = 0;
d->causedPopup.action = 0;
if (d->scroll)
@@ -2402,7 +2531,7 @@ void QMenu::mouseReleaseEvent(QMouseEvent *e)
#endif
d->activateAction(action, QAction::Trigger);
}
- } else if (d->hasMouseMoved(e->globalPos())) {
+ } else if ((!action || action->isEnabled()) && d->hasMouseMoved(e->globalPos())) {
d->hideUpToMenuBar();
}
}
@@ -2467,8 +2596,8 @@ QMenu::event(QEvent *e)
}
} break;
case QEvent::ContextMenu:
- if(d->menuDelayTimer.isActive()) {
- d->menuDelayTimer.stop();
+ if (d->delayState.timer.isActive()) {
+ d->delayState.stop();
internalDelayedPopup();
}
break;
@@ -2485,6 +2614,7 @@ QMenu::event(QEvent *e)
case QEvent::Show:
d->mouseDown = 0;
d->updateActionRects();
+ d->sloppyState.reset();
if (d->currentAction)
d->popupAction(d->currentAction, 0, false);
break;
@@ -2892,34 +3022,34 @@ void QMenu::mouseMoveEvent(QMouseEvent *e)
Q_D(QMenu);
if (!isVisible() || d->aboutToHide || d->mouseEventTaken(e))
return;
+
d->motions++;
- if (d->motions == 0) // ignore first mouse move event (see enterEvent())
+ if (d->motions == 0)
return;
+
d->hasHadMouse = d->hasHadMouse || rect().contains(e->pos());
QAction *action = d->actionAt(e->pos());
- if (!action || action->isSeparator()) {
+ if ((!action || action->isSeparator()) && !d->sloppyState.enabled()) {
if (d->hasHadMouse
- && d->sloppyDelayTimer == 0 // Keep things as they are while we're moving to the submenu
- && (!d->currentAction || (action && action->isSeparator())
- || !(d->currentAction->menu() && d->currentAction->menu()->isVisible())))
- d->setCurrentAction(0);
+ || (!d->currentAction || !d->currentAction->menu() || !d->currentAction->menu()->isVisible())) {
+ d->setCurrentAction(action);
+ }
return;
- } else if(e->buttons()) {
- d->mouseDown = this;
}
- if (d->sloppyRegion.contains(e->pos())) {
- // If the timer is already running then don't start a new one unless the action is the same
- if (d->sloppyAction != action && d->sloppyDelayTimer != 0) {
- killTimer(d->sloppyDelayTimer);
- d->sloppyDelayTimer = 0;
- }
- if (d->sloppyDelayTimer == 0) {
- d->sloppyAction = action;
- d->sloppyDelayTimer = startTimer(style()->styleHint(QStyle::SH_Menu_SubMenuPopupDelay, 0, this) * 6);
- }
- } else if (action != d->currentAction) {
- d->setCurrentAction(action, style()->styleHint(QStyle::SH_Menu_SubMenuPopupDelay, 0, this));
+
+ if (e->buttons())
+ d->mouseDown = this;
+
+ if (d->activeMenu)
+ d->activeMenu->d_func()->setCurrentAction(0);
+
+ QMenuSloppyState::MouseEventResult sloppyEventResult = d->sloppyState.processMouseEvent(e->localPos(), action, d->currentAction);
+ if (sloppyEventResult == QMenuSloppyState::EventShouldBePropogated) {
+ d->setCurrentAction(action, d->mousePopupDelay);
+ } else if (sloppyEventResult == QMenuSloppyState::EventDiscardsSloppyState) {
+ d->sloppyState.reset();
+ d->hideMenu(d->activeMenu);
}
}
@@ -2928,7 +3058,11 @@ void QMenu::mouseMoveEvent(QMouseEvent *e)
*/
void QMenu::enterEvent(QEvent *)
{
- d_func()->motions = -1; // force us to ignore the generate mouse move in mouseMoveEvent()
+ Q_D(QMenu);
+ d->hasReceievedEnter = true;
+ d->sloppyState.enter();
+ d->sloppyState.startTimer();
+ d->motions = -1; // force us to ignore the generate mouse move in mouseMoveEvent()
}
/*!
@@ -2937,9 +3071,8 @@ void QMenu::enterEvent(QEvent *)
void QMenu::leaveEvent(QEvent *)
{
Q_D(QMenu);
- d->sloppyAction = 0;
- if (!d->sloppyRegion.isEmpty())
- d->sloppyRegion = QRegion();
+ d->hasReceievedEnter = false;
+ d->sloppyState.leave();
if (!d->activeMenu && d->currentAction)
setActiveAction(0);
}
@@ -2955,13 +3088,14 @@ QMenu::timerEvent(QTimerEvent *e)
d->scrollMenu((QMenuPrivate::QMenuScroller::ScrollDirection)d->scroll->scrollDirection);
if (d->scroll->scrollFlags == QMenuPrivate::QMenuScroller::ScrollNone)
d->scroll->scrollTimer.stop();
- } else if(d->menuDelayTimer.timerId() == e->timerId()) {
- d->menuDelayTimer.stop();
+ } else if (d->delayState.timer.timerId() == e->timerId()) {
+ if (d->currentAction && !d->currentAction->menu())
+ return;
+ d->delayState.stop();
+ d->sloppyState.stopTimer();
internalDelayedPopup();
- } else if (d->sloppyDelayTimer == e->timerId()) {
- killTimer(d->sloppyDelayTimer);
- d->sloppyDelayTimer = 0;
- internalSetSloppyAction();
+ } else if (d->sloppyState.isTimerId(e->timerId())) {
+ d->sloppyState.timeout();
} else if(d->searchBufferTimer.timerId() == e->timerId()) {
d->searchBuffer.clear();
}
@@ -3086,23 +3220,13 @@ void QMenu::actionEvent(QActionEvent *e)
/*!
\internal
*/
-void QMenu::internalSetSloppyAction()
-{
- if (d_func()->sloppyAction)
- d_func()->setCurrentAction(d_func()->sloppyAction, 0);
-}
-
-/*!
- \internal
-*/
void QMenu::internalDelayedPopup()
{
Q_D(QMenu);
-
//hide the current item
if (QMenu *menu = d->activeMenu) {
- d->activeMenu = 0;
- d->hideMenu(menu);
+ if (d->activeMenu->menuAction() != d->currentAction)
+ d->hideMenu(menu);
}
if (!d->currentAction || !d->currentAction->isEnabled() || !d->currentAction->menu() ||
@@ -3116,46 +3240,15 @@ void QMenu::internalDelayedPopup()
int subMenuOffset = style()->pixelMetric(QStyle::PM_SubMenuOverlap, 0, this);
const QRect actionRect(d->actionRect(d->currentAction));
- const QSize menuSize(d->activeMenu->sizeHint());
const QPoint rightPos(mapToGlobal(QPoint(actionRect.right() + subMenuOffset + 1, actionRect.top())));
QPoint pos(rightPos);
- //calc sloppy focus buffer
- if (style()->styleHint(QStyle::SH_Menu_SloppySubMenus, 0, this)) {
- QPoint cur = QCursor::pos();
- if (actionRect.contains(mapFromGlobal(cur))) {
- QPoint pts[4];
- pts[0] = QPoint(cur.x(), cur.y() - 2);
- pts[3] = QPoint(cur.x(), cur.y() + 2);
- if (pos.x() >= cur.x()) {
- pts[1] = QPoint(geometry().right(), pos.y());
- pts[2] = QPoint(geometry().right(), pos.y() + menuSize.height());
- } else {
- pts[1] = QPoint(pos.x() + menuSize.width(), pos.y());
- pts[2] = QPoint(pos.x() + menuSize.width(), pos.y() + menuSize.height());
- }
- QPolygon points(4);
- for(int i = 0; i < 4; i++)
- points.setPoint(i, mapFromGlobal(pts[i]));
- d->sloppyRegion = QRegion(points);
- }
- }
-
- //do the popup
d->activeMenu->popup(pos);
+ d->sloppyState.setSubMenuPopup(actionRect, d->currentAction, d->activeMenu);
}
/*!
- \fn void QMenu::addAction(QAction *action)
- \overload
-
- Appends the action \a action to the menu's list of actions.
-
- \sa QMenuBar::addAction(), QWidget::addAction()
-*/
-
-/*!
\fn void QMenu::aboutToHide()
\since 4.2
diff --git a/src/widgets/widgets/qmenu.h b/src/widgets/widgets/qmenu.h
index 937f6e3316..6bc14c7c78 100644
--- a/src/widgets/widgets/qmenu.h
+++ b/src/widgets/widgets/qmenu.h
@@ -72,11 +72,7 @@ public:
explicit QMenu(const QString &title, QWidget *parent = 0);
~QMenu();
-#ifdef Q_NO_USING_KEYWORD
- inline void addAction(QAction *action) { QWidget::addAction(action); }
-#else
using QWidget::addAction;
-#endif
QAction *addAction(const QString &text);
QAction *addAction(const QIcon &icon, const QString &text);
QAction *addAction(const QString &text, const QObject *receiver, const char* member, const QKeySequence &shortcut = 0);
@@ -117,7 +113,7 @@ public:
static QAction *exec(QList<QAction*> actions, const QPoint &pos, QAction *at=0, QWidget *parent=0);
- QSize sizeHint() const;
+ QSize sizeHint() const Q_DECL_OVERRIDE;
QRect actionGeometry(QAction *) const;
QAction *actionAt(const QPoint &) const;
@@ -157,22 +153,22 @@ Q_SIGNALS:
protected:
int columnCount() const;
- void changeEvent(QEvent *);
- void keyPressEvent(QKeyEvent *);
- void mouseReleaseEvent(QMouseEvent *);
- void mousePressEvent(QMouseEvent *);
- void mouseMoveEvent(QMouseEvent *);
+ void changeEvent(QEvent *) Q_DECL_OVERRIDE;
+ void keyPressEvent(QKeyEvent *) Q_DECL_OVERRIDE;
+ void mouseReleaseEvent(QMouseEvent *) Q_DECL_OVERRIDE;
+ void mousePressEvent(QMouseEvent *) Q_DECL_OVERRIDE;
+ void mouseMoveEvent(QMouseEvent *) Q_DECL_OVERRIDE;
#ifndef QT_NO_WHEELEVENT
- void wheelEvent(QWheelEvent *);
+ void wheelEvent(QWheelEvent *) Q_DECL_OVERRIDE;
#endif
- void enterEvent(QEvent *);
- void leaveEvent(QEvent *);
- void hideEvent(QHideEvent *);
- void paintEvent(QPaintEvent *);
- void actionEvent(QActionEvent *);
- void timerEvent(QTimerEvent *);
- bool event(QEvent *);
- bool focusNextPrevChild(bool next);
+ void enterEvent(QEvent *) Q_DECL_OVERRIDE;
+ void leaveEvent(QEvent *) Q_DECL_OVERRIDE;
+ void hideEvent(QHideEvent *) Q_DECL_OVERRIDE;
+ void paintEvent(QPaintEvent *) Q_DECL_OVERRIDE;
+ void actionEvent(QActionEvent *) Q_DECL_OVERRIDE;
+ void timerEvent(QTimerEvent *) Q_DECL_OVERRIDE;
+ bool event(QEvent *) Q_DECL_OVERRIDE;
+ bool focusNextPrevChild(bool next) Q_DECL_OVERRIDE;
void initStyleOption(QStyleOptionMenuItem *option, const QAction *action) const;
#ifdef Q_OS_WINCE
@@ -180,7 +176,6 @@ protected:
#endif
private Q_SLOTS:
- void internalSetSloppyAction();
void internalDelayedPopup();
private:
diff --git a/src/widgets/widgets/qmenu_p.h b/src/widgets/widgets/qmenu_p.h
index 4a4518671c..64a728eaba 100644
--- a/src/widgets/widgets/qmenu_p.h
+++ b/src/widgets/widgets/qmenu_p.h
@@ -71,20 +71,230 @@ struct QWceMenuAction {
};
#endif
+template <typename T>
+class QSetValueOnDestroy
+{
+public:
+ QSetValueOnDestroy(T &toSet, T value)
+ : toSet(toSet)
+ , value(value)
+ { }
+
+ ~QSetValueOnDestroy() { toSet = value; }
+private:
+ T &toSet;
+ T value;
+};
+
+class QMenuSloppyState
+{
+ Q_DISABLE_COPY(QMenuSloppyState)
+public:
+ QMenuSloppyState()
+ : m_menu(Q_NULLPTR)
+ , m_enabled(false)
+ , m_uni_directional(false)
+ , m_select_other_actions(false)
+ , m_first_mouse(true)
+ , m_init_guard(false)
+ , m_uni_dir_discarded_count(0)
+ , m_uni_dir_fail_at_count(0)
+ , m_timeout(0)
+ , m_reset_action(Q_NULLPTR)
+ , m_origin_action(Q_NULLPTR)
+ , m_parent(Q_NULLPTR)
+ { }
+
+ ~QMenuSloppyState() { reset(); }
+
+ void initialize(QMenu *menu)
+ {
+ m_menu = menu;
+ m_uni_directional = menu->style()->styleHint(QStyle::SH_Menu_SubMenuUniDirection, 0, menu);
+ m_uni_dir_fail_at_count = menu->style()->styleHint(QStyle::SH_Menu_SubMenuUniDirectionFailCount, 0, menu);
+ m_select_other_actions = menu->style()->styleHint(QStyle::SH_Menu_SubMenuSloppySelectOtherActions, 0 , menu);
+ m_timeout = menu->style()->styleHint(QStyle::SH_Menu_SubMenuSloppyCloseTimeout);
+ m_discard_state_when_entering_parent = menu->style()->styleHint(QStyle::SH_Menu_SubMenuResetWhenReenteringParent);
+ m_dont_start_time_on_leave = menu->style()->styleHint(QStyle::SH_Menu_SubMenuDontStartSloppyOnLeave);
+ reset();
+ }
+
+ void reset();
+ bool enabled() const { return m_enabled; }
+
+ void setResetAction(QAction *action) { m_reset_action = action; }
+
+ enum MouseEventResult {
+ EventIsProcessed,
+ EventShouldBePropogated,
+ EventDiscardsSloppyState
+ };
+
+ void startTimer()
+ {
+ if (m_enabled)
+ m_time.start(m_timeout, m_menu);
+ }
+
+ void startTimerIfNotRunning()
+ {
+ if (!m_time.isActive())
+ startTimer();
+ }
+
+ void stopTimer()
+ {
+ m_time.stop();
+ }
+
+ void enter();
+
+ void childEnter()
+ {
+ stopTimer();
+ if (m_parent)
+ m_parent->childEnter();
+ }
+
+ void leave()
+ {
+ if (m_dont_start_time_on_leave)
+ return;
+ if (m_parent)
+ m_parent->childLeave();
+ startTimer();
+ }
+ void childLeave();
+
+ static float slope(const QPointF &p1, const QPointF &p2)
+ {
+ const QPointF slope = p2 - p1;
+ if (slope.x()== 0)
+ return 9999;
+ return slope.y()/slope.x();
+ }
+
+ bool checkSlope(qreal oldS, qreal newS, bool wantSteeper)
+ {
+ if (wantSteeper)
+ return oldS <= newS;
+ return newS <= oldS;
+ }
+
+ MouseEventResult processMouseEvent(const QPointF &mousePos, QAction *resetAction, QAction *currentAction)
+ {
+ if (m_parent)
+ m_parent->stopTimer();
+
+ if (!m_enabled)
+ return EventShouldBePropogated;
+
+ if (!m_time.isActive())
+ startTimer();
+
+ if (!m_sub_menu) {
+ reset();
+ return EventShouldBePropogated;
+ }
+
+ QSetValueOnDestroy<bool> setFirstMouse(m_first_mouse, false);
+ QSetValueOnDestroy<QPointF> setPreviousPoint(m_previous_point, mousePos);
+
+ if (resetAction && resetAction->isSeparator())
+ m_reset_action = Q_NULLPTR;
+ else {
+ m_reset_action = resetAction;
+ }
+
+ if (m_action_rect.contains(mousePos)) {
+ startTimer();
+ return currentAction == m_menu->menuAction() ? EventIsProcessed : EventShouldBePropogated;
+ }
+
+ if (m_uni_directional && !m_first_mouse && resetAction != m_origin_action) {
+ bool left_to_right = m_menu->layoutDirection() == Qt::LeftToRight;
+ QRect sub_menu_rect = m_sub_menu->geometry();
+ QPoint sub_menu_top =
+ left_to_right? sub_menu_rect.topLeft() : sub_menu_rect.topRight();
+ QPoint sub_menu_bottom =
+ left_to_right? sub_menu_rect.bottomLeft() : sub_menu_rect.bottomRight();
+ qreal prev_slope_top = slope(m_previous_point, sub_menu_top);
+ qreal prev_slope_bottom = slope(m_previous_point, sub_menu_bottom);
+
+ qreal current_slope_top = slope(mousePos, sub_menu_top);
+ qreal current_slope_bottom = slope(mousePos, sub_menu_bottom);
+
+ bool slopeTop = checkSlope(prev_slope_top, current_slope_top, sub_menu_top.y() < mousePos.y());
+ bool slopeBottom = checkSlope(prev_slope_bottom, current_slope_bottom, sub_menu_bottom.y() > mousePos.y());
+ bool rightDirection = false;
+ int mouseDir = m_previous_point.y() - mousePos.y();
+ if (mouseDir >= 0) {
+ rightDirection = rightDirection || slopeTop;
+ }
+ if (mouseDir <= 0) {
+ rightDirection = rightDirection || slopeBottom;
+ }
+
+ if (m_uni_dir_discarded_count >= m_uni_dir_fail_at_count && !rightDirection) {
+ m_uni_dir_discarded_count = 0;
+ return EventDiscardsSloppyState;
+ }
+
+ if (!rightDirection)
+ m_uni_dir_discarded_count++;
+ else
+ m_uni_dir_discarded_count = 0;
+
+ }
+
+ return m_select_other_actions ? EventShouldBePropogated : EventIsProcessed;
+ }
+
+ void setSubMenuPopup(const QRect &actionRect, QAction *resetAction, QMenu *subMenu);
+ bool hasParentActiveDelayTimer() const;
+ void timeout();
+ int timeForTimeout() const { return m_timeout; }
+
+ bool isTimerId(int timerId) const { return m_time.timerId() == timerId; }
+ QMenu *subMenu() const { return m_sub_menu; }
+
+private:
+ QMenu *m_menu;
+ bool m_enabled;
+ bool m_uni_directional;
+ bool m_select_other_actions;
+ bool m_first_mouse;
+ bool m_init_guard;
+ bool m_discard_state_when_entering_parent;
+ bool m_dont_start_time_on_leave;
+ short m_uni_dir_discarded_count;
+ short m_uni_dir_fail_at_count;
+ short m_timeout;
+ QBasicTimer m_time;
+ QAction *m_reset_action;
+ QAction *m_origin_action;
+ QRectF m_action_rect;
+ QPointF m_previous_point;
+ QPointer<QMenu> m_sub_menu;
+ QMenuSloppyState *m_parent;
+};
+
class QMenuPrivate : public QWidgetPrivate
{
Q_DECLARE_PUBLIC(QMenu)
public:
QMenuPrivate() : itemsDirty(0), maxIconWidth(0), tabWidth(0), ncols(0),
collapsibleSeparators(true), toolTipsVisible(false),
- activationRecursionGuard(false), hasHadMouse(0), aboutToHide(0), motions(0),
+ activationRecursionGuard(false), delayedPopupGuard(false),
+ hasReceievedEnter(false),
+ hasHadMouse(0), aboutToHide(0), motions(0),
currentAction(0),
#ifdef QT_KEYPAD_NAVIGATION
selectAction(0),
cancelAction(0),
#endif
scroll(0), eventLoop(0), tearoff(0), tornoff(0), tearoffHighlighted(0),
- hasCheckableItems(0), sloppyDelayTimer(0), sloppyAction(0), doChildEffects(false), platformMenu(0)
+ hasCheckableItems(0), doChildEffects(false), platformMenu(0)
#if defined(Q_OS_WINCE) && !defined(QT_NO_MENUBAR)
,wce_menu(0)
@@ -127,6 +337,8 @@ public:
int getLastVisibleAction() const;
bool activationRecursionGuard;
+ bool delayedPopupGuard;
+ bool hasReceievedEnter;
//selection
static QMenu *mouseDown;
@@ -134,12 +346,39 @@ public:
uint hasHadMouse : 1;
uint aboutToHide : 1;
int motions;
+ int mousePopupDelay;
QAction *currentAction;
#ifdef QT_KEYPAD_NAVIGATION
QAction *selectAction;
QAction *cancelAction;
#endif
- QBasicTimer menuDelayTimer;
+ struct DelayState {
+ DelayState()
+ : parent(0)
+ , action(0)
+ { }
+ void initialize(QMenu *parent)
+ {
+ this->parent = parent;
+ }
+
+ void start(int timeout, QAction *toStartAction)
+ {
+ if (timer.isActive() && toStartAction == action)
+ return;
+ action = toStartAction;
+ timer.start(timeout,parent);
+ }
+ void stop()
+ {
+ action = 0;
+ timer.stop();
+ }
+
+ QMenu *parent;
+ QBasicTimer timer;
+ QAction *action;
+ } delayState;
enum SelectionReason {
SelectedFromKeyboard,
SelectedFromElsewhere
@@ -198,10 +437,7 @@ public:
mutable bool hasCheckableItems;
- //sloppy selection
- int sloppyDelayTimer;
- mutable QAction *sloppyAction;
- QRegion sloppyRegion;
+ QMenuSloppyState sloppyState;
//default action
QPointer<QAction> defaultAction;
@@ -257,6 +493,7 @@ public:
QAction* wceCommands(uint command);
#endif
QPointer<QWidget> noReplayFor;
+ static QPointer<QMenu> previousMouseMenu;
};
#endif // QT_NO_MENU
diff --git a/src/widgets/widgets/qmenubar.cpp b/src/widgets/widgets/qmenubar.cpp
index 619cb64636..54d403fa21 100644
--- a/src/widgets/widgets/qmenubar.cpp
+++ b/src/widgets/widgets/qmenubar.cpp
@@ -69,8 +69,8 @@ class QMenuBarExtension : public QToolButton
public:
explicit QMenuBarExtension(QWidget *parent);
- QSize sizeHint() const;
- void paintEvent(QPaintEvent *);
+ QSize sizeHint() const Q_DECL_OVERRIDE;
+ void paintEvent(QPaintEvent *) Q_DECL_OVERRIDE;
};
QMenuBarExtension::QMenuBarExtension(QWidget *parent)
@@ -1922,15 +1922,6 @@ QAction *QMenuBar::defaultAction() const
\sa triggered(), QAction::hovered()
*/
-/*!
- \fn void QMenuBar::addAction(QAction *action)
- \overload
-
- Appends the action \a action to the menu bar's list of actions.
-
- \sa QMenu::addAction(), QWidget::addAction(), QWidget::actions()
-*/
-
// for private slots
diff --git a/src/widgets/widgets/qmenubar.h b/src/widgets/widgets/qmenubar.h
index cd2d2cd7aa..936cb22880 100644
--- a/src/widgets/widgets/qmenubar.h
+++ b/src/widgets/widgets/qmenubar.h
@@ -57,11 +57,7 @@ public:
explicit QMenuBar(QWidget *parent = 0);
~QMenuBar();
-#ifdef Q_NO_USING_KEYWORD
- void addAction(QAction *action) { QWidget::addAction(action); }
-#else
using QWidget::addAction;
-#endif
QAction *addAction(const QString &text);
QAction *addAction(const QString &text, const QObject *receiver, const char* member);
diff --git a/src/widgets/widgets/qplaintextedit.h b/src/widgets/widgets/qplaintextedit.h
index 9f67aaa8da..c47da891c8 100644
--- a/src/widgets/widgets/qplaintextedit.h
+++ b/src/widgets/widgets/qplaintextedit.h
@@ -176,7 +176,7 @@ public:
void print(QPagedPaintDevice *printer) const;
int blockCount() const;
- QVariant inputMethodQuery(Qt::InputMethodQuery property) const;
+ QVariant inputMethodQuery(Qt::InputMethodQuery property) const Q_DECL_OVERRIDE;
Q_INVOKABLE QVariant inputMethodQuery(Qt::InputMethodQuery query, QVariant argument) const;
public Q_SLOTS:
@@ -218,43 +218,43 @@ Q_SIGNALS:
void modificationChanged(bool);
protected:
- virtual bool event(QEvent *e);
- virtual void timerEvent(QTimerEvent *e);
- virtual void keyPressEvent(QKeyEvent *e);
- virtual void keyReleaseEvent(QKeyEvent *e);
- virtual void resizeEvent(QResizeEvent *e);
- virtual void paintEvent(QPaintEvent *e);
- virtual void mousePressEvent(QMouseEvent *e);
- virtual void mouseMoveEvent(QMouseEvent *e);
- virtual void mouseReleaseEvent(QMouseEvent *e);
- virtual void mouseDoubleClickEvent(QMouseEvent *e);
- virtual bool focusNextPrevChild(bool next);
+ virtual bool event(QEvent *e) Q_DECL_OVERRIDE;
+ virtual void timerEvent(QTimerEvent *e) Q_DECL_OVERRIDE;
+ virtual void keyPressEvent(QKeyEvent *e) Q_DECL_OVERRIDE;
+ virtual void keyReleaseEvent(QKeyEvent *e) Q_DECL_OVERRIDE;
+ virtual void resizeEvent(QResizeEvent *e) Q_DECL_OVERRIDE;
+ virtual void paintEvent(QPaintEvent *e) Q_DECL_OVERRIDE;
+ virtual void mousePressEvent(QMouseEvent *e) Q_DECL_OVERRIDE;
+ virtual void mouseMoveEvent(QMouseEvent *e) Q_DECL_OVERRIDE;
+ virtual void mouseReleaseEvent(QMouseEvent *e) Q_DECL_OVERRIDE;
+ virtual void mouseDoubleClickEvent(QMouseEvent *e) Q_DECL_OVERRIDE;
+ virtual bool focusNextPrevChild(bool next) Q_DECL_OVERRIDE;
#ifndef QT_NO_CONTEXTMENU
- virtual void contextMenuEvent(QContextMenuEvent *e);
+ virtual void contextMenuEvent(QContextMenuEvent *e) Q_DECL_OVERRIDE;
#endif
#ifndef QT_NO_DRAGANDDROP
- virtual void dragEnterEvent(QDragEnterEvent *e);
- virtual void dragLeaveEvent(QDragLeaveEvent *e);
- virtual void dragMoveEvent(QDragMoveEvent *e);
- virtual void dropEvent(QDropEvent *e);
+ virtual void dragEnterEvent(QDragEnterEvent *e) Q_DECL_OVERRIDE;
+ virtual void dragLeaveEvent(QDragLeaveEvent *e) Q_DECL_OVERRIDE;
+ virtual void dragMoveEvent(QDragMoveEvent *e) Q_DECL_OVERRIDE;
+ virtual void dropEvent(QDropEvent *e) Q_DECL_OVERRIDE;
#endif
- virtual void focusInEvent(QFocusEvent *e);
- virtual void focusOutEvent(QFocusEvent *e);
- virtual void showEvent(QShowEvent *);
- virtual void changeEvent(QEvent *e);
+ virtual void focusInEvent(QFocusEvent *e) Q_DECL_OVERRIDE;
+ virtual void focusOutEvent(QFocusEvent *e) Q_DECL_OVERRIDE;
+ virtual void showEvent(QShowEvent *) Q_DECL_OVERRIDE;
+ virtual void changeEvent(QEvent *e) Q_DECL_OVERRIDE;
#ifndef QT_NO_WHEELEVENT
- virtual void wheelEvent(QWheelEvent *e);
+ virtual void wheelEvent(QWheelEvent *e) Q_DECL_OVERRIDE;
#endif
virtual QMimeData *createMimeDataFromSelection() const;
virtual bool canInsertFromMimeData(const QMimeData *source) const;
virtual void insertFromMimeData(const QMimeData *source);
- virtual void inputMethodEvent(QInputMethodEvent *);
+ virtual void inputMethodEvent(QInputMethodEvent *) Q_DECL_OVERRIDE;
QPlainTextEdit(QPlainTextEditPrivate &dd, QWidget *parent);
- virtual void scrollContentsBy(int dx, int dy);
+ virtual void scrollContentsBy(int dx, int dy) Q_DECL_OVERRIDE;
virtual void doSetTextCursor(const QTextCursor &cursor);
QTextBlock firstVisibleBlock() const;
@@ -287,14 +287,14 @@ public:
QPlainTextDocumentLayout(QTextDocument *document);
~QPlainTextDocumentLayout();
- void draw(QPainter *, const PaintContext &);
- int hitTest(const QPointF &, Qt::HitTestAccuracy ) const;
+ void draw(QPainter *, const PaintContext &) Q_DECL_OVERRIDE;
+ int hitTest(const QPointF &, Qt::HitTestAccuracy ) const Q_DECL_OVERRIDE;
- int pageCount() const;
- QSizeF documentSize() const;
+ int pageCount() const Q_DECL_OVERRIDE;
+ QSizeF documentSize() const Q_DECL_OVERRIDE;
- QRectF frameBoundingRect(QTextFrame *) const;
- QRectF blockBoundingRect(const QTextBlock &block) const;
+ QRectF frameBoundingRect(QTextFrame *) const Q_DECL_OVERRIDE;
+ QRectF blockBoundingRect(const QTextBlock &block) const Q_DECL_OVERRIDE;
void ensureBlockLayout(const QTextBlock &block) const;
@@ -304,7 +304,7 @@ public:
void requestUpdate();
protected:
- void documentChanged(int from, int /*charsRemoved*/, int charsAdded);
+ void documentChanged(int from, int /*charsRemoved*/, int charsAdded) Q_DECL_OVERRIDE;
private:
diff --git a/src/widgets/widgets/qplaintextedit_p.h b/src/widgets/widgets/qplaintextedit_p.h
index 6ab8b90a0d..1e74c7b895 100644
--- a/src/widgets/widgets/qplaintextedit_p.h
+++ b/src/widgets/widgets/qplaintextedit_p.h
@@ -72,18 +72,18 @@ public:
QPlainTextEditControl(QPlainTextEdit *parent);
- QMimeData *createMimeDataFromSelection() const;
- bool canInsertFromMimeData(const QMimeData *source) const;
- void insertFromMimeData(const QMimeData *source);
- int hitTest(const QPointF &point, Qt::HitTestAccuracy = Qt::FuzzyHit) const;
- QRectF blockBoundingRect(const QTextBlock &block) const;
+ QMimeData *createMimeDataFromSelection() const Q_DECL_OVERRIDE;
+ bool canInsertFromMimeData(const QMimeData *source) const Q_DECL_OVERRIDE;
+ void insertFromMimeData(const QMimeData *source) Q_DECL_OVERRIDE;
+ int hitTest(const QPointF &point, Qt::HitTestAccuracy = Qt::FuzzyHit) const Q_DECL_OVERRIDE;
+ QRectF blockBoundingRect(const QTextBlock &block) const Q_DECL_OVERRIDE;
inline QRectF cursorRect(const QTextCursor &cursor) const {
QRectF r = QWidgetTextControl::cursorRect(cursor);
r.setLeft(qMax(r.left(), (qreal) 0.));
return r;
}
inline QRectF cursorRect() { return cursorRect(textCursor()); }
- void ensureCursorVisible() {
+ void ensureCursorVisible() Q_DECL_OVERRIDE {
textEdit->ensureCursorVisible();
emit microFocusChanged();
}
@@ -93,7 +93,7 @@ public:
int topBlock;
QTextBlock firstVisibleBlock() const;
- QVariant loadResource(int type, const QUrl &name) {
+ QVariant loadResource(int type, const QUrl &name) Q_DECL_OVERRIDE {
return textEdit->loadResource(type, name);
}
diff --git a/src/widgets/widgets/qprogressbar.cpp b/src/widgets/widgets/qprogressbar.cpp
index 58aec8ee9a..1c76bd0ac1 100644
--- a/src/widgets/widgets/qprogressbar.cpp
+++ b/src/widgets/widgets/qprogressbar.cpp
@@ -132,7 +132,7 @@ void QProgressBar::initStyleOption(QStyleOptionProgressBar *option) const
if (QStyleOptionProgressBarV2 *optionV2
= qstyleoption_cast<QStyleOptionProgressBarV2 *>(option)) {
- optionV2->orientation = d->orientation; // ### Qt 5: use State_Horizontal instead
+ optionV2->orientation = d->orientation; // ### Qt 6: remove this member from QStyleOptionProgressBarV2
optionV2->invertedAppearance = d->invertedAppearance;
optionV2->bottomToTop = (d->textDirection == QProgressBar::BottomToTop);
}
diff --git a/src/widgets/widgets/qprogressbar.h b/src/widgets/widgets/qprogressbar.h
index 2cdcbccdb3..898656f8f4 100644
--- a/src/widgets/widgets/qprogressbar.h
+++ b/src/widgets/widgets/qprogressbar.h
@@ -77,8 +77,8 @@ public:
Qt::Alignment alignment() const;
void setAlignment(Qt::Alignment alignment);
- QSize sizeHint() const;
- QSize minimumSizeHint() const;
+ QSize sizeHint() const Q_DECL_OVERRIDE;
+ QSize minimumSizeHint() const Q_DECL_OVERRIDE;
Qt::Orientation orientation() const;
@@ -103,8 +103,8 @@ Q_SIGNALS:
void valueChanged(int value);
protected:
- bool event(QEvent *e);
- void paintEvent(QPaintEvent *);
+ bool event(QEvent *e) Q_DECL_OVERRIDE;
+ void paintEvent(QPaintEvent *) Q_DECL_OVERRIDE;
void initStyleOption(QStyleOptionProgressBar *option) const;
private:
diff --git a/src/widgets/widgets/qpushbutton.h b/src/widgets/widgets/qpushbutton.h
index ebf66f8ef8..5063651658 100644
--- a/src/widgets/widgets/qpushbutton.h
+++ b/src/widgets/widgets/qpushbutton.h
@@ -57,8 +57,8 @@ public:
QPushButton(const QIcon& icon, const QString &text, QWidget *parent=0);
~QPushButton();
- QSize sizeHint() const;
- QSize minimumSizeHint() const;
+ QSize sizeHint() const Q_DECL_OVERRIDE;
+ QSize minimumSizeHint() const Q_DECL_OVERRIDE;
bool autoDefault() const;
void setAutoDefault(bool);
@@ -79,14 +79,14 @@ public Q_SLOTS:
#endif
protected:
- bool event(QEvent *e);
+ bool event(QEvent *e) Q_DECL_OVERRIDE;
#ifdef Q_WS_MAC
bool hitButton(const QPoint &pos) const;
#endif // Q_WS_MAC
- void paintEvent(QPaintEvent *);
- void keyPressEvent(QKeyEvent *);
- void focusInEvent(QFocusEvent *);
- void focusOutEvent(QFocusEvent *);
+ void paintEvent(QPaintEvent *) Q_DECL_OVERRIDE;
+ void keyPressEvent(QKeyEvent *) Q_DECL_OVERRIDE;
+ void focusInEvent(QFocusEvent *) Q_DECL_OVERRIDE;
+ void focusOutEvent(QFocusEvent *) Q_DECL_OVERRIDE;
void initStyleOption(QStyleOptionButton *option) const;
QPushButton(QPushButtonPrivate &dd, QWidget* parent = 0);
diff --git a/src/widgets/widgets/qradiobutton.h b/src/widgets/widgets/qradiobutton.h
index 0bfb0de4e8..beda0e0d38 100644
--- a/src/widgets/widgets/qradiobutton.h
+++ b/src/widgets/widgets/qradiobutton.h
@@ -51,14 +51,14 @@ public:
explicit QRadioButton(const QString &text, QWidget *parent=0);
~QRadioButton();
- QSize sizeHint() const;
- QSize minimumSizeHint() const;
+ QSize sizeHint() const Q_DECL_OVERRIDE;
+ QSize minimumSizeHint() const Q_DECL_OVERRIDE;
protected:
- bool event(QEvent *e);
- bool hitButton(const QPoint &) const;
- void paintEvent(QPaintEvent *);
- void mouseMoveEvent(QMouseEvent *);
+ bool event(QEvent *e) Q_DECL_OVERRIDE;
+ bool hitButton(const QPoint &) const Q_DECL_OVERRIDE;
+ void paintEvent(QPaintEvent *) Q_DECL_OVERRIDE;
+ void mouseMoveEvent(QMouseEvent *) Q_DECL_OVERRIDE;
void initStyleOption(QStyleOptionButton *button) const;
diff --git a/src/widgets/widgets/qrubberband.h b/src/widgets/widgets/qrubberband.h
index 7193f69f59..f46d6a8643 100644
--- a/src/widgets/widgets/qrubberband.h
+++ b/src/widgets/widgets/qrubberband.h
@@ -67,12 +67,12 @@ public:
{ resize(s.width(), s.height()); }
protected:
- bool event(QEvent *e);
- void paintEvent(QPaintEvent *);
- void changeEvent(QEvent *);
- void showEvent(QShowEvent *);
- void resizeEvent(QResizeEvent *);
- void moveEvent(QMoveEvent *);
+ bool event(QEvent *e) Q_DECL_OVERRIDE;
+ void paintEvent(QPaintEvent *) Q_DECL_OVERRIDE;
+ void changeEvent(QEvent *) Q_DECL_OVERRIDE;
+ void showEvent(QShowEvent *) Q_DECL_OVERRIDE;
+ void resizeEvent(QResizeEvent *) Q_DECL_OVERRIDE;
+ void moveEvent(QMoveEvent *) Q_DECL_OVERRIDE;
void initStyleOption(QStyleOptionRubberBand *option) const;
private:
diff --git a/src/widgets/widgets/qscrollarea.h b/src/widgets/widgets/qscrollarea.h
index 568dbc6e4f..3ec9ca14a3 100644
--- a/src/widgets/widgets/qscrollarea.h
+++ b/src/widgets/widgets/qscrollarea.h
@@ -60,9 +60,9 @@ public:
bool widgetResizable() const;
void setWidgetResizable(bool resizable);
- QSize sizeHint() const;
+ QSize sizeHint() const Q_DECL_OVERRIDE;
- bool focusNextPrevChild(bool next);
+ bool focusNextPrevChild(bool next) Q_DECL_OVERRIDE;
Qt::Alignment alignment() const;
void setAlignment(Qt::Alignment);
@@ -72,10 +72,10 @@ public:
protected:
QScrollArea(QScrollAreaPrivate &dd, QWidget *parent = 0);
- bool event(QEvent *);
- bool eventFilter(QObject *, QEvent *);
- void resizeEvent(QResizeEvent *);
- void scrollContentsBy(int dx, int dy);
+ bool event(QEvent *) Q_DECL_OVERRIDE;
+ bool eventFilter(QObject *, QEvent *) Q_DECL_OVERRIDE;
+ void resizeEvent(QResizeEvent *) Q_DECL_OVERRIDE;
+ void scrollContentsBy(int dx, int dy) Q_DECL_OVERRIDE;
QSize viewportSizeHint() const Q_DECL_OVERRIDE;
diff --git a/src/widgets/widgets/qscrollbar.h b/src/widgets/widgets/qscrollbar.h
index 2b67f04850..992bd511c8 100644
--- a/src/widgets/widgets/qscrollbar.h
+++ b/src/widgets/widgets/qscrollbar.h
@@ -53,21 +53,21 @@ public:
explicit QScrollBar(Qt::Orientation, QWidget *parent=0);
~QScrollBar();
- QSize sizeHint() const;
- bool event(QEvent *event);
+ QSize sizeHint() const Q_DECL_OVERRIDE;
+ bool event(QEvent *event) Q_DECL_OVERRIDE;
protected:
#ifndef QT_NO_WHEELEVENT
- void wheelEvent(QWheelEvent *);
+ void wheelEvent(QWheelEvent *) Q_DECL_OVERRIDE;
#endif
- void paintEvent(QPaintEvent *);
- void mousePressEvent(QMouseEvent *);
- void mouseReleaseEvent(QMouseEvent *);
- void mouseMoveEvent(QMouseEvent *);
- void hideEvent(QHideEvent*);
- void sliderChange(SliderChange change);
+ void paintEvent(QPaintEvent *) Q_DECL_OVERRIDE;
+ void mousePressEvent(QMouseEvent *) Q_DECL_OVERRIDE;
+ void mouseReleaseEvent(QMouseEvent *) Q_DECL_OVERRIDE;
+ void mouseMoveEvent(QMouseEvent *) Q_DECL_OVERRIDE;
+ void hideEvent(QHideEvent*) Q_DECL_OVERRIDE;
+ void sliderChange(SliderChange change) Q_DECL_OVERRIDE;
#ifndef QT_NO_CONTEXTMENU
- void contextMenuEvent(QContextMenuEvent *);
+ void contextMenuEvent(QContextMenuEvent *) Q_DECL_OVERRIDE;
#endif
void initStyleOption(QStyleOptionSlider *option) const;
diff --git a/src/widgets/widgets/qsizegrip.h b/src/widgets/widgets/qsizegrip.h
index 61b397e2bb..7885d0a2b7 100644
--- a/src/widgets/widgets/qsizegrip.h
+++ b/src/widgets/widgets/qsizegrip.h
@@ -48,19 +48,19 @@ public:
explicit QSizeGrip(QWidget *parent);
~QSizeGrip();
- QSize sizeHint() const;
- void setVisible(bool);
+ QSize sizeHint() const Q_DECL_OVERRIDE;
+ void setVisible(bool) Q_DECL_OVERRIDE;
protected:
- void paintEvent(QPaintEvent *);
- void mousePressEvent(QMouseEvent *);
- void mouseMoveEvent(QMouseEvent *);
- void mouseReleaseEvent(QMouseEvent *mouseEvent);
- void moveEvent(QMoveEvent *moveEvent);
- void showEvent(QShowEvent *showEvent);
- void hideEvent(QHideEvent *hideEvent);
- bool eventFilter(QObject *, QEvent *);
- bool event(QEvent *);
+ void paintEvent(QPaintEvent *) Q_DECL_OVERRIDE;
+ void mousePressEvent(QMouseEvent *) Q_DECL_OVERRIDE;
+ void mouseMoveEvent(QMouseEvent *) Q_DECL_OVERRIDE;
+ void mouseReleaseEvent(QMouseEvent *mouseEvent) Q_DECL_OVERRIDE;
+ void moveEvent(QMoveEvent *moveEvent) Q_DECL_OVERRIDE;
+ void showEvent(QShowEvent *showEvent) Q_DECL_OVERRIDE;
+ void hideEvent(QHideEvent *hideEvent) Q_DECL_OVERRIDE;
+ bool eventFilter(QObject *, QEvent *) Q_DECL_OVERRIDE;
+ bool event(QEvent *) Q_DECL_OVERRIDE;
public:
diff --git a/src/widgets/widgets/qslider.h b/src/widgets/widgets/qslider.h
index 6d7bf7eee8..66b23e6fa3 100644
--- a/src/widgets/widgets/qslider.h
+++ b/src/widgets/widgets/qslider.h
@@ -66,8 +66,8 @@ public:
~QSlider();
- QSize sizeHint() const;
- QSize minimumSizeHint() const;
+ QSize sizeHint() const Q_DECL_OVERRIDE;
+ QSize minimumSizeHint() const Q_DECL_OVERRIDE;
void setTickPosition(TickPosition position);
TickPosition tickPosition() const;
@@ -75,13 +75,13 @@ public:
void setTickInterval(int ti);
int tickInterval() const;
- bool event(QEvent *event);
+ bool event(QEvent *event) Q_DECL_OVERRIDE;
protected:
- void paintEvent(QPaintEvent *ev);
- void mousePressEvent(QMouseEvent *ev);
- void mouseReleaseEvent(QMouseEvent *ev);
- void mouseMoveEvent(QMouseEvent *ev);
+ void paintEvent(QPaintEvent *ev) Q_DECL_OVERRIDE;
+ void mousePressEvent(QMouseEvent *ev) Q_DECL_OVERRIDE;
+ void mouseReleaseEvent(QMouseEvent *ev) Q_DECL_OVERRIDE;
+ void mouseMoveEvent(QMouseEvent *ev) Q_DECL_OVERRIDE;
void initStyleOption(QStyleOptionSlider *option) const;
diff --git a/src/widgets/widgets/qspinbox.cpp b/src/widgets/widgets/qspinbox.cpp
index e8b22151fa..3fe1218b87 100644
--- a/src/widgets/widgets/qspinbox.cpp
+++ b/src/widgets/widgets/qspinbox.cpp
@@ -58,10 +58,10 @@ class QSpinBoxPrivate : public QAbstractSpinBoxPrivate
Q_DECLARE_PUBLIC(QSpinBox)
public:
QSpinBoxPrivate();
- void emitSignals(EmitPolicy ep, const QVariant &);
+ void emitSignals(EmitPolicy ep, const QVariant &) Q_DECL_OVERRIDE;
- virtual QVariant valueFromText(const QString &n) const;
- virtual QString textFromValue(const QVariant &n) const;
+ virtual QVariant valueFromText(const QString &n) const Q_DECL_OVERRIDE;
+ virtual QString textFromValue(const QVariant &n) const Q_DECL_OVERRIDE;
QVariant validateAndInterpret(QString &input, int &pos,
QValidator::State &state) const;
@@ -79,10 +79,10 @@ class QDoubleSpinBoxPrivate : public QAbstractSpinBoxPrivate
Q_DECLARE_PUBLIC(QDoubleSpinBox)
public:
QDoubleSpinBoxPrivate();
- void emitSignals(EmitPolicy ep, const QVariant &);
+ void emitSignals(EmitPolicy ep, const QVariant &) Q_DECL_OVERRIDE;
- virtual QVariant valueFromText(const QString &n) const;
- virtual QString textFromValue(const QVariant &n) const;
+ virtual QVariant valueFromText(const QString &n) const Q_DECL_OVERRIDE;
+ virtual QString textFromValue(const QVariant &n) const Q_DECL_OVERRIDE;
QVariant validateAndInterpret(QString &input, int &pos,
QValidator::State &state) const;
double round(double input) const;
diff --git a/src/widgets/widgets/qsplashscreen.h b/src/widgets/widgets/qsplashscreen.h
index bb8b359831..41db23a434 100644
--- a/src/widgets/widgets/qsplashscreen.h
+++ b/src/widgets/widgets/qsplashscreen.h
@@ -66,9 +66,9 @@ Q_SIGNALS:
void messageChanged(const QString &message);
protected:
- bool event(QEvent *e);
+ bool event(QEvent *e) Q_DECL_OVERRIDE;
virtual void drawContents(QPainter *painter);
- void mousePressEvent(QMouseEvent *);
+ void mousePressEvent(QMouseEvent *) Q_DECL_OVERRIDE;
private:
Q_DISABLE_COPY(QSplashScreen)
diff --git a/src/widgets/widgets/qsplitter.h b/src/widgets/widgets/qsplitter.h
index f82c06c3bc..c08682eef2 100644
--- a/src/widgets/widgets/qsplitter.h
+++ b/src/widgets/widgets/qsplitter.h
@@ -77,8 +77,8 @@ public:
bool opaqueResize() const;
void refresh();
- QSize sizeHint() const;
- QSize minimumSizeHint() const;
+ QSize sizeHint() const Q_DECL_OVERRIDE;
+ QSize minimumSizeHint() const Q_DECL_OVERRIDE;
QList<int> sizes() const;
void setSizes(const QList<int> &list);
@@ -104,12 +104,12 @@ Q_SIGNALS:
protected:
virtual QSplitterHandle *createHandle();
- void childEvent(QChildEvent *);
+ void childEvent(QChildEvent *) Q_DECL_OVERRIDE;
- bool event(QEvent *);
- void resizeEvent(QResizeEvent *);
+ bool event(QEvent *) Q_DECL_OVERRIDE;
+ void resizeEvent(QResizeEvent *) Q_DECL_OVERRIDE;
- void changeEvent(QEvent *);
+ void changeEvent(QEvent *) Q_DECL_OVERRIDE;
void moveSplitter(int pos, int index);
void setRubberBand(int position);
int closestLegalPosition(int, int);
@@ -138,15 +138,15 @@ public:
bool opaqueResize() const;
QSplitter *splitter() const;
- QSize sizeHint() const;
+ QSize sizeHint() const Q_DECL_OVERRIDE;
protected:
- void paintEvent(QPaintEvent *);
- void mouseMoveEvent(QMouseEvent *);
- void mousePressEvent(QMouseEvent *);
- void mouseReleaseEvent(QMouseEvent *);
- void resizeEvent(QResizeEvent *);
- bool event(QEvent *);
+ void paintEvent(QPaintEvent *) Q_DECL_OVERRIDE;
+ void mouseMoveEvent(QMouseEvent *) Q_DECL_OVERRIDE;
+ void mousePressEvent(QMouseEvent *) Q_DECL_OVERRIDE;
+ void mouseReleaseEvent(QMouseEvent *) Q_DECL_OVERRIDE;
+ void resizeEvent(QResizeEvent *) Q_DECL_OVERRIDE;
+ bool event(QEvent *) Q_DECL_OVERRIDE;
void moveSplitter(int p);
int closestLegalPosition(int p);
diff --git a/src/widgets/widgets/qstackedwidget.h b/src/widgets/widgets/qstackedwidget.h
index af048bc749..71191ba133 100644
--- a/src/widgets/widgets/qstackedwidget.h
+++ b/src/widgets/widgets/qstackedwidget.h
@@ -73,7 +73,7 @@ Q_SIGNALS:
void widgetRemoved(int index);
protected:
- bool event(QEvent *e);
+ bool event(QEvent *e) Q_DECL_OVERRIDE;
private:
Q_DISABLE_COPY(QStackedWidget)
diff --git a/src/widgets/widgets/qstatusbar.h b/src/widgets/widgets/qstatusbar.h
index d24680ab2a..56d45b9001 100644
--- a/src/widgets/widgets/qstatusbar.h
+++ b/src/widgets/widgets/qstatusbar.h
@@ -73,14 +73,14 @@ Q_SIGNALS:
void messageChanged(const QString &text);
protected:
- void showEvent(QShowEvent *);
- void paintEvent(QPaintEvent *);
- void resizeEvent(QResizeEvent *);
+ void showEvent(QShowEvent *) Q_DECL_OVERRIDE;
+ void paintEvent(QPaintEvent *) Q_DECL_OVERRIDE;
+ void resizeEvent(QResizeEvent *) Q_DECL_OVERRIDE;
// ### Qt 6: consider making reformat() and hideOrShow() private
void reformat();
void hideOrShow();
- bool event(QEvent *);
+ bool event(QEvent *) Q_DECL_OVERRIDE;
private:
Q_DISABLE_COPY(QStatusBar)
diff --git a/src/widgets/widgets/qtabbar.h b/src/widgets/widgets/qtabbar.h
index bdc9dae07c..5cca289020 100644
--- a/src/widgets/widgets/qtabbar.h
+++ b/src/widgets/widgets/qtabbar.h
@@ -130,8 +130,8 @@ public:
int currentIndex() const;
int count() const;
- QSize sizeHint() const;
- QSize minimumSizeHint() const;
+ QSize sizeHint() const Q_DECL_OVERRIDE;
+ QSize minimumSizeHint() const Q_DECL_OVERRIDE;
void setDrawBase(bool drawTheBase);
bool drawBase() const;
@@ -183,20 +183,20 @@ protected:
virtual void tabRemoved(int index);
virtual void tabLayoutChange();
- bool event(QEvent *);
- void resizeEvent(QResizeEvent *);
- void showEvent(QShowEvent *);
- void hideEvent(QHideEvent *);
- void paintEvent(QPaintEvent *);
- void mousePressEvent (QMouseEvent *);
- void mouseMoveEvent (QMouseEvent *);
- void mouseReleaseEvent (QMouseEvent *);
+ bool event(QEvent *) Q_DECL_OVERRIDE;
+ void resizeEvent(QResizeEvent *) Q_DECL_OVERRIDE;
+ void showEvent(QShowEvent *) Q_DECL_OVERRIDE;
+ void hideEvent(QHideEvent *) Q_DECL_OVERRIDE;
+ void paintEvent(QPaintEvent *) Q_DECL_OVERRIDE;
+ void mousePressEvent (QMouseEvent *) Q_DECL_OVERRIDE;
+ void mouseMoveEvent (QMouseEvent *) Q_DECL_OVERRIDE;
+ void mouseReleaseEvent (QMouseEvent *) Q_DECL_OVERRIDE;
#ifndef QT_NO_WHEELEVENT
- void wheelEvent(QWheelEvent *event);
+ void wheelEvent(QWheelEvent *event) Q_DECL_OVERRIDE;
#endif
- void keyPressEvent(QKeyEvent *);
- void changeEvent(QEvent *);
- void timerEvent(QTimerEvent *event);
+ void keyPressEvent(QKeyEvent *) Q_DECL_OVERRIDE;
+ void changeEvent(QEvent *) Q_DECL_OVERRIDE;
+ void timerEvent(QTimerEvent *event) Q_DECL_OVERRIDE;
void initStyleOption(QStyleOptionTab *option, int tabIndex) const;
#ifndef QT_NO_ACCESSIBILITY
diff --git a/src/widgets/widgets/qtabbar_p.h b/src/widgets/widgets/qtabbar_p.h
index b26ad20f1a..9393c94c9e 100644
--- a/src/widgets/widgets/qtabbar_p.h
+++ b/src/widgets/widgets/qtabbar_p.h
@@ -119,9 +119,9 @@ public:
TabBarAnimation(Tab *t, QTabBarPrivate *_priv) : tab(t), priv(_priv)
{ setEasingCurve(QEasingCurve::InOutQuad); }
- void updateCurrentValue(const QVariant &current);
+ void updateCurrentValue(const QVariant &current) Q_DECL_OVERRIDE;
- void updateState(State, State newState);
+ void updateState(State, State newState) Q_DECL_OVERRIDE;
private:
//these are needed for the callbacks
Tab *tab;
@@ -250,12 +250,12 @@ class CloseButton : public QAbstractButton
public:
CloseButton(QWidget *parent = 0);
- QSize sizeHint() const;
+ QSize sizeHint() const Q_DECL_OVERRIDE;
inline QSize minimumSizeHint() const
{ return sizeHint(); }
- void enterEvent(QEvent *event);
- void leaveEvent(QEvent *event);
- void paintEvent(QPaintEvent *event);
+ void enterEvent(QEvent *event) Q_DECL_OVERRIDE;
+ void leaveEvent(QEvent *event) Q_DECL_OVERRIDE;
+ void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE;
};
diff --git a/src/widgets/widgets/qtabwidget.h b/src/widgets/widgets/qtabwidget.h
index 5d9adc40e5..dc5c49c99c 100644
--- a/src/widgets/widgets/qtabwidget.h
+++ b/src/widgets/widgets/qtabwidget.h
@@ -113,10 +113,10 @@ public:
TabShape tabShape() const;
void setTabShape(TabShape s);
- QSize sizeHint() const;
- QSize minimumSizeHint() const;
- int heightForWidth(int width) const;
- bool hasHeightForWidth() const;
+ QSize sizeHint() const Q_DECL_OVERRIDE;
+ QSize minimumSizeHint() const Q_DECL_OVERRIDE;
+ int heightForWidth(int width) const Q_DECL_OVERRIDE;
+ bool hasHeightForWidth() const Q_DECL_OVERRIDE;
void setCornerWidget(QWidget * w, Qt::Corner corner = Qt::TopRightCorner);
QWidget * cornerWidget(Qt::Corner corner = Qt::TopRightCorner) const;
@@ -154,13 +154,13 @@ protected:
virtual void tabInserted(int index);
virtual void tabRemoved(int index);
- void showEvent(QShowEvent *);
- void resizeEvent(QResizeEvent *);
- void keyPressEvent(QKeyEvent *);
- void paintEvent(QPaintEvent *);
+ void showEvent(QShowEvent *) Q_DECL_OVERRIDE;
+ void resizeEvent(QResizeEvent *) Q_DECL_OVERRIDE;
+ void keyPressEvent(QKeyEvent *) Q_DECL_OVERRIDE;
+ void paintEvent(QPaintEvent *) Q_DECL_OVERRIDE;
void setTabBar(QTabBar *);
- void changeEvent(QEvent *);
- bool event(QEvent *);
+ void changeEvent(QEvent *) Q_DECL_OVERRIDE;
+ bool event(QEvent *) Q_DECL_OVERRIDE;
void initStyleOption(QStyleOptionTabWidgetFrame *option) const;
diff --git a/src/widgets/widgets/qtextbrowser.cpp b/src/widgets/widgets/qtextbrowser.cpp
index 1ef2f92804..7a02401dd1 100644
--- a/src/widgets/widgets/qtextbrowser.cpp
+++ b/src/widgets/widgets/qtextbrowser.cpp
@@ -129,7 +129,7 @@ public:
void setSource(const QUrl &url);
// re-imlemented from QTextEditPrivate
- virtual QUrl resolveUrl(const QUrl &url) const;
+ virtual QUrl resolveUrl(const QUrl &url) const Q_DECL_OVERRIDE;
inline QUrl resolveUrl(const QString &url) const
{ return resolveUrl(QUrl(url)); }
diff --git a/src/widgets/widgets/qtextbrowser.h b/src/widgets/widgets/qtextbrowser.h
index d08590cb27..de917d0bf3 100644
--- a/src/widgets/widgets/qtextbrowser.h
+++ b/src/widgets/widgets/qtextbrowser.h
@@ -65,7 +65,7 @@ public:
QStringList searchPaths() const;
void setSearchPaths(const QStringList &paths);
- virtual QVariant loadResource(int type, const QUrl &name);
+ virtual QVariant loadResource(int type, const QUrl &name) Q_DECL_OVERRIDE;
bool isBackwardAvailable() const;
bool isForwardAvailable() const;
@@ -98,14 +98,14 @@ Q_SIGNALS:
void anchorClicked(const QUrl &);
protected:
- bool event(QEvent *e);
- virtual void keyPressEvent(QKeyEvent *ev);
- virtual void mouseMoveEvent(QMouseEvent *ev);
- virtual void mousePressEvent(QMouseEvent *ev);
- virtual void mouseReleaseEvent(QMouseEvent *ev);
- virtual void focusOutEvent(QFocusEvent *ev);
- virtual bool focusNextPrevChild(bool next);
- virtual void paintEvent(QPaintEvent *e);
+ bool event(QEvent *e) Q_DECL_OVERRIDE;
+ virtual void keyPressEvent(QKeyEvent *ev) Q_DECL_OVERRIDE;
+ virtual void mouseMoveEvent(QMouseEvent *ev) Q_DECL_OVERRIDE;
+ virtual void mousePressEvent(QMouseEvent *ev) Q_DECL_OVERRIDE;
+ virtual void mouseReleaseEvent(QMouseEvent *ev) Q_DECL_OVERRIDE;
+ virtual void focusOutEvent(QFocusEvent *ev) Q_DECL_OVERRIDE;
+ virtual bool focusNextPrevChild(bool next) Q_DECL_OVERRIDE;
+ virtual void paintEvent(QPaintEvent *e) Q_DECL_OVERRIDE;
private:
Q_DISABLE_COPY(QTextBrowser)
diff --git a/src/widgets/widgets/qtextedit.cpp b/src/widgets/widgets/qtextedit.cpp
index 7ef864139f..a432a82ec0 100644
--- a/src/widgets/widgets/qtextedit.cpp
+++ b/src/widgets/widgets/qtextedit.cpp
@@ -77,19 +77,19 @@ class QTextEditControl : public QWidgetTextControl
public:
inline QTextEditControl(QObject *parent) : QWidgetTextControl(parent) {}
- virtual QMimeData *createMimeDataFromSelection() const {
+ virtual QMimeData *createMimeDataFromSelection() const Q_DECL_OVERRIDE {
QTextEdit *ed = qobject_cast<QTextEdit *>(parent());
if (!ed)
return QWidgetTextControl::createMimeDataFromSelection();
return ed->createMimeDataFromSelection();
}
- virtual bool canInsertFromMimeData(const QMimeData *source) const {
+ virtual bool canInsertFromMimeData(const QMimeData *source) const Q_DECL_OVERRIDE {
QTextEdit *ed = qobject_cast<QTextEdit *>(parent());
if (!ed)
return QWidgetTextControl::canInsertFromMimeData(source);
return ed->canInsertFromMimeData(source);
}
- virtual void insertFromMimeData(const QMimeData *source) {
+ virtual void insertFromMimeData(const QMimeData *source) Q_DECL_OVERRIDE {
QTextEdit *ed = qobject_cast<QTextEdit *>(parent());
if (!ed)
QWidgetTextControl::insertFromMimeData(source);
diff --git a/src/widgets/widgets/qtextedit.h b/src/widgets/widgets/qtextedit.h
index dc8deea8b6..4c5af67cca 100644
--- a/src/widgets/widgets/qtextedit.h
+++ b/src/widgets/widgets/qtextedit.h
@@ -203,7 +203,7 @@ public:
void print(QPagedPaintDevice *printer) const;
- QVariant inputMethodQuery(Qt::InputMethodQuery property) const;
+ QVariant inputMethodQuery(Qt::InputMethodQuery property) const Q_DECL_OVERRIDE;
Q_INVOKABLE QVariant inputMethodQuery(Qt::InputMethodQuery query, QVariant argument) const;
public Q_SLOTS:
@@ -257,43 +257,43 @@ Q_SIGNALS:
void cursorPositionChanged();
protected:
- virtual bool event(QEvent *e);
- virtual void timerEvent(QTimerEvent *e);
- virtual void keyPressEvent(QKeyEvent *e);
- virtual void keyReleaseEvent(QKeyEvent *e);
- virtual void resizeEvent(QResizeEvent *e);
- virtual void paintEvent(QPaintEvent *e);
- virtual void mousePressEvent(QMouseEvent *e);
- virtual void mouseMoveEvent(QMouseEvent *e);
- virtual void mouseReleaseEvent(QMouseEvent *e);
- virtual void mouseDoubleClickEvent(QMouseEvent *e);
- virtual bool focusNextPrevChild(bool next);
+ virtual bool event(QEvent *e) Q_DECL_OVERRIDE;
+ virtual void timerEvent(QTimerEvent *e) Q_DECL_OVERRIDE;
+ virtual void keyPressEvent(QKeyEvent *e) Q_DECL_OVERRIDE;
+ virtual void keyReleaseEvent(QKeyEvent *e) Q_DECL_OVERRIDE;
+ virtual void resizeEvent(QResizeEvent *e) Q_DECL_OVERRIDE;
+ virtual void paintEvent(QPaintEvent *e) Q_DECL_OVERRIDE;
+ virtual void mousePressEvent(QMouseEvent *e) Q_DECL_OVERRIDE;
+ virtual void mouseMoveEvent(QMouseEvent *e) Q_DECL_OVERRIDE;
+ virtual void mouseReleaseEvent(QMouseEvent *e) Q_DECL_OVERRIDE;
+ virtual void mouseDoubleClickEvent(QMouseEvent *e) Q_DECL_OVERRIDE;
+ virtual bool focusNextPrevChild(bool next) Q_DECL_OVERRIDE;
#ifndef QT_NO_CONTEXTMENU
- virtual void contextMenuEvent(QContextMenuEvent *e);
+ virtual void contextMenuEvent(QContextMenuEvent *e) Q_DECL_OVERRIDE;
#endif
#ifndef QT_NO_DRAGANDDROP
- virtual void dragEnterEvent(QDragEnterEvent *e);
- virtual void dragLeaveEvent(QDragLeaveEvent *e);
- virtual void dragMoveEvent(QDragMoveEvent *e);
- virtual void dropEvent(QDropEvent *e);
+ virtual void dragEnterEvent(QDragEnterEvent *e) Q_DECL_OVERRIDE;
+ virtual void dragLeaveEvent(QDragLeaveEvent *e) Q_DECL_OVERRIDE;
+ virtual void dragMoveEvent(QDragMoveEvent *e) Q_DECL_OVERRIDE;
+ virtual void dropEvent(QDropEvent *e) Q_DECL_OVERRIDE;
#endif
- virtual void focusInEvent(QFocusEvent *e);
- virtual void focusOutEvent(QFocusEvent *e);
- virtual void showEvent(QShowEvent *);
- virtual void changeEvent(QEvent *e);
+ virtual void focusInEvent(QFocusEvent *e) Q_DECL_OVERRIDE;
+ virtual void focusOutEvent(QFocusEvent *e) Q_DECL_OVERRIDE;
+ virtual void showEvent(QShowEvent *) Q_DECL_OVERRIDE;
+ virtual void changeEvent(QEvent *e) Q_DECL_OVERRIDE;
#ifndef QT_NO_WHEELEVENT
- virtual void wheelEvent(QWheelEvent *e);
+ virtual void wheelEvent(QWheelEvent *e) Q_DECL_OVERRIDE;
#endif
virtual QMimeData *createMimeDataFromSelection() const;
virtual bool canInsertFromMimeData(const QMimeData *source) const;
virtual void insertFromMimeData(const QMimeData *source);
- virtual void inputMethodEvent(QInputMethodEvent *);
+ virtual void inputMethodEvent(QInputMethodEvent *) Q_DECL_OVERRIDE;
QTextEdit(QTextEditPrivate &dd, QWidget *parent);
- virtual void scrollContentsBy(int dx, int dy);
+ virtual void scrollContentsBy(int dx, int dy) Q_DECL_OVERRIDE;
virtual void doSetTextCursor(const QTextCursor &cursor);
void zoomInF(float range);
diff --git a/src/widgets/widgets/qtoolbar.cpp b/src/widgets/widgets/qtoolbar.cpp
index 77119a0d7d..c07c3dac8c 100644
--- a/src/widgets/widgets/qtoolbar.cpp
+++ b/src/widgets/widgets/qtoolbar.cpp
@@ -418,15 +418,6 @@ void QToolBarPrivate::plug(const QRect &r)
*/
/*!
- \fn void QToolBar::addAction(QAction *action)
- \overload
-
- Appends the \a action to the toolbar's list of actions.
-
- \sa QMenu::addAction(), QWidget::addAction()
-*/
-
-/*!
\fn void QToolBar::actionTriggered(QAction *action)
This signal is emitted when an action in this toolbar is triggered.
diff --git a/src/widgets/widgets/qtoolbar.h b/src/widgets/widgets/qtoolbar.h
index 6bd1411592..57a69afb74 100644
--- a/src/widgets/widgets/qtoolbar.h
+++ b/src/widgets/widgets/qtoolbar.h
@@ -86,13 +86,7 @@ public:
void clear();
-#ifdef Q_NO_USING_KEYWORD
- inline void addAction(QAction *action)
- { QWidget::addAction(action); }
-#else
using QWidget::addAction;
-#endif
-
QAction *addAction(const QString &text);
QAction *addAction(const QIcon &icon, const QString &text);
QAction *addAction(const QString &text, const QObject *receiver, const char* member);
@@ -135,10 +129,10 @@ Q_SIGNALS:
void visibilityChanged(bool visible);
protected:
- void actionEvent(QActionEvent *event);
- void changeEvent(QEvent *event);
- void paintEvent(QPaintEvent *event);
- bool event(QEvent *event);
+ void actionEvent(QActionEvent *event) Q_DECL_OVERRIDE;
+ void changeEvent(QEvent *event) Q_DECL_OVERRIDE;
+ void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE;
+ bool event(QEvent *event) Q_DECL_OVERRIDE;
void initStyleOption(QStyleOptionToolBar *option) const;
diff --git a/src/widgets/widgets/qtoolbarextension_p.h b/src/widgets/widgets/qtoolbarextension_p.h
index 07e3301ed7..6625419d87 100644
--- a/src/widgets/widgets/qtoolbarextension_p.h
+++ b/src/widgets/widgets/qtoolbarextension_p.h
@@ -58,8 +58,8 @@ class Q_AUTOTEST_EXPORT QToolBarExtension : public QToolButton
public:
explicit QToolBarExtension(QWidget *parent);
- void paintEvent(QPaintEvent *);
- QSize sizeHint() const;
+ void paintEvent(QPaintEvent *) Q_DECL_OVERRIDE;
+ QSize sizeHint() const Q_DECL_OVERRIDE;
public Q_SLOTS:
void setOrientation(Qt::Orientation o);
diff --git a/src/widgets/widgets/qtoolbarlayout_p.h b/src/widgets/widgets/qtoolbarlayout_p.h
index 47857d6802..4cedd2b37a 100644
--- a/src/widgets/widgets/qtoolbarlayout_p.h
+++ b/src/widgets/widgets/qtoolbarlayout_p.h
@@ -61,7 +61,7 @@ class QToolBarItem : public QWidgetItem
{
public:
QToolBarItem(QWidget *widget);
- bool isEmpty() const;
+ bool isEmpty() const Q_DECL_OVERRIDE;
QAction *action;
bool customWidget;
@@ -75,22 +75,22 @@ public:
QToolBarLayout(QWidget *parent = 0);
~QToolBarLayout();
- void addItem(QLayoutItem *item);
- QLayoutItem *itemAt(int index) const;
- QLayoutItem *takeAt(int index);
- int count() const;
+ void addItem(QLayoutItem *item) Q_DECL_OVERRIDE;
+ QLayoutItem *itemAt(int index) const Q_DECL_OVERRIDE;
+ QLayoutItem *takeAt(int index) Q_DECL_OVERRIDE;
+ int count() const Q_DECL_OVERRIDE;
- bool isEmpty() const;
- void invalidate();
- Qt::Orientations expandingDirections() const;
+ bool isEmpty() const Q_DECL_OVERRIDE;
+ void invalidate() Q_DECL_OVERRIDE;
+ Qt::Orientations expandingDirections() const Q_DECL_OVERRIDE;
- void setGeometry(const QRect &r);
- QSize minimumSize() const;
- QSize sizeHint() const;
+ void setGeometry(const QRect &r) Q_DECL_OVERRIDE;
+ QSize minimumSize() const Q_DECL_OVERRIDE;
+ QSize sizeHint() const Q_DECL_OVERRIDE;
void insertAction(int index, QAction *action);
int indexOf(QAction *action) const;
- int indexOf(QWidget *widget) const { return QLayout::indexOf(widget); }
+ int indexOf(QWidget *widget) const Q_DECL_OVERRIDE { return QLayout::indexOf(widget); }
bool layoutActions(const QSize &size);
QSize expandedSize(const QSize &size) const;
diff --git a/src/widgets/widgets/qtoolbarseparator_p.h b/src/widgets/widgets/qtoolbarseparator_p.h
index 3ac46db482..b3f862cefa 100644
--- a/src/widgets/widgets/qtoolbarseparator_p.h
+++ b/src/widgets/widgets/qtoolbarseparator_p.h
@@ -64,9 +64,9 @@ public:
Qt::Orientation orientation() const;
- QSize sizeHint() const;
+ QSize sizeHint() const Q_DECL_OVERRIDE;
- void paintEvent(QPaintEvent *);
+ void paintEvent(QPaintEvent *) Q_DECL_OVERRIDE;
void initStyleOption(QStyleOption *option) const;
public Q_SLOTS:
diff --git a/src/widgets/widgets/qtoolbox.cpp b/src/widgets/widgets/qtoolbox.cpp
index 518b975b51..83a158e59e 100644
--- a/src/widgets/widgets/qtoolbox.cpp
+++ b/src/widgets/widgets/qtoolbox.cpp
@@ -65,12 +65,12 @@ public:
inline void setSelected(bool b) { selected = b; update(); }
inline void setIndex(int newIndex) { indexInPage = newIndex; }
- QSize sizeHint() const;
- QSize minimumSizeHint() const;
+ QSize sizeHint() const Q_DECL_OVERRIDE;
+ QSize minimumSizeHint() const Q_DECL_OVERRIDE;
protected:
void initStyleOption(QStyleOptionToolBox *opt) const;
- void paintEvent(QPaintEvent *);
+ void paintEvent(QPaintEvent *) Q_DECL_OVERRIDE;
private:
bool selected;
diff --git a/src/widgets/widgets/qtoolbox.h b/src/widgets/widgets/qtoolbox.h
index 1ea276e8ab..40bbce7d44 100644
--- a/src/widgets/widgets/qtoolbox.h
+++ b/src/widgets/widgets/qtoolbox.h
@@ -89,11 +89,11 @@ Q_SIGNALS:
void currentChanged(int index);
protected:
- bool event(QEvent *e);
+ bool event(QEvent *e) Q_DECL_OVERRIDE;
virtual void itemInserted(int index);
virtual void itemRemoved(int index);
- void showEvent(QShowEvent *e);
- void changeEvent(QEvent *);
+ void showEvent(QShowEvent *e) Q_DECL_OVERRIDE;
+ void changeEvent(QEvent *) Q_DECL_OVERRIDE;
private:
diff --git a/src/widgets/widgets/qtoolbutton.h b/src/widgets/widgets/qtoolbutton.h
index 922ea09abd..5301a8b22b 100644
--- a/src/widgets/widgets/qtoolbutton.h
+++ b/src/widgets/widgets/qtoolbutton.h
@@ -66,8 +66,8 @@ public:
explicit QToolButton(QWidget * parent=0);
~QToolButton();
- QSize sizeHint() const;
- QSize minimumSizeHint() const;
+ QSize sizeHint() const Q_DECL_OVERRIDE;
+ QSize minimumSizeHint() const Q_DECL_OVERRIDE;
Qt::ToolButtonStyle toolButtonStyle() const;
@@ -98,19 +98,19 @@ Q_SIGNALS:
void triggered(QAction *);
protected:
- bool event(QEvent *e);
- void mousePressEvent(QMouseEvent *);
- void mouseReleaseEvent(QMouseEvent *);
- void paintEvent(QPaintEvent *);
- void actionEvent(QActionEvent *);
-
- void enterEvent(QEvent *);
- void leaveEvent(QEvent *);
- void timerEvent(QTimerEvent *);
- void changeEvent(QEvent *);
-
- bool hitButton(const QPoint &pos) const;
- void nextCheckState();
+ bool event(QEvent *e) Q_DECL_OVERRIDE;
+ void mousePressEvent(QMouseEvent *) Q_DECL_OVERRIDE;
+ void mouseReleaseEvent(QMouseEvent *) Q_DECL_OVERRIDE;
+ void paintEvent(QPaintEvent *) Q_DECL_OVERRIDE;
+ void actionEvent(QActionEvent *) Q_DECL_OVERRIDE;
+
+ void enterEvent(QEvent *) Q_DECL_OVERRIDE;
+ void leaveEvent(QEvent *) Q_DECL_OVERRIDE;
+ void timerEvent(QTimerEvent *) Q_DECL_OVERRIDE;
+ void changeEvent(QEvent *) Q_DECL_OVERRIDE;
+
+ bool hitButton(const QPoint &pos) const Q_DECL_OVERRIDE;
+ void nextCheckState() Q_DECL_OVERRIDE;
void initStyleOption(QStyleOptionToolButton *option) const;
private:
diff --git a/src/widgets/widgets/qwidgetlinecontrol_p.h b/src/widgets/widgets/qwidgetlinecontrol_p.h
index 49d9413fc0..1baceb9cc2 100644
--- a/src/widgets/widgets/qwidgetlinecontrol_p.h
+++ b/src/widgets/widgets/qwidgetlinecontrol_p.h
@@ -532,7 +532,7 @@ Q_SIGNALS:
void editFocusChange(bool);
#endif
protected:
- virtual void timerEvent(QTimerEvent *event);
+ virtual void timerEvent(QTimerEvent *event) Q_DECL_OVERRIDE;
private Q_SLOTS:
void _q_clipboardChanged();
diff --git a/src/widgets/widgets/qwidgetresizehandler_p.h b/src/widgets/widgets/qwidgetresizehandler_p.h
index 5b165aa7be..5c9bb50bd4 100644
--- a/src/widgets/widgets/qwidgetresizehandler_p.h
+++ b/src/widgets/widgets/qwidgetresizehandler_p.h
@@ -88,7 +88,7 @@ Q_SIGNALS:
void activate();
protected:
- bool eventFilter(QObject *o, QEvent *e);
+ bool eventFilter(QObject *o, QEvent *e) Q_DECL_OVERRIDE;
void mouseMoveEvent(QMouseEvent *e);
void keyPressEvent(QKeyEvent *e);
diff --git a/src/widgets/widgets/qwidgettextcontrol.cpp b/src/widgets/widgets/qwidgettextcontrol.cpp
index 8c48533a03..eabaa160a0 100644
--- a/src/widgets/widgets/qwidgettextcontrol.cpp
+++ b/src/widgets/widgets/qwidgettextcontrol.cpp
@@ -1312,8 +1312,10 @@ void QWidgetTextControlPrivate::keyPressEvent(QKeyEvent *e)
else if (e == QKeySequence::Delete) {
QTextCursor localCursor = cursor;
localCursor.deleteChar();
- }
- else if (e == QKeySequence::DeleteEndOfWord) {
+ } else if (e == QKeySequence::Backspace) {
+ QTextCursor localCursor = cursor;
+ localCursor.deletePreviousChar();
+ }else if (e == QKeySequence::DeleteEndOfWord) {
if (!cursor.hasSelection())
cursor.movePosition(QTextCursor::NextWord, QTextCursor::KeepAnchor);
cursor.removeSelectedText();
diff --git a/src/widgets/widgets/qwidgettextcontrol_p.h b/src/widgets/widgets/qwidgettextcontrol_p.h
index 949201e8a8..79f4e404a2 100644
--- a/src/widgets/widgets/qwidgettextcontrol_p.h
+++ b/src/widgets/widgets/qwidgettextcontrol_p.h
@@ -242,9 +242,9 @@ public:
bool findNextPrevAnchor(const QTextCursor& from, bool next, QTextCursor& newAnchor);
protected:
- virtual void timerEvent(QTimerEvent *e);
+ virtual void timerEvent(QTimerEvent *e) Q_DECL_OVERRIDE;
- virtual bool event(QEvent *e);
+ virtual bool event(QEvent *e) Q_DECL_OVERRIDE;
private:
Q_DISABLE_COPY(QWidgetTextControl)
@@ -280,9 +280,9 @@ class QTextEditMimeData : public QMimeData
public:
inline QTextEditMimeData(const QTextDocumentFragment &aFragment) : fragment(aFragment) {}
- virtual QStringList formats() const;
+ virtual QStringList formats() const Q_DECL_OVERRIDE;
protected:
- virtual QVariant retrieveData(const QString &mimeType, QVariant::Type type) const;
+ virtual QVariant retrieveData(const QString &mimeType, QVariant::Type type) const Q_DECL_OVERRIDE;
private:
void setup() const;
diff --git a/src/xml/dom/qdom.cpp b/src/xml/dom/qdom.cpp
index 1fcbe607e4..de4c499c11 100644
--- a/src/xml/dom/qdom.cpp
+++ b/src/xml/dom/qdom.cpp
@@ -285,16 +285,16 @@ public:
void init();
// Reimplemented from QDomNodePrivate
- QDomNodePrivate* cloneNode(bool deep = true);
- QDomNodePrivate* insertBefore(QDomNodePrivate* newChild, QDomNodePrivate* refChild);
- QDomNodePrivate* insertAfter(QDomNodePrivate* newChild, QDomNodePrivate* refChild);
- QDomNodePrivate* replaceChild(QDomNodePrivate* newChild, QDomNodePrivate* oldChild);
- QDomNodePrivate* removeChild(QDomNodePrivate* oldChild);
- QDomNodePrivate* appendChild(QDomNodePrivate* newChild);
+ QDomNodePrivate* cloneNode(bool deep = true) Q_DECL_OVERRIDE;
+ QDomNodePrivate* insertBefore(QDomNodePrivate* newChild, QDomNodePrivate* refChild) Q_DECL_OVERRIDE;
+ QDomNodePrivate* insertAfter(QDomNodePrivate* newChild, QDomNodePrivate* refChild) Q_DECL_OVERRIDE;
+ QDomNodePrivate* replaceChild(QDomNodePrivate* newChild, QDomNodePrivate* oldChild) Q_DECL_OVERRIDE;
+ QDomNodePrivate* removeChild(QDomNodePrivate* oldChild) Q_DECL_OVERRIDE;
+ QDomNodePrivate* appendChild(QDomNodePrivate* newChild) Q_DECL_OVERRIDE;
- QDomNode::NodeType nodeType() const { return QDomNode::DocumentTypeNode; }
+ QDomNode::NodeType nodeType() const Q_DECL_OVERRIDE { return QDomNode::DocumentTypeNode; }
- void save(QTextStream& s, int, int) const;
+ void save(QTextStream& s, int, int) const Q_DECL_OVERRIDE;
// Variables
QDomNamedNodeMapPrivate* entities;
@@ -311,8 +311,8 @@ public:
QDomDocumentFragmentPrivate(QDomNodePrivate* n, bool deep);
// Reimplemented from QDomNodePrivate
- virtual QDomNodePrivate* cloneNode(bool deep = true);
- QDomNode::NodeType nodeType() const { return QDomNode::DocumentFragmentNode; }
+ virtual QDomNodePrivate* cloneNode(bool deep = true) Q_DECL_OVERRIDE;
+ QDomNode::NodeType nodeType() const Q_DECL_OVERRIDE { return QDomNode::DocumentFragmentNode; }
};
class QDomCharacterDataPrivate : public QDomNodePrivate
@@ -329,8 +329,8 @@ public:
void replaceData(unsigned long offset, unsigned long count, const QString& arg);
// Reimplemented from QDomNodePrivate
- QDomNode::NodeType nodeType() const { return QDomNode::CharacterDataNode; }
- QDomNodePrivate* cloneNode(bool deep = true);
+ QDomNode::NodeType nodeType() const Q_DECL_OVERRIDE { return QDomNode::CharacterDataNode; }
+ QDomNodePrivate* cloneNode(bool deep = true) Q_DECL_OVERRIDE;
};
class QDomTextPrivate : public QDomCharacterDataPrivate
@@ -342,9 +342,9 @@ public:
QDomTextPrivate* splitText(int offset);
// Reimplemented from QDomNodePrivate
- QDomNodePrivate* cloneNode(bool deep = true);
- QDomNode::NodeType nodeType() const { return QDomNode::TextNode; }
- virtual void save(QTextStream& s, int, int) const;
+ QDomNodePrivate* cloneNode(bool deep = true) Q_DECL_OVERRIDE;
+ QDomNode::NodeType nodeType() const Q_DECL_OVERRIDE { return QDomNode::TextNode; }
+ virtual void save(QTextStream& s, int, int) const Q_DECL_OVERRIDE;
};
class QDomAttrPrivate : public QDomNodePrivate
@@ -357,10 +357,10 @@ public:
bool specified() const;
// Reimplemented from QDomNodePrivate
- void setNodeValue(const QString& v);
- QDomNodePrivate* cloneNode(bool deep = true);
- QDomNode::NodeType nodeType() const { return QDomNode::AttributeNode; }
- virtual void save(QTextStream& s, int, int) const;
+ void setNodeValue(const QString& v) Q_DECL_OVERRIDE;
+ QDomNodePrivate* cloneNode(bool deep = true) Q_DECL_OVERRIDE;
+ QDomNode::NodeType nodeType() const Q_DECL_OVERRIDE { return QDomNode::AttributeNode; }
+ virtual void save(QTextStream& s, int, int) const Q_DECL_OVERRIDE;
// Variables
bool m_specified;
@@ -392,9 +392,9 @@ public:
// Reimplemented from QDomNodePrivate
QDomNamedNodeMapPrivate* attributes() { return m_attr; }
bool hasAttributes() { return (m_attr->length() > 0); }
- QDomNode::NodeType nodeType() const { return QDomNode::ElementNode; }
- QDomNodePrivate* cloneNode(bool deep = true);
- virtual void save(QTextStream& s, int, int) const;
+ QDomNode::NodeType nodeType() const Q_DECL_OVERRIDE { return QDomNode::ElementNode; }
+ QDomNodePrivate* cloneNode(bool deep = true) Q_DECL_OVERRIDE;
+ virtual void save(QTextStream& s, int, int) const Q_DECL_OVERRIDE;
// Variables
QDomNamedNodeMapPrivate* m_attr;
@@ -408,9 +408,9 @@ public:
QDomCommentPrivate(QDomCommentPrivate* n, bool deep);
// Reimplemented from QDomNodePrivate
- QDomNodePrivate* cloneNode(bool deep = true);
- QDomNode::NodeType nodeType() const { return QDomNode::CommentNode; }
- virtual void save(QTextStream& s, int, int) const;
+ QDomNodePrivate* cloneNode(bool deep = true) Q_DECL_OVERRIDE;
+ QDomNode::NodeType nodeType() const Q_DECL_OVERRIDE { return QDomNode::CommentNode; }
+ virtual void save(QTextStream& s, int, int) const Q_DECL_OVERRIDE;
};
class QDomCDATASectionPrivate : public QDomTextPrivate
@@ -420,9 +420,9 @@ public:
QDomCDATASectionPrivate(QDomCDATASectionPrivate* n, bool deep);
// Reimplemented from QDomNodePrivate
- QDomNodePrivate* cloneNode(bool deep = true);
- QDomNode::NodeType nodeType() const { return QDomNode::CDATASectionNode; }
- virtual void save(QTextStream& s, int, int) const;
+ QDomNodePrivate* cloneNode(bool deep = true) Q_DECL_OVERRIDE;
+ QDomNode::NodeType nodeType() const Q_DECL_OVERRIDE { return QDomNode::CDATASectionNode; }
+ virtual void save(QTextStream& s, int, int) const Q_DECL_OVERRIDE;
};
class QDomNotationPrivate : public QDomNodePrivate
@@ -433,9 +433,9 @@ public:
QDomNotationPrivate(QDomNotationPrivate* n, bool deep);
// Reimplemented from QDomNodePrivate
- QDomNodePrivate* cloneNode(bool deep = true);
- QDomNode::NodeType nodeType() const { return QDomNode::NotationNode; }
- virtual void save(QTextStream& s, int, int) const;
+ QDomNodePrivate* cloneNode(bool deep = true) Q_DECL_OVERRIDE;
+ QDomNode::NodeType nodeType() const Q_DECL_OVERRIDE { return QDomNode::NotationNode; }
+ virtual void save(QTextStream& s, int, int) const Q_DECL_OVERRIDE;
// Variables
QString m_sys;
@@ -450,9 +450,9 @@ public:
QDomEntityPrivate(QDomEntityPrivate* n, bool deep);
// Reimplemented from QDomNodePrivate
- QDomNodePrivate* cloneNode(bool deep = true);
- QDomNode::NodeType nodeType() const { return QDomNode::EntityNode; }
- virtual void save(QTextStream& s, int, int) const;
+ QDomNodePrivate* cloneNode(bool deep = true) Q_DECL_OVERRIDE;
+ QDomNode::NodeType nodeType() const Q_DECL_OVERRIDE { return QDomNode::EntityNode; }
+ virtual void save(QTextStream& s, int, int) const Q_DECL_OVERRIDE;
// Variables
QString m_sys;
@@ -467,9 +467,9 @@ public:
QDomEntityReferencePrivate(QDomNodePrivate* n, bool deep);
// Reimplemented from QDomNodePrivate
- QDomNodePrivate* cloneNode(bool deep = true);
- QDomNode::NodeType nodeType() const { return QDomNode::EntityReferenceNode; }
- virtual void save(QTextStream& s, int, int) const;
+ QDomNodePrivate* cloneNode(bool deep = true) Q_DECL_OVERRIDE;
+ QDomNode::NodeType nodeType() const Q_DECL_OVERRIDE { return QDomNode::EntityReferenceNode; }
+ virtual void save(QTextStream& s, int, int) const Q_DECL_OVERRIDE;
};
class QDomProcessingInstructionPrivate : public QDomNodePrivate
@@ -480,9 +480,9 @@ public:
QDomProcessingInstructionPrivate(QDomProcessingInstructionPrivate* n, bool deep);
// Reimplemented from QDomNodePrivate
- QDomNodePrivate* cloneNode(bool deep = true);
- QDomNode::NodeType nodeType() const { return QDomNode::ProcessingInstructionNode; }
- virtual void save(QTextStream& s, int, int) const;
+ QDomNodePrivate* cloneNode(bool deep = true) Q_DECL_OVERRIDE;
+ QDomNode::NodeType nodeType() const Q_DECL_OVERRIDE { return QDomNode::ProcessingInstructionNode; }
+ virtual void save(QTextStream& s, int, int) const Q_DECL_OVERRIDE;
};
class QDomDocumentPrivate : public QDomNodePrivate
@@ -517,9 +517,9 @@ public:
QDomNodePrivate* importNode(const QDomNodePrivate* importedNode, bool deep);
// Reimplemented from QDomNodePrivate
- QDomNodePrivate* cloneNode(bool deep = true);
- QDomNode::NodeType nodeType() const { return QDomNode::DocumentNode; }
- void clear();
+ QDomNodePrivate* cloneNode(bool deep = true) Q_DECL_OVERRIDE;
+ QDomNode::NodeType nodeType() const Q_DECL_OVERRIDE { return QDomNode::DocumentNode; }
+ void clear() Q_DECL_OVERRIDE;
// Variables
QExplicitlySharedDataPointer<QDomImplementationPrivate> impl;
@@ -570,32 +570,32 @@ public:
~QDomHandler();
// content handler
- bool endDocument();
- bool startElement(const QString& nsURI, const QString& localName, const QString& qName, const QXmlAttributes& atts);
- bool endElement(const QString& nsURI, const QString& localName, const QString& qName);
- bool characters(const QString& ch);
- bool processingInstruction(const QString& target, const QString& data);
- bool skippedEntity(const QString& name);
+ bool endDocument() Q_DECL_OVERRIDE;
+ bool startElement(const QString& nsURI, const QString& localName, const QString& qName, const QXmlAttributes& atts) Q_DECL_OVERRIDE;
+ bool endElement(const QString& nsURI, const QString& localName, const QString& qName) Q_DECL_OVERRIDE;
+ bool characters(const QString& ch) Q_DECL_OVERRIDE;
+ bool processingInstruction(const QString& target, const QString& data) Q_DECL_OVERRIDE;
+ bool skippedEntity(const QString& name) Q_DECL_OVERRIDE;
// error handler
- bool fatalError(const QXmlParseException& exception);
+ bool fatalError(const QXmlParseException& exception) Q_DECL_OVERRIDE;
// lexical handler
- bool startCDATA();
- bool endCDATA();
- bool startEntity(const QString &);
- bool endEntity(const QString &);
- bool startDTD(const QString& name, const QString& publicId, const QString& systemId);
- bool comment(const QString& ch);
+ bool startCDATA() Q_DECL_OVERRIDE;
+ bool endCDATA() Q_DECL_OVERRIDE;
+ bool startEntity(const QString &) Q_DECL_OVERRIDE;
+ bool endEntity(const QString &) Q_DECL_OVERRIDE;
+ bool startDTD(const QString& name, const QString& publicId, const QString& systemId) Q_DECL_OVERRIDE;
+ bool comment(const QString& ch) Q_DECL_OVERRIDE;
// decl handler
- bool externalEntityDecl(const QString &name, const QString &publicId, const QString &systemId) ;
+ bool externalEntityDecl(const QString &name, const QString &publicId, const QString &systemId) Q_DECL_OVERRIDE ;
// DTD handler
- bool notationDecl(const QString & name, const QString & publicId, const QString & systemId);
- bool unparsedEntityDecl(const QString &name, const QString &publicId, const QString &systemId, const QString &notationName) ;
+ bool notationDecl(const QString & name, const QString & publicId, const QString & systemId) Q_DECL_OVERRIDE;
+ bool unparsedEntityDecl(const QString &name, const QString &publicId, const QString &systemId, const QString &notationName) Q_DECL_OVERRIDE ;
- void setDocumentLocator(QXmlLocator *locator);
+ void setDocumentLocator(QXmlLocator *locator) Q_DECL_OVERRIDE;
QString errorMsg;
int errorLine;
@@ -7035,6 +7035,9 @@ QDomNodeList QDomDocument::elementsByTagName(const QString& tagname) const
import QDomDocument and QDomDocumentType nodes. In those cases
this function returns a \l{QDomNode::isNull()}{null node}.
+ If \a importedNode is a \l{QDomNode::isNull()}{null node},
+ a null node is returned.
+
If \a deep is true, this function imports not only the node \a
importedNode but its whole subtree; if it is false, only the \a
importedNode is imported. The argument \a deep has no effect on
@@ -7093,6 +7096,8 @@ QDomNodeList QDomDocument::elementsByTagName(const QString& tagname) const
*/
QDomNode QDomDocument::importNode(const QDomNode& importedNode, bool deep)
{
+ if (importedNode.isNull())
+ return QDomNode();
if (!impl)
impl = new QDomDocumentPrivate();
return QDomNode(IMPL->importNode(importedNode.impl, deep));
diff --git a/src/xml/sax/qxml.cpp b/src/xml/sax/qxml.cpp
index 106bdf2dec..a77c70787d 100644
--- a/src/xml/sax/qxml.cpp
+++ b/src/xml/sax/qxml.cpp
@@ -434,11 +434,11 @@ public:
{
}
- int columnNumber() const
+ int columnNumber() const Q_DECL_OVERRIDE
{
return (reader->d_ptr->columnNr == -1 ? -1 : reader->d_ptr->columnNr + 1);
}
- int lineNumber() const
+ int lineNumber() const Q_DECL_OVERRIDE
{
return (reader->d_ptr->lineNr == -1 ? -1 : reader->d_ptr->lineNr + 1);
}
diff --git a/src/xml/sax/qxml.h b/src/xml/sax/qxml.h
index d583388856..4a571194b4 100644
--- a/src/xml/sax/qxml.h
+++ b/src/xml/sax/qxml.h
@@ -229,29 +229,29 @@ public:
QXmlSimpleReader();
virtual ~QXmlSimpleReader();
- bool feature(const QString& name, bool *ok = 0) const;
- void setFeature(const QString& name, bool value);
- bool hasFeature(const QString& name) const;
-
- void* property(const QString& name, bool *ok = 0) const;
- void setProperty(const QString& name, void* value);
- bool hasProperty(const QString& name) const;
-
- void setEntityResolver(QXmlEntityResolver* handler);
- QXmlEntityResolver* entityResolver() const;
- void setDTDHandler(QXmlDTDHandler* handler);
- QXmlDTDHandler* DTDHandler() const;
- void setContentHandler(QXmlContentHandler* handler);
- QXmlContentHandler* contentHandler() const;
- void setErrorHandler(QXmlErrorHandler* handler);
- QXmlErrorHandler* errorHandler() const;
- void setLexicalHandler(QXmlLexicalHandler* handler);
- QXmlLexicalHandler* lexicalHandler() const;
- void setDeclHandler(QXmlDeclHandler* handler);
- QXmlDeclHandler* declHandler() const;
-
- bool parse(const QXmlInputSource& input);
- bool parse(const QXmlInputSource* input);
+ bool feature(const QString& name, bool *ok = 0) const Q_DECL_OVERRIDE;
+ void setFeature(const QString& name, bool value) Q_DECL_OVERRIDE;
+ bool hasFeature(const QString& name) const Q_DECL_OVERRIDE;
+
+ void* property(const QString& name, bool *ok = 0) const Q_DECL_OVERRIDE;
+ void setProperty(const QString& name, void* value) Q_DECL_OVERRIDE;
+ bool hasProperty(const QString& name) const Q_DECL_OVERRIDE;
+
+ void setEntityResolver(QXmlEntityResolver* handler) Q_DECL_OVERRIDE;
+ QXmlEntityResolver* entityResolver() const Q_DECL_OVERRIDE;
+ void setDTDHandler(QXmlDTDHandler* handler) Q_DECL_OVERRIDE;
+ QXmlDTDHandler* DTDHandler() const Q_DECL_OVERRIDE;
+ void setContentHandler(QXmlContentHandler* handler) Q_DECL_OVERRIDE;
+ QXmlContentHandler* contentHandler() const Q_DECL_OVERRIDE;
+ void setErrorHandler(QXmlErrorHandler* handler) Q_DECL_OVERRIDE;
+ QXmlErrorHandler* errorHandler() const Q_DECL_OVERRIDE;
+ void setLexicalHandler(QXmlLexicalHandler* handler) Q_DECL_OVERRIDE;
+ QXmlLexicalHandler* lexicalHandler() const Q_DECL_OVERRIDE;
+ void setDeclHandler(QXmlDeclHandler* handler) Q_DECL_OVERRIDE;
+ QXmlDeclHandler* declHandler() const Q_DECL_OVERRIDE;
+
+ bool parse(const QXmlInputSource& input) Q_DECL_OVERRIDE;
+ bool parse(const QXmlInputSource* input) Q_DECL_OVERRIDE;
virtual bool parse(const QXmlInputSource* input, bool incremental);
virtual bool parseContinue();
@@ -361,40 +361,40 @@ public:
QXmlDefaultHandler();
virtual ~QXmlDefaultHandler();
- void setDocumentLocator(QXmlLocator* locator);
- bool startDocument();
- bool endDocument();
- bool startPrefixMapping(const QString& prefix, const QString& uri);
- bool endPrefixMapping(const QString& prefix);
- bool startElement(const QString& namespaceURI, const QString& localName, const QString& qName, const QXmlAttributes& atts);
- bool endElement(const QString& namespaceURI, const QString& localName, const QString& qName);
- bool characters(const QString& ch);
- bool ignorableWhitespace(const QString& ch);
- bool processingInstruction(const QString& target, const QString& data);
- bool skippedEntity(const QString& name);
-
- bool warning(const QXmlParseException& exception);
- bool error(const QXmlParseException& exception);
- bool fatalError(const QXmlParseException& exception);
-
- bool notationDecl(const QString& name, const QString& publicId, const QString& systemId);
- bool unparsedEntityDecl(const QString& name, const QString& publicId, const QString& systemId, const QString& notationName);
-
- bool resolveEntity(const QString& publicId, const QString& systemId, QXmlInputSource*& ret);
-
- bool startDTD(const QString& name, const QString& publicId, const QString& systemId);
- bool endDTD();
- bool startEntity(const QString& name);
- bool endEntity(const QString& name);
- bool startCDATA();
- bool endCDATA();
- bool comment(const QString& ch);
-
- bool attributeDecl(const QString& eName, const QString& aName, const QString& type, const QString& valueDefault, const QString& value);
- bool internalEntityDecl(const QString& name, const QString& value);
- bool externalEntityDecl(const QString& name, const QString& publicId, const QString& systemId);
-
- QString errorString() const;
+ void setDocumentLocator(QXmlLocator* locator) Q_DECL_OVERRIDE;
+ bool startDocument() Q_DECL_OVERRIDE;
+ bool endDocument() Q_DECL_OVERRIDE;
+ bool startPrefixMapping(const QString& prefix, const QString& uri) Q_DECL_OVERRIDE;
+ bool endPrefixMapping(const QString& prefix) Q_DECL_OVERRIDE;
+ bool startElement(const QString& namespaceURI, const QString& localName, const QString& qName, const QXmlAttributes& atts) Q_DECL_OVERRIDE;
+ bool endElement(const QString& namespaceURI, const QString& localName, const QString& qName) Q_DECL_OVERRIDE;
+ bool characters(const QString& ch) Q_DECL_OVERRIDE;
+ bool ignorableWhitespace(const QString& ch) Q_DECL_OVERRIDE;
+ bool processingInstruction(const QString& target, const QString& data) Q_DECL_OVERRIDE;
+ bool skippedEntity(const QString& name) Q_DECL_OVERRIDE;
+
+ bool warning(const QXmlParseException& exception) Q_DECL_OVERRIDE;
+ bool error(const QXmlParseException& exception) Q_DECL_OVERRIDE;
+ bool fatalError(const QXmlParseException& exception) Q_DECL_OVERRIDE;
+
+ bool notationDecl(const QString& name, const QString& publicId, const QString& systemId) Q_DECL_OVERRIDE;
+ bool unparsedEntityDecl(const QString& name, const QString& publicId, const QString& systemId, const QString& notationName) Q_DECL_OVERRIDE;
+
+ bool resolveEntity(const QString& publicId, const QString& systemId, QXmlInputSource*& ret) Q_DECL_OVERRIDE;
+
+ bool startDTD(const QString& name, const QString& publicId, const QString& systemId) Q_DECL_OVERRIDE;
+ bool endDTD() Q_DECL_OVERRIDE;
+ bool startEntity(const QString& name) Q_DECL_OVERRIDE;
+ bool endEntity(const QString& name) Q_DECL_OVERRIDE;
+ bool startCDATA() Q_DECL_OVERRIDE;
+ bool endCDATA() Q_DECL_OVERRIDE;
+ bool comment(const QString& ch) Q_DECL_OVERRIDE;
+
+ bool attributeDecl(const QString& eName, const QString& aName, const QString& type, const QString& valueDefault, const QString& value) Q_DECL_OVERRIDE;
+ bool internalEntityDecl(const QString& name, const QString& value) Q_DECL_OVERRIDE;
+ bool externalEntityDecl(const QString& name, const QString& publicId, const QString& systemId) Q_DECL_OVERRIDE;
+
+ QString errorString() const Q_DECL_OVERRIDE;
private:
QXmlDefaultHandlerPrivate *d;