[Libreoffice-commits] core.git: Branch 'aoo/trunk' - accessibility/inc accessibility/source chart2/source cui/source curl/curl-7.19.7_win.patch editeng/inc editeng/source filter/source formula/source framework/source graphite/graphite-2.3.1.patch offapi/com postprocess/packcomponents postprocess/prj sc/inc scp2/source sc/source sd/inc sd/source sfx2/inc sfx2/source soldep/source solenv/inc starmath/source svtools/AllLangResTarget_svt.mk svtools/inc svtools/Library_svt.mk svtools/Package_inc.mk svtools/source svx/inc svx/Library_svx.mk svx/source sw/inc sw/Library_sw.mk sw/source toolkit/inc toolkit/source vcl/inc vcl/source vcl/win winaccessibility/inc winaccessibility/prj winaccessibility/source
Steve Yin
steve_y at apache.org
Thu Nov 14 04:08:08 PST 2013
accessibility/inc/accessibility/extended/accessiblelistbox.hxx | 19
accessibility/inc/accessibility/extended/accessiblelistboxentry.hxx | 35
accessibility/inc/accessibility/extended/accessibletablistboxtable.hxx | 2
accessibility/inc/accessibility/extended/textwindowaccessibility.hxx | 23
accessibility/inc/accessibility/helper/IComboListBoxHelper.hxx | 1
accessibility/inc/accessibility/helper/accessiblestrings.hrc | 13
accessibility/inc/accessibility/helper/listboxhelper.hxx | 5
accessibility/inc/accessibility/standard/accessiblemenubasecomponent.hxx | 2
accessibility/inc/accessibility/standard/accessiblemenuitemcomponent.hxx | 2
accessibility/inc/accessibility/standard/vclxaccessiblebox.hxx | 23
accessibility/inc/accessibility/standard/vclxaccessiblelist.hxx | 12
accessibility/inc/accessibility/standard/vclxaccessiblelistitem.hxx | 5
accessibility/inc/accessibility/standard/vclxaccessiblemenu.hxx | 3
accessibility/inc/accessibility/standard/vclxaccessibleradiobutton.hxx | 2
accessibility/inc/accessibility/standard/vclxaccessiblescrollbar.hxx | 4
accessibility/inc/accessibility/standard/vclxaccessibletoolboxitem.hxx | 2
accessibility/source/extended/AccessibleBrowseBoxHeaderCell.cxx | 2
accessibility/source/extended/accessibleeditbrowseboxcell.cxx | 14
accessibility/source/extended/accessibleiconchoicectrl.cxx | 31
accessibility/source/extended/accessibleiconchoicectrlentry.cxx | 3
accessibility/source/extended/accessiblelistbox.cxx | 265
accessibility/source/extended/accessiblelistboxentry.cxx | 365
accessibility/source/extended/accessibletablistboxtable.cxx | 60
accessibility/source/extended/textwindowaccessibility.cxx | 410
accessibility/source/helper/accessiblestrings.src | 51
accessibility/source/helper/characterattributeshelper.cxx | 5
accessibility/source/standard/accessiblemenubasecomponent.cxx | 15
accessibility/source/standard/accessiblemenuitemcomponent.cxx | 39
accessibility/source/standard/vclxaccessiblebox.cxx | 234
accessibility/source/standard/vclxaccessiblebutton.cxx | 17
accessibility/source/standard/vclxaccessiblecheckbox.cxx | 8
accessibility/source/standard/vclxaccessiblelist.cxx | 347
accessibility/source/standard/vclxaccessiblelistitem.cxx | 12
accessibility/source/standard/vclxaccessiblemenu.cxx | 11
accessibility/source/standard/vclxaccessiblemenuitem.cxx | 20
accessibility/source/standard/vclxaccessibleradiobutton.cxx | 3
accessibility/source/standard/vclxaccessiblescrollbar.cxx | 21
accessibility/source/standard/vclxaccessibletabcontrol.cxx | 3
accessibility/source/standard/vclxaccessibletextcomponent.cxx | 52
accessibility/source/standard/vclxaccessibletoolbox.cxx | 34
accessibility/source/standard/vclxaccessibletoolboxitem.cxx | 38
chart2/source/controller/accessibility/AccessibleBase.cxx | 4
chart2/source/controller/dialogs/tp_DataSource.cxx | 17
cui/source/customize/cfg.cxx | 6
cui/source/customize/cfg.src | 3
cui/source/customize/macropg.cxx | 3
cui/source/dialogs/cuigrfflt.cxx | 10
cui/source/dialogs/iconcdlg.cxx | 5
cui/source/inc/cuicharmap.hxx | 10
cui/source/inc/headertablistbox.hxx | 2
cui/source/tabpages/autocdlg.cxx | 21
cui/source/tabpages/autocdlg.src | 48
cui/source/tabpages/connect.hrc | 2
cui/source/tabpages/tabarea.src | 9
cui/source/tabpages/tparea.cxx | 5
curl/curl-7.19.7_win.patch | 38
editeng/inc/editeng/AccessibleEditableTextPara.hxx | 15
editeng/inc/editeng/AccessibleSvxFindReplaceDialog.hxx | 71
editeng/inc/editeng/editdata.hxx | 5
editeng/inc/editeng/editeng.hxx | 10
editeng/inc/editeng/editrids.hrc | 4
editeng/inc/editeng/editview.hxx | 4
editeng/inc/editeng/splwrap.hxx | 9
editeng/inc/editeng/unoedhlp.hxx | 17
editeng/inc/editeng/unoedprx.hxx | 9
editeng/inc/editeng/unoedsrc.hxx | 17
editeng/inc/editeng/unofored.hxx | 5
editeng/inc/editeng/unoforou.hxx | 5
editeng/inc/editeng/unotext.hxx | 5
editeng/source/accessibility/AccessibleEditableTextPara.cxx | 969 +
editeng/source/accessibility/AccessibleHyperlink.cxx | 307
editeng/source/accessibility/AccessibleParaManager.cxx | 6
editeng/source/accessibility/AccessibleStaticTextBase.cxx | 193
editeng/source/accessibility/accessibility.src | 10
editeng/source/editeng/editdoc.hxx | 2
editeng/source/editeng/edtspell.cxx | 3
editeng/source/editeng/impedit.cxx | 18
editeng/source/editeng/impedit.hxx | 5
editeng/source/editeng/impedit2.cxx | 1
editeng/source/editeng/impedit3.cxx | 14
editeng/source/misc/splwrap.cxx | 2
editeng/source/outliner/outliner.cxx | 7
editeng/source/outliner/outlvw.cxx | 1
editeng/source/uno/unoedhlp.cxx | 175
editeng/source/uno/unoedprx.cxx | 21
editeng/source/uno/unofored.cxx | 5
editeng/source/uno/unoforou.cxx | 5
editeng/source/uno/unonrule.cxx | 5
editeng/source/uno/unotext.cxx | 2
filter/source/pdf/impdialog.cxx | 2
formula/source/ui/dlg/ControlHelper.hxx | 1
formula/source/ui/dlg/formdlgs.src | 8
formula/source/ui/dlg/funcutl.cxx | 18
formula/source/ui/dlg/parawin.cxx | 4
framework/source/loadenv/loadenv.cxx | 5
graphite/graphite-2.3.1.patch | 4
offapi/com/sun/star/accessibility/AccessibleEventId.idl | 11
offapi/com/sun/star/accessibility/AccessibleRelationType.idl | 8
offapi/com/sun/star/accessibility/AccessibleStateType.idl | 21
offapi/com/sun/star/accessibility/MSAAService.idl | 45
offapi/com/sun/star/accessibility/XAccessibleExtendedAttributes.idl | 49
offapi/com/sun/star/accessibility/XAccessibleGetAccFlowTo.idl | 48
offapi/com/sun/star/accessibility/XAccessibleGroupPosition.idl | 52
offapi/com/sun/star/accessibility/XAccessibleTable.idl | 2
offapi/com/sun/star/accessibility/XAccessibleTableSelection.idl | 54
offapi/com/sun/star/accessibility/XAccessibleTextSelection.idl | 67
offapi/com/sun/star/accessibility/XAccessibleValue.idl | 2
offapi/com/sun/star/accessibility/XMSAAService.idl | 56
offapi/com/sun/star/accessibility/makefile.mk | 10
postprocess/packcomponents/makefile.mk | 1
postprocess/prj/build.lst | 2
sc/inc/chgtrack.hxx | 19
sc/inc/detfunc.hxx | 3
sc/inc/document.hxx | 19
sc/inc/dptablecache.hxx | 3
sc/inc/drwlayer.hxx | 4
sc/inc/table.hxx | 5
sc/source/core/data/documen2.cxx | 163
sc/source/core/data/document.cxx | 9
sc/source/core/data/dpsave.cxx | 1
sc/source/core/data/dptablecache.cxx | 13
sc/source/core/data/drwlayer.cxx | 20
sc/source/core/data/table2.cxx | 11
sc/source/core/tool/detfunc.cxx | 7
sc/source/ui/Accessibility/AccessibleCell.cxx | 193
sc/source/ui/Accessibility/AccessibleCellBase.cxx | 333
sc/source/ui/Accessibility/AccessibleDataPilotControl.cxx | 132
sc/source/ui/Accessibility/AccessibleDocument.cxx | 517
sc/source/ui/Accessibility/AccessibleDocumentBase.cxx | 7
sc/source/ui/Accessibility/AccessibleDocumentPagePreview.cxx | 29
sc/source/ui/Accessibility/AccessibleEditObject.cxx | 208
sc/source/ui/Accessibility/AccessibleSpreadsheet.cxx | 1154 +-
sc/source/ui/Accessibility/AccessibleTableBase.cxx | 77
sc/source/ui/Accessibility/AccessibleText.cxx | 31
sc/source/ui/dbgui/dbnamdlg.cxx | 38
sc/source/ui/docshell/docsh.cxx | 20
sc/source/ui/drawfunc/fudraw.cxx | 6
sc/source/ui/inc/AccessibleCell.hxx | 25
sc/source/ui/inc/AccessibleCellBase.hxx | 15
sc/source/ui/inc/AccessibleDocument.hxx | 41
sc/source/ui/inc/AccessibleDocumentBase.hxx | 3
sc/source/ui/inc/AccessibleDocumentPagePreview.hxx | 4
sc/source/ui/inc/AccessibleEditObject.hxx | 59
sc/source/ui/inc/AccessibleSpreadsheet.hxx | 64
sc/source/ui/inc/AccessibleTableBase.hxx | 16
sc/source/ui/inc/AccessibleText.hxx | 9
sc/source/ui/inc/content.hxx | 24
sc/source/ui/inc/dbnamdlg.hxx | 4
sc/source/ui/inc/docsh.hxx | 8
sc/source/ui/inc/drawview.hxx | 5
sc/source/ui/inc/gridwin.hxx | 7
sc/source/ui/inc/preview.hxx | 3
sc/source/ui/inc/scuitphfedit.hxx | 3
sc/source/ui/inc/tabview.hxx | 2
sc/source/ui/inc/tabvwsh.hxx | 9
sc/source/ui/inc/tphfedit.hxx | 8
sc/source/ui/inc/validate.hxx | 3
sc/source/ui/inc/viewfunc.hxx | 5
sc/source/ui/miscdlgs/highred.cxx | 4
sc/source/ui/miscdlgs/solveroptions.cxx | 26
sc/source/ui/navipi/content.cxx | 298
sc/source/ui/navipi/navipi.cxx | 11
sc/source/ui/pagedlg/scuitphfedit.cxx | 20
sc/source/ui/pagedlg/tphfedit.cxx | 15
sc/source/ui/view/drawview.cxx | 97
sc/source/ui/view/gridwin.cxx | 54
sc/source/ui/view/gridwin3.cxx | 4
sc/source/ui/view/gridwin5.cxx | 40
sc/source/ui/view/output.cxx | 5
sc/source/ui/view/preview.cxx | 35
sc/source/ui/view/select.cxx | 3
sc/source/ui/view/tabview2.cxx | 8
sc/source/ui/view/tabvwsh.cxx | 22
sc/source/ui/view/tabvwsh4.cxx | 70
sc/source/ui/view/tabvwshe.cxx | 48
sc/source/ui/view/viewfun2.cxx | 13
scp2/source/ooo/file_library_ooo.scp | 15
scp2/source/ooo/module_hidden_ooo.scp | 2
sd/inc/drawdoc.hxx | 15
sd/inc/glob.hxx | 3
sd/source/core/drawdoc.cxx | 1
sd/source/core/drawdoc2.cxx | 11
sd/source/ui/accessibility/AccessibleDocumentViewBase.cxx | 171
sd/source/ui/accessibility/AccessibleDrawDocumentView.cxx | 414
sd/source/ui/accessibility/AccessibleOutlineEditSource.cxx | 13
sd/source/ui/accessibility/AccessibleOutlineView.cxx | 44
sd/source/ui/accessibility/AccessiblePresentationGraphicShape.cxx | 7
sd/source/ui/accessibility/AccessiblePresentationOLEShape.cxx | 8
sd/source/ui/accessibility/AccessiblePresentationShape.cxx | 128
sd/source/ui/accessibility/AccessibleSlideSorterObject.cxx | 4
sd/source/ui/accessibility/AccessibleSlideSorterView.cxx | 37
sd/source/ui/accessibility/accessibility.hrc | 40
sd/source/ui/accessibility/accessibility.src | 159
sd/source/ui/dlg/navigatr.cxx | 40
sd/source/ui/dlg/sdtreelb.cxx | 362
sd/source/ui/docshell/docshel4.cxx | 290
sd/source/ui/func/fudraw.cxx | 14
sd/source/ui/func/fuediglu.cxx | 105
sd/source/ui/func/fusel.cxx | 94
sd/source/ui/inc/AccessibleDocumentViewBase.hxx | 35
sd/source/ui/inc/AccessibleDrawDocumentView.hxx | 47
sd/source/ui/inc/AccessibleOutlineView.hxx | 6
sd/source/ui/inc/AccessiblePresentationGraphicShape.hxx | 7
sd/source/ui/inc/AccessiblePresentationOLEShape.hxx | 7
sd/source/ui/inc/AccessiblePresentationShape.hxx | 3
sd/source/ui/inc/AccessibleSlideSorterView.hxx | 3
sd/source/ui/inc/AccessibleSlideView.hxx | 39
sd/source/ui/inc/DrawController.hxx | 15
sd/source/ui/inc/DrawDocShell.hxx | 13
sd/source/ui/inc/DrawViewShell.hxx | 14
sd/source/ui/inc/OutlineViewShell.hxx | 3
sd/source/ui/inc/SdUnoDrawView.hxx | 4
sd/source/ui/inc/SlideSorterViewShell.hxx | 4
sd/source/ui/inc/SlideViewShell.hxx | 7
sd/source/ui/inc/TabControl.hxx | 4
sd/source/ui/inc/ViewShell.hxx | 7
sd/source/ui/inc/Window.hxx | 3
sd/source/ui/inc/fuediglu.hxx | 8
sd/source/ui/inc/fusel.hxx | 12
sd/source/ui/inc/navigatr.hxx | 7
sd/source/ui/inc/sdtreelb.hxx | 33
sd/source/ui/slideshow/showwin.cxx | 24
sd/source/ui/slideshow/showwindow.hxx | 5
sd/source/ui/slideshow/slideshow.cxx | 17
sd/source/ui/slideshow/slideshowimpl.cxx | 14
sd/source/ui/slidesorter/controller/SlsFocusManager.cxx | 5
sd/source/ui/slidesorter/shell/SlideSorterViewShell.cxx | 20
sd/source/ui/unoidl/DrawController.cxx | 49
sd/source/ui/unoidl/SdUnoDrawView.cxx | 3
sd/source/ui/view/Outliner.cxx | 10
sd/source/ui/view/drviews4.cxx | 47
sd/source/ui/view/drviews5.cxx | 9
sd/source/ui/view/outlnvsh.cxx | 11
sd/source/ui/view/sdwindow.cxx | 39
sd/source/ui/view/tabcontr.cxx | 7
sd/source/ui/view/viewshel.cxx | 44
sfx2/inc/sfx2/dinfdlg.hxx | 2
sfx2/source/dialog/newstyle.cxx | 2
sfx2/source/dialog/tabdlg.cxx | 4
sfx2/source/dialog/templdlg.hrc | 5
sfx2/source/menu/mnuitem.cxx | 8
sfx2/source/view/viewfrm.cxx | 14
soldep/source/soldep.cxx | 8
solenv/inc/lldb4aoo.py | 17
starmath/source/accessibility.cxx | 6
starmath/source/accessibility.hxx | 6
svtools/AllLangResTarget_svt.mk | 1
svtools/Library_svt.mk | 3
svtools/Package_inc.mk | 1
svtools/inc/svtools/accessibleruler.hxx | 310
svtools/inc/svtools/embedhlp.hxx | 7
svtools/inc/svtools/headbar.hxx | 8
svtools/inc/svtools/ruler.hxx | 12
svtools/inc/svtools/svlbitm.hxx | 8
svtools/inc/svtools/svlbox.hxx | 5
svtools/inc/svtools/svtools.hrc | 2
svtools/inc/svtools/svtreebx.hxx | 22
svtools/inc/svtools/texteng.hxx | 2
svtools/inc/svtools/treelist.hxx | 10
svtools/inc/svtools/valueset.hxx | 23
svtools/inc/svtools/vclxaccessibleheaderbar.hxx | 92
svtools/inc/svtools/vclxaccessibleheaderbaritem.hxx | 134
svtools/source/brwbox/brwbox3.cxx | 26
svtools/source/brwbox/editbrowsebox.cxx | 5
svtools/source/contnr/imivctl1.cxx | 3
svtools/source/contnr/svimpbox.cxx | 27
svtools/source/contnr/svtabbx.cxx | 11
svtools/source/contnr/svtreebx.cxx | 159
svtools/source/control/accessibleruler.cxx | 554 +
svtools/source/control/headbar.cxx | 27
svtools/source/control/ruler.cxx | 45
svtools/source/control/ruler.src | 42
svtools/source/control/valueacc.cxx | 60
svtools/source/control/valueimp.hxx | 3
svtools/source/control/valueset.cxx | 76
svtools/source/control/vclxaccessibleheaderbar.cxx | 200
svtools/source/control/vclxaccessibleheaderbaritem.cxx | 410
svtools/source/edit/svmedit.cxx | 10
svtools/source/misc/acceleratorexecute.cxx | 21
svtools/source/misc/embedhlp.cxx | 105
svx/Library_svx.mk | 2
svx/inc/svx/AccessibleControlShape.hxx | 4
svx/inc/svx/AccessibleGraphicShape.hxx | 4
svx/inc/svx/AccessibleOLEShape.hxx | 5
svx/inc/svx/AccessibleShape.hxx | 120
svx/inc/svx/AccessibleSvxFindReplaceDialog.hxx | 66
svx/inc/svx/AccessibleTableShape.hxx | 137
svx/inc/svx/ChildrenManager.hxx | 4
svx/inc/svx/EnhancedCustomShapeTypeNames.hxx | 3
svx/inc/svx/IAccessibleParent.hxx | 18
svx/inc/svx/ctredlin.hxx | 4
svx/inc/svx/dlgctrl.hxx | 26
svx/inc/svx/nbdtmg.hxx | 4
svx/inc/svx/sdr/table/tablecontroller.hxx | 13
svx/inc/svx/srchdlg.hxx | 13
svx/inc/svx/svdmodel.hxx | 17
svx/inc/svx/svdmrkv.hxx | 3
svx/inc/svx/svdoashp.hxx | 4
svx/inc/svx/svdobj.hxx | 6
svx/inc/svx/svdoole2.hxx | 3
svx/source/accessibility/AccessibleControlShape.cxx | 102
svx/source/accessibility/AccessibleEmptyEditSource.cxx | 2
svx/source/accessibility/AccessibleFrameSelector.cxx | 39
svx/source/accessibility/AccessibleGraphicShape.cxx | 33
svx/source/accessibility/AccessibleOLEShape.cxx | 24
svx/source/accessibility/AccessibleShape.cxx | 696 +
svx/source/accessibility/AccessibleSvxFindReplaceDialog.cxx | 120
svx/source/accessibility/AccessibleTextHelper.cxx | 86
svx/source/accessibility/ChildrenManager.cxx | 15
svx/source/accessibility/ChildrenManagerImpl.cxx | 175
svx/source/accessibility/ChildrenManagerImpl.hxx | 18
svx/source/accessibility/ShapeTypeHandler.cxx | 39
svx/source/accessibility/charmapacc.cxx | 65
svx/source/accessibility/svxpixelctlaccessiblecontext.cxx | 1281 ++
svx/source/accessibility/svxrectctaccessiblecontext.cxx | 191
svx/source/customshapes/EnhancedCustomShapeTypeNames.cxx | 257
svx/source/dialog/_bmpmask.cxx | 94
svx/source/dialog/charmap.cxx | 16
svx/source/dialog/ctredlin.cxx | 23
svx/source/dialog/ctredlin.src | 8
svx/source/dialog/dlgctrl.cxx | 265
svx/source/dialog/frmsel.cxx | 71
svx/source/dialog/srchdlg.cxx | 27
svx/source/inc/AccessibleFrameSelector.hxx | 5
svx/source/inc/svxpixelctlaccessiblecontext.hxx | 431
svx/source/inc/svxrectctaccessiblecontext.hxx | 45
svx/source/sidebar/nbdtmg.cxx | 2
svx/source/svdraw/svdoashp.cxx | 17
svx/source/svdraw/svdobj.cxx | 6
svx/source/svdraw/svdoole2.cxx | 12
svx/source/table/accessiblecell.cxx | 106
svx/source/table/accessiblecell.hxx | 9
svx/source/table/accessibletableshape.cxx | 753 +
svx/source/table/tablecontroller.cxx | 86
svx/source/unodraw/unoprov.cxx | 3
svx/source/unodraw/unoshtxt.cxx | 29
sw/Library_sw.mk | 2
sw/inc/PostItMgr.hxx | 4
sw/inc/access.hrc | 5
sw/inc/accmap.hxx | 59
sw/inc/crsrsh.hxx | 7
sw/inc/doc.hxx | 22
sw/inc/docsh.hxx | 6
sw/inc/fesh.hxx | 4
sw/inc/fldbas.hxx | 14
sw/inc/frmfmt.hxx | 18
sw/inc/mdiexp.hxx | 2
sw/inc/ndole.hxx | 3
sw/inc/node.hxx | 7
sw/inc/tblsel.hxx | 6
sw/inc/viewsh.hxx | 4
sw/source/core/access/acccell.cxx | 232
sw/source/core/access/acccell.hxx | 58
sw/source/core/access/acccontext.cxx | 112
sw/source/core/access/acccontext.hxx | 21
sw/source/core/access/accdoc.cxx | 536
sw/source/core/access/accdoc.hxx | 41
sw/source/core/access/accembedded.cxx | 64
sw/source/core/access/accembedded.hxx | 26
sw/source/core/access/accfield.cxx | 355
sw/source/core/access/accfield.hxx | 220
sw/source/core/access/accfootnote.cxx | 15
sw/source/core/access/accfootnote.hxx | 1
sw/source/core/access/accframe.cxx | 19
sw/source/core/access/accframe.hxx | 11
sw/source/core/access/accframebase.cxx | 175
sw/source/core/access/accframebase.hxx | 13
sw/source/core/access/accfrmobj.cxx | 23
sw/source/core/access/accfrmobj.hxx | 4
sw/source/core/access/accfrmobjmap.cxx | 94
sw/source/core/access/accfrmobjmap.hxx | 40
sw/source/core/access/accgraphic.cxx | 17
sw/source/core/access/accgraphic.hxx | 4
sw/source/core/access/accheaderfooter.cxx | 17
sw/source/core/access/accheaderfooter.hxx | 5
sw/source/core/access/acchyperlink.cxx | 116
sw/source/core/access/accmap.cxx | 1087 +
sw/source/core/access/accnotextframe.cxx | 167
sw/source/core/access/accnotextframe.hxx | 64
sw/source/core/access/accnotexthyperlink.cxx | 238
sw/source/core/access/accnotexthyperlink.hxx | 100
sw/source/core/access/accpara.cxx | 1807 +++
sw/source/core/access/accpara.hxx | 69
sw/source/core/access/accportions.cxx | 125
sw/source/core/access/accportions.hxx | 19
sw/source/core/access/accpreview.cxx | 27
sw/source/core/access/accpreview.hxx | 6
sw/source/core/access/accselectionhelper.cxx | 105
sw/source/core/access/acctable.cxx | 340
sw/source/core/access/acctable.hxx | 33
sw/source/core/access/acctextframe.cxx | 140
sw/source/core/access/acctextframe.hxx | 44
sw/source/core/attr/format.cxx | 4
sw/source/core/crsr/crsrsh.cxx | 63
sw/source/core/doc/tblcpy.cxx | 6
sw/source/core/docnode/node.cxx | 73
sw/source/core/docnode/nodes.cxx | 11
sw/source/core/edit/ednumber.cxx | 2
sw/source/core/frmedt/feshview.cxx | 21
sw/source/core/frmedt/tblsel.cxx | 13
sw/source/core/inc/SwPortionHandler.hxx | 4
sw/source/core/inc/doctxm.hxx | 3
sw/source/core/inc/frame.hxx | 19
sw/source/core/inc/txtfrm.hxx | 7
sw/source/core/inc/viewimp.hxx | 6
sw/source/core/layout/atrfrm.cxx | 16
sw/source/core/layout/wsfrm.cxx | 4
sw/source/core/ole/ndole.cxx | 9
sw/source/core/text/frmform.cxx | 46
sw/source/core/text/porfld.cxx | 9
sw/source/core/text/porfld.hxx | 3
sw/source/core/text/txtfld.cxx | 55
sw/source/core/unocore/unomap.cxx | 38
sw/source/core/view/viewimp.cxx | 18
sw/source/filter/ww8/wrtw8esh.cxx | 2
sw/source/ui/app/docsh.cxx | 56
sw/source/ui/cctrl/actctrl.cxx | 5
sw/source/ui/cctrl/swlbox.cxx | 10
sw/source/ui/chrdlg/swuiccoll.cxx | 15
sw/source/ui/dialog/uiregionsw.cxx | 3
sw/source/ui/docvw/edtwin.cxx | 14
sw/source/ui/docvw/edtwin3.cxx | 28
sw/source/ui/frmdlg/column.cxx | 38
sw/source/ui/frmdlg/column.hrc | 7
sw/source/ui/frmdlg/frmpage.cxx | 22
sw/source/ui/inc/conttree.hxx | 17
sw/source/ui/inc/edtwin.hxx | 3
sw/source/ui/inc/pview.hxx | 11
sw/source/ui/inc/swlbox.hxx | 3
sw/source/ui/inc/swuicnttab.hxx | 15
sw/source/ui/inc/view.hxx | 5
sw/source/ui/index/cnttab.cxx | 159
sw/source/ui/index/cnttab.hrc | 7
sw/source/ui/index/cnttab.src | 18
sw/source/ui/misc/glossary.hrc | 4
sw/source/ui/ribbar/inputwin.cxx | 8
sw/source/ui/ribbar/inputwin.hrc | 5
sw/source/ui/ribbar/inputwin.src | 16
sw/source/ui/ribbar/workctrl.cxx | 9
sw/source/ui/shells/textsh1.cxx | 52
sw/source/ui/shells/txtnum.cxx | 4
sw/source/ui/table/convert.hrc | 6
sw/source/ui/table/tabledlg.cxx | 2
sw/source/ui/table/tabledlg.hrc | 3
sw/source/ui/uiview/pview.cxx | 202
sw/source/ui/uiview/view.cxx | 3
sw/source/ui/uiview/view2.cxx | 36
sw/source/ui/uiview/viewsrch.cxx | 51
sw/source/ui/utlui/content.cxx | 411
sw/source/ui/utlui/navipi.hrc | 5
sw/source/ui/wrtsh/select.cxx | 13
toolkit/inc/toolkit/awt/vclxwindows.hxx | 8
toolkit/source/awt/vclxaccessiblecomponent.cxx | 64
toolkit/source/awt/vclxtoolkit.cxx | 5
toolkit/source/awt/vclxwindows.cxx | 25
vcl/inc/ilstbox.hxx | 21
vcl/inc/svdata.hxx | 3
vcl/inc/vcl/combobox.hxx | 10
vcl/inc/vcl/lstbox.hxx | 9
vcl/inc/vcl/menu.hxx | 14
vcl/inc/vcl/svapp.hxx | 27
vcl/inc/vcl/vclevent.hxx | 43
vcl/inc/vcl/window.hxx | 5
vcl/inc/win/g_msaasvc.h | 23
vcl/source/app/svapp.cxx | 73
vcl/source/app/svdata.cxx | 121
vcl/source/app/svmain.cxx | 11
vcl/source/control/combobox.cxx | 25
vcl/source/control/edit.cxx | 36
vcl/source/control/ilstbox.cxx | 33
vcl/source/control/lstbox.cxx | 38
vcl/source/control/morebtn.cxx | 5
vcl/source/control/tabctrl.cxx | 7
vcl/source/window/btndlg.cxx | 9
vcl/source/window/dlgctrl.cxx | 13
vcl/source/window/menu.cxx | 49
vcl/source/window/toolbox.cxx | 5
vcl/source/window/toolbox2.cxx | 6
vcl/source/window/window.cxx | 56
vcl/win/source/window/salframe.cxx | 95
winaccessibility/inc/AccComponentEventListener.hxx | 78
winaccessibility/inc/AccContainerEventListener.hxx | 98
winaccessibility/inc/AccDescendantManagerEventListener.hxx | 64
winaccessibility/inc/AccDialogEventListener.hxx | 63
winaccessibility/inc/AccEventListener.hxx | 90
winaccessibility/inc/AccFrameEventListener.hxx | 63
winaccessibility/inc/AccListEventListener.hxx | 54
winaccessibility/inc/AccMenuEventListener.hxx | 57
winaccessibility/inc/AccObject.hxx | 130
winaccessibility/inc/AccObjectContainerEventListener.hxx | 50
winaccessibility/inc/AccObjectManagerAgent.hxx | 102
winaccessibility/inc/AccObjectWinManager.hxx | 177
winaccessibility/inc/AccParagraphEventListener.hxx | 62
winaccessibility/inc/AccResource.hxx | 69
winaccessibility/inc/AccTableEventListener.hxx | 53
winaccessibility/inc/AccTextComponentEventListener.hxx | 48
winaccessibility/inc/AccTopWindowListener.hxx | 66
winaccessibility/inc/AccTreeEventListener.hxx | 50
winaccessibility/inc/AccWindowEventListener.hxx | 60
winaccessibility/inc/ResIDGenerator.hxx | 56
winaccessibility/inc/UAccCOM2.h | 30
winaccessibility/inc/accHelper.hxx | 145
winaccessibility/inc/act.hxx | 90
winaccessibility/inc/g_msacc.hxx | 27
winaccessibility/inc/unomsaaevent.hxx | 110
winaccessibility/prj/build.lst | 5
winaccessibility/prj/d.lst | 9
winaccessibility/source/UAccCOM/AccAction.cpp | 120
winaccessibility/source/UAccCOM/AccAction.h | 105
winaccessibility/source/UAccCOM/AccAction.rgs | 26
winaccessibility/source/UAccCOM/AccActionBase.cpp | 416
winaccessibility/source/UAccCOM/AccActionBase.h | 92
winaccessibility/source/UAccCOM/AccComponent.cpp | 72
winaccessibility/source/UAccCOM/AccComponent.h | 97
winaccessibility/source/UAccCOM/AccComponent.rgs | 23
winaccessibility/source/UAccCOM/AccComponentBase.cpp | 213
winaccessibility/source/UAccCOM/AccComponentBase.h | 78
winaccessibility/source/UAccCOM/AccContext.rgs | 23
winaccessibility/source/UAccCOM/AccEditableText.cpp | 508
winaccessibility/source/UAccCOM/AccEditableText.h | 115
winaccessibility/source/UAccCOM/AccEditableText.rgs | 23
winaccessibility/source/UAccCOM/AccExtendedComponent.rgs | 23
winaccessibility/source/UAccCOM/AccFont.rgs | 23
winaccessibility/source/UAccCOM/AccHyperLink.cpp | 296
winaccessibility/source/UAccCOM/AccHyperLink.h | 140
winaccessibility/source/UAccCOM/AccHyperLink.rgs | 23
winaccessibility/source/UAccCOM/AccHypertext.cpp | 409
winaccessibility/source/UAccCOM/AccHypertext.h | 161
winaccessibility/source/UAccCOM/AccHypertext.rgs | 23
winaccessibility/source/UAccCOM/AccImage.cpp | 102
winaccessibility/source/UAccCOM/AccImage.h | 101
winaccessibility/source/UAccCOM/AccImage.rgs | 23
winaccessibility/source/UAccCOM/AccKeyBinding.rgs | 23
winaccessibility/source/UAccCOM/AccRelation.cpp | 214
winaccessibility/source/UAccCOM/AccRelation.h | 88
winaccessibility/source/UAccCOM/AccRelation.rgs | 25
winaccessibility/source/UAccCOM/AccSelection.rgs | 23
winaccessibility/source/UAccCOM/AccTable.cpp | 1069 +
winaccessibility/source/UAccCOM/AccTable.h | 175
winaccessibility/source/UAccCOM/AccTable.rgs | 23
winaccessibility/source/UAccCOM/AccText.cpp | 282
winaccessibility/source/UAccCOM/AccText.h | 140
winaccessibility/source/UAccCOM/AccText.rgs | 23
winaccessibility/source/UAccCOM/AccTextBase.cpp | 995 +
winaccessibility/source/UAccCOM/AccTextBase.h | 122
winaccessibility/source/UAccCOM/AccValue.cpp | 224
winaccessibility/source/UAccCOM/AccValue.h | 104
winaccessibility/source/UAccCOM/AccValue.rgs | 23
winaccessibility/source/UAccCOM/AccessibleKeyStroke.h | 157
winaccessibility/source/UAccCOM/CheckEnableAccessible.cpp | 35
winaccessibility/source/UAccCOM/CheckEnableAccessible.h | 30
winaccessibility/source/UAccCOM/EnumVariant.cpp | 227
winaccessibility/source/UAccCOM/EnumVariant.h | 106
winaccessibility/source/UAccCOM/EnumVariant.rgs | 26
winaccessibility/source/UAccCOM/MAccessible.cpp | 3267 +++++
winaccessibility/source/UAccCOM/MAccessible.h | 294
winaccessibility/source/UAccCOM/MAccessible.rgs | 26
winaccessibility/source/UAccCOM/Resource.h | 70
winaccessibility/source/UAccCOM/StdAfx.cpp | 29
winaccessibility/source/UAccCOM/UAccCOM.cpp | 109
winaccessibility/source/UAccCOM/UAccCOM.def | 7
winaccessibility/source/UAccCOM/UAccCOM.rc | 149
winaccessibility/source/UAccCOM/UNOXWrapper.cpp | 27
winaccessibility/source/UAccCOM/UNOXWrapper.h | 72
winaccessibility/source/UAccCOM/UNOXWrapper.rgs | 26
winaccessibility/source/UAccCOM/acccommon.h | 95
winaccessibility/source/UAccCOM/makefile.mk | 142
winaccessibility/source/UAccCOM/stdafx.h | 64
winaccessibility/source/UAccCOMIDL/AccessibleKeyBinding.idl | 66
winaccessibility/source/UAccCOMIDL/AccessibleKeyStroke.idl | 149
winaccessibility/source/UAccCOMIDL/Charset.idl | 33
winaccessibility/source/UAccCOMIDL/UAccCOM.idl | 209
winaccessibility/source/UAccCOMIDL/defines.idl | 40
winaccessibility/source/UAccCOMIDL/ia2_api_all.idl | 5473 ++++++++++
winaccessibility/source/UAccCOMIDL/makefile.mk | 101
winaccessibility/source/service/AccComponentEventListener.cxx | 336
winaccessibility/source/service/AccContainerEventListener.cxx | 573 +
winaccessibility/source/service/AccDescendantManagerEventListener.cxx | 226
winaccessibility/source/service/AccDialogEventListener.cxx | 150
winaccessibility/source/service/AccEventListener.cxx | 309
winaccessibility/source/service/AccFrameEventListener.cxx | 173
winaccessibility/source/service/AccListEventListener.cxx | 123
winaccessibility/source/service/AccMenuEventListener.cxx | 151
winaccessibility/source/service/AccObject.cxx | 1109 ++
winaccessibility/source/service/AccObjectContainerEventListener.cxx | 72
winaccessibility/source/service/AccObjectManagerAgent.cxx | 386
winaccessibility/source/service/AccObjectWinManager.cxx | 1321 ++
winaccessibility/source/service/AccParagraphEventListener.cxx | 145
winaccessibility/source/service/AccResource.cxx | 85
winaccessibility/source/service/AccTableEventListener.cxx | 146
winaccessibility/source/service/AccTextComponentEventListener.cxx | 65
winaccessibility/source/service/AccTopWindowListener.cxx | 321
winaccessibility/source/service/AccTreeEventListener.cxx | 87
winaccessibility/source/service/AccWindowEventListener.cxx | 152
winaccessibility/source/service/ResIDGenerator.cxx | 54
winaccessibility/source/service/checkmt.cxx | 36
winaccessibility/source/service/checkmt.hxx | 28
winaccessibility/source/service/exports.dxp | 2
winaccessibility/source/service/makefile.mk | 118
winaccessibility/source/service/msaaservice_impl.cxx | 289
winaccessibility/source/service/winaccessibility.component | 27
601 files changed, 53894 insertions(+), 1173 deletions(-)
New commits:
commit a5c4ddcf8ed5344d9bceeffd7431cd6895a407ca
Author: Steve Yin <steve_y at apache.org>
Date: Thu Nov 14 08:18:05 2013 +0000
Integrate branch of IAccessible2
diff --git a/accessibility/inc/accessibility/extended/accessiblelistbox.hxx b/accessibility/inc/accessibility/extended/accessiblelistbox.hxx
index 5b8b3b0..d4beb37 100644
--- a/accessibility/inc/accessibility/extended/accessiblelistbox.hxx
+++ b/accessibility/inc/accessibility/extended/accessiblelistbox.hxx
@@ -30,14 +30,16 @@
#include <vcl/vclevent.hxx>
#include <toolkit/awt/vclxaccessiblecomponent.hxx>
+#include <map>
// class AccessibleListBox -----------------------------------------------
class SvTreeListBox;
-
+class SvLBoxEntry;
//........................................................................
namespace accessibility
{
+ class AccessibleListBoxEntry;
//........................................................................
typedef ::cppu::ImplHelper2< ::com::sun::star::accessibility::XAccessible
@@ -66,6 +68,8 @@ namespace accessibility
SvTreeListBox* getListBox() const;
+ void RemoveChildEntries(SvLBoxEntry*);
+
public:
/** OAccessibleBase needs a valid view
@param _rListBox
@@ -111,6 +115,19 @@ namespace accessibility
sal_Int32 SAL_CALL getSelectedAccessibleChildCount( ) throw (::com::sun::star::uno::RuntimeException);
::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getSelectedAccessibleChild( sal_Int32 nSelectedChildIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
void SAL_CALL deselectAccessibleChild( sal_Int32 nSelectedChildIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+
+ // IA2 CWS
+ sal_Int32 SAL_CALL getRoleType();
+
+private:
+
+ typedef std::map< SvLBoxEntry*, ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > > MAP_ENTRY;
+ MAP_ENTRY m_mapEntry;
+
+ ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > m_xFocusedChild;
+
+ accessibility::AccessibleListBoxEntry* GetCurEventEntry( const VclWindowEvent& rVclWindowEvent );
+
};
//........................................................................
diff --git a/accessibility/inc/accessibility/extended/accessiblelistboxentry.hxx b/accessibility/inc/accessibility/extended/accessiblelistboxentry.hxx
index af83b22..e78591a 100644
--- a/accessibility/inc/accessibility/extended/accessiblelistboxentry.hxx
+++ b/accessibility/inc/accessibility/extended/accessiblelistboxentry.hxx
@@ -35,7 +35,15 @@
#include <com/sun/star/lang/DisposedException.hpp>
#include <com/sun/star/lang/XEventListener.hpp>
#include <com/sun/star/lang/XServiceInfo.hpp>
+/*
#include <cppuhelper/compbase8.hxx>
+*/
+#ifndef _COM_SUN_STAR_ACCESSIBILITY_XACCESSIBLEVALUE_HPP_
+#include <com/sun/star/accessibility/XAccessibleValue.hpp>
+#endif
+#ifndef _CPPUHELPER_COMPBASE9_HXX_
+#include <cppuhelper/compbase9.hxx>
+#endif
#include <comphelper/broadcasthelper.hxx>
#include <comphelper/accessibletexthelper.hxx>
#include <tools/gen.hxx>
@@ -59,7 +67,7 @@ namespace accessibility
//........................................................................
// class AccessibleListBoxEntry ------------------------------------------
-
+/*
typedef ::cppu::WeakAggComponentImplHelper8< ::com::sun::star::accessibility::XAccessible
, ::com::sun::star::accessibility::XAccessibleContext
, ::com::sun::star::accessibility::XAccessibleComponent
@@ -68,6 +76,16 @@ namespace accessibility
, ::com::sun::star::accessibility::XAccessibleSelection
, ::com::sun::star::accessibility::XAccessibleText
, ::com::sun::star::lang::XServiceInfo > AccessibleListBoxEntry_BASE;
+*/
+ typedef ::cppu::WeakAggComponentImplHelper9< ::com::sun::star::accessibility::XAccessible
+ , ::com::sun::star::accessibility::XAccessibleContext
+ , ::com::sun::star::accessibility::XAccessibleComponent
+ , ::com::sun::star::accessibility::XAccessibleEventBroadcaster
+ , ::com::sun::star::accessibility::XAccessibleAction
+ , ::com::sun::star::accessibility::XAccessibleSelection
+ , ::com::sun::star::accessibility::XAccessibleText
+ , ::com::sun::star::accessibility::XAccessibleValue
+ , ::com::sun::star::lang::XServiceInfo > AccessibleListBoxEntry_BASE;
/** the class AccessibleListBoxEntry represents the class for an accessible object of a listbox entry */
class AccessibleListBoxEntry:public ::comphelper::OBaseMutex
@@ -81,6 +99,8 @@ namespace accessibility
/** The treelistbox control */
SvTreeListBox* m_pListBox;
::std::deque< sal_Int32 > m_aEntryPath;
+ SvLBoxEntry* m_pSvLBoxEntry; // IA2 CWS. Needed for focused item...
+
protected:
/// client id in the AccessibleEventNotifier queue
@@ -99,6 +119,8 @@ namespace accessibility
Rectangle GetBoundingBoxOnScreen() throw ( ::com::sun::star::lang::DisposedException );
void EnsureIsAlive() const throw ( ::com::sun::star::lang::DisposedException );
+ void NotifyAccessibleEvent( sal_Int16 _nEventId, const ::com::sun::star::uno::Any& _aOldValue, const ::com::sun::star::uno::Any& _aNewValue );
+
protected:
virtual ~AccessibleListBoxEntry();
@@ -127,6 +149,9 @@ namespace accessibility
const ::com::sun::star::uno::Reference<
::com::sun::star::accessibility::XAccessible >& _xParent );
+ SvLBoxEntry* GetSvLBoxEntry() const { return m_pSvLBoxEntry; }
+
+
protected:
// XTypeProvider
virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw (::com::sun::star::uno::RuntimeException);
@@ -206,9 +231,15 @@ namespace accessibility
sal_Int32 SAL_CALL getSelectedAccessibleChildCount( ) throw (::com::sun::star::uno::RuntimeException);
::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getSelectedAccessibleChild( sal_Int32 nSelectedChildIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
void SAL_CALL deselectAccessibleChild( sal_Int32 nSelectedChildIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
-
+ virtual ::com::sun::star::uno::Any SAL_CALL getCurrentValue( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL setCurrentValue( const ::com::sun::star::uno::Any& aNumber ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Any SAL_CALL getMaximumValue( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Any SAL_CALL getMinimumValue( ) throw (::com::sun::star::uno::RuntimeException);
private:
::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > implGetParentAccessible( ) const;
+ SvLBoxEntry* GetRealChild(sal_Int32 nIndex);
+ public:
+ sal_Int32 SAL_CALL getRoleType();
};
//........................................................................
diff --git a/accessibility/inc/accessibility/extended/accessibletablistboxtable.hxx b/accessibility/inc/accessibility/extended/accessibletablistboxtable.hxx
index 3d8f169..6f59aaa 100644
--- a/accessibility/inc/accessibility/extended/accessibletablistboxtable.hxx
+++ b/accessibility/inc/accessibility/extended/accessibletablistboxtable.hxx
@@ -43,6 +43,8 @@ class AccessibleTabListBoxTable : public AccessibleBrowseBoxTable, public Access
private:
SvHeaderTabListBox* m_pTabListBox;
+ ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > m_xCurChild;
+
void ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent );
DECL_LINK( WindowEventListener, VclSimpleEvent* );
diff --git a/accessibility/inc/accessibility/extended/textwindowaccessibility.hxx b/accessibility/inc/accessibility/extended/textwindowaccessibility.hxx
index fcdbcda..1b47dc6 100644
--- a/accessibility/inc/accessibility/extended/textwindowaccessibility.hxx
+++ b/accessibility/inc/accessibility/extended/textwindowaccessibility.hxx
@@ -52,6 +52,22 @@
#include <comphelper/accessibletexthelper.hxx>
#include <rtl/ref.hxx>
+// IAccessible2 implementation, 2009
+#ifndef _SVTOOLS_HRC
+#include "svtools/svtools.hrc"
+#endif
+#ifndef _SVTOOLS_SVTDATA_HXX
+#include "svtools/svtdata.hxx"
+#endif
+#ifndef _SV_SVAPP_HXX
+#include <vcl/svapp.hxx>
+#endif
+#ifndef _UTL_ACCESSIBLERELATIONSETHELPER_HXX_
+#include <unotools/accessiblerelationsethelper.hxx>
+#endif
+#ifndef _COM_SUN_STAR_ACCESSIBILITY_ACCESSIBLERELATIONTYPE_HPP_
+#include <com/sun/star/accessibility/AccessibleRelationType.hpp>
+#endif
#include <memory>
#include <queue>
#include <hash_map>
@@ -578,7 +594,9 @@ private:
virtual ::css::uno::Reference< ::css::accessibility::XAccessible >
SAL_CALL getAccessibleAtPoint(::css::awt::Point const & rPoint)
throw (::css::uno::RuntimeException);
-
+// IAccessible2 implementation, 2009
+ virtual void FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet );
+ virtual void FillAccessibleRelationSet( utl::AccessibleRelationSetHelper& rRelationSet );
// ??? Will be called with both the external (Solar) and internal mutex
// locked:
virtual void SAL_CALL disposing();
@@ -630,6 +648,9 @@ private:
void handleSelectionChangeNotification();
void notifySelectionChange( sal_Int32 nFirst, sal_Int32 nLast );
+// IAccessible2 implementation, 2009
+ ::sal_Int32 getSelectionType(::sal_Int32 nNewFirstPara, ::sal_Int32 nNewFirstPos, ::sal_Int32 nNewLastPara, ::sal_Int32 nNewLastPos);
+ void sendEvent(::sal_Int32 start, ::sal_Int32 end, ::sal_Int16 nEventId);
void justifySelection( TextPaM& rTextStart, TextPaM& rTextEnd );
diff --git a/accessibility/inc/accessibility/helper/IComboListBoxHelper.hxx b/accessibility/inc/accessibility/helper/IComboListBoxHelper.hxx
index 011a9f1..15afec5 100644
--- a/accessibility/inc/accessibility/helper/IComboListBoxHelper.hxx
+++ b/accessibility/inc/accessibility/helper/IComboListBoxHelper.hxx
@@ -42,6 +42,7 @@ namespace accessibility
virtual Rectangle GetBoundingRectangle( sal_uInt16 nItem ) const = 0;
virtual Rectangle GetWindowExtentsRelative( Window* pRelativeWindow ) = 0;
virtual sal_Bool IsActive() const = 0;
+ virtual sal_Bool IsEnabled() const = 0;
virtual sal_Bool IsEntryVisible( sal_uInt16 nPos ) const = 0;
virtual sal_uInt16 GetDisplayLineCount() const = 0;
virtual void GetMaxVisColumnsAndLines( sal_uInt16& rnCols, sal_uInt16& rnLines ) const = 0;
diff --git a/accessibility/inc/accessibility/helper/accessiblestrings.hrc b/accessibility/inc/accessibility/helper/accessiblestrings.hrc
index cdaa2dc..83b1dce 100644
--- a/accessibility/inc/accessibility/helper/accessiblestrings.hrc
+++ b/accessibility/inc/accessibility/helper/accessiblestrings.hrc
@@ -39,7 +39,18 @@
#define RID_STR_ACC_ACTION_DECLINE ( RID_TK_ACC_START + 4 )
#define RID_STR_ACC_ACTION_INCBLOCK ( RID_TK_ACC_START + 5 )
#define RID_STR_ACC_ACTION_DECBLOCK ( RID_TK_ACC_START + 6 )
-
+#define RID_STR_ACC_NAME_PREVIEW ( RID_TK_ACC_START + 7 )
+
+#define STR_SVT_ACC_ACTION_EXPAND ( RID_TK_ACC_START + 8 )
+#define STR_SVT_ACC_ACTION_COLLAPSE ( RID_TK_ACC_START + 9 )
+#define STR_SVT_ACC_LISTENTRY_SELCTED_STATE ( RID_TK_ACC_START + 10 )
+
+#define RID_STR_ACC_ACTION_CHECK ( RID_TK_ACC_START + 11 )
+#define RID_STR_ACC_ACTION_UNCHECK ( RID_TK_ACC_START + 12 )
+#define RID_STR_ACC_ACTION_DOUBLE_CLICK ( RID_TK_ACC_START + 13 )
+#define RID_STR_ACC_SCROLLBAR_NAME_VERTICAL ( RID_TK_ACC_START + 14 )
+#define RID_STR_ACC_SCROLLBAR_NAME_HORIZONTAL ( RID_TK_ACC_START + 15 )
+#define RID_STR_ACC_PANEL_DESCRIPTION ( RID_TK_ACC_START + 16 )
#define RID_STR_ACC_NAME_BROWSEBUTTON ( RID_TK_ACC_START + 100 )
#define RID_STR_ACC_DESC_PANELDECL_TABBAR ( RID_TK_ACC_START + 101 )
diff --git a/accessibility/inc/accessibility/helper/listboxhelper.hxx b/accessibility/inc/accessibility/helper/listboxhelper.hxx
index ce2eee1..c046bca 100644
--- a/accessibility/inc/accessibility/helper/listboxhelper.hxx
+++ b/accessibility/inc/accessibility/helper/listboxhelper.hxx
@@ -90,6 +90,11 @@ public:
return m_aComboListBox.IsActive();
}
// -----------------------------------------------------------------------------
+ virtual sal_Bool IsEnabled() const
+ {
+ return m_aComboListBox.IsEnabled();
+ }
+ // -----------------------------------------------------------------------------
virtual sal_Bool IsEntryVisible( sal_uInt16 nPos ) const
{
sal_uInt16 nTopEntry = m_aComboListBox.GetTopEntry();
diff --git a/accessibility/inc/accessibility/standard/accessiblemenubasecomponent.hxx b/accessibility/inc/accessibility/standard/accessiblemenubasecomponent.hxx
index c821d6f..9b5bb8e 100644
--- a/accessibility/inc/accessibility/standard/accessiblemenubasecomponent.hxx
+++ b/accessibility/inc/accessibility/standard/accessiblemenubasecomponent.hxx
@@ -109,6 +109,8 @@ protected:
virtual sal_Bool IsHighlighted();
sal_Bool IsChildHighlighted();
+ virtual sal_Bool IsMenuHideDisabledEntries();
+
void SelectChild( sal_Int32 i );
void DeSelectAll();
sal_Bool IsChildSelected( sal_Int32 i );
diff --git a/accessibility/inc/accessibility/standard/accessiblemenuitemcomponent.hxx b/accessibility/inc/accessibility/standard/accessiblemenuitemcomponent.hxx
index 65ade11..74d8624 100644
--- a/accessibility/inc/accessibility/standard/accessiblemenuitemcomponent.hxx
+++ b/accessibility/inc/accessibility/standard/accessiblemenuitemcomponent.hxx
@@ -53,6 +53,8 @@ protected:
void SetItemText( const ::rtl::OUString& sItemText );
::rtl::OUString GetItemText();
+ virtual sal_Bool IsMenuHideDisabledEntries();
+
virtual void FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet );
// OCommonAccessibleComponent
diff --git a/accessibility/inc/accessibility/standard/vclxaccessiblebox.hxx b/accessibility/inc/accessibility/standard/vclxaccessiblebox.hxx
index 923109f..f956f25 100644
--- a/accessibility/inc/accessibility/standard/vclxaccessiblebox.hxx
+++ b/accessibility/inc/accessibility/standard/vclxaccessiblebox.hxx
@@ -30,13 +30,17 @@
#include <com/sun/star/accessibility/AccessibleRole.hpp>
#endif
#include <com/sun/star/accessibility/XAccessibleKeyBinding.hpp>
+#ifndef _COM_SUN_STAR_ACCESSIBILITY_XACCESSIBLEVALUE_HPP_
+#include <com/sun/star/accessibility/XAccessibleValue.hpp>
+#endif
#ifndef _CPPUHELPER_IMPLBASE2_HXX
#include <cppuhelper/implbase2.hxx>
#endif
-typedef ::cppu::ImplHelper2<
+typedef ::cppu::ImplHelper3<
::com::sun::star::accessibility::XAccessible,
+ ::com::sun::star::accessibility::XAccessibleValue,
::com::sun::star::accessibility::XAccessibleAction
> VCLXAccessibleBox_BASE;
@@ -129,7 +133,22 @@ public:
*/
virtual void SAL_CALL disposing (void);
+ //===== XAccessibleValue ================================================
+
+ virtual ::com::sun::star::uno::Any SAL_CALL getCurrentValue( )
+ throw (::com::sun::star::uno::RuntimeException);
+
+ virtual sal_Bool SAL_CALL setCurrentValue(
+ const ::com::sun::star::uno::Any& aNumber )
+ throw (::com::sun::star::uno::RuntimeException);
+
+ virtual ::com::sun::star::uno::Any SAL_CALL getMaximumValue( )
+ throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Any SAL_CALL getMinimumValue( )
+ throw (::com::sun::star::uno::RuntimeException);
+ bool IsDropDownBox() {return m_bIsDropDownBox;};
+ BoxType GetBoxType() { return m_aBoxType;};
protected:
/** Specifies whether the box is a combo box or a list box. List boxes
have multi selection.
@@ -170,6 +189,8 @@ protected:
virtual void ProcessWindowChildEvent (const VclWindowEvent& rVclWindowEvent);
virtual void ProcessWindowEvent (const VclWindowEvent& rVclWindowEvent);
+// IAccessible2 implementation, 2009
+ virtual void FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet );
private:
/// Index in parent. This is settable from the outside.
diff --git a/accessibility/inc/accessibility/standard/vclxaccessiblelist.hxx b/accessibility/inc/accessibility/standard/vclxaccessiblelist.hxx
index ef1d7e8..3e1866e 100644
--- a/accessibility/inc/accessibility/standard/vclxaccessiblelist.hxx
+++ b/accessibility/inc/accessibility/standard/vclxaccessiblelist.hxx
@@ -76,6 +76,7 @@ public:
/** Process some of the events and delegate the rest to the base classes.
*/
virtual void ProcessWindowEvent (const VclWindowEvent& rVclWindowEvent);
+ virtual void FillAccessibleRelationSet( utl::AccessibleRelationSetHelper& rRelationSet );
/** Called on reception of selection events this method checks all known
list items for a possible change in their selection state and
@@ -143,7 +144,14 @@ public:
virtual void SAL_CALL deselectAccessibleChild( sal_Int32 nSelectedChildIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
virtual ::com::sun::star::awt::Point SAL_CALL getLocationOnScreen( ) throw (::com::sun::star::uno::RuntimeException);
-
+ sal_Bool IsInDropDown();
+ void HandleDropOpen();
+ virtual void ProcessWindowEvent (const VclWindowEvent& rVclWindowEvent, bool b_IsDropDownList);
+ void UpdateSelection_Acc (::rtl::OUString sTextOfSelectedItem, bool b_IsDropDownList);
+ void UpdateSelection_Impl_Acc (bool b_IsDropDownList);
+
+ void UpdateFocus_Impl_Acc ( sal_uInt16 nPos, bool b_IsDropDownList) ;
+ void NotifyListItem(::com::sun::star::uno::Any& val);
protected:
BoxType m_aBoxType;
::accessibility::IComboListBoxHelper* m_pListBoxHelper;
@@ -155,7 +163,7 @@ protected:
sal_uInt16 m_nLastSelectedPos;
bool m_bDisableProcessEvent;
bool m_bVisible;
-
+ sal_uInt16 m_nCurSelectedPos;
/// The currently selected item.
diff --git a/accessibility/inc/accessibility/standard/vclxaccessiblelistitem.hxx b/accessibility/inc/accessibility/standard/vclxaccessiblelistitem.hxx
index 1a634e0..853982a 100644
--- a/accessibility/inc/accessibility/standard/vclxaccessiblelistitem.hxx
+++ b/accessibility/inc/accessibility/standard/vclxaccessiblelistitem.hxx
@@ -91,9 +91,9 @@ private:
@param _aNewValue
is the new value
*/
- void NotifyAccessibleEvent( sal_Int16 _nEventId,
+ /*void NotifyAccessibleEvent( sal_Int16 _nEventId,
const ::com::sun::star::uno::Any& _aOldValue,
- const ::com::sun::star::uno::Any& _aNewValue );
+ const ::com::sun::star::uno::Any& _aNewValue );*/
protected:
virtual ~VCLXAccessibleListItem();
@@ -119,6 +119,7 @@ public:
sal_Int32 _nIndexInParent,
const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& _xParent );
+ void NotifyAccessibleEvent( sal_Int16 _nEventId, const ::com::sun::star::uno::Any& _aOldValue, const ::com::sun::star::uno::Any& _aNewValue );
inline sal_Bool IsSelected() const { return m_bSelected; }
void SetSelected( sal_Bool _bSelected );
diff --git a/accessibility/inc/accessibility/standard/vclxaccessiblemenu.hxx b/accessibility/inc/accessibility/standard/vclxaccessiblemenu.hxx
index 3dfa1b2..1a8e59c 100644
--- a/accessibility/inc/accessibility/standard/vclxaccessiblemenu.hxx
+++ b/accessibility/inc/accessibility/standard/vclxaccessiblemenu.hxx
@@ -76,6 +76,9 @@ public:
virtual sal_Int32 SAL_CALL getSelectedAccessibleChildCount( ) throw (::com::sun::star::uno::RuntimeException);
virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getSelectedAccessibleChild( sal_Int32 nSelectedChildIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
virtual void SAL_CALL deselectAccessibleChild( sal_Int32 nChildIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleAction
+ virtual ::rtl::OUString SAL_CALL getAccessibleActionDescription ( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
};
#endif // ACCESSIBILITY_STANDARD_VCLXACCESSIBLEMENU_HXX
diff --git a/accessibility/inc/accessibility/standard/vclxaccessibleradiobutton.hxx b/accessibility/inc/accessibility/standard/vclxaccessibleradiobutton.hxx
index c8cf131..335acd3 100644
--- a/accessibility/inc/accessibility/standard/vclxaccessibleradiobutton.hxx
+++ b/accessibility/inc/accessibility/standard/vclxaccessibleradiobutton.hxx
@@ -31,7 +31,7 @@
#endif
#include <com/sun/star/accessibility/XAccessibleValue.hpp>
-#ifndef _CPPUHELPER_IMPLBASE2_HXX
+#ifndef _CPPUHELPER_IMPLBASE2_HXX_
#include <cppuhelper/implbase2.hxx>
#endif
diff --git a/accessibility/inc/accessibility/standard/vclxaccessiblescrollbar.hxx b/accessibility/inc/accessibility/standard/vclxaccessiblescrollbar.hxx
index ef0653d..e972b01 100644
--- a/accessibility/inc/accessibility/standard/vclxaccessiblescrollbar.hxx
+++ b/accessibility/inc/accessibility/standard/vclxaccessiblescrollbar.hxx
@@ -77,6 +77,10 @@ public:
virtual sal_Bool SAL_CALL setCurrentValue( const ::com::sun::star::uno::Any& aNumber ) throw (::com::sun::star::uno::RuntimeException);
virtual ::com::sun::star::uno::Any SAL_CALL getMaximumValue( ) throw (::com::sun::star::uno::RuntimeException);
virtual ::com::sun::star::uno::Any SAL_CALL getMinimumValue( ) throw (::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleContext
+ ::rtl::OUString SAL_CALL getAccessibleName( ) throw (::com::sun::star::uno::RuntimeException);
+
};
#endif // ACCESSIBILITY_STANDARD_VCLXACCESSIBLESCROLLBAR_HXX
diff --git a/accessibility/inc/accessibility/standard/vclxaccessibletoolboxitem.hxx b/accessibility/inc/accessibility/standard/vclxaccessibletoolboxitem.hxx
index c556f13..931d33f 100644
--- a/accessibility/inc/accessibility/standard/vclxaccessibletoolboxitem.hxx
+++ b/accessibility/inc/accessibility/standard/vclxaccessibletoolboxitem.hxx
@@ -34,7 +34,7 @@
#include <com/sun/star/accessibility/XAccessibleEventBroadcaster.hpp>
#include <com/sun/star/accessibility/XAccessibleValue.hpp>
#include <com/sun/star/lang/XServiceInfo.hpp>
-#ifndef _CPPUHELPER_IMPLBASE4_HXX
+#ifndef _CPPUHELPER_IMPLBASE4_HXX_
#include <cppuhelper/implbase4.hxx>
#endif
#include <comphelper/accessibletexthelper.hxx>
diff --git a/accessibility/source/extended/AccessibleBrowseBoxHeaderCell.cxx b/accessibility/source/extended/AccessibleBrowseBoxHeaderCell.cxx
index d2ee954..64c9be3 100644
--- a/accessibility/source/extended/AccessibleBrowseBoxHeaderCell.cxx
+++ b/accessibility/source/extended/AccessibleBrowseBoxHeaderCell.cxx
@@ -65,7 +65,7 @@ AccessibleBrowseBoxHeaderCell::AccessibleBrowseBoxHeaderCell(sal_Int32 _nColumnR
// SHOWING done with mxParent
if( implIsShowing() )
pStateSetHelper->AddState( AccessibleStateType::SHOWING );
-
+ mpBrowseBox->FillAccessibleStateSet( *pStateSetHelper, getType() );
BBSolarGuard aSolarGuard;
pStateSetHelper->AddState( AccessibleStateType::VISIBLE );
pStateSetHelper->AddState( AccessibleStateType::FOCUSABLE );
diff --git a/accessibility/source/extended/accessibleeditbrowseboxcell.cxx b/accessibility/source/extended/accessibleeditbrowseboxcell.cxx
index 474078b..1d72d51 100644
--- a/accessibility/source/extended/accessibleeditbrowseboxcell.cxx
+++ b/accessibility/source/extended/accessibleeditbrowseboxcell.cxx
@@ -130,13 +130,15 @@ namespace accessibility
SolarMethodGuard aGuard( *this );
// TODO: localize this!
- String sName = mpBrowseBox->GetColumnDescription( ::sal::static_int_cast< sal_uInt16 >( getColumnPos() ) );
- if ( 0 == sName.Len() )
- {
- sName = String::CreateFromAscii( "Column " );
- sName += String::CreateFromInt32( getColumnPos( ) );
- }
+// IAccessible2 implementation, 2009
+ //String sName = mpBrowseBox->GetColumnDescription( getColumnPos( ) );
+ //if ( 0 == sName.Len() )
+ //{
+ // sName = String::CreateFromAscii( "Column " );
+ String sName = String::CreateFromAscii( "Column " );
+ sName += String::CreateFromInt32( getColumnPos( ) - 1 );
+ //}
sName += String::CreateFromAscii( ", Row " );
sName += String::CreateFromInt32( getRowPos( ) );
diff --git a/accessibility/source/extended/accessibleiconchoicectrl.cxx b/accessibility/source/extended/accessibleiconchoicectrl.cxx
index 014413c..2598c92 100644
--- a/accessibility/source/extended/accessibleiconchoicectrl.cxx
+++ b/accessibility/source/extended/accessibleiconchoicectrl.cxx
@@ -79,11 +79,36 @@ namespace accessibility
// modified selection. The active descendant event is
// send after that so that the receiving AT has time to
// read the text or name of the active child.
- NotifyAccessibleEvent( AccessibleEventId::SELECTION_CHANGED, Any(), Any() );
+// NotifyAccessibleEvent( AccessibleEventId::SELECTION_CHANGED, Any(), Any() );
+
+ if ( getCtrl() && getCtrl()->HasFocus() )
+ {
+ SvxIconChoiceCtrlEntry* pEntry = static_cast< SvxIconChoiceCtrlEntry* >( rVclWindowEvent.GetData() );
+ if ( pEntry )
+ {
+ sal_uLong nPos = getCtrl()->GetEntryListPos( pEntry );
+ Reference< XAccessible > xChild = new AccessibleIconChoiceCtrlEntry( *getCtrl(), nPos, this );
+ uno::Any aOldValue, aNewValue;
+ aNewValue <<= xChild;
+ NotifyAccessibleEvent( AccessibleEventId::ACTIVE_DESCENDANT_CHANGED, aOldValue, aNewValue );
+
+ NotifyAccessibleEvent( AccessibleEventId::SELECTION_CHANGED, aOldValue, aNewValue );
+
+ }
+ }
+ break;
+ }
+ case VCLEVENT_WINDOW_GETFOCUS :
+ {
SvtIconChoiceCtrl* pCtrl = getCtrl();
if ( pCtrl && pCtrl->HasFocus() )
{
SvxIconChoiceCtrlEntry* pEntry = static_cast< SvxIconChoiceCtrlEntry* >( rVclWindowEvent.GetData() );
+ if ( pEntry == NULL )
+ {
+ sal_uLong nPos=0;
+ pEntry = getCtrl()->GetSelectedEntry ( nPos );
+ }
if ( pEntry )
{
sal_uLong nPos = pCtrl->GetEntryListPos( pEntry );
@@ -91,6 +116,7 @@ namespace accessibility
uno::Any aOldValue, aNewValue;
aNewValue <<= xChild;
NotifyAccessibleEvent( AccessibleEventId::ACTIVE_DESCENDANT_CHANGED, aOldValue, aNewValue );
+ NotifyAccessibleEvent( AccessibleEventId::SELECTION_CHANGED, aOldValue, aNewValue );
}
}
break;
@@ -190,7 +216,8 @@ namespace accessibility
// -----------------------------------------------------------------------------
sal_Int16 SAL_CALL AccessibleIconChoiceCtrl::getAccessibleRole( ) throw (RuntimeException)
{
- return AccessibleRole::TREE;
+ //return AccessibleRole::TREE;
+ return AccessibleRole::LIST;
}
// -----------------------------------------------------------------------------
::rtl::OUString SAL_CALL AccessibleIconChoiceCtrl::getAccessibleDescription( ) throw (RuntimeException)
diff --git a/accessibility/source/extended/accessibleiconchoicectrlentry.cxx b/accessibility/source/extended/accessibleiconchoicectrlentry.cxx
index 3703efa..d756bcf 100644
--- a/accessibility/source/extended/accessibleiconchoicectrlentry.cxx
+++ b/accessibility/source/extended/accessibleiconchoicectrlentry.cxx
@@ -351,7 +351,8 @@ throw(RuntimeException)
// -----------------------------------------------------------------------------
sal_Int16 SAL_CALL AccessibleIconChoiceCtrlEntry::getAccessibleRole( ) throw (RuntimeException)
{
- return AccessibleRole::LABEL;
+ //return AccessibleRole::LABEL;
+ return AccessibleRole::LIST_ITEM;
}
// -----------------------------------------------------------------------------
::rtl::OUString SAL_CALL AccessibleIconChoiceCtrlEntry::getAccessibleDescription( ) throw (RuntimeException)
diff --git a/accessibility/source/extended/accessiblelistbox.cxx b/accessibility/source/extended/accessiblelistbox.cxx
index 42ac4d0..159b76e 100644
--- a/accessibility/source/extended/accessiblelistbox.cxx
+++ b/accessibility/source/extended/accessiblelistbox.cxx
@@ -89,19 +89,25 @@ namespace accessibility
{
case VCLEVENT_CHECKBOX_TOGGLE :
{
- if ( getListBox() && getListBox()->HasFocus() )
+ if ( !getListBox() || !getListBox()->HasFocus() )
{
- SvLBoxEntry* pEntry = static_cast< SvLBoxEntry* >( rVclWindowEvent.GetData() );
- if ( !pEntry )
- pEntry = getListBox()->GetCurEntry();
+ return;
+ }
+ AccessibleListBoxEntry* pCurOpEntry = GetCurEventEntry(rVclWindowEvent);
+ if(!pCurOpEntry)
+ {
+ return ;
+ }
+ uno::Any aValue;
+ aValue <<= AccessibleStateType::CHECKED;
- if ( pEntry )
- {
- Reference< XAccessible > xChild = new AccessibleListBoxEntry( *getListBox(), pEntry, this );
- uno::Any aOldValue, aNewValue;
- aNewValue <<= xChild;
- NotifyAccessibleEvent( AccessibleEventId::ACTIVE_DESCENDANT_CHANGED, aOldValue, aNewValue );
- }
+ if ( getListBox()->GetCheckButtonState( pCurOpEntry->GetSvLBoxEntry() ) == SV_BUTTON_CHECKED )
+ {
+ pCurOpEntry->NotifyAccessibleEvent( AccessibleEventId::STATE_CHANGED, uno::Any(), aValue );
+ }
+ else
+ {
+ pCurOpEntry->NotifyAccessibleEvent( AccessibleEventId::STATE_CHANGED, aValue,uno::Any() );
}
break;
}
@@ -112,17 +118,104 @@ namespace accessibility
// modified selection. The active descendant event is
// send after that so that the receiving AT has time to
// read the text or name of the active child.
- NotifyAccessibleEvent( AccessibleEventId::SELECTION_CHANGED, Any(), Any() );
- if ( getListBox() && getListBox()->HasFocus() )
+// NotifyAccessibleEvent( AccessibleEventId::SELECTION_CHANGED, Any(), Any() );
+ OSL_ASSERT(0 && "Debug: Treelist shouldn't use VCLEVENT_LISTBOX_SELECT");
+ }
+ case VCLEVENT_LISTBOX_TREESELECT:
+ {
+ if ( getListBox() && getListBox()->HasFocus() )
+ {
+ AccessibleListBoxEntry* pEntry =static_cast< AccessibleListBoxEntry* >(m_xFocusedChild.get());
+ if (pEntry)
+ {
+ pEntry->NotifyAccessibleEvent( AccessibleEventId::SELECTION_CHANGED, Any(), Any() );
+ }
+ }
+ }
+ break;
+ case VCLEVENT_LISTBOX_TREEFOCUS:
+ {
+ SvTreeListBox* pBox = getListBox();
+ sal_Bool bNeedFocus = sal_False;
+ if (pBox)
+ {
+ Window* pParent = ((Window*)pBox)->GetParent();
+ if (pParent && pParent->GetType() == WINDOW_FLOATINGWINDOW)
+ {
+ // MT: ImplGetAppSVData shouldn't be exported from VCL.
+ // In which scenario is this needed?
+ // If needed, we need to find an other solution
+ /*
+ ImplSVData* pSVData = ImplGetAppSVData();
+ if (pSVData && pSVData->maWinData.mpFirstFloat == (FloatingWindow*)pParent)
+ bNeedFocus = sal_True;
+ */
+ }
+ }
+ if( pBox && (pBox->HasFocus() || bNeedFocus) )
+ {
+ uno::Any aOldValue, aNewValue;
+ SvLBoxEntry* pEntry = static_cast< SvLBoxEntry* >( rVclWindowEvent.GetData() );
+ if ( pEntry )
+ {
+ AccessibleListBoxEntry* pEntryFocus =static_cast< AccessibleListBoxEntry* >(m_xFocusedChild.get());
+ if (pEntryFocus && pEntryFocus->GetSvLBoxEntry() == pEntry)
+ {
+ aOldValue <<= uno::Any();
+ aNewValue <<= m_xFocusedChild;
+ NotifyAccessibleEvent( AccessibleEventId::ACTIVE_DESCENDANT_CHANGED, aOldValue, aNewValue );
+ return ;
+ }
+
+ aOldValue <<= m_xFocusedChild;
+
+ MAP_ENTRY::iterator mi = m_mapEntry.find(pEntry);
+ if(mi != m_mapEntry.end())
+ {
+ OSL_ASSERT(mi->second.get() != NULL);
+ m_xFocusedChild = mi->second;
+ }
+ else
+ {
+ AccessibleListBoxEntry *pEntNew = new AccessibleListBoxEntry( *getListBox(), pEntry, NULL );
+ m_xFocusedChild = pEntNew;
+ m_mapEntry.insert(MAP_ENTRY::value_type(pEntry,pEntNew));
+ }
+
+ aNewValue <<= m_xFocusedChild;
+ NotifyAccessibleEvent( AccessibleEventId::ACTIVE_DESCENDANT_CHANGED, aOldValue, aNewValue );
+ }
+ else
+ {
+ aOldValue <<= uno::Any();
+ aNewValue <<= AccessibleStateType::FOCUSED;
+ NotifyAccessibleEvent( AccessibleEventId::STATE_CHANGED, aOldValue, aNewValue );
+ }
+ }
+ }
+ break;
+ case VCLEVENT_LISTBOX_ITEMREMOVED:
{
SvLBoxEntry* pEntry = static_cast< SvLBoxEntry* >( rVclWindowEvent.GetData() );
if ( pEntry )
{
- Reference< XAccessible > xChild = new AccessibleListBoxEntry( *getListBox(), pEntry, this );
- uno::Any aOldValue, aNewValue;
- aNewValue <<= xChild;
- NotifyAccessibleEvent( AccessibleEventId::ACTIVE_DESCENDANT_CHANGED, aOldValue, aNewValue );
+ RemoveChildEntries(pEntry);
+ }
+ else
+ {
+ // NULL means Clear()
+ MAP_ENTRY::iterator mi = m_mapEntry.begin();
+ for ( ; mi != m_mapEntry.end() ; ++mi)
+ {
+ uno::Any aNewValue;
+ uno::Any aOldValue;
+ aOldValue <<= mi->second;
+ NotifyAccessibleEvent( AccessibleEventId::CHILD, aOldValue, aNewValue );
+ }
+ m_mapEntry.clear();
}
+
+
}
break;
@@ -148,15 +241,72 @@ namespace accessibility
NotifyAccessibleEvent( AccessibleEventId::ACTIVE_DESCENDANT_CHANGED, Any(), aListBoxEntry );
}
}
- break;
}
+ break;
// <--
- }
default:
VCLXAccessibleComponent::ProcessWindowEvent (rVclWindowEvent);
}
}
}
+
+ AccessibleListBoxEntry* AccessibleListBox::GetCurEventEntry( const VclWindowEvent& rVclWindowEvent )
+ {
+ SvLBoxEntry* pEntry = static_cast< SvLBoxEntry* >( rVclWindowEvent.GetData() );
+ if ( !pEntry )
+ pEntry = getListBox()->GetCurEntry();
+
+ AccessibleListBoxEntry* pEntryFocus =static_cast< AccessibleListBoxEntry* >(m_xFocusedChild.get());
+ if (pEntryFocus && pEntry && pEntry != pEntryFocus->GetSvLBoxEntry())
+ {
+ AccessibleListBoxEntry *pAccCurOptionEntry =NULL;
+ MAP_ENTRY::iterator mi = m_mapEntry.find(pEntry);
+ if (mi != m_mapEntry.end())
+ {
+ pAccCurOptionEntry= static_cast< AccessibleListBoxEntry* >(mi->second.get());
+ }
+ else
+ {
+ pAccCurOptionEntry =new AccessibleListBoxEntry( *getListBox(), pEntry, NULL );
+ std::pair<MAP_ENTRY::iterator, bool> pairMi = m_mapEntry.insert(MAP_ENTRY::value_type(pAccCurOptionEntry->GetSvLBoxEntry(),pAccCurOptionEntry));
+ mi = pairMi.first;
+ }
+
+ uno::Any aNewValue;
+ aNewValue <<= mi->second;//xAcc
+ NotifyAccessibleEvent( AccessibleEventId::CHILD, uno::Any(), aNewValue );//Add
+
+ return pAccCurOptionEntry;
+ }
+ else
+ {
+ return pEntryFocus;
+ }
+ return NULL;
+ }
+
+ void AccessibleListBox::RemoveChildEntries(SvLBoxEntry* pEntry)
+ {
+ MAP_ENTRY::iterator mi = m_mapEntry.find(pEntry);
+ if ( mi != m_mapEntry.end() )
+ {
+ uno::Any aNewValue;
+ uno::Any aOldValue;
+ aOldValue <<= mi->second;
+ NotifyAccessibleEvent( AccessibleEventId::CHILD, aOldValue, aNewValue );
+
+ m_mapEntry.erase(mi);
+ }
+
+ SvTreeListBox* pBox = getListBox();
+ SvLBoxEntry* pEntryChild = pBox->FirstChild(pEntry);
+ while (pEntryChild)
+ {
+ RemoveChildEntries(pEntryChild);
+ pEntryChild = pBox->NextSibling(pEntryChild);
+ }
+ }
+
// -----------------------------------------------------------------------------
void AccessibleListBox::ProcessWindowChildEvent( const VclWindowEvent& rVclWindowEvent )
{
@@ -182,6 +332,7 @@ namespace accessibility
{
::osl::MutexGuard aGuard( m_aMutex );
+ m_mapEntry.clear();
VCLXAccessibleComponent::disposing();
m_xParent = NULL;
}
@@ -258,7 +409,9 @@ namespace accessibility
if ( !pEntry )
throw IndexOutOfBoundsException();
- return new AccessibleListBoxEntry( *getListBox(), pEntry, this );
+ // Solution: Set the parameter of the parent to null to let entry determine the parent by itself
+ //return new AccessibleListBoxEntry( *getListBox(), pEntry, this );
+ return new AccessibleListBoxEntry( *getListBox(), pEntry, NULL );
}
// -----------------------------------------------------------------------------
Reference< XAccessible > SAL_CALL AccessibleListBox::getAccessibleParent( ) throw (RuntimeException)
@@ -269,9 +422,54 @@ namespace accessibility
return m_xParent;
}
// -----------------------------------------------------------------------------
+ sal_Int32 SAL_CALL AccessibleListBox::getRoleType()
+ {
+ sal_Int32 nCase = 0;
+ SvLBoxEntry* pEntry = getListBox()->GetEntry(0);
+ if ( pEntry )
+ {
+ if( pEntry->HasChildsOnDemand() || getListBox()->GetChildCount(pEntry) > 0 )
+ {
+ nCase = 1;
+ return nCase;
+ }
+ }
+
+ sal_Bool bHasButtons = (getListBox()->GetStyle() & WB_HASBUTTONS)!=0;
+ if( !(getListBox()->GetTreeFlags() & TREEFLAG_CHKBTN) )
+ {
+ if( bHasButtons )
+ nCase = 1;
+ }
+ else
+ {
+ if( bHasButtons )
+ nCase = 2;
+ else
+ nCase = 3;
+ }
+ return nCase;
+ }
sal_Int16 SAL_CALL AccessibleListBox::getAccessibleRole( ) throw (RuntimeException)
{
- return AccessibleRole::TREE;
+ if(getListBox())
+ {
+ short nType = getListBox()->GetAllEntriesAccessibleRoleType();
+ if( nType == TREEBOX_ALLITEM_ACCROLE_TYPE_TREE)
+ return AccessibleRole::TREE;
+ else if( nType == TREEBOX_ALLITEM_ACCROLE_TYPE_LIST)
+ return AccessibleRole::LIST;
+ }
+
+ //o is: return AccessibleRole::TREE;
+ sal_Bool bHasButtons = (getListBox()->GetStyle() & WB_HASBUTTONS)!=0;
+ if(!bHasButtons && (getListBox()->GetTreeFlags() & TREEFLAG_CHKBTN))
+ return AccessibleRole::LIST;
+ else
+ if(getRoleType() == 0)
+ return AccessibleRole::LIST;
+ else
+ return AccessibleRole::TREE;
}
// -----------------------------------------------------------------------------
::rtl::OUString SAL_CALL AccessibleListBox::getAccessibleDescription( ) throw (RuntimeException)
@@ -356,16 +554,19 @@ namespace accessibility
ensureAlive();
- sal_Int32 i, nSelCount = 0, nCount = 0;
- nCount = getListBox()->GetLevelChildCount( NULL );
- for ( i = 0; i < nCount; ++i )
- {
- SvLBoxEntry* pEntry = getListBox()->GetEntry( i );
- if ( getListBox()->IsSelected( pEntry ) )
- ++nSelCount;
- }
- return nSelCount;
+// sal_Int32 i, nSelCount = 0, nCount = 0;
+// nCount = getListBox()->GetLevelChildCount( NULL );
+// for ( i = 0; i < nCount; ++i )
+// {
+// SvLBoxEntry* pEntry = getListBox()->GetEntry( i );
+// if ( getListBox()->IsSelected( pEntry ) )
+// ++nSelCount;
+// }
+// return nSelCount;
+
+ int nTestCount = getListBox()->GetSelectionCount();
+ return nTestCount;
}
// -----------------------------------------------------------------------------
Reference< XAccessible > SAL_CALL AccessibleListBox::getSelectedAccessibleChild( sal_Int32 nSelectedChildIndex ) throw (IndexOutOfBoundsException, RuntimeException)
@@ -388,7 +589,9 @@ namespace accessibility
if ( nSelCount == ( nSelectedChildIndex + 1 ) )
{
- xChild = new AccessibleListBoxEntry( *getListBox(), pEntry, this );
+ // Solution: Set the parameter of the parent to null to let entry determine the parent by itself
+ //xChild = new AccessibleListBoxEntry( *getListBox(), pEntry, this );
+ xChild = new AccessibleListBoxEntry( *getListBox(), pEntry, NULL );
break;
}
}
diff --git a/accessibility/source/extended/accessiblelistboxentry.cxx b/accessibility/source/extended/accessiblelistboxentry.cxx
index d29ef1a..84d6961 100644
--- a/accessibility/source/extended/accessiblelistboxentry.cxx
+++ b/accessibility/source/extended/accessiblelistboxentry.cxx
@@ -25,6 +25,7 @@
#include "precompiled_accessibility.hxx"
#include "accessibility/extended/accessiblelistboxentry.hxx"
#include <svtools/svtreebx.hxx>
+#include <accessibility/helper/accresmgr.hxx>
#include <svtools/stringtransfer.hxx>
#include <com/sun/star/awt/Point.hpp>
#include <com/sun/star/awt/Rectangle.hpp>
@@ -44,7 +45,10 @@
#include <comphelper/sequence.hxx>
#include <comphelper/accessibleeventnotifier.hxx>
#include <toolkit/helper/vclunohelper.hxx>
-
+#include <accessibility/helper/accessiblestrings.hrc>
+#ifndef _COM_SUN_STAR_ACCESSIBILITY_XACCESSIBLEVALUE_HPP_
+#include <com/sun/star/accessibility/XAccessibleValue.hpp>
+#endif
#define ACCESSIBLE_ACTION_COUNT 1
namespace
@@ -76,7 +80,7 @@ namespace accessibility
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::lang;
using namespace ::com::sun::star;
-
+ using namespace ::comphelper;
DBG_NAME(AccessibleListBoxEntry)
// -----------------------------------------------------------------------------
@@ -89,6 +93,7 @@ namespace accessibility
AccessibleListBoxEntry_BASE ( m_aMutex ),
ListBoxAccessibleBase( _rListBox ),
+ m_pSvLBoxEntry ( _pEntry ),
m_nClientId ( 0 ),
m_aParent ( _xParent )
@@ -110,6 +115,19 @@ namespace accessibility
}
}
+ // IA2 CWS
+ void AccessibleListBoxEntry::NotifyAccessibleEvent( sal_Int16 _nEventId,
+ const ::com::sun::star::uno::Any& _aOldValue,
+ const ::com::sun::star::uno::Any& _aNewValue )
+ {
+ Reference< uno::XInterface > xSource( *this );
+ AccessibleEventObject aEventObj( xSource, _nEventId, _aNewValue, _aOldValue );
+
+ if (m_nClientId)
+ comphelper::AccessibleEventNotifier::addEvent( m_nClientId, aEventObj );
+ }
+
+
// -----------------------------------------------------------------------------
Rectangle AccessibleListBoxEntry::GetBoundingBox_Impl() const
{
@@ -196,8 +214,10 @@ namespace accessibility
{
::rtl::OUString sRet;
SvLBoxEntry* pEntry = getListBox()->GetEntryFromPath( m_aEntryPath );
+ //IAccessibility2 Implementation 2009-----
if ( pEntry )
- sRet = getListBox()->SearchEntryText( pEntry );
+ sRet = getListBox()->SearchEntryTextWithHeadTitle( pEntry );
+ //-----IAccessibility2 Implementation 2009
return sRet;
}
// -----------------------------------------------------------------------------
@@ -337,8 +357,9 @@ namespace accessibility
::osl::MutexGuard aGuard( m_aMutex );
EnsureIsAlive();
- SvLBoxEntry* pParent = getListBox()->GetEntryFromPath( m_aEntryPath );
- SvLBoxEntry* pEntry = pParent ? getListBox()->GetEntry( pParent, i ) : NULL;
+// SvLBoxEntry* pParent = getListBox()->GetEntryFromPath( m_aEntryPath );
+// SvLBoxEntry* pEntry = pParent ? getListBox()->GetEntry( pParent, i ) : NULL;
+ SvLBoxEntry* pEntry =GetRealChild(i);
if ( !pEntry )
throw IndexOutOfBoundsException();
@@ -369,6 +390,10 @@ namespace accessibility
SvLBoxEntry* pParentEntry = getListBox()->GetEntryFromPath( m_aEntryPath );
DBG_ASSERT( pParentEntry, "AccessibleListBoxEntry::implGetParentAccessible: could not obtain a parent entry!" );
+ //IAccessibility2 Implementation 2009-----
+ if ( pParentEntry )
+ pParentEntry = getListBox()->GetParent(pParentEntry);
+ //-----IAccessibility2 Implementation 2009
if ( pParentEntry )
xParent = new AccessibleListBoxEntry( *getListBox(), pParentEntry, NULL );
// note that we pass NULL here as parent-accessible:
@@ -398,15 +423,104 @@ namespace accessibility
return m_aEntryPath.empty() ? -1 : m_aEntryPath.back();
}
// -----------------------------------------------------------------------------
+ sal_Int32 SAL_CALL AccessibleListBoxEntry::getRoleType()
+ {
+ sal_Int32 nCase = 0;
+ SvLBoxEntry* pEntry = getListBox()->GetEntry(0);
+ if ( pEntry )
+ {
+ if( pEntry->HasChildsOnDemand() || getListBox()->GetChildCount(pEntry) > 0 )
+ {
+ nCase = 1;
+ return nCase;
+ }
+ }
+
+ sal_Bool bHasButtons = (getListBox()->GetStyle() & WB_HASBUTTONS)!=0;
+ if( !(getListBox()->GetTreeFlags() & TREEFLAG_CHKBTN) )
+ {
+ if( bHasButtons )
+ nCase = 1;
+ }
+ else
+ {
+ if( bHasButtons )
+ nCase = 2;
+ else
+ nCase = 3;
+ }
+ return nCase;
+ }
sal_Int16 SAL_CALL AccessibleListBoxEntry::getAccessibleRole( ) throw (RuntimeException)
{
- return AccessibleRole::LABEL;
+ SvTreeListBox* pBox = getListBox();
+ if(pBox)
+ {
+ short nType = pBox->GetAllEntriesAccessibleRoleType();
+ if( nType == TREEBOX_ALLITEM_ACCROLE_TYPE_TREE)
+ return AccessibleRole::TREE_ITEM;
+ else if( nType == TREEBOX_ALLITEM_ACCROLE_TYPE_LIST)
+ return AccessibleRole::LIST_ITEM;
+ }
+
+ sal_uInt16 treeFlag = pBox->GetTreeFlags();
+ if(treeFlag & TREEFLAG_CHKBTN )
+ {
+ SvLBoxEntry* pEntry = pBox->GetEntryFromPath( m_aEntryPath );
+ SvButtonState eState = pBox->GetCheckButtonState( pEntry );
+ switch( eState )
+ {
+ case SV_BUTTON_CHECKED:
+ case SV_BUTTON_UNCHECKED:
+ return AccessibleRole::CHECK_BOX;
+ case SV_BUTTON_TRISTATE:
+ default:
+ return AccessibleRole::LABEL;
+ }
+ }
+ else
+ {
+
+ if(getRoleType() == 0)
+ return AccessibleRole::LIST_ITEM;
+ else
+ //o is: return AccessibleRole::LABEL;
+ return AccessibleRole::TREE_ITEM;
+ }
}
// -----------------------------------------------------------------------------
::rtl::OUString SAL_CALL AccessibleListBoxEntry::getAccessibleDescription( ) throw (RuntimeException)
{
// no description for every item
- return ::rtl::OUString();
+ SvLBoxEntry* pEntry = getListBox()->GetEntryFromPath( m_aEntryPath );
+ if( getAccessibleRole() == AccessibleRole::TREE_ITEM )
+ {
+ return getListBox()->GetEntryLongDescription( pEntry );
+ }
+ //want to cout the real column nubmer in the list box.
+ sal_uInt16 iRealItemCount = 0;
+ sal_uInt16 iCount = 0;
+ sal_uInt16 iTotleItemCount = pEntry->ItemCount();
+ SvLBoxItem* pItem;
+ while( iCount < iTotleItemCount )
+ {
+ pItem = pEntry->GetItem( iCount );
+ if ( pItem->IsA() == SV_ITEM_ID_LBOXSTRING &&
+ static_cast<SvLBoxString*>( pItem )->GetText().Len() > 0 )
+ {
+ iRealItemCount++;
+ }
+ iCount++;
+ }
+ if(iRealItemCount<=1 )
+ {
+ return ::rtl::OUString();
+ }
+ else
+ {
+ return getListBox()->SearchEntryTextWithHeadTitle( pEntry );
+ }
+
}
// -----------------------------------------------------------------------------
::rtl::OUString SAL_CALL AccessibleListBoxEntry::getAccessibleName( ) throw (RuntimeException)
@@ -414,7 +528,24 @@ namespace accessibility
::osl::MutexGuard aGuard( m_aMutex );
EnsureIsAlive();
- return implGetText();
+
+ ::rtl::OUString sRet;
+ sRet = implGetText();
+
+ SvLBoxEntry* pEntry = getListBox()->GetEntryFromPath( m_aEntryPath );
+
+ String altText = getListBox()->GetEntryAltText( pEntry );
+ if( altText.Len() > 0 )
+ {
+ sRet += ::rtl::OUString(' ');
+ sRet += altText;
+ }
+
+ // IA2 CWS. Removed for now - only used in Sw/Sd/ScContentLBoxString, they should decide if they need this
+ // if ( pEntry && pEntry->IsMarked())
+ // sRet = sRet + ::rtl::OUString(TK_RES_STRING(STR_SVT_ACC_LISTENTRY_SELCTED_STATE));
+
+ return sRet;
}
// -----------------------------------------------------------------------------
Reference< XAccessibleRelationSet > SAL_CALL AccessibleListBoxEntry::getAccessibleRelationSet( ) throw (RuntimeException)
@@ -444,14 +575,25 @@ namespace accessibility
if ( IsAlive_Impl() )
{
- pStateSetHelper->AddState( AccessibleStateType::TRANSIENT );
- pStateSetHelper->AddState( AccessibleStateType::SELECTABLE );
- pStateSetHelper->AddState( AccessibleStateType::ENABLED );
- pStateSetHelper->AddState( AccessibleStateType::SENSITIVE );
- if ( getListBox()->IsInplaceEditingEnabled() )
- pStateSetHelper->AddState( AccessibleStateType::EDITABLE );
- if ( IsShowing_Impl() )
- pStateSetHelper->AddState( AccessibleStateType::SHOWING );
+ switch(getAccessibleRole())
+ {
+ case AccessibleRole::LABEL:
+ pStateSetHelper->AddState( AccessibleStateType::TRANSIENT );
+ pStateSetHelper->AddState( AccessibleStateType::SELECTABLE );
+ pStateSetHelper->AddState( AccessibleStateType::ENABLED );
+ if ( getListBox()->IsInplaceEditingEnabled() )
+ pStateSetHelper->AddState( AccessibleStateType::EDITABLE );
+ if ( IsShowing_Impl() )
+ pStateSetHelper->AddState( AccessibleStateType::SHOWING );
+ break;
+ case AccessibleRole::CHECK_BOX:
+ pStateSetHelper->AddState( AccessibleStateType::TRANSIENT );
+ pStateSetHelper->AddState( AccessibleStateType::SELECTABLE );
+ pStateSetHelper->AddState( AccessibleStateType::ENABLED );
+ if ( IsShowing_Impl() )
+ pStateSetHelper->AddState( AccessibleStateType::SHOWING );
+ break;
+ }
getListBox()->FillAccessibleEntryStateSet(
getListBox()->GetEntryFromPath( m_aEntryPath ), *pStateSetHelper );
}
@@ -586,6 +728,7 @@ namespace accessibility
ALBSolarGuard aSolarGuard;
::osl::MutexGuard aGuard( m_aMutex );
EnsureIsAlive();
+ if(aPoint.X==0 && aPoint.Y==0) return 0;
sal_Int32 nIndex = -1;
SvLBoxEntry* pEntry = getListBox()->GetEntryFromPath( m_aEntryPath );
@@ -660,7 +803,20 @@ namespace accessibility
::osl::MutexGuard aGuard( m_aMutex );
// three actions supported
- return ACCESSIBLE_ACTION_COUNT;
+ SvTreeListBox* pBox = getListBox();
+ sal_uInt16 treeFlag = pBox->GetTreeFlags();
+ sal_Bool bHasButtons = (getListBox()->GetStyle() & WB_HASBUTTONS)!=0;
+ if( (treeFlag & TREEFLAG_CHKBTN) && !bHasButtons)
+ {
+ sal_Int16 role = getAccessibleRole();
+ if ( role == AccessibleRole::CHECK_BOX )
+ return 2;
+ else if ( role == AccessibleRole::LABEL )
+ return 0;
+ }
+ else
+ return ACCESSIBLE_ACTION_COUNT;
+ return 0;
}
// -----------------------------------------------------------------------------
sal_Bool SAL_CALL AccessibleListBoxEntry::doAccessibleAction( sal_Int32 nIndex ) throw (IndexOutOfBoundsException, RuntimeException)
@@ -671,17 +827,30 @@ namespace accessibility
sal_Bool bRet = sal_False;
checkActionIndex_Impl( nIndex );
EnsureIsAlive();
-
- SvLBoxEntry* pEntry = getListBox()->GetEntryFromPath( m_aEntryPath );
- if ( pEntry )
+ sal_uInt16 treeFlag = getListBox()->GetTreeFlags();
+ if( nIndex == 0 && (treeFlag & TREEFLAG_CHKBTN) )
{
- if ( getListBox()->IsExpanded( pEntry ) )
- getListBox()->Collapse( pEntry );
- else
- getListBox()->Expand( pEntry );
- bRet = sal_True;
+ if(getAccessibleRole() == AccessibleRole::CHECK_BOX)
+ {
+ SvLBoxEntry* pEntry = getListBox()->GetEntryFromPath( m_aEntryPath );
+ SvButtonState state = getListBox()->GetCheckButtonState( pEntry );
+ if ( state == SV_BUTTON_CHECKED )
+ getListBox()->SetCheckButtonState(pEntry, (SvButtonState)SV_BMP_UNCHECKED);
+ else if (state == SV_BMP_UNCHECKED)
+ getListBox()->SetCheckButtonState(pEntry, (SvButtonState)SV_BUTTON_CHECKED);
+ }
+ }else if( (nIndex == 1 && (treeFlag & TREEFLAG_CHKBTN) ) || (nIndex == 0) )
+ {
+ SvLBoxEntry* pEntry = getListBox()->GetEntryFromPath( m_aEntryPath );
+ if ( pEntry )
+ {
+ if ( getListBox()->IsExpanded( pEntry ) )
+ getListBox()->Collapse( pEntry );
+ else
+ getListBox()->Expand( pEntry );
+ bRet = sal_True;
+ }
}
-
return bRet;
}
// -----------------------------------------------------------------------------
@@ -694,7 +863,38 @@ namespace accessibility
EnsureIsAlive();
static const ::rtl::OUString sActionDesc( RTL_CONSTASCII_USTRINGPARAM( "toggleExpand" ) );
- return sActionDesc;
+ static const ::rtl::OUString sActionDesc1( RTL_CONSTASCII_USTRINGPARAM( "Check" ) );
+ static const ::rtl::OUString sActionDesc2( RTL_CONSTASCII_USTRINGPARAM( "UnCheck" ) );
+ // sal_Bool bHasButtons = (getListBox()->GetStyle() & WB_HASBUTTONS)!=0;
+ SvLBoxEntry* pEntry = getListBox()->GetEntryFromPath( m_aEntryPath );
+ SvButtonState state = getListBox()->GetCheckButtonState( pEntry );
+ sal_uInt16 treeFlag = getListBox()->GetTreeFlags();
+ if(nIndex == 0 && (treeFlag & TREEFLAG_CHKBTN))
+ {
+ if(getAccessibleRole() == AccessibleRole::CHECK_BOX)
+ {
+ if ( state == SV_BUTTON_CHECKED )
+ return sActionDesc2;
+ else if (state == SV_BMP_UNCHECKED)
+ return sActionDesc1;
+ }
+ else
+ {
+ //Sometimes, a List or Tree may have both checkbox and label at the same time
+ return ::rtl::OUString();
+ }
+ }else if( (nIndex == 1 && (treeFlag & TREEFLAG_CHKBTN)) || nIndex == 0 )
+ {
+ //IAccessibility2 Implementation 2009-----
+ if( pEntry->HasChilds() || pEntry->HasChildsOnDemand() )
+ //-----IAccessibility2 Implementation 2009
+ return getListBox()->IsExpanded( pEntry ) ? \
+ ::rtl::OUString(TK_RES_STRING(STR_SVT_ACC_ACTION_COLLAPSE)) :
+ ::rtl::OUString(TK_RES_STRING(STR_SVT_ACC_ACTION_EXPAND));
+ return ::rtl::OUString();
+
+ }
+ throw IndexOutOfBoundsException();
}
// -----------------------------------------------------------------------------
Reference< XAccessibleKeyBinding > AccessibleListBoxEntry::getAccessibleActionKeyBinding( sal_Int32 nIndex ) throw (IndexOutOfBoundsException, RuntimeException)
@@ -715,9 +915,11 @@ namespace accessibility
::osl::MutexGuard aGuard( m_aMutex );
EnsureIsAlive();
+// IAccessible2 implementation, 2009
+// SvLBoxEntry* pParent = getListBox()->GetEntryFromPath( m_aEntryPath );
+// SvLBoxEntry* pEntry = getListBox()->GetEntry( pParent, nChildIndex );
- SvLBoxEntry* pParent = getListBox()->GetEntryFromPath( m_aEntryPath );
- SvLBoxEntry* pEntry = getListBox()->GetEntry( pParent, nChildIndex );
+ SvLBoxEntry* pEntry =GetRealChild(nChildIndex);
if ( !pEntry )
throw IndexOutOfBoundsException();
@@ -960,6 +1162,111 @@ namespace accessibility
return OCommonAccessibleText::getTextBehindIndex( nIndex ,aTextType);
}
+ // -----------------------------------------------------------------------------
+ // XAccessibleValue
+ // -----------------------------------------------------------------------------
+
+ Any AccessibleListBoxEntry::getCurrentValue( ) throw (RuntimeException)
+ {
+ ::osl::MutexGuard aGuard( m_aMutex );
+ Any aValue;
+ sal_Int32 level = ((sal_Int32) m_aEntryPath.size() - 1);
+ level = level < 0 ? 0: level;
+ aValue <<= level;
+ return aValue;
+ }
+
+ // -----------------------------------------------------------------------------
+
+ sal_Bool AccessibleListBoxEntry::setCurrentValue( const Any& aNumber ) throw (RuntimeException)
+ {
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+
+ sal_Bool bReturn = sal_False;
+ SvTreeListBox* pBox = getListBox();
+ if(getAccessibleRole() == AccessibleRole::CHECK_BOX)
+ {
+ SvLBoxEntry* pEntry = pBox->GetEntryFromPath( m_aEntryPath );
+ if ( pEntry )
+ {
+ sal_Int32 nValue, nValueMin, nValueMax;
+ aNumber >>= nValue;
+ getMinimumValue() >>= nValueMin;
+ getMaximumValue() >>= nValueMax;
+
+ if ( nValue < nValueMin )
+ nValue = nValueMin;
+ else if ( nValue > nValueMax )
+ nValue = nValueMax;
+
+ pBox->SetCheckButtonState(pEntry, (SvButtonState) nValue );
+ bReturn = sal_True;
+ }
+ }
+
+ return bReturn;
+ }
+
+ // -----------------------------------------------------------------------------
+
+ Any AccessibleListBoxEntry::getMaximumValue( ) throw (RuntimeException)
+ {
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ Any aValue;
+ // SvTreeListBox* pBox = getListBox();
+ switch(getAccessibleRole())
+ {
+ case AccessibleRole::CHECK_BOX:
+ aValue <<= (sal_Int32)1;
+ break;
+ case AccessibleRole::LABEL:
+ default:
+ break;
+ }
+
+ return aValue;
+ }
+
+ // -----------------------------------------------------------------------------
+
+ Any AccessibleListBoxEntry::getMinimumValue( ) throw (RuntimeException)
+ {
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ Any aValue;
+ // SvTreeListBox* pBox = getListBox();
+ switch(getAccessibleRole())
+ {
+ case AccessibleRole::CHECK_BOX:
+ aValue <<= (sal_Int32)0;
+ break;
+ case AccessibleRole::LABEL:
+ default:
+ break;
+ }
+
+ return aValue;
+ }
+
+ // -----------------------------------------------------------------------------
+
+ SvLBoxEntry * AccessibleListBoxEntry::GetRealChild(sal_Int32 nIndex)
+ {
+ SvLBoxEntry* pEntry =NULL;
+ SvLBoxEntry* pParent = getListBox()->GetEntryFromPath( m_aEntryPath );
+ if (pParent)
+ {
+ pEntry = getListBox()->GetEntry( pParent, nIndex );
+ if ( !pEntry && getAccessibleChildCount() > 0 )
+ {
+ getListBox()->RequestingChilds(pParent);
+ pEntry = getListBox()->GetEntry( pParent, nIndex );
+ }
+ }
+ return pEntry;
+ }
//........................................................................
}// namespace accessibility
//........................................................................
diff --git a/accessibility/source/extended/accessibletablistboxtable.cxx b/accessibility/source/extended/accessibletablistboxtable.cxx
index d72d239..4654a8e 100644
--- a/accessibility/source/extended/accessibletablistboxtable.cxx
+++ b/accessibility/source/extended/accessibletablistboxtable.cxx
@@ -32,6 +32,9 @@
#include <svtools/svtabbx.hxx>
#include <com/sun/star/accessibility/AccessibleEventId.hpp>
+#ifndef _SVTOOLS_ACCESSIBILEBROWSEBOXTABLECELL_HXX
+#include "accessibility/extended/AccessibleBrowseBoxTableCell.hxx"
+#endif
//........................................................................
namespace accessibility
{
@@ -154,6 +157,63 @@ namespace accessibility
}
break;
}
+ case VCLEVENT_WINDOW_GETFOCUS :
+ {
+ uno::Any aOldValue, aNewValue;
+ aNewValue <<= AccessibleStateType::FOCUSED;
+ commitEvent( AccessibleEventId::STATE_CHANGED, aNewValue, aOldValue );
+ break;
+
+ }
+ case VCLEVENT_WINDOW_LOSEFOCUS :
+ {
+ uno::Any aOldValue, aNewValue;
+ aOldValue <<= AccessibleStateType::FOCUSED;
+ commitEvent( AccessibleEventId::STATE_CHANGED, aNewValue, aOldValue );
+ break;
+ }
+ case VCLEVENT_LISTBOX_TREESELECT:
+ {
+ SvLBoxEntry* pEntry = static_cast< SvLBoxEntry* >( rVclWindowEvent.GetData() );
+ if (pEntry)
+ {
+ sal_Int32 nRow = m_pTabListBox->GetEntryPos( pEntry );
+ Reference< XAccessible > xChild = m_pTabListBox->CreateAccessibleCell( nRow, m_pTabListBox->GetCurrColumn() );
+ TriState eState = STATE_DONTKNOW;
+ if ( m_pTabListBox->IsCellCheckBox( nRow, m_pTabListBox->GetCurrColumn(), eState ) )
+ {
+ AccessibleCheckBoxCell* pCell = static_cast< AccessibleCheckBoxCell* >( xChild.get() );
+ pCell->commitEvent( AccessibleEventId::SELECTION_CHANGED, Any(), Any() );
+ }
+ else
+ {
+ AccessibleBrowseBoxTableCell* pCell = static_cast< AccessibleBrowseBoxTableCell* >( xChild.get() );
+ pCell->commitEvent( AccessibleEventId::SELECTION_CHANGED, Any(), Any() );
+ }
+ }
+ }
+ break;
+ case VCLEVENT_LISTBOX_TREEFOCUS:
+ {
+ if ( m_pTabListBox && m_pTabListBox->HasFocus() )
+ {
+ uno::Any aOldValue, aNewValue;
+ SvLBoxEntry* pEntry = static_cast< SvLBoxEntry* >( rVclWindowEvent.GetData() );
+ if ( pEntry )
+ {
+ sal_Int32 nRow = m_pTabListBox->GetEntryPos( pEntry );
+ m_xCurChild = m_pTabListBox->CreateAccessibleCell( nRow, m_pTabListBox->GetCurrColumn() );
+ aNewValue <<= m_xCurChild;
+ commitEvent( AccessibleEventId::ACTIVE_DESCENDANT_CHANGED, aNewValue ,aOldValue);
+ }
+ else
+ {
+ aNewValue <<= AccessibleStateType::FOCUSED;
+ commitEvent( AccessibleEventId::STATE_CHANGED, aNewValue ,aOldValue);
+ }
+ }
+ }
+ break;
case VCLEVENT_CHECKBOX_TOGGLE :
{
diff --git a/accessibility/source/extended/textwindowaccessibility.cxx b/accessibility/source/extended/textwindowaccessibility.cxx
index fc95d00..7d8efb1 100644
--- a/accessibility/source/extended/textwindowaccessibility.cxx
+++ b/accessibility/source/extended/textwindowaccessibility.cxx
@@ -41,6 +41,8 @@ namespace css = ::com::sun::star;
namespace accessibility
{
+ ::sal_Int32 getSelectionType(::sal_Int32 nNewFirstPara, ::sal_Int32 nNewFirstPos, ::sal_Int32 nNewLastPara, ::sal_Int32 nNewLastPos);
+ void sendEvent(::sal_Int32 start, ::sal_Int32 end, ::sal_Int16 nEventId);
// Both ::osl::Mutex and ParagraphBase implement acquire and release, and thus
// ::rtl::Reference< Paragraph > does not work. So ParagraphImpl was factored
@@ -1012,16 +1014,114 @@ Document::retrieveCharacterBounds(ParagraphImpl const * pParagraph,
// XXX numeric overflow
}
+struct IndexCompare
+{
+ const ::css::beans::PropertyValue* pValues;
+ IndexCompare( const ::css::beans::PropertyValue* pVals ) : pValues(pVals) {}
+ bool operator() ( const sal_Int32& a, const sal_Int32& b ) const
+ {
+ return (pValues[a].Name < pValues[b].Name) ? true : false;
+ }
+};
+
::css::uno::Sequence< ::css::beans::PropertyValue >
Document::retrieveCharacterAttributes(
ParagraphImpl const * pParagraph, ::sal_Int32 nIndex,
const ::css::uno::Sequence< ::rtl::OUString >& aRequestedAttributes)
{
::osl::Guard< ::comphelper::IMutex > aExternalGuard(getExternalLock());
+
+ Font aFont = m_rEngine.GetFont();
+ const sal_Int32 AttributeCount = 9;
+ sal_Int32 i = 0;
+ ::css::uno::Sequence< ::css::beans::PropertyValue > aAttribs( AttributeCount );
+ //character background color
+ {
+ aAttribs[i].Name = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharBackColor"));
+ aAttribs[i].Handle = -1;
+ aAttribs[i].Value = mapFontColor( aFont.GetFillColor() );
+ aAttribs[i].State = ::css::beans::PropertyState_DIRECT_VALUE;
+ i++;
+ }
+ //character color
+ {
+ aAttribs[i].Name = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharColor"));
+ aAttribs[i].Handle = -1;
+ //aAttribs[i].Value = mapFontColor( aFont.GetColor() );
+ aAttribs[i].Value = mapFontColor( m_rEngine.GetTextColor() );
+ aAttribs[i].State = ::css::beans::PropertyState_DIRECT_VALUE;
+ i++;
+ }
+ //character font name
+ {
+ aAttribs[i].Name = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharFontName"));
+ aAttribs[i].Handle = -1;
+ aAttribs[i].Value = ::css::uno::makeAny( (::rtl::OUString)aFont.GetName() );
+ aAttribs[i].State = ::css::beans::PropertyState_DIRECT_VALUE;
+ i++;
+ }
+ //character height
+ {
+ aAttribs[i].Name = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharHeight"));
+ aAttribs[i].Handle = -1;
+ aAttribs[i].Value = ::css::uno::makeAny( (sal_Int16)aFont.GetHeight() );
+ aAttribs[i].State = ::css::beans::PropertyState_DIRECT_VALUE;
+ i++;
+ }
+ //character posture
+ {
+ aAttribs[i].Name = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharPosture"));
+ aAttribs[i].Handle = -1;
+ aAttribs[i].Value = ::css::uno::makeAny( (sal_Int16)aFont.GetItalic() );
+ aAttribs[i].State = ::css::beans::PropertyState_DIRECT_VALUE;
+ i++;
+ }
+ //character relief
+ /*{
+ aAttribs[i].Name = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharRelief"));
+ aAttribs[i].Handle = -1;
+ aAttribs[i].Value = ::css::uno::makeAny( (sal_Int16)aFont.GetRelief() );
+ aAttribs[i].State = ::css::beans::PropertyState_DIRECT_VALUE;
+ i++;
+ }*/
+ //character strikeout
+ {
+ aAttribs[i].Name = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharStrikeout"));
+ aAttribs[i].Handle = -1;
+ aAttribs[i].Value = ::css::uno::makeAny( (sal_Int16)aFont.GetStrikeout() );
+ aAttribs[i].State = ::css::beans::PropertyState_DIRECT_VALUE;
+ i++;
+ }
+ //character underline
+ {
+ aAttribs[i].Name = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharUnderline"));
+ aAttribs[i].Handle = -1;
+ aAttribs[i].Value = ::css::uno::makeAny( (sal_Int16)aFont.GetUnderline() );
+ aAttribs[i].State = ::css::beans::PropertyState_DIRECT_VALUE;
+ i++;
+ }
+ //character weight
+ {
+ aAttribs[i].Name = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CharWeight"));
+ aAttribs[i].Handle = -1;
+ aAttribs[i].Value = ::css::uno::makeAny( (float)aFont.GetWeight() );
+ aAttribs[i].State = ::css::beans::PropertyState_DIRECT_VALUE;
+ i++;
+ }
+ //character alignment
+ {
+ aAttribs[i].Name = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ParaAdjust"));
+ aAttribs[i].Handle = -1;
+ aAttribs[i].Value = ::css::uno::makeAny( (sal_Int16)m_rEngine.GetTextAlign() );
+ aAttribs[i].State = ::css::beans::PropertyState_DIRECT_VALUE;
+ i++;
+ }
::osl::MutexGuard aInternalGuard(GetMutex());
::sal_uLong nNumber = static_cast< ::sal_uLong >(pParagraph->getNumber());
// XXX numeric overflow
- if (nIndex < 0 || nIndex >= m_rEngine.GetText(nNumber).Len())
+ // nIndex can be equal to Len();
+ //if (nIndex < 0 || nIndex >= m_rEngine.GetText(nNumber).Len())
+ if (nIndex < 0 || nIndex > m_rEngine.GetText(nNumber).Len())
throw ::css::lang::IndexOutOfBoundsException(
::rtl::OUString(
RTL_CONSTASCII_USTRINGPARAM(
@@ -1045,7 +1145,31 @@ Document::retrieveCharacterAttributes(
aCharAttrSeq[ aRunIter->first ] = aRunIter->second;
}
- return convertHashMapToSequence( aCharAttrSeq );
+ ::css::beans::PropertyValue* pValues = aAttribs.getArray();
+ for (i = 0; i < AttributeCount; i++,pValues++)
+ {
+ aCharAttrSeq[ pValues->Name ] = *pValues;
+ }
+
+ ::css::uno::Sequence< ::css::beans::PropertyValue > aRes = convertHashMapToSequence( aCharAttrSeq );
+
+ // sort the attributes
+ sal_Int32 nLength = aRes.getLength();
+ const ::css::beans::PropertyValue* pPairs = aRes.getConstArray();
+ sal_Int32* pIndices = new sal_Int32[nLength];
+ for( i = 0; i < nLength; i++ )
+ pIndices[i] = i;
+ std::sort( &pIndices[0], &pIndices[nLength], IndexCompare(pPairs) );
+ // create sorted sequences accoring to index array
+ ::css::uno::Sequence< ::css::beans::PropertyValue > aNewValues( nLength );
+ ::css::beans::PropertyValue* pNewValues = aNewValues.getArray();
+ for( i = 0; i < nLength; i++ )
+ {
+ pNewValues[i] = pPairs[pIndices[i]];
+ }
+ delete[] pIndices;
+
+ return aNewValues;
}
void Document::retrieveDefaultAttributesImpl(
@@ -1416,7 +1540,8 @@ void Document::ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent )
{
// #107179# if our parent is a compound control (e.g. MultiLineEdit),
// suppress the window focus events here
- if ( !m_bCompoundControlChild )
+// IAccessible2 implementation 2009
+ //if ( !m_bCompoundControlChild )
VCLXAccessibleComponent::ProcessWindowEvent( rVclWindowEvent );
}
break;
@@ -1483,7 +1608,26 @@ Document::getAccessibleAtPoint(::css::awt::Point const & rPoint)
}
return 0;
}
+void Document::FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet )
+{
+ VCLXAccessibleComponent::FillAccessibleStateSet( rStateSet );
+ if (!m_rView.IsReadOnly())
+ rStateSet.AddState( ::css::accessibility::AccessibleStateType::EDITABLE );
+}
+void Document::FillAccessibleRelationSet( utl::AccessibleRelationSetHelper& rRelationSet )
+{
+ if( getAccessibleParent()->getAccessibleContext()->getAccessibleRole() == ::css::accessibility::AccessibleRole::SCROLL_PANE )
+ {
+ ::css::uno::Sequence< ::css::uno::Reference< ::css::uno::XInterface > > aSequence(1);
+ aSequence[0] = getAccessibleParent();
+ rRelationSet.AddRelation( ::css::accessibility::AccessibleRelation( ::css::accessibility::AccessibleRelationType::MEMBER_OF, aSequence ) );
+ }
+ else
+ {
+ VCLXAccessibleComponent::FillAccessibleRelationSet(rRelationSet);
+ }
+}
// virtual
void SAL_CALL Document::disposing()
{
@@ -1626,9 +1770,25 @@ IMPL_LINK(Document, WindowEventHandler, ::VclSimpleEvent *, pEvent)
::osl::MutexGuard aInternalGuard(GetMutex());
if (!isAlive())
break;
-
- if (m_aFocused >= m_aVisibleBegin && m_aFocused < m_aVisibleEnd)
+ //to enable the PARAGRAPH to get focus for multiline edit
+ ::sal_Int32 count = getAccessibleChildCount();
+ ::sal_Bool bEmpty = m_aFocused == m_aVisibleEnd && count == 1;
+ if ((m_aFocused >= m_aVisibleBegin && m_aFocused < m_aVisibleEnd) || bEmpty)
{
+ Paragraphs::iterator m_aTemp = bEmpty ? m_aVisibleBegin : m_aFocused;
+ ::rtl::Reference< ParagraphImpl > xParagraph(getParagraph(m_aTemp));
+ if (xParagraph.is())
+ {
+ xParagraph->notifyEvent(
+ ::css::accessibility::AccessibleEventId::
+ STATE_CHANGED,
+ ::css::uno::Any(),
+ ::css::uno::makeAny(
+ ::css::accessibility::AccessibleStateType::
+ FOCUSED));
+ }
+ }
+ /*
::rtl::Reference< ParagraphImpl > xParagraph(
getParagraph(m_aFocused));
if (xParagraph.is())
@@ -1639,7 +1799,7 @@ IMPL_LINK(Document, WindowEventHandler, ::VclSimpleEvent *, pEvent)
::css::uno::makeAny(
::css::accessibility::AccessibleStateType::
FOCUSED));
- }
+ */
break;
}
case VCLEVENT_WINDOW_LOSEFOCUS:
@@ -1647,7 +1807,24 @@ IMPL_LINK(Document, WindowEventHandler, ::VclSimpleEvent *, pEvent)
::osl::MutexGuard aInternalGuard(GetMutex());
if (!isAlive())
break;
+ //to enable the PARAGRAPH to get focus for multiline edit
+ ::sal_Int32 count = getAccessibleChildCount();
+ ::sal_Bool bEmpty = m_aFocused == m_aVisibleEnd && count == 1;
+ if ((m_aFocused >= m_aVisibleBegin && m_aFocused < m_aVisibleEnd) || bEmpty)
+ {
+ Paragraphs::iterator m_aTemp = bEmpty ? m_aVisibleBegin : m_aFocused;
+ ::rtl::Reference< ParagraphImpl > xParagraph(getParagraph(m_aTemp));
+ if (xParagraph.is())
+ xParagraph->notifyEvent(
+ ::css::accessibility::AccessibleEventId::
+ STATE_CHANGED,
+ ::css::uno::makeAny(
+ ::css::accessibility::AccessibleStateType::
+ FOCUSED),
+ ::css::uno::Any());
+ }
+ /*
if (m_aFocused >= m_aVisibleBegin && m_aFocused < m_aVisibleEnd)
{
::rtl::Reference< ParagraphImpl > xParagraph(
@@ -1661,6 +1838,7 @@ IMPL_LINK(Document, WindowEventHandler, ::VclSimpleEvent *, pEvent)
FOCUSED),
::css::uno::Any());
}
+ */
break;
}
}
@@ -2007,6 +2185,124 @@ void Document::handleParagraphNotifications()
}
}
+::sal_Int32 Document::getSelectionType(::sal_Int32 nNewFirstPara, ::sal_Int32 nNewFirstPos, ::sal_Int32 nNewLastPara, ::sal_Int32 nNewLastPos)
+{
+ if (m_nSelectionFirstPara == -1)
+ return -1;
+ ::sal_Int32 Osp = m_nSelectionFirstPara, Osl = m_nSelectionFirstPos, Oep = m_nSelectionLastPara, Oel = m_nSelectionLastPos;
+ ::sal_Int32 Nsp = nNewFirstPara, Nsl = nNewFirstPos, Nep = nNewLastPara, Nel = nNewLastPos;
+ TextPaM Ns(Nsp, sal_uInt16(Nsl));
+ TextPaM Ne(Nep, sal_uInt16(Nel));
+ TextPaM Os(Osp, sal_uInt16(Osl));
+ TextPaM Oe(Oep, sal_uInt16(Oel));
+
+ if (Os == Oe && Ns == Ne)
+ {
+ //only caret moves.
+ return 1;
+ }
+ else if (Os == Oe && Ns != Ne)
+ {
+ //old has no selection but new has selection
+ return 2;
+ }
+ else if (Os != Oe && Ns == Ne)
+ {
+ //old has selection but new has no selection.
+ return 3;
+ }
+ else if (Os != Oe && Ns != Ne && Osp == Nsp && Osl == Nsl)
+ {
+ //both old and new have selections.
+ if (Oep == Nep )
+ {
+ //Send text_selection_change event on Nep
+
+ return 4;
+ }
+ else if (Oep < Nep)
+ {
+ //all the following examples like 1,2->1,3 means that old start select para is 1, old end select para is 2,
+ // then press shift up, the new start select para is 1, new end select para is 3;
+ //for example, 1, 2 -> 1, 3; 4,1 -> 4, 7; 4,1 -> 4, 2; 4,4->4,5
+ if (Nep >= Nsp)
+ {
+ // 1, 2 -> 1, 3; 4, 1 -> 4, 7; 4,4->4,5;
+ if (Oep < Osp)
+ {
+ // 4,1 -> 4,7;
+ return 5;
+ }
+ else if (Oep >= Osp)
+ {
+ // 1, 2 -> 1, 3; 4,4->4,5;
+ return 6;
+ }
+ }
+ else
+ {
+ // 4,1 -> 4,2,
+ if (Oep < Osp)
+ {
+ // 4,1 -> 4,2,
+ return 7;
+ }
+ else if (Oep >= Osp)
+ {
+ // no such condition. Oep > Osp = Nsp > Nep
+ }
+ }
+ }
+ else if (Oep > Nep)
+ {
+ // 3,2 -> 3,1; 4,7 -> 4,1; 4, 7 -> 4,6; 4,4 -> 4,3
+ if (Nep >= Nsp)
+ {
+ // 4,7 -> 4,6
+ if (Oep <= Osp)
+ {
+ //no such condition, Oep<Osp=Nsp <= Nep
+ }
+ else if (Oep > Osp)
+ {
+ // 4,7 ->4,6
+ return 8;
+ }
+ }
+ else
+ {
+ // 3,2 -> 3,1, 4,7 -> 4,1; 4,4->4,3
+ if (Oep <= Osp)
+ {
+ // 3,2 -> 3,1; 4,4->4,3
+ return 9;
+ }
+ else if (Oep > Osp)
+ {
+ // 4,7 -> 4,1
+ return 10;
+ }
+ }
+ }
+ }
+ return -1;
+}
+
+
+void Document::sendEvent(::sal_Int32 start, ::sal_Int32 end, ::sal_Int16 nEventId)
+{
+ Paragraphs::iterator aEnd = ::std::min(m_xParagraphs->begin() + end + 1, m_aVisibleEnd);
+ for (Paragraphs::iterator aIt = ::std::max(m_xParagraphs->begin() + start, m_aVisibleBegin);
+ aIt < aEnd; ++aIt)
+ {
+ ::rtl::Reference< ParagraphImpl > xParagraph(getParagraph(aIt));
+ if (xParagraph.is())
+ xParagraph->notifyEvent(
+ nEventId,
+ ::css::uno::Any(), ::css::uno::Any());
+ }
+}
+
void Document::handleSelectionChangeNotification()
{
::TextSelection const & rSelection = m_rView.GetSelection();
@@ -2048,7 +2344,11 @@ void Document::handleSelectionChangeNotification()
::rtl::Reference< ParagraphImpl > xParagraph(getParagraph(aIt));
if (xParagraph.is())
{
- if (aIt != m_aFocused)
+ //disable the first event when user types in empty field.
+ ::sal_Int32 count = getAccessibleChildCount();
+ ::sal_Bool bEmpty = count > 1;
+ //if (aIt != m_aFocused)
+ if (aIt != m_aFocused && bEmpty)
xParagraph->notifyEvent(
::css::accessibility::AccessibleEventId::
STATE_CHANGED,
@@ -2068,6 +2368,100 @@ void Document::handleSelectionChangeNotification()
}
m_aFocused = aIt;
+ ::sal_Int32 nMin;
+ ::sal_Int32 nMax;
+ ::sal_Int32 ret = getSelectionType(nNewFirstPara, nNewFirstPos, nNewLastPara, nNewLastPos);
+ switch (ret)
+ {
+ case -1:
+ {
+ //no event
+ }
+ break;
+ case 1:
+ {
+ //only caret moved, already handled in above
+ }
+ break;
+ case 2:
+ {
+ //old has no selection but new has selection
+ nMin = ::std::min(nNewFirstPara, nNewLastPara);
+ nMax = ::std::max(nNewFirstPara, nNewLastPara);
+ sendEvent(nMin, nMax, ::css::accessibility::AccessibleEventId::SELECTION_CHANGED);
+ sendEvent(nMin, nMax, ::css::accessibility::AccessibleEventId::TEXT_SELECTION_CHANGED);
+ }
+ break;
+ case 3:
+ {
+ //old has selection but new has no selection.
+ nMin = ::std::min(m_nSelectionFirstPara, m_nSelectionLastPara);
+ nMax = ::std::max(m_nSelectionFirstPara, m_nSelectionLastPara);
+ sendEvent(nMin, nMax, ::css::accessibility::AccessibleEventId::SELECTION_CHANGED);
+ sendEvent(nMin, nMax, ::css::accessibility::AccessibleEventId::TEXT_SELECTION_CHANGED);
+ }
+ break;
+ case 4:
+ {
+ //Send text_selection_change event on Nep
+ sendEvent(nNewLastPara, nNewLastPara, ::css::accessibility::AccessibleEventId::TEXT_SELECTION_CHANGED);
+ }
+ break;
+ case 5:
+ {
+ // 4, 1 -> 4, 7
+ sendEvent(m_nSelectionLastPara, m_nSelectionFirstPara-1, ::css::accessibility::AccessibleEventId::SELECTION_CHANGED);
+ sendEvent(nNewFirstPara+1, nNewLastPara, ::css::accessibility::AccessibleEventId::SELECTION_CHANGED);
+
+ sendEvent(m_nSelectionLastPara, nNewLastPara, ::css::accessibility::AccessibleEventId::TEXT_SELECTION_CHANGED);
+ }
+ break;
+ case 6:
+ {
+ // 1, 2 -> 1, 4; 4,4->4,5;
+ sendEvent(m_nSelectionLastPara+1, nNewLastPara, ::css::accessibility::AccessibleEventId::SELECTION_CHANGED);
+
+ sendEvent(m_nSelectionLastPara, nNewLastPara, ::css::accessibility::AccessibleEventId::TEXT_SELECTION_CHANGED);
+ }
+ break;
+ case 7:
+ {
+ // 4,1 -> 4,3,
+ sendEvent(m_nSelectionLastPara +1, nNewLastPara , ::css::accessibility::AccessibleEventId::SELECTION_CHANGED);
+
+ sendEvent(m_nSelectionLastPara, nNewLastPara, ::css::accessibility::AccessibleEventId::TEXT_SELECTION_CHANGED);
+ }
+ break;
+ case 8:
+ {
+ // 4,7 ->4,5;
+ sendEvent(nNewLastPara + 1, m_nSelectionLastPara, ::css::accessibility::AccessibleEventId::SELECTION_CHANGED);
+
+ sendEvent(nNewLastPara, m_nSelectionLastPara, ::css::accessibility::AccessibleEventId::TEXT_SELECTION_CHANGED);
+ }
+ break;
+ case 9:
+ {
+ // 3,2 -> 3,1; 4,4->4,3
+ sendEvent(nNewLastPara, m_nSelectionLastPara - 1, ::css::accessibility::AccessibleEventId::SELECTION_CHANGED);
+
+ sendEvent(nNewLastPara, m_nSelectionLastPara, ::css::accessibility::AccessibleEventId::TEXT_SELECTION_CHANGED);
+ }
+ break;
+ case 10:
+ {
+ // 4,7 -> 4,1
+ sendEvent(m_nSelectionFirstPara + 1, m_nSelectionLastPara, ::css::accessibility::AccessibleEventId::SELECTION_CHANGED);
+ sendEvent(nNewLastPara, nNewFirstPara - 1, ::css::accessibility::AccessibleEventId::SELECTION_CHANGED);
+
+ sendEvent(nNewLastPara, m_nSelectionLastPara, ::css::accessibility::AccessibleEventId::TEXT_SELECTION_CHANGED);
+ }
+ break;
+ default:
+ break;
+ }
+
+ /*
// Update both old and new selection. (Regardless of how the two selections
// look like, there will always be two ranges to the left and right of the
// overlap---the overlap and/or the range to the right of it possibly being
@@ -2143,7 +2537,7 @@ void Document::handleSelectionChangeNotification()
// notify selection changes
notifySelectionChange( nFirst1, nLast1 );
notifySelectionChange( nFirst2, nLast2 );
-
+ */
m_nSelectionFirstPara = nNewFirstPara;
m_nSelectionFirstPos = nNewFirstPos;
m_nSelectionLastPara = nNewLastPara;
diff --git a/accessibility/source/helper/accessiblestrings.src b/accessibility/source/helper/accessiblestrings.src
index bcff8eb..31b6719 100644
--- a/accessibility/source/helper/accessiblestrings.src
+++ b/accessibility/source/helper/accessiblestrings.src
@@ -25,11 +25,12 @@
#include <accessibility/helper/accessiblestrings.hrc>
#endif
-
+//IAccessibility2 Impplementaton 2009-----
String RID_STR_ACC_ACTION_CLICK
{
- Text = "click";
+ Text = "press";
};
+//-----IAccessibility2 Impplementaton 2009
String RID_STR_ACC_ACTION_TOGGLEPOPUP
{
@@ -66,6 +67,52 @@ String RID_STR_ACC_NAME_BROWSEBUTTON
Text [ en-US ] = "Browse";
};
+String STR_SVT_ACC_ACTION_EXPAND
+{
+ Text [ en-US ] = "Expand" ;
+};
+
+String STR_SVT_ACC_ACTION_COLLAPSE
+{
+ Text [ en-US ] = "Collapse";
+};
+String STR_SVT_ACC_LISTENTRY_SELCTED_STATE
+{
+ Text [ en-US ] = "(Selected)";
+};
+
+String RID_STR_ACC_NAME_PREVIEW
+{
+ Text [ en-US ] = "Preview";
+};
+
+String RID_STR_ACC_ACTION_CHECK
+{
+ Text [ en-US ] = "Check";
+};
+String RID_STR_ACC_ACTION_UNCHECK
+{
+ Text [ en-US ] = "Uncheck";
+};
+String RID_STR_ACC_ACTION_DOUBLE_CLICK
+{
+ Text [ en-US ] = "Double click";
+};
+
+String RID_STR_ACC_SCROLLBAR_NAME_VERTICAL
+{
+ Text [ en-US ] = "Vertical scroll bar";
+};
+String RID_STR_ACC_SCROLLBAR_NAME_HORIZONTAL
+{
+ Text [ en-US ] = "Horizontal scroll bar";
+};
+
+String RID_STR_ACC_PANEL_DESCRIPTION
+{
+ Text [ en-US ] = "Please press enter to go into child control for more operations";
+};
+
String RID_STR_ACC_DESC_PANELDECL_TABBAR
{
Text [ en-US ] = "Panel Deck Tab Bar";
diff --git a/accessibility/source/helper/characterattributeshelper.cxx b/accessibility/source/helper/characterattributeshelper.cxx
index f5e1fa6..3a04c9a 100644
--- a/accessibility/source/helper/characterattributeshelper.cxx
+++ b/accessibility/source/helper/characterattributeshelper.cxx
@@ -35,6 +35,8 @@ using namespace ::com::sun::star::beans;
CharacterAttributesHelper::CharacterAttributesHelper( const Font& rFont, sal_Int32 nBackColor, sal_Int32 nColor )
{
+ // MT: IA2 CWS commented out CharFontCharSet, CharFontFamily, CharFontPitch, CharFontStyleName, CharScaleWidth - any AT interested in this?
+
m_aAttributeMap.insert( AttributeMap::value_type( ::rtl::OUString::createFromAscii( "CharBackColor" ), makeAny( (sal_Int32) nBackColor ) ) );
m_aAttributeMap.insert( AttributeMap::value_type( ::rtl::OUString::createFromAscii( "CharColor" ), makeAny( (sal_Int32) nColor ) ) );
m_aAttributeMap.insert( AttributeMap::value_type( ::rtl::OUString::createFromAscii( "CharFontCharSet" ), makeAny( (sal_Int16) rFont.GetCharSet() ) ) );
@@ -47,6 +49,9 @@ CharacterAttributesHelper::CharacterAttributesHelper( const Font& rFont, sal_Int
m_aAttributeMap.insert( AttributeMap::value_type( ::rtl::OUString::createFromAscii( "CharStrikeout" ), makeAny( (sal_Int16) rFont.GetStrikeout() ) ) );
m_aAttributeMap.insert( AttributeMap::value_type( ::rtl::OUString::createFromAscii( "CharUnderline" ), makeAny( (sal_Int16) rFont.GetUnderline() ) ) );
m_aAttributeMap.insert( AttributeMap::value_type( ::rtl::OUString::createFromAscii( "CharWeight" ), makeAny( (float) rFont.GetWeight() ) ) );
+ m_aAttributeMap.insert( AttributeMap::value_type( ::rtl::OUString::createFromAscii( "CharPosture" ), makeAny( (sal_Int16)rFont.GetItalic() ) ) );
+ // MT: Introduced with IA2 CWS, but adjustment is not a char attr...
+ // m_aAttributeMap.insert( AttributeMap::value_type( ::rtl::OUString::createFromAscii( "ParaAdjust" ), makeAny( nAjust ) ) );
}
// -----------------------------------------------------------------------------
diff --git a/accessibility/source/standard/accessiblemenubasecomponent.cxx b/accessibility/source/standard/accessiblemenubasecomponent.cxx
index 4b08b75..e52d95c 100644
--- a/accessibility/source/standard/accessiblemenubasecomponent.cxx
+++ b/accessibility/source/standard/accessiblemenubasecomponent.cxx
@@ -134,15 +134,20 @@ void OAccessibleMenuBaseComponent::SetEnabled( sal_Bool bEnabled )
{
if ( m_bEnabled != bEnabled )
{
+ sal_Int16 nStateType=AccessibleStateType::ENABLED;
+ if (IsMenuHideDisabledEntries())
+ {
+ nStateType = AccessibleStateType::VISIBLE;
+ }
Any aOldValue[2], aNewValue[2];
if ( m_bEnabled )
{
aOldValue[0] <<= AccessibleStateType::SENSITIVE;
- aOldValue[1] <<= AccessibleStateType::ENABLED;
+ aOldValue[1] <<= nStateType;
}
else
{
- aNewValue[0] <<= AccessibleStateType::ENABLED;
+ aNewValue[0] <<= nStateType;
aNewValue[1] <<= AccessibleStateType::SENSITIVE;
}
m_bEnabled = bEnabled;
@@ -777,3 +782,9 @@ Reference< XAccessibleStateSet > OAccessibleMenuBaseComponent::getAccessibleStat
}
// -----------------------------------------------------------------------------
+
+sal_Bool OAccessibleMenuBaseComponent::IsMenuHideDisabledEntries()
+{
+ return sal_False;
+}
+
diff --git a/accessibility/source/standard/accessiblemenuitemcomponent.cxx b/accessibility/source/standard/accessiblemenuitemcomponent.cxx
index ac46d89..f288d64 100644
--- a/accessibility/source/standard/accessiblemenuitemcomponent.cxx
+++ b/accessibility/source/standard/accessiblemenuitemcomponent.cxx
@@ -208,6 +208,18 @@ void OAccessibleMenuItemComponent::SetAccessibleName( const ::rtl::OUString& sAc
if ( sName.getLength() == 0 )
sName = m_pParent->GetItemText( nItemId );
sName = OutputDevice::GetNonMnemonicString( sName );
+
+ // IA2 CWS, MT: Is adding 5 blanks really before the accelname reasonable? And which Platform / Accessibility API does need it this way? ATK has API for this...
+ // Also, IAccessible2 has IAccessibleAction::keyBinding, so I doubt that this is needed.
+ // But if so, it needs to move to the IA2 bridge.
+ /*
+ ::rtl::OUString sAccName = m_pParent->GetAccelKey( nItemId ).GetName();
+ if ( sAccName.getLength() )
+ {
+ sName += ::rtl::OUString::createFromAscii(" ");
+ sName += aAccelName;
+ }
+ */
}
return sName;
@@ -240,7 +252,8 @@ void OAccessibleMenuItemComponent::SetItemText( const ::rtl::OUString& sItemText
void OAccessibleMenuItemComponent::FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet )
{
- if ( IsEnabled() )
+ sal_Bool bEnabled = IsEnabled();
+ if ( bEnabled )
{
rStateSet.AddState( AccessibleStateType::ENABLED );
rStateSet.AddState( AccessibleStateType::SENSITIVE );
@@ -248,10 +261,10 @@ void OAccessibleMenuItemComponent::FillAccessibleStateSet( utl::AccessibleStateS
if ( IsVisible() )
{
- rStateSet.AddState( AccessibleStateType::VISIBLE );
rStateSet.AddState( AccessibleStateType::SHOWING );
+ if( !IsMenuHideDisabledEntries() || bEnabled )
+ rStateSet.AddState( AccessibleStateType::VISIBLE );
}
-
rStateSet.AddState( AccessibleStateType::OPAQUE );
}
@@ -497,3 +510,23 @@ Reference< awt::XFont > OAccessibleMenuItemComponent::getFont( ) throw (Runtime
}
// -----------------------------------------------------------------------------
+
+sal_Bool OAccessibleMenuItemComponent::IsMenuHideDisabledEntries()
+{
+ if (m_pParent )
+ {
+ if( m_pParent->GetMenuFlags() & MENU_FLAG_HIDEDISABLEDENTRIES)
+ {
+ return sal_True;
+ }
+ // IA2 CWS, but the menus shouldn't have different flags, and even if so, the GetStartedFromMenu shouldn't matter
+ /*
+ else if (m_pParent->GetStartedFromMenu() &&
+ m_pParent->GetStartedFromMenu()->GetMenuFlags() & MENU_FLAG_HIDEDISABLEDENTRIES)
+ {
+ return sal_True;
+ }
+ */
+ }
+ return sal_False;
+}
diff --git a/accessibility/source/standard/vclxaccessiblebox.cxx b/accessibility/source/standard/vclxaccessiblebox.cxx
index 360673e..2ae5be1 100644
--- a/accessibility/source/standard/vclxaccessiblebox.cxx
+++ b/accessibility/source/standard/vclxaccessiblebox.cxx
@@ -116,11 +116,98 @@ void VCLXAccessibleBox::ProcessWindowEvent (const VclWindowEvent& rVclWindowEven
{
switch ( rVclWindowEvent.GetId() )
{
+ case VCLEVENT_LISTBOX_SELECT:
+ case VCLEVENT_LISTBOX_FOCUSITEMCHANGED:
+
+ {
+ // Forward the call to the list child.
... etc. - the rest is truncated
More information about the Libreoffice-commits
mailing list