summaryrefslogtreecommitdiff
path: root/sw/source
diff options
context:
space:
mode:
Diffstat (limited to 'sw/source')
-rw-r--r--sw/source/core/SwNumberTree/SwNodeNum.cxx418
-rw-r--r--sw/source/core/SwNumberTree/SwNumberTree.cxx1321
-rw-r--r--sw/source/core/access/acccell.cxx378
-rw-r--r--sw/source/core/access/acccell.hxx139
-rw-r--r--sw/source/core/access/acccontext.cxx1584
-rw-r--r--sw/source/core/access/acccontext.hxx433
-rw-r--r--sw/source/core/access/accdoc.cxx514
-rw-r--r--sw/source/core/access/accdoc.hxx213
-rw-r--r--sw/source/core/access/accembedded.cxx100
-rw-r--r--sw/source/core/access/accembedded.hxx72
-rw-r--r--sw/source/core/access/accfootnote.cxx158
-rw-r--r--sw/source/core/access/accfootnote.hxx90
-rw-r--r--sw/source/core/access/accframe.cxx496
-rw-r--r--sw/source/core/access/accframe.hxx176
-rw-r--r--sw/source/core/access/accframebase.cxx282
-rw-r--r--sw/source/core/access/accframebase.hxx74
-rw-r--r--sw/source/core/access/accfrmobj.cxx430
-rw-r--r--sw/source/core/access/accfrmobj.hxx95
-rw-r--r--sw/source/core/access/accfrmobjmap.cxx171
-rw-r--r--sw/source/core/access/accfrmobjmap.hxx98
-rw-r--r--sw/source/core/access/accfrmobjslist.cxx175
-rw-r--r--sw/source/core/access/accfrmobjslist.hxx148
-rw-r--r--sw/source/core/access/accgraphic.cxx100
-rw-r--r--sw/source/core/access/accgraphic.hxx72
-rw-r--r--sw/source/core/access/accheaderfooter.cxx146
-rw-r--r--sw/source/core/access/accheaderfooter.hxx85
-rw-r--r--sw/source/core/access/acchyperlink.cxx192
-rw-r--r--sw/source/core/access/acchyperlink.hxx93
-rw-r--r--sw/source/core/access/acchypertextdata.cxx58
-rw-r--r--sw/source/core/access/acchypertextdata.hxx53
-rw-r--r--sw/source/core/access/accmap.cxx2781
-rw-r--r--sw/source/core/access/accnotextframe.cxx262
-rw-r--r--sw/source/core/access/accnotextframe.hxx110
-rw-r--r--sw/source/core/access/accpage.cxx201
-rw-r--r--sw/source/core/access/accpage.hxx99
-rw-r--r--sw/source/core/access/accpara.cxx2611
-rw-r--r--sw/source/core/access/accpara.hxx435
-rw-r--r--sw/source/core/access/accportions.cxx750
-rw-r--r--sw/source/core/access/accportions.hxx177
-rw-r--r--sw/source/core/access/accpreview.cxx97
-rw-r--r--sw/source/core/access/accpreview.hxx78
-rw-r--r--sw/source/core/access/accselectionhelper.cxx332
-rw-r--r--sw/source/core/access/accselectionhelper.hxx83
-rw-r--r--sw/source/core/access/acctable.cxx1755
-rw-r--r--sw/source/core/access/acctable.hxx331
-rw-r--r--sw/source/core/access/acctextframe.cxx278
-rw-r--r--sw/source/core/access/acctextframe.hxx116
-rw-r--r--sw/source/core/access/parachangetrackinginfo.cxx227
-rw-r--r--sw/source/core/access/parachangetrackinginfo.hxx58
-rw-r--r--sw/source/core/access/textmarkuphelper.cxx232
-rw-r--r--sw/source/core/access/textmarkuphelper.hxx84
-rw-r--r--sw/source/core/attr/calbck.cxx567
-rw-r--r--sw/source/core/attr/cellatr.cxx265
-rw-r--r--sw/source/core/attr/fmtfollowtextflow.cxx40
-rw-r--r--sw/source/core/attr/fmtwrapinfluenceonobjpos.cxx164
-rw-r--r--sw/source/core/attr/format.cxx677
-rw-r--r--sw/source/core/attr/hints.cxx296
-rw-r--r--sw/source/core/attr/swatrset.cxx395
-rw-r--r--sw/source/core/bastyp/SwSmartTagMgr.cxx85
-rw-r--r--sw/source/core/bastyp/bparr.cxx582
-rw-r--r--sw/source/core/bastyp/breakit.cxx172
-rw-r--r--sw/source/core/bastyp/calc.cxx1745
-rw-r--r--sw/source/core/bastyp/checkit.cxx53
-rw-r--r--sw/source/core/bastyp/index.cxx463
-rw-r--r--sw/source/core/bastyp/init.cxx902
-rw-r--r--sw/source/core/bastyp/ring.cxx112
-rw-r--r--sw/source/core/bastyp/swcache.cxx570
-rw-r--r--sw/source/core/bastyp/swrect.cxx308
-rw-r--r--sw/source/core/bastyp/swregion.cxx247
-rw-r--r--sw/source/core/bastyp/swtypes.cxx136
-rw-r--r--sw/source/core/bastyp/tabcol.cxx143
-rw-r--r--sw/source/core/crsr/BlockCursor.cxx108
-rw-r--r--sw/source/core/crsr/BlockCursor.hxx39
-rw-r--r--sw/source/core/crsr/IBlockCursor.hxx97
-rw-r--r--sw/source/core/crsr/bookmrk.cxx371
-rw-r--r--sw/source/core/crsr/callnk.cxx265
-rw-r--r--sw/source/core/crsr/callnk.hxx60
-rw-r--r--sw/source/core/crsr/crbm.cxx263
-rw-r--r--sw/source/core/crsr/crossrefbookmark.cxx104
-rw-r--r--sw/source/core/crsr/crsrsh.cxx3439
-rw-r--r--sw/source/core/crsr/crstrvl.cxx2194
-rw-r--r--sw/source/core/crsr/crstrvl1.cxx107
-rw-r--r--sw/source/core/crsr/findattr.cxx1273
-rw-r--r--sw/source/core/crsr/findcoll.cxx124
-rw-r--r--sw/source/core/crsr/findfmt.cxx86
-rw-r--r--sw/source/core/crsr/findtxt.cxx713
-rw-r--r--sw/source/core/crsr/pam.cxx1205
-rw-r--r--sw/source/core/crsr/paminit.cxx134
-rw-r--r--sw/source/core/crsr/swcrsr.cxx2360
-rw-r--r--sw/source/core/crsr/trvlcol.cxx135
-rw-r--r--sw/source/core/crsr/trvlfnfl.cxx361
-rw-r--r--sw/source/core/crsr/trvlreg.cxx293
-rw-r--r--sw/source/core/crsr/trvltbl.cxx932
-rw-r--r--sw/source/core/crsr/unocrsr.cxx266
-rw-r--r--sw/source/core/crsr/viscrs.cxx758
-rw-r--r--sw/source/core/doc/SwStyleNameMapper.cxx1146
-rw-r--r--sw/source/core/doc/acmplwrd.cxx443
-rw-r--r--sw/source/core/doc/dbgoutsw.cxx1042
-rw-r--r--sw/source/core/doc/doc.cxx2737
-rw-r--r--sw/source/core/doc/docbasic.cxx262
-rw-r--r--sw/source/core/doc/docbm.cxx1740
-rw-r--r--sw/source/core/doc/docchart.cxx278
-rw-r--r--sw/source/core/doc/doccomp.cxx1848
-rw-r--r--sw/source/core/doc/doccorr.cxx360
-rw-r--r--sw/source/core/doc/docdde.cxx418
-rw-r--r--sw/source/core/doc/docdesc.cxx907
-rw-r--r--sw/source/core/doc/docdraw.cxx1041
-rw-r--r--sw/source/core/doc/docedt.cxx2801
-rw-r--r--sw/source/core/doc/docfld.cxx2703
-rw-r--r--sw/source/core/doc/docfly.cxx1015
-rw-r--r--sw/source/core/doc/docfmt.cxx2600
-rw-r--r--sw/source/core/doc/docftn.cxx529
-rw-r--r--sw/source/core/doc/docglbl.cxx827
-rw-r--r--sw/source/core/doc/docglos.cxx203
-rw-r--r--sw/source/core/doc/doclay.cxx2366
-rw-r--r--sw/source/core/doc/docnew.cxx1204
-rw-r--r--sw/source/core/doc/docnum.cxx2640
-rw-r--r--sw/source/core/doc/docredln.cxx3853
-rw-r--r--sw/source/core/doc/docruby.cxx343
-rw-r--r--sw/source/core/doc/docsort.cxx986
-rw-r--r--sw/source/core/doc/docstat.cxx71
-rw-r--r--sw/source/core/doc/doctxm.cxx2386
-rw-r--r--sw/source/core/doc/docxforms.cxx126
-rw-r--r--sw/source/core/doc/extinput.cxx302
-rw-r--r--sw/source/core/doc/fmtcol.cxx709
-rw-r--r--sw/source/core/doc/ftnidx.cxx401
-rw-r--r--sw/source/core/doc/gctable.cxx454
-rw-r--r--sw/source/core/doc/htmltbl.cxx1844
-rw-r--r--sw/source/core/doc/lineinfo.cxx159
-rw-r--r--sw/source/core/doc/list.cxx293
-rw-r--r--sw/source/core/doc/notxtfrm.cxx1046
-rw-r--r--sw/source/core/doc/number.cxx1457
-rw-r--r--sw/source/core/doc/poolfmt.cxx2507
-rw-r--r--sw/source/core/doc/sortopt.cxx96
-rw-r--r--sw/source/core/doc/swserv.cxx359
-rw-r--r--sw/source/core/doc/swstylemanager.cxx172
-rw-r--r--sw/source/core/doc/swstylemanager.hxx37
-rw-r--r--sw/source/core/doc/tblafmt.cxx1106
-rw-r--r--sw/source/core/doc/tblcpy.cxx1077
-rw-r--r--sw/source/core/doc/tblrwcl.cxx4712
-rw-r--r--sw/source/core/doc/visiturl.cxx141
-rw-r--r--sw/source/core/docnode/cancellablejob.cxx43
-rw-r--r--sw/source/core/docnode/cancellablejob.hxx56
-rw-r--r--sw/source/core/docnode/finalthreadmanager.cxx505
-rw-r--r--sw/source/core/docnode/ndcopy.cxx1620
-rw-r--r--sw/source/core/docnode/ndindex.cxx166
-rw-r--r--sw/source/core/docnode/ndnotxt.cxx308
-rw-r--r--sw/source/core/docnode/ndnum.cxx148
-rw-r--r--sw/source/core/docnode/ndsect.cxx1479
-rw-r--r--sw/source/core/docnode/ndtbl.cxx4563
-rw-r--r--sw/source/core/docnode/ndtbl1.cxx1598
-rw-r--r--sw/source/core/docnode/node.cxx2028
-rw-r--r--sw/source/core/docnode/node2lay.cxx474
-rw-r--r--sw/source/core/docnode/nodes.cxx2508
-rw-r--r--sw/source/core/docnode/observablethread.cxx100
-rw-r--r--sw/source/core/docnode/pausethreadstarting.cxx58
-rw-r--r--sw/source/core/docnode/retrievedinputstreamdata.cxx169
-rw-r--r--sw/source/core/docnode/retrieveinputstream.cxx87
-rw-r--r--sw/source/core/docnode/retrieveinputstreamconsumer.cxx74
-rw-r--r--sw/source/core/docnode/section.cxx1777
-rw-r--r--sw/source/core/docnode/swbaslnk.cxx502
-rw-r--r--sw/source/core/docnode/swthreadjoiner.cxx64
-rw-r--r--sw/source/core/docnode/swthreadmanager.cxx90
-rw-r--r--sw/source/core/docnode/threadlistener.cxx59
-rw-r--r--sw/source/core/docnode/threadmanager.cxx260
-rw-r--r--sw/source/core/draw/dcontact.cxx2663
-rw-r--r--sw/source/core/draw/dflyobj.cxx957
-rw-r--r--sw/source/core/draw/dobjfac.cxx58
-rw-r--r--sw/source/core/draw/dpage.cxx254
-rw-r--r--sw/source/core/draw/drawdoc.cxx234
-rw-r--r--sw/source/core/draw/dview.cxx1071
-rw-r--r--sw/source/core/edit/acorrect.cxx545
-rw-r--r--sw/source/core/edit/autofmt.cxx2754
-rw-r--r--sw/source/core/edit/edatmisc.cxx181
-rw-r--r--sw/source/core/edit/edattr.cxx630
-rw-r--r--sw/source/core/edit/eddel.cxx358
-rw-r--r--sw/source/core/edit/edfcol.cxx161
-rw-r--r--sw/source/core/edit/edfld.cxx557
-rw-r--r--sw/source/core/edit/edfldexp.cxx99
-rw-r--r--sw/source/core/edit/edfmt.cxx200
-rw-r--r--sw/source/core/edit/edglbldc.cxx412
-rw-r--r--sw/source/core/edit/edglss.cxx373
-rw-r--r--sw/source/core/edit/editsh.cxx1167
-rw-r--r--sw/source/core/edit/edlingu.cxx1927
-rw-r--r--sw/source/core/edit/ednumber.cxx801
-rw-r--r--sw/source/core/edit/edredln.cxx152
-rw-r--r--sw/source/core/edit/edsect.cxx455
-rw-r--r--sw/source/core/edit/edtab.cxx493
-rw-r--r--sw/source/core/edit/edtox.cxx467
-rw-r--r--sw/source/core/edit/edundo.cxx260
-rw-r--r--sw/source/core/edit/edws.cxx367
-rw-r--r--sw/source/core/fields/authfld.cxx756
-rw-r--r--sw/source/core/fields/cellfml.cxx1215
-rw-r--r--sw/source/core/fields/chpfld.cxx280
-rw-r--r--sw/source/core/fields/dbfld.cxx995
-rw-r--r--sw/source/core/fields/ddefld.cxx443
-rw-r--r--sw/source/core/fields/ddetbl.cxx199
-rw-r--r--sw/source/core/fields/docufld.cxx2603
-rw-r--r--sw/source/core/fields/expfld.cxx1300
-rw-r--r--sw/source/core/fields/fldbas.cxx776
-rw-r--r--sw/source/core/fields/flddat.cxx270
-rw-r--r--sw/source/core/fields/flddropdown.cxx285
-rw-r--r--sw/source/core/fields/fldlst.cxx232
-rw-r--r--sw/source/core/fields/macrofld.cxx259
-rw-r--r--sw/source/core/fields/postithelper.cxx208
-rw-r--r--sw/source/core/fields/reffld.cxx1074
-rw-r--r--sw/source/core/fields/scrptfld.cxx147
-rw-r--r--sw/source/core/fields/tblcalc.cxx247
-rw-r--r--sw/source/core/fields/textapi.cxx194
-rw-r--r--sw/source/core/fields/usrfld.cxx369
-rw-r--r--sw/source/core/frmedt/fecopy.cxx1539
-rw-r--r--sw/source/core/frmedt/fedesc.cxx283
-rw-r--r--sw/source/core/frmedt/fefly1.cxx2207
-rw-r--r--sw/source/core/frmedt/feflyole.cxx151
-rw-r--r--sw/source/core/frmedt/feshview.cxx3111
-rw-r--r--sw/source/core/frmedt/fetab.cxx2509
-rw-r--r--sw/source/core/frmedt/fews.cxx1355
-rw-r--r--sw/source/core/frmedt/tblsel.cxx2703
-rw-r--r--sw/source/core/graphic/grfatr.cxx359
-rw-r--r--sw/source/core/graphic/ndgrf.cxx1205
-rw-r--r--sw/source/core/inc/GetMetricVal.hxx57
-rw-r--r--sw/source/core/inc/MarkManager.hxx100
-rw-r--r--sw/source/core/inc/SwGrammarMarkUp.hxx77
-rw-r--r--sw/source/core/inc/SwPortionHandler.hxx104
-rw-r--r--sw/source/core/inc/SwUndoFmt.hxx255
-rw-r--r--sw/source/core/inc/SwUndoPageDesc.hxx96
-rw-r--r--sw/source/core/inc/SwUndoTOXChange.hxx52
-rw-r--r--sw/source/core/inc/SwXMLBlockExport.hxx76
-rw-r--r--sw/source/core/inc/SwXMLBlockImport.hxx92
-rw-r--r--sw/source/core/inc/SwXMLBlockListContext.hxx129
-rw-r--r--sw/source/core/inc/SwXMLTextBlocks.hxx114
-rw-r--r--sw/source/core/inc/SwXTextDefaults.hxx85
-rw-r--r--sw/source/core/inc/UndoAttribute.hxx288
-rw-r--r--sw/source/core/inc/UndoBookmark.hxx83
-rw-r--r--sw/source/core/inc/UndoCore.hxx266
-rw-r--r--sw/source/core/inc/UndoDelete.hxx115
-rw-r--r--sw/source/core/inc/UndoDraw.hxx150
-rw-r--r--sw/source/core/inc/UndoInsert.hxx235
-rw-r--r--sw/source/core/inc/UndoManager.hxx124
-rw-r--r--sw/source/core/inc/UndoNumbering.hxx150
-rw-r--r--sw/source/core/inc/UndoOverwrite.hxx105
-rw-r--r--sw/source/core/inc/UndoRedline.hxx145
-rw-r--r--sw/source/core/inc/UndoSection.hxx82
-rw-r--r--sw/source/core/inc/UndoSort.hxx97
-rw-r--r--sw/source/core/inc/UndoSplitMove.hxx96
-rw-r--r--sw/source/core/inc/UndoTable.hxx391
-rw-r--r--sw/source/core/inc/acorrect.hxx126
-rw-r--r--sw/source/core/inc/anchoredobjectposition.hxx474
-rw-r--r--sw/source/core/inc/ascharanchoredobjectposition.hxx174
-rw-r--r--sw/source/core/inc/attrhint.hxx44
-rw-r--r--sw/source/core/inc/blink.hxx91
-rw-r--r--sw/source/core/inc/bodyfrm.hxx54
-rw-r--r--sw/source/core/inc/bookmrk.hxx266
-rw-r--r--sw/source/core/inc/cellfrm.hxx75
-rw-r--r--sw/source/core/inc/cntfrm.hxx153
-rw-r--r--sw/source/core/inc/colfrm.hxx45
-rw-r--r--sw/source/core/inc/crossrefbookmark.hxx102
-rw-r--r--sw/source/core/inc/dbg_lay.hxx123
-rw-r--r--sw/source/core/inc/dbgloop.hxx77
-rw-r--r--sw/source/core/inc/dflyobj.hxx143
-rw-r--r--sw/source/core/inc/docfld.hxx195
-rw-r--r--sw/source/core/inc/docsort.hxx180
-rw-r--r--sw/source/core/inc/doctxm.hxx148
-rw-r--r--sw/source/core/inc/drawdev.hxx141
-rw-r--r--sw/source/core/inc/drawfont.hxx628
-rw-r--r--sw/source/core/inc/dview.hxx136
-rw-r--r--sw/source/core/inc/environmentofanchoredobject.hxx106
-rw-r--r--sw/source/core/inc/fieldhint.hxx44
-rw-r--r--sw/source/core/inc/finalthreadmanager.hxx108
-rw-r--r--sw/source/core/inc/flowfrm.hxx255
-rw-r--r--sw/source/core/inc/flyfrm.hxx288
-rw-r--r--sw/source/core/inc/flyfrms.hxx260
-rw-r--r--sw/source/core/inc/fntcache.hxx163
-rw-r--r--sw/source/core/inc/frame.hxx1324
-rw-r--r--sw/source/core/inc/frminf.hxx87
-rw-r--r--sw/source/core/inc/frmtool.hxx579
-rw-r--r--sw/source/core/inc/ftnboss.hxx140
-rw-r--r--sw/source/core/inc/ftnfrm.hxx153
-rw-r--r--sw/source/core/inc/hffrm.hxx69
-rw-r--r--sw/source/core/inc/ifinishedthreadlistener.hxx58
-rw-r--r--sw/source/core/inc/ithreadlistenerowner.hxx61
-rw-r--r--sw/source/core/inc/layact.hxx242
-rw-r--r--sw/source/core/inc/laycache.hxx80
-rw-r--r--sw/source/core/inc/layfrm.hxx209
-rw-r--r--sw/source/core/inc/layouter.hxx185
-rw-r--r--sw/source/core/inc/movedfwdfrmsbyobjpos.hxx73
-rw-r--r--sw/source/core/inc/mvsave.hxx215
-rw-r--r--sw/source/core/inc/node2lay.hxx84
-rw-r--r--sw/source/core/inc/noteurl.hxx78
-rw-r--r--sw/source/core/inc/notxtfrm.hxx80
-rw-r--r--sw/source/core/inc/objectformatter.hxx212
-rw-r--r--sw/source/core/inc/observablethread.hxx106
-rw-r--r--sw/source/core/inc/pagedeschint.hxx46
-rw-r--r--sw/source/core/inc/pagefrm.hrc45
-rw-r--r--sw/source/core/inc/pagefrm.hxx490
-rw-r--r--sw/source/core/inc/pamtyp.hxx105
-rw-r--r--sw/source/core/inc/prevwpage.hxx62
-rw-r--r--sw/source/core/inc/ptqueue.hxx65
-rw-r--r--sw/source/core/inc/retrievedinputstreamdata.hxx110
-rw-r--r--sw/source/core/inc/retrieveinputstream.hxx66
-rw-r--r--sw/source/core/inc/retrieveinputstreamconsumer.hxx69
-rw-r--r--sw/source/core/inc/rolbck.hxx439
-rw-r--r--sw/source/core/inc/rootfrm.hxx375
-rw-r--r--sw/source/core/inc/rowfrm.hxx114
-rw-r--r--sw/source/core/inc/scriptinfo.hxx436
-rw-r--r--sw/source/core/inc/sectfrm.hxx153
-rw-r--r--sw/source/core/inc/setmapvirtdev.hxx73
-rw-r--r--sw/source/core/inc/sortedobjs.hxx100
-rw-r--r--sw/source/core/inc/sortedobjsimpl.hxx64
-rw-r--r--sw/source/core/inc/swblocks.hxx148
-rw-r--r--sw/source/core/inc/swcache.hxx303
-rw-r--r--sw/source/core/inc/swfntcch.hxx102
-rw-r--r--sw/source/core/inc/swfont.hxx899
-rw-r--r--sw/source/core/inc/swselectionlist.hxx100
-rw-r--r--sw/source/core/inc/swthreadjoiner.hxx54
-rw-r--r--sw/source/core/inc/swthreadmanager.hxx86
-rw-r--r--sw/source/core/inc/tabfrm.hxx238
-rw-r--r--sw/source/core/inc/tblrwcl.hxx232
-rw-r--r--sw/source/core/inc/textapi.hxx73
-rw-r--r--sw/source/core/inc/threadlistener.hxx65
-rw-r--r--sw/source/core/inc/threadmanager.hxx175
-rw-r--r--sw/source/core/inc/tocntntanchoredobjectposition.hxx99
-rw-r--r--sw/source/core/inc/tolayoutanchoredobjectposition.hxx63
-rw-r--r--sw/source/core/inc/toxhlp.hxx79
-rw-r--r--sw/source/core/inc/txmsrt.hxx297
-rw-r--r--sw/source/core/inc/txtfrm.hxx795
-rw-r--r--sw/source/core/inc/txttypes.hxx106
-rw-r--r--sw/source/core/inc/undoflystrattr.hxx59
-rw-r--r--sw/source/core/inc/unofldmid.h74
-rw-r--r--sw/source/core/inc/unometa.hxx370
-rw-r--r--sw/source/core/inc/viewimp.hxx353
-rw-r--r--sw/source/core/inc/visiturl.hxx48
-rw-r--r--sw/source/core/inc/wrong.hxx167
-rw-r--r--sw/source/core/layout/anchoreddrawobject.cxx900
-rw-r--r--sw/source/core/layout/anchoredobject.cxx1062
-rw-r--r--sw/source/core/layout/atrfrm.cxx3299
-rw-r--r--sw/source/core/layout/calcmove.cxx2116
-rw-r--r--sw/source/core/layout/colfrm.cxx478
-rw-r--r--sw/source/core/layout/dbg_lay.cxx868
-rw-r--r--sw/source/core/layout/findfrm.cxx1793
-rw-r--r--sw/source/core/layout/flowfrm.cxx2672
-rw-r--r--sw/source/core/layout/fly.cxx2882
-rw-r--r--sw/source/core/layout/flycnt.cxx1541
-rw-r--r--sw/source/core/layout/flyincnt.cxx338
-rw-r--r--sw/source/core/layout/flylay.cxx1319
-rw-r--r--sw/source/core/layout/flypos.cxx114
-rw-r--r--sw/source/core/layout/frmtool.cxx3604
-rw-r--r--sw/source/core/layout/ftnfrm.cxx3241
-rw-r--r--sw/source/core/layout/hffrm.cxx796
-rw-r--r--sw/source/core/layout/layact.cxx2546
-rw-r--r--sw/source/core/layout/laycache.cxx1338
-rw-r--r--sw/source/core/layout/layhelp.hxx240
-rw-r--r--sw/source/core/layout/layouter.cxx565
-rw-r--r--sw/source/core/layout/movedfwdfrmsbyobjpos.cxx108
-rw-r--r--sw/source/core/layout/newfrm.cxx679
-rw-r--r--sw/source/core/layout/objectformatter.cxx580
-rw-r--r--sw/source/core/layout/objectformatterlayfrm.cxx216
-rw-r--r--sw/source/core/layout/objectformatterlayfrm.hxx84
-rw-r--r--sw/source/core/layout/objectformattertxtfrm.cxx814
-rw-r--r--sw/source/core/layout/objectformattertxtfrm.hxx201
-rw-r--r--sw/source/core/layout/objstmpconsiderwrapinfl.cxx76
-rw-r--r--sw/source/core/layout/objstmpconsiderwrapinfl.hxx50
-rw-r--r--sw/source/core/layout/pagechg.cxx2454
-rw-r--r--sw/source/core/layout/pagedesc.cxx487
-rw-r--r--sw/source/core/layout/pagefrm.src7
-rw-r--r--sw/source/core/layout/paintfrm.cxx6701
-rw-r--r--sw/source/core/layout/sectfrm.cxx2779
-rw-r--r--sw/source/core/layout/softpagebreak.cxx157
-rw-r--r--sw/source/core/layout/sortedobjs.cxx79
-rw-r--r--sw/source/core/layout/sortedobjsimpl.cxx312
-rw-r--r--sw/source/core/layout/ssfrm.cxx814
-rw-r--r--sw/source/core/layout/swselectionlist.cxx96
-rw-r--r--sw/source/core/layout/tabfrm.cxx5798
-rw-r--r--sw/source/core/layout/trvlfrm.cxx2611
-rw-r--r--sw/source/core/layout/unusedf.cxx92
-rw-r--r--sw/source/core/layout/virtoutp.cxx258
-rw-r--r--sw/source/core/layout/virtoutp.hxx77
-rw-r--r--sw/source/core/layout/wsfrm.cxx3967
-rw-r--r--sw/source/core/objectpositioning/anchoredobjectposition.cxx1100
-rw-r--r--sw/source/core/objectpositioning/ascharanchoredobjectposition.cxx458
-rw-r--r--sw/source/core/objectpositioning/environmentofanchoredobject.cxx116
-rw-r--r--sw/source/core/objectpositioning/tocntntanchoredobjectposition.cxx1129
-rw-r--r--sw/source/core/objectpositioning/tolayoutanchoredobjectposition.cxx257
-rw-r--r--sw/source/core/ole/ndole.cxx997
-rw-r--r--sw/source/core/para/paratr.cxx278
-rw-r--r--sw/source/core/sw3io/sw3convert.cxx413
-rw-r--r--sw/source/core/sw3io/swacorr.cxx105
-rw-r--r--sw/source/core/swg/SwXMLBlockExport.cxx145
-rw-r--r--sw/source/core/swg/SwXMLBlockImport.cxx119
-rw-r--r--sw/source/core/swg/SwXMLBlockListContext.cxx253
-rw-r--r--sw/source/core/swg/SwXMLSectionList.cxx157
-rw-r--r--sw/source/core/swg/SwXMLTextBlocks.cxx606
-rw-r--r--sw/source/core/swg/SwXMLTextBlocks1.cxx737
-rw-r--r--sw/source/core/swg/swblocks.cxx657
-rw-r--r--sw/source/core/table/swnewtable.cxx2175
-rw-r--r--sw/source/core/table/swtable.cxx2824
-rw-r--r--sw/source/core/text/EnhancedPDFExportHelper.cxx2205
-rw-r--r--sw/source/core/text/SwGrammarMarkUp.cxx168
-rw-r--r--sw/source/core/text/atrhndl.hxx182
-rw-r--r--sw/source/core/text/atrstck.cxx957
-rw-r--r--sw/source/core/text/blink.cxx200
-rw-r--r--sw/source/core/text/frmcrsr.cxx1752
-rw-r--r--sw/source/core/text/frmform.cxx2068
-rw-r--r--sw/source/core/text/frminf.cxx378
-rw-r--r--sw/source/core/text/frmpaint.cxx743
-rw-r--r--sw/source/core/text/guess.cxx554
-rw-r--r--sw/source/core/text/guess.hxx76
-rw-r--r--sw/source/core/text/inftxt.cxx1942
-rw-r--r--sw/source/core/text/inftxt.hxx896
-rw-r--r--sw/source/core/text/itradj.cxx901
-rw-r--r--sw/source/core/text/itratr.cxx1075
-rw-r--r--sw/source/core/text/itratr.hxx136
-rw-r--r--sw/source/core/text/itrcrsr.cxx1880
-rw-r--r--sw/source/core/text/itrform2.cxx2162
-rw-r--r--sw/source/core/text/itrform2.hxx213
-rw-r--r--sw/source/core/text/itrpaint.cxx708
-rw-r--r--sw/source/core/text/itrpaint.hxx72
-rw-r--r--sw/source/core/text/itrtxt.cxx513
-rw-r--r--sw/source/core/text/itrtxt.hxx348
-rw-r--r--sw/source/core/text/noteurl.cxx89
-rw-r--r--sw/source/core/text/pordrop.hxx122
-rw-r--r--sw/source/core/text/porexp.cxx314
-rw-r--r--sw/source/core/text/porexp.hxx111
-rw-r--r--sw/source/core/text/porfld.cxx1374
-rw-r--r--sw/source/core/text/porfld.hxx269
-rw-r--r--sw/source/core/text/porfly.cxx457
-rw-r--r--sw/source/core/text/porfly.hxx111
-rw-r--r--sw/source/core/text/porftn.hxx131
-rw-r--r--sw/source/core/text/porglue.cxx315
-rw-r--r--sw/source/core/text/porglue.hxx134
-rw-r--r--sw/source/core/text/porhyph.hxx122
-rw-r--r--sw/source/core/text/porlay.cxx2424
-rw-r--r--sw/source/core/text/porlay.hxx436
-rw-r--r--sw/source/core/text/porlin.cxx420
-rw-r--r--sw/source/core/text/porlin.hxx254
-rw-r--r--sw/source/core/text/pormulti.cxx2411
-rw-r--r--sw/source/core/text/pormulti.hxx271
-rw-r--r--sw/source/core/text/porref.cxx116
-rw-r--r--sw/source/core/text/porref.hxx76
-rw-r--r--sw/source/core/text/porrst.cxx598
-rw-r--r--sw/source/core/text/porrst.hxx190
-rw-r--r--sw/source/core/text/portab.hxx160
-rw-r--r--sw/source/core/text/portox.cxx116
-rw-r--r--sw/source/core/text/portox.hxx77
-rw-r--r--sw/source/core/text/portxt.cxx876
-rw-r--r--sw/source/core/text/portxt.hxx124
-rw-r--r--sw/source/core/text/possiz.hxx86
-rw-r--r--sw/source/core/text/redlnitr.cxx504
-rw-r--r--sw/source/core/text/redlnitr.hxx123
-rw-r--r--sw/source/core/text/txtcache.cxx215
-rw-r--r--sw/source/core/text/txtcache.hxx79
-rw-r--r--sw/source/core/text/txtdrop.cxx1092
-rw-r--r--sw/source/core/text/txtfld.cxx569
-rw-r--r--sw/source/core/text/txtfly.cxx2424
-rw-r--r--sw/source/core/text/txtfly.hxx219
-rw-r--r--sw/source/core/text/txtfrm.cxx2813
-rw-r--r--sw/source/core/text/txtftn.cxx1697
-rw-r--r--sw/source/core/text/txthyph.cxx662
-rw-r--r--sw/source/core/text/txtinit.cxx99
-rw-r--r--sw/source/core/text/txtio.cxx723
-rw-r--r--sw/source/core/text/txtpaint.cxx135
-rw-r--r--sw/source/core/text/txtpaint.hxx194
-rw-r--r--sw/source/core/text/txttab.cxx679
-rw-r--r--sw/source/core/text/widorp.cxx574
-rw-r--r--sw/source/core/text/widorp.hxx98
-rw-r--r--sw/source/core/text/wrong.cxx646
-rw-r--r--sw/source/core/text/xmldump.cxx318
-rw-r--r--sw/source/core/tox/tox.cxx935
-rw-r--r--sw/source/core/tox/toxhlp.cxx194
-rw-r--r--sw/source/core/tox/txmsrt.cxx883
-rw-r--r--sw/source/core/txtnode/SwGrammarContact.cxx205
-rw-r--r--sw/source/core/txtnode/atrfld.cxx424
-rw-r--r--sw/source/core/txtnode/atrflyin.cxx286
-rw-r--r--sw/source/core/txtnode/atrftn.cxx545
-rw-r--r--sw/source/core/txtnode/atrref.cxx105
-rw-r--r--sw/source/core/txtnode/atrtox.cxx99
-rw-r--r--sw/source/core/txtnode/chrfmt.cxx40
-rw-r--r--sw/source/core/txtnode/fmtatr2.cxx905
-rw-r--r--sw/source/core/txtnode/fntcache.cxx2651
-rw-r--r--sw/source/core/txtnode/fntcap.cxx846
-rw-r--r--sw/source/core/txtnode/modeltoviewhelper.cxx123
-rw-r--r--sw/source/core/txtnode/ndhints.cxx431
-rw-r--r--sw/source/core/txtnode/ndtxt.cxx4829
-rw-r--r--sw/source/core/txtnode/swfntcch.cxx90
-rw-r--r--sw/source/core/txtnode/swfont.cxx1243
-rw-r--r--sw/source/core/txtnode/thints.cxx3063
-rw-r--r--sw/source/core/txtnode/txatbase.cxx86
-rw-r--r--sw/source/core/txtnode/txatritr.cxx246
-rw-r--r--sw/source/core/txtnode/txtatr2.cxx353
-rw-r--r--sw/source/core/txtnode/txtedt.cxx2123
-rw-r--r--sw/source/core/undo/SwRewriter.cxx80
-rw-r--r--sw/source/core/undo/SwUndoField.cxx165
-rw-r--r--sw/source/core/undo/SwUndoFmt.cxx462
-rw-r--r--sw/source/core/undo/SwUndoPageDesc.cxx435
-rw-r--r--sw/source/core/undo/SwUndoTOXChange.cxx79
-rw-r--r--sw/source/core/undo/docundo.cxx581
-rw-r--r--sw/source/core/undo/rolbck.cxx1516
-rw-r--r--sw/source/core/undo/unattr.cxx1259
-rw-r--r--sw/source/core/undo/unbkmk.cxx107
-rw-r--r--sw/source/core/undo/undel.cxx991
-rw-r--r--sw/source/core/undo/undo.hrc185
-rw-r--r--sw/source/core/undo/undo.src657
-rw-r--r--sw/source/core/undo/undobj.cxx1347
-rw-r--r--sw/source/core/undo/undobj1.cxx729
-rw-r--r--sw/source/core/undo/undoflystrattr.cxx102
-rw-r--r--sw/source/core/undo/undraw.cxx608
-rw-r--r--sw/source/core/undo/unfmco.cxx122
-rw-r--r--sw/source/core/undo/unins.cxx1068
-rw-r--r--sw/source/core/undo/unmove.cxx357
-rw-r--r--sw/source/core/undo/unnum.cxx454
-rw-r--r--sw/source/core/undo/unoutl.cxx64
-rw-r--r--sw/source/core/undo/unovwr.cxx504
-rw-r--r--sw/source/core/undo/unredln.cxx541
-rw-r--r--sw/source/core/undo/unsect.cxx501
-rw-r--r--sw/source/core/undo/unsort.cxx282
-rw-r--r--sw/source/core/undo/unspnd.cxx206
-rw-r--r--sw/source/core/undo/untbl.cxx3269
-rw-r--r--sw/source/core/undo/untblk.cxx357
-rw-r--r--sw/source/core/unocore/SwXTextDefaults.cxx291
-rw-r--r--sw/source/core/unocore/TextCursorHelper.cxx58
-rw-r--r--sw/source/core/unocore/XMLRangeHelper.cxx415
-rw-r--r--sw/source/core/unocore/XMLRangeHelper.hxx81
-rw-r--r--sw/source/core/unocore/swunohelper.cxx291
-rw-r--r--sw/source/core/unocore/unobkm.cxx734
-rw-r--r--sw/source/core/unocore/unochart.cxx2956
-rw-r--r--sw/source/core/unocore/unocoll.cxx1996
-rw-r--r--sw/source/core/unocore/unocore.src64
-rw-r--r--sw/source/core/unocore/unocrsrhelper.cxx1079
-rw-r--r--sw/source/core/unocore/unodraw.cxx2850
-rw-r--r--sw/source/core/unocore/unoevent.cxx331
-rw-r--r--sw/source/core/unocore/unoevtlstnr.cxx105
-rw-r--r--sw/source/core/unocore/unofield.cxx2806
-rw-r--r--sw/source/core/unocore/unoflatpara.cxx533
-rw-r--r--sw/source/core/unocore/unoframe.cxx3144
-rw-r--r--sw/source/core/unocore/unoftn.cxx634
-rw-r--r--sw/source/core/unocore/unoidx.cxx3223
-rw-r--r--sw/source/core/unocore/unomap.cxx3061
-rw-r--r--sw/source/core/unocore/unoobj.cxx2981
-rw-r--r--sw/source/core/unocore/unoobj2.cxx1970
-rw-r--r--sw/source/core/unocore/unoparagraph.cxx1327
-rw-r--r--sw/source/core/unocore/unoport.cxx979
-rw-r--r--sw/source/core/unocore/unoportenum.cxx1175
-rw-r--r--sw/source/core/unocore/unoprnms.cxx803
-rw-r--r--sw/source/core/unocore/unoredline.cxx687
-rw-r--r--sw/source/core/unocore/unoredlines.cxx199
-rw-r--r--sw/source/core/unocore/unorefmk.cxx1623
-rw-r--r--sw/source/core/unocore/unosect.cxx1796
-rw-r--r--sw/source/core/unocore/unosett.cxx2639
-rw-r--r--sw/source/core/unocore/unosrch.cxx746
-rw-r--r--sw/source/core/unocore/unostyle.cxx4126
-rw-r--r--sw/source/core/unocore/unotbl.cxx5045
-rw-r--r--sw/source/core/unocore/unotext.cxx2815
-rw-r--r--sw/source/core/unocore/unotextmarkup.cxx490
-rw-r--r--sw/source/core/view/pagepreviewlayout.cxx1393
-rw-r--r--sw/source/core/view/printdata.cxx541
-rw-r--r--sw/source/core/view/vdraw.cxx276
-rw-r--r--sw/source/core/view/viewimp.cxx476
-rw-r--r--sw/source/core/view/viewpg.cxx247
-rw-r--r--sw/source/core/view/viewsh.cxx2326
-rw-r--r--sw/source/core/view/vnew.cxx369
-rw-r--r--sw/source/core/view/vprint.cxx653
-rw-r--r--sw/source/filter/ascii/ascatr.cxx229
-rw-r--r--sw/source/filter/ascii/parasc.cxx515
-rw-r--r--sw/source/filter/ascii/wrtasc.cxx224
-rw-r--r--sw/source/filter/ascii/wrtasc.hxx55
-rw-r--r--sw/source/filter/basflt/docfact.cxx76
-rw-r--r--sw/source/filter/basflt/fltini.cxx893
-rw-r--r--sw/source/filter/basflt/iodetect.cxx575
-rw-r--r--sw/source/filter/basflt/shellio.cxx990
-rw-r--r--sw/source/filter/html/SwAppletImpl.cxx210
-rw-r--r--sw/source/filter/html/css1atr.cxx3854
-rw-r--r--sw/source/filter/html/css1kywd.cxx284
-rw-r--r--sw/source/filter/html/css1kywd.hxx293
-rw-r--r--sw/source/filter/html/htmlatr.cxx3474
-rw-r--r--sw/source/filter/html/htmlbas.cxx361
-rw-r--r--sw/source/filter/html/htmlcss1.cxx2432
-rw-r--r--sw/source/filter/html/htmlctxt.cxx755
-rw-r--r--sw/source/filter/html/htmldraw.cxx861
-rw-r--r--sw/source/filter/html/htmlfld.cxx672
-rw-r--r--sw/source/filter/html/htmlfld.hxx94
-rw-r--r--sw/source/filter/html/htmlfldw.cxx541
-rw-r--r--sw/source/filter/html/htmlfly.cxx1927
-rw-r--r--sw/source/filter/html/htmlfly.hxx138
-rw-r--r--sw/source/filter/html/htmlflyt.cxx518
-rw-r--r--sw/source/filter/html/htmlform.cxx2654
-rw-r--r--sw/source/filter/html/htmlform.hxx54
-rw-r--r--sw/source/filter/html/htmlforw.cxx1446
-rw-r--r--sw/source/filter/html/htmlftn.cxx622
-rw-r--r--sw/source/filter/html/htmlgrin.cxx1430
-rw-r--r--sw/source/filter/html/htmlnum.cxx948
-rw-r--r--sw/source/filter/html/htmlnum.hxx133
-rw-r--r--sw/source/filter/html/htmlplug.cxx1305
-rw-r--r--sw/source/filter/html/htmlsect.cxx861
-rw-r--r--sw/source/filter/html/htmltab.cxx5538
-rw-r--r--sw/source/filter/html/htmltabw.cxx1253
-rw-r--r--sw/source/filter/html/htmlvsh.hxx58
-rw-r--r--sw/source/filter/html/parcss1.cxx1416
-rw-r--r--sw/source/filter/html/parcss1.hxx309
-rw-r--r--sw/source/filter/html/svxcss1.cxx3241
-rw-r--r--sw/source/filter/html/svxcss1.hxx433
-rw-r--r--sw/source/filter/html/swcss1.hxx229
-rw-r--r--sw/source/filter/html/swhtml.cxx5513
-rw-r--r--sw/source/filter/html/swhtml.hxx1037
-rw-r--r--sw/source/filter/html/wrthtml.cxx1419
-rw-r--r--sw/source/filter/html/wrthtml.hxx603
-rw-r--r--sw/source/filter/inc/fltbase.hxx129
-rw-r--r--sw/source/filter/inc/fltglbls.hxx127
-rw-r--r--sw/source/filter/inc/fltini.hxx110
-rw-r--r--sw/source/filter/inc/fltshell.hxx630
-rw-r--r--sw/source/filter/inc/msfilter.hxx528
-rw-r--r--sw/source/filter/inc/rtf.hxx134
-rw-r--r--sw/source/filter/inc/wrt_fn.hxx69
-rw-r--r--sw/source/filter/inc/wrtswtbl.hxx337
-rw-r--r--sw/source/filter/inc/wwstyles.hxx221
-rw-r--r--sw/source/filter/rtf/rtffld.cxx1221
-rw-r--r--sw/source/filter/rtf/rtffly.cxx1600
-rw-r--r--sw/source/filter/rtf/rtfnum.cxx1056
-rw-r--r--sw/source/filter/rtf/rtftbl.cxx956
-rw-r--r--sw/source/filter/rtf/swparrtf.cxx4303
-rw-r--r--sw/source/filter/rtf/swparrtf.hxx468
-rw-r--r--sw/source/filter/writer/writer.cxx625
-rw-r--r--sw/source/filter/writer/wrt_fn.cxx132
-rw-r--r--sw/source/filter/writer/wrtswtbl.cxx915
-rw-r--r--sw/source/filter/ww1/fltshell.cxx2077
-rw-r--r--sw/source/filter/ww1/w1class.cxx1234
-rw-r--r--sw/source/filter/ww1/w1class.hxx1574
-rw-r--r--sw/source/filter/ww1/w1filter.cxx2028
-rw-r--r--sw/source/filter/ww1/w1par.cxx139
-rw-r--r--sw/source/filter/ww1/w1par.hxx45
-rw-r--r--sw/source/filter/ww1/w1sprm.cxx659
-rw-r--r--sw/source/filter/ww1/w1struct.hxx853
-rw-r--r--sw/source/filter/ww8/CREDITS3
-rw-r--r--sw/source/filter/ww8/README-rtf.txt227
-rw-r--r--sw/source/filter/ww8/WW8FFData.cxx178
-rw-r--r--sw/source/filter/ww8/WW8FFData.hxx119
-rw-r--r--sw/source/filter/ww8/WW8FibData.cxx64
-rw-r--r--sw/source/filter/ww8/WW8FibData.hxx54
-rw-r--r--sw/source/filter/ww8/WW8Sttbf.cxx125
-rw-r--r--sw/source/filter/ww8/WW8Sttbf.hxx147
-rw-r--r--sw/source/filter/ww8/WW8TableInfo.cxx1514
-rw-r--r--sw/source/filter/ww8/WW8TableInfo.hxx359
-rw-r--r--sw/source/filter/ww8/attributeoutputbase.hxx591
-rw-r--r--sw/source/filter/ww8/docxattributeoutput.cxx4168
-rw-r--r--sw/source/filter/ww8/docxattributeoutput.hxx609
-rw-r--r--sw/source/filter/ww8/docxexport.cxx768
-rw-r--r--sw/source/filter/ww8/docxexport.hxx239
-rw-r--r--sw/source/filter/ww8/docxexportfilter.cxx162
-rw-r--r--sw/source/filter/ww8/docxexportfilter.hxx69
-rw-r--r--sw/source/filter/ww8/docxfootnotes.hxx102
-rw-r--r--sw/source/filter/ww8/escher.hxx184
-rw-r--r--sw/source/filter/ww8/fields.cxx151
-rw-r--r--sw/source/filter/ww8/fields.hxx158
-rw-r--r--sw/source/filter/ww8/hash_wrap.hxx122
-rw-r--r--sw/source/filter/ww8/needed_cast.hxx64
-rw-r--r--sw/source/filter/ww8/rtfattributeoutput.cxx3464
-rw-r--r--sw/source/filter/ww8/rtfattributeoutput.hxx572
-rw-r--r--sw/source/filter/ww8/rtfexport.cxx1302
-rw-r--r--sw/source/filter/ww8/rtfexport.hxx221
-rw-r--r--sw/source/filter/ww8/rtfexportfilter.cxx138
-rw-r--r--sw/source/filter/ww8/rtfexportfilter.hxx87
-rw-r--r--sw/source/filter/ww8/rtfimportfilter.cxx139
-rw-r--r--sw/source/filter/ww8/rtfimportfilter.hxx77
-rw-r--r--sw/source/filter/ww8/rtfsdrexport.cxx588
-rw-r--r--sw/source/filter/ww8/rtfsdrexport.hxx118
-rw-r--r--sw/source/filter/ww8/sortedarray.hxx119
-rw-r--r--sw/source/filter/ww8/staticassert.hxx72
-rw-r--r--sw/source/filter/ww8/styles.cxx218
-rw-r--r--sw/source/filter/ww8/tracer.cxx209
-rw-r--r--sw/source/filter/ww8/tracer.hxx91
-rw-r--r--sw/source/filter/ww8/types.hxx58
-rw-r--r--sw/source/filter/ww8/typessw.hxx46
-rw-r--r--sw/source/filter/ww8/writerhelper.cxx784
-rw-r--r--sw/source/filter/ww8/writerhelper.hxx922
-rw-r--r--sw/source/filter/ww8/writerwordglue.cxx1026
-rw-r--r--sw/source/filter/ww8/writerwordglue.hxx164
-rw-r--r--sw/source/filter/ww8/wrtw8esh.cxx2811
-rw-r--r--sw/source/filter/ww8/wrtw8nds.cxx2757
-rw-r--r--sw/source/filter/ww8/wrtw8num.cxx918
-rw-r--r--sw/source/filter/ww8/wrtw8sty.cxx2336
-rw-r--r--sw/source/filter/ww8/wrtww8.cxx3834
-rw-r--r--sw/source/filter/ww8/wrtww8.hxx1574
-rw-r--r--sw/source/filter/ww8/wrtww8gr.cxx905
-rw-r--r--sw/source/filter/ww8/ww8atr.cxx5247
-rw-r--r--sw/source/filter/ww8/ww8attributeoutput.hxx444
-rw-r--r--sw/source/filter/ww8/ww8glsy.cxx272
-rw-r--r--sw/source/filter/ww8/ww8glsy.hxx92
-rw-r--r--sw/source/filter/ww8/ww8graf.cxx3083
-rw-r--r--sw/source/filter/ww8/ww8graf.hxx106
-rw-r--r--sw/source/filter/ww8/ww8graf2.cxx785
-rw-r--r--sw/source/filter/ww8/ww8par.cxx5675
-rw-r--r--sw/source/filter/ww8/ww8par.hxx1630
-rw-r--r--sw/source/filter/ww8/ww8par2.cxx4644
-rw-r--r--sw/source/filter/ww8/ww8par2.hxx288
-rw-r--r--sw/source/filter/ww8/ww8par3.cxx2613
-rw-r--r--sw/source/filter/ww8/ww8par4.cxx572
-rw-r--r--sw/source/filter/ww8/ww8par5.cxx3711
-rw-r--r--sw/source/filter/ww8/ww8par6.cxx6149
-rw-r--r--sw/source/filter/ww8/ww8scan.cxx7301
-rw-r--r--sw/source/filter/ww8/ww8scan.hxx1785
-rw-r--r--sw/source/filter/ww8/ww8struc.hxx991
-rw-r--r--sw/source/filter/ww8/ww8toolbar.cxx1332
-rw-r--r--sw/source/filter/ww8/ww8toolbar.hxx379
-rw-r--r--sw/source/filter/xml/DocSettingNames.hxx29
-rw-r--r--sw/source/filter/xml/ForbiddenCharactersEnum.hxx44
-rw-r--r--sw/source/filter/xml/XMLRedlineImportHelper.cxx779
-rw-r--r--sw/source/filter/xml/XMLRedlineImportHelper.hxx166
-rw-r--r--sw/source/filter/xml/swxml.cxx1128
-rw-r--r--sw/source/filter/xml/wrtxml.cxx671
-rw-r--r--sw/source/filter/xml/wrtxml.hxx107
-rw-r--r--sw/source/filter/xml/xmlbrsh.cxx259
-rw-r--r--sw/source/filter/xml/xmlbrshe.hxx58
-rw-r--r--sw/source/filter/xml/xmlbrshi.hxx88
-rw-r--r--sw/source/filter/xml/xmlexp.cxx986
-rw-r--r--sw/source/filter/xml/xmlexp.hxx192
-rw-r--r--sw/source/filter/xml/xmlexpit.cxx1110
-rw-r--r--sw/source/filter/xml/xmlexpit.hxx139
-rw-r--r--sw/source/filter/xml/xmlfmt.cxx1131
-rw-r--r--sw/source/filter/xml/xmlfmte.cxx367
-rw-r--r--sw/source/filter/xml/xmlfonte.cxx105
-rw-r--r--sw/source/filter/xml/xmlimp.cxx1709
-rw-r--r--sw/source/filter/xml/xmlimp.hxx231
-rw-r--r--sw/source/filter/xml/xmlimpit.cxx968
-rw-r--r--sw/source/filter/xml/xmlimpit.hxx113
-rw-r--r--sw/source/filter/xml/xmlitem.cxx92
-rw-r--r--sw/source/filter/xml/xmlitem.hxx82
-rw-r--r--sw/source/filter/xml/xmliteme.cxx258
-rw-r--r--sw/source/filter/xml/xmlitemi.cxx266
-rw-r--r--sw/source/filter/xml/xmlitemm.cxx297
-rw-r--r--sw/source/filter/xml/xmlithlp.cxx360
-rw-r--r--sw/source/filter/xml/xmlithlp.hxx105
-rw-r--r--sw/source/filter/xml/xmlitmap.hxx99
-rw-r--r--sw/source/filter/xml/xmlitmpr.cxx93
-rw-r--r--sw/source/filter/xml/xmlmeta.cxx188
-rw-r--r--sw/source/filter/xml/xmlscript.cxx65
-rw-r--r--sw/source/filter/xml/xmltble.cxx1257
-rw-r--r--sw/source/filter/xml/xmltbli.cxx2935
-rw-r--r--sw/source/filter/xml/xmltbli.hxx233
-rw-r--r--sw/source/filter/xml/xmltext.cxx110
-rw-r--r--sw/source/filter/xml/xmltexte.cxx759
-rw-r--r--sw/source/filter/xml/xmltexte.hxx91
-rw-r--r--sw/source/filter/xml/xmltexti.cxx1064
-rw-r--r--sw/source/filter/xml/xmltexti.hxx132
-rw-r--r--sw/source/ui/app/app.src635
-rw-r--r--sw/source/ui/app/appenv.cxx523
-rw-r--r--sw/source/ui/app/apphdl.cxx964
-rw-r--r--sw/source/ui/app/applab.cxx445
-rw-r--r--sw/source/ui/app/appopt.cxx592
-rw-r--r--sw/source/ui/app/docsh.cxx1343
-rw-r--r--sw/source/ui/app/docsh2.cxx1773
-rw-r--r--sw/source/ui/app/docshdrw.cxx72
-rw-r--r--sw/source/ui/app/docshini.cxx775
-rw-r--r--sw/source/ui/app/docst.cxx1265
-rw-r--r--sw/source/ui/app/docstyle.cxx2851
-rw-r--r--sw/source/ui/app/error.src202
-rw-r--r--sw/source/ui/app/mainwn.cxx163
-rw-r--r--sw/source/ui/app/mn.src1442
-rw-r--r--sw/source/ui/app/swdll.cxx137
-rw-r--r--sw/source/ui/app/swmodul1.cxx652
-rw-r--r--sw/source/ui/app/swmodule.cxx454
-rw-r--r--sw/source/ui/app/swwait.cxx77
-rw-r--r--sw/source/ui/cctrl/actctrl.cxx123
-rw-r--r--sw/source/ui/cctrl/popbox.cxx78
-rw-r--r--sw/source/ui/cctrl/swlbox.cxx173
-rw-r--r--sw/source/ui/chrdlg/break.cxx244
-rw-r--r--sw/source/ui/chrdlg/break.hrc41
-rw-r--r--sw/source/ui/chrdlg/ccoll.cxx201
-rw-r--r--sw/source/ui/chrdlg/ccoll.hrc50
-rw-r--r--sw/source/ui/chrdlg/ccoll.src164
-rw-r--r--sw/source/ui/chrdlg/chardlg.cxx347
-rw-r--r--sw/source/ui/chrdlg/chardlg.hrc86
-rw-r--r--sw/source/ui/chrdlg/chardlg.src272
-rw-r--r--sw/source/ui/chrdlg/chrdlg.src76
-rw-r--r--sw/source/ui/chrdlg/drpcps.cxx855
-rw-r--r--sw/source/ui/chrdlg/drpcps.hrc51
-rw-r--r--sw/source/ui/chrdlg/drpcps.src232
-rw-r--r--sw/source/ui/chrdlg/numpara.cxx327
-rw-r--r--sw/source/ui/chrdlg/numpara.hrc53
-rw-r--r--sw/source/ui/chrdlg/numpara.src236
-rw-r--r--sw/source/ui/chrdlg/paradlg.hrc71
-rw-r--r--sw/source/ui/chrdlg/paradlg.src162
-rw-r--r--sw/source/ui/chrdlg/pardlg.cxx267
-rw-r--r--sw/source/ui/chrdlg/swbreak.src176
-rw-r--r--sw/source/ui/chrdlg/swuiccoll.cxx329
-rw-r--r--sw/source/ui/chrdlg/tblnumfm.cxx71
-rw-r--r--sw/source/ui/config/barcfg.cxx141
-rw-r--r--sw/source/ui/config/caption.cxx94
-rw-r--r--sw/source/ui/config/cfgitems.cxx385
-rw-r--r--sw/source/ui/config/config.hrc67
-rw-r--r--sw/source/ui/config/dbconfig.cxx135
-rw-r--r--sw/source/ui/config/fontcfg.cxx334
-rw-r--r--sw/source/ui/config/mailconfigpage.cxx577
-rw-r--r--sw/source/ui/config/mailconfigpage.hrc82
-rw-r--r--sw/source/ui/config/mailconfigpage.src436
-rw-r--r--sw/source/ui/config/modcfg.cxx1337
-rw-r--r--sw/source/ui/config/optcomp.cxx604
-rw-r--r--sw/source/ui/config/optcomp.hrc56
-rw-r--r--sw/source/ui/config/optcomp.src143
-rw-r--r--sw/source/ui/config/optdlg.hrc208
-rw-r--r--sw/source/ui/config/optdlg.src1074
-rw-r--r--sw/source/ui/config/optload.cxx915
-rw-r--r--sw/source/ui/config/optload.hrc83
-rw-r--r--sw/source/ui/config/optload.src428
-rw-r--r--sw/source/ui/config/optpage.cxx2443
-rw-r--r--sw/source/ui/config/prtopt.cxx193
-rw-r--r--sw/source/ui/config/redlopt.hrc54
-rw-r--r--sw/source/ui/config/redlopt.src287
-rw-r--r--sw/source/ui/config/uinums.cxx581
-rw-r--r--sw/source/ui/config/usrpref.cxx622
-rw-r--r--sw/source/ui/config/viewopt.cxx565
-rw-r--r--sw/source/ui/dbui/addresslistdialog.cxx730
-rw-r--r--sw/source/ui/dbui/addresslistdialog.hrc48
-rw-r--r--sw/source/ui/dbui/addresslistdialog.hxx118
-rw-r--r--sw/source/ui/dbui/addresslistdialog.src131
-rw-r--r--sw/source/ui/dbui/createaddresslistdialog.cxx776
-rw-r--r--sw/source/ui/dbui/createaddresslistdialog.hrc64
-rw-r--r--sw/source/ui/dbui/createaddresslistdialog.hxx125
-rw-r--r--sw/source/ui/dbui/createaddresslistdialog.src232
-rw-r--r--sw/source/ui/dbui/customizeaddresslistdialog.cxx250
-rw-r--r--sw/source/ui/dbui/customizeaddresslistdialog.hrc49
-rw-r--r--sw/source/ui/dbui/customizeaddresslistdialog.hxx95
-rw-r--r--sw/source/ui/dbui/customizeaddresslistdialog.src164
-rw-r--r--sw/source/ui/dbui/dbinsdlg.cxx1901
-rw-r--r--sw/source/ui/dbui/dbinsdlg.hrc73
-rw-r--r--sw/source/ui/dbui/dbinsdlg.src330
-rw-r--r--sw/source/ui/dbui/dbmgr.cxx2977
-rw-r--r--sw/source/ui/dbui/dbtablepreviewdialog.cxx126
-rw-r--r--sw/source/ui/dbui/dbtablepreviewdialog.hrc35
-rw-r--r--sw/source/ui/dbui/dbtablepreviewdialog.hxx56
-rw-r--r--sw/source/ui/dbui/dbtablepreviewdialog.src61
-rw-r--r--sw/source/ui/dbui/dbtree.cxx537
-rw-r--r--sw/source/ui/dbui/dbui.cxx141
-rw-r--r--sw/source/ui/dbui/dbui.src284
-rw-r--r--sw/source/ui/dbui/maildispatcher.cxx296
-rw-r--r--sw/source/ui/dbui/mailmergechildwindow.cxx706
-rw-r--r--sw/source/ui/dbui/mailmergechildwindow.hrc59
-rw-r--r--sw/source/ui/dbui/mailmergechildwindow.src265
-rw-r--r--sw/source/ui/dbui/mailmergehelper.cxx906
-rw-r--r--sw/source/ui/dbui/mailmergewizard.cxx318
-rw-r--r--sw/source/ui/dbui/mailmergewizard.hrc37
-rw-r--r--sw/source/ui/dbui/mailmergewizard.src80
-rw-r--r--sw/source/ui/dbui/mmaddressblockpage.cxx1692
-rw-r--r--sw/source/ui/dbui/mmaddressblockpage.hrc115
-rw-r--r--sw/source/ui/dbui/mmaddressblockpage.hxx318
-rw-r--r--sw/source/ui/dbui/mmaddressblockpage.src646
-rw-r--r--sw/source/ui/dbui/mmconfigitem.cxx1761
-rw-r--r--sw/source/ui/dbui/mmdocselectpage.cxx210
-rw-r--r--sw/source/ui/dbui/mmdocselectpage.hrc37
-rw-r--r--sw/source/ui/dbui/mmdocselectpage.hxx72
-rw-r--r--sw/source/ui/dbui/mmdocselectpage.src108
-rw-r--r--sw/source/ui/dbui/mmgreetingspage.cxx586
-rw-r--r--sw/source/ui/dbui/mmgreetingspage.hrc65
-rw-r--r--sw/source/ui/dbui/mmgreetingspage.hxx170
-rw-r--r--sw/source/ui/dbui/mmgreetingspage.src261
-rw-r--r--sw/source/ui/dbui/mmlayoutpage.cxx787
-rw-r--r--sw/source/ui/dbui/mmlayoutpage.hrc48
-rw-r--r--sw/source/ui/dbui/mmlayoutpage.hxx112
-rw-r--r--sw/source/ui/dbui/mmlayoutpage.src165
-rw-r--r--sw/source/ui/dbui/mmmergepage.cxx116
-rw-r--r--sw/source/ui/dbui/mmmergepage.hrc43
-rw-r--r--sw/source/ui/dbui/mmmergepage.hxx71
-rw-r--r--sw/source/ui/dbui/mmmergepage.src107
-rw-r--r--sw/source/ui/dbui/mmoutputpage.cxx1339
-rw-r--r--sw/source/ui/dbui/mmoutputpage.hrc103
-rw-r--r--sw/source/ui/dbui/mmoutputpage.hxx237
-rw-r--r--sw/source/ui/dbui/mmoutputpage.src490
-rw-r--r--sw/source/ui/dbui/mmoutputtypepage.cxx105
-rw-r--r--sw/source/ui/dbui/mmoutputtypepage.hrc44
-rw-r--r--sw/source/ui/dbui/mmoutputtypepage.hxx65
-rw-r--r--sw/source/ui/dbui/mmoutputtypepage.src101
-rw-r--r--sw/source/ui/dbui/mmpreparemergepage.cxx188
-rw-r--r--sw/source/ui/dbui/mmpreparemergepage.hrc46
-rw-r--r--sw/source/ui/dbui/mmpreparemergepage.hxx75
-rw-r--r--sw/source/ui/dbui/mmpreparemergepage.src132
-rw-r--r--sw/source/ui/dbui/selectdbtabledialog.cxx215
-rw-r--r--sw/source/ui/dbui/selectdbtabledialog.hrc43
-rw-r--r--sw/source/ui/dbui/selectdbtabledialog.hxx76
-rw-r--r--sw/source/ui/dbui/selectdbtabledialog.src99
-rw-r--r--sw/source/ui/dbui/swdbtoolsclient.cxx230
-rw-r--r--sw/source/ui/dialog/SwSpellDialogChildWindow.cxx866
-rw-r--r--sw/source/ui/dialog/abstract.cxx79
-rw-r--r--sw/source/ui/dialog/abstract.hrc36
-rw-r--r--sw/source/ui/dialog/abstract.src150
-rw-r--r--sw/source/ui/dialog/addrdlg.cxx60
-rw-r--r--sw/source/ui/dialog/ascfldlg.cxx450
-rw-r--r--sw/source/ui/dialog/ascfldlg.hrc44
-rw-r--r--sw/source/ui/dialog/ascfldlg.src183
-rw-r--r--sw/source/ui/dialog/dialog.src60
-rw-r--r--sw/source/ui/dialog/docstdlg.cxx173
-rw-r--r--sw/source/ui/dialog/docstdlg.hrc49
-rw-r--r--sw/source/ui/dialog/docstdlg.src197
-rw-r--r--sw/source/ui/dialog/macassgn.cxx161
-rw-r--r--sw/source/ui/dialog/regionsw.cxx256
-rw-r--r--sw/source/ui/dialog/regionsw.hrc114
-rw-r--r--sw/source/ui/dialog/regionsw.src893
-rw-r--r--sw/source/ui/dialog/swabstdlg.cxx56
-rw-r--r--sw/source/ui/dialog/swdialmgr.cxx57
-rw-r--r--sw/source/ui/dialog/swdlgfact.cxx1663
-rw-r--r--sw/source/ui/dialog/swdlgfact.hxx587
-rw-r--r--sw/source/ui/dialog/swuiexp.cxx58
-rw-r--r--sw/source/ui/dialog/swwrtshitem.cxx54
-rw-r--r--sw/source/ui/dialog/uiregionsw.cxx2324
-rw-r--r--sw/source/ui/dialog/wordcountdialog.cxx98
-rw-r--r--sw/source/ui/dialog/wordcountdialog.hrc47
-rw-r--r--sw/source/ui/dialog/wordcountdialog.src139
-rw-r--r--sw/source/ui/dochdl/dochdl.src76
-rw-r--r--sw/source/ui/dochdl/gloshdl.cxx808
-rw-r--r--sw/source/ui/dochdl/selglos.cxx78
-rw-r--r--sw/source/ui/dochdl/selglos.hrc31
-rw-r--r--sw/source/ui/dochdl/selglos.src110
-rw-r--r--sw/source/ui/dochdl/swdtflvr.cxx3653
-rw-r--r--sw/source/ui/docvw/AnchorOverlayObject.cxx466
-rw-r--r--sw/source/ui/docvw/AnchorOverlayObject.hxx142
-rw-r--r--sw/source/ui/docvw/AnnotationMenuButton.cxx214
-rw-r--r--sw/source/ui/docvw/AnnotationMenuButton.hxx62
-rw-r--r--sw/source/ui/docvw/AnnotationWin.cxx296
-rw-r--r--sw/source/ui/docvw/PostItMgr.cxx1914
-rw-r--r--sw/source/ui/docvw/ShadowOverlayObject.cxx267
-rw-r--r--sw/source/ui/docvw/ShadowOverlayObject.hxx79
-rw-r--r--sw/source/ui/docvw/SidebarTxtControl.cxx425
-rw-r--r--sw/source/ui/docvw/SidebarTxtControl.hxx86
-rw-r--r--sw/source/ui/docvw/SidebarTxtControlAcc.cxx316
-rw-r--r--sw/source/ui/docvw/SidebarTxtControlAcc.hxx55
-rw-r--r--sw/source/ui/docvw/SidebarWin.cxx1278
-rw-r--r--sw/source/ui/docvw/SidebarWinAcc.cxx161
-rw-r--r--sw/source/ui/docvw/SidebarWinAcc.hxx66
-rw-r--r--sw/source/ui/docvw/access.src121
-rw-r--r--sw/source/ui/docvw/annotation.hrc51
-rw-r--r--sw/source/ui/docvw/annotation.src65
-rw-r--r--sw/source/ui/docvw/docvw.hrc93
-rw-r--r--sw/source/ui/docvw/docvw.src293
-rw-r--r--sw/source/ui/docvw/edtdd.cxx516
-rw-r--r--sw/source/ui/docvw/edtwin.cxx5605
-rw-r--r--sw/source/ui/docvw/edtwin2.cxx545
-rw-r--r--sw/source/ui/docvw/edtwin3.cxx215
-rw-r--r--sw/source/ui/docvw/extedit.cxx150
-rw-r--r--sw/source/ui/docvw/frmsidebarwincontainer.cxx216
-rw-r--r--sw/source/ui/docvw/frmsidebarwincontainer.hxx72
-rw-r--r--sw/source/ui/docvw/romenu.cxx513
-rw-r--r--sw/source/ui/docvw/romenu.hxx73
-rw-r--r--sw/source/ui/docvw/srcedtw.cxx971
-rw-r--r--sw/source/ui/envelp/envelp.src86
-rw-r--r--sw/source/ui/envelp/envfmt.cxx581
-rw-r--r--sw/source/ui/envelp/envfmt.hrc80
-rw-r--r--sw/source/ui/envelp/envfmt.hxx108
-rw-r--r--sw/source/ui/envelp/envfmt.src323
-rw-r--r--sw/source/ui/envelp/envimg.cxx369
-rw-r--r--sw/source/ui/envelp/envlop.hrc63
-rw-r--r--sw/source/ui/envelp/envlop.src212
-rw-r--r--sw/source/ui/envelp/envlop1.cxx368
-rw-r--r--sw/source/ui/envelp/envprt.cxx211
-rw-r--r--sw/source/ui/envelp/envprt.hrc79
-rw-r--r--sw/source/ui/envelp/envprt.hxx93
-rw-r--r--sw/source/ui/envelp/envprt.src218
-rw-r--r--sw/source/ui/envelp/label.hrc126
-rw-r--r--sw/source/ui/envelp/label.src757
-rw-r--r--sw/source/ui/envelp/label1.cxx991
-rw-r--r--sw/source/ui/envelp/labelcfg.cxx291
-rw-r--r--sw/source/ui/envelp/labelexp.cxx271
-rw-r--r--sw/source/ui/envelp/labfmt.cxx655
-rw-r--r--sw/source/ui/envelp/labfmt.hrc87
-rw-r--r--sw/source/ui/envelp/labfmt.hxx175
-rw-r--r--sw/source/ui/envelp/labfmt.src369
-rw-r--r--sw/source/ui/envelp/labimg.cxx468
-rw-r--r--sw/source/ui/envelp/labimp.hxx118
-rw-r--r--sw/source/ui/envelp/labprt.cxx201
-rw-r--r--sw/source/ui/envelp/labprt.hrc57
-rw-r--r--sw/source/ui/envelp/labprt.hxx86
-rw-r--r--sw/source/ui/envelp/labprt.src156
-rw-r--r--sw/source/ui/envelp/mailmrge.cxx879
-rw-r--r--sw/source/ui/envelp/mailmrge.hrc90
-rw-r--r--sw/source/ui/envelp/mailmrge.src453
-rw-r--r--sw/source/ui/envelp/swuilabimp.hxx248
-rw-r--r--sw/source/ui/envelp/syncbtn.cxx98
-rw-r--r--sw/source/ui/fldui/DropDownFieldDialog.cxx134
-rw-r--r--sw/source/ui/fldui/DropDownFieldDialog.hrc37
-rw-r--r--sw/source/ui/fldui/DropDownFieldDialog.src125
-rw-r--r--sw/source/ui/fldui/FldRefTreeListBox.cxx84
-rw-r--r--sw/source/ui/fldui/FldRefTreeListBox.hxx46
-rw-r--r--sw/source/ui/fldui/changedb.cxx312
-rw-r--r--sw/source/ui/fldui/changedb.hrc60
-rw-r--r--sw/source/ui/fldui/changedb.src130
-rw-r--r--sw/source/ui/fldui/flddb.cxx526
-rw-r--r--sw/source/ui/fldui/flddb.hxx102
-rw-r--r--sw/source/ui/fldui/flddb.src206
-rw-r--r--sw/source/ui/fldui/flddinf.cxx493
-rw-r--r--sw/source/ui/fldui/flddinf.hxx88
-rw-r--r--sw/source/ui/fldui/flddinf.src141
-rw-r--r--sw/source/ui/fldui/flddok.cxx673
-rw-r--r--sw/source/ui/fldui/flddok.hxx91
-rw-r--r--sw/source/ui/fldui/flddok.src203
-rw-r--r--sw/source/ui/fldui/fldedt.cxx361
-rw-r--r--sw/source/ui/fldui/fldfunc.cxx695
-rw-r--r--sw/source/ui/fldui/fldfunc.hxx110
-rw-r--r--sw/source/ui/fldui/fldfunc.src284
-rw-r--r--sw/source/ui/fldui/fldmgr.cxx1772
-rw-r--r--sw/source/ui/fldui/fldpage.cxx399
-rw-r--r--sw/source/ui/fldui/fldpage.hxx105
-rw-r--r--sw/source/ui/fldui/fldref.cxx1022
-rw-r--r--sw/source/ui/fldui/fldref.hxx110
-rw-r--r--sw/source/ui/fldui/fldref.src150
-rw-r--r--sw/source/ui/fldui/fldtdlg.cxx358
-rw-r--r--sw/source/ui/fldui/fldtdlg.hrc167
-rw-r--r--sw/source/ui/fldui/fldtdlg.src118
-rw-r--r--sw/source/ui/fldui/fldui.src678
-rw-r--r--sw/source/ui/fldui/fldvar.cxx1305
-rw-r--r--sw/source/ui/fldui/fldvar.hxx118
-rw-r--r--sw/source/ui/fldui/fldvar.src245
-rw-r--r--sw/source/ui/fldui/fldwrap.cxx176
-rw-r--r--sw/source/ui/fldui/inpdlg.cxx203
-rw-r--r--sw/source/ui/fldui/inpdlg.hrc34
-rw-r--r--sw/source/ui/fldui/inpdlg.src134
-rw-r--r--sw/source/ui/fldui/javaedit.cxx308
-rw-r--r--sw/source/ui/fldui/javaedit.hrc51
-rw-r--r--sw/source/ui/fldui/javaedit.src180
-rw-r--r--sw/source/ui/fldui/xfldui.cxx182
-rw-r--r--sw/source/ui/fmtui/tmpdlg.cxx615
-rw-r--r--sw/source/ui/fmtui/tmpdlg.src375
-rw-r--r--sw/source/ui/frmdlg/colex.cxx587
-rw-r--r--sw/source/ui/frmdlg/colmgr.cxx165
-rw-r--r--sw/source/ui/frmdlg/column.cxx1435
-rw-r--r--sw/source/ui/frmdlg/column.hrc92
-rw-r--r--sw/source/ui/frmdlg/column.src466
-rw-r--r--sw/source/ui/frmdlg/cption.cxx640
-rw-r--r--sw/source/ui/frmdlg/cption.hrc78
-rw-r--r--sw/source/ui/frmdlg/cption.src342
-rw-r--r--sw/source/ui/frmdlg/frmdlg.cxx208
-rw-r--r--sw/source/ui/frmdlg/frmmgr.cxx620
-rw-r--r--sw/source/ui/frmdlg/frmpage.cxx3148
-rw-r--r--sw/source/ui/frmdlg/frmpage.hrc145
-rw-r--r--sw/source/ui/frmdlg/frmpage.src880
-rw-r--r--sw/source/ui/frmdlg/frmui.src131
-rw-r--r--sw/source/ui/frmdlg/pattern.cxx77
-rw-r--r--sw/source/ui/frmdlg/pattern.hrc46
-rw-r--r--sw/source/ui/frmdlg/uiborder.cxx81
-rw-r--r--sw/source/ui/frmdlg/wrap.cxx732
-rw-r--r--sw/source/ui/frmdlg/wrap.hrc63
-rw-r--r--sw/source/ui/frmdlg/wrap.src263
-rw-r--r--sw/source/ui/globdoc/globdoc.cxx91
-rw-r--r--sw/source/ui/globdoc/globdoc.src45
-rw-r--r--sw/source/ui/inc/DropDownFieldDialog.hxx71
-rw-r--r--sw/source/ui/inc/SidebarWindowsConsts.hxx40
-rw-r--r--sw/source/ui/inc/SwSpellDialogChildWindow.hxx76
-rw-r--r--sw/source/ui/inc/SwXFilterOptions.hxx111
-rw-r--r--sw/source/ui/inc/abstract.hxx65
-rw-r--r--sw/source/ui/inc/actctrl.hxx99
-rw-r--r--sw/source/ui/inc/addrdlg.hxx46
-rw-r--r--sw/source/ui/inc/annotsh.hxx84
-rw-r--r--sw/source/ui/inc/app.hrc135
-rw-r--r--sw/source/ui/inc/ascfldlg.hxx78
-rw-r--r--sw/source/ui/inc/autoedit.hxx50
-rw-r--r--sw/source/ui/inc/barcfg.hxx50
-rw-r--r--sw/source/ui/inc/basesh.hxx130
-rw-r--r--sw/source/ui/inc/beziersh.hxx47
-rw-r--r--sw/source/ui/inc/bmpwin.hxx66
-rw-r--r--sw/source/ui/inc/bookctrl.hxx59
-rw-r--r--sw/source/ui/inc/bookmark.hxx81
-rw-r--r--sw/source/ui/inc/break.hxx86
-rw-r--r--sw/source/ui/inc/caption.hxx113
-rw-r--r--sw/source/ui/inc/cfgdesc.hxx71
-rw-r--r--sw/source/ui/inc/cfgid.h43
-rw-r--r--sw/source/ui/inc/cfgitems.hxx242
-rw-r--r--sw/source/ui/inc/changedb.hxx85
-rw-r--r--sw/source/ui/inc/chartins.hxx37
-rw-r--r--sw/source/ui/inc/chldwrap.hxx57
-rw-r--r--sw/source/ui/inc/chrdlg.hxx109
-rw-r--r--sw/source/ui/inc/cnttab.hxx85
-rw-r--r--sw/source/ui/inc/colex.hxx111
-rw-r--r--sw/source/ui/inc/colmgr.hxx139
-rw-r--r--sw/source/ui/inc/column.hxx213
-rw-r--r--sw/source/ui/inc/conarc.hxx59
-rw-r--r--sw/source/ui/inc/concustomshape.hxx74
-rw-r--r--sw/source/ui/inc/condedit.hxx53
-rw-r--r--sw/source/ui/inc/conform.hxx49
-rw-r--r--sw/source/ui/inc/conpoly.hxx57
-rw-r--r--sw/source/ui/inc/conrect.hxx62
-rw-r--r--sw/source/ui/inc/content.hxx225
-rw-r--r--sw/source/ui/inc/conttree.hxx338
-rw-r--r--sw/source/ui/inc/convert.hxx92
-rw-r--r--sw/source/ui/inc/cption.hxx129
-rw-r--r--sw/source/ui/inc/dbconfig.hxx56
-rw-r--r--sw/source/ui/inc/dbinsdlg.hxx183
-rw-r--r--sw/source/ui/inc/dbtree.hxx87
-rw-r--r--sw/source/ui/inc/dbui.hxx86
-rw-r--r--sw/source/ui/inc/dialmgr.hxx51
-rw-r--r--sw/source/ui/inc/docfnote.hxx53
-rw-r--r--sw/source/ui/inc/docstdlg.hxx86
-rw-r--r--sw/source/ui/inc/drawbase.hxx92
-rw-r--r--sw/source/ui/inc/drawsh.hxx55
-rw-r--r--sw/source/ui/inc/drformsh.hxx50
-rw-r--r--sw/source/ui/inc/drpcps.hxx117
-rw-r--r--sw/source/ui/inc/drwbassh.hxx67
-rw-r--r--sw/source/ui/inc/drwtxtsh.hxx92
-rw-r--r--sw/source/ui/inc/dselect.hxx54
-rw-r--r--sw/source/ui/inc/edtwin.hxx309
-rw-r--r--sw/source/ui/inc/envimg.hxx100
-rw-r--r--sw/source/ui/inc/envlop.hxx137
-rw-r--r--sw/source/ui/inc/extedit.hxx50
-rw-r--r--sw/source/ui/inc/fldedt.hxx64
-rw-r--r--sw/source/ui/inc/fldmgr.hxx235
-rw-r--r--sw/source/ui/inc/fldtdlg.hxx67
-rw-r--r--sw/source/ui/inc/fldwrap.hxx65
-rw-r--r--sw/source/ui/inc/fontcfg.hxx123
-rw-r--r--sw/source/ui/inc/formatclipboard.hxx72
-rw-r--r--sw/source/ui/inc/formedt.hxx102
-rw-r--r--sw/source/ui/inc/frmdlg.hxx68
-rw-r--r--sw/source/ui/inc/frmmgr.hxx199
-rw-r--r--sw/source/ui/inc/frmpage.hxx338
-rw-r--r--sw/source/ui/inc/frmsh.hxx53
-rw-r--r--sw/source/ui/inc/frmui.hrc144
-rw-r--r--sw/source/ui/inc/globals.h40
-rw-r--r--sw/source/ui/inc/globdoc.hrc64
-rw-r--r--sw/source/ui/inc/glosbib.hxx114
-rw-r--r--sw/source/ui/inc/glosdoc.hxx151
-rw-r--r--sw/source/ui/inc/gloshdl.hxx113
-rw-r--r--sw/source/ui/inc/gloslst.hxx91
-rw-r--r--sw/source/ui/inc/glossary.hxx183
-rw-r--r--sw/source/ui/inc/glshell.hxx116
-rw-r--r--sw/source/ui/inc/grfsh.hxx47
-rw-r--r--sw/source/ui/inc/hidfunc.h353
-rw-r--r--sw/source/ui/inc/hyp.hxx70
-rw-r--r--sw/source/ui/inc/idxmrk.hxx69
-rw-r--r--sw/source/ui/inc/imaildsplistener.hxx80
-rw-r--r--sw/source/ui/inc/initui.hxx82
-rw-r--r--sw/source/ui/inc/inpdlg.hxx77
-rw-r--r--sw/source/ui/inc/inputwin.hxx135
-rw-r--r--sw/source/ui/inc/insfnote.hxx96
-rw-r--r--sw/source/ui/inc/insrule.hxx66
-rw-r--r--sw/source/ui/inc/instable.hxx95
-rw-r--r--sw/source/ui/inc/javaedit.hxx112
-rw-r--r--sw/source/ui/inc/label.hxx101
-rw-r--r--sw/source/ui/inc/labelcfg.hxx61
-rw-r--r--sw/source/ui/inc/labimg.hxx132
-rw-r--r--sw/source/ui/inc/langhelper.hxx71
-rw-r--r--sw/source/ui/inc/linenum.hxx107
-rw-r--r--sw/source/ui/inc/listsh.hxx47
-rw-r--r--sw/source/ui/inc/macassgn.hxx56
-rw-r--r--sw/source/ui/inc/mailconfigpage.hxx99
-rw-r--r--sw/source/ui/inc/maildispatcher.hxx168
-rw-r--r--sw/source/ui/inc/mailmergechildwindow.hxx63
-rw-r--r--sw/source/ui/inc/mailmergehelper.hxx331
-rw-r--r--sw/source/ui/inc/mailmergewizard.hxx105
-rw-r--r--sw/source/ui/inc/mailmrge.hxx192
-rw-r--r--sw/source/ui/inc/mediash.hxx46
-rw-r--r--sw/source/ui/inc/mergetbl.hxx57
-rw-r--r--sw/source/ui/inc/misc.hrc107
-rw-r--r--sw/source/ui/inc/mmconfigitem.hxx281
-rw-r--r--sw/source/ui/inc/multmrk.hxx69
-rw-r--r--sw/source/ui/inc/navicfg.hxx120
-rw-r--r--sw/source/ui/inc/navicont.hxx64
-rw-r--r--sw/source/ui/inc/navipi.hxx196
-rw-r--r--sw/source/ui/inc/navmgr.hxx74
-rw-r--r--sw/source/ui/inc/navsh.hxx51
-rw-r--r--sw/source/ui/inc/num.hxx175
-rw-r--r--sw/source/ui/inc/numberingtypelistbox.hxx60
-rw-r--r--sw/source/ui/inc/numfmtlb.hxx89
-rw-r--r--sw/source/ui/inc/numpara.hxx98
-rw-r--r--sw/source/ui/inc/numprevw.hxx70
-rw-r--r--sw/source/ui/inc/olesh.hxx50
-rw-r--r--sw/source/ui/inc/olmenu.hxx93
-rw-r--r--sw/source/ui/inc/optcomp.hxx88
-rw-r--r--sw/source/ui/inc/optload.hxx199
-rw-r--r--sw/source/ui/inc/optpage.hxx487
-rw-r--r--sw/source/ui/inc/outline.hxx155
-rw-r--r--sw/source/ui/inc/pardlg.hxx42
-rw-r--r--sw/source/ui/inc/pattern.hxx46
-rw-r--r--sw/source/ui/inc/pgfnote.hxx95
-rw-r--r--sw/source/ui/inc/pggrid.hxx117
-rw-r--r--sw/source/ui/inc/popbox.hxx68
-rw-r--r--sw/source/ui/inc/popup.hrc58
-rw-r--r--sw/source/ui/inc/prcntfld.hxx99
-rw-r--r--sw/source/ui/inc/pview.hxx335
-rw-r--r--sw/source/ui/inc/redlndlg.hxx180
-rw-r--r--sw/source/ui/inc/regionsw.hxx323
-rw-r--r--sw/source/ui/inc/ribbar.hrc132
-rw-r--r--sw/source/ui/inc/rowht.hxx57
-rw-r--r--sw/source/ui/inc/scroll.hxx72
-rw-r--r--sw/source/ui/inc/selglos.hxx71
-rw-r--r--sw/source/ui/inc/sharedconnection.hxx39
-rw-r--r--sw/source/ui/inc/shdwcrsr.hxx69
-rw-r--r--sw/source/ui/inc/shells.hrc114
-rw-r--r--sw/source/ui/inc/split.hxx71
-rw-r--r--sw/source/ui/inc/splittbl.hxx63
-rw-r--r--sw/source/ui/inc/srcedtw.hxx165
-rw-r--r--sw/source/ui/inc/srcview.hxx103
-rw-r--r--sw/source/ui/inc/srtdlg.hxx112
-rw-r--r--sw/source/ui/inc/stmenu.hxx83
-rw-r--r--sw/source/ui/inc/swcont.hxx116
-rw-r--r--sw/source/ui/inc/swdtflvr.hxx225
-rw-r--r--sw/source/ui/inc/swlbox.hxx122
-rw-r--r--sw/source/ui/inc/swmodalredlineacceptdlg.hxx51
-rw-r--r--sw/source/ui/inc/swrenamexnameddlg.hxx83
-rw-r--r--sw/source/ui/inc/swtablerep.hxx96
-rw-r--r--sw/source/ui/inc/swuiccoll.hxx91
-rw-r--r--sw/source/ui/inc/swuicnttab.hxx521
-rw-r--r--sw/source/ui/inc/swuiidxmrk.hxx275
-rw-r--r--sw/source/ui/inc/swuipardlg.hxx54
-rw-r--r--sw/source/ui/inc/swvset.hxx42
-rw-r--r--sw/source/ui/inc/swwrtshitem.hxx55
-rw-r--r--sw/source/ui/inc/syncbtn.hxx63
-rw-r--r--sw/source/ui/inc/table.hrc50
-rw-r--r--sw/source/ui/inc/tabledlg.hxx58
-rw-r--r--sw/source/ui/inc/tablemgr.hxx98
-rw-r--r--sw/source/ui/inc/tabsh.hxx61
-rw-r--r--sw/source/ui/inc/tautofmt.hxx110
-rw-r--r--sw/source/ui/inc/tblctrl.hxx59
-rw-r--r--sw/source/ui/inc/tblnumfm.hxx46
-rw-r--r--sw/source/ui/inc/tbxanchr.hxx51
-rw-r--r--sw/source/ui/inc/textcontrolcombo.hxx67
-rw-r--r--sw/source/ui/inc/textsh.hxx92
-rw-r--r--sw/source/ui/inc/titlepage.hxx102
-rw-r--r--sw/source/ui/inc/tmpdlg.hxx67
-rw-r--r--sw/source/ui/inc/tmplctrl.hxx56
-rw-r--r--sw/source/ui/inc/toolbox.hrc563
-rw-r--r--sw/source/ui/inc/toxmgr.hxx323
-rw-r--r--sw/source/ui/inc/uiborder.hxx51
-rw-r--r--sw/source/ui/inc/uiitems.hxx112
-rw-r--r--sw/source/ui/inc/uinums.hxx133
-rw-r--r--sw/source/ui/inc/uitool.hxx98
-rw-r--r--sw/source/ui/inc/uivwimp.hxx183
-rw-r--r--sw/source/ui/inc/unodispatch.hxx134
-rw-r--r--sw/source/ui/inc/unotools.hxx130
-rw-r--r--sw/source/ui/inc/unotxvw.hxx269
-rw-r--r--sw/source/ui/inc/usrpref.hxx288
-rw-r--r--sw/source/ui/inc/utlui.hrc180
-rw-r--r--sw/source/ui/inc/view.hxx699
-rw-r--r--sw/source/ui/inc/viewlayoutctrl.hxx56
-rw-r--r--sw/source/ui/inc/web.hrc74
-rw-r--r--sw/source/ui/inc/wformsh.hxx47
-rw-r--r--sw/source/ui/inc/wfrmsh.hxx50
-rw-r--r--sw/source/ui/inc/wgrfsh.hxx47
-rw-r--r--sw/source/ui/inc/wlistsh.hxx45
-rw-r--r--sw/source/ui/inc/wolesh.hxx50
-rw-r--r--sw/source/ui/inc/wordcountdialog.hxx70
-rw-r--r--sw/source/ui/inc/workctrl.hxx221
-rw-r--r--sw/source/ui/inc/wrap.hxx145
-rw-r--r--sw/source/ui/inc/wrtsh.hxx672
-rw-r--r--sw/source/ui/inc/wtabsh.hxx45
-rw-r--r--sw/source/ui/inc/wtextsh.hxx50
-rw-r--r--sw/source/ui/inc/wview.hxx50
-rw-r--r--sw/source/ui/inc/zoomctrl.hxx54
-rw-r--r--sw/source/ui/index/cntex.cxx479
-rw-r--r--sw/source/ui/index/cnttab.cxx4247
-rw-r--r--sw/source/ui/index/cnttab.hrc283
-rw-r--r--sw/source/ui/index/cnttab.src1346
-rw-r--r--sw/source/ui/index/idxmrk.cxx129
-rw-r--r--sw/source/ui/index/idxmrk.hrc108
-rw-r--r--sw/source/ui/index/idxmrk.src635
-rw-r--r--sw/source/ui/index/multmrk.cxx100
-rw-r--r--sw/source/ui/index/multmrk.hrc34
-rw-r--r--sw/source/ui/index/multmrk.src119
-rw-r--r--sw/source/ui/index/swuiidxmrk.cxx1839
-rw-r--r--sw/source/ui/index/toxmgr.cxx519
-rw-r--r--sw/source/ui/lingu/cvdata.mac19
-rw-r--r--sw/source/ui/lingu/hhcwrp.cxx776
-rw-r--r--sw/source/ui/lingu/hyp.cxx176
-rw-r--r--sw/source/ui/lingu/olmenu.cxx894
-rw-r--r--sw/source/ui/lingu/olmenu.hrc97
-rw-r--r--sw/source/ui/lingu/olmenu.src137
-rw-r--r--sw/source/ui/lingu/sdrhhcwrap.cxx195
-rw-r--r--sw/source/ui/lingu/sdrhhcwrap.hxx70
-rw-r--r--sw/source/ui/misc/autocorr.src29
-rw-r--r--sw/source/ui/misc/bookmark.cxx268
-rw-r--r--sw/source/ui/misc/bookmark.hrc34
-rw-r--r--sw/source/ui/misc/bookmark.src116
-rw-r--r--sw/source/ui/misc/docfnote.cxx484
-rw-r--r--sw/source/ui/misc/docfnote.hrc60
-rw-r--r--sw/source/ui/misc/docfnote.src562
-rw-r--r--sw/source/ui/misc/glosbib.cxx533
-rw-r--r--sw/source/ui/misc/glosbib.hrc41
-rw-r--r--sw/source/ui/misc/glosbib.src182
-rw-r--r--sw/source/ui/misc/glosdoc.cxx761
-rw-r--r--sw/source/ui/misc/glossary.cxx1228
-rw-r--r--sw/source/ui/misc/glossary.hrc91
-rw-r--r--sw/source/ui/misc/glossary.src392
-rw-r--r--sw/source/ui/misc/glshell.cxx289
-rw-r--r--sw/source/ui/misc/impfnote.hxx115
-rw-r--r--sw/source/ui/misc/insfnote.cxx305
-rw-r--r--sw/source/ui/misc/insfnote.hrc45
-rw-r--r--sw/source/ui/misc/insfnote.src181
-rw-r--r--sw/source/ui/misc/insrule.cxx199
-rw-r--r--sw/source/ui/misc/insrule.hrc35
-rw-r--r--sw/source/ui/misc/insrule.src114
-rw-r--r--sw/source/ui/misc/linenum.cxx295
-rw-r--r--sw/source/ui/misc/linenum.hrc50
-rw-r--r--sw/source/ui/misc/linenum.src279
-rw-r--r--sw/source/ui/misc/num.cxx1035
-rw-r--r--sw/source/ui/misc/num.hrc55
-rw-r--r--sw/source/ui/misc/num.src373
-rw-r--r--sw/source/ui/misc/numberingtypelistbox.cxx165
-rw-r--r--sw/source/ui/misc/numberingtypelistbox.src100
-rw-r--r--sw/source/ui/misc/outline.cxx1190
-rw-r--r--sw/source/ui/misc/outline.hrc98
-rw-r--r--sw/source/ui/misc/outline.src383
-rw-r--r--sw/source/ui/misc/pgfnote.cxx400
-rw-r--r--sw/source/ui/misc/pgfnote.hrc47
-rw-r--r--sw/source/ui/misc/pgfnote.src242
-rw-r--r--sw/source/ui/misc/pggrid.cxx538
-rw-r--r--sw/source/ui/misc/pggrid.hrc54
-rw-r--r--sw/source/ui/misc/pggrid.src256
-rw-r--r--sw/source/ui/misc/redlndlg.cxx1259
-rw-r--r--sw/source/ui/misc/redlndlg.hrc38
-rw-r--r--sw/source/ui/misc/redlndlg.src147
-rw-r--r--sw/source/ui/misc/srtdlg.cxx519
-rw-r--r--sw/source/ui/misc/srtdlg.hrc65
-rw-r--r--sw/source/ui/misc/srtdlg.src403
-rw-r--r--sw/source/ui/misc/swmodalredlineacceptdlg.cxx119
-rw-r--r--sw/source/ui/misc/titlepage.cxx367
-rw-r--r--sw/source/ui/misc/titlepage.hrc50
-rw-r--r--sw/source/ui/misc/titlepage.src244
-rw-r--r--sw/source/ui/ribbar/conarc.cxx158
-rw-r--r--sw/source/ui/ribbar/concustomshape.cxx243
-rw-r--r--sw/source/ui/ribbar/conform.cxx144
-rw-r--r--sw/source/ui/ribbar/conpoly.cxx165
-rw-r--r--sw/source/ui/ribbar/conrect.cxx231
-rw-r--r--sw/source/ui/ribbar/drawbase.cxx728
-rw-r--r--sw/source/ui/ribbar/dselect.cxx104
-rw-r--r--sw/source/ui/ribbar/inputwin.cxx674
-rw-r--r--sw/source/ui/ribbar/inputwin.hrc84
-rw-r--r--sw/source/ui/ribbar/inputwin.src335
-rw-r--r--sw/source/ui/ribbar/tblctrl.cxx96
-rw-r--r--sw/source/ui/ribbar/tblctrl.hrc35
-rw-r--r--sw/source/ui/ribbar/tbxanchr.cxx144
-rw-r--r--sw/source/ui/ribbar/tbxanchr.src107
-rw-r--r--sw/source/ui/ribbar/workctrl.cxx805
-rw-r--r--sw/source/ui/ribbar/workctrl.hrc85
-rw-r--r--sw/source/ui/ribbar/workctrl.src409
-rw-r--r--sw/source/ui/shells/annotsh.cxx1688
-rw-r--r--sw/source/ui/shells/basesh.cxx2852
-rw-r--r--sw/source/ui/shells/beziersh.cxx340
-rw-r--r--sw/source/ui/shells/drawdlg.cxx237
-rw-r--r--sw/source/ui/shells/drawsh.cxx473
-rw-r--r--sw/source/ui/shells/drformsh.cxx278
-rw-r--r--sw/source/ui/shells/drwbassh.cxx964
-rw-r--r--sw/source/ui/shells/drwtxtex.cxx967
-rw-r--r--sw/source/ui/shells/drwtxtsh.cxx846
-rw-r--r--sw/source/ui/shells/frmsh.cxx1280
-rw-r--r--sw/source/ui/shells/grfsh.cxx709
-rw-r--r--sw/source/ui/shells/grfshex.cxx152
-rw-r--r--sw/source/ui/shells/langhelper.cxx633
-rw-r--r--sw/source/ui/shells/listsh.cxx294
-rw-r--r--sw/source/ui/shells/mediash.cxx211
-rw-r--r--sw/source/ui/shells/navsh.cxx139
-rw-r--r--sw/source/ui/shells/olesh.cxx70
-rw-r--r--sw/source/ui/shells/shells.src304
-rw-r--r--sw/source/ui/shells/slotadd.cxx148
-rw-r--r--sw/source/ui/shells/tabsh.cxx1502
-rw-r--r--sw/source/ui/shells/textdrw.cxx138
-rw-r--r--sw/source/ui/shells/textfld.cxx880
-rw-r--r--sw/source/ui/shells/textglos.cxx143
-rw-r--r--sw/source/ui/shells/textidx.cxx258
-rw-r--r--sw/source/ui/shells/textsh.cxx1188
-rw-r--r--sw/source/ui/shells/textsh1.cxx1750
-rw-r--r--sw/source/ui/shells/textsh2.cxx300
-rw-r--r--sw/source/ui/shells/txtattr.cxx755
-rw-r--r--sw/source/ui/shells/txtcrsr.cxx361
-rw-r--r--sw/source/ui/shells/txtnum.cxx235
-rw-r--r--sw/source/ui/smartmenu/stmenu.cxx183
-rw-r--r--sw/source/ui/smartmenu/stmenu.hrc41
-rw-r--r--sw/source/ui/smartmenu/stmenu.src44
-rw-r--r--sw/source/ui/table/chartins.cxx279
-rw-r--r--sw/source/ui/table/chartins.hrc47
-rw-r--r--sw/source/ui/table/chartins.src128
-rw-r--r--sw/source/ui/table/colwd.cxx113
-rw-r--r--sw/source/ui/table/colwd.hrc36
-rw-r--r--sw/source/ui/table/colwd.src146
-rw-r--r--sw/source/ui/table/convert.cxx284
-rw-r--r--sw/source/ui/table/convert.hrc50
-rw-r--r--sw/source/ui/table/convert.src203
-rw-r--r--sw/source/ui/table/instable.cxx252
-rw-r--r--sw/source/ui/table/instable.hrc49
-rw-r--r--sw/source/ui/table/instable.src199
-rw-r--r--sw/source/ui/table/mergetbl.cxx64
-rw-r--r--sw/source/ui/table/mergetbl.hrc32
-rw-r--r--sw/source/ui/table/mergetbl.src118
-rw-r--r--sw/source/ui/table/rowht.cxx112
-rw-r--r--sw/source/ui/table/rowht.hrc34
-rw-r--r--sw/source/ui/table/rowht.src121
-rw-r--r--sw/source/ui/table/splittbl.cxx76
-rw-r--r--sw/source/ui/table/splittbl.hrc34
-rw-r--r--sw/source/ui/table/splittbl.src129
-rw-r--r--sw/source/ui/table/swtablerep.cxx201
-rw-r--r--sw/source/ui/table/table.src59
-rw-r--r--sw/source/ui/table/tabledlg.cxx1863
-rw-r--r--sw/source/ui/table/tabledlg.hrc111
-rw-r--r--sw/source/ui/table/tabledlg.src787
-rw-r--r--sw/source/ui/table/tablemgr.cxx382
-rw-r--r--sw/source/ui/table/tablepg.hxx235
-rw-r--r--sw/source/ui/table/tautofmt.cxx1029
-rw-r--r--sw/source/ui/table/tautofmt.hrc78
-rw-r--r--sw/source/ui/table/tautofmt.src305
-rw-r--r--sw/source/ui/uiview/formatclipboard.cxx590
-rw-r--r--sw/source/ui/uiview/pview.cxx1923
-rw-r--r--sw/source/ui/uiview/pview.hrc72
-rw-r--r--sw/source/ui/uiview/pview.src110
-rw-r--r--sw/source/ui/uiview/scroll.cxx146
-rw-r--r--sw/source/ui/uiview/srcview.cxx873
-rw-r--r--sw/source/ui/uiview/swcli.cxx186
-rw-r--r--sw/source/ui/uiview/uivwimp.cxx316
-rw-r--r--sw/source/ui/uiview/view.cxx1835
-rwxr-xr-xsw/source/ui/uiview/view.hrc90
-rw-r--r--sw/source/ui/uiview/view.src222
-rw-r--r--sw/source/ui/uiview/view0.cxx607
-rw-r--r--sw/source/ui/uiview/view1.cxx193
-rw-r--r--sw/source/ui/uiview/view2.cxx2381
-rw-r--r--sw/source/ui/uiview/viewcoll.cxx94
-rw-r--r--sw/source/ui/uiview/viewdlg.cxx97
-rw-r--r--sw/source/ui/uiview/viewdlg2.cxx229
-rw-r--r--sw/source/ui/uiview/viewdraw.cxx774
-rw-r--r--sw/source/ui/uiview/viewfunc.hxx69
-rw-r--r--sw/source/ui/uiview/viewling.cxx945
-rw-r--r--sw/source/ui/uiview/viewmdi.cxx676
-rw-r--r--sw/source/ui/uiview/viewport.cxx1338
-rw-r--r--sw/source/ui/uiview/viewprt.cxx327
-rw-r--r--sw/source/ui/uiview/viewsrch.cxx775
-rw-r--r--sw/source/ui/uiview/viewstat.cxx510
-rw-r--r--sw/source/ui/uiview/viewtab.cxx1818
-rw-r--r--sw/source/ui/uno/RefreshListenerContainer.cxx61
-rw-r--r--sw/source/ui/uno/SwXDocumentSettings.cxx1098
-rw-r--r--sw/source/ui/uno/SwXDocumentSettings.hxx108
-rw-r--r--sw/source/ui/uno/SwXFilterOptions.cxx192
-rw-r--r--sw/source/ui/uno/detreg.cxx87
-rw-r--r--sw/source/ui/uno/dlelstnr.cxx186
-rw-r--r--sw/source/ui/uno/swdet2.cxx95
-rw-r--r--sw/source/ui/uno/swdetect.cxx478
-rw-r--r--sw/source/ui/uno/swdetect.hxx98
-rw-r--r--sw/source/ui/uno/unoatxt.cxx1144
-rw-r--r--sw/source/ui/uno/unodefaults.cxx65
-rw-r--r--sw/source/ui/uno/unodefaults.hxx50
-rw-r--r--sw/source/ui/uno/unodispatch.cxx404
-rw-r--r--sw/source/ui/uno/unodoc.cxx130
-rw-r--r--sw/source/ui/uno/unofreg.cxx385
-rw-r--r--sw/source/ui/uno/unomailmerge.cxx1249
-rw-r--r--sw/source/ui/uno/unomod.cxx1017
-rw-r--r--sw/source/ui/uno/unomodule.cxx174
-rw-r--r--sw/source/ui/uno/unomodule.hxx101
-rw-r--r--sw/source/ui/uno/unotxdoc.cxx3904
-rw-r--r--sw/source/ui/uno/unotxvw.cxx2022
-rw-r--r--sw/source/ui/utlui/attrdesc.cxx1328
-rw-r--r--sw/source/ui/utlui/attrdesc.hrc123
-rw-r--r--sw/source/ui/utlui/attrdesc.src370
-rw-r--r--sw/source/ui/utlui/bookctrl.cxx148
-rw-r--r--sw/source/ui/utlui/condedit.cxx100
-rw-r--r--sw/source/ui/utlui/content.cxx3186
-rw-r--r--sw/source/ui/utlui/glbltree.cxx1402
-rw-r--r--sw/source/ui/utlui/gloslst.cxx495
-rw-r--r--sw/source/ui/utlui/gloslst.hrc38
-rw-r--r--sw/source/ui/utlui/gloslst.src109
-rw-r--r--sw/source/ui/utlui/initui.cxx310
-rw-r--r--sw/source/ui/utlui/initui.hrc66
-rw-r--r--sw/source/ui/utlui/initui.src516
-rw-r--r--sw/source/ui/utlui/navicfg.cxx133
-rw-r--r--sw/source/ui/utlui/navipi.cxx1425
-rw-r--r--sw/source/ui/utlui/navipi.hrc89
-rw-r--r--sw/source/ui/utlui/navipi.src518
-rw-r--r--sw/source/ui/utlui/numfmtlb.cxx505
-rw-r--r--sw/source/ui/utlui/poolfmt.src766
-rw-r--r--sw/source/ui/utlui/prcntfld.cxx304
-rw-r--r--sw/source/ui/utlui/shdwcrsr.cxx137
-rw-r--r--sw/source/ui/utlui/swrenamexnameddlg.cxx142
-rw-r--r--sw/source/ui/utlui/textcontrolcombo.cxx115
-rw-r--r--sw/source/ui/utlui/tmplctrl.cxx156
-rw-r--r--sw/source/ui/utlui/uiitems.cxx337
-rw-r--r--sw/source/ui/utlui/uitool.cxx759
-rw-r--r--sw/source/ui/utlui/unotools.cxx489
-rw-r--r--sw/source/ui/utlui/unotools.hrc41
-rw-r--r--sw/source/ui/utlui/unotools.src131
-rw-r--r--sw/source/ui/utlui/utlui.src379
-rw-r--r--sw/source/ui/utlui/viewlayoutctrl.cxx181
-rw-r--r--sw/source/ui/utlui/zoomctrl.cxx87
-rw-r--r--sw/source/ui/vba/service.cxx87
-rw-r--r--sw/source/ui/vba/vbaaddin.cxx106
-rw-r--r--sw/source/ui/vba/vbaaddin.hxx62
-rw-r--r--sw/source/ui/vba/vbaaddins.cxx110
-rw-r--r--sw/source/ui/vba/vbaaddins.hxx55
-rw-r--r--sw/source/ui/vba/vbaapplication.cxx217
-rw-r--r--sw/source/ui/vba/vbaapplication.hxx78
-rw-r--r--sw/source/ui/vba/vbaautotextentry.cxx149
-rw-r--r--sw/source/ui/vba/vbaautotextentry.hxx83
-rw-r--r--sw/source/ui/vba/vbabookmark.cxx114
-rw-r--r--sw/source/ui/vba/vbabookmark.hxx68
-rw-r--r--sw/source/ui/vba/vbabookmarks.cxx235
-rw-r--r--sw/source/ui/vba/vbabookmarks.hxx78
-rw-r--r--sw/source/ui/vba/vbaborders.cxx382
-rw-r--r--sw/source/ui/vba/vbaborders.hxx65
-rw-r--r--sw/source/ui/vba/vbacell.cxx119
-rw-r--r--sw/source/ui/vba/vbacell.hxx67
-rw-r--r--sw/source/ui/vba/vbacells.cxx223
-rw-r--r--sw/source/ui/vba/vbacells.hxx75
-rw-r--r--sw/source/ui/vba/vbacheckbox.cxx97
-rw-r--r--sw/source/ui/vba/vbacheckbox.hxx58
-rw-r--r--sw/source/ui/vba/vbacolumn.cxx165
-rw-r--r--sw/source/ui/vba/vbacolumn.hxx68
-rw-r--r--sw/source/ui/vba/vbacolumns.cxx160
-rw-r--r--sw/source/ui/vba/vbacolumns.hxx75
-rw-r--r--sw/source/ui/vba/vbadialog.cxx81
-rw-r--r--sw/source/ui/vba/vbadialog.hxx53
-rw-r--r--sw/source/ui/vba/vbadialogs.cxx63
-rw-r--r--sw/source/ui/vba/vbadialogs.hxx56
-rw-r--r--sw/source/ui/vba/vbadocument.cxx534
-rw-r--r--sw/source/ui/vba/vbadocument.hxx103
-rw-r--r--sw/source/ui/vba/vbadocumentproperties.cxx766
-rw-r--r--sw/source/ui/vba/vbadocumentproperties.hxx70
-rw-r--r--sw/source/ui/vba/vbadocuments.cxx181
-rw-r--r--sw/source/ui/vba/vbadocuments.hxx64
-rw-r--r--sw/source/ui/vba/vbaeventshelper.cxx106
-rw-r--r--sw/source/ui/vba/vbaeventshelper.hxx55
-rw-r--r--sw/source/ui/vba/vbafield.cxx593
-rw-r--r--sw/source/ui/vba/vbafield.hxx82
-rw-r--r--sw/source/ui/vba/vbafind.cxx423
-rw-r--r--sw/source/ui/vba/vbafind.hxx103
-rw-r--r--sw/source/ui/vba/vbafont.cxx219
-rw-r--r--sw/source/ui/vba/vbafont.hxx34
-rw-r--r--sw/source/ui/vba/vbaformfield.cxx138
-rw-r--r--sw/source/ui/vba/vbaformfield.hxx61
-rw-r--r--sw/source/ui/vba/vbaformfields.cxx205
-rw-r--r--sw/source/ui/vba/vbaformfields.hxx60
-rw-r--r--sw/source/ui/vba/vbaframe.cxx74
-rw-r--r--sw/source/ui/vba/vbaframe.hxx57
-rw-r--r--sw/source/ui/vba/vbaframes.cxx109
-rw-r--r--sw/source/ui/vba/vbaframes.hxx61
-rw-r--r--sw/source/ui/vba/vbaglobals.cxx201
-rw-r--r--sw/source/ui/vba/vbaglobals.hxx84
-rw-r--r--sw/source/ui/vba/vbaheaderfooter.cxx114
-rw-r--r--sw/source/ui/vba/vbaheaderfooter.hxx63
-rw-r--r--sw/source/ui/vba/vbaheaderfooterhelper.cxx191
-rw-r--r--sw/source/ui/vba/vbaheaderfooterhelper.hxx54
-rw-r--r--sw/source/ui/vba/vbaheadersfooters.cxx150
-rw-r--r--sw/source/ui/vba/vbaheadersfooters.hxx62
-rw-r--r--sw/source/ui/vba/vbainformationhelper.cxx74
-rw-r--r--sw/source/ui/vba/vbainformationhelper.hxx46
-rw-r--r--sw/source/ui/vba/vbalistformat.cxx120
-rw-r--r--sw/source/ui/vba/vbalistformat.hxx60
-rw-r--r--sw/source/ui/vba/vbalistgalleries.cxx115
-rw-r--r--sw/source/ui/vba/vbalistgalleries.hxx61
-rw-r--r--sw/source/ui/vba/vbalistgallery.cxx72
-rw-r--r--sw/source/ui/vba/vbalistgallery.hxx58
-rw-r--r--sw/source/ui/vba/vbalisthelper.cxx705
-rw-r--r--sw/source/ui/vba/vbalisthelper.hxx77
-rw-r--r--sw/source/ui/vba/vbalistlevel.cxx400
-rw-r--r--sw/source/ui/vba/vbalistlevel.hxx81
-rw-r--r--sw/source/ui/vba/vbalistlevels.cxx118
-rw-r--r--sw/source/ui/vba/vbalistlevels.hxx62
-rw-r--r--sw/source/ui/vba/vbalisttemplate.cxx79
-rw-r--r--sw/source/ui/vba/vbalisttemplate.hxx60
-rw-r--r--sw/source/ui/vba/vbalisttemplates.cxx112
-rw-r--r--sw/source/ui/vba/vbalisttemplates.hxx62
-rw-r--r--sw/source/ui/vba/vbaoptions.cxx287
-rw-r--r--sw/source/ui/vba/vbaoptions.hxx90
-rw-r--r--sw/source/ui/vba/vbapagesetup.cxx274
-rw-r--r--sw/source/ui/vba/vbapagesetup.hxx70
-rw-r--r--sw/source/ui/vba/vbapalette.cxx78
-rw-r--r--sw/source/ui/vba/vbapalette.hxx18
-rw-r--r--sw/source/ui/vba/vbapane.cxx78
-rw-r--r--sw/source/ui/vba/vbapane.hxx57
-rw-r--r--sw/source/ui/vba/vbapanes.cxx127
-rw-r--r--sw/source/ui/vba/vbapanes.hxx60
-rw-r--r--sw/source/ui/vba/vbaparagraph.cxx189
-rw-r--r--sw/source/ui/vba/vbaparagraph.hxx86
-rw-r--r--sw/source/ui/vba/vbaparagraphformat.cxx579
-rw-r--r--sw/source/ui/vba/vbaparagraphformat.hxx98
-rw-r--r--sw/source/ui/vba/vbarange.cxx437
-rw-r--r--sw/source/ui/vba/vbarange.hxx101
-rw-r--r--sw/source/ui/vba/vbarangehelper.cxx200
-rw-r--r--sw/source/ui/vba/vbarangehelper.hxx49
-rw-r--r--sw/source/ui/vba/vbareplacement.cxx79
-rw-r--r--sw/source/ui/vba/vbareplacement.hxx60
-rw-r--r--sw/source/ui/vba/vbarevision.cxx104
-rw-r--r--sw/source/ui/vba/vbarevision.hxx60
-rw-r--r--sw/source/ui/vba/vbarevisions.cxx188
-rw-r--r--sw/source/ui/vba/vbarevisions.hxx66
-rw-r--r--sw/source/ui/vba/vbarow.cxx135
-rw-r--r--sw/source/ui/vba/vbarow.hxx69
-rw-r--r--sw/source/ui/vba/vbarows.cxx368
-rw-r--r--sw/source/ui/vba/vbarows.hxx87
-rw-r--r--sw/source/ui/vba/vbasection.cxx96
-rw-r--r--sw/source/ui/vba/vbasection.hxx62
-rw-r--r--sw/source/ui/vba/vbasections.cxx202
-rw-r--r--sw/source/ui/vba/vbasections.hxx64
-rw-r--r--sw/source/ui/vba/vbaselection.cxx1197
-rw-r--r--sw/source/ui/vba/vbaselection.hxx121
-rw-r--r--sw/source/ui/vba/vbastyle.cxx285
-rw-r--r--sw/source/ui/vba/vbastyle.hxx86
-rw-r--r--sw/source/ui/vba/vbastyles.cxx380
-rw-r--r--sw/source/ui/vba/vbastyles.hxx54
-rw-r--r--sw/source/ui/vba/vbasystem.cxx292
-rw-r--r--sw/source/ui/vba/vbasystem.hxx74
-rw-r--r--sw/source/ui/vba/vbatable.cxx121
-rw-r--r--sw/source/ui/vba/vbatable.hxx34
-rw-r--r--sw/source/ui/vba/vbatablehelper.cxx295
-rw-r--r--sw/source/ui/vba/vbatablehelper.hxx70
-rw-r--r--sw/source/ui/vba/vbatableofcontents.cxx124
-rw-r--r--sw/source/ui/vba/vbatableofcontents.hxx70
-rw-r--r--sw/source/ui/vba/vbatables.cxx220
-rw-r--r--sw/source/ui/vba/vbatables.hxx31
-rw-r--r--sw/source/ui/vba/vbatablesofcontents.cxx195
-rw-r--r--sw/source/ui/vba/vbatablesofcontents.hxx64
-rw-r--r--sw/source/ui/vba/vbatabstop.cxx62
-rw-r--r--sw/source/ui/vba/vbatabstop.hxx54
-rw-r--r--sw/source/ui/vba/vbatabstops.cxx280
-rw-r--r--sw/source/ui/vba/vbatabstops.hxx65
-rw-r--r--sw/source/ui/vba/vbatemplate.cxx148
-rw-r--r--sw/source/ui/vba/vbatemplate.hxx56
-rw-r--r--sw/source/ui/vba/vbavariable.cxx107
-rw-r--r--sw/source/ui/vba/vbavariable.hxx62
-rw-r--r--sw/source/ui/vba/vbavariables.cxx105
-rw-r--r--sw/source/ui/vba/vbavariables.hxx64
-rw-r--r--sw/source/ui/vba/vbaview.cxx401
-rw-r--r--sw/source/ui/vba/vbaview.hxx71
-rw-r--r--sw/source/ui/vba/vbawindow.cxx154
-rw-r--r--sw/source/ui/vba/vbawindow.hxx62
-rw-r--r--sw/source/ui/vba/vbawrapformat.cxx254
-rw-r--r--sw/source/ui/vba/vbawrapformat.hxx72
-rw-r--r--sw/source/ui/vba/wordvbahelper.cxx193
-rw-r--r--sw/source/ui/vba/wordvbahelper.hxx72
-rw-r--r--sw/source/ui/web/wdocsh.cxx106
-rw-r--r--sw/source/ui/web/web.src83
-rw-r--r--sw/source/ui/web/wformsh.cxx71
-rw-r--r--sw/source/ui/web/wfrmsh.cxx80
-rw-r--r--sw/source/ui/web/wgrfsh.cxx76
-rw-r--r--sw/source/ui/web/wlistsh.cxx69
-rw-r--r--sw/source/ui/web/wolesh.cxx70
-rw-r--r--sw/source/ui/web/wtabsh.cxx78
-rw-r--r--sw/source/ui/web/wtextsh.cxx85
-rw-r--r--sw/source/ui/web/wview.cxx315
-rw-r--r--sw/source/ui/wrtsh/delete.cxx566
-rw-r--r--sw/source/ui/wrtsh/move.cxx780
-rw-r--r--sw/source/ui/wrtsh/navmgr.cxx224
-rw-r--r--sw/source/ui/wrtsh/select.cxx1073
-rw-r--r--sw/source/ui/wrtsh/wrtsh.hrc48
-rw-r--r--sw/source/ui/wrtsh/wrtsh.src52
-rw-r--r--sw/source/ui/wrtsh/wrtsh1.cxx1837
-rw-r--r--sw/source/ui/wrtsh/wrtsh2.cxx488
-rw-r--r--sw/source/ui/wrtsh/wrtsh3.cxx247
-rw-r--r--sw/source/ui/wrtsh/wrtsh4.cxx277
-rw-r--r--sw/source/ui/wrtsh/wrtundo.cxx182
1635 files changed, 845049 insertions, 0 deletions
diff --git a/sw/source/core/SwNumberTree/SwNodeNum.cxx b/sw/source/core/SwNumberTree/SwNodeNum.cxx
new file mode 100644
index 000000000000..67a0110000c6
--- /dev/null
+++ b/sw/source/core/SwNumberTree/SwNodeNum.cxx
@@ -0,0 +1,418 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_sw.hxx"
+
+#include <editeng/svxenum.hxx>
+#include <numrule.hxx>
+#include <SwNodeNum.hxx>
+#include <ndtxt.hxx>
+#include <pam.hxx>
+#include <stdio.h>
+// --> OD 2007-10-31 #i83479#
+#include <IDocumentListItems.hxx>
+// <--
+#include <doc.hxx>
+
+SwNodeNum::SwNodeNum( SwTxtNode* pTxtNode )
+ : SwNumberTreeNode(),
+ mpTxtNode( pTxtNode ),
+ mpNumRule( 0 )
+{
+}
+
+SwNodeNum::SwNodeNum( SwNumRule* pNumRule )
+ : SwNumberTreeNode(),
+ mpTxtNode( 0 ),
+ mpNumRule( pNumRule )
+{
+}
+
+SwNodeNum::~SwNodeNum()
+{
+}
+
+SwTxtNode * SwNodeNum::GetTxtNode() const
+{
+ return mpTxtNode;
+}
+
+SwNumRule * SwNodeNum::GetNumRule() const
+{
+ return mpNumRule;
+}
+
+void SwNodeNum::ChangeNumRule( SwNumRule& rNumRule )
+{
+ OSL_ENSURE( GetNumRule() && GetTxtNode(),
+ "<SwNodeNum::ChangeNumRule(..)> - missing list style and/or text node. Serious defect -> please informm OD." );
+ if ( GetNumRule() && GetTxtNode() )
+ {
+ GetNumRule()->RemoveTxtNode( *(GetTxtNode()) );
+ }
+
+ mpNumRule = &rNumRule;
+
+ if ( GetNumRule() && GetTxtNode() )
+ {
+ GetNumRule()->AddTxtNode( *(GetTxtNode()) );
+ }
+}
+
+SwPosition SwNodeNum::GetPosition() const
+{
+ OSL_ENSURE( GetTxtNode(),
+ "<SwNodeNum::GetPosition()> - no text node set at <SwNodeNum> instance" );
+ return SwPosition(*mpTxtNode);
+}
+
+SwNumberTreeNode * SwNodeNum::Create() const
+{
+ SwNodeNum * pResult = new SwNodeNum( GetNumRule() );
+
+ return pResult;
+}
+
+void SwNodeNum::PreAdd()
+{
+ OSL_ENSURE( GetTxtNode(),
+ "<SwNodeNum::PreAdd()> - no text node set at <SwNodeNum> instance" );
+ if ( !GetNumRule() && GetTxtNode() )
+ {
+ mpNumRule = GetTxtNode()->GetNumRule();
+ }
+ OSL_ENSURE( GetNumRule(),
+ "<SwNodeNum::PreAdd()> - no list style set at <SwNodeNum> instance" );
+ if ( GetNumRule() && GetTxtNode() )
+ {
+ GetNumRule()->AddTxtNode( *(GetTxtNode()) );
+ }
+
+
+ {
+ if ( GetTxtNode() &&
+ GetTxtNode()->GetNodes().IsDocNodes() )
+ {
+ GetTxtNode()->getIDocumentListItems().addListItem( *this );
+ }
+ }
+}
+
+void SwNodeNum::PostRemove()
+{
+ OSL_ENSURE( GetTxtNode(),
+ "<SwNodeNum::PostRemove()> - no text node set at <SwNodeNum> instance" );
+ OSL_ENSURE( GetNumRule(),
+ "<SwNodeNum::PostRemove()> - no list style set at <SwNodeNum> instance" );
+
+ if ( GetTxtNode() )
+ {
+ GetTxtNode()->getIDocumentListItems().removeListItem( *this );
+ }
+
+ if ( GetNumRule() )
+ {
+ if ( GetTxtNode() )
+ {
+ GetNumRule()->RemoveTxtNode( *(GetTxtNode()) );
+ }
+ mpNumRule = 0;
+ }
+}
+// <--
+
+bool SwNodeNum::IsNotifiable() const
+{
+ bool aResult = true;
+
+ if ( GetTxtNode() )
+ aResult = GetTxtNode()->IsNotifiable();
+
+ return aResult;
+}
+
+bool SwNodeNum::IsNotificationEnabled() const
+{
+ bool aResult = true;
+
+ if ( GetTxtNode() )
+ aResult = GetTxtNode()->IsNotificationEnabled();
+
+ return aResult;
+}
+
+bool SwNodeNum::IsContinuous() const
+{
+ bool aResult = false;
+
+ // --> OD 2006-04-21 #i64311#
+ if ( GetNumRule() )
+ {
+ aResult = mpNumRule->IsContinusNum();
+ }
+ else if ( GetParent() )
+ {
+ aResult = GetParent()->IsContinuous();
+ }
+ else
+ {
+ OSL_FAIL( "<SwNodeNum::IsContinuous()> - OD debug" );
+ }
+ // <--
+
+ return aResult;
+}
+
+bool SwNodeNum::IsCounted() const
+{
+ bool aResult = false;
+
+ if ( GetTxtNode() )
+ {
+ // --> OD 2006-01-25 #i59559#
+ // <SwTxtNode::IsCounted()> determines, if a text node is counted for numbering
+ aResult = GetTxtNode()->IsCountedInList();
+ // <--
+ }
+ else
+ aResult = SwNumberTreeNode::IsCounted();
+
+ return aResult;
+}
+
+// --> OD 2006-04-26 #i64010#
+bool SwNodeNum::HasCountedChildren() const
+{
+ bool bResult = false;
+
+ tSwNumberTreeChildren::const_iterator aIt;
+
+ for (aIt = mChildren.begin(); aIt != mChildren.end(); ++aIt)
+ {
+ SwNodeNum* pChild( dynamic_cast<SwNodeNum*>(*aIt) );
+ OSL_ENSURE( pChild,
+ "<SwNodeNum::HasCountedChildren()> - unexcepted type of child -> please inform OD" );
+ if ( pChild &&
+ ( pChild->IsCountedForNumbering() ||
+ pChild->HasCountedChildren() ) )
+ {
+ bResult = true;
+
+ break;
+ }
+ }
+
+ return bResult;
+}
+// <--
+// --> OD 2006-04-26 #i64010#
+bool SwNodeNum::IsCountedForNumbering() const
+{
+ return IsCounted() &&
+ ( IsPhantom() || // phantoms
+ !GetTxtNode() || // root node
+ GetTxtNode()->HasNumber() || // text node
+ GetTxtNode()->HasBullet() ); // text node
+}
+// <--
+
+
+void SwNodeNum::NotifyNode()
+{
+ ValidateMe();
+
+ if (mpTxtNode)
+ {
+ mpTxtNode->NumRuleChgd();
+ }
+}
+
+bool SwNodeNum::LessThan(const SwNumberTreeNode & rNode) const
+{
+ bool bResult = false;
+ const SwNodeNum & rTmpNode = static_cast<const SwNodeNum &>(rNode);
+
+ if (mpTxtNode == NULL && rTmpNode.mpTxtNode != NULL)
+ bResult = true;
+ else if (mpTxtNode != NULL && rTmpNode.mpTxtNode != NULL)
+ {
+ // --> OD 2007-10-31 #i83479# - refactoring
+ // simplify comparison by comparing the indexes of the text nodes
+ bResult = ( mpTxtNode->GetIndex() < rTmpNode.mpTxtNode->GetIndex() ) ? true : false;
+ // <--
+ }
+
+ return bResult;
+}
+
+bool SwNodeNum::IsRestart() const
+{
+ bool bIsRestart = false;
+
+ if ( GetTxtNode() )
+ {
+ bIsRestart = GetTxtNode()->IsListRestart();
+ }
+
+ return bIsRestart;
+}
+
+bool SwNodeNum::IsCountPhantoms() const
+{
+ bool bResult = true;
+
+ // --> OD 2006-04-21 #i64311#
+ // phantoms aren't counted in consecutive numbering rules
+ if ( mpNumRule )
+ bResult = !mpNumRule->IsContinusNum() &&
+ mpNumRule->IsCountPhantoms();
+ else
+ {
+ OSL_FAIL( "<SwNodeNum::IsCountPhantoms(): missing numbering rule - please inform OD" );
+ }
+ // <--
+
+ return bResult;
+}
+
+SwNumberTree::tSwNumTreeNumber SwNodeNum::GetStartValue() const
+{
+ SwNumberTree::tSwNumTreeNumber aResult = 1;
+
+ if ( IsRestart() && GetTxtNode() )
+ {
+ aResult = GetTxtNode()->GetActualListStartValue();
+ }
+ else
+ {
+ SwNumRule * pRule = GetNumRule();
+
+ if (pRule)
+ {
+ int nLevel = GetParent() ? GetLevelInListTree() : 0;
+
+ if (nLevel >= 0 && nLevel < MAXLEVEL)
+ {
+ const SwNumFmt * pFmt = pRule->GetNumFmt( static_cast<sal_uInt16>(nLevel));
+
+ if (pFmt)
+ aResult = pFmt->GetStart();
+ }
+ }
+ }
+
+ return aResult;
+}
+
+void SwNodeNum::HandleNumberTreeRootNodeDelete( SwNodeNum& rNodeNum )
+{
+ SwNodeNum* pRootNode = rNodeNum.GetParent()
+ ? dynamic_cast<SwNodeNum*>(rNodeNum.GetRoot())
+ : &rNodeNum;
+ if ( !pRootNode )
+ {
+ // no root node -> nothing do.
+ return;
+ }
+
+ // unregister all number tree node entries, which correspond to a text node,
+ // about the deletion of the number tree root node.
+ _UnregisterMeAndChildrenDueToRootDelete( *pRootNode );
+}
+
+void SwNodeNum::_UnregisterMeAndChildrenDueToRootDelete( SwNodeNum& rNodeNum )
+{
+ const bool bIsPhantom( rNodeNum.IsPhantom() );
+ tSwNumberTreeChildren::size_type nAllowedChildCount( 0 );
+ bool bDone( false );
+ while ( !bDone &&
+ rNodeNum.GetChildCount() > nAllowedChildCount )
+ {
+ SwNodeNum* pChildNode( dynamic_cast<SwNodeNum*>((*rNodeNum.mChildren.begin())) );
+ if ( !pChildNode )
+ {
+ OSL_FAIL( "<SwNodeNum::_UnregisterMeAndChildrenDueToRootDelete(..)> - unknown number tree node child" );
+ ++nAllowedChildCount;
+ continue;
+ }
+
+ // Unregistering the last child of a phantom will destroy the phantom.
+ // Thus <rNodeNum> will be destroyed and access on <rNodeNum> has to
+ // be suppressed.
+ if ( bIsPhantom && rNodeNum.GetChildCount() == 1 )
+ {
+ bDone = true;
+ }
+
+ _UnregisterMeAndChildrenDueToRootDelete( *pChildNode );
+ }
+
+ if ( !bIsPhantom )
+ {
+ SwTxtNode* pTxtNode( rNodeNum.GetTxtNode() );
+ if ( pTxtNode )
+ {
+ pTxtNode->RemoveFromList();
+ // --> clear all list attributes and the list style
+ SvUShortsSort aResetAttrsArray;
+ aResetAttrsArray.Insert( RES_PARATR_LIST_ID );
+ aResetAttrsArray.Insert( RES_PARATR_LIST_LEVEL );
+ aResetAttrsArray.Insert( RES_PARATR_LIST_ISRESTART );
+ aResetAttrsArray.Insert( RES_PARATR_LIST_RESTARTVALUE );
+ aResetAttrsArray.Insert( RES_PARATR_LIST_ISCOUNTED );
+ aResetAttrsArray.Insert( RES_PARATR_NUMRULE );
+ SwPaM aPam( *pTxtNode );
+ pTxtNode->GetDoc()->ResetAttrs( aPam, sal_False,
+ &aResetAttrsArray,
+ false );
+ // <--
+ }
+ }
+}
+// <--
+
+// --> OD 2007-09-06 #i81002#
+const SwNodeNum* SwNodeNum::GetPrecedingNodeNumOf( const SwTxtNode& rTxtNode ) const
+{
+ const SwNodeNum* pPrecedingNodeNum( 0 );
+
+ // --> OD 2007-10-31 #i83479#
+ SwNodeNum aNodeNumForTxtNode( const_cast<SwTxtNode*>(&rTxtNode) );
+ // <--
+
+ pPrecedingNodeNum = dynamic_cast<const SwNodeNum*>(
+ GetRoot()
+ ? GetRoot()->GetPrecedingNodeOf( aNodeNumForTxtNode )
+ : GetPrecedingNodeOf( aNodeNumForTxtNode ) );
+
+ return pPrecedingNodeNum;
+}
+// <--
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/source/core/SwNumberTree/SwNumberTree.cxx b/sw/source/core/SwNumberTree/SwNumberTree.cxx
new file mode 100644
index 000000000000..03ccf0e71bad
--- /dev/null
+++ b/sw/source/core/SwNumberTree/SwNumberTree.cxx
@@ -0,0 +1,1321 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_sw.hxx"
+
+#include <algorithm>
+#include <functional>
+#include <SwNumberTree.hxx>
+
+using std::vector;
+using std::find;
+
+#if OSL_DEBUG_LEVEL > 1
+unsigned long SwNumberTreeNode::nInstances = 0;
+#endif
+
+SwNumberTreeNode::SwNumberTreeNode()
+ : mChildren(),
+ mpParent( 0 ),
+ mnNumber( 0 ),
+ mbContinueingPreviousSubTree( false ),
+ mbPhantom( false ),
+ mItLastValid()
+{
+ mItLastValid = mChildren.end();
+
+#if OSL_DEBUG_LEVEL > 1
+ mnSerial = nInstances;
+ nInstances++;
+#endif
+}
+
+SwNumberTreeNode::~SwNumberTreeNode()
+{
+ if (GetChildCount() > 0)
+ {
+ if (HasOnlyPhantoms())
+ {
+ delete *mChildren.begin();
+
+ mChildren.clear();
+ mItLastValid = mChildren.end();
+ }
+ else
+ {
+ OSL_FAIL("lost children!");
+ }
+ }
+
+ OSL_ENSURE( IsPhantom() || mpParent == NULL, ": I'm not supposed to have a parent.");
+
+#if OSL_DEBUG_LEVEL > 1
+ nInstances--;
+#endif
+
+ mpParent = (SwNumberTreeNode *) 0xdeadbeef;
+
+ OSL_ENSURE(mChildren.empty(), "children left!");
+}
+
+SwNumberTreeNode * SwNumberTreeNode::CreatePhantom()
+{
+ SwNumberTreeNode * pNew = NULL;
+
+ if (! mChildren.empty() &&
+ (*mChildren.begin())->IsPhantom())
+ {
+ OSL_FAIL("phantom already present");
+ }
+ else
+ {
+ pNew = Create();
+ pNew->SetPhantom(true);
+ pNew->mpParent = this;
+
+ std::pair<tSwNumberTreeChildren::iterator, bool> aInsert =
+ mChildren.insert(pNew);
+
+ if (! aInsert.second)
+ {
+ OSL_FAIL("insert of phantom failed!");
+
+ delete pNew;
+ pNew = NULL;
+ }
+ }
+
+ return pNew;
+}
+
+SwNumberTreeNode * SwNumberTreeNode::GetRoot() const
+{
+ SwNumberTreeNode * pResult = mpParent;
+
+ if (pResult)
+ while (pResult->mpParent)
+ pResult = pResult->mpParent;
+
+ return pResult;
+}
+
+void SwNumberTreeNode::ClearObsoletePhantoms()
+{
+ tSwNumberTreeChildren::iterator aIt = mChildren.begin();
+
+ if (aIt != mChildren.end() && (*aIt)->IsPhantom())
+ {
+ (*aIt)->ClearObsoletePhantoms();
+
+ if ((*aIt)->mChildren.empty())
+ {
+ // --> OD 2006-01-17 #i60652#
+ // Because <mChildren.erase(aIt)> could destroy the element, which
+ // is referenced by <mItLastValid>, it's needed to adjust
+ // <mItLastValid> before erasing <aIt>.
+ SetLastValid(mChildren.end());
+ // <--
+
+ delete *aIt;
+ mChildren.erase(aIt);
+ }
+ }
+}
+
+void SwNumberTreeNode::ValidateHierarchical(const SwNumberTreeNode * pNode) const
+{
+ tSwNumberTreeChildren::const_iterator aValidateIt =
+ GetIterator(pNode);
+
+ if (aValidateIt != mChildren.end())
+ {
+ OSL_ENSURE((*aValidateIt)->mpParent == this, "wrong parent");
+
+ tSwNumberTreeChildren::const_iterator aIt = mItLastValid;
+
+ // -->
+ // improvement:
+ // - Only one time checked for <mChildren.end()>.
+ // - Less checks for each loop run.
+ // correction:
+ // - consider case that current node isn't counted and isn't the first
+ // child of its parent. In this case the number of last counted child
+ // of the previous node determines the start value for the following
+ // children loop, if all children have to be validated and the first
+ // one doesn't restart the counting.
+ SwNumberTree::tSwNumTreeNumber nTmpNumber( 0 );
+ if (aIt != mChildren.end())
+ nTmpNumber = (*aIt)->mnNumber;
+ else
+ {
+ aIt = mChildren.begin();
+ (*aIt)->mbContinueingPreviousSubTree = false;
+
+ // determine default start value
+ // consider the case that the first child isn't counted.
+ nTmpNumber = (*aIt)->GetStartValue();
+ if ( !(*aIt)->IsCounted() &&
+ ( !(*aIt)->HasCountedChildren() || (*aIt)->IsPhantom() ) )
+ {
+ --nTmpNumber;
+ }
+
+ // determine special start value for the case that first child
+ // doesn't restart the numbering and the parent node isn't counted
+ // and isn't the first child.
+ const bool bParentCounted( IsCounted() &&
+ ( !IsPhantom() ||
+ HasPhantomCountedParent() ) );
+ if ( !(*aIt)->IsRestart() &&
+ GetParent() && !bParentCounted )
+ {
+ tSwNumberTreeChildren::const_iterator aParentChildIt =
+ GetParent()->GetIterator( this );
+ while ( aParentChildIt != GetParent()->mChildren.begin() )
+ {
+ --aParentChildIt;
+ SwNumberTreeNode* pPrevNode( *aParentChildIt );
+ if ( pPrevNode->GetChildCount() > 0 )
+ {
+ (*aIt)->mbContinueingPreviousSubTree = true;
+ nTmpNumber = (*(pPrevNode->mChildren.rbegin()))->GetNumber();
+ if ( (*aIt)->IsCounted() &&
+ ( !(*aIt)->IsPhantom() ||
+ (*aIt)->HasPhantomCountedParent() ) )
+ {
+ ++nTmpNumber;
+ }
+ break;
+ }
+ else if ( pPrevNode->IsCounted() )
+ {
+ break;
+ }
+ else
+ {
+ // Previous node has no children and is not counted.
+ // Thus, next turn and check for the previous node.
+ }
+ }
+ }
+
+ (*aIt)->mnNumber = nTmpNumber;
+ }
+
+ while (aIt != aValidateIt)
+ {
+ ++aIt;
+ (*aIt)->mbContinueingPreviousSubTree = false;
+
+ // --> only for counted nodes the number
+ // has to be adjusted, compared to the previous node.
+ // this condition is hold also for nodes, which restart the numbering.
+ if ( (*aIt)->IsCounted() )
+ {
+ if ((*aIt)->IsRestart())
+ nTmpNumber = (*aIt)->GetStartValue();
+ else
+ ++nTmpNumber;
+ }
+ // <--
+
+ (*aIt)->mnNumber = nTmpNumber;
+ }
+ // <--
+
+ SetLastValid(aIt, true);
+ }
+}
+
+void SwNumberTreeNode::ValidateContinuous(const SwNumberTreeNode * pNode) const
+{
+ tSwNumberTreeChildren::const_iterator aIt = mItLastValid;
+
+ SwNumberTree::tSwNumTreeNumber nTmpNumber = 0;
+
+ do
+ {
+ if (aIt == mChildren.end())
+ {
+ aIt = mChildren.begin();
+
+ nTmpNumber = GetStartValue();
+ }
+ else
+ ++aIt;
+
+ if (aIt != mChildren.end())
+ {
+ SwNumberTreeNode * pPred = (*aIt)->GetPred();
+
+ // --> OD 2006-04-21 #i64311#
+ // correct consideration of phantoms
+ // correct consideration of restart at a number tree node
+ if ( pPred )
+ {
+ if ( !(*aIt)->IsCounted() )
+ // --> OD 2006-05-12 #i65284#
+ nTmpNumber = pPred->GetNumber( pPred->GetParent() != (*aIt)->GetParent() );
+ // <--
+ else
+ {
+ if ( (*aIt)->IsRestart() )
+ nTmpNumber = (*aIt)->GetStartValue();
+ else
+ nTmpNumber = pPred->GetNumber( pPred->GetParent() != (*aIt)->GetParent() ) + 1;
+ }
+ }
+ else
+ {
+ if ( !(*aIt)->IsCounted() )
+ nTmpNumber = GetStartValue() - 1;
+ else
+ {
+ if ( (*aIt)->IsRestart() )
+ nTmpNumber = (*aIt)->GetStartValue();
+ else
+ nTmpNumber = GetStartValue();
+ }
+ }
+ // <--
+
+ (*aIt)->mnNumber = nTmpNumber;
+ }
+ }
+ while (aIt != mChildren.end() && *aIt != pNode);
+
+ // --> OD 2008-05-21 #i74748# - applied patch from garnier_romain
+ // number tree node has to be validated.
+ SetLastValid( aIt, true );
+ // <--
+}
+
+void SwNumberTreeNode::Validate(const SwNumberTreeNode * pNode) const
+{
+ if (! IsValid(pNode))
+ {
+ if (IsContinuous())
+ ValidateContinuous(pNode);
+ else
+ ValidateHierarchical(pNode);
+ }
+}
+
+void SwNumberTreeNode::ValidateTree()
+{
+ if (! IsContinuous())
+ {
+ {
+ tSwNumberTreeChildren::reverse_iterator aIt = mChildren.rbegin();
+
+ if (aIt != mChildren.rend())
+ Validate(*aIt);
+ }
+ {
+ tSwNumberTreeChildren::iterator aIt;
+
+ for (aIt = mChildren.begin(); aIt != mChildren.end(); ++aIt)
+ (*aIt)->ValidateTree();
+ }
+ }
+ else
+ {
+ SwNumberTreeNode * pNode = GetLastDescendant();
+
+ if (pNode && pNode->mpParent)
+ pNode->mpParent->Validate(pNode);
+ }
+}
+
+void SwNumberTreeNode::_GetNumberVector(vector<SwNumberTree::tSwNumTreeNumber> & rVector,
+ bool bValidate) const
+{
+ if (mpParent)
+ {
+ mpParent->_GetNumberVector(rVector, bValidate);
+ rVector.push_back(GetNumber(bValidate));
+ }
+}
+
+SwNumberTreeNode * SwNumberTreeNode::GetFirstNonPhantomChild()
+{
+ if (IsPhantom())
+ return (*mChildren.begin())->GetFirstNonPhantomChild();
+
+ return this;
+}
+
+/** Moves all children of this node that are greater than a given node
+ to the destination node.
+*/
+void SwNumberTreeNode::MoveGreaterChildren( SwNumberTreeNode& _rCompareNode,
+ SwNumberTreeNode& _rDestNode )
+{
+ if ( mChildren.size() == 0 )
+ return;
+
+ // determine first child, which has to move to <_rDestNode>
+ tSwNumberTreeChildren::iterator aItUpper( mChildren.end() );
+ if ((*mChildren.begin())->IsPhantom() &&
+ _rCompareNode.LessThan(*(*mChildren.begin())->GetFirstNonPhantomChild()))
+ {
+ aItUpper = mChildren.begin();
+ }
+ else
+ {
+ aItUpper = mChildren.upper_bound(&_rCompareNode);
+ }
+
+ // move children
+ if (aItUpper != mChildren.end())
+ {
+ tSwNumberTreeChildren::iterator aIt;
+ for (aIt = aItUpper; aIt != mChildren.end(); ++aIt)
+ (*aIt)->mpParent = &_rDestNode;
+
+ _rDestNode.mChildren.insert(aItUpper, mChildren.end());
+
+ // --> OD 2006-01-17 #i60652#
+ // Because <mChildren.erase(aItUpper, mChildren.end())> could destroy
+ // the element, which is referenced by <mItLastValid>, it's needed to
+ // adjust <mItLastValid> before erasing <aIt>.
+ SetLastValid( mChildren.end() );
+ // <--
+
+ mChildren.erase(aItUpper, mChildren.end());
+
+ // --> OD 2006-01-17 #i60652#
+ if ( !mChildren.empty() )
+ {
+ SetLastValid( --(mChildren.end()) );
+ }
+ // <--
+ }
+
+#ifdef __SW_NUMBER_TREE_SANITY_CHECK
+ if (! IsSane(false) || ! IsSane(&_rDestNode))
+ clog << __FUNCTION__ << "insanity!" << endl;
+#endif
+}
+
+void SwNumberTreeNode::MoveChildren(SwNumberTreeNode * pDest)
+{
+ if (! mChildren.empty())
+ {
+ tSwNumberTreeChildren::iterator aItBegin = mChildren.begin();
+ SwNumberTreeNode * pMyFirst = *mChildren.begin();
+
+ // --> OD 2006-01-17 #i60652#
+ // Because <mChildren.erase(aItBegin)> could destroy the element,
+ // which is referenced by <mItLastValid>, it's needed to adjust
+ // <mItLastValid> before erasing <aItBegin>.
+ SetLastValid(mChildren.end());
+ // <--
+
+ if (pMyFirst->IsPhantom())
+ {
+ SwNumberTreeNode * pDestLast = NULL;
+
+ if (pDest->mChildren.empty())
+ pDestLast = pDest->CreatePhantom();
+ else
+ pDestLast = *pDest->mChildren.rbegin();
+
+ pMyFirst->MoveChildren(pDestLast);
+
+ delete pMyFirst;
+ mChildren.erase(aItBegin);
+
+ aItBegin = mChildren.begin();
+ }
+
+ tSwNumberTreeChildren::iterator aIt;
+ for (aIt = mChildren.begin(); aIt != mChildren.end(); ++aIt)
+ (*aIt)->mpParent = pDest;
+
+ pDest->mChildren.insert(mChildren.begin(), mChildren.end());
+ mChildren.clear();
+ // <stl::set.clear()> destroys all existing iterators.
+ // Thus, <mItLastValid> is also destroyed and reset becomes necessary
+ mItLastValid = mChildren.end();
+ }
+
+ OSL_ENSURE(mChildren.empty(), "MoveChildren failed!");
+
+#ifdef __SW_NUMBER_TREE_SANITY_CHECK
+ OSL_ENSURE(IsSane(false) && pDest->IsSane(false), "insanity!");
+#endif
+}
+
+void SwNumberTreeNode::AddChild( SwNumberTreeNode * pChild,
+ const int nDepth )
+{
+ /*
+ Algorithm:
+
+ Search first child A that is greater than pChild,
+ A may be the end of childs.
+ If nDepth > 0 then
+ {
+ if A is first child then
+ create new phantom child B at beginning of child list
+ else
+ B is A
+
+ Add child to B with depth nDepth - 1.
+ }
+ else
+ {
+ Insert pNode before A.
+
+ if A has predecessor B then
+ remove children of B that are greater as A and insert them as
+ children of A.
+ }
+
+*/
+
+ if ( nDepth < 0 )
+ {
+ OSL_FAIL( "<SwNumberTreeNode::AddChild(..)> - parameter <nDepth> out of valid range. Serious defect -> please inform OD." );
+ return;
+ }
+
+ if ( pChild->GetParent() != NULL || pChild->GetChildCount() > 0 )
+ {
+ OSL_FAIL("only orphans allowed.");
+ return;
+ }
+
+ if (nDepth > 0)
+ {
+ tSwNumberTreeChildren::iterator aInsertDeepIt =
+ mChildren.upper_bound(pChild);
+
+ OSL_ENSURE(! (aInsertDeepIt != mChildren.end() &&
+ (*aInsertDeepIt)->IsPhantom()), " unexspected phantom");
+
+
+ if (aInsertDeepIt == mChildren.begin())
+ {
+ SwNumberTreeNode * pNew = CreatePhantom();
+
+ SetLastValid(mChildren.end());
+
+ if (pNew)
+ pNew->AddChild(pChild, nDepth - 1);
+ }
+ else
+ {
+ --aInsertDeepIt;
+ (*aInsertDeepIt)->AddChild(pChild, nDepth - 1);
+ }
+
+ }
+ else
+ {
+ pChild->PreAdd();
+ std::pair<tSwNumberTreeChildren::iterator, bool> aResult =
+ mChildren.insert(pChild);
+
+ if (aResult.second)
+ {
+ pChild->mpParent = this;
+ bool bNotification = pChild->IsNotificationEnabled();
+ tSwNumberTreeChildren::iterator aInsertedIt = aResult.first;
+
+ if (aInsertedIt != mChildren.begin())
+ {
+ tSwNumberTreeChildren::iterator aPredIt = aInsertedIt;
+ --aPredIt;
+
+ // -->
+ // Move greater children of previous node to new child.
+ // This has to be done recursively on the children levels.
+ // Initialize loop variables <pPrevChildNode> and <pDestNode>
+ // for loop on children levels.
+ SwNumberTreeNode* pPrevChildNode( *aPredIt );
+ SwNumberTreeNode* pDestNode( pChild );
+ while ( pDestNode && pPrevChildNode &&
+ pPrevChildNode->GetChildCount() > 0 )
+ {
+ // move children
+ pPrevChildNode->MoveGreaterChildren( *pChild, *pDestNode );
+
+ // prepare next loop:
+ // - search of last child of <pPrevChildNode
+ // - If found, determine destination node
+ if ( pPrevChildNode->GetChildCount() > 0 )
+ {
+ tSwNumberTreeChildren::reverse_iterator aIt =
+ pPrevChildNode->mChildren.rbegin();
+ pPrevChildNode = *aIt;
+ // determine new destination node
+ if ( pDestNode->GetChildCount() > 0 )
+ {
+ pDestNode = *(pDestNode->mChildren.begin());
+ if ( !pDestNode->IsPhantom() )
+ {
+ pDestNode = pDestNode->mpParent->CreatePhantom();
+ }
+ }
+ else
+ {
+ pDestNode = pDestNode->CreatePhantom();
+ }
+ }
+ else
+ {
+ // ready -> break loop.
+ break;
+ }
+ }
+ // assure that unnessary created phantoms at <pChild> are deleted.
+ pChild->ClearObsoletePhantoms();
+ // <--
+
+ if ((*aPredIt)->IsValid())
+ SetLastValid(aPredIt);
+ }
+ else
+ SetLastValid(mChildren.end());
+
+ ClearObsoletePhantoms();
+
+ if( bNotification )
+ {
+ // invalidation of not counted parent
+ // and notification of its siblings.
+ if ( !IsCounted() )
+ {
+ InvalidateMe();
+ NotifyInvalidSiblings();
+ }
+ NotifyInvalidChildren();
+ }
+ }
+ }
+
+#ifdef __SW_NUMBER_TREE_SANITY_CHECK
+ if (! IsSane(false))
+ clog << __FUNCTION__ << ": insanity!" << endl;
+#endif
+}
+
+void SwNumberTreeNode::RemoveChild(SwNumberTreeNode * pChild)
+{
+ /*
+ Algorithm:
+
+ if pChild has predecessor A then
+ B is A
+ else
+ create phantom child B at beginning of child list
+
+ Move children of pChild to B.
+ */
+
+ if (pChild->IsPhantom())
+ {
+ OSL_FAIL("not applicable to phantoms!");
+
+ return;
+ }
+
+ tSwNumberTreeChildren::const_iterator aRemoveIt = GetIterator(pChild);
+
+ if (aRemoveIt != mChildren.end())
+ {
+ SwNumberTreeNode * pRemove = *aRemoveIt;
+
+ pRemove->mpParent = NULL;
+
+ tSwNumberTreeChildren::const_iterator aItPred = mChildren.end();
+
+ if (aRemoveIt == mChildren.begin())
+ {
+ if (! pRemove->mChildren.empty())
+ {
+ CreatePhantom();
+
+ aItPred = mChildren.begin();
+ }
+ }
+ else
+ {
+ aItPred = aRemoveIt;
+ --aItPred;
+ }
+
+ if (! pRemove->mChildren.empty())
+ {
+ pRemove->MoveChildren(*aItPred);
+ (*aItPred)->InvalidateTree();
+ (*aItPred)->NotifyInvalidChildren();
+ }
+
+ // --> OD 2006-01-17 #i60652#
+ // Because <mChildren.erase(aRemoveIt)> could destroy the element,
+ // which is referenced by <mItLastValid>, it's needed to adjust
+ // <mItLastValid> before erasing <aRemoveIt>.
+ if (aItPred != mChildren.end() && (*aItPred)->IsPhantom())
+ SetLastValid(mChildren.end());
+ else
+ SetLastValid(aItPred);
+ // <--
+
+ mChildren.erase(aRemoveIt);
+
+ NotifyInvalidChildren();
+ }
+ else
+ {
+ OSL_FAIL("RemoveChild: failed!");
+ }
+
+ pChild->PostRemove();
+}
+
+void SwNumberTreeNode::RemoveMe()
+{
+ if (mpParent)
+ {
+ SwNumberTreeNode * pSavedParent = mpParent;
+
+ pSavedParent->RemoveChild(this);
+
+ while (pSavedParent && pSavedParent->IsPhantom() &&
+ pSavedParent->HasOnlyPhantoms())
+ pSavedParent = pSavedParent->GetParent();
+
+ if (pSavedParent)
+ pSavedParent->ClearObsoletePhantoms();
+
+#ifdef __SW_NUMBER_TREE_SANITY_CHECK
+ if (! IsSane(false))
+ clog << __FUNCTION__ << ": insanity!" << endl;
+#endif
+ }
+}
+
+bool SwNumberTreeNode::IsValid() const
+{
+ return mpParent ? mpParent->IsValid(this) : false;
+}
+
+SwNumberTree::tSwNumTreeNumber SwNumberTreeNode::GetNumber(bool bValidate)
+ const
+{
+ if (bValidate && mpParent)
+ mpParent->Validate(this);
+
+ return mnNumber;
+}
+
+bool SwNumberTreeNode::IsContinueingPreviousSubTree() const
+{
+ return mbContinueingPreviousSubTree;
+}
+
+
+vector<SwNumberTree::tSwNumTreeNumber> SwNumberTreeNode::GetNumberVector() const
+{
+ vector<SwNumberTree::tSwNumTreeNumber> aResult;
+
+ _GetNumberVector(aResult);
+
+ return aResult;
+}
+
+bool SwNumberTreeNode::IsValid(const SwNumberTreeNode * pChild) const
+{
+ bool bResult = false;
+
+ if (mItLastValid != mChildren.end())
+ {
+ if (pChild && pChild->mpParent == this)
+ {
+ bResult = ! (*mItLastValid)->LessThan(*pChild);
+ }
+ }
+
+ return bResult;
+}
+
+bool SwNumberTreeNode::IsPhantom() const
+{
+ return mbPhantom;
+}
+
+void SwNumberTreeNode::SetPhantom(bool _bPhantom)
+{
+ mbPhantom = _bPhantom;
+}
+
+bool SwNumberTreeNode::HasOnlyPhantoms() const
+{
+ bool bResult = false;
+
+ if (GetChildCount() == 1)
+ {
+ tSwNumberTreeChildren::const_iterator aIt = mChildren.begin();
+
+ bResult = (*aIt)->IsPhantom() && (*aIt)->HasOnlyPhantoms();
+ }
+ else if (GetChildCount() == 0)
+ bResult = true;
+
+ return bResult;
+}
+
+bool SwNumberTreeNode::IsCounted() const
+{
+ return !IsPhantom() ||
+ ( IsCountPhantoms() && HasCountedChildren() );
+}
+
+bool SwNumberTreeNode::HasPhantomCountedParent() const
+{
+ bool bRet( false );
+
+ OSL_ENSURE( IsPhantom(),
+ "<SwNumberTreeNode::HasPhantomCountedParent()> - wrong usage of method - it's only for phantoms" );
+ if ( IsPhantom() && mpParent )
+ {
+ if ( mpParent == GetRoot() )
+ {
+ bRet = true;
+ }
+ else if ( !mpParent->IsPhantom() )
+ {
+ bRet = mpParent->IsCounted();
+ }
+ else
+ {
+ bRet = mpParent->IsCounted() && mpParent->HasPhantomCountedParent();
+ }
+ }
+
+ return bRet;
+}
+
+bool SwNumberTreeNode::IsFirst(const SwNumberTreeNode * pNode) const
+{
+ tSwNumberTreeChildren::const_iterator aIt = mChildren.begin();
+
+ if ((*aIt)->IsPhantom())
+ ++aIt;
+
+ return *aIt == pNode;
+}
+
+bool SwNumberTreeNode::IsFirst() const
+{
+ bool bResult = true;
+
+ if (GetParent())
+ {
+ if (GetParent()->IsFirst(this))
+ {
+ SwNumberTreeNode * pNode = GetParent();
+
+ while (pNode)
+ {
+ if (!pNode->IsPhantom() && pNode->GetParent())
+ {
+ bResult = false;
+ break;
+ }
+
+ pNode = pNode->GetParent();
+ }
+
+ // If node isn't the first child, it is the second child and the
+ // first child is a phanton. In this case check, if the first phantom
+ // child have only phanton childs
+ if ( bResult &&
+ this != *(GetParent()->mChildren.begin()) &&
+ !(*(GetParent()->mChildren.begin()))->HasOnlyPhantoms() )
+ {
+ bResult = false;
+ }
+ }
+ else
+ bResult = false;
+ }
+
+ return bResult;
+}
+
+void SwNumberTreeNode::SetLevelInListTree( const int nLevel )
+{
+ if ( nLevel < 0 )
+ {
+ OSL_FAIL( "<SwNumberTreeNode::SetLevelInListTree(..)> - parameter <nLevel> out of valid range. Serious defect -> please inform OD." );
+ return;
+ }
+
+ OSL_ENSURE( GetParent(),
+ "<SwNumberTreeNode::SetLevelInListTree(..)> - can only be called for number tree nodes in a list tree" );
+ if ( GetParent() )
+ {
+ if ( nLevel != GetLevelInListTree() )
+ {
+ SwNumberTreeNode* pRootTreeNode = GetRoot();
+ OSL_ENSURE( pRootTreeNode,
+ "<SwNumberTreeNode::SetLevelInListTree(..)> - no root tree node found. Serious defect -> please inform OD." );
+
+ RemoveMe();
+ pRootTreeNode->AddChild( this, nLevel );
+ }
+ }
+}
+
+int SwNumberTreeNode::GetLevelInListTree() const
+{
+ if (mpParent)
+ return mpParent->GetLevelInListTree() + 1;
+
+ return -1;
+}
+
+SwNumberTreeNode::tSwNumberTreeChildren::size_type
+SwNumberTreeNode::GetChildCount() const
+{
+ return mChildren.size();
+}
+
+#ifdef __SW_NUMBER_TREE_SANITY_CHECK
+bool SwNumberTreeNode::IsSane(bool bRecursive) const
+{
+ vector<const SwNumberTreeNode*> aParents;
+
+ return IsSane(bRecursive, aParents);
+}
+
+bool SwNumberTreeNode::IsSane(bool bRecursive,
+ vector<const SwNumberTreeNode *> rParents)
+ const
+{
+ bool bResult = true;
+
+ tSwNumberTreeChildren::const_iterator aIt;
+
+ if (find(rParents.begin(), rParents.end(), this) != rParents.end())
+ {
+ OSL_FAIL(" I'm my own ancestor!");
+
+ bResult = false;
+ }
+
+ if (! rParents.empty() && rParents.back() != mpParent)
+ {
+ OSL_FAIL(" I'm a bastard!");
+
+ bResult = false;
+ }
+
+ rParents.push_back(this);
+
+ bool bFirst = true;
+ for (aIt = mChildren.begin(); aIt != mChildren.end(); ++aIt)
+ {
+ if (*aIt)
+ {
+ if ((*aIt)->IsPhantom())
+ {
+ if ((*aIt)->HasOnlyPhantoms())
+ {
+ bResult = false;
+ }
+
+ if (! bFirst)
+ {
+ OSL_FAIL(" found phantom not at first position.");
+
+ bResult = false;
+ }
+ }
+
+ if ((*aIt)->mpParent != (SwNumberTreeNode *) this)
+ {
+ OSL_FAIL("found a bastard");
+
+ bResult = false;
+ }
+
+ if (mpParent)
+ {
+ if (!(*aIt)->IsPhantom() && (*aIt)->LessThan(*this))
+ {
+ OSL_FAIL(" found child less than me");
+
+ bResult = false;
+ }
+ }
+ }
+ else
+ {
+ OSL_FAIL("found child that is NULL");
+ bResult = false;
+ }
+
+ if (bRecursive)
+ bResult = (*aIt)->IsSane(bRecursive, rParents) && bResult;
+ }
+
+ rParents.pop_back();
+
+ return bResult;
+}
+#endif // __SW_NUMBER_TREE_SANITY_CHECK
+
+SwNumberTreeNode::tSwNumberTreeChildren::const_iterator
+SwNumberTreeNode::GetIterator(const SwNumberTreeNode * pChild) const
+{
+ tSwNumberTreeChildren::const_iterator aItResult =
+ mChildren.find(const_cast<SwNumberTreeNode *>(pChild));
+
+ OSL_ENSURE( aItResult != mChildren.end(),
+ "something went wrong getting the iterator for a child");
+
+ return aItResult;
+}
+
+#if OSL_DEBUG_LEVEL > 1
+unsigned long SwNumberTreeNode::GetInstances()
+{
+ return nInstances;
+}
+
+unsigned long SwNumberTreeNode::GetSerial()
+{
+ return mnSerial;
+}
+#endif
+
+bool SwNumberTreeNodeLessThan(const SwNumberTreeNode * pA,
+ const SwNumberTreeNode * pB)
+{
+ bool bResult = false;
+
+ if (pA == NULL && pB != NULL)
+ bResult = true;
+ else if (pA != NULL && pB != NULL)
+ bResult = pA->LessThan(*pB);
+
+ return bResult;
+}
+
+SwNumberTreeNode * SwNumberTreeNode::GetLastDescendant() const
+{
+ SwNumberTreeNode * pResult = NULL;
+ tSwNumberTreeChildren::const_reverse_iterator aIt = mChildren.rbegin();
+
+ if (aIt != mChildren.rend())
+ {
+ pResult = (*aIt)->GetLastDescendant();
+
+ if (! pResult)
+ pResult = *aIt;
+ }
+
+ return pResult;
+}
+
+bool SwNumberTreeNode::LessThan(const SwNumberTreeNode & rTreeNode) const
+{
+ return this < &rTreeNode;
+}
+
+SwNumberTreeNode * SwNumberTreeNode::GetPred(bool bSibling) const
+{
+ SwNumberTreeNode * pResult = NULL;
+
+ if (mpParent)
+ {
+ tSwNumberTreeChildren::const_iterator aIt =
+ mpParent->GetIterator(this);
+
+ if ( aIt == mpParent->mChildren.begin() )
+ {
+ // --> OD 2006-04-24 #i64311#
+ // root node is no valid predecessor
+ pResult = mpParent->GetParent() ? mpParent : NULL;
+ // <--
+ }
+ else
+ {
+ --aIt;
+
+ if ( !bSibling )
+ pResult = (*aIt)->GetLastDescendant();
+ else
+ pResult = (*aIt);
+
+ if (! pResult)
+ pResult = (*aIt);
+ }
+ }
+
+ return pResult;
+}
+
+void SwNumberTreeNode::SetLastValid
+ ( SwNumberTreeNode::tSwNumberTreeChildren::const_iterator aItValid,
+ bool bValidating ) const
+{
+ OSL_ENSURE( (aItValid == mChildren.end() || GetIterator(*aItValid) != mChildren.end()),
+ "last-valid iterator");
+
+ if (
+ bValidating ||
+ aItValid == mChildren.end() ||
+ (mItLastValid != mChildren.end() &&
+ (*aItValid)->LessThan(**mItLastValid))
+ )
+ {
+ mItLastValid = aItValid;
+ // invalidation of children of next not counted is needed
+ if ( GetParent() )
+ {
+ tSwNumberTreeChildren::const_iterator aParentChildIt =
+ GetParent()->GetIterator( this );
+ ++aParentChildIt;
+ if ( aParentChildIt != GetParent()->mChildren.end() )
+ {
+ SwNumberTreeNode* pNextNode( *aParentChildIt );
+ if ( !pNextNode->IsCounted() )
+ {
+ pNextNode->InvalidateChildren();
+ }
+ }
+ }
+ }
+
+ {
+ if (IsContinuous())
+ {
+ tSwNumberTreeChildren::const_iterator aIt = mItLastValid;
+
+ if (aIt != mChildren.end())
+ ++aIt;
+ else
+ aIt = mChildren.begin();
+
+ while (aIt != mChildren.end())
+ {
+ (*aIt)->InvalidateTree();
+
+ ++aIt;
+ }
+
+ SetLastValid(bValidating);
+ }
+ }
+}
+
+void SwNumberTreeNode::SetLastValid(bool bValidating) const
+{
+ if (mpParent)
+ {
+ tSwNumberTreeChildren::const_iterator aIt = mpParent->GetIterator(this);
+
+ mpParent->SetLastValid(aIt, bValidating);
+ }
+}
+
+void SwNumberTreeNode::InvalidateTree() const
+{
+ // do not call SetInvalid, would cause loop !!!
+ mItLastValid = mChildren.end();
+
+ tSwNumberTreeChildren::const_iterator aIt;
+
+ for (aIt = mChildren.begin(); aIt != mChildren.end(); ++aIt)
+ (*aIt)->InvalidateTree();
+}
+
+void SwNumberTreeNode::Invalidate(SwNumberTreeNode * pChild)
+{
+ if (pChild->IsValid())
+ {
+ tSwNumberTreeChildren::const_iterator aIt = GetIterator(pChild);
+
+ if (aIt != mChildren.begin())
+ --aIt;
+ else
+ aIt = mChildren.end();
+
+ SetLastValid(aIt);
+
+ }
+}
+
+void SwNumberTreeNode::InvalidateMe()
+{
+ if (mpParent)
+ mpParent->Invalidate(this);
+}
+
+void SwNumberTreeNode::ValidateMe()
+{
+ if (mpParent)
+ mpParent->Validate(this);
+}
+
+void SwNumberTreeNode::Notify()
+{
+ if (IsNotifiable())
+ {
+ if (! IsPhantom())
+ NotifyNode();
+
+ tSwNumberTreeChildren::iterator aIt;
+
+ for (aIt = mChildren.begin(); aIt != mChildren.end(); ++aIt)
+ (*aIt)->Notify();
+ }
+}
+
+void SwNumberTreeNode::NotifyInvalidChildren()
+{
+ if (IsNotifiable())
+ {
+ tSwNumberTreeChildren::const_iterator aIt = mItLastValid;
+
+ if (aIt == mChildren.end())
+ aIt = mChildren.begin();
+ else
+ ++aIt;
+
+ while (aIt != mChildren.end())
+ {
+ (*aIt)->Notify();
+
+ ++aIt;
+ }
+ // notification of next not counted node is also needed.
+ if ( GetParent() )
+ {
+ tSwNumberTreeChildren::const_iterator aParentChildIt =
+ GetParent()->GetIterator( this );
+ ++aParentChildIt;
+ if ( aParentChildIt != GetParent()->mChildren.end() )
+ {
+ SwNumberTreeNode* pNextNode( *aParentChildIt );
+ if ( !pNextNode->IsCounted() )
+ {
+ pNextNode->NotifyInvalidChildren();
+ }
+ }
+ }
+
+ // <--
+ }
+
+ if (IsContinuous() && mpParent)
+ mpParent->NotifyInvalidChildren();
+}
+
+void SwNumberTreeNode::NotifyInvalidSiblings()
+{
+ if (mpParent != NULL)
+ mpParent->NotifyInvalidChildren();
+}
+
+// --> OD 2007-09-07 #i81002#
+const SwNumberTreeNode* SwNumberTreeNode::GetPrecedingNodeOf(
+ const SwNumberTreeNode& rNode ) const
+{
+ const SwNumberTreeNode* pPrecedingNode( 0 );
+
+ if ( GetChildCount() > 0 )
+ {
+ tSwNumberTreeChildren::const_iterator aUpperBoundIt =
+ mChildren.upper_bound( const_cast<SwNumberTreeNode*>(&rNode) );
+ if ( aUpperBoundIt != mChildren.begin() )
+ {
+ --aUpperBoundIt;
+ pPrecedingNode = (*aUpperBoundIt)->GetPrecedingNodeOf( rNode );
+ }
+ }
+
+ if ( pPrecedingNode == 0 && GetRoot() )
+ {
+ // <this> node has no children or the given node precedes all its children
+ // and the <this> node isn't the root node.
+ // Thus, compare the given node with the <this> node in order to check,
+ // if the <this> node precedes the given node.
+ if ( !(rNode.LessThan( *this )) )
+ {
+ pPrecedingNode = this;
+ }
+ }
+
+ return pPrecedingNode;
+}
+// <--
+
+void SwNumberTreeNode::NotifyNodesOnListLevel( const int nListLevel )
+{
+ if ( nListLevel < 0 )
+ {
+ OSL_FAIL( "<SwNumberTreeNode::NotifyNodesOnListLevel(..)> - invalid list level provided" );
+ return;
+ }
+
+ SwNumberTreeNode* pRootNode = GetParent() ? GetRoot() : this;
+
+ pRootNode->NotifyChildrenOnDepth( nListLevel );
+}
+
+void SwNumberTreeNode::NotifyChildrenOnDepth( const int nDepth )
+{
+ OSL_ENSURE( nDepth >= 0,
+ "<SwNumberTreeNode::NotifyChildrenOnDepth(..)> - misusage" );
+
+ SwNumberTreeNode::tSwNumberTreeChildren::iterator aChildIter =
+ mChildren.begin();
+ while ( aChildIter != mChildren.end() )
+ {
+ if ( nDepth == 0 )
+ {
+ (*aChildIter)->NotifyNode();
+ }
+ else
+ {
+ (*aChildIter)->NotifyChildrenOnDepth( nDepth - 1 );
+ }
+
+ ++aChildIter;
+ }
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/source/core/access/acccell.cxx b/sw/source/core/access/acccell.cxx
new file mode 100644
index 000000000000..dbd1b5196593
--- /dev/null
+++ b/sw/source/core/access/acccell.cxx
@@ -0,0 +1,378 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+ /*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_sw.hxx"
+
+
+#include <osl/mutex.hxx>
+#include <com/sun/star/accessibility/AccessibleRole.hpp>
+#include <com/sun/star/accessibility/AccessibleStateType.hpp>
+#include <com/sun/star/accessibility/AccessibleEventId.hpp>
+#include <unotools/accessiblestatesethelper.hxx>
+#include <rtl/uuid.h>
+#include <vcl/svapp.hxx>
+#include <cellfrm.hxx>
+#include <tabfrm.hxx>
+#include <swtable.hxx>
+#include "crsrsh.hxx"
+#include "viscrs.hxx"
+#include <accfrmobj.hxx>
+#include <accfrmobjslist.hxx>
+#include "frmfmt.hxx"
+#include "cellatr.hxx"
+#include "accmap.hxx"
+#include <acccell.hxx>
+
+#ifndef _STLP_CFLOAT
+#include <cfloat>
+#endif
+
+#include <limits.h>
+
+using namespace ::com::sun::star;
+using namespace ::com::sun::star::accessibility;
+using ::rtl::OUString;
+using namespace sw::access;
+
+const sal_Char sServiceName[] = "com.sun.star.table.AccessibleCellView";
+const sal_Char sImplementationName[] = "com.sun.star.comp.Writer.SwAccessibleCellView";
+
+sal_Bool SwAccessibleCell::IsSelected()
+{
+ sal_Bool bRet = sal_False;
+
+ DBG_ASSERT( GetMap(), "no map?" );
+ const ViewShell *pVSh = GetMap()->GetShell();
+ DBG_ASSERT( pVSh, "no shell?" );
+ if( pVSh->ISA( SwCrsrShell ) )
+ {
+ const SwCrsrShell *pCSh = static_cast< const SwCrsrShell * >( pVSh );
+ if( pCSh->IsTableMode() )
+ {
+ const SwCellFrm *pCFrm =
+ static_cast< const SwCellFrm * >( GetFrm() );
+ SwTableBox *pBox =
+ const_cast< SwTableBox *>( pCFrm->GetTabBox() ); //SVPtrArr!
+ bRet = pCSh->GetTableCrsr()->GetBoxes().Seek_Entry( pBox );
+ }
+ }
+
+ return bRet;
+}
+
+void SwAccessibleCell::GetStates( ::utl::AccessibleStateSetHelper& rStateSet )
+{
+ SwAccessibleContext::GetStates( rStateSet );
+
+ // SELECTABLE
+ const ViewShell *pVSh = GetMap()->GetShell();
+ DBG_ASSERT( pVSh, "no shell?" );
+ if( pVSh->ISA( SwCrsrShell ) )
+ rStateSet.AddState( AccessibleStateType::SELECTABLE );
+
+ // SELECTED
+ if( IsSelected() )
+ {
+ rStateSet.AddState( AccessibleStateType::SELECTED );
+ OSL_ENSURE( bIsSelected, "bSelected out of sync" );
+ ::rtl::Reference < SwAccessibleContext > xThis( this );
+ GetMap()->SetCursorContext( xThis );
+ }
+}
+
+SwAccessibleCell::SwAccessibleCell( SwAccessibleMap *pInitMap,
+ const SwCellFrm *pCellFrm )
+ : SwAccessibleContext( pInitMap, AccessibleRole::TABLE_CELL, pCellFrm )
+ , bIsSelected( sal_False )
+{
+ SolarMutexGuard aGuard;
+ OUString sBoxName( pCellFrm->GetTabBox()->GetName() );
+ SetName( sBoxName );
+
+ bIsSelected = IsSelected();
+}
+
+sal_Bool SwAccessibleCell::_InvalidateMyCursorPos()
+{
+ sal_Bool bNew = IsSelected();
+ sal_Bool bOld;
+ {
+ osl::MutexGuard aGuard( aMutex );
+ bOld = bIsSelected;
+ bIsSelected = bNew;
+ }
+ if( bNew )
+ {
+ // remember that object as the one that has the caret. This is
+ // neccessary to notify that object if the cursor leaves it.
+ ::rtl::Reference < SwAccessibleContext > xThis( this );
+ GetMap()->SetCursorContext( xThis );
+ }
+
+ sal_Bool bChanged = bOld != bNew;
+ if( bChanged )
+ FireStateChangedEvent( AccessibleStateType::SELECTED, bNew );
+
+ return bChanged;
+}
+
+sal_Bool SwAccessibleCell::_InvalidateChildrenCursorPos( const SwFrm *pFrm )
+{
+ sal_Bool bChanged = sal_False;
+
+ const SwAccessibleChildSList aVisList( GetVisArea(), *pFrm, *GetMap() );
+ SwAccessibleChildSList::const_iterator aIter( aVisList.begin() );
+ while( aIter != aVisList.end() )
+ {
+ const SwAccessibleChild& rLower = *aIter;
+ const SwFrm *pLower = rLower.GetSwFrm();
+ if( pLower )
+ {
+ if( rLower.IsAccessible( GetMap()->GetShell()->IsPreView() ) )
+ {
+ ::rtl::Reference< SwAccessibleContext > xAccImpl(
+ GetMap()->GetContextImpl( pLower, sal_False ) );
+ if( xAccImpl.is() )
+ {
+ OSL_ENSURE( xAccImpl->GetFrm()->IsCellFrm(),
+ "table child is not a cell frame" );
+ bChanged |= static_cast< SwAccessibleCell *>(
+ xAccImpl.get() )->_InvalidateMyCursorPos();
+ }
+ else
+ bChanged = sal_True; // If the context is not know we
+ // don't know whether the selection
+ // changed or not.
+ }
+ else
+ {
+ // This is a box with sub rows.
+ bChanged |= _InvalidateChildrenCursorPos( pLower );
+ }
+ }
+ ++aIter;
+ }
+
+ return bChanged;
+}
+
+void SwAccessibleCell::_InvalidateCursorPos()
+{
+
+ const SwFrm *pParent = GetParent( SwAccessibleChild(GetFrm()), IsInPagePreview() );
+ OSL_ENSURE( pParent->IsTabFrm(), "parent is not a tab frame" );
+ const SwTabFrm *pTabFrm = static_cast< const SwTabFrm * >( pParent );
+ if( pTabFrm->IsFollow() )
+ pTabFrm = pTabFrm->FindMaster();
+
+ while( pTabFrm )
+ {
+ sal_Bool bChanged = _InvalidateChildrenCursorPos( pTabFrm );
+ if( bChanged )
+ {
+ ::rtl::Reference< SwAccessibleContext > xAccImpl(
+ GetMap()->GetContextImpl( pTabFrm, sal_False ) );
+ if( xAccImpl.is() )
+ {
+ AccessibleEventObject aEvent;
+ aEvent.EventId = AccessibleEventId::SELECTION_CHANGED;
+ xAccImpl->FireAccessibleEvent( aEvent );
+ }
+ }
+
+ pTabFrm = pTabFrm->GetFollow();
+ }
+}
+
+sal_Bool SwAccessibleCell::HasCursor()
+{
+ osl::MutexGuard aGuard( aMutex );
+ return bIsSelected;
+}
+
+SwAccessibleCell::~SwAccessibleCell()
+{
+}
+
+OUString SAL_CALL SwAccessibleCell::getAccessibleDescription (void)
+ throw (uno::RuntimeException)
+{
+ return GetName();
+}
+
+OUString SAL_CALL SwAccessibleCell::getImplementationName()
+ throw( uno::RuntimeException )
+{
+ return OUString(RTL_CONSTASCII_USTRINGPARAM(sImplementationName));
+}
+
+sal_Bool SAL_CALL SwAccessibleCell::supportsService(
+ const ::rtl::OUString& sTestServiceName)
+ throw (uno::RuntimeException)
+{
+ return sTestServiceName.equalsAsciiL( sServiceName,
+ sizeof(sServiceName)-1 ) ||
+ sTestServiceName.equalsAsciiL( sAccessibleServiceName,
+ sizeof(sAccessibleServiceName)-1 );
+}
+
+uno::Sequence< OUString > SAL_CALL SwAccessibleCell::getSupportedServiceNames()
+ throw( uno::RuntimeException )
+{
+ uno::Sequence< OUString > aRet(2);
+ OUString* pArray = aRet.getArray();
+ pArray[0] = OUString( RTL_CONSTASCII_USTRINGPARAM(sServiceName) );
+ pArray[1] = OUString( RTL_CONSTASCII_USTRINGPARAM(sAccessibleServiceName) );
+ return aRet;
+}
+
+void SwAccessibleCell::Dispose( sal_Bool bRecursive )
+{
+ const SwFrm *pParent = GetParent( SwAccessibleChild(GetFrm()), IsInPagePreview() );
+ ::rtl::Reference< SwAccessibleContext > xAccImpl(
+ GetMap()->GetContextImpl( pParent, sal_False ) );
+ if( xAccImpl.is() )
+ xAccImpl->DisposeChild( SwAccessibleChild(GetFrm()), bRecursive );
+ SwAccessibleContext::Dispose( bRecursive );
+}
+
+void SwAccessibleCell::InvalidatePosOrSize( const SwRect& rOldBox )
+{
+ const SwFrm *pParent = GetParent( SwAccessibleChild(GetFrm()), IsInPagePreview() );
+ ::rtl::Reference< SwAccessibleContext > xAccImpl(
+ GetMap()->GetContextImpl( pParent, sal_False ) );
+ if( xAccImpl.is() )
+ xAccImpl->InvalidateChildPosOrSize( SwAccessibleChild(GetFrm()), rOldBox );
+ SwAccessibleContext::InvalidatePosOrSize( rOldBox );
+}
+
+
+// ===== XAccessibleInterface ===========================================
+
+uno::Any SwAccessibleCell::queryInterface( const uno::Type& rType )
+ throw( uno::RuntimeException )
+{
+ if ( rType == ::getCppuType( static_cast< uno::Reference< XAccessibleValue > * >( 0 ) ) )
+ {
+ uno::Reference<XAccessibleValue> xValue = this;
+ uno::Any aRet;
+ aRet <<= xValue;
+ return aRet;
+ }
+ else
+ {
+ return SwAccessibleContext::queryInterface( rType );
+ }
+}
+
+//====== XTypeProvider ====================================================
+uno::Sequence< uno::Type > SAL_CALL SwAccessibleCell::getTypes()
+ throw(uno::RuntimeException)
+{
+ uno::Sequence< uno::Type > aTypes( SwAccessibleContext::getTypes() );
+
+ sal_Int32 nIndex = aTypes.getLength();
+ aTypes.realloc( nIndex + 1 );
+
+ uno::Type* pTypes = aTypes.getArray();
+ pTypes[nIndex] = ::getCppuType( static_cast< uno::Reference< XAccessibleValue > * >( 0 ) );
+
+ return aTypes;
+}
+
+uno::Sequence< sal_Int8 > SAL_CALL SwAccessibleCell::getImplementationId()
+ throw(uno::RuntimeException)
+{
+ SolarMutexGuard aGuard;
+ static uno::Sequence< sal_Int8 > aId( 16 );
+ static sal_Bool bInit = sal_False;
+ if(!bInit)
+ {
+ rtl_createUuid( (sal_uInt8 *)(aId.getArray() ), 0, sal_True );
+ bInit = sal_True;
+ }
+ return aId;
+}
+
+// ===== XAccessibleValue ===============================================
+
+SwFrmFmt* SwAccessibleCell::GetTblBoxFormat() const
+{
+ DBG_ASSERT( GetFrm() != NULL, "no frame?" );
+ DBG_ASSERT( GetFrm()->IsCellFrm(), "no cell frame?" );
+
+ const SwCellFrm* pCellFrm = static_cast<const SwCellFrm*>( GetFrm() );
+ return pCellFrm->GetTabBox()->GetFrmFmt();
+}
+
+
+uno::Any SwAccessibleCell::getCurrentValue( )
+ throw( uno::RuntimeException )
+{
+ SolarMutexGuard aGuard;
+ CHECK_FOR_DEFUNC( XAccessibleValue );
+
+ uno::Any aAny;
+ aAny <<= GetTblBoxFormat()->GetTblBoxValue().GetValue();
+ return aAny;
+}
+
+sal_Bool SwAccessibleCell::setCurrentValue( const uno::Any& aNumber )
+ throw( uno::RuntimeException )
+{
+ SolarMutexGuard aGuard;
+ CHECK_FOR_DEFUNC( XAccessibleValue );
+
+ double fValue = 0;
+ sal_Bool bValid = (aNumber >>= fValue);
+ if( bValid )
+ {
+ SwTblBoxValue aValue( fValue );
+ GetTblBoxFormat()->SetFmtAttr( aValue );
+ }
+ return bValid;
+}
+
+uno::Any SwAccessibleCell::getMaximumValue( )
+ throw( uno::RuntimeException )
+{
+ uno::Any aAny;
+ aAny <<= DBL_MAX;
+ return aAny;
+}
+
+uno::Any SwAccessibleCell::getMinimumValue( )
+ throw( uno::RuntimeException )
+{
+ uno::Any aAny;
+ aAny <<= -DBL_MAX;
+ return aAny;
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/source/core/access/acccell.hxx b/sw/source/core/access/acccell.hxx
new file mode 100644
index 000000000000..0983f8ccc4d1
--- /dev/null
+++ b/sw/source/core/access/acccell.hxx
@@ -0,0 +1,139 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef _ACCCELL_HXX
+#define _ACCCELL_HXX
+
+#include "acccontext.hxx"
+#include <com/sun/star/accessibility/XAccessibleValue.hpp>
+
+class SwCellFrm;
+class SwFrmFmt;
+
+class SwAccessibleCell : public SwAccessibleContext,
+ ::com::sun::star::accessibility::XAccessibleValue
+
+{
+ sal_Bool bIsSelected; // protected by base class mutex
+
+ sal_Bool IsSelected();
+
+ sal_Bool _InvalidateMyCursorPos();
+ sal_Bool _InvalidateChildrenCursorPos( const SwFrm *pFrm );
+
+protected:
+
+ // Set states for getAccessibleStateSet.
+ // This drived class additionaly sets SELECTABLE(1) and SELECTED(+)
+ virtual void GetStates( ::utl::AccessibleStateSetHelper& rStateSet );
+
+ virtual void _InvalidateCursorPos();
+
+ virtual ~SwAccessibleCell();
+
+public:
+
+ SwAccessibleCell( SwAccessibleMap* pInitMap, const SwCellFrm *pCellFrm );
+
+ virtual sal_Bool HasCursor(); // required by map to remember that object
+
+ //===== XAccessibleContext ==============================================
+
+ /// Return this object's description.
+ virtual ::rtl::OUString SAL_CALL
+ getAccessibleDescription (void)
+ throw (com::sun::star::uno::RuntimeException);
+
+ //===== XServiceInfo ====================================================
+
+ /** Returns an identifier for the implementation of this object.
+ */
+ virtual ::rtl::OUString SAL_CALL
+ getImplementationName (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ /** Return whether the specified service is supported by this class.
+ */
+ virtual sal_Bool SAL_CALL
+ supportsService (const ::rtl::OUString& sServiceName)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ /** Returns a list of all supported services. In this case that is just
+ the AccessibleContext service.
+ */
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString> SAL_CALL
+ getSupportedServiceNames (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ virtual void Dispose( sal_Bool bRecursive = sal_False );
+
+ virtual void InvalidatePosOrSize( const SwRect& rFrm );
+
+ //===== XInterface ======================================================
+
+ // (XInterface methods need to be implemented to disambiguate
+ // between those inherited through SwAcessibleContext and
+ // XAccessibleValue).
+
+ virtual ::com::sun::star::uno::Any SAL_CALL queryInterface(
+ const ::com::sun::star::uno::Type& aType )
+ throw (::com::sun::star::uno::RuntimeException);
+
+ virtual void SAL_CALL acquire( ) throw ()
+ { SwAccessibleContext::acquire(); };
+
+ virtual void SAL_CALL release( ) throw ()
+ { SwAccessibleContext::release(); };
+
+ //====== XTypeProvider ====================================================
+ virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes( ) throw(::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId( ) throw(::com::sun::star::uno::RuntimeException);
+
+ //===== XAccessibleValue ================================================
+
+private:
+ SwFrmFmt* GetTblBoxFormat() const;
+
+public:
+ 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);
+};
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/source/core/access/acccontext.cxx b/sw/source/core/access/acccontext.cxx
new file mode 100644
index 000000000000..f8820f56039a
--- /dev/null
+++ b/sw/source/core/access/acccontext.cxx
@@ -0,0 +1,1584 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+ /*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_sw.hxx"
+#if (OSL_DEBUG_LEVEL > 1) && defined TEST_MIB
+ #ifndef _STRING_HXX
+ #include <tools/string.hxx>
+ #endif
+
+ #ifndef _STREAM_HXX
+ #include <tools/stream.hxx>
+ #endif
+#endif // #if (OSL_DEBUG_LEVEL > 1) && defined TEST_MIB
+#include <tools/debug.hxx>
+#include <vcl/window.hxx>
+#include <swtypes.hxx>
+
+#include <com/sun/star/accessibility/XAccessible.hpp>
+#include <com/sun/star/accessibility/XAccessibleStateSet.hpp>
+#include <com/sun/star/accessibility/AccessibleStateType.hpp>
+#include <com/sun/star/accessibility/AccessibleEventId.hpp>
+#include <osl/mutex.hxx>
+#include <vcl/svapp.hxx>
+#include <unotools/accessiblestatesethelper.hxx>
+#include <unotools/accessiblerelationsethelper.hxx>
+#include <viewsh.hxx>
+#include <crsrsh.hxx>
+#include <fesh.hxx>
+#include <txtfrm.hxx>
+#include <ndtxt.hxx>
+#include <pagefrm.hxx>
+#include <flyfrm.hxx>
+#include <dflyobj.hxx>
+#include <pam.hxx>
+#include <viewimp.hxx>
+#include <accmap.hxx>
+#include <accfrmobjslist.hxx>
+#include <acccontext.hxx>
+#include <svx/AccessibleShape.hxx>
+#include <comphelper/accessibleeventnotifier.hxx>
+#include <PostItMgr.hxx>
+
+using namespace sw::access;
+
+#if (OSL_DEBUG_LEVEL > 1) && defined TEST_MIB
+#define DBG_MSG( _msg ) \
+ lcl_SwAccessibleContext_DbgMsg( this, _msg, 0, sal_False );
+#define DBG_MSG_CD( _msg ) \
+ lcl_SwAccessibleContext_DbgMsg( this, _msg, 0, sal_True );
+#define DBG_MSG_PARAM( _msg, _param ) \
+ lcl_SwAccessibleContext_DbgMsg( this, _msg, _param, sal_False );
+#define DBG_MSG_THIS_PARAM( _msg, _this, _param ) \
+ lcl_SwAccessibleContext_DbgMsg( _this, _msg, _param, sal_False );
+
+void lcl_SwAccessibleContext_DbgMsg( SwAccessibleContext *pThisAcc,
+ const char *pMsg,
+ SwAccessibleContext *pChildAcc,
+ sal_Bool bConstrDestr );
+#else
+#define DBG_MSG( _msg )
+#define DBG_MSG_PARAM( _msg, _param )
+#define DBG_MSG_THIS_PARAM( _msg, _this, _param )
+#define DBG_MSG_CD( _msg )
+#endif
+
+using namespace ::com::sun::star;
+using namespace ::com::sun::star::accessibility;
+using ::rtl::OUString;
+
+void SwAccessibleContext::InitStates()
+{
+ bIsShowingState = GetMap() ? IsShowing( *(GetMap()) ) : sal_False;
+
+ ViewShell *pVSh = GetMap()->GetShell();
+ bIsEditableState = pVSh && IsEditable( pVSh );
+ bIsOpaqueState = pVSh && IsOpaque( pVSh );
+ bIsDefuncState = sal_False;
+}
+
+void SwAccessibleContext::SetParent( SwAccessibleContext *pParent )
+{
+ osl::MutexGuard aGuard( aMutex );
+
+ uno::Reference < XAccessible > xParent( pParent );
+ xWeakParent = xParent;
+}
+
+uno::Reference< XAccessible > SwAccessibleContext::GetWeakParent() const
+{
+ osl::MutexGuard aGuard( aMutex );
+
+ uno::Reference< XAccessible > xParent( xWeakParent );
+ return xParent;
+}
+
+Window *SwAccessibleContext::GetWindow()
+{
+ Window *pWin = 0;
+
+ if( GetMap() )
+ {
+ const ViewShell *pVSh = GetMap()->GetShell();
+ OSL_ENSURE( pVSh, "no view shell" );
+ if( pVSh )
+ pWin = pVSh->GetWin();
+
+ OSL_ENSURE( pWin, "no window" );
+ }
+
+ return pWin;
+}
+
+// get ViewShell from accessibility map, and cast to cursor shell
+SwCrsrShell* SwAccessibleContext::GetCrsrShell()
+{
+ SwCrsrShell* pCrsrShell;
+ ViewShell* pViewShell = GetMap() ? GetMap()->GetShell() : 0;
+ OSL_ENSURE( pViewShell, "no view shell" );
+ if( pViewShell && pViewShell->ISA( SwCrsrShell ) )
+ pCrsrShell = static_cast<SwCrsrShell*>( pViewShell );
+ else
+ pCrsrShell = NULL;
+
+ return pCrsrShell;
+}
+
+const SwCrsrShell* SwAccessibleContext::GetCrsrShell() const
+{
+ // just like non-const GetCrsrShell
+ const SwCrsrShell* pCrsrShell;
+ const ViewShell* pViewShell = GetMap() ? GetMap()->GetShell() : 0;
+ OSL_ENSURE( pViewShell, "no view shell" );
+ if( pViewShell && pViewShell->ISA( SwCrsrShell ) )
+ pCrsrShell = static_cast<const SwCrsrShell*>( pViewShell );
+ else
+ pCrsrShell = NULL;
+
+ return pCrsrShell;
+}
+
+
+enum Action { NONE, SCROLLED, SCROLLED_WITHIN,
+ SCROLLED_IN, SCROLLED_OUT };
+
+void SwAccessibleContext::ChildrenScrolled( const SwFrm *pFrm,
+ const SwRect& rOldVisArea )
+{
+ const SwRect& rNewVisArea = GetVisArea();
+ const bool bVisibleChildrenOnly = SwAccessibleChild( pFrm ).IsVisibleChildrenOnly();
+
+ const SwAccessibleChildSList aList( *pFrm, *(GetMap()) );
+ SwAccessibleChildSList::const_iterator aIter( aList.begin() );
+ while( aIter != aList.end() )
+ {
+ const SwAccessibleChild& rLower = *aIter;
+ const SwRect aBox( rLower.GetBox( *(GetMap()) ) );
+ if( rLower.IsAccessible( GetShell()->IsPreView() ) )
+ {
+ Action eAction = NONE;
+ if( aBox.IsOver( rNewVisArea ) )
+ {
+ if( aBox.IsOver( rOldVisArea ) )
+ {
+ eAction = SCROLLED_WITHIN;
+ }
+ else
+ {
+ if ( bVisibleChildrenOnly &&
+ !rLower.AlwaysIncludeAsChild() )
+ {
+ eAction = SCROLLED_IN;
+ }
+ else
+ {
+ eAction = SCROLLED;
+ }
+ }
+ }
+ else if( aBox.IsOver( rOldVisArea ) )
+ {
+ if ( bVisibleChildrenOnly &&
+ !rLower.AlwaysIncludeAsChild() )
+ {
+ eAction = SCROLLED_OUT;
+ }
+ else
+ {
+ eAction = SCROLLED;
+ }
+ }
+ else if( !bVisibleChildrenOnly ||
+ rLower.AlwaysIncludeAsChild() )
+ {
+ // This wouldn't be required if the SwAccessibleFrame,
+ // wouldn't know about the vis area.
+ eAction = SCROLLED;
+ }
+ if( NONE != eAction )
+ {
+ if ( rLower.GetSwFrm() )
+ {
+ OSL_ENSURE( !rLower.AlwaysIncludeAsChild(),
+ "<SwAccessibleContext::ChildrenScrolled(..)> - always included child not considered!" );
+ const SwFrm* pLower( rLower.GetSwFrm() );
+ ::rtl::Reference< SwAccessibleContext > xAccImpl =
+ GetMap()->GetContextImpl( pLower, SCROLLED_OUT == eAction ||
+ SCROLLED_IN == eAction );
+ if( xAccImpl.is() )
+ {
+ switch( eAction )
+ {
+ case SCROLLED:
+ xAccImpl->Scrolled( rOldVisArea );
+ break;
+ case SCROLLED_WITHIN:
+ xAccImpl->ScrolledWithin( rOldVisArea );
+ break;
+ case SCROLLED_IN:
+ xAccImpl->ScrolledIn();
+ break;
+ case SCROLLED_OUT:
+ xAccImpl->ScrolledOut( rOldVisArea );
+ break;
+ case NONE:
+ break;
+ }
+ }
+ else
+ {
+ ChildrenScrolled( pLower, rOldVisArea );
+ }
+ }
+ else if ( rLower.GetDrawObject() )
+ {
+ OSL_ENSURE( !rLower.AlwaysIncludeAsChild(),
+ "<SwAccessibleContext::ChildrenScrolled(..)> - always included child not considered!" );
+ ::rtl::Reference< ::accessibility::AccessibleShape > xAccImpl =
+ GetMap()->GetContextImpl( rLower.GetDrawObject(),
+ this,
+ SCROLLED_OUT == eAction ||
+ SCROLLED_IN == eAction );
+ if( xAccImpl.is() )
+ {
+ switch( eAction )
+ {
+ case SCROLLED:
+ case SCROLLED_WITHIN:
+ xAccImpl->ViewForwarderChanged(
+ ::accessibility::IAccessibleViewForwarderListener::VISIBLE_AREA,
+ GetMap() );
+ break;
+ case SCROLLED_IN:
+ ScrolledInShape( rLower.GetDrawObject(),
+ xAccImpl.get() );
+ break;
+ case SCROLLED_OUT:
+ {
+ xAccImpl->ViewForwarderChanged(
+ ::accessibility::IAccessibleViewForwarderListener::VISIBLE_AREA,
+ GetMap() );
+ DisposeShape( rLower.GetDrawObject(),
+ xAccImpl.get() );
+ }
+ break;
+ case NONE:
+ break;
+ }
+ }
+ }
+ else if ( rLower.GetWindow() )
+ {
+ // nothing to do - as such children are always included as children.
+ OSL_ENSURE( rLower.AlwaysIncludeAsChild(),
+ "<SwAccessibleContext::ChildrenScrolled(..)> - not always included child not considered!" );
+ }
+ }
+ }
+ else if ( rLower.GetSwFrm() &&
+ ( !bVisibleChildrenOnly ||
+ aBox.IsOver( rOldVisArea ) ||
+ aBox.IsOver( rNewVisArea ) ) )
+ {
+ // There are no unaccessible SdrObjects that need to be notified
+ ChildrenScrolled( rLower.GetSwFrm(), rOldVisArea );
+ }
+ ++aIter;
+ }
+}
+
+void SwAccessibleContext::Scrolled( const SwRect& rOldVisArea )
+{
+ SetVisArea( GetMap()->GetVisArea() );
+
+ ChildrenScrolled( GetFrm(), rOldVisArea );
+
+ sal_Bool bIsOldShowingState;
+ sal_Bool bIsNewShowingState = IsShowing( *(GetMap()) );
+ {
+ osl::MutexGuard aGuard( aMutex );
+ bIsOldShowingState = bIsShowingState;
+ bIsShowingState = bIsNewShowingState;
+ }
+
+ if( bIsOldShowingState != bIsNewShowingState )
+ FireStateChangedEvent( AccessibleStateType::SHOWING,
+ bIsNewShowingState );
+}
+
+void SwAccessibleContext::ScrolledWithin( const SwRect& rOldVisArea )
+{
+ SetVisArea( GetMap()->GetVisArea() );
+
+ ChildrenScrolled( GetFrm(), rOldVisArea );
+
+ FireVisibleDataEvent();
+}
+
+void SwAccessibleContext::ScrolledIn()
+{
+ // This accessible should be freshly created, because it
+ // was not visisble before. Therefor, its vis area must already
+ // reflect the scrolling.
+ OSL_ENSURE( GetVisArea() == GetMap()->GetVisArea(),
+ "Vis area of child is wrong. Did it exist already?" );
+
+ // Send child event at parent. That's all we have to do here.
+ const SwFrm* pParent = GetParent();
+ ::rtl::Reference< SwAccessibleContext > xParentImpl(
+ GetMap()->GetContextImpl( pParent, sal_False ) );
+ uno::Reference < XAccessibleContext > xThis( this );
+ if( xParentImpl.is() )
+ {
+ SetParent( xParentImpl.get() );
+
+ AccessibleEventObject aEvent;
+ aEvent.EventId = AccessibleEventId::CHILD;
+ aEvent.NewValue <<= xThis;
+
+ xParentImpl->FireAccessibleEvent( aEvent );
+ DBG_MSG_PARAM( "AccessibleChild (added)", xChildImpl.get() );
+
+ if( HasCursor() )
+ {
+ Window *pWin = GetWindow();
+ if( pWin && pWin->HasFocus() )
+ {
+ FireStateChangedEvent( AccessibleStateType::FOCUSED, sal_True );
+ }
+ }
+
+ }
+}
+
+void SwAccessibleContext::ScrolledOut( const SwRect& rOldVisArea )
+{
+ SetVisArea( GetMap()->GetVisArea() );
+
+ // First of all, update the children. That's required to dispose
+ // all children that are existing only if they are visible. They
+ // are not disposed by the recusive Dispose call that follows later on,
+ // because this call will only dispose children that are in the
+ // new vis area. The children we want to dispode however are in the
+ // old vis area all.
+ ChildrenScrolled( GetFrm(), rOldVisArea );
+
+ // Broadcast a state changed event for the showing state.
+ // It might be that the child is freshly created just to send
+ // the child event. In this case no listener will exist.
+ FireStateChangedEvent( AccessibleStateType::SHOWING, sal_False );
+
+ // We now dispose the frame
+ Dispose( sal_True );
+}
+
+// #i27301# - use new type definition for <_nStates>
+void SwAccessibleContext::InvalidateChildrenStates( const SwFrm* _pFrm,
+ tAccessibleStates _nStates )
+{
+ const SwAccessibleChildSList aVisList( GetVisArea(), *_pFrm, *(GetMap()) );
+
+ SwAccessibleChildSList::const_iterator aIter( aVisList.begin() );
+ while( aIter != aVisList.end() )
+ {
+ const SwAccessibleChild& rLower = *aIter;
+ const SwFrm* pLower = rLower.GetSwFrm();
+ if( pLower )
+ {
+ ::rtl::Reference< SwAccessibleContext > xAccImpl;
+ if( rLower.IsAccessible( GetShell()->IsPreView() ) )
+ xAccImpl = GetMap()->GetContextImpl( pLower, sal_False );
+ if( xAccImpl.is() )
+ xAccImpl->InvalidateStates( _nStates );
+ else
+ InvalidateChildrenStates( pLower, _nStates );
+ }
+ else if ( rLower.GetDrawObject() )
+ {
+ // TODO: SdrObjects
+ }
+ else if ( rLower.GetWindow() )
+ {
+ // nothing to do ?
+ }
+
+ ++aIter;
+ }
+}
+// <--
+
+void SwAccessibleContext::DisposeChildren( const SwFrm *pFrm,
+ sal_Bool bRecursive )
+{
+ const SwAccessibleChildSList aVisList( GetVisArea(), *pFrm, *(GetMap()) );
+ SwAccessibleChildSList::const_iterator aIter( aVisList.begin() );
+ while( aIter != aVisList.end() )
+ {
+ const SwAccessibleChild& rLower = *aIter;
+ const SwFrm* pLower = rLower.GetSwFrm();
+ if( pLower )
+ {
+ ::rtl::Reference< SwAccessibleContext > xAccImpl;
+ if( rLower.IsAccessible( GetShell()->IsPreView() ) )
+ xAccImpl = GetMap()->GetContextImpl( pLower, sal_False );
+ if( xAccImpl.is() )
+ xAccImpl->Dispose( bRecursive );
+ else if( bRecursive )
+ DisposeChildren( pLower, bRecursive );
+ }
+ else if ( rLower.GetDrawObject() )
+ {
+ ::rtl::Reference< ::accessibility::AccessibleShape > xAccImpl(
+ GetMap()->GetContextImpl( rLower.GetDrawObject(),
+ this, sal_False ) );
+ if( xAccImpl.is() )
+ DisposeShape( rLower.GetDrawObject(), xAccImpl.get() );
+ }
+ else if ( rLower.GetWindow() )
+ {
+ DisposeChild( rLower, sal_False );
+ }
+ ++aIter;
+ }
+}
+
+void SwAccessibleContext::_InvalidateContent( sal_Bool )
+{
+}
+
+void SwAccessibleContext::_InvalidateCursorPos()
+{
+}
+
+void SwAccessibleContext::_InvalidateFocus()
+{
+}
+
+void SwAccessibleContext::FireAccessibleEvent( AccessibleEventObject& rEvent )
+{
+ OSL_ENSURE( GetFrm(), "fire event for diposed frame?" );
+ if( !GetFrm() )
+ return;
+
+ if( !rEvent.Source.is() )
+ {
+ uno::Reference < XAccessibleContext > xThis( this );
+ rEvent.Source = xThis;
+ }
+
+ if (nClientId)
+ comphelper::AccessibleEventNotifier::addEvent( nClientId, rEvent );
+}
+
+void SwAccessibleContext::FireVisibleDataEvent()
+{
+ AccessibleEventObject aEvent;
+ aEvent.EventId = AccessibleEventId::VISIBLE_DATA_CHANGED;
+
+ FireAccessibleEvent( aEvent );
+ DBG_MSG( "AccessibleVisibleData" )
+}
+
+void SwAccessibleContext::FireStateChangedEvent( sal_Int16 nState,
+ sal_Bool bNewState )
+{
+ AccessibleEventObject aEvent;
+
+ aEvent.EventId = AccessibleEventId::STATE_CHANGED;
+ if( bNewState )
+ aEvent.NewValue <<= nState;
+ else
+ aEvent.OldValue <<= nState;
+
+ FireAccessibleEvent( aEvent );
+ DBG_MSG( "StateChanged" )
+}
+
+void SwAccessibleContext::GetStates(
+ ::utl::AccessibleStateSetHelper& rStateSet )
+{
+ SolarMutexGuard aGuard;
+
+ // SHOWING
+ if( bIsShowingState )
+ rStateSet.AddState( AccessibleStateType::SHOWING );
+
+ // EDITABLE
+ if( bIsEditableState )
+ rStateSet.AddState( AccessibleStateType::EDITABLE );
+
+ // ENABLED
+ rStateSet.AddState( AccessibleStateType::ENABLED );
+
+ // OPAQUE
+ if( bIsOpaqueState )
+ rStateSet.AddState( AccessibleStateType::OPAQUE );
+
+ // VISIBLE
+ rStateSet.AddState( AccessibleStateType::VISIBLE );
+
+ if( bIsDefuncState )
+ rStateSet.AddState( AccessibleStateType::DEFUNC );
+}
+
+sal_Bool SwAccessibleContext::IsEditableState()
+{
+ sal_Bool bRet;
+ {
+ osl::MutexGuard aGuard( aMutex );
+ bRet = bIsEditableState;
+ }
+
+ return bRet;
+}
+
+SwAccessibleContext::SwAccessibleContext( SwAccessibleMap *pM,
+ sal_Int16 nR,
+ const SwFrm *pF )
+ : SwAccessibleFrame( pM->GetVisArea().SVRect(), pF,
+ pM->GetShell()->IsPreView() )
+ , pMap( pM )
+ , nClientId(0)
+ , nRole( nR )
+ , bDisposing( sal_False )
+ , bRegisteredAtAccessibleMap( true )
+{
+ InitStates();
+ DBG_MSG_CD( "constructed" )
+}
+
+SwAccessibleContext::~SwAccessibleContext()
+{
+ SolarMutexGuard aGuard;
+
+ DBG_MSG_CD( "destructed" )
+ RemoveFrmFromAccessibleMap();
+}
+
+uno::Reference< XAccessibleContext > SAL_CALL
+ SwAccessibleContext::getAccessibleContext( void )
+ throw (uno::RuntimeException)
+{
+ uno::Reference < XAccessibleContext > xRet( this );
+ return xRet;
+}
+
+sal_Int32 SAL_CALL SwAccessibleContext::getAccessibleChildCount( void )
+ throw (uno::RuntimeException)
+{
+ SolarMutexGuard aGuard;
+
+ CHECK_FOR_DEFUNC( XAccessibleContext )
+
+ return bDisposing ? 0 : GetChildCount( *(GetMap()) );
+}
+
+uno::Reference< XAccessible> SAL_CALL
+ SwAccessibleContext::getAccessibleChild( sal_Int32 nIndex )
+ throw (uno::RuntimeException, lang::IndexOutOfBoundsException)
+{
+ SolarMutexGuard aGuard;
+
+ CHECK_FOR_DEFUNC( XAccessibleContext )
+
+ const SwAccessibleChild aChild( GetChild( *(GetMap()), nIndex ) );
+ if( !aChild.IsValid() )
+ {
+ uno::Reference < XAccessibleContext > xThis( this );
+ lang::IndexOutOfBoundsException aExcept(
+ OUString( RTL_CONSTASCII_USTRINGPARAM("index out of bounds") ),
+ xThis );
+ throw aExcept;
+ }
+
+ uno::Reference< XAccessible > xChild;
+ if( aChild.GetSwFrm() )
+ {
+ ::rtl::Reference < SwAccessibleContext > xChildImpl(
+ GetMap()->GetContextImpl( aChild.GetSwFrm(), !bDisposing ) );
+ if( xChildImpl.is() )
+ {
+ xChildImpl->SetParent( this );
+ xChild = xChildImpl.get();
+ }
+ }
+ else if ( aChild.GetDrawObject() )
+ {
+ ::rtl::Reference < ::accessibility::AccessibleShape > xChildImpl(
+ GetMap()->GetContextImpl( aChild.GetDrawObject(),
+ this, !bDisposing ) );
+ if( xChildImpl.is() )
+ xChild = xChildImpl.get();
+ }
+ else if ( aChild.GetWindow() )
+ {
+ xChild = aChild.GetWindow()->GetAccessible();
+ }
+
+ return xChild;
+}
+
+uno::Reference< XAccessible> SAL_CALL SwAccessibleContext::getAccessibleParent (void)
+ throw (uno::RuntimeException)
+{
+ SolarMutexGuard aGuard;
+
+ CHECK_FOR_DEFUNC( XAccessibleContext )
+
+ const SwFrm *pUpper = GetParent();
+ OSL_ENSURE( pUpper != 0 || bDisposing, "no upper found" );
+
+ uno::Reference< XAccessible > xAcc;
+ if( pUpper )
+ xAcc = GetMap()->GetContext( pUpper, !bDisposing );
+
+ OSL_ENSURE( xAcc.is() || bDisposing, "no parent found" );
+
+ // Remember the parent as weak ref.
+ {
+ osl::MutexGuard aWeakParentGuard( aMutex );
+ xWeakParent = xAcc;
+ }
+
+ return xAcc;
+}
+
+sal_Int32 SAL_CALL SwAccessibleContext::getAccessibleIndexInParent (void)
+ throw (uno::RuntimeException)
+{
+ SolarMutexGuard aGuard;
+
+ CHECK_FOR_DEFUNC( XAccessibleContext )
+
+ const SwFrm *pUpper = GetParent();
+ OSL_ENSURE( pUpper != 0 || bDisposing, "no upper found" );
+
+ sal_Int32 nIndex = -1;
+ if( pUpper )
+ {
+ ::rtl::Reference < SwAccessibleContext > xAccImpl(
+ GetMap()->GetContextImpl( pUpper, !bDisposing ) );
+ OSL_ENSURE( xAccImpl.is() || bDisposing, "no parent found" );
+ if( xAccImpl.is() )
+ nIndex = xAccImpl->GetChildIndex( *(GetMap()), SwAccessibleChild(GetFrm()) );
+ }
+
+ return nIndex;
+}
+
+sal_Int16 SAL_CALL SwAccessibleContext::getAccessibleRole (void)
+ throw (uno::RuntimeException)
+{
+ return nRole;
+}
+
+OUString SAL_CALL SwAccessibleContext::getAccessibleDescription (void)
+ throw (uno::RuntimeException)
+{
+ OSL_ENSURE( !this, "description needs to be overloaded" );
+ THROW_RUNTIME_EXCEPTION( XAccessibleContext, "internal error (method must be overloaded)" );
+}
+
+OUString SAL_CALL SwAccessibleContext::getAccessibleName (void)
+ throw (uno::RuntimeException)
+{
+ return sName;
+}
+
+uno::Reference< XAccessibleRelationSet> SAL_CALL
+ SwAccessibleContext::getAccessibleRelationSet (void)
+ throw (uno::RuntimeException)
+{
+ // by default there are no relations
+ uno::Reference< XAccessibleRelationSet> xRet( new utl::AccessibleRelationSetHelper() );
+ return xRet;
+}
+
+uno::Reference<XAccessibleStateSet> SAL_CALL
+ SwAccessibleContext::getAccessibleStateSet (void)
+ throw (uno::RuntimeException)
+{
+ SolarMutexGuard aGuard;
+
+ CHECK_FOR_DEFUNC( XAccessibleContext )
+
+ ::utl::AccessibleStateSetHelper *pStateSet =
+ new ::utl::AccessibleStateSetHelper;
+
+ uno::Reference<XAccessibleStateSet> xStateSet( pStateSet );
+ GetStates( *pStateSet );
+
+ return xStateSet;
+}
+
+lang::Locale SAL_CALL SwAccessibleContext::getLocale (void)
+ throw (IllegalAccessibleComponentStateException, uno::RuntimeException)
+{
+ SolarMutexGuard aGuard;
+
+ lang::Locale aLoc( Application::GetSettings().GetLocale() );
+ return aLoc;
+}
+
+void SAL_CALL SwAccessibleContext::addEventListener(
+ const uno::Reference< XAccessibleEventListener >& xListener )
+ throw (uno::RuntimeException)
+{
+ DBG_MSG( "accessible event listener added" )
+
+ if (xListener.is())
+ {
+ SolarMutexGuard aGuard;
+ if (!nClientId)
+ nClientId = comphelper::AccessibleEventNotifier::registerClient( );
+ comphelper::AccessibleEventNotifier::addEventListener( nClientId, xListener );
+ }
+}
+
+void SAL_CALL SwAccessibleContext::removeEventListener(
+ const uno::Reference< XAccessibleEventListener >& xListener )
+ throw (uno::RuntimeException)
+{
+ DBG_MSG( "accessible event listener removed" )
+
+ if (xListener.is())
+ {
+ SolarMutexGuard aGuard;
+ sal_Int32 nListenerCount = comphelper::AccessibleEventNotifier::removeEventListener( nClientId, xListener );
+ if ( !nListenerCount )
+ {
+ // no listeners anymore
+ // -> revoke ourself. This may lead to the notifier thread dying (if we were the last client),
+ // and at least to us not firing any events anymore, in case somebody calls
+ // NotifyAccessibleEvent, again
+ comphelper::AccessibleEventNotifier::revokeClient( nClientId );
+ nClientId = 0;
+ }
+ }
+}
+
+static sal_Bool lcl_PointInRectangle(const awt::Point & aPoint,
+ const awt::Rectangle & aRect)
+{
+ long nDiffX = aPoint.X - aRect.X;
+ long nDiffY = aPoint.Y - aRect.Y;
+
+ return
+ nDiffX >= 0 && nDiffX < aRect.Width && nDiffY >= 0 &&
+ nDiffY < aRect.Height;
+
+}
+
+sal_Bool SAL_CALL SwAccessibleContext::containsPoint(
+ const awt::Point& aPoint )
+ throw (uno::RuntimeException)
+{
+ awt::Rectangle aPixBounds = getBoundsImpl(sal_True);
+ aPixBounds.X = 0;
+ aPixBounds.Y = 0;
+
+ return lcl_PointInRectangle(aPoint, aPixBounds);
+}
+
+uno::Reference< XAccessible > SAL_CALL SwAccessibleContext::getAccessibleAtPoint(
+ const awt::Point& aPoint )
+ throw (uno::RuntimeException)
+{
+ SolarMutexGuard aGuard;
+
+ CHECK_FOR_DEFUNC( XAccessibleComponent )
+
+ uno::Reference< XAccessible > xAcc;
+
+ Window *pWin = GetWindow();
+ CHECK_FOR_WINDOW( XAccessibleComponent, pWin )
+
+ Point aPixPoint( aPoint.X, aPoint.Y ); // px rel to parent
+ if( !GetFrm()->IsRootFrm() )
+ {
+ SwRect aLogBounds( GetBounds( *(GetMap()), GetFrm() ) ); // twip rel to doc root
+ Point aPixPos( GetMap()->CoreToPixel( aLogBounds.SVRect() ).TopLeft() );
+ aPixPoint.X() += aPixPos.X();
+ aPixPoint.Y() += aPixPos.Y();
+ }
+
+ const SwAccessibleChild aChild( GetChildAtPixel( aPixPoint, *(GetMap()) ) );
+ if( aChild.GetSwFrm() )
+ {
+ xAcc = GetMap()->GetContext( aChild.GetSwFrm() );
+ }
+ else if( aChild.GetDrawObject() )
+ {
+ xAcc = GetMap()->GetContext( aChild.GetDrawObject(), this );
+ }
+ else if ( aChild.GetWindow() )
+ {
+ xAcc = aChild.GetWindow()->GetAccessible();
+ }
+
+ return xAcc;
+}
+
+
+/**
+ Get bounding box.
+
+ There are two modes.
+
+ - realative
+
+ Return bounding box relative to parent if parent is no root
+ frame. Otherwise return the absolute bounding box.
+
+ - absolute
+
+ Return the absolute bounding box.
+
+ @param bRelative
+ true: Use relative mode.
+ false: Use absolute mode.
+*/
+awt::Rectangle SAL_CALL SwAccessibleContext::getBoundsImpl(sal_Bool bRelative)
+ throw (uno::RuntimeException)
+{
+ SolarMutexGuard aGuard;
+
+ CHECK_FOR_DEFUNC( XAccessibleComponent )
+
+ const SwFrm *pParent = GetParent();
+ OSL_ENSURE( pParent, "no Parent found" );
+ Window *pWin = GetWindow();
+
+ CHECK_FOR_WINDOW( XAccessibleComponent, pWin && pParent )
+
+ SwRect aLogBounds( GetBounds( *(GetMap()), GetFrm() ) ); // twip rel to doc root
+ Rectangle aPixBounds( 0, 0, 0, 0 );
+ if( GetFrm()->IsPageFrm() &&
+ static_cast < const SwPageFrm * >( GetFrm() )->IsEmptyPage() )
+ {
+ OSL_ENSURE( GetShell()->IsPreView(), "empty page accessible?" );
+ if( GetShell()->IsPreView() )
+ {
+ // adjust method call <GetMap()->GetPreViewPageSize()>
+ sal_uInt16 nPageNum =
+ static_cast < const SwPageFrm * >( GetFrm() )->GetPhyPageNum();
+ aLogBounds.SSize( GetMap()->GetPreViewPageSize( nPageNum ) );
+ }
+ }
+ if( !aLogBounds.IsEmpty() )
+ {
+ aPixBounds = GetMap()->CoreToPixel( aLogBounds.SVRect() );
+ if( !pParent->IsRootFrm() && bRelative)
+ {
+ SwRect aParentLogBounds( GetBounds( *(GetMap()), pParent ) ); // twip rel to doc root
+ Point aParentPixPos( GetMap()->CoreToPixel( aParentLogBounds.SVRect() ).TopLeft() );
+ aPixBounds.Move( -aParentPixPos.X(), -aParentPixPos.Y() );
+ }
+ }
+
+ awt::Rectangle aBox( aPixBounds.Left(), aPixBounds.Top(),
+ aPixBounds.GetWidth(), aPixBounds.GetHeight() );
+
+ return aBox;
+}
+
+
+awt::Rectangle SAL_CALL SwAccessibleContext::getBounds()
+ throw (uno::RuntimeException)
+{
+ return getBoundsImpl(sal_True);
+}
+
+awt::Point SAL_CALL SwAccessibleContext::getLocation()
+ throw (uno::RuntimeException)
+{
+ awt::Rectangle aRect = getBoundsImpl(sal_True);
+ awt::Point aPoint(aRect.X, aRect.Y);
+
+ return aPoint;
+}
+
+
+
+awt::Point SAL_CALL SwAccessibleContext::getLocationOnScreen()
+ throw (uno::RuntimeException)
+{
+ awt::Rectangle aRect = getBoundsImpl(sal_False);
+
+ Point aPixPos(aRect.X, aRect.Y);
+
+ /* getBoundsImpl already checked that GetWindow returns valid pointer. */
+ aPixPos = GetWindow()->OutputToAbsoluteScreenPixel(aPixPos);
+ awt::Point aPoint(aPixPos.X(), aPixPos.Y());
+
+ return aPoint;
+}
+
+
+awt::Size SAL_CALL SwAccessibleContext::getSize()
+ throw (uno::RuntimeException)
+{
+ awt::Rectangle aRect = getBoundsImpl(sal_False);
+ awt::Size aSize( aRect.Width, aRect.Height );
+
+ return aSize;
+}
+
+void SAL_CALL SwAccessibleContext::grabFocus()
+ throw (uno::RuntimeException)
+{
+ SolarMutexGuard aGuard;
+
+ CHECK_FOR_DEFUNC( XAccessibleContext );
+
+ if( GetFrm()->IsFlyFrm() )
+ {
+ const SdrObject *pObj =
+ static_cast < const SwFlyFrm * >( GetFrm() )->GetVirtDrawObj();
+ if( pObj )
+ Select( const_cast < SdrObject * >( pObj ), sal_False );
+ }
+ else
+ {
+ const SwCntntFrm *pCFrm = 0;
+ if( GetFrm()->IsCntntFrm() )
+ pCFrm = static_cast< const SwCntntFrm * >( GetFrm() );
+ else if( GetFrm()->IsLayoutFrm() )
+ pCFrm = static_cast< const SwLayoutFrm * >( GetFrm() )->ContainsCntnt();
+
+ if( pCFrm && pCFrm->IsTxtFrm() )
+ {
+ const SwTxtFrm *pTxtFrm = static_cast< const SwTxtFrm * >( pCFrm );
+ const SwTxtNode *pTxtNd = pTxtFrm->GetTxtNode();
+ if( pTxtNd )
+ {
+ // create pam for selection
+ SwIndex aIndex( const_cast< SwTxtNode * >( pTxtNd ),
+ pTxtFrm->GetOfst() );
+ SwPosition aStartPos( *pTxtNd, aIndex );
+ SwPaM aPaM( aStartPos );
+
+ // set PaM at cursor shell
+ Select( aPaM );
+ }
+ }
+ }
+}
+
+
+uno::Any SAL_CALL SwAccessibleContext::getAccessibleKeyBinding()
+ throw (uno::RuntimeException)
+{
+ // There are no key bindings
+ return uno::Any();
+}
+
+sal_Int32 SAL_CALL SwAccessibleContext::getForeground()
+ throw (uno::RuntimeException)
+{
+ return 0;
+}
+
+sal_Int32 SAL_CALL SwAccessibleContext::getBackground()
+ throw (uno::RuntimeException)
+{
+ return 0xffffff;
+}
+
+
+OUString SAL_CALL SwAccessibleContext::getImplementationName()
+ throw( uno::RuntimeException )
+{
+ OSL_ENSURE( !this, "implementation name needs to be overloaded" );
+
+ THROW_RUNTIME_EXCEPTION( lang::XServiceInfo, "implementation name needs to be overloaded" )
+}
+
+sal_Bool SAL_CALL
+ SwAccessibleContext::supportsService (const ::rtl::OUString& )
+ throw (uno::RuntimeException)
+{
+ OSL_ENSURE( !this, "supports service needs to be overloaded" );
+ THROW_RUNTIME_EXCEPTION( lang::XServiceInfo, "supports service needs to be overloaded" )
+}
+
+uno::Sequence< OUString > SAL_CALL SwAccessibleContext::getSupportedServiceNames()
+ throw( uno::RuntimeException )
+{
+ OSL_ENSURE( !this, "supported services names needs to be overloaded" );
+ THROW_RUNTIME_EXCEPTION( lang::XServiceInfo, "supported services needs to be overloaded" )
+}
+
+void SwAccessibleContext::DisposeShape( const SdrObject *pObj,
+ ::accessibility::AccessibleShape *pAccImpl )
+{
+ ::rtl::Reference< ::accessibility::AccessibleShape > xAccImpl( pAccImpl );
+ if( !xAccImpl.is() )
+ xAccImpl = GetMap()->GetContextImpl( pObj, this, sal_True );
+
+ AccessibleEventObject aEvent;
+ aEvent.EventId = AccessibleEventId::CHILD;
+ uno::Reference< XAccessible > xAcc( xAccImpl.get() );
+ aEvent.OldValue <<= xAcc;
+ FireAccessibleEvent( aEvent );
+
+ GetMap()->RemoveContext( pObj );
+ xAccImpl->dispose();
+}
+
+void SwAccessibleContext::ScrolledInShape( const SdrObject* ,
+ ::accessibility::AccessibleShape *pAccImpl )
+{
+ AccessibleEventObject aEvent;
+ aEvent.EventId = AccessibleEventId::CHILD;
+ uno::Reference< XAccessible > xAcc( pAccImpl );
+ aEvent.NewValue <<= xAcc;
+ FireAccessibleEvent( aEvent );
+
+ if( pAccImpl->GetState( AccessibleStateType::FOCUSED ) )
+ {
+ Window *pWin = GetWindow();
+ if( pWin && pWin->HasFocus() )
+ {
+ AccessibleEventObject aStateChangedEvent;
+ aStateChangedEvent.EventId = AccessibleEventId::STATE_CHANGED;
+ aStateChangedEvent.NewValue <<= AccessibleStateType::FOCUSED;
+ aStateChangedEvent.Source = xAcc;
+
+ FireAccessibleEvent( aStateChangedEvent );
+ }
+ }
+}
+
+void SwAccessibleContext::Dispose( sal_Bool bRecursive )
+{
+ SolarMutexGuard aGuard;
+
+ OSL_ENSURE( GetFrm() && GetMap(), "already disposed" );
+ OSL_ENSURE( GetMap()->GetVisArea() == GetVisArea(),
+ "invalid vis area for dispose" );
+
+ bDisposing = sal_True;
+
+ // dispose children
+ if( bRecursive )
+ DisposeChildren( GetFrm(), bRecursive );
+
+ // get parent
+ uno::Reference< XAccessible > xParent( GetWeakParent() );
+ uno::Reference < XAccessibleContext > xThis( this );
+
+ // send child event at parent
+ if( xParent.is() )
+ {
+ SwAccessibleContext *pAcc = (SwAccessibleContext *)xParent.get();
+
+ AccessibleEventObject aEvent;
+ aEvent.EventId = AccessibleEventId::CHILD;
+ aEvent.OldValue <<= xThis;
+ pAcc->FireAccessibleEvent( aEvent );
+ DBG_MSG_THIS_PARAM( "AccessibleChild (removed)", pAcc, this )
+ }
+
+ // set defunc state (its not required to broadcast a state changed
+ // event if the object is diposed afterwards)
+ {
+ osl::MutexGuard aDefuncStateGuard( aMutex );
+ bIsDefuncState = sal_True;
+ }
+
+ // broadcast dispose event
+ if ( nClientId )
+ {
+ comphelper::AccessibleEventNotifier::revokeClientNotifyDisposing( nClientId, *this );
+ nClientId = 0;
+ DBG_MSG_CD( "dispose" )
+ }
+
+ RemoveFrmFromAccessibleMap();
+ ClearFrm();
+ pMap = 0;
+
+ bDisposing = sal_False;
+}
+
+void SwAccessibleContext::DisposeChild( const SwAccessibleChild& rChildFrmOrObj,
+ sal_Bool bRecursive )
+{
+ SolarMutexGuard aGuard;
+
+ if ( IsShowing( *(GetMap()), rChildFrmOrObj ) ||
+ rChildFrmOrObj.AlwaysIncludeAsChild() ||
+ !SwAccessibleChild( GetFrm() ).IsVisibleChildrenOnly() )
+ {
+ // If the object could have existed before, than there is nothing to do,
+ // because no wrapper exists now and therefor no one is interested to
+ // get notified of the movement.
+ if( rChildFrmOrObj.GetSwFrm() )
+ {
+ ::rtl::Reference< SwAccessibleContext > xAccImpl =
+ GetMap()->GetContextImpl( rChildFrmOrObj.GetSwFrm(),
+ sal_True );
+ xAccImpl->Dispose( bRecursive );
+ }
+ else if ( rChildFrmOrObj.GetDrawObject() )
+ {
+ ::rtl::Reference< ::accessibility::AccessibleShape > xAccImpl =
+ GetMap()->GetContextImpl( rChildFrmOrObj.GetDrawObject(),
+ this, sal_True );
+ DisposeShape( rChildFrmOrObj.GetDrawObject(),
+ xAccImpl.get() );
+ }
+ else if ( rChildFrmOrObj.GetWindow() )
+ {
+ AccessibleEventObject aEvent;
+ aEvent.EventId = AccessibleEventId::CHILD;
+ uno::Reference< XAccessible > xAcc =
+ rChildFrmOrObj.GetWindow()->GetAccessible();
+ aEvent.OldValue <<= xAcc;
+ FireAccessibleEvent( aEvent );
+ }
+ }
+ else if( bRecursive && rChildFrmOrObj.GetSwFrm() )
+ DisposeChildren( rChildFrmOrObj.GetSwFrm(), bRecursive );
+}
+
+void SwAccessibleContext::InvalidatePosOrSize( const SwRect& )
+{
+ SolarMutexGuard aGuard;
+
+ OSL_ENSURE( GetFrm() && !GetFrm()->Frm().IsEmpty(), "context should have a size" );
+
+ sal_Bool bIsOldShowingState;
+ sal_Bool bIsNewShowingState = IsShowing( *(GetMap()) );
+ {
+ osl::MutexGuard aShowingStateGuard( aMutex );
+ bIsOldShowingState = bIsShowingState;
+ bIsShowingState = bIsNewShowingState;
+ }
+
+ if( bIsOldShowingState != bIsNewShowingState )
+ {
+ FireStateChangedEvent( AccessibleStateType::SHOWING,
+ bIsNewShowingState );
+ }
+ else if( bIsNewShowingState )
+ {
+ // The frame stays visible -> broadcast event
+ FireVisibleDataEvent();
+ }
+
+ if( !bIsNewShowingState &&
+ SwAccessibleChild( GetParent() ).IsVisibleChildrenOnly() )
+ {
+ // The frame is now invisible -> dispose it
+ Dispose( sal_True );
+ }
+ else
+ {
+ _InvalidateContent( sal_True );
+ }
+}
+
+void SwAccessibleContext::InvalidateChildPosOrSize(
+ const SwAccessibleChild& rChildFrmOrObj,
+ const SwRect& rOldFrm )
+{
+ SolarMutexGuard aGuard;
+
+ OSL_ENSURE( !rChildFrmOrObj.GetSwFrm() ||
+ !rChildFrmOrObj.GetSwFrm()->Frm().IsEmpty(),
+ "child context should have a size" );
+
+ if ( rChildFrmOrObj.AlwaysIncludeAsChild() )
+ {
+ // nothing to do;
+ return;
+ }
+
+ const bool bVisibleChildrenOnly = SwAccessibleChild( GetFrm() ).IsVisibleChildrenOnly();
+ const bool bNew = rOldFrm.IsEmpty() ||
+ ( rOldFrm.Left() == 0 && rOldFrm.Top() == 0 );
+ if( IsShowing( *(GetMap()), rChildFrmOrObj ) )
+ {
+ // If the object could have existed before, than there is nothing to do,
+ // because no wrapper exists now and therefor no one is interested to
+ // get notified of the movement.
+ if( bNew || (bVisibleChildrenOnly && !IsShowing( rOldFrm )) )
+ {
+ if( rChildFrmOrObj.GetSwFrm() )
+ {
+ // The frame becomes visible. A child event must be send.
+ ::rtl::Reference< SwAccessibleContext > xAccImpl =
+ GetMap()->GetContextImpl( rChildFrmOrObj.GetSwFrm(),
+ sal_True );
+ xAccImpl->ScrolledIn();
+ }
+ else if ( rChildFrmOrObj.GetDrawObject() )
+ {
+ ::rtl::Reference< ::accessibility::AccessibleShape > xAccImpl =
+ GetMap()->GetContextImpl( rChildFrmOrObj.GetDrawObject(),
+ this, sal_True );
+ // #i37790#
+ if ( xAccImpl.is() )
+ {
+ ScrolledInShape( rChildFrmOrObj.GetDrawObject(),
+ xAccImpl.get() );
+ }
+ else
+ {
+ OSL_FAIL( "<SwAccessibleContext::InvalidateChildPosOrSize(..)> - no accessible shape found." );
+ }
+ // <--
+ }
+ else if ( rChildFrmOrObj.GetWindow() )
+ {
+ AccessibleEventObject aEvent;
+ aEvent.EventId = AccessibleEventId::CHILD;
+ aEvent.NewValue <<= (rChildFrmOrObj.GetWindow()->GetAccessible());
+ FireAccessibleEvent( aEvent );
+ }
+ }
+ }
+ else
+ {
+ // If the frame was visible before, than a child event for the parent
+ // needs to be send. However, there is no wrapper existing, and so
+ // no notifications for grandchildren are required. If the are
+ // grandgrandchildren, they would be notified by the layout.
+ if( bVisibleChildrenOnly &&
+ !bNew && IsShowing( rOldFrm ) )
+ {
+ if( rChildFrmOrObj.GetSwFrm() )
+ {
+ ::rtl::Reference< SwAccessibleContext > xAccImpl =
+ GetMap()->GetContextImpl( rChildFrmOrObj.GetSwFrm(),
+ sal_True );
+ xAccImpl->SetParent( this );
+ xAccImpl->Dispose( sal_True );
+ }
+ else if ( rChildFrmOrObj.GetDrawObject() )
+ {
+ ::rtl::Reference< ::accessibility::AccessibleShape > xAccImpl =
+ GetMap()->GetContextImpl( rChildFrmOrObj.GetDrawObject(),
+ this, sal_True );
+ DisposeShape( rChildFrmOrObj.GetDrawObject(),
+ xAccImpl.get() );
+ }
+ else if ( rChildFrmOrObj.GetWindow() )
+ {
+ OSL_FAIL( "<SwAccessibleContext::InvalidateChildPosOrSize(..)> - not expected to handle dispose of child of type <Window>." );
+ }
+ }
+ }
+}
+
+void SwAccessibleContext::InvalidateContent()
+{
+ SolarMutexGuard aGuard;
+
+ _InvalidateContent( sal_False );
+}
+
+void SwAccessibleContext::InvalidateCursorPos()
+{
+ SolarMutexGuard aGuard;
+
+ _InvalidateCursorPos();
+}
+
+void SwAccessibleContext::InvalidateFocus()
+{
+ SolarMutexGuard aGuard;
+
+ _InvalidateFocus();
+}
+
+// #i27301# - use new type definition for <_nStates>
+void SwAccessibleContext::InvalidateStates( tAccessibleStates _nStates )
+{
+ if( GetMap() )
+ {
+ ViewShell *pVSh = GetMap()->GetShell();
+ if( pVSh )
+ {
+ if( (_nStates & ACC_STATE_EDITABLE) != 0 )
+ {
+ sal_Bool bIsOldEditableState;
+ sal_Bool bIsNewEditableState = IsEditable( pVSh );
+ {
+ osl::MutexGuard aGuard( aMutex );
+ bIsOldEditableState = bIsEditableState;
+ bIsEditableState = bIsNewEditableState;
+ }
+
+ if( bIsOldEditableState != bIsNewEditableState )
+ FireStateChangedEvent( AccessibleStateType::EDITABLE,
+ bIsNewEditableState );
+ }
+ if( (_nStates & ACC_STATE_OPAQUE) != 0 )
+ {
+ sal_Bool bIsOldOpaqueState;
+ sal_Bool bIsNewOpaqueState = IsOpaque( pVSh );
+ {
+ osl::MutexGuard aGuard( aMutex );
+ bIsOldOpaqueState = bIsOpaqueState;
+ bIsOpaqueState = bIsNewOpaqueState;
+ }
+
+ if( bIsOldOpaqueState != bIsNewOpaqueState )
+ FireStateChangedEvent( AccessibleStateType::OPAQUE,
+ bIsNewOpaqueState );
+ }
+ }
+
+ InvalidateChildrenStates( GetFrm(), _nStates );
+ }
+}
+// <--
+
+void SwAccessibleContext::InvalidateRelation( sal_uInt16 nType )
+{
+ AccessibleEventObject aEvent;
+ aEvent.EventId = nType;
+
+ FireAccessibleEvent( aEvent );
+}
+
+/** #i27301# - text selection has changed */
+void SwAccessibleContext::InvalidateTextSelection()
+{
+ AccessibleEventObject aEvent;
+ aEvent.EventId = AccessibleEventId::TEXT_SELECTION_CHANGED;
+
+ FireAccessibleEvent( aEvent );
+}
+
+/** #i88069# - attributes has changed */
+void SwAccessibleContext::InvalidateAttr()
+{
+ AccessibleEventObject aEvent;
+ aEvent.EventId = AccessibleEventId::TEXT_ATTRIBUTE_CHANGED;
+
+ FireAccessibleEvent( aEvent );
+}
+
+sal_Bool SwAccessibleContext::HasCursor()
+{
+ return sal_False;
+}
+
+sal_Bool SwAccessibleContext::Select( SwPaM *pPaM, SdrObject *pObj,
+ sal_Bool bAdd )
+{
+ SwCrsrShell* pCrsrShell = GetCrsrShell();
+ if( !pCrsrShell )
+ return sal_False;
+
+ SwFEShell* pFEShell = pCrsrShell->ISA( SwFEShell )
+ ? static_cast<SwFEShell*>( pCrsrShell )
+ : 0;
+ // Get rid of activated OLE object
+ if( pFEShell )
+ pFEShell->FinishOLEObj();
+
+ sal_Bool bRet = sal_False;
+ if( pObj )
+ {
+ if( pFEShell )
+ {
+ Point aDummy;
+ sal_uInt8 nFlags = bAdd ? SW_ADD_SELECT : 0;
+ pFEShell->SelectObj( aDummy, nFlags, pObj );
+ bRet = sal_True;
+ }
+ }
+ else if( pPaM )
+ {
+ // Get rid of frame selection. If there is one, make text cursor
+ // visible again.
+ sal_Bool bCallShowCrsr = sal_False;
+ if( pFEShell && (pFEShell->IsFrmSelected() ||
+ pFEShell->IsObjSelected()) )
+ {
+ Point aPt( LONG_MIN, LONG_MIN );
+ pFEShell->SelectObj( aPt, 0 );
+ bCallShowCrsr = sal_True;
+ }
+ pCrsrShell->KillPams();
+ pCrsrShell->SetSelection( *pPaM );
+ if( bCallShowCrsr )
+ pCrsrShell->ShowCrsr();
+ bRet = sal_True;
+ }
+
+ return bRet;
+}
+
+OUString SwAccessibleContext::GetResource( sal_uInt16 nResId,
+ const OUString *pArg1,
+ const OUString *pArg2 )
+{
+ String sStr;
+ {
+ SolarMutexGuard aGuard;
+
+ sStr = SW_RES( nResId );
+ }
+
+ if( pArg1 )
+ {
+ sStr.SearchAndReplace( String::CreateFromAscii(
+ RTL_CONSTASCII_STRINGPARAM( "$(ARG1)" )),
+ String( *pArg1 ) );
+ }
+ if( pArg2 )
+ {
+ sStr.SearchAndReplace( String::CreateFromAscii(
+ RTL_CONSTASCII_STRINGPARAM( "$(ARG2)" )),
+ String( *pArg2 ) );
+ }
+
+ return OUString( sStr );
+}
+
+void SwAccessibleContext::RemoveFrmFromAccessibleMap()
+{
+ if( bRegisteredAtAccessibleMap && GetFrm() && GetMap() )
+ GetMap()->RemoveContext( GetFrm() );
+}
+
+bool SwAccessibleContext::HasAdditionalAccessibleChildren()
+{
+ bool bRet( false );
+
+ if ( GetFrm()->IsTxtFrm() )
+ {
+ SwPostItMgr* pPostItMgr = GetMap()->GetShell()->GetPostItMgr();
+ if ( pPostItMgr && pPostItMgr->HasNotes() && pPostItMgr->ShowNotes() )
+ {
+ bRet = pPostItMgr->HasFrmConnectedSidebarWins( *(GetFrm()) );
+ }
+ }
+
+ return bRet;
+}
+/** #i88070# - get additional accessible child by index */
+Window* SwAccessibleContext::GetAdditionalAccessibleChild( const sal_Int32 nIndex )
+{
+ Window* pAdditionalAccessibleChild( 0 );
+
+ if ( GetFrm()->IsTxtFrm() )
+ {
+ SwPostItMgr* pPostItMgr = GetMap()->GetShell()->GetPostItMgr();
+ if ( pPostItMgr && pPostItMgr->HasNotes() && pPostItMgr->ShowNotes() )
+ {
+ pAdditionalAccessibleChild =
+ pPostItMgr->GetSidebarWinForFrmByIndex( *(GetFrm()), nIndex );
+ }
+ }
+
+ return pAdditionalAccessibleChild;
+}
+
+/** #i88070# - get all additional accessible children */
+void SwAccessibleContext::GetAdditionalAccessibleChildren( std::vector< Window* >* pChildren )
+{
+ if ( GetFrm()->IsTxtFrm() )
+ {
+ SwPostItMgr* pPostItMgr = GetMap()->GetShell()->GetPostItMgr();
+ if ( pPostItMgr && pPostItMgr->HasNotes() && pPostItMgr->ShowNotes() )
+ {
+ pPostItMgr->GetAllSidebarWinForFrm( *(GetFrm()), pChildren );
+ }
+ }
+}
+
+#if (OSL_DEBUG_LEVEL > 1) && defined TEST_MIB
+void lcl_SwAccessibleContext_DbgMsg( SwAccessibleContext *pThisAcc,
+ const char *pMsg,
+ SwAccessibleContext *pChildAcc,
+ sal_Bool bConstrDestr )
+{
+ static SvFileStream aStrm( String::CreateFromAscii("j:\\acc.log"),
+ STREAM_WRITE|STREAM_TRUNC|STREAM_SHARE_DENYNONE );
+ ByteString aName( String(pThisAcc->GetName()),
+ RTL_TEXTENCODING_ISO_8859_1 );
+ if( aName.Len() )
+ {
+ aStrm << aName.GetBuffer()
+ << ": ";
+ }
+ aStrm << pMsg;
+ if( pChildAcc )
+ {
+ ByteString aChild( String(pChildAcc->GetName()),
+ RTL_TEXTENCODING_ISO_8859_1 );
+ aStrm << ": "
+ << aChild.GetBuffer();
+ }
+ aStrm << "\r\n (";
+
+ if( !bConstrDestr )
+ {
+ ByteString aDesc( String(pThisAcc->getAccessibleDescription()),
+ RTL_TEXTENCODING_ISO_8859_1 );
+ aStrm << aDesc.GetBuffer()
+ << ", ";
+ }
+
+ Rectangle aVisArea( pThisAcc->GetVisArea() );
+ aStrm << "VA: "
+ << ByteString::CreateFromInt32( aVisArea.Left() ).GetBuffer()
+ << ","
+ << ByteString::CreateFromInt32( aVisArea.Top() ).GetBuffer()
+ << ","
+ << ByteString::CreateFromInt32( aVisArea.GetWidth() ).GetBuffer()
+ << ","
+ << ByteString::CreateFromInt32( aVisArea.GetHeight() ).GetBuffer();
+
+ if( pThisAcc->GetFrm() )
+ {
+ Rectangle aBounds( pThisAcc->GetBounds( pThisAcc->GetFrm() ) );
+ aStrm << ", BB: "
+ << ByteString::CreateFromInt32( aBounds.Left() ).GetBuffer()
+ << ","
+ << ByteString::CreateFromInt32( aBounds.Top() ).GetBuffer()
+ << ","
+ << ByteString::CreateFromInt32( aBounds.GetWidth() ).GetBuffer()
+ << ","
+ << ByteString::CreateFromInt32( aBounds.GetHeight() ).GetBuffer()
+ << ")\r\n";
+ }
+
+ aStrm.Flush();
+}
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/source/core/access/acccontext.hxx b/sw/source/core/access/acccontext.hxx
new file mode 100644
index 000000000000..d9fd0e113d55
--- /dev/null
+++ b/sw/source/core/access/acccontext.hxx
@@ -0,0 +1,433 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef _ACCBASE_HXX
+#define _ACCBASE_HXX
+#include <accframe.hxx>
+#include <accmap.hxx>
+#include <com/sun/star/accessibility/XAccessibleComponent.hpp>
+#include <com/sun/star/accessibility/XAccessibleEventBroadcaster.hpp>
+#include <com/sun/star/lang/DisposedException.hpp>
+#include <com/sun/star/lang/XServiceInfo.hpp>
+#include <cppuhelper/implbase5.hxx>
+#include <cppuhelper/interfacecontainer.hxx>
+
+class Window;
+class SwAccessibleMap;
+class SwCrsrShell;
+class SdrObject;
+class SwPaM;
+namespace utl {
+ class AccessibleStateSetHelper;
+}
+namespace accessibility {
+ class AccessibleShape;
+}
+class SwFmtFld;
+class SwAccessibleChildContainer;
+
+const sal_Char sAccessibleServiceName[] = "com.sun.star.accessibility.Accessible";
+
+class SwAccessibleContext :
+ public ::cppu::WeakImplHelper5<
+ ::com::sun::star::accessibility::XAccessible,
+ ::com::sun::star::accessibility::XAccessibleContext,
+ ::com::sun::star::accessibility::XAccessibleComponent,
+ ::com::sun::star::accessibility::XAccessibleEventBroadcaster,
+ ::com::sun::star::lang::XServiceInfo
+ >,
+ public SwAccessibleFrame
+{
+ // The implements for the XAccessibleSelection interface has been
+ // 'externalized' and wants access to the protected members like
+ // GetMap, GetChild, GetParent, and GetFrm.
+ friend class SwAccessibleSelectionHelper;
+
+
+protected:</