summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sw/inc/SwStyleNameMapper.hxx12
-rw-r--r--sw/inc/accmap.hxx129
-rw-r--r--sw/inc/calc.hxx7
-rw-r--r--sw/inc/cmdid.h7
-rw-r--r--sw/inc/crsrsh.hxx16
-rw-r--r--sw/inc/crstate.hxx5
-rw-r--r--sw/inc/dbmgr.hxx14
-rw-r--r--sw/inc/docsh.hxx11
-rw-r--r--sw/inc/dpage.hxx8
-rw-r--r--sw/inc/editsh.hxx13
-rw-r--r--sw/inc/fesh.hxx13
-rw-r--r--sw/inc/helpid.h5
-rw-r--r--sw/inc/ndgrf.hxx8
-rw-r--r--sw/inc/ndtxt.hxx6
-rw-r--r--sw/inc/pagepreviewlayout.hxx594
-rw-r--r--sw/inc/poolfmt.hxx10
-rw-r--r--sw/inc/shellio.hxx26
-rw-r--r--sw/inc/swcrsr.hxx13
-rw-r--r--sw/inc/swmodule.hxx13
-rw-r--r--sw/inc/swunohelper.hxx10
-rw-r--r--sw/inc/tblsel.hxx34
-rw-r--r--sw/inc/unoframe.hxx17
-rw-r--r--sw/inc/unomailmerge.hxx233
-rw-r--r--sw/inc/unomap.hxx29
-rw-r--r--sw/inc/unoobj.hxx8
-rw-r--r--sw/inc/unoprnms.hxx21
-rw-r--r--sw/inc/viewopt.hxx8
-rw-r--r--sw/inc/viewsh.hxx247
-rw-r--r--sw/prj/build.lst3
-rw-r--r--sw/prj/d.lst14
-rw-r--r--sw/sdi/_viewsh.sdi14
-rw-r--r--sw/sdi/swriter.sdi26
-rw-r--r--sw/sdi/swslots.src502
-rw-r--r--sw/sdi/wrtapp.sdi9
-rw-r--r--sw/sdi/wviewsh.sdi24
-rw-r--r--sw/source/core/access/acccell.cxx11
-rw-r--r--sw/source/core/access/acccontext.cxx88
-rw-r--r--sw/source/core/access/acccontext.hxx6
-rw-r--r--sw/source/core/access/accdoc.cxx11
-rw-r--r--sw/source/core/access/accembedded.cxx15
-rw-r--r--sw/source/core/access/accfootnote.cxx11
-rw-r--r--sw/source/core/access/accgraphic.cxx15
-rw-r--r--sw/source/core/access/accheaderfooter.cxx11
-rw-r--r--sw/source/core/access/accmap.cxx420
-rw-r--r--sw/source/core/access/accpage.cxx11
-rw-r--r--sw/source/core/access/accpara.cxx18
-rw-r--r--sw/source/core/access/accpreview.cxx15
-rw-r--r--sw/source/core/access/acctable.cxx11
-rw-r--r--sw/source/core/access/acctextframe.cxx11
-rw-r--r--sw/source/core/bastyp/bparr.cxx20
-rw-r--r--sw/source/core/bastyp/calc.cxx60
-rw-r--r--sw/source/core/bastyp/init.cxx6
-rw-r--r--sw/source/core/crsr/crsrsh.cxx18
-rw-r--r--sw/source/core/crsr/pam.cxx6
-rw-r--r--sw/source/core/crsr/swcrsr.cxx185
-rw-r--r--sw/source/core/crsr/viscrs.cxx34
-rw-r--r--sw/source/core/doc/SwStyleNameMapper.cxx58
-rw-r--r--sw/source/core/doc/docbm.cxx18
-rw-r--r--sw/source/core/doc/doccomp.cxx62
-rw-r--r--sw/source/core/doc/docdesc.cxx8
-rw-r--r--sw/source/core/doc/docedt.cxx15
-rw-r--r--sw/source/core/doc/docfld.cxx33
-rw-r--r--sw/source/core/doc/doclay.cxx51
-rw-r--r--sw/source/core/doc/docnum.cxx24
-rw-r--r--sw/source/core/doc/docredln.cxx67
-rw-r--r--sw/source/core/doc/docsort.cxx27
-rw-r--r--sw/source/core/doc/doctxm.cxx14
-rw-r--r--sw/source/core/doc/notxtfrm.cxx18
-rw-r--r--sw/source/core/doc/poolfmt.cxx14
-rw-r--r--sw/source/core/doc/tblcpy.cxx11
-rw-r--r--sw/source/core/doc/tblrwcl.cxx95
-rw-r--r--sw/source/core/docnode/ndcopy.cxx67
-rw-r--r--sw/source/core/docnode/ndsect.cxx8
-rw-r--r--sw/source/core/docnode/ndtbl.cxx118
-rw-r--r--sw/source/core/docnode/ndtbl1.cxx22
-rw-r--r--sw/source/core/docnode/nodes.cxx4
-rw-r--r--sw/source/core/docnode/swbaslnk.cxx43
-rw-r--r--sw/source/core/draw/dflyobj.cxx28
-rw-r--r--sw/source/core/draw/dpage.cxx14
-rw-r--r--sw/source/core/draw/drawdoc.cxx6
-rw-r--r--sw/source/core/edit/acorrect.cxx5
-rw-r--r--sw/source/core/edit/autofmt.cxx9
-rw-r--r--sw/source/core/edit/edattr.cxx92
-rw-r--r--sw/source/core/edit/editsh.cxx65
-rw-r--r--sw/source/core/edit/edsect.cxx249
-rw-r--r--sw/source/core/fields/authfld.cxx33
-rw-r--r--sw/source/core/fields/fldbas.cxx13
-rw-r--r--sw/source/core/frmedt/fecopy.cxx46
-rw-r--r--sw/source/core/frmedt/fefly1.cxx7
-rw-r--r--sw/source/core/frmedt/feshview.cxx58
-rw-r--r--sw/source/core/frmedt/fetab.cxx233
-rw-r--r--sw/source/core/frmedt/tblsel.cxx204
-rw-r--r--sw/source/core/graphic/ndgrf.cxx16
-rw-r--r--sw/source/core/inc/drawfont.hxx340
-rw-r--r--sw/source/core/inc/frmtool.hxx32
-rw-r--r--sw/source/core/inc/pagefrm.hxx130
-rw-r--r--sw/source/core/inc/prevwpage.hxx38
-rw-r--r--sw/source/core/inc/rootfrm.hxx20
-rw-r--r--sw/source/core/inc/swfont.hxx10
-rw-r--r--sw/source/core/inc/txtfrm.hxx9
-rw-r--r--sw/source/core/inc/viewimp.hxx46
-rw-r--r--sw/source/core/layout/atrfrm.cxx6
-rw-r--r--sw/source/core/layout/calcmove.cxx50
-rw-r--r--sw/source/core/layout/findfrm.cxx11
-rw-r--r--sw/source/core/layout/flowfrm.cxx6
-rw-r--r--sw/source/core/layout/fly.cxx18
-rw-r--r--sw/source/core/layout/flycnt.cxx42
-rw-r--r--sw/source/core/layout/frmtool.cxx63
-rw-r--r--sw/source/core/layout/hffrm.cxx23
-rw-r--r--sw/source/core/layout/layact.cxx65
-rw-r--r--sw/source/core/layout/pagechg.cxx28
-rw-r--r--sw/source/core/layout/paintfrm.cxx717
-rw-r--r--sw/source/core/layout/sectfrm.cxx27
-rw-r--r--sw/source/core/layout/tabfrm.cxx666
-rw-r--r--sw/source/core/layout/trvlfrm.cxx422
-rw-r--r--sw/source/core/layout/wsfrm.cxx33
-rw-r--r--sw/source/core/text/frmcrsr.cxx293
-rw-r--r--sw/source/core/text/frmform.cxx9
-rw-r--r--sw/source/core/text/frmpaint.cxx17
-rw-r--r--sw/source/core/text/inftxt.cxx19
-rw-r--r--sw/source/core/text/inftxt.hxx7
-rw-r--r--sw/source/core/text/itrcrsr.cxx169
-rw-r--r--sw/source/core/text/itrform2.cxx19
-rw-r--r--sw/source/core/text/makefile.mk4
-rw-r--r--sw/source/core/text/porfld.cxx41
-rw-r--r--sw/source/core/text/porfly.cxx8
-rw-r--r--sw/source/core/text/porlay.cxx125
-rw-r--r--sw/source/core/text/pormulti.cxx23
-rw-r--r--sw/source/core/text/portxt.cxx10
-rw-r--r--sw/source/core/text/txtcache.cxx5
-rw-r--r--sw/source/core/text/txtfly.cxx22
-rw-r--r--sw/source/core/text/txtfrm.cxx12
-rw-r--r--sw/source/core/text/txtftn.cxx53
-rw-r--r--sw/source/core/text/txtio.cxx10
-rw-r--r--sw/source/core/text/txttab.cxx21
-rw-r--r--sw/source/core/tox/txmsrt.cxx21
-rw-r--r--sw/source/core/txtnode/fntcache.cxx39
-rw-r--r--sw/source/core/txtnode/fntcap.cxx25
-rw-r--r--sw/source/core/txtnode/ndtxt.cxx48
-rw-r--r--sw/source/core/txtnode/swfont.cxx10
-rw-r--r--sw/source/core/txtnode/txtedt.cxx39
-rw-r--r--sw/source/core/unocore/swunohelper.cxx31
-rw-r--r--sw/source/core/unocore/unocrsrhelper.cxx78
-rw-r--r--sw/source/core/unocore/unodraw.cxx8
-rw-r--r--sw/source/core/unocore/unofield.cxx6
-rw-r--r--sw/source/core/unocore/unoframe.cxx268
-rw-r--r--sw/source/core/unocore/unoftn.cxx27
-rw-r--r--sw/source/core/unocore/unoidx.cxx22
-rw-r--r--sw/source/core/unocore/unomap.cxx43
-rw-r--r--sw/source/core/unocore/unoobj.cxx41
-rw-r--r--sw/source/core/unocore/unoobj2.cxx12
-rw-r--r--sw/source/core/unocore/unoport.cxx7
-rw-r--r--sw/source/core/unocore/unoportenum.cxx32
-rw-r--r--sw/source/core/unocore/unoprnms.cxx21
-rw-r--r--sw/source/core/unocore/unoredline.cxx34
-rw-r--r--sw/source/core/unocore/unorefmk.cxx6
-rw-r--r--sw/source/core/unocore/unotbl.cxx23
-rw-r--r--sw/source/core/unocore/unotext.cxx23
-rw-r--r--sw/source/core/view/makefile.mk10
-rw-r--r--sw/source/core/view/pagepreviewlayout.cxx1424
-rw-r--r--sw/source/core/view/scrrect.cxx141
-rw-r--r--sw/source/core/view/viewimp.cxx50
-rw-r--r--sw/source/core/view/viewpg.cxx1575
-rw-r--r--sw/source/core/view/viewsh.cxx54
-rw-r--r--sw/source/core/view/vnew.cxx14
-rw-r--r--sw/source/core/view/vprint.cxx112
-rw-r--r--sw/source/filter/ascii/parasc.cxx514
-rw-r--r--sw/source/filter/basflt/fltini.cxx59
-rw-r--r--sw/source/filter/basflt/shellio.cxx19
-rw-r--r--sw/source/filter/html/htmlatr.cxx12
-rw-r--r--sw/source/filter/html/htmlbas.cxx6
-rw-r--r--sw/source/filter/html/htmlfly.cxx10
-rw-r--r--sw/source/filter/html/htmlfly.hxx6
-rw-r--r--sw/source/filter/html/htmlflyt.cxx83
-rw-r--r--sw/source/filter/html/htmlform.cxx6
-rw-r--r--sw/source/filter/html/htmlgrin.cxx168
-rw-r--r--sw/source/filter/html/htmltab.cxx23
-rw-r--r--sw/source/filter/html/htmltabw.cxx7
-rw-r--r--sw/source/filter/html/makefile.mk4
-rw-r--r--sw/source/filter/html/wrthtml.cxx8
-rw-r--r--sw/source/filter/inc/fltshell.hxx5
-rw-r--r--sw/source/filter/rtf/rtfatr.cxx147
-rw-r--r--sw/source/filter/rtf/rtffld.cxx88
-rw-r--r--sw/source/filter/rtf/rtffly.cxx45
-rw-r--r--sw/source/filter/rtf/rtfnum.cxx9
-rw-r--r--sw/source/filter/rtf/rtftbl.cxx210
-rw-r--r--sw/source/filter/rtf/swparrtf.cxx1933
-rw-r--r--sw/source/filter/rtf/swparrtf.hxx139
-rw-r--r--sw/source/filter/writer/writer.cxx41
-rw-r--r--sw/source/filter/ww1/fltshell.cxx18
-rw-r--r--sw/source/filter/ww8/dump/dump8a.cxx4
-rw-r--r--sw/source/filter/ww8/escher.hxx9
-rw-r--r--sw/source/filter/ww8/makefile.mk5
-rw-r--r--sw/source/filter/ww8/wrtw8esh.cxx94
-rw-r--r--sw/source/filter/ww8/wrtw8nds.cxx37
-rw-r--r--sw/source/filter/ww8/wrtw8num.cxx7
-rw-r--r--sw/source/filter/ww8/wrtw8sty.cxx63
-rw-r--r--sw/source/filter/ww8/wrtww8.cxx85
-rw-r--r--sw/source/filter/ww8/wrtww8.hxx10
-rw-r--r--sw/source/filter/ww8/wrtww8gr.cxx20
-rw-r--r--sw/source/filter/ww8/ww8atr.cxx10
-rw-r--r--sw/source/filter/ww8/ww8glsy.cxx14
-rw-r--r--sw/source/filter/ww8/ww8glsy.hxx7
-rw-r--r--sw/source/filter/ww8/ww8graf.cxx62
-rw-r--r--sw/source/filter/ww8/ww8graf.hxx7
-rw-r--r--sw/source/filter/ww8/ww8graf2.cxx42
-rw-r--r--sw/source/filter/ww8/ww8par.cxx747
-rw-r--r--sw/source/filter/ww8/ww8par.hxx202
-rw-r--r--sw/source/filter/ww8/ww8par2.cxx100
-rw-r--r--sw/source/filter/ww8/ww8par2.hxx8
-rw-r--r--sw/source/filter/ww8/ww8par3.cxx6
-rw-r--r--sw/source/filter/ww8/ww8par4.cxx18
-rw-r--r--sw/source/filter/ww8/ww8par5.cxx179
-rw-r--r--sw/source/filter/ww8/ww8par6.cxx1581
-rw-r--r--sw/source/filter/ww8/ww8scan.cxx214
-rw-r--r--sw/source/filter/ww8/ww8scan.hxx12
-rw-r--r--sw/source/filter/ww8/ww8struc.hxx134
-rw-r--r--sw/source/filter/xml/swxml.cxx16
-rw-r--r--sw/source/filter/xml/xmlexpit.cxx12
-rw-r--r--sw/source/filter/xml/xmliteme.cxx8
-rw-r--r--sw/source/filter/xml/xmltbli.cxx101
-rw-r--r--sw/source/filter/xml/xmltexte.cxx63
-rw-r--r--sw/source/filter/xml/xmltexte.hxx9
-rw-r--r--sw/source/ui/app/app.src327
-rw-r--r--sw/source/ui/app/appenv.cxx51
-rw-r--r--sw/source/ui/app/apphdl.cxx23
-rw-r--r--sw/source/ui/app/applab.cxx6
-rw-r--r--sw/source/ui/app/docsh.cxx127
-rw-r--r--sw/source/ui/app/docsh2.cxx15
-rw-r--r--sw/source/ui/app/docshini.cxx86
-rw-r--r--sw/source/ui/app/docst.cxx22
-rw-r--r--sw/source/ui/app/error.src250
-rw-r--r--sw/source/ui/app/makefile.mk6
-rw-r--r--sw/source/ui/app/mn.src26
-rw-r--r--sw/source/ui/app/swmodul1.cxx193
-rw-r--r--sw/source/ui/app/swmodule.cxx14
-rw-r--r--sw/source/ui/chrdlg/ccoll.src400
-rw-r--r--sw/source/ui/chrdlg/chardlg.src148
-rw-r--r--sw/source/ui/chrdlg/chrdlg.src48
-rw-r--r--sw/source/ui/chrdlg/drpcps.src88
-rw-r--r--sw/source/ui/chrdlg/numpara.src40
-rw-r--r--sw/source/ui/chrdlg/paradlg.src96
-rw-r--r--sw/source/ui/chrdlg/swbreak.src76
-rw-r--r--sw/source/ui/config/optdlg.src141
-rw-r--r--sw/source/ui/config/optload.src227
-rw-r--r--sw/source/ui/config/optpage.cxx19
-rw-r--r--sw/source/ui/config/redlopt.src313
-rw-r--r--sw/source/ui/config/usrpref.cxx20
-rw-r--r--sw/source/ui/config/viewopt.cxx70
-rw-r--r--sw/source/ui/dbui/dbinsdlg.src30
-rw-r--r--sw/source/ui/dbui/dbmgr.cxx61
-rw-r--r--sw/source/ui/dbui/dbui.src62
-rw-r--r--sw/source/ui/dialog/abstract.src69
-rw-r--r--sw/source/ui/dialog/ascfldlg.src116
-rw-r--r--sw/source/ui/dialog/dialog.src50
-rw-r--r--sw/source/ui/dialog/docstdlg.src80
-rw-r--r--sw/source/ui/dialog/regionsw.cxx13
-rw-r--r--sw/source/ui/dialog/regionsw.src244
-rw-r--r--sw/source/ui/dochdl/dochdl.src78
-rw-r--r--sw/source/ui/dochdl/gloshdl.cxx21
-rw-r--r--sw/source/ui/dochdl/selglos.src42
-rw-r--r--sw/source/ui/dochdl/swdtflvr.cxx64
-rw-r--r--sw/source/ui/docvw/access.src104
-rw-r--r--sw/source/ui/docvw/docvw.src79
-rw-r--r--sw/source/ui/docvw/edtwin.cxx163
-rw-r--r--sw/source/ui/docvw/edtwin2.cxx12
-rw-r--r--sw/source/ui/docvw/srcedtw.cxx35
-rw-r--r--sw/source/ui/envelp/envelp.src63
-rw-r--r--sw/source/ui/envelp/envfmt.src277
-rw-r--r--sw/source/ui/envelp/envlop.src21
-rw-r--r--sw/source/ui/envelp/envprt.src17
-rw-r--r--sw/source/ui/envelp/label.src245
-rw-r--r--sw/source/ui/envelp/labfmt.src328
-rw-r--r--sw/source/ui/envelp/labprt.src15
-rw-r--r--sw/source/ui/envelp/mailmrge.cxx27
-rw-r--r--sw/source/ui/envelp/mailmrge.hrc10
-rw-r--r--sw/source/ui/envelp/mailmrge.src328
-rw-r--r--sw/source/ui/fldui/changedb.src45
-rw-r--r--sw/source/ui/fldui/flddb.src18
-rw-r--r--sw/source/ui/fldui/flddinf.src143
-rw-r--r--sw/source/ui/fldui/flddok.src127
-rw-r--r--sw/source/ui/fldui/fldfunc.src119
-rw-r--r--sw/source/ui/fldui/fldpage.cxx22
-rw-r--r--sw/source/ui/fldui/fldref.src118
-rw-r--r--sw/source/ui/fldui/fldtdlg.cxx57
-rw-r--r--sw/source/ui/fldui/fldtdlg.src122
-rw-r--r--sw/source/ui/fldui/fldui.src111
-rw-r--r--sw/source/ui/fldui/fldvar.src39
-rw-r--r--sw/source/ui/fldui/inpdlg.src66
-rw-r--r--sw/source/ui/fldui/javaedit.src43
-rw-r--r--sw/source/ui/fmtui/fmtui.src50
-rw-r--r--sw/source/ui/fmtui/tmpdlg.src228
-rw-r--r--sw/source/ui/frmdlg/column.cxx13
-rw-r--r--sw/source/ui/frmdlg/column.src140
-rw-r--r--sw/source/ui/frmdlg/cption.src144
-rw-r--r--sw/source/ui/frmdlg/frmpage.cxx88
-rw-r--r--sw/source/ui/frmdlg/frmpage.src105
-rw-r--r--sw/source/ui/frmdlg/frmui.src306
-rw-r--r--sw/source/ui/frmdlg/makefile.mk9
-rw-r--r--sw/source/ui/frmdlg/wrap.src68
-rw-r--r--sw/source/ui/globdoc/globdoc.src51
-rw-r--r--sw/source/ui/inc/app.hrc6
-rw-r--r--sw/source/ui/inc/chartins.hxx13
-rw-r--r--sw/source/ui/inc/edtwin.hxx7
-rw-r--r--sw/source/ui/inc/fldtdlg.hxx5
-rw-r--r--sw/source/ui/inc/fldwrap.hxx18
-rw-r--r--sw/source/ui/inc/mailmrge.hxx29
-rw-r--r--sw/source/ui/inc/pview.hxx96
-rw-r--r--sw/source/ui/inc/shells.hrc8
-rw-r--r--sw/source/ui/inc/swdtflvr.hxx17
-rw-r--r--sw/source/ui/inc/view.hxx13
-rw-r--r--sw/source/ui/index/cntex.cxx7
-rw-r--r--sw/source/ui/index/cnttab.cxx6
-rw-r--r--sw/source/ui/index/cnttab.src121
-rw-r--r--sw/source/ui/index/idxmrk.src127
-rw-r--r--sw/source/ui/index/multmrk.src76
-rw-r--r--sw/source/ui/lingu/olmenu.cxx7
-rw-r--r--sw/source/ui/lingu/olmenu.src17
-rw-r--r--sw/source/ui/misc/bookmark.src76
-rw-r--r--sw/source/ui/misc/docfnote.src583
-rw-r--r--sw/source/ui/misc/glosbib.src121
-rw-r--r--sw/source/ui/misc/glossary.src258
-rw-r--r--sw/source/ui/misc/insfnote.src122
-rw-r--r--sw/source/ui/misc/insrule.cxx10
-rw-r--r--sw/source/ui/misc/insrule.src59
-rw-r--r--sw/source/ui/misc/linenum.src307
-rw-r--r--sw/source/ui/misc/num.src27
-rw-r--r--sw/source/ui/misc/numberingtypelistbox.src77
-rw-r--r--sw/source/ui/misc/outline.src498
-rw-r--r--sw/source/ui/misc/pgfnote.src184
-rw-r--r--sw/source/ui/misc/pggrid.src176
-rw-r--r--sw/source/ui/misc/redlndlg.src29
-rw-r--r--sw/source/ui/misc/srtdlg.cxx35
-rw-r--r--sw/source/ui/misc/srtdlg.src371
-rw-r--r--sw/source/ui/ribbar/inputwin.src512
-rw-r--r--sw/source/ui/ribbar/tblctrl.src16
-rw-r--r--sw/source/ui/ribbar/tbxanchr.src77
-rw-r--r--sw/source/ui/ribbar/workctrl.cxx20
-rw-r--r--sw/source/ui/ribbar/workctrl.src135
-rw-r--r--sw/source/ui/shells/basesh.cxx10
-rw-r--r--sw/source/ui/shells/drwbassh.cxx16
-rw-r--r--sw/source/ui/shells/drwtxtex.cxx61
-rw-r--r--sw/source/ui/shells/frmsh.cxx13
-rw-r--r--sw/source/ui/shells/shells.src167
-rw-r--r--sw/source/ui/shells/slotadd.cxx7
-rw-r--r--sw/source/ui/shells/textdrw.cxx17
-rw-r--r--sw/source/ui/shells/textfld.cxx6
-rw-r--r--sw/source/ui/shells/textsh.cxx19
-rw-r--r--sw/source/ui/shells/txtattr.cxx49
-rw-r--r--sw/source/ui/table/chartins.cxx26
-rw-r--r--sw/source/ui/table/chartins.src56
-rw-r--r--sw/source/ui/table/colwd.src72
-rw-r--r--sw/source/ui/table/convert.src222
-rw-r--r--sw/source/ui/table/insrc.src129
-rw-r--r--sw/source/ui/table/instable.src219
-rw-r--r--sw/source/ui/table/mergetbl.src76
-rw-r--r--sw/source/ui/table/rowht.src52
-rw-r--r--sw/source/ui/table/splittbl.src97
-rw-r--r--sw/source/ui/table/table.src25
-rw-r--r--sw/source/ui/table/tabledlg.src296
-rw-r--r--sw/source/ui/table/tautofmt.src354
-rw-r--r--sw/source/ui/uiview/pview.cxx737
-rw-r--r--sw/source/ui/uiview/pview.src40
-rw-r--r--sw/source/ui/uiview/scroll.cxx12
-rw-r--r--sw/source/ui/uiview/srcview.cxx39
-rw-r--r--sw/source/ui/uiview/view.cxx82
-rw-r--r--sw/source/ui/uiview/view.src147
-rw-r--r--sw/source/ui/uiview/view0.cxx6
-rw-r--r--sw/source/ui/uiview/view1.cxx16
-rw-r--r--sw/source/ui/uiview/view2.cxx246
-rw-r--r--sw/source/ui/uiview/viewport.cxx77
-rw-r--r--sw/source/ui/uiview/viewprt.cxx13
-rw-r--r--sw/source/ui/uiview/viewsrch.cxx14
-rw-r--r--sw/source/ui/uiview/viewstat.cxx16
-rw-r--r--sw/source/ui/uiview/viewtab.cxx32
-rw-r--r--sw/source/ui/uno/RefreshListenerContainer.cxx6
-rw-r--r--sw/source/ui/uno/SwXDocumentSettings.cxx95
-rw-r--r--sw/source/ui/uno/SwXDocumentSettings.hxx44
-rw-r--r--sw/source/ui/uno/SwXPrintPreviewSettings.cxx31
-rw-r--r--sw/source/ui/uno/SwXPrintPreviewSettings.hxx27
-rw-r--r--sw/source/ui/uno/makefile.mk6
-rw-r--r--sw/source/ui/uno/unoatxt.cxx12
-rw-r--r--sw/source/ui/uno/unofreg.cxx22
-rw-r--r--sw/source/ui/uno/unomailmerge.cxx1000
-rw-r--r--sw/source/ui/uno/unotxdoc.cxx7
-rw-r--r--sw/source/ui/uno/unotxvw.cxx27
-rw-r--r--sw/source/ui/utlui/attrdesc.src506
-rw-r--r--sw/source/ui/utlui/gloslst.src43
-rw-r--r--sw/source/ui/utlui/initui.src1346
-rw-r--r--sw/source/ui/utlui/navipi.src135
-rw-r--r--sw/source/ui/utlui/poolfmt.src922
-rw-r--r--sw/source/ui/utlui/unotools.src115
-rw-r--r--sw/source/ui/utlui/utlui.src85
-rw-r--r--sw/source/ui/web/web.src60
-rw-r--r--sw/source/ui/wrtsh/delete.cxx33
-rw-r--r--sw/source/ui/wrtsh/select.cxx10
-rw-r--r--sw/source/ui/wrtsh/wrtsh.src1451
-rw-r--r--sw/source/ui/wrtsh/wrtsh1.cxx23
-rw-r--r--sw/source/ui/wrtsh/wrtsh3.cxx10
-rw-r--r--sw/util/makefile.mk22
-rw-r--r--sw/xml/writer.xml256
401 files changed, 24680 insertions, 17370 deletions
diff --git a/sw/inc/SwStyleNameMapper.hxx b/sw/inc/SwStyleNameMapper.hxx
index 0fefac552bd8..2db608ed9fd7 100644
--- a/sw/inc/SwStyleNameMapper.hxx
+++ b/sw/inc/SwStyleNameMapper.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: SwStyleNameMapper.hxx,v $
*
- * $Revision: 1.3 $
+ * $Revision: 1.4 $
*
- * last change: $Author: mtg $ $Date: 2001-08-16 12:07:45 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:38:29 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -251,6 +251,14 @@ public:
// Get the Pool ID from the programmatic name
static sal_uInt16 GetPoolIdFromProgName( const String& rName, SwGetPoolIdFromName );
+ // used to convert the 4 special ExtraProg/UINames for
+ // RES_POOLCOLL_LABEL_DRAWING, RES_POOLCOLL_LABEL_ABB,
+ // RES_POOLCOLL_LABEL_TABLE, RES_POOLCOLL_LABEL_FRAME
+ // forth and back.
+ // Non-matching names remain unchanged.
+ static const String GetSpecialExtraProgName( const String& rExtraUIName );
+ static const String GetSpecialExtraUIName( const String& rExtraProgName );
+
static const SvStringsDtor& GetTextUINameArray();
static const SvStringsDtor& GetListsUINameArray();
static const SvStringsDtor& GetExtraUINameArray();
diff --git a/sw/inc/accmap.hxx b/sw/inc/accmap.hxx
index 31c031eb68ce..9d15d762b5dd 100644
--- a/sw/inc/accmap.hxx
+++ b/sw/inc/accmap.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: accmap.hxx,v $
*
- * $Revision: 1.21 $
+ * $Revision: 1.22 $
*
- * last change: $Author: fs $ $Date: 2002-09-23 09:27:14 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:38:30 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -113,6 +113,10 @@ class SwRect;
class ViewShell;
class SwFrmOrObj;
class SwAccPreviewData;
+// OD 14.01.2003 #103492#
+#ifndef _PREVWPAGE_HXX
+#include <prevwpage.hxx>
+#endif
// real states for events
#define ACC_STATE_EDITABLE 0x01
@@ -176,11 +180,14 @@ public:
::com::sun::star::uno::Reference<
::drafts::com::sun::star::accessibility::XAccessible> GetDocumentView();
+ // OD 15.01.2003 #103492# - complete re-factoring of method due to new
+ // page/print preview functionality.
::com::sun::star::uno::Reference<
::drafts::com::sun::star::accessibility::XAccessible> GetDocumentPreview(
- sal_uInt8 nRow, sal_uInt8 nColumn, sal_Int16 nStartPage,
- const Size& rPageSize, const Point& rFreePoint,
- const Fraction& rScale, sal_uInt16 nSelectedPage );
+ const std::vector<PrevwPage*>& _rPrevwPages,
+ const Fraction& _rScale,
+ const SwPageFrm* _pSelectedPageFrm,
+ const Size& _rPrevwWinSize );
::vos::ORef < SwAccessibleContext > GetContextImpl(
const SwFrm *pFrm,
@@ -202,7 +209,21 @@ public:
ViewShell *GetShell() const { return mpVSh; }
inline const SwRect& GetVisArea() const;
- inline const Size& GetPreViewPageSize() const;
+
+ /** get size of a dedicated preview page
+
+ OD 15.01.2003 #103492#
+ complete re-factoring of previous method due to new page/print preview
+ functionality.
+
+ @author OD
+
+ @param _nPrevwPageNum
+ input parameter - physical page number of page visible in the page preview
+
+ @return an object of class <Size>
+ */
+ Size GetPreViewPageSize( sal_uInt16 _nPrevwPageNum ) const;
void RemoveContext( const SwFrm *pFrm );
void RemoveContext( const SdrObject *pObj );
@@ -229,10 +250,13 @@ public:
void InvalidateRelationSet( const SwFrm* pMaster, const SwFrm* pFollow );
// update preview data (and fire events if necessary)
- void UpdatePreview( sal_uInt8 nRow, sal_uInt8 nColumn,
- sal_Int16 nStartPage,
- const Size& rPageSize, const Point& rFreePoint,
- const Fraction& rScale, sal_uInt16 nSelectedPage );
+ // OD 15.01.2003 #103492# - complete re-factoring of method due to new
+ // page/print preview functionality.
+ void UpdatePreview( const std::vector<PrevwPage*>& _rPrevwPages,
+ const Fraction& _rScale,
+ const SwPageFrm* _pSelectedPageFrm,
+ const Size& _rPrevwWinSize );
+
void InvalidatePreViewSelection( sal_uInt16 nSelPage );
sal_Bool IsPageSelected( const SwPageFrm *pPageFrm ) const;
@@ -258,13 +282,33 @@ public:
// additional Core/Pixel conversions for internal use; also works
// for preview
- Point CoreToPixel (const Point& rPoint) const;
Point PixelToCore (const Point& rPoint) const;
Rectangle CoreToPixel (const Rectangle& rRect) const;
Rectangle PixelToCore (const Rectangle& rRect) const;
private:
- inline void PreviewAdjust(const Point& rPoint, sal_Bool bFromPreview) const;
+ /** get mapping mode for LogicToPixel and PixelToLogic conversions
+
+ OD 15.01.2003 #103492#
+ Replacement method <PreviewAdjust(..)> by new method <GetMapMode>.
+ Method returns mapping mode of current output device and adjusts it,
+ if the shell is in page/print preview.
+ Necessary, because <PreviewAdjust(..)> changes mapping mode at current
+ output device for mapping logic document positions to page preview window
+ positions and vice versa and doesn't take care to recover its changes.
+
+ @author OD
+
+ @param _rPoint
+ input parameter - constant reference to point to determine the mapping
+ mode adjustments for page/print preview.
+
+ @param _orMapMode
+ output parameter - reference to the mapping mode, which is determined
+ by the method
+ */
+ void GetMapMode( const Point& _rPoint,
+ MapMode& _orMapMode ) const;
};
@@ -278,30 +322,47 @@ class SwAccPreviewData
SwRect maVisArea;
Fraction maScale;
- Size maPageSize;
- const SwPageFrm *mpStartPage;
const SwPageFrm *mpSelPage;
- sal_uInt16 mnStartPage;
+ /** adjust logic page retangle to its visible part
+
+ OD 17.01.2003 #103492#
+
+ @author OD
+
+ @param _iorLogicPgSwRect
+ input/output parameter - reference to the logic page rectangle, which
+ has to be adjusted.
+
+ @param _rPrevwPgSwRect
+ input parameter - constant reference to the corresponding preview page
+ rectangle; needed to determine the visible part of the logic page rectangle.
+
+ @param _rPrevwWinSize
+ input paramter - constant reference to the preview window size in TWIP;
+ needed to determine the visible part of the logic page rectangle
+ */
+ void AdjustLogicPgRectToVisibleArea( SwRect& _iorLogicPgSwRect,
+ const SwRect& _rPrevwPgSwRect,
+ const Size& _rPrevwWinSize );
public:
SwAccPreviewData();
~SwAccPreviewData();
- void Update( sal_uInt8 nRow, // # rows in preview
- sal_uInt8 nCol, // # columns in preview
- sal_uInt16 nStartPage, // start page (0 is before first page)
- const Size& rPageSize, // size of an empty page
- const Point& rFreePoint, // free space between pages (x,y)
- const Fraction& rScale,// scale factor for preview
- ViewShell* pShell,
- sal_uInt16 nSelPage );
- void InvalidateSelection( sal_uInt16 nSelPage );
+ // OD 14.01.2003 #103492# - complete re-factoring of method due to new
+ // page/print preview functionality.
+ void Update( const std::vector<PrevwPage*>& _rPrevwPages,
+ const Fraction& _rScale,
+ const SwPageFrm* _pSelectedPageFrm,
+ const Size& _rPrevwWinSize );
+
+ // OD 14.01.2003 #103492# - complete re-factoring of method due to new
+ // page/print preview functionality.
+ void InvalidateSelection( const SwPageFrm* _pSelectedPageFrm );
const SwRect& GetVisArea() const;
- Point PreviewToLogic(const Point& rPoint) const;
- Point LogicToPreview(const Point& rPoint) const;
MapMode GetMapModeForPreview( ) const;
@@ -309,15 +370,13 @@ public:
* proper position. rPoint identifies the page for which the
* MapMode should be adjusted. If bFromPreview is true, rPoint is
* a preview coordinate; else it's a document coordinate. */
+ // OD 17.01.2003 #103492# - delete unused 3rd parameter.
void AdjustMapMode( MapMode& rMapMode,
- const Point& rPoint,
- sal_Bool bFromPreview ) const;
+ const Point& rPoint ) const;
- void AdjustMapMode( MapMode& rMapMode ) const;
+ inline const SwPageFrm *GetSelPage() const { return mpSelPage; }
- const SwPageFrm *GetSelPage() const { return mpSelPage; }
void DisposePage(const SwPageFrm *pPageFrm );
- const Size& GetPageSize() const { return maPageSize; }
};
@@ -328,12 +387,4 @@ inline const SwRect& SwAccessibleMap::GetVisArea() const
"preview without preview data?" );
return mpVSh->IsPreView() ? mpPreview->GetVisArea() : mpVSh->VisArea();
}
-
-inline const Size& SwAccessibleMap::GetPreViewPageSize() const
-{
- DBG_ASSERT( mpPreview != NULL,
- "preview without preview data?" );
- return mpPreview->GetPageSize();
-}
-
#endif
diff --git a/sw/inc/calc.hxx b/sw/inc/calc.hxx
index f6834e79b5b7..5191b3b4ff3f 100644
--- a/sw/inc/calc.hxx
+++ b/sw/inc/calc.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: calc.hxx,v $
*
- * $Revision: 1.4 $
+ * $Revision: 1.5 $
*
- * last change: $Author: jp $ $Date: 2001-02-13 20:31:57 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:38:30 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -159,9 +159,10 @@ public:
SwSbxValue( const SwSbxValue& rVal ) : SbxValue( rVal ) {}
virtual ~SwSbxValue();
+
// Strings sonderbehandeln
BOOL GetBool() const;
- // Strings sonderbehandeln
+ // Strings sonderbehandeln BOOLs sonderbehandeln
double GetDouble() const;
SwSbxValue& MakeDouble();
};
diff --git a/sw/inc/cmdid.h b/sw/inc/cmdid.h
index 5c1038762718..7eebb32d30fd 100644
--- a/sw/inc/cmdid.h
+++ b/sw/inc/cmdid.h
@@ -2,9 +2,9 @@
*
* $RCSfile: cmdid.h,v $
*
- * $Revision: 1.43 $
+ * $Revision: 1.44 $
*
- * last change: $Author: os $ $Date: 2002-12-06 13:57:25 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:38:31 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -378,7 +378,7 @@ Achtung: Ab sofort sind in diesem File keine C++-Kommentare (//) mehr
#define FN_INSERT_INDEX (FN_INSERT + 16) /* Stichworteintrag */
#define FN_INSERT_INDEX_DLG (FN_INSERT + 17) /* Stichworteintrag */
#define FN_INSERT_LINEBREAK (FN_INSERT + 18) /* Zeilenumbruch */
-
+#define FN_INSERT_FIELD_DATA_ONLY (FN_INSERT + 19) /* field dialog for mail merge*/
#define FN_INSERT_OBJECT (FN_INSERT + 21) /* Object */
#define FN_INSERT_OBJECT_DLG (FN_INSERT + 22) /* Object */
#define FN_INSERT_PAGEBREAK (FN_INSERT + 23) /* Seitenumbruch */
@@ -886,6 +886,7 @@ Achtung: Ab sofort sind in diesem File keine C++-Kommentare (//) mehr
#define FN_UNO_HEADER_EAT_SPACING (FN_EXTRA2 + 92)
#define FN_UNO_FOOTER_EAT_SPACING (FN_EXTRA2 + 93)
+#define FN_UNO_CHARFMT_SEQUENCE (FN_EXTRA2 + 94)
/*--------------------------------------------------------------------
Bereich: Hilfe
diff --git a/sw/inc/crsrsh.hxx b/sw/inc/crsrsh.hxx
index 4f072622a5a1..dfb84e9022d5 100644
--- a/sw/inc/crsrsh.hxx
+++ b/sw/inc/crsrsh.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: crsrsh.hxx,v $
*
- * $Revision: 1.14 $
+ * $Revision: 1.15 $
*
- * last change: $Author: hbrinkm $ $Date: 2002-12-03 14:17:21 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:38:31 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -292,6 +292,8 @@ private:
BOOL bBasicHideCrsr : 1; // TRUE -> HideCrsr vom Basic
BOOL bSetCrsrInReadOnly : 1;// TRUE -> Cursor darf in ReadOnly-Bereiche
BOOL bOverwriteCrsr : 1; // TRUE -> show Overwrite Crsr
+ // OD 11.02.2003 #100556# - flag to allow/avoid execution of marcos (default: true)
+ bool mbMacroExecAllowed : 1;
void UpdateCrsr( USHORT eFlags
=SwCrsrShell::SCROLLWIN|SwCrsrShell::CHKRANGE,
@@ -835,6 +837,16 @@ public:
// remove all invalid cursors
void ClearUpCrsrs();
+
+ // OD 11.02.2003 #100556# - set/get flag to allow/avoid execution of macros
+ inline void SetMacroExecAllowed( const bool _bMacroExecAllowed )
+ {
+ mbMacroExecAllowed = _bMacroExecAllowed;
+ }
+ inline bool IsMacroExecAllowed()
+ {
+ return mbMacroExecAllowed;
+ }
};
diff --git a/sw/inc/crstate.hxx b/sw/inc/crstate.hxx
index bda9db05192c..d821ecd5c083 100644
--- a/sw/inc/crstate.hxx
+++ b/sw/inc/crstate.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: crstate.hxx,v $
*
- * $Revision: 1.9 $
+ * $Revision: 1.10 $
*
- * last change: $Author: fme $ $Date: 2002-12-02 10:20:05 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:38:32 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -107,6 +107,7 @@ struct Sw2LinesPos
{
SwRect aLine; // Position and size of the line
SwRect aPortion; // Position and size of the multi portion
+ SwRect aPortion2; // needed for nested multi portions
BYTE nMultiType; // Multiportion type
};
diff --git a/sw/inc/dbmgr.hxx b/sw/inc/dbmgr.hxx
index 162bccc7ebe2..4e7feceb0d35 100644
--- a/sw/inc/dbmgr.hxx
+++ b/sw/inc/dbmgr.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: dbmgr.hxx,v $
*
- * $Revision: 1.17 $
+ * $Revision: 1.18 $
*
- * last change: $Author: os $ $Date: 2002-12-09 13:58:20 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:38:32 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -129,6 +129,7 @@ class Button;
class SvNumberFormatter;
class SwMailMergeDlg;
class SwDbtoolsClient;
+class SwXMailMerge;
// -----------------------------------------------------------------------
@@ -207,8 +208,10 @@ friend class SwConnectionDisposedListener_Impl;
BOOL bCancel : 1; // Serienbrief-Save abgebrochen
BOOL bInMerge : 1; //merge process active
+ BOOL bMergeSilent : 1; // suppress display of dialogs/boxes (used when called over API)
SwDSParamArr aDataSourceParams;
SwNewDBMgr_Impl* pImpl;
+ const SwXMailMerge* pMergeEvtSrc; // != 0 if mail merge events are to be send
SwDSParam* pMergeData;
SwMailMergeDlg* pMergeDialog;
@@ -239,6 +242,13 @@ public:
inline USHORT GetMergeType() const { return nMergeType; }
inline void SetMergeType( USHORT nTyp ) { nMergeType = nTyp; }
+ // MailMergeEvent source
+ const SwXMailMerge * GetMailMergeEvtSrc() const { return pMergeEvtSrc; }
+ void SetMailMergeEvtSrc( const SwXMailMerge *pSrc ) { pMergeEvtSrc = pSrc; }
+
+ inline BOOL IsMergeSilent() const { return bMergeSilent != 0; }
+ inline void SetMergeSilent( BOOL bVal ) { bMergeSilent = bVal; }
+
// Mischen von Datensaetzen in Felder
BOOL MergeNew(USHORT nOpt, SwWrtShell& rSh,
const ::svx::ODataAccessDescriptor& _rDescriptor);
diff --git a/sw/inc/docsh.hxx b/sw/inc/docsh.hxx
index 40cbbdeeb0ae..43c7063fb063 100644
--- a/sw/inc/docsh.hxx
+++ b/sw/inc/docsh.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: docsh.hxx,v $
*
- * $Revision: 1.18 $
+ * $Revision: 1.19 $
*
- * last change: $Author: tl $ $Date: 2002-11-11 13:43:04 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:38:34 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -81,6 +81,7 @@
#endif
class SwDoc;
+class Sw3Io;
class SfxDocumentInfoDialog;
class SfxStyleSheetBasePool;
class FontList;
@@ -100,6 +101,7 @@ class SwDocShell: public SfxObjectShell, public SfxInPlaceObject,
public SfxListener
{
SwDoc* pDoc; // Document
+ Sw3Io* pIo; // Reader / Writer
SfxStyleSheetBasePool* pBasePool; // Durchreiche fuer Formate
FontList* pFontList; // aktuelle FontListe
@@ -130,6 +132,7 @@ class SwDocShell: public SfxObjectShell, public SfxInPlaceObject,
virtual BOOL Load(SvStorage* pStor);
virtual BOOL LoadFrom(SvStorage* pStor);
virtual BOOL ConvertFrom( SfxMedium &rMedium );
+ virtual void HandsOff();
virtual BOOL SaveAs(SvStorage * pNewStor );
virtual BOOL ConvertTo(SfxMedium &rMedium );
virtual BOOL SaveCompleted(SvStorage * pNewStor );
@@ -253,6 +256,10 @@ public:
Reader* StartConvertFrom(SfxMedium& rMedium, SwReader** ppRdr,
SwCrsrShell* pCrsrSh = 0, SwPaM* pPaM = 0);
+ // Anforderung der pIo-Struktur fuer den Zugriff auf Substorages
+ // und Streams
+ Sw3Io* GetIoSystem() { return pIo; }
+
virtual long DdeGetData( const String& rItem, const String& rMimeType,
::com::sun::star::uno::Any & rValue );
virtual long DdeSetData( const String& rItem, const String& rMimeType,
diff --git a/sw/inc/dpage.hxx b/sw/inc/dpage.hxx
index c5bea91f1b2e..250b61e2e863 100644
--- a/sw/inc/dpage.hxx
+++ b/sw/inc/dpage.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: dpage.hxx,v $
*
- * $Revision: 1.2 $
+ * $Revision: 1.3 $
*
- * last change: $Author: os $ $Date: 2000-11-27 07:48:38 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:38:34 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -82,7 +82,9 @@ public:
SwDPage(SwDrawDocument& rNewModel, BOOL bMasterPage=FALSE);
~SwDPage();
- virtual Point GetOffset() const;
+ // #i3694#
+ // This GetOffset() method is not needed anymore, it even leads to errors.
+ // virtual Point GetOffset() const;
virtual SdrObject* ReplaceObject( SdrObject* pNewObj, ULONG nObjNum );
virtual void RequestBasic();
diff --git a/sw/inc/editsh.hxx b/sw/inc/editsh.hxx
index 358998cde73f..f30567709d1b 100644
--- a/sw/inc/editsh.hxx
+++ b/sw/inc/editsh.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: editsh.hxx,v $
*
- * $Revision: 1.26 $
+ * $Revision: 1.27 $
*
- * last change: $Author: os $ $Date: 2002-11-29 12:00:22 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:38:35 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -844,8 +844,13 @@ public:
// if more than one in the selection return the count
USHORT GetFullSelectedSectionCount() const;
- BOOL AppendNodeInSection();
- int CanInsertNodeAtEndOfSection() const;
+ // special insert: Insert a new text node just before or after a section or
+ // table, if the cursor is positioned at the start/end of said
+ // section/table. The purpose of the method is to allow users to inert text
+ // at certain 'impossible' position, e.g. before a table at the document
+ // start or between to sections.
+ bool DoSpecialInsert();
+ bool CanSpecialInsert() const;
// Optimierung UI
void SetNewDoc(BOOL bNew = TRUE);
diff --git a/sw/inc/fesh.hxx b/sw/inc/fesh.hxx
index 33e40b15e6a3..bc586edfae82 100644
--- a/sw/inc/fesh.hxx
+++ b/sw/inc/fesh.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: fesh.hxx,v $
*
- * $Revision: 1.26 $
+ * $Revision: 1.27 $
*
- * last change: $Author: od $ $Date: 2002-12-10 14:07:37 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:38:36 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -275,6 +275,12 @@ public:
int IsObjSelectable( const Point& rPt );
int IsInsideSelectedObj( const Point& rPt );
+ // #107513#
+ // Test if there is a draw object at that position and if it should be selected.
+ // The 'should' is aimed at Writer text fly frames which may be in front of
+ // the draw object.
+ sal_Bool ShouldObjectBeSelected(const Point& rPt);
+
sal_Bool MoveAnchor( USHORT nDir );
//Returnwerte siehe oben FrmType.
@@ -672,6 +678,7 @@ public:
USHORT GetCurMouseTabColNum( const Point &rPt ) const;
USHORT GetCurOutColNum( SwGetCurColNumPara* pPara = 0 ) const; // aktuelle aeussere Spalte
BOOL IsTableRightToLeft()const;
+ BOOL IsLastCellInRow() const;
BOOL IsMouseTableRightToLeft(const Point &rPt) const;
// Die Breite des aktuellen Bereichs fuer Spaltendialog
long GetSectionWidth( SwFmt& rFmt ) const;
@@ -711,6 +718,8 @@ public:
page, the selected drawing object is on, is right-to-left.
*/
const bool IsShapeDefaultHoriTextDirR2L() const;
+
+ void ParkCursorInTab();
};
#endif
diff --git a/sw/inc/helpid.h b/sw/inc/helpid.h
index aeac03c46f10..d70237f9fb3d 100644
--- a/sw/inc/helpid.h
+++ b/sw/inc/helpid.h
@@ -2,9 +2,9 @@
*
* $RCSfile: helpid.h,v $
*
- * $Revision: 1.17 $
+ * $Revision: 1.18 $
*
- * last change: $Author: os $ $Date: 2002-11-29 12:00:22 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:38:37 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -910,6 +910,7 @@
#define HID_PRINT_AS_MERGE (HID_BASE + 2181 )
#define HID_MERGE_SOURCE_UNAVAILABLE (HID_BASE + 2182 )
#define HID_DATA_SOURCES_UNAVAILABLE (HID_BASE + 2183 )
+#define HID_MODULE_TOOLBOX (HID_BASE + 2184 )
diff --git a/sw/inc/ndgrf.hxx b/sw/inc/ndgrf.hxx
index 291c7e74495f..3f6f46b7cdd0 100644
--- a/sw/inc/ndgrf.hxx
+++ b/sw/inc/ndgrf.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: ndgrf.hxx,v $
*
- * $Revision: 1.9 $
+ * $Revision: 1.10 $
*
- * last change: $Author: hr $ $Date: 2002-08-23 14:04:27 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:38:38 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -98,6 +98,7 @@ class SwGrfNode: public SwNoTxtNode
BOOL bInSwapIn :1;
BOOL bGrafikArrived :1;
BOOL bChgTwipSize :1;
+ BOOL bChgTwipSizeFromPixel :1;
BOOL bLoadLowResGrf :1;
BOOL bFrameInPaint :1; //Um Start-/EndActions im Paint (ueber
//SwapIn zu verhindern.
@@ -144,7 +145,8 @@ public:
inline BOOL IsAnimated() const { return aGrfObj.IsAnimated(); }
inline BOOL IsChgTwipSize() const { return bChgTwipSize; }
- inline void SetChgTwipSize( BOOL b ) { bChgTwipSize = b; }
+ inline BOOL IsChgTwipSizeFromPixel() const { return bChgTwipSizeFromPixel; }
+ inline void SetChgTwipSize( BOOL b, BOOL bFromPx=FALSE ) { bChgTwipSize = b; bChgTwipSizeFromPixel = bFromPx; }
inline BOOL IsGrafikArrived() const { return bGrafikArrived; }
inline void SetGrafikArrived( BOOL b ) { bGrafikArrived = b; }
diff --git a/sw/inc/ndtxt.hxx b/sw/inc/ndtxt.hxx
index a77dbd5c8ec8..0475d0d864e4 100644
--- a/sw/inc/ndtxt.hxx
+++ b/sw/inc/ndtxt.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: ndtxt.hxx,v $
*
- * $Revision: 1.7 $
+ * $Revision: 1.8 $
*
- * last change: $Author: hr $ $Date: 2002-08-23 14:20:57 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:38:39 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -305,7 +305,7 @@ public:
const BOOL bWithNum = FALSE ) const;
BOOL GetExpandTxt( SwTxtNode& rDestNd, const SwIndex* pDestIdx = 0,
xub_StrLen nIdx = 0, xub_StrLen nLen = STRING_LEN,
- BOOL bWithNum = FALSE ) const;
+ BOOL bWithNum = FALSE, BOOL bWithFtn = TRUE ) const;
XubString GetRedlineTxt( xub_StrLen nIdx = 0,
xub_StrLen nLen = STRING_LEN,
BOOL bExpandFlds = FALSE,
diff --git a/sw/inc/pagepreviewlayout.hxx b/sw/inc/pagepreviewlayout.hxx
new file mode 100644
index 000000000000..eedd3b06e4d8
--- /dev/null
+++ b/sw/inc/pagepreviewlayout.hxx
@@ -0,0 +1,594 @@
+#ifndef _PAGEPREVIEWLAYOUT_HXX
+#define _PAGEPREVIEWLAYOUT_HXX
+
+// template class <std::vector>
+#include <vector>
+// datatypes sal_xyz
+#ifndef _SAL_TYPES_H_
+#include <sal/types.h>
+#endif
+// classes <Point>, <Size> and <Rectangle>
+#ifndef _GEN_HXX
+#include <tools/gen.hxx>
+#endif
+// datatype <SwTwips>
+#ifndef _SWTYPES_HXX
+#include <swtypes.hxx>
+#endif
+
+class ViewShell;
+class OutputDevice;
+class SwRootFrm;
+class SwPageFrm;
+class Fraction;
+struct PrevwPage;
+
+// =============================================================================
+/** page preview functionality in the writer
+
+ OD 11.12.2002 #103492# - class <SwPagePreviewLayout>
+
+ @author OD
+*/
+class SwPagePreviewLayout
+{
+private:
+ friend class ViewShell;
+
+ const SwTwips mnXFree;
+ const SwTwips mnYFree;
+
+ ViewShell& mrParentViewShell;
+ const SwRootFrm& mrLayoutRootFrm;
+
+ bool mbLayoutInfoValid;
+ bool mbLayoutSizesValid;
+ bool mbPaintInfoValid;
+
+ Size maWinSize;
+ sal_uInt16 mnCols;
+ sal_uInt16 mnRows;
+ sal_uInt16 mnPages;
+ // OD 19.02.2003 #107369# - new flag for leaving blank left-top-corner
+ bool mbLeaveLeftTopBlank;
+
+ Size maMaxPageSize;
+ Rectangle maPreviewDocRect;
+ SwTwips mnColWidth;
+ SwTwips mnRowHeight;
+ SwTwips mnPrevwLayoutWidth;
+ SwTwips mnPrevwLayoutHeight;
+ bool mbDoesLayoutColsFitIntoWindow;
+ bool mbDoesLayoutRowsFitIntoWindow;
+
+ sal_uInt16 mnPaintPhyStartPageNum;
+ sal_uInt16 mnPaintStartCol;
+ sal_uInt16 mnPaintStartRow;
+ bool mbNoPageVisible;
+ Point maPaintStartPageOffset;
+ Point maPaintPreviewDocOffset;
+ Point maAdditionalPaintOffset;
+ Rectangle maPaintedPrevwDocRect;
+ sal_uInt16 mnSelectedPageNum;
+ const SwPageFrm* mpSelectedPageFrm;
+
+ std::vector<PrevwPage*> maPrevwPages;
+
+ /** clear internal data about current page preview
+
+ OD 11.12.2002 #103492#
+
+ @author OD
+ */
+ void _Clear();
+
+ /** helper method to clear preview page layout sizes
+
+ OD 18.12.2002 #103492#
+
+ @author OD
+ */
+ void _ClearPrevwLayoutSizes();
+
+ /** helper method to clear data in preview page vectors
+
+ OD 13.12.2002 #103492#
+
+ @author OD
+ */
+ void _ClearPrevwPageData();
+
+ /** calculate page preview layout sizes
+
+ OD 18.12.2002 #103492#
+
+ @author OD
+ */
+ void _CalcPrevwLayoutSizes();
+
+ /** apply new zoom at given view shell
+
+ OD 11.12.2002 #103492#
+
+ @author OD
+
+ @param _aNewZoom
+ input parameter - new zoom percentage
+ */
+ void _ApplyNewZoomAtViewShell( sal_uInt8 _aNewZoom );
+
+ /** calculate additional paint offset
+
+ OD 12.12.2002 #103492#
+ helper method called by <Prepare> in order to calculate an additional
+ paint offset to center output in given window size.
+ The booleans <mbDoesLayoutRowsFitIntoWindow> and <mbDoesLayoutColsFitIntoWindow>
+ are also determined.
+ preconditions:
+ (1) preview layout is given (number of rows and columns).
+ (2) window size is given.
+ (3) height of row and width of column are calculated.
+ (4) paint offset of start page is calculated.
+
+ @author OD
+ */
+ void _CalcAdditionalPaintOffset();
+
+ /** calculate painted preview document rectangle
+
+ OD 12.12.2002 #103492#
+ helper method called by <Prepare> in order to calculate the rectangle,
+ which will be painted for the document arranged by the given preview
+ layout.
+ preconditions:
+ (1) paint offset of document preview is calculated.
+ (2) size of document preview is calculated.
+ (3) additional paint offset is calculated - see <_CalcAdditionalPaintOffset>.
+
+ @author OD
+ */
+ void _CalcDocPrevwPaintRect();
+
+ /** determines preview data for a given page and a given preview offset
+
+ OD 13.12.2002 #103492#
+
+ @author OD
+
+ @param _rPage
+ input parameter - constant reference to page frame, for which the
+ preview data will be calculated.
+
+ @param _rPrevwOffset
+ input parameter - constant reference to the offset the given page has
+ in the current preview window.
+ Note: Offset can be negative.
+
+ @param _opPrevwPage
+ output parameter - calculated preview data.
+
+ @return boolean, indicating, if calculation was successful.
+ */
+ bool _CalcPreviewDataForPage( const SwPageFrm& _rPage,
+ const Point& _rPrevwOffset,
+ PrevwPage* _opPrevwPage );
+
+ /** calculate preview pages
+
+ OD 12.12.2002 #103492#
+ helper method called by <Prepare> in order to determine which pages
+ will be visible in the current preview and calculate the data needed
+ to paint these pages. Also the accessible pages with its needed data
+ are determined.
+
+ @author OD
+ */
+ void _CalcPreviewPages();
+
+ /** get preview page by physical page number
+
+ OD 17.12.2002 #103492#
+
+ @author OD
+
+ @param _nPageNum
+ input parameter - physical page number of page, for which the preview
+ page will be returned.
+
+ @return pointer to preview page of current preview pages. If page doesn't
+ belongs to current preview pages, <0> is returned.
+ */
+ const PrevwPage* _GetPrevwPageByPageNum( const sal_uInt16 _nPageNum ) const;
+
+ /** paint selection mark at page
+
+ OD 17.12.2002 #103492#
+
+ @author OD
+ */
+ const void _PaintSelectMarkAtPage( const PrevwPage* _aSelectedPrevwPage ) const;
+
+public:
+ /** constructor of <SwPagePreviewLayout>
+
+ OD 11.12.2002 #103492#
+
+ @author OD
+
+ @param _rParentViewShell
+ input parameter - reference to the view shell the page preview
+ layout belongs to. Reference will be hold as member <mrParentViewShell>.
+ Adjustments/Changes at this view shell:
+ (1) Adjustment of the mapping mode at the output device.
+ (2) Change of the zoom at the view options.
+ (3) Preparations for paint of the page preview.
+
+ @param _rLayoutRootFrm
+ input parameter - constant reference to the root frame of the layout.
+ Reference will be hold as member <mrLayoutRootFrm> in order to get
+ access to the page frames.
+ */
+ SwPagePreviewLayout( ViewShell& _rParentViewShell,
+ const SwRootFrm& _rLayoutRootFrm );
+
+ /** destructor of <SwPagePreviewLayout>
+
+ OD 17.12.2002 #103492#
+
+ @author
+ */
+ inline ~SwPagePreviewLayout()
+ {
+ _ClearPrevwPageData();
+ }
+
+ /** init page preview layout
+
+ OD 11.12.2002 #103492#
+ initialize the page preview settings for a given layout.
+ side effects:
+ (1) If parameter <_bCalcScale> is true, mapping mode with calculated
+ scaling is set at the output device and the zoom at the view options of
+ the given view shell is set with the calculated scaling.
+
+ @author OD
+
+ @param _nCols
+ input parameter - initial number of page columns in the preview.
+
+ @param _nRows
+ input parameter - initial number of page rows in the preview.
+
+ @param _rPxWinSize
+ input parameter - window size in which the preview will be displayed and
+ for which the scaling will be calculated.
+
+ @param _orMaxPageSize
+ output parameter - maximal size in width and height of all pages
+
+ @param _orPreviewDocSize
+ output parameter - size of the document in the proposed preview layout
+ included the spacing between the pages.
+
+ @param _bCalcScale
+ input parameter - control, if method should calculate the needed
+ scaling for the proposed preview layout for the given window size
+ and sets the scaling at the output device and the view options.
+
+ @return boolean, indicating, if preview layout is successful initialized.
+ */
+ bool Init( const sal_uInt16 _nCols,
+ const sal_uInt16 _nRows,
+ const Size& _rPxWinSize,
+ const bool _bCalcScale
+ );
+
+ /** method to adjust page preview layout to document changes
+
+ OD 18.12.2002 #103492#
+
+ @author OD
+
+ @return boolean, indicating, if preview layout is successful initialized.
+ */
+ bool ReInit();
+
+ /** prepare paint of page preview
+
+ OD 12.12.2002 #103492#
+ With the valid preview layout settings - calculated and set by method
+ <Init(..)> - the paint of a specific part of the virtual preview
+ document is prepared. The corresponding part is given by either
+ a start page (parameter <_nProposedStartPageNum>) or a absolute position
+ (parameter <_aProposedStartPoint>).
+ The accessibility preview will also be updated via a corresponding
+ method call.
+
+ @author OD
+
+ @param _nProposedStartPageNum [0..<number of document pages>]
+ input parameter - proposed number of page, which should be painted in
+ the left-top-corner in the current output device. input parameter
+ <_bStartWithPageAtFirstCol> influences, if proposed page is actual
+ painted in the left-top-corner.
+
+ @param _nProposedStartPos [(0,0)..<PreviewDocumentSize>]
+ input parameter - proposed absolute position in the virtual preview
+ document, which should be painted in the left-top-corner in the current
+ output device.
+
+ @param _rPxWinSize
+ input parameter - pixel size of window the preview will be painted in.
+
+ @param _onStartPageNum
+ output parameter - physical number of page, which will be painted in the
+ left-top-corner in the current output device.
+
+ @param _onStartPageVirtNum
+ output parameter - virtual number of page, which will be painted in the
+ left-top-corner in the current output device.
+
+ @param _orDocPreviewPaintRect
+ output parameter - rectangle of preview document, which will be painted.
+
+ @param _bStartWithPageAtFirstCol
+ input parameter with default value "true" - controls, if start page
+ is set to page in first column the proposed start page is located.
+
+ @return boolean, indicating, if prepare of preview paint was successful.
+ */
+ bool Prepare( const sal_uInt16 _nProposedStartPageNum,
+ const Point _aProposedStartPos,
+ const Size& _rPxWinSize,
+ sal_uInt16& _onStartPageNum,
+ sal_uInt16& _onStartPageVirtNum,
+ Rectangle& _orDocPreviewPaintRect,
+ const bool _bStartWithPageAtFirstCol = true
+ );
+
+ /** get selected page number
+
+ OD 13.12.2002 #103492#
+
+ @author OD
+ */
+ inline sal_uInt16 SelectedPage()
+ {
+ return mnSelectedPageNum;
+ }
+
+ /** set selected page number
+
+ OD 14.01.2003 #103492#
+
+ @author OD
+ */
+ inline void SetSelectedPage( sal_uInt16 _nSelectedPageNum )
+ {
+ mnSelectedPageNum = _nSelectedPageNum;
+ }
+
+ /** paint prepared preview
+
+ OD 12.12.2002 #103492#
+
+ @author OD
+
+ @param _aOutRect
+ input parameter - Twip rectangle of window, which should be painted.
+
+ @return boolean, indicating, if paint of preview was performed
+ */
+ bool Paint( const Rectangle _aOutRect ) const;
+
+ /** repaint pages on page preview
+
+ OD 18.12.2002 #103492#
+ method to invalidate visible pages due to changes in a different
+ view shell.
+
+ @author OD
+ */
+ void Repaint( const Rectangle _aInvalidCoreRect ) const;
+
+ /** paint to mark new selected page
+
+ OD 17.12.2002 #103492#
+ Perform paint for current selected page in order to unmark it.
+ Set new selected page and perform paint to mark this page.
+
+ @author OD
+
+ @param _nNewSelectedPage
+ input parameter - physical number of page, which will be marked as selected.
+ */
+ void MarkNewSelectedPage( const sal_uInt16 _nSelectedPage );
+
+ /** calculate start position for new scale
+
+ OD 12.12.2002 #103492#
+ calculate new start position for a new scale. Calculation bases on the
+ current visible part of the document arranged in the given preview layout.
+ preconditions:
+ (1) new scaling is already set at the given output device.
+
+ @author OD
+
+ @return Point, start position for new scale
+ */
+ Point GetPreviewStartPosForNewScale( const Fraction& _aNewScale,
+ const Fraction& _aOldScale,
+ const Size& _aNewWinSize ) const;
+
+ /** determines, if page with given page number is visible in preview
+
+ OD 12.12.2002 #103492#
+
+ @author OD
+
+ @param _nPageNum
+ input parameter - physical number of page, for which it will be
+ determined, if it is visible.
+
+ @return boolean, indicating, if page with given page number is visible
+ in preview.
+ */
+ bool IsPageVisible( const sal_uInt16 _nPageNum ) const;
+
+ /** calculate data to bring new selected page into view.
+
+ OD 12.12.2002 #103492#
+
+ @author OD
+
+ @param _nHoriMove
+ input parameter - positive/negative number of columns the current
+ selected page have to be moved.
+
+ @param _nVertMove
+ input parameter - positive/negative number of rows the current
+ selected page have to be moved.
+
+ @param _orNewSelectedPage
+ output parameter - number of new selected page
+
+ @param _orNewStartPage
+ output parameter - number of new start page
+
+ @param _orNewStartPos
+ output parameter - new start position in document preview
+
+ @return boolean - indicating, that move was sucessful.
+ */
+ bool CalcStartValuesForSelectedPageMove( const sal_Int16 _nHoriMove,
+ const sal_Int16 _nVertMove,
+ sal_uInt16& _orNewSelectedPage,
+ sal_uInt16& _orNewStartPage,
+ Point& _orNewStartPos ) const;
+
+ /** checks, if given position is inside a shown document page
+
+ OD 17.12.2002 #103492#
+
+ @author OD
+
+ @param _aPrevwPos
+ input parameter - position inside the visible preview window.
+
+ @param _orDocPos
+ output parameter - corresponding position in the document, if given
+ preview position is inside a shown document page, not an empty page.
+ If not, it's value is <Point( 0, 0 )>.
+
+ @param _obPosInEmptyPage
+ output parameter - indicates, that given preview position lays inside
+ an shown empty page.
+
+ @param _onPageNum
+ output parameter - corresponding physical number of page, if given
+ preview position is inside a shown document page, considers also empty
+ pages. If not, it's value is <0>.
+
+ @return boolean - indicating, that given preview position lays inside
+ a shown document preview page, not an empty page.
+ */
+ bool IsPrevwPosInDocPrevwPage( const Point _aPrevwPos,
+ Point& _orDocPos,
+ bool& _obPosInEmptyPage,
+ sal_uInt16& _onPageNum ) const;
+
+ inline bool DoesPreviewLayoutRowsFitIntoWindow() const
+ {
+ return mbDoesLayoutRowsFitIntoWindow;
+ }
+
+ inline bool DoesPreviewLayoutColsFitIntoWindow() const
+ {
+ return mbDoesLayoutColsFitIntoWindow;
+ }
+
+ inline bool PreviewLayoutValid() const
+ {
+ return mbLayoutInfoValid && mbLayoutSizesValid && mbPaintInfoValid;
+ }
+
+ /** determine preview window page scroll amount
+
+ OD 17.12.2002 #103492#
+
+ @author OD
+
+ @param _nWinPagesToScroll
+ input parameter - number of preview window pages the scroll amount has
+ to be calculated for. Negative values for preview window page up
+ scrolling, positive values for preview window page down scrolling.
+
+ @return scroll amount in SwTwips
+ */
+ SwTwips GetWinPagesScrollAmount( const sal_Int16 _nWinPagesToScroll ) const;
+
+ /** determine window preview page the page with the given number is on.
+
+ OD 17.01.2003 #103492#
+
+ @author OD
+
+ @param _nPageNum
+ input parameter - physical page number of page, for which the preview
+ window page number has to be calculated.
+
+ @return number of preview window page the page with the given physical
+ page number is on
+ */
+ sal_uInt16 GetWinPageNumOfPage( sal_uInt16 _nPageNum ) const;
+
+ /** determine row the page with the given number is in
+
+ OD 17.01.2003 #103492#
+
+ @author OD
+
+ @param _nPageNum
+ input parameter - physical page number of page, for which the row in
+ preview layout has to be calculated.
+
+ @return number of row the page with the given physical page number is in
+ */
+ sal_uInt16 GetRowOfPage( sal_uInt16 _nPageNum ) const;
+
+ /** determine column the page with the given number is in
+
+ OD 17.01.2003 #103492#
+
+ @author OD
+
+ @param _nPageNum
+ input parameter - physical page number of page, for which the column in
+ preview layout has to be calculated.
+
+ @return number of column the page with the given physical page number is in
+ */
+ sal_uInt16 GetColOfPage( sal_uInt16 _nPageNum ) const;
+
+ // OD 18.12.2002 #103492#
+ Size GetMaxPageSize() const;
+
+ // OD 18.12.2002 #103492#
+ Size GetPrevwDocSize() const;
+
+ /** get size of a preview page by its physical page number
+
+ OD 15.01.2003 #103492#
+
+ @author OD
+
+ @param _nPageNum
+ input parameter - pysical page number of preview page, for which the
+ page size has to be returned.
+
+ @return an object of class <Size>
+ */
+ Size GetPrevwPageSizeByPageNum( sal_uInt16 _nPageNum ) const;
+};
+
+#endif // _PAGEPREVIEWLAYOUT_HXX
diff --git a/sw/inc/poolfmt.hxx b/sw/inc/poolfmt.hxx
index 9d53c0850027..313dc420f8bd 100644
--- a/sw/inc/poolfmt.hxx
+++ b/sw/inc/poolfmt.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: poolfmt.hxx,v $
*
- * $Revision: 1.4 $
+ * $Revision: 1.5 $
*
- * last change: $Author: os $ $Date: 2002-06-05 12:24:54 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:38:40 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -67,6 +67,10 @@
#include <tools/solar.h>
#endif
+#ifndef _SVX_FRMDIR_HXX
+#include <svx/frmdir.hxx>
+#endif
+
// POOLCOLL-IDs:
// +----+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
// !User! Bereich ! 0 ! Offset !
@@ -460,6 +464,8 @@ RES_POOLCOLL_HTML_END
// sonst -> den Parent
USHORT GetPoolParent( USHORT nId );
+SvxFrameDirection GetDefaultFrameDirection(ULONG nLanguage);
+
inline BOOL IsConditionalByPoolId(USHORT nId)
{
return RES_POOLCOLL_TEXT == nId;
diff --git a/sw/inc/shellio.hxx b/sw/inc/shellio.hxx
index 976680d674df..079709840aad 100644
--- a/sw/inc/shellio.hxx
+++ b/sw/inc/shellio.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: shellio.hxx,v $
*
- * $Revision: 1.17 $
+ * $Revision: 1.18 $
*
- * last change: $Author: dvo $ $Date: 2002-12-02 11:51:28 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:38:41 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -360,9 +360,14 @@ public:
class Sw3Reader : public StgReader
{
+ Sw3Io* pIO;
virtual ULONG Read( SwDoc &,SwPaM &,const String &);
public:
- Sw3Reader() {}
+ Sw3Reader() : pIO( 0 ) {}
+
+ Sw3Io* GetSw3Io() { return pIO; }
+ const Sw3Io* GetSw3Io() const { return pIO; }
+ void SetSw3Io( Sw3Io* pIo ) { pIO = pIo; }
// read the sections of the document, which is equal to the medium.
// returns the count of it
@@ -594,10 +599,19 @@ public:
class Sw3Writer : public StgWriter
{
+ Sw3Io* pIO;
+ BOOL bSaveAs : 1;
+
virtual ULONG WriteStorage();
public:
- Sw3Writer() {}
+ Sw3Writer() : pIO( 0 ), bSaveAs( FALSE ) {}
+
+ Sw3Io* GetSw3Io() { return pIO; }
+ const Sw3Io* GetSw3Io() const { return pIO; }
+ void SetSw3Io( Sw3Io* pIo, BOOL bSvAs = FALSE )
+ { pIO = pIo; bSaveAs = bSvAs; }
+
virtual BOOL IsSw3Writer() const;
};
@@ -672,11 +686,11 @@ public:
static FASTBOOL IsValidStgFilter( SvStorage& , const SfxFilter& );
- static bool IsDetectableText(const sal_Char* pBuf, ULONG &rLen,
+ static bool IsDetectableText(const sal_Char* pBuf, ULONG &rLen,
CharSet *pCharSet=0, bool *pSwap=0, LineEnd *pLineEnd=0);
+ static bool IsDetectableW4W(const String& rFileName);
static const SfxFilter* GetTextFilter(const sal_Char* pBuf, ULONG nLen);
-
// gebe einen bestimmten Reader zurueck
static Reader* GetReader( const String& rFltName );
// gebe einen bestimmten Writer zurueck
diff --git a/sw/inc/swcrsr.hxx b/sw/inc/swcrsr.hxx
index 1f6e1c368e12..94e06d255aa3 100644
--- a/sw/inc/swcrsr.hxx
+++ b/sw/inc/swcrsr.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: swcrsr.hxx,v $
*
- * $Revision: 1.8 $
+ * $Revision: 1.9 $
*
- * last change: $Author: fme $ $Date: 2002-12-02 10:20:15 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:38:42 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -110,7 +110,7 @@ class SwCursor : public SwPaM
friend class SwCrsrSaveState;
_SwCursor_SavePos* pSavePos;
- BYTE nCursorBidiLevel;
+ BYTE nCursorBidiLevel; // bidi level of the cursor
ULONG FindAll( SwFindParas& , SwDocPositions, SwDocPositions, FindRanges, BOOL& bCancel );
@@ -186,7 +186,8 @@ public:
FASTBOOL GoNextSentence(){return GoSentence(NEXT_SENT);}
FASTBOOL GoPrevSentence(){return GoSentence(PREV_SENT);}
- FASTBOOL LeftRight( BOOL bLeft, USHORT nCnt, USHORT nMode, BOOL bAllowVisual );
+ FASTBOOL LeftRight( BOOL bLeft, USHORT nCnt, USHORT nMode, BOOL bAllowVisual,
+ BOOL bInsertCrsr );
FASTBOOL UpDown( BOOL bUp, USHORT nCnt = 1,
Point* pPt = 0, long nUpDownX = 0 );
FASTBOOL LeftRightMargin( BOOL bLeftMargin, BOOL bAPI = FALSE );
@@ -195,9 +196,9 @@ public:
FASTBOOL GoPrevNextCell( BOOL bNext, USHORT nCnt );
FASTBOOL Left( USHORT nCnt, USHORT nMode, BOOL bAllowVisual = FALSE )
- { return LeftRight( TRUE, nCnt, nMode, bAllowVisual ); }
+ { return LeftRight( TRUE, nCnt, nMode, bAllowVisual, FALSE ); }
FASTBOOL Right( USHORT nCnt, USHORT nMode, BOOL bAllowVisual = FALSE )
- { return LeftRight( FALSE, nCnt, nMode, bAllowVisual ); }
+ { return LeftRight( FALSE, nCnt, nMode, bAllowVisual, FALSE ); }
FASTBOOL Up( USHORT nCnt = 1 ) { return UpDown( TRUE, nCnt ); }
FASTBOOL Down( USHORT nCnt = 1 ) { return UpDown( FALSE, nCnt ); }
FASTBOOL LeftMargin() { return LeftRightMargin( TRUE ); }
diff --git a/sw/inc/swmodule.hxx b/sw/inc/swmodule.hxx
index f1204f9c8774..a0be14095c0b 100644
--- a/sw/inc/swmodule.hxx
+++ b/sw/inc/swmodule.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: swmodule.hxx,v $
*
- * $Revision: 1.17 $
+ * $Revision: 1.18 $
*
- * last change: $Author: os $ $Date: 2002-11-29 12:00:22 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:38:43 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -106,7 +106,7 @@ class SwNavigationConfig;
class SwTransferable;
class SwToolbarConfigItem;
class SwAttrPool;
-namespace svx{ class ColorConfig;}
+namespace svtools{ class ColorConfig;}
class SvtAccessibilityOptions;
struct SwDBData;
@@ -135,7 +135,7 @@ class SwModule: public SwModuleDummy , public SfxListener
SwToolbarConfigItem*pToolbarConfig; //fuer gestackte Toolbars, welche
SwToolbarConfigItem*pWebToolbarConfig; //war sichtbar?
SwDBConfig* pDBConfig;
- svx::ColorConfig* pColorConfig;
+ svtools::ColorConfig* pColorConfig;
SvtAccessibilityOptions* pAccessibilityOptions;
SfxErrorHandler* pErrorHdl;
@@ -164,8 +164,6 @@ class SwModule: public SwModuleDummy , public SfxListener
// Hint abfangen fuer DocInfo
virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
- // form letter execution
- void GenerateFormLetter(BOOL bUseCurrentDocument);
protected:
// Briefumschlaege, Etiketten
@@ -205,7 +203,6 @@ public:
void ExecOther(SfxRequest &); // Felder, Formel ..
void ExecViewOptions(SfxRequest &);
void ExecWizzard(SfxRequest &);
- void ExecDB(SfxRequest &); // DBManager
// Benutzereinstellungen modifizieren
const SwMasterUsrPref *GetUsrPref(sal_Bool bWeb) const;
@@ -226,7 +223,7 @@ public:
SwToolbarConfigItem*GetToolbarConfig() { return pToolbarConfig; }
SwToolbarConfigItem*GetWebToolbarConfig() { return pWebToolbarConfig; }
SwDBConfig* GetDBConfig();
- svx::ColorConfig& GetColorConfig();
+ svtools::ColorConfig& GetColorConfig();
SvtAccessibilityOptions& GetAccessibilityOptions();
// Ueber Sichten iterieren
diff --git a/sw/inc/swunohelper.hxx b/sw/inc/swunohelper.hxx
index 570fdf7d1539..d5476761dc7a 100644
--- a/sw/inc/swunohelper.hxx
+++ b/sw/inc/swunohelper.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: swunohelper.hxx,v $
*
- * $Revision: 1.1 $
+ * $Revision: 1.2 $
*
- * last change: $Author: jp $ $Date: 2001-10-18 11:39:48 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:38:43 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -103,6 +103,12 @@ BOOL UCB_IsReadOnlyFileName( const String& rURL );
BOOL UCB_GetFileListOfFolder( const String& rURL, SvStrings& rList,
const String* pExtension = 0,
SvPtrarr* pDateTimeList = 0 );
+
+ // is the URL an existing file?
+BOOL UCB_IsFile( const String& rURL );
+
+ // is the URL a existing directory?
+BOOL UCB_IsDirectory( const String& rURL );
}
#endif
diff --git a/sw/inc/tblsel.hxx b/sw/inc/tblsel.hxx
index 8db60a499baa..c5901e1cbc27 100644
--- a/sw/inc/tblsel.hxx
+++ b/sw/inc/tblsel.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: tblsel.hxx,v $
*
- * $Revision: 1.3 $
+ * $Revision: 1.4 $
*
- * last change: $Author: jp $ $Date: 2002-03-21 12:57:09 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:38:43 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -206,22 +206,10 @@ class _FndBox
SwTableLine *pLineBefore; //Zum Loeschen/Restaurieren des Layouts.
SwTableLine *pLineBehind;
- static void AddToFndBox( _FndBox*& rpParent, const SwTableBox& rBox );
- static void AppendLine( _FndBox& rBox, const SwTableLine& rLine );
- static void AppendBox( _FndLine& rLine, const SwTableBox& rBox );
- static void AddSelLine( _FndBox& rBox, const SwTableLine& rLine,
- SwSelBoxes& rBoxes );
- static void AddSelBox( _FndLine& rLine, const SwTableBox& rBox,
- SwSelBoxes& rBoxes );
public:
_FndBox( SwTableBox* pB, _FndLine* pFL ) :
pBox(pB), pUpper(pFL), pLineBefore( 0 ), pLineBehind( 0 ) {}
- // fill with the structure from the selection (the selboxes)
- _FndBox( const SwSelBoxes& rBoxes );
- // fill with the structure from the TableLine
- _FndBox( const SwTableLine& rLine );
-
const _FndLines& GetLines() const { return aLines; }
_FndLines& GetLines() { return aLines; }
const SwTableBox* GetBox() const { return pBox; }
@@ -262,4 +250,22 @@ public:
};
+struct _FndPara
+{
+ _FndBox* pFndBox;
+ _FndLine* pFndLine;
+ const SwSelBoxes& rBoxes;
+
+ _FndPara( const SwSelBoxes& rBxs, _FndBox* pFB )
+ : rBoxes( rBxs ), pFndBox( pFB ) {}
+ _FndPara( const _FndPara& rPara, _FndBox* pFB )
+ : rBoxes(rPara.rBoxes), pFndLine(rPara.pFndLine), pFndBox(pFB) {}
+ _FndPara( const _FndPara& rPara, _FndLine* pFL )
+ : rBoxes(rPara.rBoxes), pFndLine(pFL), pFndBox(rPara.pFndBox) {}
+};
+
+BOOL _FndBoxCopyCol( const SwTableBox*& rpBox, void* pPara );
+BOOL _FndLineCopyCol( const SwTableLine*& rpLine, void* pPara );
+
+
#endif // _TBLSEL_HXX
diff --git a/sw/inc/unoframe.hxx b/sw/inc/unoframe.hxx
index e3a1979b68ac..8312cf8ac38c 100644
--- a/sw/inc/unoframe.hxx
+++ b/sw/inc/unoframe.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: unoframe.hxx,v $
*
- * $Revision: 1.14 $
+ * $Revision: 1.15 $
*
- * last change: $Author: mib $ $Date: 2002-11-26 12:35:55 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:38:44 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -371,14 +371,12 @@ class SwXOLEListener : public cppu::WeakImplHelper1
>,
public SwClient
{
- ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel > xOLEModel;
-// SfxObjectShell* GetObjShell( const SwFmt& rFmt,
-// SwOLENode** ppNd = 0 ) const;
- SwFmt* GetFmt() const { return (SwFmt*)GetRegisteredIn(); }
+ SvPtrarr aFmts;
+ ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel > GetModel( const SwFmt& rFmt, SwOLENode** ppNd = 0 ) const;
+ SfxObjectShell* GetObjShell( const SwFmt& rFmt,
+ SwOLENode** ppNd = 0 ) const;
+ sal_uInt16 FindEntry( const ::com::sun::star::lang::EventObject& Source, SwOLENode** ppNd = 0 );
public:
- SwXOLEListener(SwFmt& rOLEFmt, ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel > xOLE);
- ~SwXOLEListener();
- TYPEINFO();
// ::com::sun::star::lang::XEventListener
virtual void SAL_CALL disposing( const ::com::sun::star::lang::EventObject& Source ) throw(::com::sun::star::uno::RuntimeException);
@@ -386,6 +384,7 @@ public:
// ::com::sun::star::util::XModifyListener
virtual void SAL_CALL modified( const ::com::sun::star::lang::EventObject& aEvent ) throw(::com::sun::star::uno::RuntimeException);
+ sal_Bool AddOLEFmt( SwFrmFmt& rFmt );
void Modify( SfxPoolItem*, SfxPoolItem* );
};
diff --git a/sw/inc/unomailmerge.hxx b/sw/inc/unomailmerge.hxx
new file mode 100644
index 000000000000..aca74d4d9266
--- /dev/null
+++ b/sw/inc/unomailmerge.hxx
@@ -0,0 +1,233 @@
+/*************************************************************************
+ *
+ * $RCSfile: unomailmerge.hxx,v $
+ *
+ * $Revision: 1.2 $
+ *
+ * last change: $Author: hr $ $Date: 2003-03-27 15:38:44 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _UNOMAILMERGE_HXX_
+#define _UNOMAILMERGE_HXX_
+
+#ifndef _CPPUHELPER_IMPLBASE5_HXX_
+#include <cppuhelper/implbase5.hxx> // WeakImplHelper4
+#endif
+#ifndef _CPPUHELPER_INTERFACECONTAINER_HXX_
+#include <cppuhelper/interfacecontainer.hxx> // OMultiTypeInterfaceContainerHelperVar
+#endif
+#ifndef _UTL_CONFIGITEM_HXX_
+#include <unotools/configitem.hxx> // !! needed for OMultiTypeInterfaceContainerHelperVar !!
+#endif
+
+
+#ifndef _COM_SUN_STAR_TASK_XJOB_HPP_
+#include <com/sun/star/task/XJob.hpp>
+#endif
+#ifndef _COM_SUN_STAR_BEANS_XPROPERTYSET_HPP_
+#include <com/sun/star/beans/XPropertySet.hpp>
+#endif
+#ifndef _COM_SUN_STAR_LANG_XCOMPONENT_HPP_
+#include <com/sun/star/lang/XComponent.hpp>
+#endif
+#ifndef _COM_SUN_STAR_LANG_XSERVICEINFO_HPP_
+#include <com/sun/star/lang/XServiceInfo.hpp>
+#endif
+#ifndef _COM_SUN_STAR_BEANS_PROPERTYCHANGEEVENT_HPP_
+#include <com/sun/star/beans/PropertyChangeEvent.hpp>
+#endif
+#ifndef _COM_SUN_STAR_TEXT_XMAILMERGEBROADCASTER_HPP_
+#include <com/sun/star/text/XMailMergeBroadcaster.hpp>
+#endif
+
+#ifndef _SFX_ITEMPROP_HXX
+#include <svtools/itemprop.hxx>
+#endif
+#ifndef _SFX_OBJSH_HXX
+#include <sfx2/objsh.hxx> // SfxObjectShellRef
+#endif
+
+namespace com { namespace sun { namespace star { namespace sdbc {
+ class XResultSet;
+ class XConnection;
+}}}}
+
+namespace com { namespace sun { namespace star { namespace frame {
+ class XModel;
+}}}}
+
+namespace com { namespace sun { namespace star { namespace lang {
+ class XMultiServiceFactory;
+}}}}
+
+namespace com { namespace sun { namespace star { namespace text {
+ class XMailMergeListener;
+ struct MailMergeEvent;
+}}}}
+
+namespace rtl {
+ class OUString;
+}
+
+///////////////////////////////////////////////////////////////////////////
+
+// uses templates from <cppuhelper/interfacecontainer.h>
+// and <unotools/configitem.hxx>
+
+// helper function call class
+struct PropHashType_Impl
+{
+ size_t operator()(const INT32 &s) const { return s; }
+};
+
+typedef cppu::OMultiTypeInterfaceContainerHelperVar
+ <
+ INT32,
+ PropHashType_Impl,
+ std::equal_to< INT32 >
+ > OPropertyListenerContainerHelper;
+
+////////////////////////////////////////////////////////////
+
+class SwXMailMerge :
+ public cppu::WeakImplHelper5
+ <
+ com::sun::star::task::XJob,
+ com::sun::star::beans::XPropertySet,
+ com::sun::star::text::XMailMergeBroadcaster,
+ com::sun::star::lang::XComponent,
+ com::sun::star::lang::XServiceInfo
+ >
+{
+ cppu::OInterfaceContainerHelper aEvtListeners;
+ cppu::OInterfaceContainerHelper aMergeListeners;
+ OPropertyListenerContainerHelper aPropListeners;
+
+ //SfxItemPropertySet aPropSet;
+ const SfxItemPropertyMap* pMap;
+
+ SfxObjectShellRef xDocSh; // the document
+
+ String aTmpFileName;
+
+ // properties of mail merge service
+ com::sun::star::uno::Sequence< com::sun::star::uno::Any > aSelection;
+ com::sun::star::uno::Reference< com::sun::star::sdbc::XResultSet > xResultSet;
+ com::sun::star::uno::Reference< com::sun::star::sdbc::XConnection > xConnection;
+ com::sun::star::uno::Reference< com::sun::star::frame::XModel > xModel;
+ rtl::OUString aDataSourceName;
+ rtl::OUString aDataCommand;
+ rtl::OUString aFilter;
+ rtl::OUString aDocumentURL;
+ rtl::OUString aOutputURL;
+ rtl::OUString aFileNamePrefix;
+ sal_Int32 nDataCommandType;
+ sal_Int16 nOutputType;
+ sal_Bool bEscapeProcessing;
+ sal_Bool bSinglePrintJobs;
+ sal_Bool bFileNameFromColumn;
+
+ sal_Bool bDisposing;
+
+
+ void launchEvent( const com::sun::star::beans::PropertyChangeEvent &rEvt ) const;
+
+ // disallow use of copy-constructor and assignment-operator for now
+ SwXMailMerge( const SwXMailMerge & );
+ SwXMailMerge & operator = ( const SwXMailMerge & );
+
+public:
+ SwXMailMerge();
+ virtual ~SwXMailMerge();
+
+ void LaunchMailMergeEvent( const com::sun::star::text::MailMergeEvent &rData ) const;
+
+ // XJob
+ virtual ::com::sun::star::uno::Any SAL_CALL execute( const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::NamedValue >& Arguments ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException);
+
+ // XPropertySet
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Any& aValue ) throw (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::beans::PropertyVetoException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( const ::rtl::OUString& PropertyName ) throw (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL addPropertyChangeListener( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& xListener ) throw (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL removePropertyChangeListener( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& aListener ) throw (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL addVetoableChangeListener( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener ) throw (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener ) throw (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException);
+
+ // XMailMergeBroadcaster
+ virtual void SAL_CALL addMailMergeEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::text::XMailMergeListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL removeMailMergeEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::text::XMailMergeListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
+
+ // XComponent
+ virtual void SAL_CALL dispose( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL addEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL removeEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& aListener ) throw (::com::sun::star::uno::RuntimeException);
+
+ // XServiceInfo
+ virtual ::rtl::OUString SAL_CALL getImplementationName( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames( ) throw (::com::sun::star::uno::RuntimeException);
+};
+
+
+extern com::sun::star::uno::Sequence< rtl::OUString > SAL_CALL SwXMailMerge_getSupportedServiceNames() throw();
+extern rtl::OUString SAL_CALL SwXMailMerge_getImplementationName() throw();
+extern com::sun::star::uno::Reference< com::sun::star::uno::XInterface > SAL_CALL SwXMailMerge_createInstance(const com::sun::star::uno::Reference< com::sun::star::lang::XMultiServiceFactory > & rSMgr) throw( com::sun::star::uno::Exception );
+
+////////////////////////////////////////////////////////////
+
+#endif
+
+
diff --git a/sw/inc/unomap.hxx b/sw/inc/unomap.hxx
index e4af696920f9..d40a1bac6686 100644
--- a/sw/inc/unomap.hxx
+++ b/sw/inc/unomap.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: unomap.hxx,v $
*
- * $Revision: 1.42 $
+ * $Revision: 1.43 $
*
- * last change: $Author: tl $ $Date: 2002-10-08 14:34:29 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:38:44 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -106,6 +106,7 @@
#define PROPERTY_MAP_EMBEDDED_OBJECT 38
#define PROPERTY_MAP_REDLINE 39
#define PROPERTY_MAP_TEXT_DEFAULT 40
+
#define PROPERTY_MAP_FLDTYP_DATETIME 41
#define PROPERTY_MAP_FLDTYP_USER 42
#define PROPERTY_MAP_FLDTYP_SET_EXP 43
@@ -152,9 +153,10 @@
#define PROPERTY_MAP_FLDMSTR_DUMMY0 84
#define PROPERTY_MAP_FLDTYP_BIBLIOGRAPHY 85
#define PROPERTY_MAP_FLDMSTR_BIBLIOGRAPHY 86
-#define PROPERTY_MAP_REDLINE_PORTION 87
-#define PROPERTY_MAP_TEXT 88
-#define PROPERTY_MAP_END 89
+#define PROPERTY_MAP_TEXT 87
+#define PROPERTY_MAP_REDLINE_PORTION 88
+#define PROPERTY_MAP_MAILMERGE 89
+#define PROPERTY_MAP_END 90
#define PROPERTY_SET_CHAR_STYLE 1
#define PROPERTY_SET_PARA_STYLE 2
@@ -251,6 +253,7 @@
#define WID_IDX_LOCALE 1055
#define WID_IDX_SORT_ALGORITHM 1056
#define WID_IDX_NAME 1057
+
#define WID_TEXT_READING 1058
#define WID_PRIMARY_KEY_READING 1059
#define WID_SECONDARY_KEY_READING 1060
@@ -272,6 +275,22 @@
#define WID_DOC_APPLY_FORM_DESIGN_MODE 1013
#define WID_DOC_BASIC_LIBRARIES 1014
+//MailMerge
+#define WID_SELECTION 1071
+#define WID_RESULT_SET 1072
+#define WID_CONNECTION 1073
+#define WID_MODEL 1074
+#define WID_DATA_SOURCE_NAME 1075
+#define WID_DATA_COMMAND 1076
+#define WID_FILTER 1077
+#define WID_DOCUMENT_URL 1078
+#define WID_OUTPUT_URL 1079
+#define WID_DATA_COMMAND_TYPE 1080
+#define WID_OUTPUT_TYPE 1081
+#define WID_ESCAPE_PROCESSING 1082
+#define WID_SINGLE_PRINT_JOBS 1083
+#define WID_FILE_NAME_FROM_COLUMN 1084
+#define WID_FILE_NAME_PREFIX 1085
//AutoText
#define WID_GROUP_PATH 0
diff --git a/sw/inc/unoobj.hxx b/sw/inc/unoobj.hxx
index 98290dc3705c..33e674c06769 100644
--- a/sw/inc/unoobj.hxx
+++ b/sw/inc/unoobj.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: unoobj.hxx,v $
*
- * $Revision: 1.24 $
+ * $Revision: 1.25 $
*
- * last change: $Author: os $ $Date: 2002-03-19 16:05:50 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:38:45 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -397,6 +397,8 @@ enum SwGetPropertyStatesCaller
SW_PROPERTY_STATE_CALLER_SWX_TEXT_PORTION,
SW_PROPERTY_STATE_CALLER_SINGLE_VALUE_ONLY
};
+#define CRSR_ATTR_MODE_TABLE 1 //attributes should be applied to a table selection
+#define CRSR_ATTR_MODE_DONTREPLACE 2 //attributes should be added, not replaced
class SwXTextCursor : public cppu::WeakImplHelper12
<
@@ -539,7 +541,7 @@ public:
SwUnoCrsr* GetCrsr(){return (SwUnoCrsr*)GetRegisteredIn();}
const SwUnoCrsr* GetCrsr()const{return (SwUnoCrsr*)GetRegisteredIn();}
- static void SetCrsrAttr(SwPaM& rPam, const SfxItemSet& rSet, BOOL bTableMode = sal_False);
+ static void SetCrsrAttr(SwPaM& rPam, const SfxItemSet& rSet, USHORT nAttrMode );
static void GetCrsrAttr(SwPaM& rPam, SfxItemSet& rSet, BOOL bCurrentAttrOnly = FALSE);
static void getTextFromPam(SwPaM& aCrsr, rtl::OUString& rBuffer);
static SwFmtColl* GetCurTxtFmtColl(SwPaM& rPam, BOOL bConditional);
diff --git a/sw/inc/unoprnms.hxx b/sw/inc/unoprnms.hxx
index 77eddb65b7c7..ccaadb4878bf 100644
--- a/sw/inc/unoprnms.hxx
+++ b/sw/inc/unoprnms.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: unoprnms.hxx,v $
*
- * $Revision: 1.80 $
+ * $Revision: 1.81 $
*
- * last change: $Author: os $ $Date: 2002-11-15 11:08:21 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:38:45 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -716,8 +716,23 @@ enum SwPropNameIds
/* 0636 */ UNO_NAME_FOOTER_DYNAMIC_SPACING,
/* 0637 */ UNO_NAME_BASIC_LIBRARIES,
/* 0638 */ UNO_NAME_IS_FIXED_LANGUAGE,
+/* 0639 */ UNO_NAME_SELECTION,
+/* 0640 */ UNO_NAME_RESULT_SET,
+/* 0641 */ UNO_NAME_CONNECTION,
+/* 0642 */ UNO_NAME_MODEL,
+/* 0643 */ UNO_NAME_DATA_SOURCE_NAME,
+/* 0644 */ UNO_NAME_DATA_COMMAND,
+/* 0645 */ UNO_NAME_FILTER,
+/* 0646 */ UNO_NAME_DOCUMENT_URL,
+/* 0647 */ UNO_NAME_OUTPUT_URL,
+/* 0648 */ UNO_NAME_OUTPUT_TYPE,
+/* 0649 */ UNO_NAME_ESCAPE_PROCESSING,
+/* 0650 */ UNO_NAME_SINGLE_PRINT_JOBS,
+/* 0651 */ UNO_NAME_FILE_NAME_FROM_COLUMN,
+/* 0652 */ UNO_NAME_FILE_NAME_PREFIX,
+/* 0653 */ UNO_NAME_CHAR_STYLE_NAMES,
+/* 0654 */ SW_PROPNAME_END
-/* 0639 */ SW_PROPNAME_END
};
diff --git a/sw/inc/viewopt.hxx b/sw/inc/viewopt.hxx
index 7f9f47a4d9c4..53e579651a39 100644
--- a/sw/inc/viewopt.hxx
+++ b/sw/inc/viewopt.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: viewopt.hxx,v $
*
- * $Revision: 1.15 $
+ * $Revision: 1.16 $
*
- * last change: $Author: fme $ $Date: 2002-12-05 10:02:03 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:38:46 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -77,7 +77,7 @@ class Window;
class OutputDevice;
class ViewShell;
class SwDocShell;
-namespace svx{ class ColorConfig;}
+namespace svtools{ class ColorConfig;}
#define VIEWOPT_1_IDLE 0x00000001L
#define VIEWOPT_1_TAB 0x00000002L
@@ -608,7 +608,7 @@ public:
void SetDocBoundaries(BOOL bSet) {SetAppearanceFlag(VIEWOPT_DOC_BOUNDARIES, bSet);}
- static void ApplyColorConfigValues(const svx::ColorConfig& rConfig);
+ static void ApplyColorConfigValues(const svtools::ColorConfig& rConfig);
};
diff --git a/sw/inc/viewsh.hxx b/sw/inc/viewsh.hxx
index 05b33fdce283..8bce0bb854fd 100644
--- a/sw/inc/viewsh.hxx
+++ b/sw/inc/viewsh.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: viewsh.hxx,v $
*
- * $Revision: 1.22 $
+ * $Revision: 1.23 $
*
- * last change: $Author: od $ $Date: 2002-12-06 16:12:04 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:38:46 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -109,6 +109,8 @@ struct SwPrintData;
class SvtAccessibilityOptions;
class Fraction;
class SvEmbeddedObjectRef;
+// OD 12.12.2002 #103492#
+class SwPagePreviewLayout;
struct SwAccessibilityOptions;
@@ -128,6 +130,9 @@ class ViewShell : public Ring
friend class SwViewImp;
friend class SwLayIdle;
+ // OD 12.12.2002 #103492# - for setting visible area for page preview paint
+ friend class SwPagePreviewLayout;
+
//Umsetzen der SwVisArea, damit vor dem Drucken sauber formatiert
//werden kann.
friend void SetSwVisArea( ViewShell *pSh, const SwRect &, BOOL bPDFExport = FALSE );
@@ -196,14 +201,6 @@ class ViewShell : public Ring
void ImplApplyViewOptions( const SwViewOption &rOpt );
- /** calculate visible pages and further needed data for current preview settings
-
- OD 04.12.2002 #103492#
-
- @author OD
- */
- void _CalcVisiblePagesForPreview();
-
protected:
static ShellResource* pShellRes; // Resourcen fuer die Shell
static Window* pCareWindow; // diesem Fenster ausweichen
@@ -321,7 +318,7 @@ public:
sal_Bool Prt( SwPrtOptions& rOptions, SfxProgress& rProgress,
OutputDevice *pPDFOut = NULL );
//"Drucken" fuer OLE 2.0
- static void PrtOle2( SwDoc *pDoc, const SwViewOption *pOpt,
+ static void PrtOle2( SwDoc *pDoc, const SwViewOption *pOpt, SwPrtOptions& rOptions,
OutputDevice* pOleOut, const Rectangle& rRect );
// creates temporary doc with selected text for PDF export
@@ -374,210 +371,26 @@ public:
// Selektion der Draw ::com::sun::star::script::Engine geaendert
virtual void DrawSelChanged(SdrView*);
- // SS fuer Seitenvorschau anzeigen
- void PreViewPage( const Rectangle& rRect, sal_uInt16 nRowCol,
- sal_uInt16 nSttPage, const Size& rPageSize,
- sal_uInt16 nSelectedPage );
- void RepaintCoreRect( const SwRect& rRect, sal_uInt16 nRowCol,
- sal_uInt16 nSttPage, const Size& rPageSize );
- // und jetzt mal auf den Drucker
- void PrintPreViewPage( SwPrtOptions& rOptions, sal_uInt16 nRowCol,
- SfxProgress& rProgress,
- const SwPagePreViewPrtData* = 0 );
- Size GetPagePreViewPrtMaxSize() const;
- // errechnen & MapMode setzen
- sal_uInt16 CalcPreViewPage( const Size& rWinWidth, sal_uInt16& nRowCol,
- sal_uInt16 nSttPage, Size& rPageSize,
- sal_uInt16& rVirtPageNo, sal_uInt16 nAccSelPage );
- sal_Bool IsPreViewDocPos( Point& rDocPt, sal_uInt16 nRowCol, sal_uInt16 nSttPage,
- const Size& rMaxSize );
- /** init page preview layout - new method, replacing <CalcPreViewPage>
-
- OD 27.11.2002 #103492#
- initialize the page preview settings for a given layout.
- side effects:
- (1) data struture for current preview settings are initialized and set.
- (2) if parameter <_bCalcScale> is true, mapping mode with calculated
- scaling is set at the output device and the zoom at the view options is
- set with the calculated scaling.
-
- @author OD
-
- @param _nCols
- input parameter - initial number of page columns in the preview.
-
- @param _nRows
- input parameter - initial number of page rows in the preview.
-
- @param _orMaxPageSize
- output parameter - maximal size in width and height of all pages
-
- @param _orPreviewDocSize
- output parameter - size of the document in the proposed preview layout
- included the spacing between the pages.
-
- @param _bCalcScale
- input parameter - control, if method should calculate the needed
- scaling for the proposed preview layout for the given window size
- and sets the scaling at the output device and the view options.
-
- @param _pPxWinSize
- input parameter - window size in which the preview will be displayed and
- for which the scaling will be calculated.
-
- @return boolean, indicating, if preview layout is successful initialized.
- */
- bool InitPreviewLayout( const sal_uInt16 _nCols,
- const sal_uInt16 _nRows,
- Size& _orMaxPageSize,
- Size& _orPreviewDocSize,
- const bool _bCalcScale,
- const Size* _pPxWinSize = NULL
- );
-
- /** prepare paint of page preview
-
- OD 28.11.2002 #103492#
- With the valid preview layout settings - calculated and set by method
- <InitPreviewLayout> - the paint of a specific part of the virtual
- preview document is prepared. The corresponding part is given by either
- a start page (parameter <_nProposedStartPageNum>) or a absolute position
- (parameter <_aProposedStartPoint>).
- The accessibility preview will also be updated via a corresponding
- method call.
-
- @author OD
-
- @param _nProposedStartPageNum [0..<number of document pages>]
- input parameter - proposed number of page, which should be painted in
- the left-top-corner in the current output device.
-
- @param _nProposedStartPos [(0,0)..<PreviewDocumentSize>]
- input parameter - proposed absolute position in the virtual preview
- document, which should be painted in the left-top-corner in the current
- output device.
-
- @param _pPxWinSize
- input parameter - pixel size of window the preview will be painted in.
-
- @param _onStartPageNum
- output parameter - physical number of page, which will be painted in the
- left-top-corner in the current output device.
-
- @param _onStartPageVirtNum
- output parameter - virtual number of page, which will be painted in the
- left-top-corner in the current output device.
-
- @param _orDocPreviewPaintRect
- output parameter - rectangle of preview document, which will be painted.
-
- @param _bPaintPageAtFirstCol
- input parameter with default value "true" - controls, if start page
- is set to page in first column the proposed start page is located.
-
- @return boolean, indicating, if prepare of preview paint was successful.
- */
- bool PreparePreviewPaint( const sal_uInt16 _nProposedStartPageNum,
- const Point _aProposedStartPos,
- const Size* _pPxWinSize,
- sal_uInt16& _onStartPageNum,
- sal_uInt16& _onStartPageVirtNum,
- Rectangle& _orDocPreviewPaintRect,
- const bool _bPaintPageAtFirstCol = true
- );
-
- /** paint prepared preview
-
- OD 28.11.2002 #103492#
+ // OD 12.12.2002 #103492#
+ SwPagePreviewLayout* PagePreviewLayout();
- @author OD
+ /** adjust view options for page preview
- @param _nSelectedPageNum
- input parameter - physical number of page, which should be painted as
- selected by am extra border in color COL_LIGHTBLUE.
+ OD 09.01.2003 #i6467#
+ Because page preview should show the document as it is printed -
+ page preview is print preview -, the view options are adjusted to the
+ same as for printing.
- @param _aOutRect
- input parameter - Twip rectangle of window, which should be painted.
-
- @return boolean, indicating, if paint of preview was performed
- */
- bool PaintPreview( const sal_uInt16 _nSelectedPageNum,
- const Rectangle _aOutRect
- );
-
- /** property <DoesPreviewLayoutRowsFitIntoWin> of current preview layout
-
- OD 03.12.2002 #103492#
-
- @author OD
-
- @return boolean, indicating that the rows of the current preview layout
- fit into the current window size.
+ @param _rPrintOptions
+ input parameter - constant reference to print options, to which the
+ view option will be adjusted.
*/
- bool DoesPreviewLayoutRowsFitIntoWindow();
-
- /** property <DoesPreviewLayoutColsFitIntoWin> of current preview layout
-
- OD 03.12.2002 #103492#
-
- @author OD
-
- @return boolean, indicating that the columns of the current preview layout
- fit into the current window size.
- */
- bool DoesPreviewLayoutColsFitIntoWindow();
-
- /** calculate start position for new scaling
+ void AdjustOptionsForPagePreview( const SwPrtOptions &_rPrintOptions );
- OD 04.12.2002 #103492#
-
- @author OD
-
- @return Point, start position for new scale
- */
- Point GetPreviewStartPosForNewScale( const Fraction& _aNewScale,
- const Fraction& _aOldScale,
- const Size& _aNewWinSize );
-
- /** determines, if page with given page number is visible in preview
-
- OD 05.12.2002 #103492#
-
- @author OD
-
- @return boolean, indicating, if page with given page number is visible
- in preview
- */
- bool IsPageVisibleInCurrPreview( const sal_uInt16 _nPageNum );
-
- /** prepares re-paint of preview to bring new selected page into view.
-
- OD 06.12.2002 #103492#
-
- @author OD
-
- @param _nCurrSelectedPage
- input parameter - number of current selected page.
-
- @param _nHoriMove
- input parameter - positive/negative number of columns the current
- selected page have to be moved.
-
- @param _nVertMove
- input parameter - positive/negative number of rows the current
- selected page have to be moved.
-
- @param _orNewSelectedPage
- output parameter - number of new selected page
-
- @return boolean - indicating, that move was sucessful.
- */
- bool MovePreviewSelectedPage( const sal_uInt16 _nCurrSelectedPage,
- const sal_Int16 _nHoriMove,
- const sal_Int16 _nVertMove,
- sal_uInt16& _orNewSelectedPage,
- sal_uInt16& _orNewStartPage,
- Point& _orNewStartPos );
+ // print page/print preview
+ void PrintPreViewPage( SwPrtOptions& rOptions, sal_uInt16 nRowCol,
+ SfxProgress& rProgress,
+ const SwPagePreViewPrtData* = 0 );
// Prospekt-Format drucken
void PrintProspect( SwPrtOptions&, SfxProgress& );
@@ -629,24 +442,16 @@ public:
const Size& GetBrowseBorder() const{ return aBrowseBorder; }
void SetBrowseBorder( const Size& rNew );
-#ifdef ACCESSIBLE_LAYOUT
::com::sun::star::uno::Reference< ::drafts::com::sun::star::accessibility::XAccessible > CreateAccessible();
+ // OD 15.01.2003 #103492# - change method signature due to new page preview
+ // functionality.
::com::sun::star::uno::Reference<
::drafts::com::sun::star::accessibility::XAccessible >
- CreateAccessiblePreview( sal_uInt8 nRow,
- sal_uInt8 nColumn,
- sal_uInt16 nStartPage,
- const Size& rPageSize,
- const Point& rFreePoint,
- const Fraction& rScale,
- sal_uInt16 nSelectedPage );
-
- Point GetPreviewFreePix() const;
+ CreateAccessiblePreview();
void ShowPreViewSelection( sal_uInt16 nSelPage );
void InvalidateAccessibleFocus();
-#endif
//apply Accessiblity options
void ApplyAccessiblityOptions(SvtAccessibilityOptions& rAccessibilityOptions);
diff --git a/sw/prj/build.lst b/sw/prj/build.lst
index 72db0f670863..11a7d8447d66 100644
--- a/sw/prj/build.lst
+++ b/sw/prj/build.lst
@@ -38,7 +38,6 @@ sw sw\source\ui\utlui nmake - all sw_utlui NULL
sw sw\source\ui\web nmake - all sw_web sw_sdi NULL
sw sw\source\ui\wizard nmake - all sw_wiz NULL
sw sw\source\ui\wrtsh nmake - all sw_wrtsh NULL
-sw sw\source\core\access nmake - all sw_access NULL
sw sw\source\core\attr nmake - all sw_attr NULL
sw sw\source\core\crsr nmake - all sw_crsr NULL
sw sw\source\core\doc nmake - all sw_doc NULL
@@ -76,6 +75,6 @@ sw sw\source\filter\ww1 nmake - all sw_ww1 NULL
sw sw\source\filter\ww8 nmake - all sw_ww8 NULL
sw sw\source\filter\xml nmake - all sw_xml NULL
sw sw\source\ui nmake - all sw_ui sw_app sw_cctrl sw_chrdl sw_conf sw_dbui sw_dchdl sw_dcvw sw_dlg sw_envlp sw_fldui sw_fmtui sw_frmdl sw_globd sw_index sw_ling sw_misc sw_rbbar sw_shell sw_table sw_uiuno sw_uivw sw_utlui sw_web sw_wiz sw_wrtsh NULL
-sw sw\source\core nmake - all sw_core sw_access sw_attr sw_crsr sw_dcnd sw_doc sw_draw sw_edit sw_excpt sw_fld sw_frmed sw_grph sw_layo sw_ole sw_para sw_sw3io sw_swg sw_text sw_tox sw_txtnd sw_uco sw_undo sw_view NULL
+sw sw\source\core nmake - all sw_core sw_attr sw_bast sw_crsr sw_dcnd sw_doc sw_draw sw_edit sw_excpt sw_fld sw_frmed sw_grph sw_layo sw_ole sw_para sw_sw3io sw_swg sw_text sw_tox sw_txtnd sw_uco sw_undo sw_view NULL
sw sw\source\filter nmake - all sw_flt sw_ascii sw_bsflt sw_dbugu.u sw_dbugw.w sw_excel sw_html sw_lotus sw_rtf sw_sw6 sw_w4w sw_wrtr sw_ww1 sw_ww8 sw_xml NULL
sw sw\util nmake - all sw_util sw_core sw_flt sw_sdi sw_ui NULL
diff --git a/sw/prj/d.lst b/sw/prj/d.lst
index ef85c5d21cc5..e9b0b2a8c186 100644
--- a/sw/prj/d.lst
+++ b/sw/prj/d.lst
@@ -1,16 +1,13 @@
..\inc\sw.lst %_DEST%\inc%_EXT%\sw.lst
-mkdir: %_DEST%\inc\%_EXT%\sw
-mkdir: %_DEST%\inc\%_EXT%\uno
-mkdir: %_DEST%\inc\%_EXT%\uno\one
-mkdir: %_DEST%\ucr\sw
+mkdir: %_DEST%\inc%_EXT%\sw
+mkdir: %_DEST%\inc%_EXT%\uno
+mkdir: %_DEST%\inc%_EXT%\uno\one
..\inc\swinter.h %_DEST%\ODK\inc%_EXT%\swinter.h
..\inc\orntenum.hxx %_DEST%\inc%_EXT%\sw\orntenum.hxx
..\inc\horiornt.hxx %_DEST%\inc%_EXT%\sw\horiornt.hxx
-..\%__SRC%\inc\swinter.h %_DEST%\ODK\inc%_EXT%\swinter.h
-..\%__SRC%\misc\swinter.c %_DEST%\ODK\src%_EXT%\swinter.c
..\%__SRC%\bin\sweb.res %_DEST%\bin%_EXT%\sweb.res
..\%__SRC%\bin\*.ex$ %_DEST%\bin%_EXT%
-..\xml\*.xml %_DEST%\xml\*.xml
+..\xml\*.xml %_DEST%\xml%_EXT%\*.xml
touch: ..\%__SRC%\misc\sw.hid %_DEST%\bin%_EXT%\sw.hid
..\%__SRC%\bin\soffice.pdb %_DEST%\bin%_EXT%\soffice.pdb
..\%__SRC%\bin\swslots.tlb %_DEST%\bin%_EXT%\swslots.tlb
@@ -19,7 +16,6 @@ touch: ..\%__SRC%\misc\sw.hid %_DEST%\bin%_EXT%\sw.hid
..\%__SRC%\bin\sw?????.res %_DEST%\bin%_EXT%\sw?????.res
..\%__SRC%\bin\sw?????.res %_DEST%\bin%_EXT%\sw?????.res
..\%__SRC%\lib\swinter.lib %_DEST%\lib%_EXT%\swinter.lib
-..\%__SRC%\lib\swinter.lib %_DEST%\ODK\lib%_EXT%\swinter.lib
..\%__SRC%\misc\sw.csv %_DEST%\inc%_EXT%\sw.csv
..\%__SRC%\lib\swlib.lib %_DEST%\lib%_EXT%\swlib.lib
..\%__SRC%\slb\lib*.* %_DEST%\lib%_EXT%\lib*.*
@@ -50,8 +46,6 @@ hedabu: ..\%__SRC%\inc\sw\swtxview.h %_DEST%\inc%_EXT%\uno\one\swtxview.h
hedabu: ..\%__SRC%\inc\sw\swservc.h %_DEST%\inc%_EXT%\uno\one\swservc.h
hedabu: ..\%__SRC%\inc\sw\swmod.h %_DEST%\inc%_EXT%\uno\one\swmod.h
-..\%__SRC%\ucr\*.ucr %_DEST%\ucr%_EXT%\sw\*.ucr
-
..\%__SRC%\lib\lib*static*.dylib %_DEST%\lib%_EXT%\lib*static*.dylib
..\%__SRC%\misc\*staticdatamembers.cxx %_DEST%\inc%_EXT%\*staticdatamembers.cxx
diff --git a/sw/sdi/_viewsh.sdi b/sw/sdi/_viewsh.sdi
index a4fb0c2bc64c..5a036daffd0b 100644
--- a/sw/sdi/_viewsh.sdi
+++ b/sw/sdi/_viewsh.sdi
@@ -2,9 +2,9 @@
*
* $RCSfile: _viewsh.sdi,v $
*
- * $Revision: 1.12 $
+ * $Revision: 1.13 $
*
- * last change: $Author: mba $ $Date: 2002-08-29 14:06:49 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:39:07 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -539,6 +539,16 @@ interface BaseTextEditView : View
[
StateMethod = GetState ;
]
+ FN_INSERT_FIELD_DATA_ONLY // status(final|play)
+ [
+ ExecMethod = Execute ;
+ StateMethod = GetState ;
+ ]
+ FN_QRY_MERGE // status()
+ [
+ ExecMethod = Execute ;
+ DisableFlags="SW_DISABLE_ON_MAILBOX_EDITOR";
+ ]
}
interface GlobalContents : Collection
diff --git a/sw/sdi/swriter.sdi b/sw/sdi/swriter.sdi
index 40b21dc5fb74..509efb27b845 100644
--- a/sw/sdi/swriter.sdi
+++ b/sw/sdi/swriter.sdi
@@ -9561,4 +9561,30 @@ SfxBoolItem JumpToPrevCell FN_GOTO_PREV_CELL
GroupId = GID_NAVIGATOR;
]
+//--------------------------------------------------------------------------
+SfxBoolItem InsertFieldDataOnly FN_INSERT_FIELD_DATA_ONLY()
+[
+ /* flags: */
+ AutoUpdate = TRUE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ RecordAbsolute = FALSE,
+ RecordPerSet;
+ Synchron;
+
+ ImageRotation = TRUE;
+ ImageReflection = TRUE;
+
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = FALSE,
+ GroupId = GID_INSERT;
+]
diff --git a/sw/sdi/swslots.src b/sw/sdi/swslots.src
index cc35437c1730..f22ffb2077be 100644
--- a/sw/sdi/swslots.src
+++ b/sw/sdi/swslots.src
@@ -2,9 +2,9 @@
*
* $RCSfile: swslots.src,v $
*
- * $Revision: 1.103 $
+ * $Revision: 1.104 $
*
- * last change: $Author: kz $ $Date: 2002-12-09 11:43:19 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:39:09 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -71,7 +71,7 @@ SfxSlotInfo FN_ABSTRACT_NEWDOC
SlotName[ russian ] = " ";
SlotName[ dutch ] = "Document van samenvatting";
SlotName[ french ] = "Document d'aprs synthse";
- SlotName[ spanish ] = "Documento desde extracto";
+ SlotName[ spanish ] = "Documento desde resumen";
SlotName[ italian ] = "Crea documento dal sunto";
SlotName[ danish ] = "Dokument fra abstract";
SlotName[ swedish ] = "Dokument frn utdrag";
@@ -84,7 +84,7 @@ SfxSlotInfo FN_ABSTRACT_NEWDOC
SlotName[ dutch ] = "Document van samenvatting";
SlotName[ chinese_simplified ] = "文档来自摘要";
SlotName[ greek ] = " Abstract";
- SlotName[ korean ] = "자동 요약으로부터의 문서";
+ SlotName[ korean ] = "문서를 요약으로부터";
SlotName[ turkish ] = "Belge zeti kar";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Document a partir del resum";
@@ -100,7 +100,7 @@ SfxSlotInfo FN_ABSTRACT_STARIMPRESS
SlotName[ russian ] = " ";
SlotName[ dutch ] = "Presentatie uit samenvatting";
SlotName[ french ] = "Prsentation d'aprs synthse";
- SlotName[ spanish ] = "Presentacin desde extracto";
+ SlotName[ spanish ] = "Presentacin desde resumen";
SlotName[ italian ] = "Presentazione dal sunto";
SlotName[ danish ] = "Prsentation fra abstract";
SlotName[ swedish ] = "Presentation frn utdrag";
@@ -113,7 +113,7 @@ SfxSlotInfo FN_ABSTRACT_STARIMPRESS
SlotName[ dutch ] = "Presentatie uit samenvatting";
SlotName[ chinese_simplified ] = "演示文稿来自摘要";
SlotName[ greek ] = " Abstract";
- SlotName[ korean ] = "자동 요약으로부터의 프레젠테이션";
+ SlotName[ korean ] = "프레젠테이션을 요약으로부터";
SlotName[ turkish ] = "Sunu zeti kar";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Presentaci a partir del resum";
@@ -142,7 +142,7 @@ SfxSlotInfo FN_ADD_UNKNOWN
SlotName[ dutch ] = "Onbekende woorden opnemen";
SlotName[ chinese_simplified ] = "加入不明的字";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "알려져 있지 않은 단어 추가";
+ SlotName[ korean ] = "알 수 없는 단어 추가";
SlotName[ turkish ] = "Bilinmeyen szckler ekle";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Afegeix paraules desconegudes";
@@ -158,7 +158,7 @@ SfxSlotInfo FN_AUTO_CORRECT
SlotName[ russian ] = "";
SlotName[ dutch ] = "AutoCorrectie";
SlotName[ french ] = "AutoCorrection";
- SlotName[ spanish ] = "AutoCorreccin";
+ SlotName[ spanish ] = "Correccin automtica";
SlotName[ italian ] = "Correzione automatica";
SlotName[ danish ] = "AutoKorrektur";
SlotName[ swedish ] = "AutoKorrigering";
@@ -171,7 +171,7 @@ SfxSlotInfo FN_AUTO_CORRECT
SlotName[ dutch ] = "AutoCorrectie";
SlotName[ chinese_simplified ] = "自动更正";
SlotName[ greek ] = "";
- SlotName[ korean ] = "자동 수정/자동 서식 ";
+ SlotName[ korean ] = "자동 수정";
SlotName[ turkish ] = "Otomatik dzeltme";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Correcci automtica";
@@ -187,7 +187,7 @@ SfxSlotInfo FN_AUTOFORMAT_APPLY
SlotName[ russian ] = " ";
SlotName[ dutch ] = "AutoOpmaak-opties toepassen";
SlotName[ french ] = "Utiliser les options de l'AutoFormat";
- SlotName[ spanish ] = "Aplicar opciones AutoFormato";
+ SlotName[ spanish ] = "Aplicar opciones del Formateado automtico";
SlotName[ italian ] = "Applica le opzioni di AutoFormat";
SlotName[ danish ] = "Anvend AutoFormat-indstillinger";
SlotName[ swedish ] = "Anvnd autoformat";
@@ -217,7 +217,7 @@ SfxSlotInfo FN_AUTOFORMAT_AUTO
SlotName[ greek ] = "";
SlotName[ dutch ] = "AutoOpmaak bij invoer";
SlotName[ french ] = "AutoFormat pour la saisie";
- SlotName[ spanish ] = "AutoFormato durante la entrada";
+ SlotName[ spanish ] = "Formateado automtico durante la entrada";
SlotName[ finnish ] = "Automaattinen muotoilu kirjoitettaessa";
SlotName[ italian ] = "Foramttazione automatica durante la digitazione";
SlotName[ danish ] = "AutoFormat ved indtastning";
@@ -241,7 +241,7 @@ SfxSlotInfo FN_AUTOFORMAT_REDLINE_APPLY
SlotName[ russian ] = " ";
SlotName[ dutch ] = "AutoOpmaak-opties toepassen en wijzigingen bevestigen";
SlotName[ french ] = "Utiliser les options d'AutoFormat et confirmer les modifications";
- SlotName[ spanish ] = "AutoFormato-Aplicar opciones y confirmar modificaciones";
+ SlotName[ spanish ] = "Aplicar opciones del Formateado automtico y confirmar modificaciones";
SlotName[ italian ] = "Applica le opzioni della Formattazione automatica e conferma le modifiche";
SlotName[ danish ] = "Anvend AutoFormat-indstillinger og bekrft ndringer";
SlotName[ swedish ] = "Anvnd autoformat-alternativ och bekrfta ndringar";
@@ -267,10 +267,10 @@ SfxSlotInfo FN_BACKSPACE
SlotName [ english ] = "Rckschritt";
SlotName[ english_us ] = "Backspace";
SlotName[ portuguese ] = "Retroceder";
- SlotName[ russian ] = "Backspace";
+ SlotName[ russian ] = " Backspace";
SlotName[ dutch ] = "Backspace";
SlotName[ french ] = "RetArr";
- SlotName[ spanish ] = "Retroceder";
+ SlotName[ spanish ] = "Retroceso";
SlotName[ italian ] = "Backspace";
SlotName[ danish ] = "Tilbage";
SlotName[ swedish ] = "Backsteg";
@@ -370,7 +370,7 @@ SfxSlotInfo FN_CHANGE_DBFIELD
SlotName[ dutch ] = "Database wijzigen";
SlotName[ chinese_simplified ] = "更改数据库";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "데이터베이스 수정";
+ SlotName[ korean ] = "데이터베이스 변경";
SlotName[ turkish ] = "Veritabann dzenle";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Canvia la base de dades";
@@ -443,7 +443,7 @@ SfxSlotInfo FN_CHAR_LEFT_SEL
SlotName[ portuguese ] = "Seleccionar carcter esquerda";
SlotName[ russian ] = " ";
SlotName[ dutch ] = "Tekens links selecteren";
- SlotName[ french ] = "Slect. caratre gauche";
+ SlotName[ french ] = "Slectionner le caractre gauche";
SlotName[ spanish ] = "Seleccionar carcter a la izquierda";
SlotName[ italian ] = "Seleziona carattere sinistro";
SlotName[ danish ] = "Marker tegn til venstre";
@@ -501,7 +501,7 @@ SfxSlotInfo FN_CHAR_RIGHT_SEL
SlotName[ portuguese ] = "Seleccionar carcter direita";
SlotName[ russian ] = " ";
SlotName[ dutch ] = "Teken rechts selecteren";
- SlotName[ french ] = "Slect. caractre droite";
+ SlotName[ french ] = "Slectionner le caractre droite";
SlotName[ spanish ] = "Seleccionar carcter a la derecha";
SlotName[ italian ] = "Seleziona carattere destro";
SlotName[ danish ] = "Marker tegn til hjre";
@@ -573,7 +573,7 @@ SfxSlotInfo FN_CONVERT_TEXT_TABLE
SlotName[ dutch ] = "Converteer tabel/tekst";
SlotName[ chinese_simplified ] = "转换 表格/文本";
SlotName[ greek ] = " /";
- SlotName[ korean ] = "표/텍스트 변환";
+ SlotName[ korean ] = "표와 텍스트 변환";
SlotName[ turkish ] = "Tablo/metin dntr";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Converteix la taula/el text";
@@ -602,7 +602,7 @@ SfxSlotInfo FN_DEC_INDENT_OFFSET
SlotName[ dutch ] = "Inspringing om getal verkleinen";
SlotName[ chinese_simplified ] = "减少缩进值";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "들여쓰기, 값만큼 줄임";
+ SlotName[ korean ] = "들여쓰기 값 줄임";
SlotName[ turkish ] = "Girintiyi klt";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Disminueix el valor del sagnat";
@@ -618,7 +618,7 @@ SfxSlotInfo FN_DELETE_BACK_LINE
SlotName[ russian ] = " ";
SlotName[ dutch ] = "Tot aan begin regel wissen";
SlotName[ french ] = "Supprimer jusq'au dbut de la ligne";
- SlotName[ spanish ] = "Eliminar hasta el comienzo de la lnea";
+ SlotName[ spanish ] = "Borrar hasta el comienzo de la lnea";
SlotName[ italian ] = "Cancella fino all'inzio della riga";
SlotName[ danish ] = "Slet til begyndelsen af rkken";
SlotName[ swedish ] = "Radera till brjan av rad";
@@ -631,7 +631,7 @@ SfxSlotInfo FN_DELETE_BACK_LINE
SlotName[ dutch ] = "Tot aan begin regel wissen";
SlotName[ chinese_simplified ] = "删除至行首";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "행 시작 부분까지 삭제";
+ SlotName[ korean ] = "줄 시작까지 삭제";
SlotName[ turkish ] = "Satr bana kadar sil";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Suprimeix fins a l'inici de la lnia";
@@ -647,7 +647,7 @@ SfxSlotInfo FN_DELETE_BACK_PARA
SlotName[ russian ] = " ";
SlotName[ dutch ] = "Tot aan begin alinea wissen";
SlotName[ french ] = "Supprimer jusqu'au dbut du paragraphe";
- SlotName[ spanish ] = "Eliminar hasta el comienzo del prrafo";
+ SlotName[ spanish ] = "Borrar hasta el comienzo del prrafo";
SlotName[ italian ] = "Cancella fino alla fine del paragrafo";
SlotName[ danish ] = "Slet til begyndelsen af afsnittet";
SlotName[ swedish ] = "Radera till brjan av stycke";
@@ -660,7 +660,7 @@ SfxSlotInfo FN_DELETE_BACK_PARA
SlotName[ dutch ] = "Tot aan begin alinea wissen";
SlotName[ chinese_simplified ] = "删除至段落的起始位置";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "단락 시작 부분까지 삭제";
+ SlotName[ korean ] = "단락 시작까지 삭제";
SlotName[ turkish ] = "Paragraf bana kadar sil";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Suprimeix fins a l'inici del pargraf";
@@ -675,8 +675,8 @@ SfxSlotInfo FN_DELETE_BACK_SENT
SlotName[ portuguese ] = "Eliminar at ao incio da frase";
SlotName[ russian ] = " ";
SlotName[ dutch ] = "Tot aan begin zin wissen";
- SlotName[ french ] = "Suppr. jusqu'au dbut de la page";
- SlotName[ spanish ] = "Eliminar hasta el comienzo de la frase";
+ SlotName[ french ] = "Supprimer jusqu'au dbut de la page";
+ SlotName[ spanish ] = "Borrar hasta el comienzo de la frase";
SlotName[ italian ] = "Cancella fino all'inizio della frase";
SlotName[ danish ] = "Slet til begyndelsen af stningen";
SlotName[ swedish ] = "Radera till brjan av meningen";
@@ -689,7 +689,7 @@ SfxSlotInfo FN_DELETE_BACK_SENT
SlotName[ dutch ] = "Tot aan begin zin wissen";
SlotName[ chinese_simplified ] = "删除至句首";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "문장 시작 부분까지 삭제";
+ SlotName[ korean ] = "문장 시작까지 삭제";
SlotName[ turkish ] = "Cmle bana kadar sil";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Suprimeix fins a l'inici de la frase";
@@ -705,7 +705,7 @@ SfxSlotInfo FN_DELETE_BACK_WORD
SlotName[ russian ] = " ";
SlotName[ dutch ] = "Tot aan begin woord wissen";
SlotName[ french ] = "Supprimer jusqu'au dbut du mot";
- SlotName[ spanish ] = "Eliminar hasta el comienzo de la palabra";
+ SlotName[ spanish ] = "Borrar hasta el comienzo de la palabra";
SlotName[ italian ] = "Cancella fino all'inizio della parola";
SlotName[ danish ] = "Slet til begyndelsen af ordet";
SlotName[ swedish ] = "Radera till brjan av ord";
@@ -718,7 +718,7 @@ SfxSlotInfo FN_DELETE_BACK_WORD
SlotName[ dutch ] = "Tot aan begin woord wissen";
SlotName[ chinese_simplified ] = "删除至字首";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "단어 시작 부분까지 삭제";
+ SlotName[ korean ] = "어두까지 삭제";
SlotName[ turkish ] = "Szck bana kadar sil";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Suprimeix fins a l'inici de la paraula";
@@ -733,8 +733,8 @@ SfxSlotInfo FN_DELETE_LINE
SlotName[ portuguese ] = "Eliminar at ao fim da linha";
SlotName[ russian ] = " ";
SlotName[ dutch ] = "Tot aan einde regel wissen";
- SlotName[ french ] = "Suppr. jusqu' la fin de la ligne";
- SlotName[ spanish ] = "Eliminar hasta el final de la lnea";
+ SlotName[ french ] = "Supprimer jusqu' la fin de la ligne";
+ SlotName[ spanish ] = "Borrar hasta el final de la lnea";
SlotName[ italian ] = "Cancella fino a fine riga";
SlotName[ danish ] = "Slet til slutningen af rkken";
SlotName[ swedish ] = "Radera till radslut";
@@ -747,7 +747,7 @@ SfxSlotInfo FN_DELETE_LINE
SlotName[ dutch ] = "Tot aan einde regel wissen";
SlotName[ chinese_simplified ] = "删除至行末";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "행 끝까지 삭제";
+ SlotName[ korean ] = "줄 끝까지 삭제";
SlotName[ turkish ] = "Satr sonuna kadar sil";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Suprimeix fins al final de la lnia";
@@ -762,8 +762,8 @@ SfxSlotInfo FN_DELETE_PARA
SlotName[ portuguese ] = "Eliminar at ao fim do pargrafo";
SlotName[ russian ] = " ";
SlotName[ dutch ] = "Tot aan einde alinea wissen";
- SlotName[ french ] = "Suppr. jusqu' la fin du paragraphe";
- SlotName[ spanish ] = "Eliminar hasta el final del prrafo";
+ SlotName[ french ] = "Supprimer jusqu' la fin du paragraphe";
+ SlotName[ spanish ] = "Borrar hasta el final del prrafo";
SlotName[ italian ] = "Cancella fino alla fine del paragrafo";
SlotName[ danish ] = "Slet til slutningen af afsnittet";
SlotName[ swedish ] = "Radera till slutet av stycket";
@@ -792,7 +792,7 @@ SfxSlotInfo FN_DELETE_SENT
SlotName[ russian ] = " ";
SlotName[ dutch ] = "Tot aan einde zin wissen";
SlotName[ french ] = "Supprimer jusqu' la fin de la phrase";
- SlotName[ spanish ] = "Eliminar hasta el final de la frase";
+ SlotName[ spanish ] = "Borrar hasta el final de la frase";
SlotName[ italian ] = "Cancella fino alla fine della riga";
SlotName[ danish ] = "Slet til slutningen af stningen";
SlotName[ swedish ] = "Radera till slutet av mening";
@@ -821,7 +821,7 @@ SfxSlotInfo FN_DELETE_WHOLE_LINE
SlotName[ russian ] = " ";
SlotName[ dutch ] = "Rij wissen";
SlotName[ french ] = "Supprimer la ligne";
- SlotName[ spanish ] = "Eliminar lnea";
+ SlotName[ spanish ] = "Borrar fila";
SlotName[ italian ] = "Elimina riga";
SlotName[ danish ] = "Slet rkken";
SlotName[ swedish ] = "Radera rad";
@@ -850,7 +850,7 @@ SfxSlotInfo FN_DELETE_WORD
SlotName[ russian ] = " ";
SlotName[ dutch ] = "Tot aan einde woord wissen";
SlotName[ french ] = "Supprimer jusqu' la fin du mot";
- SlotName[ spanish ] = "Eliminar hasta el final de la palabra";
+ SlotName[ spanish ] = "Borrar hasta el final de la palabra";
SlotName[ italian ] = "Cancella fino alla fine della pagina";
SlotName[ danish ] = "Slet til slutningen af ordet";
SlotName[ swedish ] = "Radera till slutet av ord";
@@ -863,7 +863,7 @@ SfxSlotInfo FN_DELETE_WORD
SlotName[ dutch ] = "Tot aan einde woord wissen";
SlotName[ chinese_simplified ] = "删除至字末";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "단어 끝까지 삭제";
+ SlotName[ korean ] = "어미까지 삭제";
SlotName[ turkish ] = "Szck sonuna kadar sil";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Suprimeix fins al final de la paraula";
@@ -950,7 +950,7 @@ SfxSlotInfo FN_EDIT_FIELD
SlotName[ dutch ] = "Veldopdracht";
SlotName[ chinese_simplified ] = "字段指令";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "필드명령";
+ SlotName[ korean ] = "필드";
SlotName[ turkish ] = "Alan esi";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Camps";
@@ -1063,7 +1063,7 @@ SfxSlotInfo FN_EDIT_LINK_DLG
SlotName[ chinese_simplified ] = "链接";
SlotName[ language_user1 ] = " ";
SlotName[ greek ] = "";
- SlotName[ korean ] = "연결";
+ SlotName[ korean ] = "링크";
SlotName[ turkish ] = "Balantlar";
SlotName[ catalan ] = "Enllaos";
SlotName[ finnish ] = "Linkit";
@@ -1078,7 +1078,7 @@ SfxSlotInfo FN_EDIT_REGION
SlotName[ russian ] = "";
SlotName[ dutch ] = "Bereiken";
SlotName[ french ] = "Sections";
- SlotName[ spanish ] = "reas";
+ SlotName[ spanish ] = "Secciones";
SlotName[ italian ] = "Sezioni";
SlotName[ danish ] = "Omrder";
SlotName[ swedish ] = "Omrden";
@@ -1091,7 +1091,7 @@ SfxSlotInfo FN_EDIT_REGION
SlotName[ dutch ] = "Bereiken";
SlotName[ chinese_simplified ] = "区域";
SlotName[ greek ] = "";
- SlotName[ korean ] = "범위";
+ SlotName[ korean ] = "구역";
SlotName[ turkish ] = "Blm";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Seccions";
@@ -1121,7 +1121,7 @@ SfxSlotInfo FN_END_DOC_DIRECT
SlotName[ chinese_simplified ] = "直接转到文档的结束位置";
SlotName[ language_user1 ] = " ";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "문서끝에 바로";
+ SlotName[ korean ] = "문서 끝에 직접";
SlotName[ turkish ] = "Dorudan belge sonuna";
SlotName[ catalan ] = "Directament al final del document";
SlotName[ finnish ] = "Suoraan asiakirjan loppuun";
@@ -1222,7 +1222,7 @@ SfxSlotInfo FN_END_OF_LINE
SlotName[ portuguese ] = "Ir para fim da linha";
SlotName[ russian ] = " ";
SlotName[ dutch ] = "Naar einde regel";
- SlotName[ french ] = "A la fin de la ligne";
+ SlotName[ french ] = " la fin de la ligne";
SlotName[ spanish ] = "Ir al final de la lnea";
SlotName[ italian ] = "Alla fine della riga";
SlotName[ danish ] = "Til rkkens slutning";
@@ -1251,7 +1251,7 @@ SfxSlotInfo FN_END_OF_LINE_SEL
SlotName[ portuguese ] = "Seleccionar at fim da linha";
SlotName[ russian ] = " ";
SlotName[ dutch ] = "Tot aan einde regel selecteren";
- SlotName[ french ] = "Slect. jusqu' la fin de la ligne";
+ SlotName[ french ] = "Slectionner jusqu' la fin de la ligne";
SlotName[ spanish ] = "Seleccionar hasta el final de la lnea";
SlotName[ italian ] = "Seleziona fino alla fine della linea";
SlotName[ danish ] = "Marker til rkkens slutning";
@@ -1265,7 +1265,7 @@ SfxSlotInfo FN_END_OF_LINE_SEL
SlotName[ dutch ] = "Tot aan einde regel selecteren";
SlotName[ chinese_simplified ] = "选择至行末";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "행 끝까지 선택";
+ SlotName[ korean ] = "줄 끝까지 선택";
SlotName[ turkish ] = "Satr sonuna kadara se";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Selecciona fins al final de la lnia";
@@ -1280,7 +1280,7 @@ SfxSlotInfo FN_END_OF_NEXT_COLUMN
SlotName[ portuguese ] = "Ir para fim da coluna seguinte";
SlotName[ russian ] = " ";
SlotName[ dutch ] = "Naar einde volgende kolom";
- SlotName[ french ] = "A la fin de la colonne suivante";
+ SlotName[ french ] = " la fin de la colonne suivante";
SlotName[ spanish ] = "Ir al final de la columna siguiente";
SlotName[ italian ] = "Alla fine della colonna successiva";
SlotName[ danish ] = "TIl nste kolonnes slutning";
@@ -1338,7 +1338,7 @@ SfxSlotInfo FN_END_OF_NEXT_PAGE_SEL
SlotName[ portuguese ] = "Seleccionar at fim da pgina seguinte";
SlotName[ russian ] = " ";
SlotName[ dutch ] = "Tot aan einde volgende pagina selecteren";
- SlotName[ french ] = "Slect. jusqu' la fin de la page suivante";
+ SlotName[ french ] = "Slectionner jusqu' la fin de la page suivante";
SlotName[ spanish ] = "Seleccionar hasta el final de la pgina siguiente";
SlotName[ italian ] = "Seleziona fino alla fine della pagina successiva";
SlotName[ danish ] = "Marker til nste sides slutning";
@@ -1396,7 +1396,7 @@ SfxSlotInfo FN_END_OF_PAGE_SEL
SlotName[ portuguese ] = "Seleccionar at fim da pgina";
SlotName[ russian ] = " ";
SlotName[ dutch ] = "Tot aan einde pagina selecteren";
- SlotName[ french ] = "Slect. jusqu' la fin de la page";
+ SlotName[ french ] = "Slectionner jusqu' la fin de la page";
SlotName[ spanish ] = "Seleccionar hasta el final de la pgina";
SlotName[ italian ] = "Seleziona fino alla fine della pagina";
SlotName[ danish ] = "Marker til sidens slutning";
@@ -1454,7 +1454,7 @@ SfxSlotInfo FN_END_OF_PARA_SEL
SlotName[ portuguese ] = "Seleccionar at fim do pargrafo";
SlotName[ russian ] = " ";
SlotName[ dutch ] = "Tot aan einde alinea selecteren";
- SlotName[ french ] = "Slect. jusqu' la fin du paragraphe";
+ SlotName[ french ] = "Slectionner jusqu' la fin du paragraphe";
SlotName[ spanish ] = "Seleccionar hasta final del prrafo";
SlotName[ italian ] = "Seleziona fino alla fine del paragrafo";
SlotName[ danish ] = "Marker til afsnittets slutning";
@@ -1541,7 +1541,7 @@ SfxSlotInfo FN_END_OF_PREV_PAGE_SEL
SlotName[ portuguese ] = "Seleccionar at fim da pgina anterior";
SlotName[ russian ] = " ";
SlotName[ dutch ] = "Tot aan einde vorige pagina selecteren";
- SlotName[ french ] = "Slect. jusqu' la fin de la page prcdente";
+ SlotName[ french ] = "Slectionner jusqu' la fin de la page prcdente";
SlotName[ spanish ] = "Seleccionar hasta el final de la pgina anterior";
SlotName[ italian ] = "Fino alla fine della pagina precedente";
SlotName[ danish ] = "Marker til forrige sides slutning";
@@ -1613,7 +1613,7 @@ SfxSlotInfo FN_ENVELOP
SlotName[ dutch ] = "Envelop invoegen";
SlotName[ chinese_simplified ] = "插入信封";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "편지 봉투 삽입";
+ SlotName[ korean ] = "편지봉투 삽입";
SlotName[ turkish ] = "Zarf ekle";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Insereix un sobre";
@@ -1687,7 +1687,7 @@ SfxSlotInfo FN_EXPAND_GLOSSARY
SlotName[ russian ] = " ";
SlotName[ dutch ] = "AutoTekst-item uitvoeren";
SlotName[ french ] = "Excuter entre AutoTexte";
- SlotName[ spanish ] = "Ejecutar entrada AutoTexto";
+ SlotName[ spanish ] = "Ejecutar entrada Texto automtico";
SlotName[ italian ] = "Esegui digitazione testo automatico";
SlotName[ danish ] = "Udfr Autoekst-element";
SlotName[ swedish ] = "Utfr AutoText-post";
@@ -1700,7 +1700,7 @@ SfxSlotInfo FN_EXPAND_GLOSSARY
SlotName[ dutch ] = "AutoTekst-item uitvoeren";
SlotName[ chinese_simplified ] = "执行自动图文集条目";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "자동 텍스트-입력 실행";
+ SlotName[ korean ] = "자동 텍스트 항목 실행";
SlotName[ turkish ] = "Otomatik metin giriini uygula";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Executa l'entrada de text automtic";
@@ -1771,7 +1771,7 @@ SfxSlotInfo FN_FOOTNOTE_TO_ANCHOR
SlotName [ english ] = "Zu Funote/Anker";
SlotName[ english_us ] = "To Footnote Anchor";
SlotName[ portuguese ] = "Ir para nota de rodap/ncora";
- SlotName[ russian ] = " /";
+ SlotName[ russian ] = " ";
SlotName[ dutch ] = "Naar voetnoot/anker";
SlotName[ french ] = " la note d.b.d. page/l'appel de note";
SlotName[ spanish ] = "Ir a la nota al pie/Ancla";
@@ -1787,7 +1787,7 @@ SfxSlotInfo FN_FOOTNOTE_TO_ANCHOR
SlotName[ dutch ] = "Naar voetnoot/anker";
SlotName[ chinese_simplified ] = "转到注脚/标记";
SlotName[ greek ] = " /";
- SlotName[ korean ] = "각주/고정";
+ SlotName[ korean ] = "각주 기준 위치로";
SlotName[ turkish ] = "Dipnot/sabitleyici";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "A la nota al peu/ncora";
@@ -1832,7 +1832,7 @@ SfxSlotInfo FN_FORMAT_BORDER_DLG
SlotName[ russian ] = "";
SlotName[ dutch ] = "Omranding";
SlotName[ french ] = "Bordure";
- SlotName[ spanish ] = "Borde";
+ SlotName[ spanish ] = "Bordes";
SlotName[ italian ] = "Bordo";
SlotName[ danish ] = "Ramme";
SlotName[ swedish ] = "Inramning";
@@ -1845,7 +1845,7 @@ SfxSlotInfo FN_FORMAT_BORDER_DLG
SlotName[ dutch ] = "Omranding";
SlotName[ chinese_simplified ] = "边框";
SlotName[ greek ] = "";
- SlotName[ korean ] = "외곽선";
+ SlotName[ korean ] = "테두리";
SlotName[ turkish ] = "Kenarlk";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Vores";
@@ -1932,7 +1932,7 @@ SfxSlotInfo FN_FORMAT_FRAME_DLG
SlotName[ dutch ] = "Kadereigenschappen";
SlotName[ chinese_simplified ] = "文本框属性";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "프레임 등록정보";
+ SlotName[ korean ] = "프레임 등록 정보";
SlotName[ turkish ] = "ereve zellikleri";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Propietats del marc";
@@ -1961,7 +1961,7 @@ SfxSlotInfo FN_FORMAT_GRAFIC_DLG
SlotName[ dutch ] = "Afbeelding bewerken";
SlotName[ chinese_simplified ] = "编辑图形";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "그래픽 편집";
+ SlotName[ korean ] = "그림 편집";
SlotName[ turkish ] = "Grafik dzenle";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Edita el grfic";
@@ -2035,7 +2035,7 @@ SfxSlotInfo FN_FORMAT_RESET
SlotName[ russian ] = " ";
SlotName[ dutch ] = "Tekenattributen herstellen";
SlotName[ french ] = "Restaurer les attributs de caractres";
- SlotName[ spanish ] = "Restablecer fuentes";
+ SlotName[ spanish ] = "Restablecer atributos de caracteres";
SlotName[ italian ] = "Ripristina attributi carattere";
SlotName[ danish ] = "Nulstil tegnattributter";
SlotName[ swedish ] = "terstll teckenattribut";
@@ -2123,7 +2123,7 @@ SfxSlotInfo FN_FRAME_ALIGN_HORZ_LEFT
SlotName[ dutch ] = "Links positioneren";
SlotName[ french ] = "Aligner gauche";
SlotName[ spanish ] = "Alinear a la izquierda";
- SlotName[ italian ] = "Disponi a sinistra";
+ SlotName[ italian ] = "Allinea a sinistra";
SlotName[ danish ] = "Placer til venstre";
SlotName[ swedish ] = "Placera till vnster";
SlotName[ polish ] = "Wyrwnaj do lewej";
@@ -2193,7 +2193,7 @@ SfxSlotInfo FN_FRAME_ALIGN_VERT_BOTTOM
SlotName[ dutch ] = "Beneden positioneren";
SlotName[ chinese_simplified ] = "向下对齐";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "아래 맞춤";
+ SlotName[ korean ] = "아래쪽 맞춤";
SlotName[ turkish ] = "Aa hizala";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Alinea a la part inferior";
@@ -2251,7 +2251,7 @@ SfxSlotInfo FN_FRAME_ALIGN_VERT_CHAR_BOTTOM
SlotName[ dutch ] = "Onder aan teken positioneren";
SlotName[ chinese_simplified ] = "向下和字符对齐";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "문자에서 아래 맞춤";
+ SlotName[ korean ] = "문자의 아래쪽으로 맞춤";
SlotName[ turkish ] = "Karakterin alt kenar ile hizala";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Alinea a la part inferior del carcter";
@@ -2309,7 +2309,7 @@ SfxSlotInfo FN_FRAME_ALIGN_VERT_CHAR_TOP
SlotName[ dutch ] = "Boven aan teken positioneren";
SlotName[ chinese_simplified ] = "向上和字符对齐";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "문자에서 위 맞춤";
+ SlotName[ korean ] = "문자의 위로 맞춤";
SlotName[ turkish ] = "Karakterin st kenar ile hizala";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Alinea a la part superior del carcter";
@@ -2338,7 +2338,7 @@ SfxSlotInfo FN_FRAME_ALIGN_VERT_ROW_BOTTOM
SlotName[ dutch ] = "Onder aan regel positioneren";
SlotName[ chinese_simplified ] = "和行下方对齐";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "행에서 아래 맞춤";
+ SlotName[ korean ] = "줄 아래로 맞춤";
SlotName[ turkish ] = "Satrn alt kenar ile hizala";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Alinea a la part inferior de la lnia";
@@ -2367,7 +2367,7 @@ SfxSlotInfo FN_FRAME_ALIGN_VERT_ROW_CENTER
SlotName[ dutch ] = "Verticaal gecentreerd positioneren aan regel";
SlotName[ chinese_simplified ] = "垂直居中和行对齐";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "행에서 수직으로 가운데 맞춤";
+ SlotName[ korean ] = "줄에서 수직으로 가운데 맞춤";
SlotName[ turkish ] = "Satra gre dikey ortalayarak hizala";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Alinea al centre vertical de la lnia";
@@ -2396,7 +2396,7 @@ SfxSlotInfo FN_FRAME_ALIGN_VERT_ROW_TOP
SlotName[ dutch ] = "Boven aan regel positioneren";
SlotName[ chinese_simplified ] = "和行的上方对齐";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "행에서 위 맞춤";
+ SlotName[ korean ] = "줄 위로 맞춤";
SlotName[ turkish ] = "Satrn st kenar ile hizala";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Alinea a la part superior de la lnia";
@@ -2425,7 +2425,7 @@ SfxSlotInfo FN_FRAME_ALIGN_VERT_TOP
SlotName[ dutch ] = "Boven positioneren";
SlotName[ chinese_simplified ] = "向上对齐";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "위 맞춤";
+ SlotName[ korean ] = "위에 맞춤";
SlotName[ turkish ] = "Yukar hizala";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Alinea a la part superior";
@@ -2454,7 +2454,7 @@ SfxSlotInfo FN_FRAME_CHAIN
SlotName[ dutch ] = "Koppelen";
SlotName[ chinese_simplified ] = "连接";
SlotName[ greek ] = "";
- SlotName[ korean ] = "연결";
+ SlotName[ korean ] = "링크 프레임";
SlotName[ turkish ] = "Bala";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Enllaa els marcs";
@@ -2483,7 +2483,7 @@ SfxSlotInfo FN_FRAME_DOWN
SlotName[ dutch ] = "Naar achteren";
SlotName[ chinese_simplified ] = "向后";
SlotName[ greek ] = "";
- SlotName[ korean ] = "뒤로";
+ SlotName[ korean ] = "뒤로 보내기";
SlotName[ turkish ] = "Geriye gnder";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Envia cap enrere";
@@ -2541,7 +2541,7 @@ SfxSlotInfo FN_FRAME_NOWRAP
SlotName[ dutch ] = "Omloop uit";
SlotName[ chinese_simplified ] = "不使用环绕";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "문자열 배치, 해제";
+ SlotName[ korean ] = "문장 배치 해제";
SlotName[ turkish ] = "Metin dalm kapal";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Desactiva l'ajustament";
@@ -2556,7 +2556,7 @@ SfxSlotInfo FN_FRAME_TO_ANCHOR
SlotName[ portuguese ] = "Colocar cursor sobre a ncora";
SlotName[ russian ] = " ";
SlotName[ dutch ] = "Zet cursor op anker";
- SlotName[ french ] = "Positionne curseur sur l'ancre";
+ SlotName[ french ] = "Curseur sur l'ancre";
SlotName[ spanish ] = "Colocar cursor sobre ancla";
SlotName[ italian ] = "Porta cursore all'ancoraggio";
SlotName[ danish ] = "St markr p anker";
@@ -2570,7 +2570,7 @@ SfxSlotInfo FN_FRAME_TO_ANCHOR
SlotName[ dutch ] = "Zet cursor op anker";
SlotName[ chinese_simplified ] = "置光标于标记处";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "커서 고정 설정";
+ SlotName[ korean ] = "커서 기준 위치 설정";
SlotName[ turkish ] = "mleci, sabitleyici zerine yerletir";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Situa el cursor sobre l'ncora";
@@ -2586,7 +2586,7 @@ SfxSlotInfo FN_FRAME_UNCHAIN
SlotName[ russian ] = " ";
SlotName[ dutch ] = "Koppeling verwijderen";
SlotName[ french ] = "Annuler l'enchanement";
- SlotName[ spanish ] = "Eliminar vnculo";
+ SlotName[ spanish ] = "Suprimir encadenamiento";
SlotName[ italian ] = "Annulla concatenazione";
SlotName[ danish ] = "Ophv kder";
SlotName[ swedish ] = "Ls upp lnkning";
@@ -2599,7 +2599,7 @@ SfxSlotInfo FN_FRAME_UNCHAIN
SlotName[ dutch ] = "Koppeling verwijderen";
SlotName[ chinese_simplified ] = "解开连接";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "연결 중단";
+ SlotName[ korean ] = "프레임 연결 해제";
SlotName[ turkish ] = "Balamay z";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Desenllaa els marcs";
@@ -2657,7 +2657,7 @@ SfxSlotInfo FN_FRAME_WRAP
SlotName[ dutch ] = "Omloop in";
SlotName[ chinese_simplified ] = "使用环绕";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "문자열 배치, 적용";
+ SlotName[ korean ] = "문장 배치 적용";
SlotName[ turkish ] = "Metin dalm ak";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Activa l'ajustament";
@@ -2670,7 +2670,7 @@ SfxSlotInfo FN_FRAME_WRAP_CONTOUR
SlotName [ english ] = "Konturumlauf ein";
SlotName[ english_us ] = "Wrap Contour On";
SlotName[ portuguese ] = "Activar contornos";
- SlotName[ russian ] = ". ";
+ SlotName[ russian ] = " ";
SlotName[ dutch ] = "Contouromloop aan";
SlotName[ french ] = "Mode Contour";
SlotName[ spanish ] = "Contorno";
@@ -2686,7 +2686,7 @@ SfxSlotInfo FN_FRAME_WRAP_CONTOUR
SlotName[ dutch ] = "Contouromloop aan";
SlotName[ chinese_simplified ] = "显示轮廓环绕";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "윤곽 순환 적용";
+ SlotName[ korean ] = "윤곽 배치 적용";
SlotName[ turkish ] = "Kontur ak";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Activa el contorn";
@@ -2699,7 +2699,7 @@ SfxSlotInfo FN_FRAME_WRAP_IDEAL
SlotName [ english ] = "Umlauf dynamisch";
SlotName[ english_us ] = "Wrap Optimal";
SlotName[ portuguese ] = "Ajuste dinmico";
- SlotName[ russian ] = " ";
+ SlotName[ russian ] = " ";
SlotName[ dutch ] = "Omloop dynamisch";
SlotName[ french ] = "Adaptation dynamique";
SlotName[ spanish ] = "Ajuste dinmico";
@@ -2716,7 +2716,7 @@ SfxSlotInfo FN_FRAME_WRAP_IDEAL
SlotName[ chinese_simplified ] = "最佳环绕";
SlotName[ language_user1 ] = " ";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "순환, 최적";
+ SlotName[ korean ] = "최적으로 문장 배치";
SlotName[ turkish ] = "Dinamik metin dalm";
SlotName[ catalan ] = "Ajustament ptim";
SlotName[ finnish ] = "Optimaalinen rivitys";
@@ -2744,7 +2744,7 @@ SfxSlotInfo FN_FRAME_WRAP_LEFT
SlotName[ dutch ] = "Omloop links";
SlotName[ chinese_simplified ] = "左向环绕";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "순환, 왼쪽";
+ SlotName[ korean ] = "문장 배치 왼쪽";
SlotName[ turkish ] = "Sol metin dalm";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Ajusta a l'esquerra";
@@ -2773,7 +2773,7 @@ SfxSlotInfo FN_FRAME_WRAP_RIGHT
SlotName[ dutch ] = "Omloop rechts";
SlotName[ chinese_simplified ] = "右向环绕";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "순환, 오른쪽";
+ SlotName[ korean ] = "문장 배치 오른쪽";
SlotName[ turkish ] = "Sa metin dalm";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Ajusta a la dreta";
@@ -2802,7 +2802,7 @@ SfxSlotInfo FN_FRAME_WRAPTHRU
SlotName[ dutch ] = "Doorloop";
SlotName[ chinese_simplified ] = "贯穿";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "문장흐르기";
+ SlotName[ korean ] = "배치 없음";
SlotName[ turkish ] = "Metin arkasna gnder";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Ajustament a travs de";
@@ -2821,7 +2821,7 @@ SfxSlotInfo FN_FRAME_WRAPTHRU_TRANSP
SlotName[ spanish ] = "Continuo transparente";
SlotName[ italian ] = "Attraversa trasparente";
SlotName[ danish ] = "Transparent gennemgende";
- SlotName[ swedish ] = "Tranparent textgenomflde";
+ SlotName[ swedish ] = "Transparent textgenomflde";
SlotName[ polish ] = "Przeroczysty przepyw tekstu";
SlotName[ portuguese_brazilian ] = "FrameWrapThroughTransparent";
SlotName[ japanese ] = "背景として";
@@ -2831,7 +2831,7 @@ SfxSlotInfo FN_FRAME_WRAPTHRU_TRANSP
SlotName[ dutch ] = "Doorloop transparant";
SlotName[ chinese_simplified ] = "透明贯穿";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "문장흐르기, 투명";
+ SlotName[ korean ] = "배경으로";
SlotName[ turkish ] = "Metin arkasna gnder (saydam)";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Ajustament transparent";
@@ -2847,7 +2847,7 @@ SfxSlotInfo FN_GLOSSARY_DLG
SlotName[ russian ] = "";
SlotName[ dutch ] = "AutoTekst bewerken";
SlotName[ french ] = "diter l'AutoTexte";
- SlotName[ spanish ] = "Editar AutoTexto";
+ SlotName[ spanish ] = "Editar Texto automtico";
SlotName[ italian ] = "Modifica testo automatico";
SlotName[ danish ] = "Rediger AutoTekst";
SlotName[ swedish ] = "Redigera AutoText";
@@ -2860,7 +2860,7 @@ SfxSlotInfo FN_GLOSSARY_DLG
SlotName[ dutch ] = "AutoTekst bewerken";
SlotName[ chinese_simplified ] = "编辑自动图文集";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "자동텍스트 편집";
+ SlotName[ korean ] = "자동 텍스트 편집";
SlotName[ turkish ] = "Otomatik metni dzenle";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Edita el text automtic";
@@ -2889,7 +2889,7 @@ SfxSlotInfo FN_GOTO_NEXT_INPUTFLD
SlotName[ dutch ] = "Naar volgend invoerveld";
SlotName[ chinese_simplified ] = "转到下一个输入字段";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "다음 입력필드로";
+ SlotName[ korean ] = "다음 입력 필드로";
SlotName[ turkish ] = "Sonraki giri alan";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Al camp d'entrada segent";
@@ -2918,7 +2918,7 @@ SfxSlotInfo FN_GOTO_NEXT_MARK
SlotName[ dutch ] = "Naar volgende plaatsvervanger";
SlotName[ chinese_simplified ] = "转到下一个通配符";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "다음 와일드카드로";
+ SlotName[ korean ] = "다음 플레이스홀더로";
SlotName[ turkish ] = "Sonraki genel arama karakteri";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Al marcador segent";
@@ -2963,7 +2963,7 @@ SfxSlotInfo FN_GOTO_NEXT_REGION
SlotName[ russian ] = " ";
SlotName[ dutch ] = "Naar volgend bereik";
SlotName[ french ] = " la section suivante";
- SlotName[ spanish ] = "Al rea siguiente";
+ SlotName[ spanish ] = "Ir a la seccin siguiente";
SlotName[ italian ] = "All'area successiva";
SlotName[ danish ] = "Til nste omrde";
SlotName[ swedish ] = "Till nsta omrde";
@@ -2976,7 +2976,7 @@ SfxSlotInfo FN_GOTO_NEXT_REGION
SlotName[ dutch ] = "Naar volgend bereik";
SlotName[ chinese_simplified ] = "转到下一区域";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "다음 영역으로";
+ SlotName[ korean ] = "다음 구역으로";
SlotName[ turkish ] = "Sonraki blm";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "A la secci segent";
@@ -3005,7 +3005,7 @@ SfxSlotInfo FN_GOTO_PREV_INPUTFLD
SlotName[ dutch ] = "Naar vorig invoerveld";
SlotName[ chinese_simplified ] = "转到上一个输入字段";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "이전 입력필드로";
+ SlotName[ korean ] = "이전 입력 필드로";
SlotName[ turkish ] = "nceki giri alan";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Al camp d'entrada anterior";
@@ -3034,7 +3034,7 @@ SfxSlotInfo FN_GOTO_PREV_MARK
SlotName[ dutch ] = "Naar vorige plaatsvervanger";
SlotName[ chinese_simplified ] = "转到上一个通配符";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "이전 플레이스홀더로";
+ SlotName[ korean ] = "이전 플레이스홀더로";
SlotName[ turkish ] = "nceki genel arama karakteri";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Al marcador anterior";
@@ -3079,7 +3079,7 @@ SfxSlotInfo FN_GOTO_PREV_REGION
SlotName[ russian ] = " ";
SlotName[ dutch ] = "Naar vorige bereik";
SlotName[ french ] = " la section prcdente";
- SlotName[ spanish ] = "Ir al rea anterior";
+ SlotName[ spanish ] = "Ir a la seccin anterior";
SlotName[ italian ] = "All'area precedente";
SlotName[ danish ] = "Til forrige omrde";
SlotName[ swedish ] = "Till fregende omrde";
@@ -3092,7 +3092,7 @@ SfxSlotInfo FN_GOTO_PREV_REGION
SlotName[ dutch ] = "Naar vorige bereik";
SlotName[ chinese_simplified ] = "转到上一个区域";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "이전 영역으로";
+ SlotName[ korean ] = "이전 구역으로";
SlotName[ turkish ] = "nceki alan";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "A la secci anterior";
@@ -3151,7 +3151,7 @@ SfxSlotInfo FN_GRAPHIC_MIRROR_ON_EVEN_PAGES
SlotName[ chinese_simplified ] = "图形翻转到偶数页面";
SlotName[ language_user1 ] = " ";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "짝수 페이지상의 그래픽 대칭";
+ SlotName[ korean ] = "그림을 짝수 페이지에 반전";
SlotName[ turkish ] = "Grafii ift sayl sayfalarda yanst";
SlotName[ catalan ] = "Inverteix els grfics de les pgines parells";
SlotName[ finnish ] = "Knn grafiikka parillisilla sivuilla";
@@ -3237,7 +3237,7 @@ SfxSlotInfo FN_HYPHENATE_OPT_DLG
SlotName[ dutch ] = "Woordafbreking";
SlotName[ chinese_simplified ] = "连字符";
SlotName[ greek ] = "";
- SlotName[ korean ] = "하이픈";
+ SlotName[ korean ] = "하이픈 넣기";
SlotName[ turkish ] = "Heceleme";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Partici de mots";
@@ -3527,7 +3527,7 @@ SfxSlotInfo FN_INSERT_FIELD
SlotName[ dutch ] = "Dialoogvenster voor veldopdrachten";
SlotName[ chinese_simplified ] = "字段指令对话框";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "필드 명령어 대화상자";
+ SlotName[ korean ] = "필드 대화상자";
SlotName[ turkish ] = "Alan esi ekle";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Dileg Camps";
@@ -3556,7 +3556,7 @@ SfxSlotInfo FN_INSERT_FIELD_CTRL
SlotName[ dutch ] = "Veldopdrachten invoegen";
SlotName[ chinese_simplified ] = "插入字段指令";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "필드명령 삽입";
+ SlotName[ korean ] = "필드 삽입";
SlotName[ turkish ] = "Alan eleri ekle";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Insereix camps";
@@ -3572,7 +3572,7 @@ SfxSlotInfo FN_INSERT_FLD_AUTHOR
SlotName[ russian ] = " ";
SlotName[ dutch ] = "Auteursveld invoegen";
SlotName[ french ] = "Insrer un champ d'auteur";
- SlotName[ spanish ] = "Insertar campo para autor";
+ SlotName[ spanish ] = "Insertar campo del autor";
SlotName[ italian ] = "Inserisci campo autore";
SlotName[ danish ] = "Indst forfatterfelt";
SlotName[ swedish ] = "Infoga frfattarflt";
@@ -3585,7 +3585,7 @@ SfxSlotInfo FN_INSERT_FLD_AUTHOR
SlotName[ dutch ] = "Auteursveld invoegen";
SlotName[ chinese_simplified ] = "插入作者字段";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "만든이 필드 삽입";
+ SlotName[ korean ] = "작성자 필드 삽입";
SlotName[ turkish ] = "Yazan ad alan ekle";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Insereix el camp Autor";
@@ -3746,7 +3746,7 @@ SfxSlotInfo FN_INSERT_FLD_TOPIC
SlotName[ russian ] = " ";
SlotName[ dutch ] = "Onderwerp invoegen";
SlotName[ french ] = "Insrer l'objet";
- SlotName[ spanish ] = "Insertar tema";
+ SlotName[ spanish ] = "Insertar el asunto";
SlotName[ italian ] = "Inserisci argomento";
SlotName[ danish ] = "Indst emne";
SlotName[ swedish ] = "Infoga mne";
@@ -3899,7 +3899,7 @@ SfxSlotInfo FN_INSERT_FRAME_INTERACT_NOCOL
SlotName[ polish ] = "Wstaw rcznie ramk z jedn kolumn";
SlotName[ portuguese_brazilian ] = "Insert single column frame manually";
SlotName[ japanese ] = "1段の枠を手動挿入";
- SlotName[ korean ] = "1열 프레임 수동으로 삽입";
+ SlotName[ korean ] = "한 단의 프레임을 수동으로 삽입";
SlotName[ chinese_simplified ] = "手工插入单栏式框";
SlotName[ chinese_traditional ] = "手動插入單欄文字框。";
SlotName[ turkish ] = "Insert single column frame manually";
@@ -3930,7 +3930,7 @@ SfxSlotInfo FN_INSERT_FRAME_INTERACT
SlotName[ dutch ] = "Kader handmatig invoegen";
SlotName[ chinese_simplified ] = "手工插入框";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "프레임 수동 삽입";
+ SlotName[ korean ] = "프레임을 수동으로 삽입";
SlotName[ turkish ] = "ereveyi manuel olarak ekle";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Insereix un marc manualment";
@@ -3959,7 +3959,7 @@ SfxSlotInfo FN_INSERT_HARD_SPACE
SlotName[ dutch ] = "Harde spatie invoegen";
SlotName[ chinese_simplified ] = "插入保护的空格字符";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "보호된 공백 삽입";
+ SlotName[ korean ] = "줄 바꿈하지 않는 공백 삽입";
SlotName[ turkish ] = "Blnemez boluk ekle";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Insereix un espai no separable";
@@ -3988,7 +3988,7 @@ SfxSlotInfo FN_INSERT_HARDHYPHEN
SlotName[ dutch ] = "Vast scheidingsteken invoegen";
SlotName[ chinese_simplified ] = "插入连字符";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "고정 하이픈 삽입";
+ SlotName[ korean ] = "줄 바꿈하지 않는 하이픈 삽입";
SlotName[ turkish ] = "Blnemez tire ekle";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Insereix un guionet no separable";
@@ -4033,7 +4033,7 @@ SfxSlotInfo FN_INSERT_HRULER
SlotName[ russian ] = " ";
SlotName[ dutch ] = "Horizontale lijn invoegen";
SlotName[ french ] = "Insrer une ligne horizontale";
- SlotName[ spanish ] = "Insertar lneas horizontales";
+ SlotName[ spanish ] = "Insertar regla horizontal";
SlotName[ italian ] = "Inserisci linea orizzontale";
SlotName[ danish ] = "Indst vandret linje";
SlotName[ swedish ] = "Infoga horisontell linje";
@@ -4046,7 +4046,7 @@ SfxSlotInfo FN_INSERT_HRULER
SlotName[ dutch ] = "Horizontale lijn invoegen";
SlotName[ chinese_simplified ] = "插入水平线";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "수평 선 삽입";
+ SlotName[ korean ] = "가로 눈금자 삽입";
SlotName[ turkish ] = "Yatay ayrma izgisi ekle";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Insereix una lnia horitzontal";
@@ -4087,7 +4087,7 @@ SfxSlotInfo FN_INSERT_IDX_ENTRY_DLG
SlotName [ english ] = "Indexmarkierung einfgen";
SlotName[ english_us ] = "Insert Index Marker";
SlotName[ portuguese ] = "Inserir marcador do ndice";
- SlotName[ russian ] = " ";
+ SlotName[ russian ] = " ";
SlotName[ dutch ] = "Indexmarkering invoegen";
SlotName[ french ] = "Insrer une marque d'index";
SlotName[ spanish ] = "Insertar marca en el ndice";
@@ -4103,7 +4103,7 @@ SfxSlotInfo FN_INSERT_IDX_ENTRY_DLG
SlotName[ dutch ] = "Indexmarkering invoegen";
SlotName[ chinese_simplified ] = "插入索引标记";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "색인 마크 삽입";
+ SlotName[ korean ] = "색인 표시자 삽입";
SlotName[ turkish ] = "Dizin belirteci ekle";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Insereix un marcador de l'ndex";
@@ -4132,7 +4132,7 @@ SfxSlotInfo FN_INSERT_LINEBREAK
SlotName[ dutch ] = "Handmatig regeleinde invoegen";
SlotName[ chinese_simplified ] = "手工插入换行符";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "수동으로 줄 나누기 삽입";
+ SlotName[ korean ] = "수동으로 행 나누기 삽입";
SlotName[ turkish ] = "Manel satr sonu ekle";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Insereix un salt de lnia manual";
@@ -4290,7 +4290,7 @@ SfxSlotInfo FN_INSERT_REF_FIELD
SlotName[ russian ] = " ";
SlotName[ dutch ] = "Kruisverwijzing invoegen";
SlotName[ french ] = "Insrer un renvoi";
- SlotName[ spanish ] = "Insertar campo referencia";
+ SlotName[ spanish ] = "Insertar referencia";
SlotName[ italian ] = "Inserisci riferimento incrociato";
SlotName[ danish ] = "Indst krydshenvisning";
SlotName[ swedish ] = "Infoga korshnvisning";
@@ -4303,7 +4303,7 @@ SfxSlotInfo FN_INSERT_REF_FIELD
SlotName[ dutch ] = "Kruisverwijzing invoegen";
SlotName[ chinese_simplified ] = "插入参照";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "상호참조 삽입";
+ SlotName[ korean ] = "상호 참조 삽입";
SlotName[ turkish ] = "apraz bavuru alan ekle";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Insereix la referncia del camp";
@@ -4319,7 +4319,7 @@ SfxSlotInfo FN_INSERT_REGION
SlotName[ russian ] = " ";
SlotName[ dutch ] = "Bereik invoegen";
SlotName[ french ] = "Insrer une section";
- SlotName[ spanish ] = "Insertar rea";
+ SlotName[ spanish ] = "Insertar una seccin";
SlotName[ italian ] = "Inserisci area";
SlotName[ danish ] = "Indst omrde";
SlotName[ swedish ] = "Infoga omrde";
@@ -4332,7 +4332,7 @@ SfxSlotInfo FN_INSERT_REGION
SlotName[ dutch ] = "Bereik invoegen";
SlotName[ chinese_simplified ] = "插入区域";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "영역 삽입";
+ SlotName[ korean ] = "구역 삽입";
SlotName[ turkish ] = "Blm ekle";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Insereix una secci";
@@ -4348,7 +4348,7 @@ SfxSlotInfo FN_INSERT_SMA
SlotName[ russian ] = " %PRODUCTNAME Math";
SlotName[ dutch ] = "%PRODUCTNAME Math Object invoegen";
SlotName[ french ] = "Insrer un objet %PRODUCTNAME Math";
- SlotName[ spanish ] = "Insertar objeto %PRODUCTNAME Math";
+ SlotName[ spanish ] = "Insertar objeto de %PRODUCTNAME Math";
SlotName[ italian ] = "Inserisci oggetto %PRODUCTNAME Math";
SlotName[ danish ] = "Indst %PRODUCTNAME Math-objekt";
SlotName[ swedish ] = "Infoga %PRODUCTNAME Math-objekt";
@@ -4448,7 +4448,7 @@ SfxSlotInfo FN_INSERT_TABLE
SlotName[ dutch ] = "Tabel invoegen";
SlotName[ chinese_simplified ] = "插入表格";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "시트 삽입";
+ SlotName[ korean ] = "표 삽입";
SlotName[ turkish ] = "Tablo ekle";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Insereix una taula";
@@ -4490,7 +4490,7 @@ SfxSlotInfo FN_LABEL
SlotName [ english ] = "Etiketten einfgen";
SlotName[ english_us ] = "Insert Labels";
SlotName[ portuguese ] = "Inserir rtulos";
- SlotName[ russian ] = " ";
+ SlotName[ russian ] = " ";
SlotName[ dutch ] = "Etiketten invoegen";
SlotName[ french ] = "Insrer des tiquettes";
SlotName[ spanish ] = "Insertar etiquetas";
@@ -4506,7 +4506,7 @@ SfxSlotInfo FN_LABEL
SlotName[ dutch ] = "Etiketten invoegen";
SlotName[ chinese_simplified ] = "插入标签";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "라벨 삽입";
+ SlotName[ korean ] = "레이블 삽입";
SlotName[ turkish ] = "Etiket ekle";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Insereix etiquetes";
@@ -4577,7 +4577,7 @@ SfxSlotInfo FN_LINE_DOWN_SEL
SlotName[ portuguese ] = "Seleccionar at linha inferior";
SlotName[ russian ] = " ";
SlotName[ dutch ] = "Tot aan regel beneden selecteren";
- SlotName[ french ] = "Slect. vers le bas";
+ SlotName[ french ] = "Slectionner jusqu' la ligne infrieure";
SlotName[ spanish ] = "Seleccionar hasta la lnea de abajo";
SlotName[ italian ] = "Seleziona fino alla riga in basso";
SlotName[ danish ] = "Marker til rkke forneden";
@@ -4591,7 +4591,7 @@ SfxSlotInfo FN_LINE_DOWN_SEL
SlotName[ dutch ] = "Tot aan regel beneden selecteren";
SlotName[ chinese_simplified ] = "选择至行下方";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "아래 행까지 선택";
+ SlotName[ korean ] = "줄 아래까지 선택";
SlotName[ turkish ] = "Alttaki satra kadar se";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Selecciona cap avall";
@@ -4620,7 +4620,7 @@ SfxSlotInfo FN_LINE_NUMBERING_DLG
SlotName[ dutch ] = "Regelnummering instellen";
SlotName[ chinese_simplified ] = "设定行编号";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "행 번호 매기기 설정";
+ SlotName[ korean ] = "줄 번호 매기기 설정";
SlotName[ turkish ] = "Satr numaralarn ayarla";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Defineix la numeraci de lnies";
@@ -4649,7 +4649,7 @@ SfxSlotInfo FN_LINE_UP
SlotName[ dutch ] = "Naar regel boven";
SlotName[ chinese_simplified ] = "转到行上方";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "위 행으로";
+ SlotName[ korean ] = "위 줄로";
SlotName[ turkish ] = "sttteki satr";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "A la lnia superior";
@@ -4664,7 +4664,7 @@ SfxSlotInfo FN_LINE_UP_SEL
SlotName[ portuguese ] = "Seleccionar at linha superior";
SlotName[ russian ] = " ";
SlotName[ dutch ] = "Tot aan bovenste regel selecteren";
- SlotName[ french ] = "Slect. jusqu' la ligne suprieure";
+ SlotName[ french ] = "Slectionner jusqu' la ligne suprieure";
SlotName[ spanish ] = "Seleccionar hasta lnea de arriba";
SlotName[ italian ] = "Seleziona fino alla riga superiore";
SlotName[ danish ] = "Marker til rkke foroven";
@@ -4678,7 +4678,7 @@ SfxSlotInfo FN_LINE_UP_SEL
SlotName[ dutch ] = "Tot aan bovenste regel selecteren";
SlotName[ chinese_simplified ] = "选择至行的上方";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "위 행까지 선택";
+ SlotName[ korean ] = "줄 위까지 선택";
SlotName[ turkish ] = "stteki satra kadar ekle";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Selecciona fins a la lnia superior";
@@ -4722,7 +4722,7 @@ SfxSlotInfo FN_NEW_GLOBAL_DOC
SlotName[ portuguese ] = "Criar documento-mestre";
SlotName[ russian ] = " ";
SlotName[ dutch ] = "Masterdocument maken";
- SlotName[ french ] = "Crer document matre";
+ SlotName[ french ] = "Crer un document matre";
SlotName[ spanish ] = "Crear un documento maestro";
SlotName[ italian ] = "Crea documento master";
SlotName[ danish ] = "Opret hoveddokument";
@@ -4749,7 +4749,7 @@ SfxSlotInfo FN_NEW_HTML_DOC
SlotName [ english ] = "HTML Dokument erzeugen";
SlotName[ english_us ] = "Create HTML Document";
SlotName[ portuguese ] = "Criar documento HTML";
- SlotName[ russian ] = " HTML-";
+ SlotName[ russian ] = " -";
SlotName[ dutch ] = "HTML-document maken";
SlotName[ french ] = "Crer un document HTML";
SlotName[ spanish ] = "Crear documento HTML";
@@ -4896,7 +4896,7 @@ SfxSlotInfo FN_NEXT_SENT_SEL
SlotName[ portuguese ] = "Seleccionar at frase seguinte";
SlotName[ russian ] = " ";
SlotName[ dutch ] = "Tot aan volgende zin selecteren";
- SlotName[ french ] = "Slect. jusqu' la phrase suivante";
+ SlotName[ french ] = "Slectionner jusqu' la phrase suivante";
SlotName[ spanish ] = "Seleccionar hasta frase siguiente";
SlotName[ italian ] = "Seleziona fino alla frase successiva";
SlotName[ danish ] = "Marker til nste stning";
@@ -4997,7 +4997,7 @@ SfxSlotInfo FN_NEXT_TBLFML_ERR
SlotName[ dutch ] = "Naar volgende foutieve tabelformule";
SlotName[ chinese_simplified ] = "转到下一个有错误的工作表公式";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "다음 틀린 표 수식으로";
+ SlotName[ korean ] = "다음 잘못된 표 수식으로";
SlotName[ turkish ] = "Sonraki hatal tablo formul";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Vs a la frmula defectuosa segent de la taula";
@@ -5070,7 +5070,7 @@ SfxSlotInfo FN_NEXT_WORD_SEL
SlotName[ portuguese ] = "Seleccionar at ao final da palavra";
SlotName[ russian ] = " ";
SlotName[ dutch ] = "Tot aan woord rechts selecteren";
- SlotName[ french ] = "Slect. jusqu'au mot droite";
+ SlotName[ french ] = "Slectionner jusqu'au mot droite";
SlotName[ spanish ] = "Seleccionar hasta el final de la palabra";
SlotName[ italian ] = "Seleziona fino alla parola destra";
SlotName[ danish ] = "Marker til ordet til hjre";
@@ -5084,7 +5084,7 @@ SfxSlotInfo FN_NEXT_WORD_SEL
SlotName[ dutch ] = "Tot aan woord rechts selecteren";
SlotName[ chinese_simplified ] = "选择至字的右方";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "오른쪽 단어까지 선택";
+ SlotName[ korean ] = "단어의 오른쪽까지 선택";
SlotName[ turkish ] = "Sadaki szce kadar se";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Selecciona fins al final de la paraula";
@@ -5142,7 +5142,7 @@ SfxSlotInfo FN_NUM_BULLET_MOVEDOWN
SlotName[ dutch ] = "Naar beneden verplaatsen";
SlotName[ chinese_simplified ] = "向下移动";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "아래로 이동";
+ SlotName[ korean ] = "아래로";
SlotName[ turkish ] = "Aa ta";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Mou cap avall";
@@ -5287,7 +5287,7 @@ SfxSlotInfo FN_NUM_BULLET_OUTLINE_DOWN
SlotName[ dutch ] = "Met subniveaus naar beneden";
SlotName[ chinese_simplified ] = "连同分级向下";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "아래로, 아래점 포함";
+ SlotName[ korean ] = "하위 수준 포함 아래로 이동";
SlotName[ turkish ] = "Alt noktalar ile aa ta";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Desplaa cap avall amb els subpunts";
@@ -5316,7 +5316,7 @@ SfxSlotInfo FN_NUM_BULLET_OUTLINE_MOVEDOWN
SlotName[ dutch ] = "Met subniveaus naar beneden verplaatsen";
SlotName[ chinese_simplified ] = "连同分级向下移动";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "아래로 이동, 아래점 포함";
+ SlotName[ korean ] = "하위 수준 포함 아래로 이동";
SlotName[ turkish ] = "Alt noktalar ile aa ta";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Mou cap avall amb els subpunts";
@@ -5345,7 +5345,7 @@ SfxSlotInfo FN_NUM_BULLET_OUTLINE_MOVEUP
SlotName[ dutch ] = "Met subniveaus naar boven verplaatsen";
SlotName[ chinese_simplified ] = "连同分级向上移动";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "위로 이동, 아래점 포함";
+ SlotName[ korean ] = "하위 수준 포함 위로 이동";
SlotName[ turkish ] = "Alt noktalar ile yukarya ta";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Mou cap amunt amb els subpunts";
@@ -5374,7 +5374,7 @@ SfxSlotInfo FN_NUM_BULLET_OUTLINE_UP
SlotName[ dutch ] = "Met subniveaus naar boven";
SlotName[ chinese_simplified ] = "连同分级向上";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "위로, 아래점 포함";
+ SlotName[ korean ] = "하위 수준 포함 위로 이동";
SlotName[ turkish ] = "Alt noktalar ile yukarya ta";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Desplaa cap amunt amb els subpunts";
@@ -5447,7 +5447,7 @@ SfxSlotInfo FN_NUM_FORMAT_TABLE_DLG
SlotName[ portuguese ] = "Editar formato numrico";
SlotName[ russian ] = " ";
SlotName[ dutch ] = "Getalnotatie bewerken";
- SlotName[ french ] = "Modifier le format numrique";
+ SlotName[ french ] = "diter le format numrique";
SlotName[ spanish ] = "Editar formato de nmeros";
SlotName[ italian ] = "Modifica formato numero";
SlotName[ danish ] = "Rediger talformat";
@@ -5461,7 +5461,7 @@ SfxSlotInfo FN_NUM_FORMAT_TABLE_DLG
SlotName[ dutch ] = "Getalnotatie bewerken";
SlotName[ chinese_simplified ] = "编辑数字格式";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "숫자 형식 편집";
+ SlotName[ korean ] = "숫자 표기 형식 편집";
SlotName[ turkish ] = "Say formatn dzenle";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Edita el format del nmero";
@@ -5490,7 +5490,7 @@ SfxSlotInfo FN_NUM_OR_NONUM
SlotName[ dutch ] = "Nummering aan/uit";
SlotName[ chinese_simplified ] = "显示/隐入编号";
SlotName[ greek ] = " /";
- SlotName[ korean ] = "번호 매기기 적용/적용 안함";
+ SlotName[ korean ] = "번호 매기기 적용/해제";
SlotName[ turkish ] = "Numaralama ak/kapal";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Numeraci activada/desactivada";
@@ -5548,7 +5548,7 @@ SfxSlotInfo FN_NUMBER_CURRENCY
SlotName[ dutch ] = "Getalnotatie: valuta";
SlotName[ chinese_simplified ] = "数字格式:货币";
SlotName[ greek ] = " : ";
- SlotName[ korean ] = "숫자 형식: 통화";
+ SlotName[ korean ] = "숫자 표기 형식: 통화";
SlotName[ turkish ] = "Say format: Para birimi";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Format numric: moneda";
@@ -5577,7 +5577,7 @@ SfxSlotInfo FN_NUMBER_DATE
SlotName[ dutch ] = "Getalnotatie: datum";
SlotName[ chinese_simplified ] = "数字格式:日期";
SlotName[ greek ] = " : ";
- SlotName[ korean ] = "숫자 형식: 날짜";
+ SlotName[ korean ] = "숫자 표기 형식: 날짜";
SlotName[ turkish ] = "Say format: Tarih";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Format numric : data";
@@ -5635,7 +5635,7 @@ SfxSlotInfo FN_NUMBER_PERCENT
SlotName[ dutch ] = "Getalnotatie: procent";
SlotName[ chinese_simplified ] = "数字格式:百分比";
SlotName[ greek ] = " : ";
- SlotName[ korean ] = "숫자 형식: 백분율";
+ SlotName[ korean ] = "숫자 표기 형식: 백분율";
SlotName[ turkish ] = "Say format: Yzde";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Format numric: percentatge";
@@ -5664,7 +5664,7 @@ SfxSlotInfo FN_NUMBER_SCIENTIFIC
SlotName[ dutch ] = "Getalnotatie: exponentieel";
SlotName[ chinese_simplified ] = "数字格式:指数";
SlotName[ greek ] = " : ";
- SlotName[ korean ] = "숫자 형식: 지수";
+ SlotName[ korean ] = "숫자 표기 형식: 지수";
SlotName[ turkish ] = "Say format: stel";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Format numric: exponencial";
@@ -5681,7 +5681,7 @@ SfxSlotInfo FN_NUMBER_STANDARD
SlotName[ russian ] = " : ";
SlotName[ dutch ] = "Getalnotatie: standaard";
SlotName[ french ] = "Format numrique : standard";
- SlotName[ spanish ] = "Formato numrico: Predeterminado";
+ SlotName[ spanish ] = "Formato numrico: predeterminado";
SlotName[ italian ] = "Formato numero: standard";
SlotName[ danish ] = "Talformat: standard";
SlotName[ swedish ] = "Talformat: standard";
@@ -5694,7 +5694,7 @@ SfxSlotInfo FN_NUMBER_STANDARD
SlotName[ dutch ] = "Getalnotatie: standaard";
SlotName[ chinese_simplified ] = "数字格式:标准";
SlotName[ greek ] = " : ";
- SlotName[ korean ] = "숫자 형식: 표준";
+ SlotName[ korean ] = "숫자 표기 형식: 표준";
SlotName[ turkish ] = "Say format: Standart";
SlotName[ catalan ] = "Format numric: estndard";
SlotName[ finnish ] = "Lukumuoto: Vakio";
@@ -5722,7 +5722,7 @@ SfxSlotInfo FN_NUMBER_TIME
SlotName[ dutch ] = "Getalnotatie: tijd";
SlotName[ chinese_simplified ] = "数字格式:时间";
SlotName[ greek ] = " : ";
- SlotName[ korean ] = "숫자 형식: 시간";
+ SlotName[ korean ] = "숫자 표기 형식: 시간";
SlotName[ turkish ] = "Say format: Saat";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Format numric: hora";
@@ -5737,7 +5737,7 @@ SfxSlotInfo FN_NUMBER_TWODEC
SlotName[ portuguese ] = "Formato numrico: decimal";
SlotName[ russian ] = " : ";
SlotName[ dutch ] = "Getalnotatie: decimaal";
- SlotName[ french ] = "Format numrique : dcimal";
+ SlotName[ french ] = "Format numrique : dcimale";
SlotName[ spanish ] = "Formato numrico: Decimal";
SlotName[ italian ] = "Formato numero: decimale";
SlotName[ danish ] = "Talformat: decimal";
@@ -5752,7 +5752,7 @@ SfxSlotInfo FN_NUMBER_TWODEC
SlotName[ chinese_simplified ] = "数字格式:十进制";
SlotName[ language_user1 ] = " ";
SlotName[ greek ] = " : ";
- SlotName[ korean ] = "숫자 형식: 소수";
+ SlotName[ korean ] = "숫자 표기 형식: 소수";
SlotName[ turkish ] = "Say format: Ondalk";
SlotName[ catalan ] = "Format numric: decimal";
SlotName[ finnish ] = "Lukumuoto: Desimaali";
@@ -5796,7 +5796,7 @@ SfxSlotInfo FN_OPTIMIZE_TABLE
SlotName[ russian ] = "";
SlotName[ dutch ] = "Optimaliseren";
SlotName[ french ] = "Optimiser";
- SlotName[ spanish ] = "Optimar";
+ SlotName[ spanish ] = "Optimizar";
SlotName[ italian ] = "Ottimizza";
SlotName[ danish ] = "Optimer";
SlotName[ swedish ] = "Optimera";
@@ -5822,18 +5822,18 @@ SfxSlotInfo FN_OUTLINE_TO_CLIPBOARD
SlotName [ english ] = "Gliederung zum Clipboard";
SlotName[ english_us ] = "Outline to Clipboard";
SlotName[ portuguese ] = "Esquema em rea de transferncia";
- SlotName[ russian ] = " ";
+ SlotName[ russian ] = " ";
SlotName[ dutch ] = "Overzicht naar Klembord";
SlotName[ french ] = "Plan vers le presse-papiers";
SlotName[ spanish ] = "Esquema al portapapeles";
- SlotName[ italian ] = "Struttura negli appunti";
+ SlotName[ italian ] = "Struttura negli Appunti";
SlotName[ danish ] = "Disposition til udklipsbakke";
SlotName[ swedish ] = "Disposition till urklippet";
SlotName[ polish ] = "Konspekt do kosza";
SlotName[ portuguese_brazilian ] = "SendOutlineToClipboard";
SlotName[ japanese ] = "クリップボードのアウトライン";
SlotName[ chinese_simplified ] = "大纲送至剪贴板";
- SlotName[ chinese_traditional ] = "大綱送給剪貼簿";
+ SlotName[ chinese_traditional ] = "大綱送到剪貼簿";
SlotName[ arabic ] = " ";
SlotName[ dutch ] = "Overzicht naar Klembord";
SlotName[ chinese_simplified ] = "大纲送至剪贴板";
@@ -5867,7 +5867,7 @@ SfxSlotInfo FN_OUTLINE_TO_IMPRESS
SlotName[ dutch ] = "Overzicht naar presentatie";
SlotName[ chinese_simplified ] = "大纲送到演示文稿";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "프레젠테이션 개요";
+ SlotName[ korean ] = "프레젠테이션의 개요";
SlotName[ turkish ] = "Anahatlar sunuya aktar";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Contorn a la presentaci";
@@ -5883,7 +5883,7 @@ SfxSlotInfo FN_PAGE_STYLE_SET_COLS
SlotName[ russian ] = " : ";
SlotName[ dutch ] = "Pagina-opmaakprofiel: kolommen";
SlotName[ french ] = "Style de page : colonnes";
- SlotName[ spanish ] = "Estilo de pgina: Columnas";
+ SlotName[ spanish ] = "Estilo de pgina: columnas";
SlotName[ italian ] = "Modello di pagina: colonne";
SlotName[ danish ] = "Sidetypografi: kolonner";
SlotName[ swedish ] = "Sidformatmall: Kolumner";
@@ -5940,7 +5940,7 @@ SfxSlotInfo FN_PAGEDOWN_SEL
SlotName[ portuguese ] = "Seleccionar at pgina seguinte";
SlotName[ russian ] = " ";
SlotName[ dutch ] = "Tot aan volgende pagina selecteren";
- SlotName[ french ] = "Slect. jusqu' la page suivante";
+ SlotName[ french ] = "Slectionner jusqu' la page suivante";
SlotName[ spanish ] = "Seleccionar hasta la pgina siguiente";
SlotName[ italian ] = "Seleziona fino alla pagina successiva";
SlotName[ danish ] = "Marker til nste side";
@@ -5998,7 +5998,7 @@ SfxSlotInfo FN_PAGEUP_SEL
SlotName[ portuguese ] = "Seleccionar at pgina anterior";
SlotName[ russian ] = " ";
SlotName[ dutch ] = "Tot aan vorige pagina selecteren";
- SlotName[ french ] = "Slect. jusqu' la page prcdente";
+ SlotName[ french ] = "Slectionner jusqu' la page prcdente";
SlotName[ spanish ] = "Seleccionar hasta la pgina anterior";
SlotName[ italian ] = "Seleziona fino alla pagina precedente";
SlotName[ danish ] = "Marker til forrige side";
@@ -6201,7 +6201,7 @@ SfxSlotInfo FN_PREV_SENT_SEL
SlotName[ portuguese ] = "Seleccionar at frase anterior";
SlotName[ russian ] = " ";
SlotName[ dutch ] = "Tot aan vorige zin selecteren";
- SlotName[ french ] = "Slect. jusqu' la phrase prcdente";
+ SlotName[ french ] = "Slectionner jusqu' la phrase prcdente";
SlotName[ spanish ] = "Seleccionar hasta la oracin anterior";
SlotName[ italian ] = "Seleziona fino alla frase precedente";
SlotName[ danish ] = "Marker til forrige stning";
@@ -6273,7 +6273,7 @@ SfxSlotInfo FN_PREV_TBLFML
SlotName[ dutch ] = "Naar vorige werkbladformule";
SlotName[ chinese_simplified ] = "转到上一个工作表公式";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "이전 표 양식으로";
+ SlotName[ korean ] = "이전 표 수식으로";
SlotName[ turkish ] = "nceki tablo formul";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Vs a la frmula anterior de la taula";
@@ -6302,7 +6302,7 @@ SfxSlotInfo FN_PREV_TBLFML_ERR
SlotName[ dutch ] = "Naar vorige foutieve tabelformule";
SlotName[ chinese_simplified ] = "转到上一个有错误的工作表公式";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "틀린 이전 표 양식으로";
+ SlotName[ korean ] = "잘못된 이전 표 수식으로";
SlotName[ turkish ] = "nceki hatal tablo formul";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Vs a la frmula defectuosa anterior de la taula";
@@ -6375,7 +6375,7 @@ SfxSlotInfo FN_PREV_WORD_SEL
SlotName[ portuguese ] = "Seleccionar at ao incio da palavra";
SlotName[ russian ] = " ";
SlotName[ dutch ] = "Tot aan woord links selecteren";
- SlotName[ french ] = "Slect. mot gauche";
+ SlotName[ french ] = "Slectionner jusqu'au mot gauche";
SlotName[ spanish ] = "Seleccionar hasta el comienzo de la palabra";
SlotName[ italian ] = "Seleziona fino alla parola di sinistra";
SlotName[ danish ] = "Marker til ord til venstre";
@@ -6419,7 +6419,7 @@ SfxSlotInfo FN_PREVIEW_PRINT_OPTIONS
SlotName[ dutch ] = "Printopties afdrukvoorbeeld";
SlotName[ chinese_simplified ] = "打印选项 页面视图";
SlotName[ greek ] = " / ";
- SlotName[ korean ] = "인쇄 옵션, 페이지 보기";
+ SlotName[ korean ] = "페이지 보기 인쇄 옵션";
SlotName[ turkish ] = "Sayfa grnm yazdrma seenekleri";
SlotName[ catalan ] = "Visualitzaci prvia de les opcions d'impressi";
SlotName[ finnish ] = "Tulostusasetusten nkym";
@@ -6442,7 +6442,7 @@ SfxSlotInfo FN_PREVIEW_ZOOM
SlotName[ polish ] = "Skala widoku strony";
SlotName[ portuguese_brazilian ] = "Scale";
SlotName[ japanese ] = "プレビューのズーム";
- SlotName[ korean ] = "확대/축소 미리보기";
+ SlotName[ korean ] = "축소/확대 미리 보기";
SlotName[ chinese_simplified ] = "页面视图比例";
SlotName[ chinese_traditional ] = "顯示比例 頁面視圖";
SlotName[ turkish ] = "Yaknlatr";
@@ -6473,7 +6473,7 @@ SfxSlotInfo FN_PRINT_LAYOUT
SlotName[ dutch ] = "Afdruklay-out aan/uit";
SlotName[ chinese_simplified ] = "显示/隐入打印版式";
SlotName[ greek ] = " /";
- SlotName[ korean ] = "인쇄 레이아웃 적용/적용 안함";
+ SlotName[ korean ] = "인쇄 모양 적용/해제";
SlotName[ turkish ] = "Yazdrma dzeni ak/kapal";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Disseny de la impressi activat/desactivat";
@@ -6502,7 +6502,7 @@ SfxSlotInfo FN_PRINT_PAGEPREVIEW
SlotName[ dutch ] = "Afdrukvoorbeeld drukken";
SlotName[ chinese_simplified ] = "打印页面视图";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "페이지 보기, 인쇄";
+ SlotName[ korean ] = "페이지 보기 인쇄";
SlotName[ turkish ] = "Sayfa grnmn yazdr";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Imprimeix la visualitzaci prvia";
@@ -6515,9 +6515,9 @@ SfxSlotInfo FN_QRY_MERGE
SlotName [ english ] = "Seriendruck vorbereiten";
SlotName[ english_us ] = "Prepare Mail Merge";
SlotName[ portuguese ] = "Preparar impresso em srie";
- SlotName[ russian ] = " ";
+ SlotName[ russian ] = " ";
SlotName[ dutch ] = "Afdrukken standaardbrief voorbereiden";
- SlotName[ french ] = "Prparer Impression en srie";
+ SlotName[ french ] = "Prparer un mailing";
SlotName[ spanish ] = "Preparar impresin en serie";
SlotName[ italian ] = "Prepara stampa in serie";
SlotName[ danish ] = "Forbered brevfletning";
@@ -6531,7 +6531,7 @@ SfxSlotInfo FN_QRY_MERGE
SlotName[ dutch ] = "Afdrukken standaardbrief voorbereiden";
SlotName[ chinese_simplified ] = "准备邮件合并";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "메일 병합 준비";
+ SlotName[ korean ] = "편지 병합 준비";
SlotName[ turkish ] = "Standart mektup yazdrmay hazrla";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Prepara la impressi en srie";
@@ -6703,7 +6703,7 @@ SfxSlotInfo FN_REFRESH_VIEW
SlotName[ dutch ] = "Beeld herstellen";
SlotName[ chinese_simplified ] = "恢复视图";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "복구 보기";
+ SlotName[ korean ] = "보기 복구";
SlotName[ turkish ] = "Grnm geri getir";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Restaura la visualitzaci";
@@ -6732,7 +6732,7 @@ SfxSlotInfo FN_REPAGINATE
SlotName[ dutch ] = "Nieuwe opmaak";
SlotName[ chinese_simplified ] = "重新制作格式";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "다시 서식 지정";
+ SlotName[ korean ] = "다시 서식 설정";
SlotName[ turkish ] = "Yeniden formatla";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Torna a formatar";
@@ -6761,7 +6761,7 @@ SfxSlotInfo FN_REPEAT_SEARCH
SlotName[ dutch ] = "Zoeken herhalen";
SlotName[ chinese_simplified ] = "重复搜寻";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "찾기 반복";
+ SlotName[ korean ] = "다시 검색";
SlotName[ turkish ] = "Yeniden bul";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Repeteix la cerca";
@@ -6893,7 +6893,7 @@ SfxSlotInfo FN_SET_EXT_MODE
SlotName[ russian ] = ". ";
SlotName[ dutch ] = "Uitgebreide selectie activeren";
SlotName[ french ] = "Slection tendue";
- SlotName[ spanish ] = "Activar Seleccin Extendida";
+ SlotName[ spanish ] = "Seleccin ampliada";
SlotName[ italian ] = "Attiva selezione ampliata";
SlotName[ danish ] = "Aktiver udvidet markering";
SlotName[ swedish ] = "Utkad markering p";
@@ -6921,7 +6921,7 @@ SfxSlotInfo FN_SET_PAGE_STYLE
SlotName[ portuguese ] = "Aplicar estilo de pgina";
SlotName[ russian ] = " ";
SlotName[ dutch ] = "Pagina-opmaakprofiel toewijzen";
- SlotName[ french ] = "Assigner le style de page";
+ SlotName[ french ] = "Appliquer le style de page";
SlotName[ spanish ] = "Aplicar estilo de pgina";
SlotName[ italian ] = "Assegna modello di pagina";
SlotName[ danish ] = "Tildel sidetypografi";
@@ -6993,7 +6993,7 @@ SfxSlotInfo FN_SET_SUPER_SCRIPT
SlotName[ dutch ] = "Superscript";
SlotName[ chinese_simplified ] = "上标";
SlotName[ greek ] = "";
- SlotName[ korean ] = "윗 첨자";
+ SlotName[ korean ] = "위 첨자";
SlotName[ turkish ] = "st simge";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Superndex";
@@ -7035,7 +7035,7 @@ SfxSlotInfo FN_SHIFT_BACKSPACE
SlotName [ english ] = "Rckschritt";
SlotName[ english_us ] = "Backspace";
SlotName[ portuguese ] = "Retrocesso";
- SlotName[ russian ] = "Backspace";
+ SlotName[ russian ] = " Backspace";
SlotName[ dutch ] = "Backspace";
SlotName[ french ] = "RetArr";
SlotName[ spanish ] = "Retroceso";
@@ -7061,7 +7061,26 @@ SfxSlotInfo FN_SHIFT_BACKSPACE
SfxSlotInfo FN_SHOW_MULTIPLE_PAGES
{
SlotName = "Seitenansicht: mehrere Seiten";
- SlotName[ english_us ] = "Page Preview: Multiple pages";
+ SlotName[ english_us ] = "Page Preview: Multiple Pages";
+ SlotName[ portuguese ] = "Page Preview: Multiple pages";
+ SlotName[ russian ] = "Page Preview: Multiple pages";
+ SlotName[ greek ] = "Page Preview: Multiple pages";
+ SlotName[ dutch ] = "Page Preview: Multiple pages";
+ SlotName[ french ] = "Aperu : plusieurs pages";
+ SlotName[ spanish ] = "Vista preliminar: varias pginas";
+ SlotName[ finnish ] = "Page Preview: Multiple pages";
+ SlotName[ italian ] = "Anteprima di pagina: pi pagine";
+ SlotName[ danish ] = "Page Preview: Multiple pages";
+ SlotName[ swedish ] = "Frhandsgranskning: flera sidor";
+ SlotName[ polish ] = "Page Preview: Multiple pages";
+ SlotName[ japanese ] = "ページプレピュー: 複数のページ";
+ SlotName[ korean ] = "페이지 미리 보기: 다중 페이지";
+ SlotName[ chinese_simplified ] = "页面视图:多页";
+ SlotName[ chinese_traditional ] = "頁面檢視:四頁";
+ SlotName[ turkish ] = "Page Preview: Multiple pages";
+ SlotName[ arabic ] = "Page Preview: Multiple pages";
+ SlotName[ catalan ] = "Page Preview: Multiple pages";
+ SlotName[ thai ] = "Page Preview: Multiple pages";
};
SfxSlotInfo FN_SHOW_TWO_PAGES
{
@@ -7157,21 +7176,21 @@ SfxSlotInfo FN_SPELLING_DLG
SlotName[ portuguese ] = "Ortografia";
SlotName[ russian ] = " ";
SlotName[ dutch ] = "Spelling";
- SlotName[ french ] = "Orthographe";
+ SlotName[ french ] = "Vrification orthographique";
SlotName[ spanish ] = "Revisin ortogrfica";
- SlotName[ italian ] = "Controllo ortografico ";
+ SlotName[ italian ] = "Controllo ortografico";
SlotName[ danish ] = "Stavekontrol";
SlotName[ swedish ] = "Rttstavning";
SlotName[ polish ] = "Pisownia";
SlotName[ portuguese_brazilian ] = "Spelling";
- SlotName[ japanese ] = "文章校正";
+ SlotName[ japanese ] = "文書校正";
SlotName[ chinese_simplified ] = "拼写检查";
SlotName[ chinese_traditional ] = "拼寫檢查";
SlotName[ arabic ] = " ";
SlotName[ dutch ] = "Spelling";
SlotName[ chinese_simplified ] = "拼写检查";
SlotName[ greek ] = "";
- SlotName[ korean ] = "맞춤법";
+ SlotName[ korean ] = "맞춤법 검사";
SlotName[ turkish ] = "Yazm";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Verificaci ortogrfica";
@@ -7287,7 +7306,7 @@ SfxSlotInfo FN_START_OF_DOCUMENT_SEL
SlotName[ dutch ] = "Tot aan begin document selecteren";
SlotName[ chinese_simplified ] = "选中至文档的起始位置";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "문서 시작 부분까지 선택";
+ SlotName[ korean ] = "문서 시작까지 선택";
SlotName[ turkish ] = "Belgenin balangcna kadar se";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Selecciona fins a l'inici del document";
@@ -7316,7 +7335,7 @@ SfxSlotInfo FN_START_OF_LINE
SlotName[ dutch ] = "Naar regelbegin";
SlotName[ chinese_simplified ] = "转到行首";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "행 시작부분으로";
+ SlotName[ korean ] = "줄 시작 부분으로";
SlotName[ turkish ] = "Satr ba";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Al comenament de la lnia";
@@ -7331,7 +7350,7 @@ SfxSlotInfo FN_START_OF_LINE_SEL
SlotName[ portuguese ] = "Seleccionar at incio da linha";
SlotName[ russian ] = " ";
SlotName[ dutch ] = "Tot aan regelbegin selecteren";
- SlotName[ french ] = "Slect. jusqu'au dbut de ligne";
+ SlotName[ french ] = "Slectionner jusqu'au dbut de la ligne";
SlotName[ spanish ] = "Seleccionar hasta el comienzo de la lnea";
SlotName[ italian ] = "Seleziona fino all'inizio della riga";
SlotName[ danish ] = "Marker til rkkens begyndelse";
@@ -7345,7 +7364,7 @@ SfxSlotInfo FN_START_OF_LINE_SEL
SlotName[ dutch ] = "Tot aan regelbegin selecteren";
SlotName[ chinese_simplified ] = "选择到行首";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "행 시작부분까지 선택";
+ SlotName[ korean ] = "줄 시작까지 선택";
SlotName[ turkish ] = "Satr bana kadar se";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Selecciona fins al comenament de la lnia";
@@ -7403,7 +7422,7 @@ SfxSlotInfo FN_START_OF_NEXT_PAGE
SlotName[ dutch ] = "Naar begin volgende pagina";
SlotName[ chinese_simplified ] = "转到下个页面的起始位置";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "다음 페이지 시작 부분으로";
+ SlotName[ korean ] = "다음 페이지의 시작으로";
SlotName[ turkish ] = "Sonraki sayfann balangc";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Al comenament de la pgina segent";
@@ -7418,7 +7437,7 @@ SfxSlotInfo FN_START_OF_NEXT_PAGE_SEL
SlotName[ portuguese ] = "Seleccionar at incio da pgina seguinte";
SlotName[ russian ] = " ";
SlotName[ dutch ] = "Tot aan begin volgende pagina selecteren";
- SlotName[ french ] = "Slect. jusqu'au dbut de la page suivante";
+ SlotName[ french ] = "Slectionner jusqu'au dbut de la page suivante";
SlotName[ spanish ] = "Seleccionar hasta comienzo de la pgina siguiente";
SlotName[ italian ] = "Seleziona fino all'inizio della pagina successiva";
SlotName[ danish ] = "Marker til nste sides begyndelse";
@@ -7432,7 +7451,7 @@ SfxSlotInfo FN_START_OF_NEXT_PAGE_SEL
SlotName[ dutch ] = "Tot aan begin volgende pagina selecteren";
SlotName[ chinese_simplified ] = "选中至下页的起始位置";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "다음 페이지 시작 부분까지 선택";
+ SlotName[ korean ] = "다음 페이지의 시작까지 선택";
SlotName[ turkish ] = "Sonraki sayfann balangcna kadar se";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Selecciona fins al comenament de la pgina segent";
@@ -7461,7 +7480,7 @@ SfxSlotInfo FN_START_OF_PAGE
SlotName[ dutch ] = "Naar begin pagina";
SlotName[ chinese_simplified ] = "转到页的起始位置";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "페이지 시작 부분으로";
+ SlotName[ korean ] = "페이지의 시작으로";
SlotName[ turkish ] = "Sayfa balangc";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Al comenament de la pgina";
@@ -7476,7 +7495,7 @@ SfxSlotInfo FN_START_OF_PAGE_SEL
SlotName[ portuguese ] = "Seleccionar at incio da pgina";
SlotName[ russian ] = " ";
SlotName[ dutch ] = "Tot aan begin pagina selecteren";
- SlotName[ french ] = "Slect. jusqu'au dbut de la page";
+ SlotName[ french ] = "Slectionner jusqu'au dbut de la page";
SlotName[ spanish ] = "Seleccionar hasta el comienzo de la pgina";
SlotName[ italian ] = "Seleziona fino all'inizio della pagina";
SlotName[ danish ] = "Marker til sidens begyndelse";
@@ -7490,7 +7509,7 @@ SfxSlotInfo FN_START_OF_PAGE_SEL
SlotName[ dutch ] = "Tot aan begin pagina selecteren";
SlotName[ chinese_simplified ] = "选择至页的起始位置";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "페이지 시작 부분까지 선택";
+ SlotName[ korean ] = "페이지의 시작까지 선택";
SlotName[ turkish ] = "Sayfann balangcna kadar se";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Selecciona fins al comenament de la pgina";
@@ -7534,7 +7553,7 @@ SfxSlotInfo FN_START_OF_PARA_SEL
SlotName[ portuguese ] = "Seleccionar at incio do pargrafo";
SlotName[ russian ] = " ";
SlotName[ dutch ] = "Tot aan begin alinea selecteren";
- SlotName[ french ] = "Slect. jusqu'au dbut du paragraphe";
+ SlotName[ french ] = "Slectionner jusqu'au dbut du paragraphe";
SlotName[ spanish ] = "Seleccionar hasta el comienzo del prrafo";
SlotName[ italian ] = "Selezioni fini all'inizio del parametro";
SlotName[ danish ] = "Marker til afsnittets begyndelse";
@@ -7548,7 +7567,7 @@ SfxSlotInfo FN_START_OF_PARA_SEL
SlotName[ dutch ] = "Tot aan begin alinea selecteren";
SlotName[ chinese_simplified ] = "选中至段落的起始位置";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "단락 시작 부분까지 선택";
+ SlotName[ korean ] = "단락 시작까지 선택";
SlotName[ turkish ] = "Paragraf balangcna kadar se";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Selecciona fins al comenament del pargraf";
@@ -7606,7 +7625,7 @@ SfxSlotInfo FN_START_OF_PREV_PAGE
SlotName[ dutch ] = "Naar begin vorige pagina";
SlotName[ chinese_simplified ] = "转到上一页的起始位置";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "이전 페이지 시작 부분으로";
+ SlotName[ korean ] = "이전 페이지 시작으로";
SlotName[ turkish ] = "nceki sayfann balangc";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Al comenament de la pgina anterior";
@@ -7621,7 +7640,7 @@ SfxSlotInfo FN_START_OF_PREV_PAGE_SEL
SlotName[ portuguese ] = "Seleccionar at incio da pgina anterior";
SlotName[ russian ] = " ";
SlotName[ dutch ] = "Tot aan begin vorige pagina selecteren";
- SlotName[ french ] = "Slect. jusqu'au dbut de la page prcdente";
+ SlotName[ french ] = "Slectionner jusqu'au dbut de la page prcdente";
SlotName[ spanish ] = "Seleccionar hasta el comienzo de la pgina anterior";
SlotName[ italian ] = "Seleziona fino all'inizio della pagina precedente";
SlotName[ danish ] = "Marker til forrige sides begyndelse";
@@ -7635,7 +7654,7 @@ SfxSlotInfo FN_START_OF_PREV_PAGE_SEL
SlotName[ dutch ] = "Tot aan begin vorige pagina selecteren";
SlotName[ chinese_simplified ] = "选中至上一页的起始位置";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "이전 페이지 시작 부분까지 선택";
+ SlotName[ korean ] = "이전 페이지 시작까지 선택";
SlotName[ turkish ] = "nceki sayfann balangcna kadar se";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Selecciona fins al comenament de la pgina anterior";
@@ -7664,7 +7683,7 @@ SfxSlotInfo FN_START_TABLE
SlotName[ dutch ] = "Naar begin tabel";
SlotName[ chinese_simplified ] = "转到表格的起始位置";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "표 시작 부분으로";
+ SlotName[ korean ] = "표 시작으로";
SlotName[ turkish ] = "Tablo balangc";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Al comenament de la taula";
@@ -7679,8 +7698,8 @@ SfxSlotInfo FN_STAT_HYPERLINKS
SlotName[ portuguese ] = "Activar hiperligaes";
SlotName[ russian ] = " ";
SlotName[ dutch ] = "Hyperlinks actief";
- SlotName[ french ] = "Activer hyperliens";
- SlotName[ spanish ] = "Activar Hiperenlaces";
+ SlotName[ french ] = "Hyperliens actifs";
+ SlotName[ spanish ] = "Hiperenlaces activos";
SlotName[ italian ] = "Hyperlink attivi";
SlotName[ danish ] = "Hyperlinks aktive";
SlotName[ swedish ] = "Hyperlnkar aktiva";
@@ -7864,7 +7883,7 @@ SfxSlotInfo FN_TABLE_BALANCE_CELLS
SlotName[ dutch ] = "Kolommen gelijkmatig verdelen";
SlotName[ chinese_simplified ] = "平均分配列宽";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "열 간격 일정하게";
+ SlotName[ korean ] = "열 간격 균등하게";
SlotName[ turkish ] = "Stunlar geniliklerini eitle";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Distribueix les columnes uniformement";
@@ -7893,7 +7912,7 @@ SfxSlotInfo FN_TABLE_BALANCE_ROWS
SlotName[ dutch ] = "Rijen gelijkmatig verdelen";
SlotName[ chinese_simplified ] = "平均分配行高";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "행 간격 일정하게";
+ SlotName[ korean ] = "행 간격 균등하게";
SlotName[ turkish ] = "Satr yksekliklerini eitle";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Distribueix les files uniformement";
@@ -7909,7 +7928,7 @@ SfxSlotInfo FN_TABLE_DELETE_COL
SlotName[ russian ] = " ";
SlotName[ dutch ] = "Kolom wissen";
SlotName[ french ] = "Supprimer la colonne";
- SlotName[ spanish ] = "Eliminar columna";
+ SlotName[ spanish ] = "Borrar la columna";
SlotName[ italian ] = "Elimina colonna";
SlotName[ danish ] = "Slet kolonne";
SlotName[ swedish ] = "Radera kolumn";
@@ -7938,7 +7957,7 @@ SfxSlotInfo FN_TABLE_DELETE_ROW
SlotName[ russian ] = " ";
SlotName[ dutch ] = "Rij wissen";
SlotName[ french ] = "Supprimer la ligne";
- SlotName[ spanish ] = "Eliminar fila";
+ SlotName[ spanish ] = "Borrar fila";
SlotName[ italian ] = "Elimina riga";
SlotName[ danish ] = "Slet rkke";
SlotName[ swedish ] = "Radera rad";
@@ -8096,7 +8115,7 @@ SfxSlotInfo FN_TABLE_MODE_FIX
SlotName[ dutch ] = "Tabel: vast";
SlotName[ chinese_simplified ] = "表格固定";
SlotName[ greek ] = ": ";
- SlotName[ korean ] = "표:고정";
+ SlotName[ korean ] = "표: 고정";
SlotName[ turkish ] = "Tablo: Sabit";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Taula: fixa";
@@ -8125,7 +8144,7 @@ SfxSlotInfo FN_TABLE_MODE_FIX_PROP
SlotName[ dutch ] = "Tabel; vast, proportioneel";
SlotName[ chinese_simplified ] = "表格固定成比例";
SlotName[ greek ] = ": , ";
- SlotName[ korean ] = "표: 고정,비례";
+ SlotName[ korean ] = "표: 고정 비례";
SlotName[ turkish ] = "Tablo: Sabit, orantl";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Taula: fixa, proporcional";
@@ -8154,7 +8173,7 @@ SfxSlotInfo FN_TABLE_MODE_VARIABLE
SlotName[ dutch ] = "Tabel: variabel";
SlotName[ chinese_simplified ] = "表格可变";
SlotName[ greek ] = ": ";
- SlotName[ korean ] = "표:변수";
+ SlotName[ korean ] = "표: 변수";
SlotName[ turkish ] = "Tablo: Deiken";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Taula: variable";
@@ -8198,7 +8217,7 @@ SfxSlotInfo FN_TABLE_SELECT_ALL
SlotName[ portuguese ] = "Seleccionar tabela";
SlotName[ russian ] = " ";
SlotName[ dutch ] = "Tabel selecteren";
- SlotName[ french ] = "Slectionner tableau";
+ SlotName[ french ] = "Slectionner le tableau";
SlotName[ spanish ] = "Seleccionar tabla";
SlotName[ italian ] = "Seleziona tabella";
SlotName[ danish ] = "Marker tabel";
@@ -8256,7 +8275,7 @@ SfxSlotInfo FN_TABLE_SELECT_ROW
SlotName[ portuguese ] = "Seleccionar linha";
SlotName[ russian ] = " ";
SlotName[ dutch ] = "Rij selecteren";
- SlotName[ french ] = "Slectionner ligne";
+ SlotName[ french ] = "Slectionner la ligne";
SlotName[ spanish ] = "Selecionar fila";
SlotName[ italian ] = "Seleziona riga";
SlotName[ danish ] = "Marker rkke";
@@ -8415,7 +8434,7 @@ SfxSlotInfo FN_TABLE_UNSET_READ_ONLY
SlotName[ dutch ] = "Werkbladbeveiliging opheffen";
SlotName[ chinese_simplified ] = "取消表格保护";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "표 보호 해제";
+ SlotName[ korean ] = "시트 보호 해제";
SlotName[ turkish ] = "Tablo korumasn kaldr";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Desprotegeix la taula";
@@ -8647,7 +8666,7 @@ SfxSlotInfo FN_TOOL_ANKER
SlotName[ dutch ] = "Verankering wisselen";
SlotName[ chinese_simplified ] = "更改锁定";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "고정위치 변경";
+ SlotName[ korean ] = "기준 위치 변경";
SlotName[ turkish ] = "Sabitleme trn deitir";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Canvia l'ancoratge";
@@ -8676,7 +8695,7 @@ SfxSlotInfo FN_TOOL_ANKER_AT_CHAR
SlotName[ dutch ] = "Als teken verankeren";
SlotName[ chinese_simplified ] = "锁定在字符上";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "문자에 위치 고정";
+ SlotName[ korean ] = "문자에 기준 위치";
SlotName[ turkish ] = "Karaktere sabitle";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Ancora al carcter";
@@ -8705,7 +8724,7 @@ SfxSlotInfo FN_TOOL_ANKER_CHAR
SlotName[ dutch ] = "Als teken verankeren";
SlotName[ chinese_simplified ] = "当作字符锁定";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "문자로 위치고정";
+ SlotName[ korean ] = "문자로 기준 위치";
SlotName[ turkish ] = "Karaktere sabitle";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Ancora com a carcter";
@@ -8734,7 +8753,7 @@ SfxSlotInfo FN_TOOL_ANKER_FRAME
SlotName[ dutch ] = "Aan kader verankeren";
SlotName[ chinese_simplified ] = "锁定在框边";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "프레임에 위치고정";
+ SlotName[ korean ] = "프레임에 기준 위치";
SlotName[ turkish ] = "ereveye sabitle";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Ancora al marc";
@@ -8763,7 +8782,7 @@ SfxSlotInfo FN_TOOL_ANKER_PAGE
SlotName[ dutch ] = "Aan pagina verankeren";
SlotName[ chinese_simplified ] = "锁定在页面上";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "페이지 위치고정";
+ SlotName[ korean ] = "페이지에 기준 위치";
SlotName[ turkish ] = "Sayfaya sabitle";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Ancora a la pgina";
@@ -8792,7 +8811,7 @@ SfxSlotInfo FN_TOOL_ANKER_PARAGRAPH
SlotName[ dutch ] = "Aan alinea verankeren";
SlotName[ chinese_simplified ] = "锁定在段落上";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "단락에 위치고정";
+ SlotName[ korean ] = "단락에 기준 위치";
SlotName[ turkish ] = "Paragrafa sabitle";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Ancora al pargraf";
@@ -8805,7 +8824,7 @@ SfxSlotInfo FN_TOOL_GROUP
SlotName [ english ] = "Gruppierung";
SlotName[ english_us ] = "Group";
SlotName[ portuguese ] = "Agrupar";
- SlotName[ russian ] = "";
+ SlotName[ russian ] = "";
SlotName[ dutch ] = "Groepering";
SlotName[ french ] = "Grouper";
SlotName[ spanish ] = "Agrupar";
@@ -8966,7 +8985,7 @@ SfxSlotInfo FN_UPDATE_ALL_LINKS
SlotName[ dutch ] = "Koppelingen bijwerken";
SlotName[ chinese_simplified ] = "更新链接";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "모든 연결 업데이트";
+ SlotName[ korean ] = "모든 링크 업데이트";
SlotName[ turkish ] = "Balantlar gncelle";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Actualitza els enllaos";
@@ -9010,7 +9029,7 @@ SfxSlotInfo FN_EDIT_CURRENT_TOX
SlotName[ portuguese ] = "Editar ndice";
SlotName[ greek ] = " ";
SlotName[ dutch ] = "Index bewerken";
- SlotName[ french ] = "Modifier l'index";
+ SlotName[ french ] = "diter l'index";
SlotName[ spanish ] = "Editar ndice";
SlotName[ swedish ] = "Redigera frteckning";
SlotName[ russian ] = " ";
@@ -9080,7 +9099,7 @@ SfxSlotInfo FN_UPDATE_INPUTFIELDS
SlotName[ dutch ] = "Invoervelden bijwerken";
SlotName[ chinese_simplified ] = "更新输入字段";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "입력필드 업데이트";
+ SlotName[ korean ] = "입력 필드 업데이트";
SlotName[ turkish ] = "Giri alanlarn gncelle";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Actualitza els camps d'entrada";
@@ -9138,7 +9157,7 @@ SfxSlotInfo FN_VIEW_BOUNDS
SlotName[ dutch ] = "Tekstbegrenzingen";
SlotName[ chinese_simplified ] = "正文边界";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "텍스트 경계선";
+ SlotName[ korean ] = "텍스트 경계";
SlotName[ turkish ] = "Metin snrlar";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Lmits del text";
@@ -9196,7 +9215,7 @@ SfxSlotInfo FN_VIEW_FIELDS
SlotName[ dutch ] = "Veldopdrachten";
SlotName[ chinese_simplified ] = "字段指令";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "필드명령";
+ SlotName[ korean ] = "필드";
SlotName[ turkish ] = "Alan eleri";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Camps";
@@ -9213,14 +9232,14 @@ SfxSlotInfo FN_VIEW_GRAPHIC
SlotName[ greek ] = " /";
SlotName[ dutch ] = "Afbeelding aan/uit";
SlotName[ french ] = "Afficher/masquer les images";
- SlotName[ spanish ] = "Imagen";
+ SlotName[ spanish ] = "Activar/desactivar imgenes";
SlotName[ italian ] = "Immagine";
SlotName[ danish ] = "Grafik til/fra";
SlotName[ swedish ] = "Grafik p/av";
SlotName[ polish ] = "Wcz/Wycz grafik";
SlotName[ portuguese_brazilian ] = "ViewGraphic";
SlotName[ japanese ] = "図 オン/オフ";
- SlotName[ korean ] = "그래픽 표시/숨기기";
+ SlotName[ korean ] = "그림 표시/숨기기";
SlotName[ chinese_simplified ] = "显示/隐入图形";
SlotName[ chinese_traditional ] = "顯示或隱入圖形";
SlotName[ turkish ] = "Grafik";
@@ -9281,7 +9300,7 @@ SfxSlotInfo FN_VIEW_MARKS
SlotName[ dutch ] = "Markeringen";
SlotName[ chinese_simplified ] = "红色曲线";
SlotName[ greek ] = "";
- SlotName[ korean ] = "표시자";
+ SlotName[ korean ] = "필드 음영";
SlotName[ turkish ] = "Belirteler";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Marques";
@@ -9322,7 +9341,7 @@ SfxSlotInfo FN_VIEW_TABLEGRID
SlotName[ portuguese ] = "Margens da tabela";
SlotName[ russian ] = " ";
SlotName[ dutch ] = "Tabelbegrenzingen";
- SlotName[ french ] = "Limiteurs de tableaux";
+ SlotName[ french ] = "Dlimitations de tableau";
SlotName[ spanish ] = "Lmites de la tabla";
SlotName[ italian ] = "Limiti tabella";
SlotName[ danish ] = "Tabelgrnser";
@@ -9336,7 +9355,7 @@ SfxSlotInfo FN_VIEW_TABLEGRID
SlotName[ dutch ] = "Tabelbegrenzingen";
SlotName[ chinese_simplified ] = "表格边界";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "표 경계선";
+ SlotName[ korean ] = "표 경계";
SlotName[ turkish ] = "Tablo snrlar";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Lmits de la taula";
@@ -9365,7 +9384,7 @@ SfxSlotInfo FN_VLINEAL
SlotName[ dutch ] = "Verticale liniaal";
SlotName[ chinese_simplified ] = "垂直标尺";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "수직 눈금자";
+ SlotName[ korean ] = "세로 눈금자";
SlotName[ turkish ] = "Dikey cetvel";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Regle vertical";
@@ -9394,7 +9413,7 @@ SfxSlotInfo FN_VSCROLLBAR
SlotName[ dutch ] = "Verticale beeldschuifbalk";
SlotName[ chinese_simplified ] = "垂直滚动条";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "수직 스크롤 바";
+ SlotName[ korean ] = "수직 스크롤 막대";
SlotName[ turkish ] = "Dikey kaydrma ubuu";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Barra de desplaament vertical";
@@ -9409,8 +9428,8 @@ SfxSlotInfo FN_WRAP_ANCHOR_ONLY
SlotName[ portuguese ] = "Ajuste do primeiro pargrafo";
SlotName[ russian ] = " ";
SlotName[ dutch ] = "Omloop eerste alinea";
- SlotName[ french ] = "Adaptation premier paragraphe";
- SlotName[ spanish ] = "Ajuste del primer prrafo";
+ SlotName[ french ] = "Adaptation au premier paragraphe";
+ SlotName[ spanish ] = "Ajuste al primer prrafo";
SlotName[ italian ] = "Scorrimento primo paragrafo";
SlotName[ danish ] = "Ombryd frste afsnit";
SlotName[ swedish ] = "Textanpassning frsta stycket";
@@ -9423,7 +9442,7 @@ SfxSlotInfo FN_WRAP_ANCHOR_ONLY
SlotName[ dutch ] = "Omloop eerste alinea";
SlotName[ chinese_simplified ] = "环绕第一个段落";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "문자열 배치, 첫 단락";
+ SlotName[ korean ] = "첫 단락 문장 배치";
SlotName[ turkish ] = "lk paragrafta metin dalm";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Ajusta el primer pargraf";
@@ -9439,7 +9458,7 @@ SfxSlotInfo SID_ATTR_CHAR_COLOR_BACKGROUND
SlotName[ russian ] = " ";
SlotName[ dutch ] = "Tekenachtergrond";
SlotName[ french ] = "Trame de fond";
- SlotName[ spanish ] = "Fondo de carcter";
+ SlotName[ spanish ] = "Fondo del carcter";
SlotName[ italian ] = "Sfondo caratteri";
SlotName[ danish ] = "Tegnbaggrund";
SlotName[ swedish ] = "Teckenbakgrund";
@@ -9468,7 +9487,7 @@ SfxSlotInfo SID_ATTR_CHAR_COLOR_BACKGROUND_EXT
SlotName[ russian ] = ", ";
SlotName[ dutch ] = "Tekenachtergrond gieter";
SlotName[ french ] = "Trame de fond - Verseuse";
- SlotName[ spanish ] = "Fondo de carcter";
+ SlotName[ spanish ] = "Color del fondo de carcter";
SlotName[ italian ] = "Colore sfondo caratteri";
SlotName[ danish ] = "Tegnbaggrund-fyld";
SlotName[ swedish ] = "Frgverstrykning teckenbakgrund";
@@ -9481,7 +9500,7 @@ SfxSlotInfo SID_ATTR_CHAR_COLOR_BACKGROUND_EXT
SlotName[ dutch ] = "Tekenachtergrond gieter";
SlotName[ chinese_simplified ] = "字符背景填色";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "문자 배경-채우기";
+ SlotName[ korean ] = "문자 배경 채우기";
SlotName[ turkish ] = "Vurgu renk doldurma";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Ressalta l'emplenament";
@@ -9510,7 +9529,7 @@ SfxSlotInfo SID_ATTR_CHAR_COLOR_EXT
SlotName[ dutch ] = "Tekenkleur-gieter";
SlotName[ chinese_simplified ] = "字符颜色填色";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "글꼴색-채우기";
+ SlotName[ korean ] = "글꼴 색상 채우기";
SlotName[ turkish ] = "Yaztipi rengi doldurma";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Color d'emplenament de la lletra";
@@ -9568,7 +9587,7 @@ SfxSlotInfo SID_TEMPLATE_LOAD
SlotName[ dutch ] = "Opmaakprofielen laden";
SlotName[ chinese_simplified ] = "装入样式";
SlotName[ greek ] = " ";
- SlotName[ korean ] = "템플릿 로드";
+ SlotName[ korean ] = "스타일 로드";
SlotName[ turkish ] = "ablonlar ykle";
SlotName[ language_user1 ] = " ";
SlotName[ catalan ] = "Carrega els estils";
@@ -9584,7 +9603,7 @@ SfxSlotInfo FN_INSERT_COLUMN_SECTION
SlotName[ greek ] = " ";
SlotName[ dutch ] = "Bereik invoegen";
SlotName[ french ] = "Insrer une section";
- SlotName[ spanish ] = "Insertar rea";
+ SlotName[ spanish ] = "Insertar una seccin";
SlotName[ swedish ] = "Infoga omrde";
SlotName[ russian ] = " ";
SlotName[ italian ] = "Inserisci sezione";
@@ -9592,7 +9611,7 @@ SfxSlotInfo FN_INSERT_COLUMN_SECTION
SlotName[ polish ] = "Wstaw obszar";
SlotName[ portuguese_brazilian ] = "Insert Section";
SlotName[ japanese ] = "範囲の挿入";
- SlotName[ korean ] = "영역 삽입";
+ SlotName[ korean ] = "구역 삽입";
SlotName[ chinese_simplified ] = "插入区域";
SlotName[ chinese_traditional ] = "插入區域";
SlotName[ arabic ] = " ";
@@ -9723,7 +9742,7 @@ SfxSlotInfo FN_REMOVE_CUR_TOX
SlotName[ greek ] = " ";
SlotName[ dutch ] = "Index wissen";
SlotName[ french ] = "Supprimer l'index";
- SlotName[ spanish ] = "Eliminar ndice";
+ SlotName[ spanish ] = "Borrar ndice";
SlotName[ italian ] = "Rimuovi indice";
SlotName[ danish ] = "Slet indeks";
SlotName[ swedish ] = "Radera frteckning";
@@ -9784,7 +9803,7 @@ SfxSlotInfo FN_SET_MODOPT_TBLNUMFMT
SlotName[ polish ] = "Identyfikacja numeru";
SlotName[ portuguese_brazilian ] = "Number recognition";
SlotName[ japanese ] = "番号認識";
- SlotName[ korean ] = "번호 인식";
+ SlotName[ korean ] = "숫자 인식";
SlotName[ chinese_simplified ] = "数字识别";
SlotName[ chinese_traditional ] = "數字識別";
SlotName[ turkish ] = "Number recognition";
@@ -9810,7 +9829,7 @@ SfxSlotInfo FN_UPDATE_CHARTS
SlotName[ polish ] = "Aktualizuj wykresy";
SlotName[ portuguese_brazilian ] = "Update Charts";
SlotName[ japanese ] = "グラフの更新";
- SlotName[ korean ] = "업데이트 차트";
+ SlotName[ korean ] = "차트 업데이트";
SlotName[ chinese_simplified ] = "更新图表";
SlotName[ chinese_traditional ] = "更新圖表";
SlotName[ turkish ] = "Update Charts";
@@ -9926,3 +9945,8 @@ SfxSlotInfo FN_READONLY_SELECTION_MODE
SlotName[ thai ] = "Select text";
};
+
+
+
+
+
diff --git a/sw/sdi/wrtapp.sdi b/sw/sdi/wrtapp.sdi
index 212decbd7d6c..e614bd817e4a 100644
--- a/sw/sdi/wrtapp.sdi
+++ b/sw/sdi/wrtapp.sdi
@@ -2,9 +2,9 @@
*
* $RCSfile: wrtapp.sdi,v $
*
- * $Revision: 1.6 $
+ * $Revision: 1.7 $
*
- * last change: $Author: os $ $Date: 2002-11-29 12:09:03 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:39:11 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -130,11 +130,6 @@ interface StarWriter : Module
StateMethod = NoState ;
]*/
- FN_QRY_MERGE // status()
- [
- ExecMethod = ExecDB ;
- DisableFlags="SW_DISABLE_ON_MAILBOX_EDITOR";
- ]
SID_ATTR_UNDO_COUNT // ole(no) api(final/play)
[
diff --git a/sw/sdi/wviewsh.sdi b/sw/sdi/wviewsh.sdi
index 969361943ac9..af71a92b96a1 100644
--- a/sw/sdi/wviewsh.sdi
+++ b/sw/sdi/wviewsh.sdi
@@ -2,9 +2,9 @@
*
* $RCSfile: wviewsh.sdi,v $
*
- * $Revision: 1.3 $
+ * $Revision: 1.4 $
*
- * last change: $Author: os $ $Date: 2002-08-30 10:22:41 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:39:12 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -203,6 +203,26 @@ interface WebSourceView : View
ExecMethod = Execute ;
StateMethod = NoState ;
]
+ SID_MAIL_SENDDOC
+ [
+ StateMethod = GetState ;
+ ]
+ SID_MAIL_SENDDOCASPDF
+ [
+ StateMethod = GetState ;
+ ]
+ SID_EXPORTDOC
+ [
+ StateMethod = GetState ;
+ ]
+ SID_EXPORTDOCASPDF
+ [
+ StateMethod = GetState ;
+ ]
+ SID_DIRECTEXPORTDOCASPDF
+ [
+ StateMethod = GetState ;
+ ]
}
shell SwSrcView : SfxViewShell
diff --git a/sw/source/core/access/acccell.cxx b/sw/source/core/access/acccell.cxx
index 2864690d86c9..253de82cdd06 100644
--- a/sw/source/core/access/acccell.cxx
+++ b/sw/source/core/access/acccell.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: acccell.cxx,v $
*
- * $Revision: 1.10 $
+ * $Revision: 1.11 $
*
- * last change: $Author: mib $ $Date: 2002-11-25 15:14:37 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:39:15 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -380,11 +380,14 @@ Sequence< Type > SAL_CALL SwAccessibleCell::getTypes() throw(RuntimeException)
Sequence< sal_Int8 > SAL_CALL SwAccessibleCell::getImplementationId()
throw(RuntimeException)
{
+ vos::OGuard aGuard(Application::GetSolarMutex());
static Sequence< sal_Int8 > aId( 16 );
static sal_Bool bInit = sal_False;
if(!bInit)
- rtl_createUuid( reinterpret_cast< sal_uInt8 * >(aId.getArray() ),
- 0, sal_True );
+ {
+ rtl_createUuid( (sal_uInt8 *)(aId.getArray() ), 0, sal_True );
+ bInit = sal_True;
+ }
return aId;
}
diff --git a/sw/source/core/access/acccontext.cxx b/sw/source/core/access/acccontext.cxx
index a215555e7c45..cbb2b6413ba5 100644
--- a/sw/source/core/access/acccontext.cxx
+++ b/sw/source/core/access/acccontext.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: acccontext.cxx,v $
*
- * $Revision: 1.41 $
+ * $Revision: 1.42 $
*
- * last change: $Author: mib $ $Date: 2002-12-05 14:10:33 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:39:15 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -139,6 +139,9 @@
#ifndef _SVX_ACCESSIBILITY_ACCESSIBLE_SHAPE_HXX
#include <svx/AccessibleShape.hxx>
#endif
+#ifndef COMPHELPER_ACCESSIBLE_EVENT_NOTIFIER
+#include <comphelper/accessibleeventnotifier.hxx>
+#endif
#if defined DEBUG && defined TEST_MIB
#define DBG_MSG( _msg ) \
@@ -532,31 +535,8 @@ void SwAccessibleContext::FireAccessibleEvent( AccessibleEventObject& rEvent )
rEvent.Source = xThis;
}
- ::cppu::OInterfaceIteratorHelper aIter( aAccessibleEventListeners );
- while( aIter.hasMoreElements() )
- {
- Reference < XAccessibleEventListener > xListener( aIter.next(),
- UNO_QUERY );
- if( xListener.is() ) // TODO: test is unneccessary soon
- {
- try
- {
- xListener->notifyEvent( rEvent );
- }
- catch( ::com::sun::star::uno::RuntimeException& r )
- {
-#ifdef DEBUG
- ByteString aError( "Runtime exception caught for event" );
- aError += ByteString::CreateFromInt32( rEvent.EventId );
- aError += ".:\n";
- aError += ByteString( String( r.Message), RTL_TEXTENCODING_ASCII_US );
- DBG_ERROR( aError.GetBuffer() );
-#endif
-// aIter.remove();
- }
- }
- }
-
+ if (nClientId)
+ comphelper::AccessibleEventNotifier::addEvent( nClientId, rEvent );
}
void SwAccessibleContext::FireVisibleDataEvent()
@@ -615,10 +595,10 @@ SwAccessibleContext::SwAccessibleContext( SwAccessibleMap *pM,
const SwFrm *pF ) :
SwAccessibleFrame( pM->GetVisArea().SVRect(), pF,
pM->GetShell()->IsPreView() ),
- aAccessibleEventListeners( aListenerMutex ),
pMap( pM ),
nRole( nR ),
- bDisposing( sal_False )
+ bDisposing( sal_False ),
+ nClientId(0)
{
InitStates();
DBG_MSG_CD( "constructed" )
@@ -631,10 +611,10 @@ SwAccessibleContext::SwAccessibleContext( SwAccessibleMap *pM,
SwAccessibleFrame( pM->GetVisArea().SVRect(), pF,
pM->GetShell()->IsPreView() ),
sName( rName ),
- aAccessibleEventListeners( aListenerMutex ),
pMap( pM ),
nRole( nR ),
- bDisposing( sal_False )
+ bDisposing( sal_False ),
+ nClientId(0)
{
InitStates();
DBG_MSG_CD( "constructed" )
@@ -816,7 +796,14 @@ void SAL_CALL SwAccessibleContext::addEventListener(
throw (::com::sun::star::uno::RuntimeException)
{
DBG_MSG( "accessible event listener added" )
- aAccessibleEventListeners.addInterface( xListener );
+
+ if (xListener.is())
+ {
+ vos::OGuard aGuard(Application::GetSolarMutex());
+ if (!nClientId)
+ nClientId = comphelper::AccessibleEventNotifier::registerClient( );
+ comphelper::AccessibleEventNotifier::addEventListener( nClientId, xListener );
+ }
}
void SAL_CALL SwAccessibleContext::removeEventListener(
@@ -824,7 +811,21 @@ void SAL_CALL SwAccessibleContext::removeEventListener(
throw (::com::sun::star::uno::RuntimeException)
{
DBG_MSG( "accessible event listener removed" )
- aAccessibleEventListeners.removeInterface( xListener );
+
+ if (xListener.is())
+ {
+ vos::OGuard aGuard(Application::GetSolarMutex());
+ 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,
@@ -866,8 +867,8 @@ Reference< XAccessible > SAL_CALL SwAccessibleContext::getAccessibleAt(
Point aPixPoint( aPoint.X, aPoint.Y ); // px rel to parent
if( !GetFrm()->IsRootFrm() )
{
- Point aLogPos( GetBounds( GetFrm() ).Pos() ); // twip rel to doc root
- Point aPixPos( GetMap()->CoreToPixel( aLogPos ) );
+ SwRect aLogBounds( GetBounds( GetFrm() ) ); // twip rel to doc root
+ Point aPixPos( GetMap()->CoreToPixel( aLogBounds.SVRect() ).TopLeft() );
aPixPoint.X() += aPixPos.X();
aPixPoint.Y() += aPixPos.Y();
}
@@ -924,15 +925,20 @@ awt::Rectangle SAL_CALL SwAccessibleContext::getBoundsImpl(sal_Bool bRelative)
{
ASSERT( GetShell()->IsPreView(), "empty page accessible?" );
if( GetShell()->IsPreView() )
- aLogBounds.SSize( GetMap()->GetPreViewPageSize() );
+ {
+ // OD 15.01.2003 #103492# - 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)
{
- Point aParentLogPos( GetBounds( pParent ).Pos() ); // twip rel to doc root
- Point aParentPixPos( GetMap()->CoreToPixel( aParentLogPos ) );
+ SwRect aParentLogBounds( GetBounds( pParent ) ); // twip rel to doc root
+ Point aParentPixPos( GetMap()->CoreToPixel( aParentLogBounds.SVRect() ).TopLeft() );
aPixBounds.Move( -aParentPixPos.X(), -aParentPixPos.Y() );
}
}
@@ -1150,10 +1156,10 @@ void SwAccessibleContext::Dispose( sal_Bool bRecursive )
}
// broadcast dispose event
+ if ( nClientId )
{
- EventObject aEvent;
- aEvent.Source = xThis;
- aAccessibleEventListeners.disposeAndClear( aEvent );
+ comphelper::AccessibleEventNotifier::revokeClientNotifyDisposing( nClientId, *this );
+ nClientId = 0;
DBG_MSG_CD( "dispose" )
}
diff --git a/sw/source/core/access/acccontext.hxx b/sw/source/core/access/acccontext.hxx
index e1a984d95a72..832d64d41d2d 100644
--- a/sw/source/core/access/acccontext.hxx
+++ b/sw/source/core/access/acccontext.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: acccontext.hxx,v $
*
- * $Revision: 1.30 $
+ * $Revision: 1.31 $
*
- * last change: $Author: mib $ $Date: 2002-10-29 14:05:36 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:39:16 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -140,7 +140,6 @@ protected:
private:
::rtl::OUString sName; // immutable outside constructor
- ::cppu::OInterfaceContainerHelper aAccessibleEventListeners;
// The parent if it has been retrieved. This is always an
// SwAccessibleContext. (protected by Mutex)
@@ -149,6 +148,7 @@ private:
SwAccessibleMap *pMap; // must be protected by solar mutex
+ sal_uInt32 nClientId; // client id in the AccessibleEventNotifier queue
sal_Int16 nRole; // immutable outside constructor
// The current states (protected by mutex)
diff --git a/sw/source/core/access/accdoc.cxx b/sw/source/core/access/accdoc.cxx
index f58ea220b161..6398729b0baf 100644
--- a/sw/source/core/access/accdoc.cxx
+++ b/sw/source/core/access/accdoc.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: accdoc.cxx,v $
*
- * $Revision: 1.19 $
+ * $Revision: 1.20 $
*
- * last change: $Author: hbrinkm $ $Date: 2002-10-02 08:48:09 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:39:16 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -514,11 +514,14 @@ Sequence< Type > SAL_CALL SwAccessibleDocument::getTypes() throw(RuntimeExceptio
Sequence< sal_Int8 > SAL_CALL SwAccessibleDocument::getImplementationId()
throw(RuntimeException)
{
+ vos::OGuard aGuard(Application::GetSolarMutex());
static Sequence< sal_Int8 > aId( 16 );
static sal_Bool bInit = sal_False;
if(!bInit)
- rtl_createUuid( reinterpret_cast< sal_uInt8 * >(aId.getArray() ),
- 0, sal_True );
+ {
+ rtl_createUuid( (sal_uInt8 *)(aId.getArray() ), 0, sal_True );
+ bInit = sal_True;
+ }
return aId;
}
diff --git a/sw/source/core/access/accembedded.cxx b/sw/source/core/access/accembedded.cxx
index 53acc19460d6..331ae57e14c6 100644
--- a/sw/source/core/access/accembedded.cxx
+++ b/sw/source/core/access/accembedded.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: accembedded.cxx,v $
*
- * $Revision: 1.3 $
+ * $Revision: 1.4 $
*
- * last change: $Author: mib $ $Date: 2002-08-15 10:25:08 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:39:17 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -65,6 +65,10 @@
#pragma hdrstop
+#ifndef _SV_SVAPP_HXX
+#include <vcl/svapp.hxx>
+#endif
+
#ifndef _DRAFTS_COM_SUN_STAR_ACCESSIBILITY_ACCESSIBLEROLE_HPP_
#include <drafts/com/sun/star/accessibility/AccessibleRole.hpp>
#endif
@@ -132,10 +136,13 @@ Sequence< OUString > SAL_CALL SwAccessibleEmbeddedObject::getSupportedServiceNam
Sequence< sal_Int8 > SAL_CALL SwAccessibleEmbeddedObject::getImplementationId()
throw(RuntimeException)
{
+ vos::OGuard aGuard(Application::GetSolarMutex());
static Sequence< sal_Int8 > aId( 16 );
static sal_Bool bInit = sal_False;
if(!bInit)
- rtl_createUuid( reinterpret_cast< sal_uInt8 * >(aId.getArray() ),
- 0, sal_True );
+ {
+ rtl_createUuid( (sal_uInt8 *)(aId.getArray() ), 0, sal_True );
+ bInit = sal_True;
+ }
return aId;
}
diff --git a/sw/source/core/access/accfootnote.cxx b/sw/source/core/access/accfootnote.cxx
index c8d9874f642c..ea272622d3c8 100644
--- a/sw/source/core/access/accfootnote.cxx
+++ b/sw/source/core/access/accfootnote.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: accfootnote.cxx,v $
*
- * $Revision: 1.6 $
+ * $Revision: 1.7 $
*
- * last change: $Author: mib $ $Date: 2002-12-05 14:32:16 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:39:18 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -213,11 +213,14 @@ Sequence< OUString > SAL_CALL SwAccessibleFootnote::getSupportedServiceNames()
Sequence< sal_Int8 > SAL_CALL SwAccessibleFootnote::getImplementationId()
throw(RuntimeException)
{
+ vos::OGuard aGuard(Application::GetSolarMutex());
static Sequence< sal_Int8 > aId( 16 );
static sal_Bool bInit = sal_False;
if(!bInit)
- rtl_createUuid( reinterpret_cast< sal_uInt8 * >(aId.getArray() ),
- 0, sal_True );
+ {
+ rtl_createUuid( (sal_uInt8 *)(aId.getArray() ), 0, sal_True );
+ bInit = sal_True;
+ }
return aId;
}
diff --git a/sw/source/core/access/accgraphic.cxx b/sw/source/core/access/accgraphic.cxx
index f958e8828fc6..8a5680659eed 100644
--- a/sw/source/core/access/accgraphic.cxx
+++ b/sw/source/core/access/accgraphic.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: accgraphic.cxx,v $
*
- * $Revision: 1.3 $
+ * $Revision: 1.4 $
*
- * last change: $Author: mib $ $Date: 2002-08-15 10:25:12 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:39:18 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -65,6 +65,10 @@
#pragma hdrstop
+#ifndef _SV_SVAPP_HXX
+#include <vcl/svapp.hxx>
+#endif
+
#ifndef _DRAFTS_COM_SUN_STAR_ACCESSIBILITY_ACCESSIBLEROLE_HPP_
#include <drafts/com/sun/star/accessibility/AccessibleRole.hpp>
#endif
@@ -131,10 +135,13 @@ Sequence< OUString > SAL_CALL SwAccessibleGraphic::getSupportedServiceNames()
Sequence< sal_Int8 > SAL_CALL SwAccessibleGraphic::getImplementationId()
throw(RuntimeException)
{
+ vos::OGuard aGuard(Application::GetSolarMutex());
static Sequence< sal_Int8 > aId( 16 );
static sal_Bool bInit = sal_False;
if(!bInit)
- rtl_createUuid( reinterpret_cast< sal_uInt8 * >(aId.getArray() ),
- 0, sal_True );
+ {
+ rtl_createUuid( (sal_uInt8 *)(aId.getArray() ), 0, sal_True );
+ bInit = sal_True;
+ }
return aId;
}
diff --git a/sw/source/core/access/accheaderfooter.cxx b/sw/source/core/access/accheaderfooter.cxx
index 15604c509ab6..c61e327c18a9 100644
--- a/sw/source/core/access/accheaderfooter.cxx
+++ b/sw/source/core/access/accheaderfooter.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: accheaderfooter.cxx,v $
*
- * $Revision: 1.7 $
+ * $Revision: 1.8 $
*
- * last change: $Author: mib $ $Date: 2002-12-05 14:32:16 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:39:19 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -190,10 +190,13 @@ Sequence< OUString > SAL_CALL SwAccessibleHeaderFooter::getSupportedServiceNames
Sequence< sal_Int8 > SAL_CALL SwAccessibleHeaderFooter::getImplementationId()
throw(RuntimeException)
{
+ vos::OGuard aGuard(Application::GetSolarMutex());
static Sequence< sal_Int8 > aId( 16 );
static sal_Bool bInit = sal_False;
if(!bInit)
- rtl_createUuid( reinterpret_cast< sal_uInt8 * >(aId.getArray() ),
- 0, sal_True );
+ {
+ rtl_createUuid( (sal_uInt8 *)(aId.getArray() ), 0, sal_True );
+ bInit = sal_True;
+ }
return aId;
}
diff --git a/sw/source/core/access/accmap.cxx b/sw/source/core/access/accmap.cxx
index 90c9fff643b9..bf09b4b517fb 100644
--- a/sw/source/core/access/accmap.cxx
+++ b/sw/source/core/access/accmap.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: accmap.cxx,v $
*
- * $Revision: 1.39 $
+ * $Revision: 1.40 $
*
- * last change: $Author: mib $ $Date: 2002-09-27 11:44:18 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:39:19 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -184,7 +184,10 @@
#ifndef _CPPUHELPER_IMPLBASE1_HXX_
#include <cppuhelper/implbase1.hxx>
#endif
-
+// OD 15.01.2003 #103492#
+#ifndef _PAGEPREVIEWLAYOUT_HXX
+#include <pagepreviewlayout.hxx>
+#endif
using namespace ::com::sun::star::uno;
using namespace ::drafts::com::sun::star::accessibility;
@@ -1084,27 +1087,23 @@ Reference< XAccessible > SwAccessibleMap::GetDocumentView( )
return _GetDocumentView( sal_False );
}
+// OD 14.01.2003 #103492# - complete re-factoring of method due to new page/print
+// preview functionality.
Reference<XAccessible> SwAccessibleMap::GetDocumentPreview(
- sal_uInt8 nRow,
- sal_uInt8 nColumn,
- sal_Int16 nStartPage,
- const Size& rPageSize,
- const Point& rFreePoint,
- const Fraction& rScale,
- sal_uInt16 nSelectedPage )
+ const std::vector<PrevwPage*>& _rPrevwPages,
+ const Fraction& _rScale,
+ const SwPageFrm* _pSelectedPageFrm,
+ const Size& _rPrevwWinSize )
{
// create & update preview data object
if( mpPreview == NULL )
mpPreview = new SwAccPreviewData();
- mpPreview->Update( nRow, nColumn, nStartPage,
- rPageSize, rFreePoint, rScale, GetShell(),
- nSelectedPage );
+ mpPreview->Update( _rPrevwPages, _rScale, _pSelectedPageFrm, _rPrevwWinSize );
Reference<XAccessible> xAcc = _GetDocumentView( sal_True );
return xAcc;
}
-
Reference< XAccessible> SwAccessibleMap::GetContext( const SwFrm *pFrm,
sal_Bool bCreate )
{
@@ -1836,19 +1835,18 @@ void SwAccessibleMap::InvalidateRelationSet( const SwFrm* pMaster,
_InvalidateRelationSet( pFollow, sal_True );
}
-void SwAccessibleMap::UpdatePreview( sal_uInt8 nRow, sal_uInt8 nColumn,
- sal_Int16 nStartPage,
- const Size& rPageSize,
- const Point& rFreePoint,
- const Fraction& rScale,
- sal_uInt16 nSelectedPage )
+// OD 15.01.2003 #103492# - complete re-factoring of method due to new page/print
+// preview functionality.
+void SwAccessibleMap::UpdatePreview( const std::vector<PrevwPage*>& _rPrevwPages,
+ const Fraction& _rScale,
+ const SwPageFrm* _pSelectedPageFrm,
+ const Size& _rPrevwWinSize )
{
DBG_ASSERT( GetShell()->IsPreView(), "no preview?" );
DBG_ASSERT( mpPreview != NULL, "no preview data?" );
- mpPreview->Update( nRow, nColumn, nStartPage,
- rPageSize, rFreePoint, rScale, GetShell(),
- nSelectedPage );
+ // OD 15.01.2003 #103492# - adjustments for changed method signature
+ mpPreview->Update( _rPrevwPages, _rScale, _pSelectedPageFrm, _rPrevwWinSize );
// propagate change of VisArea through the document's
// accessibility tree; this will also send appropriate scroll
@@ -1885,7 +1883,8 @@ void SwAccessibleMap::InvalidatePreViewSelection( sal_uInt16 nSelPage )
DBG_ASSERT( GetShell()->IsPreView(), "no preview?" );
DBG_ASSERT( mpPreview != NULL, "no preview data?" );
- mpPreview->InvalidateSelection( nSelPage );
+ // OD 16.01.2003 #103492# - changed metthod call due to method signature change.
+ mpPreview->InvalidateSelection( GetShell()->GetLayout()->GetPageByPageNum( nSelPage ) );
Reference < XAccessible > xOldAcc;
Reference < XAccessible > xAcc;
@@ -1974,7 +1973,10 @@ Point SwAccessibleMap::LogicToPixel( const Point& rPoint ) const
Window *pWin = GetShell()->GetWin();
if( pWin )
{
- aPoint = pWin->LogicToPixel( aPoint );
+ // OD 16.01.2003 #103492# - get mapping mode for LogicToPixel conversion
+ MapMode aMapMode;
+ GetMapMode( aPoint, aMapMode );
+ aPoint = pWin->LogicToPixel( aPoint, aMapMode );
aPoint = pWin->OutputToAbsoluteScreenPixel( aPoint );
}
@@ -1988,7 +1990,10 @@ Size SwAccessibleMap::LogicToPixel( const Size& rSize ) const
Size aSize( OutputDevice::LogicToLogic( rSize, aSrc, aDest ) );
if( GetShell()->GetWin() )
{
- aSize = GetShell()->GetWin()->LogicToPixel( aSize );
+ // OD 16.01.2003 #103492# - get mapping mode for LogicToPixel conversion
+ MapMode aMapMode;
+ GetMapMode( Point(0,0), aMapMode );
+ aSize = GetShell()->GetWin()->LogicToPixel( aSize, aMapMode );
}
return aSize;
@@ -2001,7 +2006,10 @@ Point SwAccessibleMap::PixelToLogic( const Point& rPoint ) const
if( pWin )
{
aPoint = pWin->ScreenToOutputPixel( rPoint );
- aPoint = pWin->PixelToLogic( aPoint );
+ // OD 16.01.2003 #103492# - get mapping mode for PixelToLogic conversion
+ MapMode aMapMode;
+ GetMapMode( aPoint, aMapMode );
+ aPoint = pWin->PixelToLogic( aPoint, aMapMode );
MapMode aSrc( MAP_TWIP );
MapMode aDest( MAP_100TH_MM );
aPoint = OutputDevice::LogicToLogic( aPoint, aSrc, aDest );
@@ -2015,7 +2023,10 @@ Size SwAccessibleMap::PixelToLogic( const Size& rSize ) const
Size aSize;
if( GetShell()->GetWin() )
{
- aSize = GetShell()->GetWin()->PixelToLogic( rSize );
+ // OD 16.01.2003 #103492# - get mapping mode for PixelToLogic conversion
+ MapMode aMapMode;
+ GetMapMode( Point(0,0), aMapMode );
+ aSize = GetShell()->GetWin()->PixelToLogic( rSize, aMapMode );
MapMode aSrc( MAP_TWIP );
MapMode aDest( MAP_100TH_MM );
aSize = OutputDevice::LogicToLogic( aSize, aSrc, aDest );
@@ -2102,24 +2113,15 @@ sal_Bool SwAccessibleMap::ReplaceChild (
return sal_True;
}
-Point SwAccessibleMap::CoreToPixel( const Point& rPoint ) const
-{
- Point aPoint;
- if( GetShell()->GetWin() )
- {
- PreviewAdjust( rPoint, sal_False );
- aPoint = GetShell()->GetWin()->LogicToPixel( rPoint );
- }
- return aPoint;
-}
-
Point SwAccessibleMap::PixelToCore( const Point& rPoint ) const
{
Point aPoint;
if( GetShell()->GetWin() )
{
- PreviewAdjust( rPoint, sal_True );
- aPoint = GetShell()->GetWin()->PixelToLogic( rPoint );
+ // OD 15.01.2003 #103492# - replace <PreviewAdjust(..)> by <GetMapMode(..)>
+ MapMode aMapMode;
+ GetMapMode( rPoint, aMapMode );
+ aPoint = GetShell()->GetWin()->PixelToLogic( rPoint, aMapMode );
}
return aPoint;
}
@@ -2162,10 +2164,12 @@ Rectangle SwAccessibleMap::CoreToPixel( const Rectangle& rRect ) const
Rectangle aRect;
if( GetShell()->GetWin() )
{
- PreviewAdjust( rRect.TopLeft(), sal_False );
- aRect = GetShell()->GetWin()->LogicToPixel( rRect );
+ // OD 15.01.2003 #103492# - replace <PreviewAdjust(..)> by <GetMapMode(..)>
+ MapMode aMapMode;
+ GetMapMode( rRect.TopLeft(), aMapMode );
+ aRect = GetShell()->GetWin()->LogicToPixel( rRect, aMapMode );
- Rectangle aTmpRect = GetShell()->GetWin()->PixelToLogic( aRect );
+ Rectangle aTmpRect = GetShell()->GetWin()->PixelToLogic( aRect, aMapMode );
lcl_CorrectRectangle(aRect, rRect, aTmpRect);
}
@@ -2177,38 +2181,69 @@ Rectangle SwAccessibleMap::PixelToCore( const Rectangle& rRect ) const
Rectangle aRect;
if( GetShell()->GetWin() )
{
- PreviewAdjust( rRect.TopLeft(), sal_True );
- aRect = GetShell()->GetWin()->PixelToLogic( rRect );
+ // OD 15.01.2003 #103492# - replace <PreviewAdjust(..)> by <GetMapMode(..)>
+ MapMode aMapMode;
+ GetMapMode( rRect.TopLeft(), aMapMode );
+ aRect = GetShell()->GetWin()->PixelToLogic( rRect, aMapMode );
- Rectangle aTmpRect = GetShell()->GetWin()->LogicToPixel( aRect );
+ Rectangle aTmpRect = GetShell()->GetWin()->LogicToPixel( aRect, aMapMode );
lcl_CorrectRectangle(aRect, rRect, aTmpRect);
}
return aRect;
}
-inline void SwAccessibleMap::PreviewAdjust( const Point& rPoint,
- sal_Bool bFromPreview ) const
+/** get mapping mode for LogicToPixel and PixelToLogic conversions
+
+ OD 15.01.2003 #103492#
+ Replacement method <PreviewAdjust(..)> by new method <GetMapMode>.
+ Method returns mapping mode of current output device and adjusts it,
+ if the shell is in page/print preview.
+ Necessary, because <PreviewAdjust(..)> changes mapping mode at current
+ output device for mapping logic document positions to page preview window
+ positions and vice versa and doesn't take care to recover its changes.
+
+ @author OD
+*/
+void SwAccessibleMap::GetMapMode( const Point& _rPoint,
+ MapMode& _orMapMode ) const
{
+ MapMode aMapMode = GetShell()->GetWin()->GetMapMode();
if( GetShell()->IsPreView() )
{
DBG_ASSERT( mpPreview != NULL, "need preview data" );
- Window* pWin = GetShell()->GetWin();
- MapMode aMode = pWin->GetMapMode();
- mpPreview->AdjustMapMode( aMode, rPoint, sal_True );
- pWin->SetMapMode( aMode );
+ mpPreview->AdjustMapMode( aMapMode, _rPoint );
}
+ _orMapMode = aMapMode;
}
+/** get size of a dedicated preview page
+
+ OD 15.01.2003 #103492#
+
+ @author OD
+*/
+Size SwAccessibleMap::GetPreViewPageSize( sal_uInt16 _nPrevwPageNum ) const
+{
+ DBG_ASSERT( mpVSh->IsPreView(), "no page preview accessible." );
+ DBG_ASSERT( mpVSh->IsPreView() && ( mpPreview != NULL ),
+ "missing accessible preview data at page preview" );
+ if ( mpVSh->IsPreView() && ( mpPreview != NULL ) )
+ {
+ return mpVSh->PagePreviewLayout()->GetPrevwPageSizeByPageNum( _nPrevwPageNum );
+ }
+ else
+ {
+ return Size( 0, 0 );
+ }
+}
//
// SwAccPreviewData
//
SwAccPreviewData::SwAccPreviewData() :
- mpStartPage( 0 ),
- mpSelPage( 0 ),
- mnStartPage( 0 )
+ mpSelPage( 0 )
{
}
@@ -2216,139 +2251,61 @@ SwAccPreviewData::~SwAccPreviewData()
{
}
-void SwAccPreviewData::Update( sal_uInt8 nRow,
- sal_uInt8 nColumn,
- sal_uInt16 nStartPage,
- const Size& rPageSize,
- const Point& rFreePixel,
- const Fraction& rScale,
- ViewShell* pShell,
- sal_uInt16 nSelPage )
-{
- DBG_ASSERT( nRow > 0, "invalid row value" );
- DBG_ASSERT( nColumn > 0, "invalid column value" );
- DBG_ASSERT( nStartPage >= 0, "invalid start page" );
- DBG_ASSERT( pShell != NULL, "need view shell" );
- DBG_ASSERT( pShell->IsPreView(), "not inpreview?" );
-
- // store the rScale (for AdjustMapMode; will be called from here, too)
- maScale = rScale;
- maPageSize = rPageSize;
-
- // get first page frame from layout, and iterate to page nSttPage
- SwRootFrm* pRoot = pShell->GetLayout();
- DBG_ASSERT( pRoot != NULL, "No layout?" );
-
- SwPageFrm* pPage = static_cast<SwPageFrm*>( pRoot->Lower() );
- DBG_ASSERT( pPage != NULL, "No page?" );
-
- // adjust for the first page (which is always a right page) if
- // there is more than one column
- sal_Bool bSkipFirstPage = (nStartPage == 0) && (nColumn != 1);
-
- // get offset of selected page
- mnStartPage = nStartPage;
- nSelPage -= nStartPage;
-
- // we'll count on nStartPage, so it should be zero-based
- if( nStartPage > 0 )
- nStartPage--;
-
- // iterate until nStartPage is found
- sal_Int32 nPage = 0;
- while( (nStartPage > 0) && (pPage != NULL) )
- {
- pPage = static_cast<SwPageFrm*>( pPage->GetNext() );
- nStartPage--;
-
- // if pPage isn't valid, thethe parameter checking allowed an
- // invalid index
- DBG_ASSERT( pPage != NULL, "non-existing start page" );
- }
-
- // iterate over pages and collect data
- // 1) VisArea as union of visible pages
- // 2) areas of visible pages for preview/logic mapping
- mpStartPage = pPage;
- mpSelPage = 0;
- if( pPage != NULL )
- {
- // first page: use to initialize VisArea
- SwFrmOrObj aPage( pPage );
- maVisArea = aPage.GetBox();
- maPreviewRects.clear();
- maLogicRects.clear();
-
- // compute free point
- MapMode aMapMode( MAP_TWIP );
- AdjustMapMode( aMapMode );
- Point aFreePoint = pShell->GetWin()->PixelToLogic( rFreePixel,
- aMapMode );
-
- // loop over col*row pages, and advance aCurrentPoint to start
- // of this page's previeww
- Point aCurrentPoint = aFreePoint;
- for( sal_uInt8 nR = 0; (pPage != NULL) && (nR < nRow); nR++ )
- {
- aCurrentPoint.X() = aFreePoint.X();
+// OD 13.01.2003 #103492# - complete re-factoring of method due to new page/print
+// preview functionality.
+void SwAccPreviewData::Update( const std::vector<PrevwPage*>& _rPrevwPages,
+ const Fraction& _rScale,
+ const SwPageFrm* _pSelectedPageFrm,
+ const Size& _rPrevwWinSize )
+{
+ // store preview scaling, maximal preview page size and selected page
+ maScale = _rScale;
+ mpSelPage = _pSelectedPageFrm;
+
+ // prepare loop on preview pages
+ maPreviewRects.clear();
+ maLogicRects.clear();
+ SwFrmOrObj aPage;
+ maVisArea.Clear();
+
+ // loop on preview pages to calculate <maPreviewRects>, <maLogicRects> and
+ // <maVisArea>
+ for ( std::vector<PrevwPage*>::const_iterator aPageIter = _rPrevwPages.begin();
+ aPageIter != _rPrevwPages.end();
+ ++aPageIter )
+ {
+ aPage = (*aPageIter)->pPage;
+
+ // add preview page rectangle to <maPreviewRects>
+ Rectangle aPrevwPgRect( (*aPageIter)->aPrevwWinPos, (*aPageIter)->aPageSize );
+ maPreviewRects.push_back( aPrevwPgRect );
- for( sal_uInt8 nC = 0; (pPage != NULL) && (nC < nColumn); nC++ )
+ // add logic page rectangle to <maLogicRects>
+ SwRect aLogicPgSwRect( aPage.GetBox() );
+ Rectangle aLogicPgRect( aLogicPgSwRect.SVRect() );
+ maLogicRects.push_back( aLogicPgRect );
+ // union visible area with visible part of logic page rectangle
+ if ( (*aPageIter)->bVisible )
+ {
+ if ( !(*aPageIter)->pPage->IsEmptyPage() )
{
- if( bSkipFirstPage )
- {
- aCurrentPoint.X() += rPageSize.Width();
- bSkipFirstPage = sal_False;
- // DON'T proceed to next page!
- }
- else
- {
- // collect data
- aPage = pPage;
- SwRect aSwRect = aPage.GetBox();
- maVisArea.Union( aSwRect );
-
- Rectangle aRect = aSwRect.SVRect();
- maLogicRects.push_back( aRect );
- aRect.SetPos( aCurrentPoint );
- maPreviewRects.push_back( aRect );
-
- aCurrentPoint.X() += pPage->IsEmptyPage()
- ? rPageSize.Width()
- : aSwRect.Width();
- if( 0 == nSelPage )
- mpSelPage = pPage;
-
- pPage = static_cast<SwPageFrm*>( pPage->GetNext() );
- }
- aCurrentPoint.X() += aFreePoint.X() +1;
- nSelPage--;
+ AdjustLogicPgRectToVisibleArea( aLogicPgSwRect,
+ SwRect( aPrevwPgRect ),
+ _rPrevwWinSize );
}
- aCurrentPoint.Y() += rPageSize.Height() + 1 + aFreePoint.Y();
+ if ( maVisArea.IsEmpty() )
+ maVisArea = aLogicPgSwRect;
+ else
+ maVisArea.Union( aLogicPgSwRect );
}
}
}
-void SwAccPreviewData::InvalidateSelection( sal_uInt16 nSelPage )
+// OD 16.01.2003 #103492# - complete re-factoring of method due to new page/print
+// preview functionality.
+void SwAccPreviewData::InvalidateSelection( const SwPageFrm* _pSelectedPageFrm )
{
- mpSelPage = 0;
- nSelPage -= mnStartPage;
- ASSERT( nSelPage >= 0, "invalid selected page" );
- ASSERT( mpStartPage, "no start page" );
- if( mpStartPage != NULL )
- {
- const SwPageFrm *pPage = mpStartPage;
-
- // loop over col*row pages, and advance aCurrentPoint to start
- // of this page's preview
- while( mpSelPage == 0 && pPage != 0 )
- {
- if( 0 == nSelPage )
- mpSelPage = pPage;
-
- pPage = static_cast<const SwPageFrm*>( pPage->GetNext() );
- nSelPage--;
- }
- }
+ mpSelPage = _pSelectedPageFrm;
ASSERT( mpSelPage, "selected page not found" );
}
@@ -2367,67 +2324,16 @@ const SwRect& SwAccPreviewData::GetVisArea() const
return maVisArea;
}
-Point SwAccPreviewData::PreviewToLogic(const Point& rPoint) const
-{
- Rectangles::const_iterator aIter = find_if( maPreviewRects.begin(),
- maPreviewRects.end(),
- ContainsPredicate( rPoint ) );
- if( aIter != maPreviewRects.end() )
- {
- Point aPoint = rPoint;
- aPoint -= aIter->TopLeft();
- aPoint += (maLogicRects.begin() + ( aIter - maPreviewRects.begin() ))
- ->TopLeft();
- return aPoint;
- }
- else
- return Point(0,0);
-}
-
-Point SwAccPreviewData::LogicToPreview(const Point& rPoint) const
-{
- Rectangles::const_iterator aIter = find_if( maLogicRects.begin(),
- maLogicRects.end(),
- ContainsPredicate( rPoint ) );
- if( aIter != maLogicRects.end() )
- {
- Point aPoint = rPoint;
- aPoint -= aIter->TopLeft();
- aPoint += (maPreviewRects.begin() + ( aIter - maLogicRects.begin() ))
- ->TopLeft();
- return aPoint;
- }
- else
- return Point(0,0);
-}
-
-void SwAccPreviewData::AdjustMapMode( MapMode& rMapMode ) const
+void SwAccPreviewData::AdjustMapMode( MapMode& rMapMode,
+ const Point& rPoint ) const
{
// adjust scale
rMapMode.SetScaleX( maScale );
rMapMode.SetScaleY( maScale );
-}
-
-void SwAccPreviewData::DisposePage(const SwPageFrm *pPageFrm )
-{
- if( mpStartPage == pPageFrm )
- mpStartPage = 0;
- if( mpSelPage == pPageFrm )
- mpSelPage = 0;
-}
-
-
-void SwAccPreviewData::AdjustMapMode( MapMode& rMapMode,
- const Point& rPoint,
- sal_Bool bFromPreview ) const
-{
- // adjust scale
- AdjustMapMode( rMapMode );
// find proper rectangle
- const Rectangles& rRects = bFromPreview ? maLogicRects : maPreviewRects;
- Rectangles::const_iterator aBegin = rRects.begin();
- Rectangles::const_iterator aEnd = rRects.end();
+ Rectangles::const_iterator aBegin = maLogicRects.begin();
+ Rectangles::const_iterator aEnd = maLogicRects.end();
Rectangles::const_iterator aFound = find_if( aBegin, aEnd,
ContainsPredicate( rPoint ) );
@@ -2440,3 +2346,45 @@ void SwAccPreviewData::AdjustMapMode( MapMode& rMapMode,
}
// else: don't adjust MapMode
}
+
+void SwAccPreviewData::DisposePage(const SwPageFrm *pPageFrm )
+{
+ if( mpSelPage == pPageFrm )
+ mpSelPage = 0;
+}
+
+/** adjust logic page retangle to its visible part
+
+ OD 17.01.2003 #103492#
+
+ @author OD
+*/
+void SwAccPreviewData::AdjustLogicPgRectToVisibleArea(
+ SwRect& _iorLogicPgSwRect,
+ const SwRect& _rPrevwPgSwRect,
+ const Size& _rPrevwWinSize )
+{
+ // determine preview window rectangle
+ const SwRect aPrevwWinSwRect( Point( 0, 0 ), _rPrevwWinSize );
+ // calculate visible preview page rectangle
+ SwRect aVisPrevwPgSwRect( _rPrevwPgSwRect );
+ aVisPrevwPgSwRect.Intersection( aPrevwWinSwRect );
+ // adjust logic page rectangle
+ SwTwips nTmpDiff;
+ // left
+ nTmpDiff = aVisPrevwPgSwRect.Left() - _rPrevwPgSwRect.Left();
+ if ( nTmpDiff > 0 )
+ _iorLogicPgSwRect.Left( _iorLogicPgSwRect.Left() + nTmpDiff );
+ // top
+ nTmpDiff = aVisPrevwPgSwRect.Top() - _rPrevwPgSwRect.Top();
+ if ( nTmpDiff > 0 )
+ _iorLogicPgSwRect.Top( _iorLogicPgSwRect.Top() + nTmpDiff );
+ // right
+ nTmpDiff = _rPrevwPgSwRect.Right() - aVisPrevwPgSwRect.Right();
+ if ( nTmpDiff > 0 )
+ _iorLogicPgSwRect.Right( _iorLogicPgSwRect.Right() - nTmpDiff );
+ // bottom
+ nTmpDiff = _rPrevwPgSwRect.Bottom() - aVisPrevwPgSwRect.Bottom();
+ if ( nTmpDiff > 0 )
+ _iorLogicPgSwRect.Bottom( _iorLogicPgSwRect.Bottom() - nTmpDiff );
+}
diff --git a/sw/source/core/access/accpage.cxx b/sw/source/core/access/accpage.cxx
index d8e3f977a097..bab45c3cbf39 100644
--- a/sw/source/core/access/accpage.cxx
+++ b/sw/source/core/access/accpage.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: accpage.cxx,v $
*
- * $Revision: 1.6 $
+ * $Revision: 1.7 $
*
- * last change: $Author: mib $ $Date: 2002-08-15 12:18:38 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:39:19 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -249,11 +249,14 @@ Sequence<OUString> SwAccessiblePage::getSupportedServiceNames( )
Sequence< sal_Int8 > SAL_CALL SwAccessiblePage::getImplementationId()
throw(RuntimeException)
{
+ vos::OGuard aGuard(Application::GetSolarMutex());
static Sequence< sal_Int8 > aId( 16 );
static sal_Bool bInit = sal_False;
if(!bInit)
- rtl_createUuid( reinterpret_cast< sal_uInt8 * >(aId.getArray() ),
- 0, sal_True );
+ {
+ rtl_createUuid( (sal_uInt8 *)(aId.getArray() ), 0, sal_True );
+ bInit = sal_True;
+ }
return aId;
}
diff --git a/sw/source/core/access/accpara.cxx b/sw/source/core/access/accpara.cxx
index 5f596d0508ef..4feca8692506 100644
--- a/sw/source/core/access/accpara.cxx
+++ b/sw/source/core/access/accpara.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: accpara.cxx,v $
*
- * $Revision: 1.47 $
+ * $Revision: 1.48 $
*
- * last change: $Author: mib $ $Date: 2002-12-05 14:10:33 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:39:21 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -1099,11 +1099,14 @@ Sequence< Type > SAL_CALL SwAccessibleParagraph::getTypes() throw(RuntimeExcepti
Sequence< sal_Int8 > SAL_CALL SwAccessibleParagraph::getImplementationId()
throw(RuntimeException)
{
+ vos::OGuard aGuard(Application::GetSolarMutex());
static Sequence< sal_Int8 > aId( 16 );
static sal_Bool bInit = sal_False;
if(!bInit)
- rtl_createUuid( reinterpret_cast< sal_uInt8 * >(aId.getArray() ),
- 0, sal_True );
+ {
+ rtl_createUuid( (sal_uInt8 *)(aId.getArray() ), 0, sal_True );
+ bInit = sal_True;
+ }
return aId;
}
@@ -1263,8 +1266,8 @@ com::sun::star::awt::Rectangle SwAccessibleParagraph::getCharacterBounds(
CHECK_FOR_WINDOW( XAccessibleComponent, pWin );
Rectangle aScreenRect( GetMap()->CoreToPixel( aCoreRect.SVRect() ));
- Point aFrmLogPos( GetBounds().Pos() ); // twip rel to doc root
- Point aFrmPixPos( GetMap()->CoreToPixel( aFrmLogPos ) );
+ SwRect aFrmLogBounds( GetBounds() ); // twip rel to doc root
+ Point aFrmPixPos( GetMap()->CoreToPixel( aFrmLogBounds.SVRect() ).TopLeft() );
aScreenRect.Move( -aFrmPixPos.X(), -aFrmPixPos.Y() );
// convert into AWT Rectangle
@@ -1288,6 +1291,7 @@ sal_Int32 SwAccessibleParagraph::getIndexAtPoint( const com::sun::star::awt::Poi
{
vos::OGuard aGuard(Application::GetSolarMutex());
+
CHECK_FOR_DEFUNC( XAccessibleText );
// construct SwPosition (where GetCrsrOfst() will put the result into)
@@ -1300,7 +1304,7 @@ sal_Int32 SwAccessibleParagraph::getIndexAtPoint( const com::sun::star::awt::Poi
CHECK_FOR_WINDOW( XAccessibleComponent, pWin );
Point aPoint( rPoint.X, rPoint.Y );
SwRect aLogBounds( GetBounds( GetFrm() ) ); // twip rel to doc root
- Point aPixPos( GetMap()->CoreToPixel( aLogBounds.Pos() ) );
+ Point aPixPos( GetMap()->CoreToPixel( aLogBounds.SVRect() ).TopLeft() );
aPoint.X() += aPixPos.X();
aPoint.Y() += aPixPos.Y();
MapMode aMapMode = pWin->GetMapMode();
diff --git a/sw/source/core/access/accpreview.cxx b/sw/source/core/access/accpreview.cxx
index 89acf5d63ad4..dac84cd53299 100644
--- a/sw/source/core/access/accpreview.cxx
+++ b/sw/source/core/access/accpreview.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: accpreview.cxx,v $
*
- * $Revision: 1.4 $
+ * $Revision: 1.5 $
*
- * last change: $Author: mib $ $Date: 2002-08-15 10:25:19 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:39:21 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -65,6 +65,10 @@
#pragma hdrstop
+#ifndef _SV_SVAPP_HXX
+#include <vcl/svapp.hxx>
+#endif
+
#ifndef _RTL_UUID_H_
#include <rtl/uuid.h>
#endif
@@ -131,10 +135,13 @@ Sequence<OUString> SwAccessiblePreview::getSupportedServiceNames( )
Sequence< sal_Int8 > SAL_CALL SwAccessiblePreview::getImplementationId()
throw(RuntimeException)
{
+ vos::OGuard aGuard(Application::GetSolarMutex());
static Sequence< sal_Int8 > aId( 16 );
static sal_Bool bInit = sal_False;
if(!bInit)
- rtl_createUuid( reinterpret_cast< sal_uInt8 * >(aId.getArray() ),
- 0, sal_True );
+ {
+ rtl_createUuid( (sal_uInt8 *)(aId.getArray() ), 0, sal_True );
+ bInit = sal_True;
+ }
return aId;
}
diff --git a/sw/source/core/access/acctable.cxx b/sw/source/core/access/acctable.cxx
index 18524e54915d..3cdb7ff3b82f 100644
--- a/sw/source/core/access/acctable.cxx
+++ b/sw/source/core/access/acctable.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: acctable.cxx,v $
*
- * $Revision: 1.16 $
+ * $Revision: 1.17 $
*
- * last change: $Author: hbrinkm $ $Date: 2002-09-11 13:50:11 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:39:22 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -916,11 +916,14 @@ Sequence< ::com::sun::star::uno::Type > SAL_CALL SwAccessibleTable::getTypes() t
Sequence< sal_Int8 > SAL_CALL SwAccessibleTable::getImplementationId()
throw(RuntimeException)
{
+ vos::OGuard aGuard(Application::GetSolarMutex());
static Sequence< sal_Int8 > aId( 16 );
static sal_Bool bInit = sal_False;
if(!bInit)
- rtl_createUuid( reinterpret_cast< sal_uInt8 * >(aId.getArray() ),
- 0, sal_True );
+ {
+ rtl_createUuid( (sal_uInt8 *)(aId.getArray() ), 0, sal_True );
+ bInit = sal_True;
+ }
return aId;
}
diff --git a/sw/source/core/access/acctextframe.cxx b/sw/source/core/access/acctextframe.cxx
index acb0b890cca1..6e890ce25e2e 100644
--- a/sw/source/core/access/acctextframe.cxx
+++ b/sw/source/core/access/acctextframe.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: acctextframe.cxx,v $
*
- * $Revision: 1.6 $
+ * $Revision: 1.7 $
*
- * last change: $Author: mib $ $Date: 2002-08-15 10:25:22 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:39:22 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -206,11 +206,14 @@ Sequence< OUString > SAL_CALL SwAccessibleTextFrame::getSupportedServiceNames()
Sequence< sal_Int8 > SAL_CALL SwAccessibleTextFrame::getImplementationId()
throw(RuntimeException)
{
+ vos::OGuard aGuard(Application::GetSolarMutex());
static Sequence< sal_Int8 > aId( 16 );
static sal_Bool bInit = sal_False;
if(!bInit)
- rtl_createUuid( reinterpret_cast< sal_uInt8 * >(aId.getArray() ),
- 0, sal_True );
+ {
+ rtl_createUuid( (sal_uInt8 *)(aId.getArray() ), 0, sal_True );
+ bInit = sal_True;
+ }
return aId;
}
diff --git a/sw/source/core/bastyp/bparr.cxx b/sw/source/core/bastyp/bparr.cxx
index 69ad8c6b0894..afd1c7f135a7 100644
--- a/sw/source/core/bastyp/bparr.cxx
+++ b/sw/source/core/bastyp/bparr.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: bparr.cxx,v $
*
- * $Revision: 1.2 $
+ * $Revision: 1.3 $
*
- * last change: $Author: mib $ $Date: 2001-11-28 13:47:32 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:39:26 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -117,11 +117,11 @@ BigPtrArray::~BigPtrArray()
BlockInfo** pp = ppInf;
for( USHORT n = 0; n < nBlock; ++n, ++pp )
{
- __DELETE( (*pp)->nElem ) (*pp)->pData;
- delete *pp;
+ delete[] (*pp)->pData;
+ delete *pp;
}
}
- __DELETE( nMaxBlock ) ppInf;
+ delete[] ppInf;
}
// Einfachst-Implementation, evtl. spaeter mal komplexer
@@ -278,7 +278,7 @@ BlockInfo* BigPtrArray::InsBlock( USHORT pos )
// dann sollte wir mal das Array erweitern
BlockInfo** ppNew = new BlockInfo* [ nMaxBlock + nBlockGrowSize ];
memcpy( ppNew, ppInf, nMaxBlock * sizeof( BlockInfo* ));
- __DELETE( nMaxBlock ) ppInf;
+ delete[] ppInf;
nMaxBlock += nBlockGrowSize;
ppInf = ppNew;
}
@@ -309,7 +309,7 @@ void BigPtrArray::BlockDel( USHORT nDel )
nDel = (( nBlock / nBlockGrowSize ) + 1 ) * nBlockGrowSize;
BlockInfo** ppNew = new BlockInfo* [ nDel ];
memcpy( ppNew, ppInf, nBlock * sizeof( BlockInfo* ));
- __DELETE( nMaxBlock ) ppInf;
+ delete[] ppInf;
ppInf = ppNew;
nMaxBlock = nDel;
}
@@ -449,7 +449,7 @@ void BigPtrArray::Remove( ULONG pos, ULONG n )
if( !p->nElem )
{
// eventuell Block ganz entfernen
- delete p->pData;
+ delete[] p->pData;
nBlkdel++;
if( USHRT_MAX == nBlk1del )
nBlk1del = cur;
@@ -588,8 +588,8 @@ USHORT BigPtrArray::Compress( short nMax )
if( !p->nElem )
{
// dann kann der entfernt werden
- delete p->pData;
- delete p, p = 0;
+ delete[] p->pData;
+ delete p, p = 0;
++nBlkdel;
}
else
diff --git a/sw/source/core/bastyp/calc.cxx b/sw/source/core/bastyp/calc.cxx
index c2ffd57314c2..342e2bff30ee 100644
--- a/sw/source/core/bastyp/calc.cxx
+++ b/sw/source/core/bastyp/calc.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: calc.cxx,v $
*
- * $Revision: 1.20 $
+ * $Revision: 1.21 $
*
- * last change: $Author: fme $ $Date: 2002-11-07 09:43:32 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:39:28 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -83,8 +83,8 @@
#include <tools/svwin.h>
#endif
-#ifndef _TOOLS_SOLMATH_HXX
-#include <tools/solmath.hxx>
+#ifndef INCLUDED_RTL_MATH_HXX
+#include <rtl/math.hxx>
#endif
#ifndef _SVX_ADRITEM_HXX //autogen
#include <svx/adritem.hxx>
@@ -144,6 +144,9 @@
#ifndef _SWUNODEF_HXX
#include <swunodef.hxx>
#endif
+#ifndef _SWTYPES_HXX
+#include <swtypes.hxx>
+#endif
// tippt sich schneller
#define RESOURCE ViewShell::GetShellRes()
@@ -556,13 +559,11 @@ String SwCalc::GetStrResult( double nValue, BOOL bRound )
}
USHORT nDec = 15; //pLclData->getNumDigits();
- String aRetStr;
-
- SolarMath::DoubleToString( aRetStr, nValue,
- 'A', /// 'F' 'E' 'G' 'A'
- nDec, /// Nachkommastellen
- pLclData->getNumDecimalSep().GetChar(0), /// Dezimalseparator
- TRUE );
+ String aRetStr( ::rtl::math::doubleToUString( nValue,
+ rtl_math_StringFormat_Automatic,
+ nDec,
+ pLclData->getNumDecimalSep().GetChar(0),
+ true ));
return aRetStr;
}
@@ -1628,18 +1629,20 @@ FASTBOOL SwCalc::Str2Double( const String& rCommand, xub_StrLen& rCommandPos,
if( !pLclD )
pLclD = &GetAppLocaleData();
- const xub_Unicode *pEnd, nCurrCmdPos = rCommandPos;
- int nErrno;
- rVal = SolarMath::StringToDouble( rCommand.GetBuffer() + rCommandPos,
- pLclD->getNumThousandSep().GetChar(0),
- pLclD->getNumDecimalSep().GetChar(0),
- nErrno, &pEnd );
+ const xub_Unicode nCurrCmdPos = rCommandPos;
+ rtl_math_ConversionStatus eStatus;
+ const sal_Unicode* pEnd;
+ rVal = rtl_math_uStringToDouble( rCommand.GetBuffer() + rCommandPos,
+ rCommand.GetBuffer() + rCommand.Len(),
+ pLclD->getNumDecimalSep().GetChar(0),
+ pLclD->getNumThousandSep().GetChar(0),
+ &eStatus, &pEnd );
rCommandPos = pEnd - rCommand.GetBuffer();
if( !pLclData && pLclD != &GetAppLocaleData() )
delete (LocaleDataWrapper*)pLclD;
- return 0 == nErrno && nCurrCmdPos != rCommandPos;
+ return rtl_math_ConversionStatus_Ok == eStatus && nCurrCmdPos != rCommandPos;
}
FASTBOOL SwCalc::Str2Double( const String& rCommand, xub_StrLen& rCommandPos,
@@ -1656,18 +1659,20 @@ FASTBOOL SwCalc::Str2Double( const String& rCommand, xub_StrLen& rCommandPos,
SvxCreateLocale( eLang ) );
}
- const xub_Unicode *pEnd, nCurrCmdPos = rCommandPos;
- int nErrno;
- rVal = SolarMath::StringToDouble( rCommand.GetBuffer() + rCommandPos,
- pLclD->getNumThousandSep().GetChar(0),
- pLclD->getNumDecimalSep().GetChar(0),
- nErrno, &pEnd );
+ const xub_Unicode nCurrCmdPos = rCommandPos;
+ rtl_math_ConversionStatus eStatus;
+ const sal_Unicode* pEnd;
+ rVal = rtl_math_uStringToDouble( rCommand.GetBuffer() + rCommandPos,
+ rCommand.GetBuffer() + rCommand.Len(),
+ pLclD->getNumDecimalSep().GetChar(0),
+ pLclD->getNumThousandSep().GetChar(0),
+ &eStatus, &pEnd );
rCommandPos = pEnd - rCommand.GetBuffer();
if( pLclD != &GetAppLocaleData() )
delete (LocaleDataWrapper*)pLclD;
- return 0 == nErrno && nCurrCmdPos != rCommandPos;
+ return rtl_math_ConversionStatus_Ok == eStatus && nCurrCmdPos != rCommandPos;
}
//------------------------------------------------------------------------------
@@ -1740,7 +1745,6 @@ SwSbxValue::~SwSbxValue()
{
}
-
BOOL SwSbxValue::GetBool() const
{
return SbxSTRING == GetType() ? 0 != GetString().Len()
@@ -1755,6 +1759,10 @@ double SwSbxValue::GetDouble() const
xub_StrLen nStt = 0;
SwCalc::Str2Double( GetString(), nStt, nRet );
}
+ else if (IsBool())
+ {
+ nRet = 0 != GetBool() ? 1.0 : 0.0;
+ }
else
nRet = SbxValue::GetDouble();
return nRet;
diff --git a/sw/source/core/bastyp/init.cxx b/sw/source/core/bastyp/init.cxx
index a6b85ced9b74..ead3be0207b1 100644
--- a/sw/source/core/bastyp/init.cxx
+++ b/sw/source/core/bastyp/init.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: init.cxx,v $
*
- * $Revision: 1.35 $
+ * $Revision: 1.36 $
*
- * last change: $Author: os $ $Date: 2002-08-26 11:36:56 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:39:29 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -991,7 +991,7 @@ void _FinitCore()
#ifndef PRODUCT
//Defaultattribut freigeben lassen um asserts zu vermeiden.
- if ( aAttrTab[0]->GetRef() )
+ if ( aAttrTab[0]->GetRefCount() )
SfxItemPool::ReleaseDefaults( aAttrTab, POOLATTR_END-POOLATTR_BEGIN, FALSE);
#endif
delete SwDoc::pACmpltWords;
diff --git a/sw/source/core/crsr/crsrsh.cxx b/sw/source/core/crsr/crsrsh.cxx
index d44181235787..2dddf0139e2a 100644
--- a/sw/source/core/crsr/crsrsh.cxx
+++ b/sw/source/core/crsr/crsrsh.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: crsrsh.cxx,v $
*
- * $Revision: 1.24 $
+ * $Revision: 1.25 $
*
- * last change: $Author: hbrinkm $ $Date: 2002-12-03 14:13:46 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:39:31 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -143,6 +143,9 @@
#ifndef _DOCSH_HXX
#include <docsh.hxx>
#endif
+#ifndef _DRAWFONT_HXX
+#include <drawfont.hxx>
+#endif
#ifndef _SWGLOBDOCSH_HXX //autogen
#include <globdoc.hxx>
#endif
@@ -437,7 +440,8 @@ FASTBOOL SwCrsrShell::LeftRight( BOOL bLeft, USHORT nCnt, USHORT nMode,
return bLeft ? GoPrevCell() : GoNextCell();
SwCallLink aLk( *this ); // Crsr-Moves ueberwachen, evt. Link callen
- FASTBOOL bRet = pCurCrsr->LeftRight( bLeft, nCnt, nMode, bVisualAllowed );
+ FASTBOOL bRet = pCurCrsr->LeftRight( bLeft, nCnt, nMode, bVisualAllowed,
+ ! IsOverwriteCrsr() );
if( bRet )
UpdateCrsr();
return bRet;
@@ -2344,6 +2348,8 @@ SwCrsrShell::SwCrsrShell( SwCrsrShell& rShell, Window *pWin )
eMvState = MV_NONE; // Status fuers Crsr-Travelling - GetCrsrOfst
pVisCrsr = new SwVisCrsr( this );
// UpdateCrsr( 0 );
+ // OD 11.02.2003 #100556#
+ mbMacroExecAllowed = rShell.IsMacroExecAllowed();
}
@@ -2392,6 +2398,8 @@ SwCrsrShell::SwCrsrShell( SwDoc& rDoc, Window *pWin, SwRootFrm *pRoot,
pVisCrsr = new SwVisCrsr( this );
// UpdateCrsr( 0 );
+ // OD 11.02.2003 #100556#
+ mbMacroExecAllowed = true;
}
@@ -2785,7 +2793,9 @@ FASTBOOL SwCrsrShell::IsInVerticalText( const Point* pPt ) const
FASTBOOL SwCrsrShell::IsInRightToLeftText( const Point* pPt ) const
{
const short nDir = GetTextDirection( pPt );
- return FRMDIR_HORI_RIGHT_TOP == nDir;
+ // GetTextDirection uses FRMDIR_VERT_TOP_LEFT to indicate RTL in
+ // vertical environment
+ return FRMDIR_VERT_TOP_LEFT == nDir || FRMDIR_HORI_RIGHT_TOP == nDir;
}
#else
diff --git a/sw/source/core/crsr/pam.cxx b/sw/source/core/crsr/pam.cxx
index 699ec063b2cf..2d8e8f3ccf3e 100644
--- a/sw/source/core/crsr/pam.cxx
+++ b/sw/source/core/crsr/pam.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: pam.cxx,v $
*
- * $Revision: 1.4 $
+ * $Revision: 1.5 $
*
- * last change: $Author: jp $ $Date: 2002-02-01 12:37:59 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:39:32 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -552,6 +552,8 @@ SwPaM &SwPaM::operator=( SwPaM &rPam )
SetMark();
*pMark = *( rPam.pMark );
}
+ else
+ DeleteMark();
return *this;
}
diff --git a/sw/source/core/crsr/swcrsr.cxx b/sw/source/core/crsr/swcrsr.cxx
index 886d81c78081..ace4e9f419fd 100644
--- a/sw/source/core/crsr/swcrsr.cxx
+++ b/sw/source/core/crsr/swcrsr.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: swcrsr.cxx,v $
*
- * $Revision: 1.25 $
+ * $Revision: 1.26 $
*
- * last change: $Author: fme $ $Date: 2002-12-03 12:58:01 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:39:32 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -420,35 +420,32 @@ FASTBOOL SwCursor::IsSelOvr( int eFlags )
if( pNd->IsCntntNode() && 0 == (SwUnoCrsr*)*this )
{
const SwCntntFrm* pFrm = ((SwCntntNode*)pNd)->GetFrm();
- if( pFrm && pFrm->IsValid() && 0 == pFrm->Frm().Height() )
+ if( pFrm && pFrm->IsValid() && 0 == pFrm->Frm().Height() &&
+ 0 != ( SELOVER_CHANGEPOS & eFlags ) )
{
- if( 0 != ( SELOVER_CHANGEPOS & eFlags ) )
+ // skip to the next / prev valida paragraph with a layout
+ SwNodeIndex& rPtIdx = GetPoint()->nNode;
+ int bGoNxt = pSavePos->nNode < rPtIdx.GetIndex();
+ while( 0 != ( pFrm = ( bGoNxt ? pFrm->GetNextCntntFrm()
+ : pFrm->GetPrevCntntFrm() )) &&
+ 0 == pFrm->Frm().Height() )
+ ;
+
+ SwCntntNode* pCNd;
+ if( pFrm && 0 != (pCNd = (SwCntntNode*)pFrm->GetNode()) )
{
- // skip to the next / prev valida paragraph with a layout
- SwNodeIndex& rPtIdx = GetPoint()->nNode;
- int bGoNxt = pSavePos->nNode < rPtIdx.GetIndex();
- while( 0 != ( pFrm = ( bGoNxt ? pFrm->GetNextCntntFrm()
- : pFrm->GetPrevCntntFrm() )) &&
- 0 == pFrm->Frm().Height() )
- ;
-
- SwCntntNode* pCNd;
- if( pFrm && 0 != (pCNd = (SwCntntNode*)pFrm->GetNode()) )
- {
- // set this cntntNode as new position
- rPtIdx = *pCNd;
- pNd = pCNd;
+ // set this cntntNode as new position
+ rPtIdx = *pCNd;
+ pNd = pCNd;
- // ContentIndex noch anmelden:
- xub_StrLen nTmpPos = bGoNxt ? 0 : pCNd->Len();
- GetPoint()->nContent.Assign( pCNd, nTmpPos );
- // sollten wir in einer Tabelle gelandet sein?
- if( IsInProtectTable( TRUE ) )
- pFrm = 0;
- }
+ // ContentIndex noch anmelden:
+ xub_StrLen nTmpPos = bGoNxt ? 0 : pCNd->Len();
+ GetPoint()->nContent.Assign( pCNd, nTmpPos );
+
+ // sollten wir in einer Tabelle gelandet sein?
+ if( IsInProtectTable( TRUE ) )
+ pFrm = 0;
}
- else
- pFrm = 0;
}
if( !pFrm )
@@ -1097,7 +1094,7 @@ ULONG SwCursor::FindAll( SwFindParas& rParas,
*GetMark() = aMarkPos;
}
- if( nFound && SwCursor::IsSelOvr( SELOVER_TOGGLE | SELOVER_CHANGEPOS ) )
+ if( nFound && SwCursor::IsSelOvr( SELOVER_TOGGLE ) )
nFound = 0;
return nFound;
}
@@ -1289,10 +1286,12 @@ FASTBOOL SwCursor::GoPrevWord()
{
SwCrsrSaveState aSave( *this );
xub_StrLen nPtPos = GetPoint()->nContent.GetIndex();
+ const xub_StrLen nPtStart = nPtPos;
+
if( nPtPos )
--nPtPos;
nPtPos = (xub_StrLen)pBreakIt->xBreak->previousWord(
- pTxtNd->GetTxt(), nPtPos,
+ pTxtNd->GetTxt(), nPtStart,
pBreakIt->GetLocale( pTxtNd->GetLang( nPtPos, 1 ) ),
WordType::ANYWORD_IGNOREWHITESPACES ).startPos;
@@ -1391,53 +1390,56 @@ FASTBOOL SwCursor::GoSentence( SentenceMoveType eMoveType )
FASTBOOL SwCursor::LeftRight( BOOL bLeft, USHORT nCnt, USHORT nMode,
- BOOL bVisualAllowed )
+ BOOL bVisualAllowed, BOOL bInsertCrsr )
{
SwTableCursor* pTblCrsr = (SwTableCursor*)*this;
if( pTblCrsr )
return bLeft ? pTblCrsr->GoPrevCell( nCnt )
: pTblCrsr->GoNextCell( nCnt );
-
+ // calculate cursor bidi level
+ const SwCntntFrm* pSttFrm = NULL;
SwNode& rNode = GetPoint()->nNode.GetNode();
- const BOOL bIsUnoCrsr = 0 != (SwUnoCrsr*)*this;
+ const BOOL bDoNotSetBidiLevel = 0 != (SwUnoCrsr*)*this;
- // The visual cursor travelling requires a layout. Therefore we do not
- // want this for an UnoCursor.
- if ( ! bIsUnoCrsr && rNode.IsTxtNode() )
+ if ( ! bDoNotSetBidiLevel )
{
- const SwTxtNode& rTNd = *rNode.GetTxtNode();
- SwIndex& rIdx = GetPoint()->nContent;
- xub_StrLen nPos = rIdx.GetIndex();
-
- SvtCTLOptions aCTLOptions;
- if ( bVisualAllowed && aCTLOptions.IsCTLFontEnabled() &&
- SvtCTLOptions::MOVEMENT_VISUAL ==
- aCTLOptions.GetCTLCursorMovement() )
+ if( rNode.IsTxtNode() )
{
- // for visual cursor travelling (used in bidi layout)
- // we first have to convert the logic to a visual position
- Point aPt;
- SwCntntFrm* pFrm = rTNd.GetFrm( &aPt, GetPoint() );
- if( pFrm )
+ const SwTxtNode& rTNd = *rNode.GetTxtNode();
+ SwIndex& rIdx = GetPoint()->nContent;
+ xub_StrLen nPos = rIdx.GetIndex();
+
+ SvtCTLOptions aCTLOptions;
+ if ( bVisualAllowed && aCTLOptions.IsCTLFontEnabled() &&
+ SvtCTLOptions::MOVEMENT_VISUAL ==
+ aCTLOptions.GetCTLCursorMovement() )
{
- BYTE nCrsrLevel = GetCrsrBidiLevel();
- sal_Bool bForward = ! bLeft;
- ((SwTxtFrm*)pFrm)->PrepareVisualMove( nPos, nCrsrLevel, bForward );
- rIdx = nPos;
- SetCrsrBidiLevel( nCrsrLevel );
- bLeft = ! bForward;
+ // for visual cursor travelling (used in bidi layout)
+ // we first have to convert the logic to a visual position
+ Point aPt;
+ pSttFrm = rTNd.GetFrm( &aPt, GetPoint() );
+ if( pSttFrm )
+ {
+ BYTE nCrsrLevel = GetCrsrBidiLevel();
+ sal_Bool bForward = ! bLeft;
+ ((SwTxtFrm*)pSttFrm)->PrepareVisualMove( nPos, nCrsrLevel,
+ bForward, bInsertCrsr );
+ rIdx = nPos;
+ SetCrsrBidiLevel( nCrsrLevel );
+ bLeft = ! bForward;
+ }
}
- }
- else
- {
- const SwScriptInfo* pScriptInfo = SwScriptInfo::GetScriptInfo( rTNd );
- if ( pScriptInfo )
+ else
{
- const xub_StrLen nMoveOverPos = bLeft ?
- ( nPos ? nPos - 1 : 0 ) :
- nPos;
- SetCrsrBidiLevel( pScriptInfo->DirType( nMoveOverPos ) );
+ const SwScriptInfo* pSI = SwScriptInfo::GetScriptInfo( rTNd );
+ if ( pSI )
+ {
+ const xub_StrLen nMoveOverPos = bLeft ?
+ ( nPos ? nPos - 1 : 0 ) :
+ nPos;
+ SetCrsrBidiLevel( pSI->DirType( nMoveOverPos ) );
+ }
}
}
}
@@ -1449,6 +1451,27 @@ FASTBOOL SwCursor::LeftRight( BOOL bLeft, USHORT nCnt, USHORT nMode,
while( nCnt && Move( fnMove, fnGo ) )
--nCnt;
+ // here come some special rules for visual cursor travelling
+ if ( pSttFrm )
+ {
+ SwNode& rTmpNode = GetPoint()->nNode.GetNode();
+ if ( &rTmpNode != &rNode && rTmpNode.IsTxtNode() )
+ {
+ Point aPt;
+ const SwCntntFrm* pEndFrm = ((SwTxtNode&)rTmpNode).GetFrm( &aPt, GetPoint() );
+ if ( pEndFrm )
+ {
+ if ( ! pEndFrm->IsRightToLeft() != ! pSttFrm->IsRightToLeft() )
+ {
+ if ( ! bLeft )
+ pEndFrm->RightMargin( this );
+ else
+ pEndFrm->LeftMargin( this );
+ }
+ }
+ }
+ }
+
return 0 == nCnt && !IsInProtectTable( TRUE ) &&
!IsSelOvr( SELOVER_TOGGLE | SELOVER_CHANGEPOS );
}
@@ -1540,6 +1563,37 @@ FASTBOOL SwCursor::UpDown( BOOL bUp, USHORT nCnt,
}
else
*GetPoint() = aOldPos;
+
+ // calculate cursor bidi level
+ const BOOL bDoNotSetBidiLevel = 0 != (SwUnoCrsr*)*this;
+
+ if ( ! bDoNotSetBidiLevel )
+ {
+ SwNode& rNode = GetPoint()->nNode.GetNode();
+ if ( rNode.IsTxtNode() )
+ {
+ const SwScriptInfo* pSI = SwScriptInfo::GetScriptInfo( (SwTxtNode&)rNode );
+ if ( pSI )
+ {
+ SwIndex& rIdx = GetPoint()->nContent;
+ xub_StrLen nPos = rIdx.GetIndex();
+
+ if( nPos && nPos < ((SwTxtNode&)rNode).GetTxt().Len() )
+ {
+ const BYTE nCurrLevel = pSI->DirType( nPos );
+ const BYTE nPrevLevel = pSI->DirType( nPos - 1 );
+
+ if ( nCurrLevel % 2 != nPrevLevel % 2 )
+ {
+ // set cursor level to the lower of the two levels
+ SetCrsrBidiLevel( Min( nCurrLevel, nPrevLevel ) );
+ }
+ else
+ SetCrsrBidiLevel( nCurrLevel );
+ }
+ }
+ }
+ }
}
return bRet;
}
@@ -1548,6 +1602,11 @@ FASTBOOL SwCursor::LeftRightMargin( BOOL bLeft, BOOL bAPI )
{
Point aPt;
SwCntntFrm * pFrm = GetCntntNode()->GetFrm( &aPt, GetPoint() );
+
+ // calculate cursor bidi level
+ if ( pFrm )
+ SetCrsrBidiLevel( pFrm->IsRightToLeft() ? 1 : 0 );
+
return pFrm && (bLeft ? pFrm->LeftMargin( this )
: pFrm->RightMargin( this, bAPI ));
}
diff --git a/sw/source/core/crsr/viscrs.cxx b/sw/source/core/crsr/viscrs.cxx
index af41f46db34b..8071a0502e4e 100644
--- a/sw/source/core/crsr/viscrs.cxx
+++ b/sw/source/core/crsr/viscrs.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: viscrs.cxx,v $
*
- * $Revision: 1.8 $
+ * $Revision: 1.9 $
*
- * last change: $Author: fme $ $Date: 2002-09-17 14:34:06 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:39:33 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -125,6 +125,9 @@
#ifndef _NDTXT_HXX
#include <ndtxt.hxx>
#endif
+#ifndef _DRAWFONT_HXX
+#include <drawfont.hxx>
+#endif
#ifndef _MDIEXP_HXX
#include <mdiexp.hxx> // GetSearchDialog
@@ -134,7 +137,8 @@
#endif
-extern void MA_FASTCALL SwAlignRect( SwRect &rRect, ViewShell *pSh );
+// OD 24.01.2003 #106593# - no longer needed, included in <frmtool.hxx>
+//extern void MA_FASTCALL SwAlignRect( SwRect &rRect, ViewShell *pSh );
extern void SwCalcPixStatics( OutputDevice *pOut );
@@ -528,6 +532,30 @@ void SwVisCrsr::_SetPosAndShow()
Size( pCrsrShell->aCharRect.Width(), nTmpY ) );
aRect.Pos().Y() += pCrsrShell->aCrsrHeight.X();
}
+
+ // check if cursor should show the current cursor bidi level
+ aTxtCrsr.SetDirection( CURSOR_DIRECTION_NONE );
+ const SwCursor* pTmpCrsr = pCrsrShell->_GetCrsr();
+
+ if ( pTmpCrsr && !pCrsrShell->IsOverwriteCrsr() )
+ {
+ SwNode& rNode = pTmpCrsr->GetPoint()->nNode.GetNode();
+ if( rNode.IsTxtNode() )
+ {
+ const SwTxtNode& rTNd = *rNode.GetTxtNode();
+ const SwScriptInfo* pSI = SwScriptInfo::GetScriptInfo( rTNd );
+
+ // cursor level has to be shown
+ if ( pSI && pSI->CountDirChg() > 1 )
+ {
+ aTxtCrsr.SetDirection(
+ ( pTmpCrsr->GetCrsrBidiLevel() % 2 ) ?
+ CURSOR_DIRECTION_RTL :
+ CURSOR_DIRECTION_LTR );
+ }
+ }
+ }
+
if( aRect.Height() )
{
::SwCalcPixStatics( pCrsrShell->GetOut() );
diff --git a/sw/source/core/doc/SwStyleNameMapper.cxx b/sw/source/core/doc/SwStyleNameMapper.cxx
index 5a9f5fab487c..f2316267cf8a 100644
--- a/sw/source/core/doc/SwStyleNameMapper.cxx
+++ b/sw/source/core/doc/SwStyleNameMapper.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: SwStyleNameMapper.cxx,v $
*
- * $Revision: 1.7 $
+ * $Revision: 1.8 $
*
- * last change: $Author: os $ $Date: 2002-06-05 14:48:36 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:39:34 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -1116,3 +1116,57 @@ const SvStringsDtor& SwStyleNameMapper::GetNumRuleProgNameArray()
*NewProgNameArray( pNumRuleProgNameArray, NumRuleProgNameTable,
sizeof ( NumRuleProgNameTable ) / sizeof ( SwTableEntry ) );
}
+
+
+const String SwStyleNameMapper::GetSpecialExtraProgName( const String& rExtraUIName )
+{
+ String aRes = rExtraUIName;
+ BOOL bChgName = FALSE;
+ const SvStringsDtor& rExtraArr = GetExtraUINameArray();
+ static sal_uInt16 nIds[] =
+ {
+ RES_POOLCOLL_LABEL_DRAWING - RES_POOLCOLL_EXTRA_BEGIN,
+ RES_POOLCOLL_LABEL_ABB - RES_POOLCOLL_EXTRA_BEGIN,
+ RES_POOLCOLL_LABEL_TABLE - RES_POOLCOLL_EXTRA_BEGIN,
+ RES_POOLCOLL_LABEL_FRAME- RES_POOLCOLL_EXTRA_BEGIN,
+ 0
+ };
+ for (const sal_uInt16 * pIds = nIds; *pIds; ++pIds)
+ {
+ if (aRes == *rExtraArr[ *pIds ])
+ {
+ bChgName = TRUE;
+ break;
+ }
+ }
+ if (bChgName)
+ aRes = *GetExtraProgNameArray()[*pIds];
+ return aRes;
+}
+
+const String SwStyleNameMapper::GetSpecialExtraUIName( const String& rExtraProgName )
+{
+ String aRes = rExtraProgName;
+ BOOL bChgName = FALSE;
+ const SvStringsDtor& rExtraArr = GetExtraProgNameArray();
+ static sal_uInt16 nIds[] =
+ {
+ RES_POOLCOLL_LABEL_DRAWING - RES_POOLCOLL_EXTRA_BEGIN,
+ RES_POOLCOLL_LABEL_ABB - RES_POOLCOLL_EXTRA_BEGIN,
+ RES_POOLCOLL_LABEL_TABLE - RES_POOLCOLL_EXTRA_BEGIN,
+ RES_POOLCOLL_LABEL_FRAME- RES_POOLCOLL_EXTRA_BEGIN,
+ 0
+ };
+ for (const sal_uInt16 * pIds = nIds; *pIds; ++pIds)
+ {
+ if (aRes == *rExtraArr[ *pIds ])
+ {
+ bChgName = TRUE;
+ break;
+ }
+ }
+ if (bChgName)
+ aRes = *GetExtraUINameArray()[*pIds];
+ return aRes;
+}
+
diff --git a/sw/source/core/doc/docbm.cxx b/sw/source/core/doc/docbm.cxx
index 740f3b663033..3d3c6a154a73 100644
--- a/sw/source/core/doc/docbm.cxx
+++ b/sw/source/core/doc/docbm.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: docbm.cxx,v $
*
- * $Revision: 1.4 $
+ * $Revision: 1.5 $
*
- * last change: $Author: dvo $ $Date: 2002-11-07 18:39:16 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:39:34 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -480,17 +480,16 @@ void _DelBookmarks( const SwNodeIndex& rStt, const SwNodeIndex& rEnd,
for( nCnt = 0; nCnt < rTbl.Count(); ++nCnt )
{
// liegt auf der Position ??
+ int eType = BKMK_POS_NONE;
SwRedline* pRedl = rTbl[ nCnt ];
- // get start/end positions
- SwPosition *pRStt = pRedl->GetPoint(),
- *pREnd = pRedl->GetMark();
+ SwPosition *pRStt = &pRedl->GetBound(TRUE),
+ *pREnd = &pRedl->GetBound(FALSE);
if( *pRStt > *pREnd )
{
- SwPosition *pTmp = pRStt; pRStt = pREnd; pREnd = pTmp;
+ SwPosition *pTmp = pRStt; pRStt = pREnd, pREnd = pTmp;
}
- // treat start position
if( Greater( *pRStt, rStt, pSttIdx ) && Lower( *pRStt, rEnd, pEndIdx ))
{
pRStt->nNode = rEnd;
@@ -514,10 +513,7 @@ void _DelBookmarks( const SwNodeIndex& rStt, const SwNodeIndex& rEnd,
pRStt->nContent.Assign( pCNd, nTmp );
}
}
-
- // treat end position (unless start == end, i.e. no mark)
- if( ( pRStt != pREnd ) &&
- Greater( *pREnd, rStt, pSttIdx ) && Lower( *pREnd, rEnd, pEndIdx ))
+ if( Greater( *pREnd, rStt, pSttIdx ) && Lower( *pREnd, rEnd, pEndIdx ))
{
pREnd->nNode = rStt;
if( pSttIdx )
diff --git a/sw/source/core/doc/doccomp.cxx b/sw/source/core/doc/doccomp.cxx
index 3c65a80803ee..bb5d1081705f 100644
--- a/sw/source/core/doc/doccomp.cxx
+++ b/sw/source/core/doc/doccomp.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: doccomp.cxx,v $
*
- * $Revision: 1.7 $
+ * $Revision: 1.8 $
*
- * last change: $Author: dvo $ $Date: 2002-11-11 15:24:59 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:39:35 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -91,13 +91,6 @@
#include <sfx2/docinf.hxx>
#endif
-#ifdef JP_DUMP
-#include <stdio.h>
-#ifndef _STREAM_HXX //autogen
-#include <tools/stream.hxx>
-#endif
-#endif
-
#ifndef _DOC_HXX
#include <doc.hxx>
#endif
@@ -200,11 +193,6 @@ public:
{ return aLines.GetObject( nLine ); }
void InsertLine( CompareLine* pLine )
{ aLines.Insert( pLine, LIST_APPEND ); }
-
-#ifdef JP_DUMP
- // zum Debuggen!
- virtual void Dump();
-#endif
};
class Hash
@@ -306,12 +294,6 @@ void CompareData::SetIndex( ULONG nLine, ULONG nIndex )
pIndex[ nLine ] = nIndex;
}
-#ifdef JP_DUMP
-void CompareData::Dump()
-{
-}
-#endif
-
void CompareData::SetChanged( ULONG nLine, BOOL bFlag )
{
if( !pChangedFlag )
@@ -719,9 +701,6 @@ Compare::CompareSequence::CompareSequence(
pFDiag = pMemory + ( rMD2.GetCount() + 1 );
pBDiag = pMemory + ( nSize + rMD2.GetCount() + 1 );
-#ifdef JP_DUMP
- rD1.Dump(), rD2.Dump();
-#endif
Compare( 0, rMD1.GetCount(), 0, rMD2.GetCount() );
}
@@ -977,11 +956,6 @@ public:
virtual ~SwCompareData();
void SetRedlinesToDoc( BOOL bUseDocInfo, const SwDoc& rSrcDoc );
-
-#ifdef JP_DUMP
- // zum Debuggen!
- virtual void Dump();
-#endif
};
// ----------------------------------------------------------------
@@ -1576,34 +1550,6 @@ void SwCompareData::SetRedlinesToDoc( BOOL bUseDocInfo, const SwDoc& rSrcDoc )
}
}
-#ifdef JP_DUMP
-void SwCompareData::Dump()
-{
- static int nFirst = 1;
- SvFileStream aStrm( "d:\\tmp\\compare.dmp", nFirst
- ? STREAM_WRITE | STREAM_TRUNC
- : STREAM_WRITE | STREAM_NOCREATE );
- if( !nFirst )
- aStrm.Seek( STREAM_SEEK_TO_END );
-
- nFirst = 0;
-
- aStrm << "\n";
- ULONG nLCount = aLines.Count();
- for( ULONG n = 0; n < nLCount; ++n )
- {
- SwCompareLine* pLine = (SwCompareLine*)GetLine( n );
- String sTxt( pLine->GetText() );
- char sBuffer[ 20 ];
- sprintf( sBuffer, "[%4ld][%3ld][%1d]",
- pLine->GetNode().GetIndex(),
- GetIndex( n ), GetChanged( n ) );
- ( aStrm << sBuffer ).WriteByteString( sTxt ) << '\n';
- }
-}
-
-#endif
-
/* */
@@ -1639,10 +1585,6 @@ long SwDoc::CompareDoc( const SwDoc& rDoc )
SetModified();
}
-#ifdef JP_DUMP
- aD0.Dump(), aD1.Dump();
-#endif
-
rSrcDoc.SetRedlineMode( eSrcRedlMode );
SetRedlineMode( REDLINE_SHOW_INSERT | REDLINE_SHOW_DELETE );
diff --git a/sw/source/core/doc/docdesc.cxx b/sw/source/core/doc/docdesc.cxx
index 33095bf50dd6..c57cdf9401b3 100644
--- a/sw/source/core/doc/docdesc.cxx
+++ b/sw/source/core/doc/docdesc.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: docdesc.cxx,v $
*
- * $Revision: 1.12 $
+ * $Revision: 1.13 $
*
- * last change: $Author: hbrinkm $ $Date: 2002-12-04 14:34:31 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:39:35 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -687,8 +687,6 @@ void SwDoc::DelPageDesc( USHORT i )
|*
|*************************************************************************/
-extern SvxFrameDirection lcl_GetFrameDirection(ULONG aLanguage);
-
USHORT SwDoc::MakePageDesc( const String &rName, const SwPageDesc *pCpy,
BOOL bRegardLanguage)
{
@@ -712,7 +710,7 @@ USHORT SwDoc::MakePageDesc( const String &rName, const SwPageDesc *pCpy,
GetPrt(), FALSE );
SvxFrameDirection aFrameDirection = bRegardLanguage ?
- lcl_GetFrameDirection(GetAppLanguage())
+ GetDefaultFrameDirection(GetAppLanguage())
: FRMDIR_HORI_LEFT_TOP;
pNew->GetMaster().SetAttr( SvxFrameDirectionItem(aFrameDirection) );
diff --git a/sw/source/core/doc/docedt.cxx b/sw/source/core/doc/docedt.cxx
index 22c0db2a7b6b..706c62a7aae8 100644
--- a/sw/source/core/doc/docedt.cxx
+++ b/sw/source/core/doc/docedt.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: docedt.cxx,v $
*
- * $Revision: 1.10 $
+ * $Revision: 1.11 $
*
- * last change: $Author: dvo $ $Date: 2002-10-10 16:29:45 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:39:35 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -2181,13 +2181,19 @@ sal_Bool SwDoc::DelFullPara( SwPaM& rPam )
pNd->StartOfSectionIndex();
sal_uInt32 nNodeDiff = rEnd.nNode.GetIndex() - rStt.nNode.GetIndex();
- if( nSectDiff-2 <= nNodeDiff || IsRedlineOn() )
+ if ( nSectDiff-2 <= nNodeDiff || IsRedlineOn() ||
+ /* #i9185# Prevent getting the node after the end node (see below) */
+ rEnd.nNode.GetIndex() + 1 == aNodes.Count() )
return sal_False;
// harte SeitenUmbrueche am nachfolgenden Node verschieben
sal_Bool bSavePageBreak = sal_False, bSavePageDesc = sal_False;
+
+ /* #i9185# This whould lead to a segmentation fault if not catched
+ above. */
sal_uInt32 nNextNd = rEnd.nNode.GetIndex() + 1;
- SwTableNode* pTblNd = GetNodes()[ nNextNd ]->GetTableNode();
+ SwTableNode* pTblNd = aNodes[ nNextNd ]->GetTableNode();
+
if( pTblNd && pNd->IsCntntNode() )
{
SwFrmFmt* pTableFmt = pTblNd->GetTable().GetFrmFmt();
@@ -2277,6 +2283,7 @@ sal_Bool SwDoc::DelFullPara( SwPaM& rPam )
}
rPam.DeleteMark();
SetModified();
+
return sal_True;
}
diff --git a/sw/source/core/doc/docfld.cxx b/sw/source/core/doc/docfld.cxx
index 2190d1a92ee6..0c639a029ff6 100644
--- a/sw/source/core/doc/docfld.cxx
+++ b/sw/source/core/doc/docfld.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: docfld.cxx,v $
*
- * $Revision: 1.12 $
+ * $Revision: 1.13 $
*
- * last change: $Author: od $ $Date: 2002-10-10 09:14:08 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:39:36 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -1279,6 +1279,10 @@ void SwDoc::FldsToExpand( SwHash**& ppHashTbl, USHORT& rTblSize,
if( !aNew.Len() ) // nichts gefunden, dann ist
aNew = pSFld->GetFormula(); // die Formel der neue Wert
+ // OD 11.02.2003 #i3141# - update expression of field as in
+ // method <SwDoc::UpdateExpFlds(..)> for string/text fields
+ pSFld->ChgExpStr( aNew );
+
// suche den Namen vom Feld
aNew = ((SwSetExpFieldType*)pSFld->GetTyp())->GetSetRefName();
// Eintrag vorhanden ?
@@ -2150,6 +2154,8 @@ void SwDoc::ReplaceUsedDBs( const SvStringsDtor& rUsedDBNames,
String sFormel(rFormel);
String sNewName( rNewName );
sNewName.SearchAndReplace( DB_DELIM, '.');
+ //the command type is not part of the condition
+ sNewName = sNewName.GetToken(0, DB_DELIM);
String sUpperNewNm( sNewName );
@@ -2158,7 +2164,9 @@ void SwDoc::ReplaceUsedDBs( const SvStringsDtor& rUsedDBNames,
String sDBName( *rUsedDBNames.GetObject( i ) );
sDBName.SearchAndReplace( DB_DELIM, '.');
- if( sDBName.Equals( sUpperNewNm ))
+ //cut off command type
+ sDBName = sDBName.GetToken(0, DB_DELIM);
+ if( !sDBName.Equals( sUpperNewNm ))
{
xub_StrLen nPos = 0;
@@ -2169,6 +2177,10 @@ void SwDoc::ReplaceUsedDBs( const SvStringsDtor& rUsedDBNames,
{
rFormel.Erase( nPos, sDBName.Len() );
rFormel.Insert( sNewName, nPos );
+ //prevent re-searching - this is useless and provokes
+ //endless loops when names containing each other and numbers are exchanged
+ //e.g.: old 12345.12345 new: i12345.12345
+ nPos += sNewName.Len();
sFormel = rFormel;
}
}
@@ -2643,7 +2655,7 @@ void SwDocUpdtFld::GetBodyNode( const SwTxtFld& rTFld, USHORT nFldWhich )
Point aPt;
const SwCntntFrm* pFrm = rTxtNd.GetFrm( &aPt, 0, FALSE );
- _SetGetExpFld* pNew;
+ _SetGetExpFld* pNew = NULL;
BOOL bIsInBody = FALSE;
if( !pFrm || pFrm->IsInDocBody() )
@@ -2651,7 +2663,13 @@ void SwDocUpdtFld::GetBodyNode( const SwTxtFld& rTFld, USHORT nFldWhich )
// einen Index fuers bestimmen vom TextNode anlegen
SwNodeIndex aIdx( rTxtNd );
bIsInBody = rDoc.GetNodes().GetEndOfExtras().GetIndex() < aIdx.GetIndex();
- pNew = new _SetGetExpFld( aIdx, &rTFld );
+
+ // #104291# dvo: We don't want to update fields in redlines, or those
+ // in frames whose anchor is in redline. However, we do want to update
+ // fields in hidden sections. So: In order to be updated, a field 1)
+ // must have a frame, or 2) it must be in the document body.
+ if( (pFrm != NULL) || bIsInBody )
+ pNew = new _SetGetExpFld( aIdx, &rTFld );
}
else
{
@@ -2677,8 +2695,9 @@ void SwDocUpdtFld::GetBodyNode( const SwTxtFld& rTFld, USHORT nFldWhich )
pDBFld->ChgBodyTxtFlag( bIsInBody );
}
- if( !pFldSortLst->Insert( pNew ))
- delete pNew;
+ if( pNew != NULL )
+ if( !pFldSortLst->Insert( pNew ))
+ delete pNew;
}
void SwDocUpdtFld::GetBodyNode( const SwSectionNode& rSectNd )
diff --git a/sw/source/core/doc/doclay.cxx b/sw/source/core/doc/doclay.cxx
index cac250512e4e..319cace70c0e 100644
--- a/sw/source/core/doc/doclay.cxx
+++ b/sw/source/core/doc/doclay.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: doclay.cxx,v $
*
- * $Revision: 1.7 $
+ * $Revision: 1.8 $
*
- * last change: $Author: mib $ $Date: 2002-07-24 13:12:32 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:39:36 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -1135,11 +1135,43 @@ void SwDoc::GetAllFlyFmts( SwPosFlyFrms& rPosFlyFmts,
|*
|*************************************************************************/
+/* #i6447# changed behaviour if lcl_CpyAttr:
+
+ If the old item set contains the item to set (no inheritance) copy the item
+ into the new set.
+
+ If the old item set contains the item by inheritance and the new set
+ contains the item, too:
+ If the two items differ copy the item from the old set to the new set.
+
+ Otherwise the new set will not be changed.
+*/
+
void lcl_CpyAttr( SfxItemSet &rNewSet, const SfxItemSet &rOldSet, sal_uInt16 nWhich )
{
- const SfxPoolItem *pItem;
- if ( SFX_ITEM_SET == (rOldSet.GetItemState( nWhich, sal_False, &pItem)))
- rNewSet.Put( *pItem );
+ const SfxPoolItem *pOldItem = NULL, *pNewItem = NULL;
+
+ rOldSet.GetItemState( nWhich, sal_False, &pOldItem);
+ if (pOldItem != NULL)
+ rNewSet.Put( *pOldItem );
+ else
+ {
+ pOldItem = rOldSet.GetItem( nWhich, sal_True);
+ if (pOldItem != NULL)
+ {
+ pNewItem = rNewSet.GetItem( nWhich, sal_True);
+ if (pNewItem != NULL)
+ {
+ if (*pOldItem != *pNewItem)
+ rNewSet.Put( *pOldItem );
+ }
+ else
+ ASSERT(0, "What am I doing here?");
+ }
+ else
+ ASSERT(0, "What am I doing here?");
+ }
+
}
@@ -1229,11 +1261,14 @@ SwFlyFrmFmt* SwDoc::InsertLabel( const SwLabelType eType, const String &rTxt,
ASSERT( pOldFmt, "Format des Fly nicht gefunden." );
pOldFmt->DelFrms();
- SfxItemSet* pNewSet = pOldFmt->GetAttrSet().Clone( sal_False );
-
pNewFmt = MakeFlyFrmFmt( GetUniqueFrameName(),
GetFrmFmtFromPool( RES_POOLFRM_FRAME ));
+ /* #i6447#: Only the selected items are copied from the old
+ format. */
+ SfxItemSet* pNewSet = pNewFmt->GetAttrSet().Clone( sal_True );
+
+
//Diejenigen Attribute uebertragen die auch gesetzt sind,
//andere sollen weiterhin aus den Vorlagen gueltig werden.
lcl_CpyAttr( *pNewSet, pOldFmt->GetAttrSet(), RES_PRINT );
@@ -1244,6 +1279,7 @@ SwFlyFrmFmt* SwDoc::InsertLabel( const SwLabelType eType, const String &rTxt,
lcl_CpyAttr( *pNewSet, pOldFmt->GetAttrSet(), RES_HORI_ORIENT );
lcl_CpyAttr( *pNewSet, pOldFmt->GetAttrSet(), RES_LR_SPACE );
lcl_CpyAttr( *pNewSet, pOldFmt->GetAttrSet(), RES_UL_SPACE );
+ lcl_CpyAttr( *pNewSet, pOldFmt->GetAttrSet(), RES_BACKGROUND );
if( bCpyBrd )
{
// JP 07.07.99: Bug 67029 - if at Grafik no BoxItem but
@@ -1322,6 +1358,7 @@ SwFlyFrmFmt* SwDoc::InsertLabel( const SwLabelType eType, const String &rTxt,
pNewSet->ClearItem();
pNewSet->Put( SwFmtSurround( SURROUND_NONE ) );
+ pNewSet->Put( SvxOpaqueItem( RES_OPAQUE, sal_True ) );
pNewSet->Put( SwFmtVertOrient( VERT_TOP ) );
pNewSet->Put( SwFmtHoriOrient( HORI_CENTER ) );
diff --git a/sw/source/core/doc/docnum.cxx b/sw/source/core/doc/docnum.cxx
index d7afd642216b..188ca770dead 100644
--- a/sw/source/core/doc/docnum.cxx
+++ b/sw/source/core/doc/docnum.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: docnum.cxx,v $
*
- * $Revision: 1.9 $
+ * $Revision: 1.10 $
*
- * last change: $Author: od $ $Date: 2002-12-10 16:03:17 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:39:37 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -505,8 +505,10 @@ USHORT lcl_FindOutlineNum( const SwNodes& rNds, String& rName )
sName.Erase( 0, nPos );
nPos = 0;
sNum = sName.GetToken( 0, '.', nPos );
+ // #i4533# without this check all parts delimited by a dot are treated as outline numbers
+ if(!ByteString(sNum, gsl_getSystemTextEncoding()).IsNumericAscii())
+ nPos = STRING_NOTFOUND;
}
-
rName = sName; // das ist der nachfolgende Text.
// alle Levels gelesen, dann suche mal im Document nach dieser
@@ -591,7 +593,21 @@ BOOL SwDoc::GotoOutline( SwPosition& rPos, const String& rName ) const
if( USHRT_MAX != nFndPos )
{
SwTxtNode* pNd = rOutlNds[ nFndPos ]->GetTxtNode();
- if( !pNd->GetExpandTxt().Equals( sName ) )
+ String sExpandedText = pNd->GetExpandTxt();
+ //#i4533# leading numbers followed by a dot have been remove while
+ //searching for the outline position
+ //to compensate this they must be removed from the paragraphs text content, too
+ USHORT nPos = 0;
+ String sTempNum;
+ while(sExpandedText.Len() && (sTempNum = sExpandedText.GetToken(0, '.', nPos)).Len() &&
+ STRING_NOTFOUND != nPos &&
+ ByteString(sTempNum, gsl_getSystemTextEncoding()).IsNumericAscii())
+ {
+ sExpandedText.Erase(0, nPos);
+ nPos = 0;
+ }
+
+ if( !sExpandedText.Equals( sName ) )
{
USHORT nTmp = ::lcl_FindOutlineName( GetNodes(), sName, TRUE );
if( USHRT_MAX != nTmp ) // ueber den Namen gefunden
diff --git a/sw/source/core/doc/docredln.cxx b/sw/source/core/doc/docredln.cxx
index db7a1aedca84..1169ef788152 100644
--- a/sw/source/core/doc/docredln.cxx
+++ b/sw/source/core/doc/docredln.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: docredln.cxx,v $
*
- * $Revision: 1.21 $
+ * $Revision: 1.22 $
*
- * last change: $Author: dvo $ $Date: 2002-11-28 17:45:15 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:39:37 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -162,6 +162,14 @@
for( USHORT i = 0; i < rTbl.Count(); ++i )
lcl_CheckPam( rTbl[ i ] );
+ for( USHORT j = 0; j < rTbl.Count(); ++j )
+ {
+ // check for empty redlines
+ ASSERT( ( *(rTbl[j]->GetPoint()) != *(rTbl[j]->GetMark()) ) ||
+ ( rTbl[j]->GetContentIdx() != NULL ),
+ "redline table corrupted: empty redline" );
+ }
+
// verify proper redline sorting
for( USHORT n = 1; n < rTbl.Count(); ++n )
{
@@ -291,11 +299,24 @@ BOOL SwDoc::AppendRedline( SwRedline* pNewRedl, BOOL bCallDelete )
for( ; pNewRedl && n < pRedlineTbl->Count(); ++n )
{
+
+#ifdef DVO_TEST
+ _CHECK_REDLINE( this )
+#endif
+
SwRedline* pRedl = (*pRedlineTbl)[ n ];
SwPosition* pRStt = pRedl->Start(),
* pREnd = pRStt == pRedl->GetPoint() ? pRedl->GetMark()
: pRedl->GetPoint();
+ // #i8518# remove empty redlines while we're at it
+ if( ( *pRStt == *pREnd ) &&
+ ( pRedl->GetContentIdx() == NULL ) )
+ {
+ pRedlineTbl->DeleteAndDestroy(n);
+ continue;
+ }
+
SwComparePosition eCmpPos = ComparePosition( *pStt, *pEnd, *pRStt, *pREnd );
switch( pNewRedl->GetType() )
@@ -336,6 +357,14 @@ BOOL SwDoc::AppendRedline( SwRedline* pNewRedl, BOOL bCallDelete )
pRedlineTbl->Remove( n );
pRedlineTbl->Insert( pRedl );
}
+ else if ( POS_OUTSIDE == eCmpPos )
+ {
+ // #107164# own insert-over-insert
+ // redlines: just scrap the inside ones
+ pRedlineTbl->Remove( n );
+ n--;
+ break;
+ }
else if( POS_INSIDE != eCmpPos && POS_EQUAL != eCmpPos)
break;
@@ -372,6 +401,18 @@ BOOL SwDoc::AppendRedline( SwRedline* pNewRedl, BOOL bCallDelete )
pNewRedl->SetStart( *pREnd );
pRedlineTbl->Insert( pSplit );
}
+ else if ( POS_OVERLAP_BEHIND == eCmpPos )
+ {
+ // #107164# handle overlapping redlines in broken
+ // documents
+ pNewRedl->SetStart( *pREnd );
+ }
+ else if ( POS_OVERLAP_BEFORE == eCmpPos )
+ {
+ // #107164# handle overlapping redlines in broken
+ // documents
+ pNewRedl->SetEnd( *pRStt );
+ }
break;
case REDLINE_DELETE:
if( POS_INSIDE == eCmpPos )
@@ -518,7 +559,27 @@ BOOL SwDoc::AppendRedline( SwRedline* pNewRedl, BOOL bCallDelete )
pNewRedl->SetStart( *pRStt, pStt );
else
pNewRedl->SetEnd( *pREnd, pEnd );
- pRedlineTbl->DeleteAndDestroy( n-- );
+
+ // delete current (below), and restart process with
+ // previous
+ USHORT nToBeDeleted = n;
+ n--;
+
+ // #107359# Do it again, Sam!
+ // If you can do it for them, you can do it for me.
+ if( *(pNewRedl->Start()) <= *pREnd )
+ {
+ // Whoooah, we just extended the new 'redline'
+ // beyond previous redlines, so better start
+ // again. Of course this is not supposed to
+ // happen, and in an ideal world it doesn't,
+ // but unfortunately this code is buggy and
+ // totally rotten so it does happen and we
+ // better fix it.
+ n = -1;
+ }
+
+ pRedlineTbl->DeleteAndDestroy( nToBeDeleted );
}
break;
}
diff --git a/sw/source/core/doc/docsort.cxx b/sw/source/core/doc/docsort.cxx
index eca9c8744e38..256efbf7d70e 100644
--- a/sw/source/core/doc/docsort.cxx
+++ b/sw/source/core/doc/docsort.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: docsort.cxx,v $
*
- * $Revision: 1.4 $
+ * $Revision: 1.5 $
*
- * last change: $Author: jp $ $Date: 2002-03-21 13:12:29 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:39:37 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -69,8 +69,8 @@
#include <hintids.hxx>
#endif
-#ifndef _TOOLS_SOLMATH_HXX
-#include <tools/solmath.hxx>
+#ifndef INCLUDED_RTL_MATH_HXX
+#include <rtl/math.hxx>
#endif
#ifndef _UNOTOOLS_COLLATORWRAPPER_HXX
#include <unotools/collatorwrapper.hxx>
@@ -213,14 +213,14 @@ double SwSortElement::StrToDouble( const String& rStr ) const
pLclData = new LocaleDataWrapper(
::comphelper::getProcessServiceFactory(), *pLocale );
- const xub_Unicode *pEnd;
- int nErrno;
- double nRet = SolarMath::StringToDouble( rStr.GetBuffer(),
- pLclData->getNumThousandSep().GetChar(0),
+ rtl_math_ConversionStatus eStatus;
+ sal_Int32 nEnd;
+ double nRet = ::rtl::math::stringToDouble( rStr,
pLclData->getNumDecimalSep().GetChar(0),
- nErrno, &pEnd );
+ pLclData->getNumThousandSep().GetChar(0),
+ &eStatus, &nEnd );
- if( 0 != nErrno || pEnd == rStr.GetBuffer() )
+ if( rtl_math_ConversionStatus_Ok != eStatus || nEnd == 0 )
nRet = 0.0;
return nRet;
}
@@ -587,7 +587,12 @@ BOOL SwDoc::SortTbl(const SwSelBoxes& rBoxes, const SwSortOptions& rOpt)
// Auf gehts sortieren
// suche alle Boxen / Lines
- _FndBox aFndBox( rBoxes );
+ _FndBox aFndBox( 0, 0 );
+ {
+ _FndPara aPara( rBoxes, &aFndBox );
+ pTblNd->GetTable().GetTabLines().ForEach( &_FndLineCopyCol, &aPara );;
+ }
+
if(!aFndBox.GetLines().Count())
return FALSE;
diff --git a/sw/source/core/doc/doctxm.cxx b/sw/source/core/doc/doctxm.cxx
index 85e233701fef..c4d880840052 100644
--- a/sw/source/core/doc/doctxm.cxx
+++ b/sw/source/core/doc/doctxm.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: doctxm.cxx,v $
*
- * $Revision: 1.20 $
+ * $Revision: 1.21 $
*
- * last change: $Author: hbrinkm $ $Date: 2002-10-29 14:37:26 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:39:38 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -1493,7 +1493,15 @@ void SwTOXBaseSection::UpdateAuthorities( const SwTxtNode* pOwnChapterNode,
rTxtNode.GetNodes().IsDocNodes() /*&&
(!IsFromChapter() || pChapterCompareNode == pOwnChapterNode) */)
{
- SwTOXAuthority* pNew = new SwTOXAuthority( rTxtNode, *pFmtFld, rIntl );
+ //#106485# the body node has to be used!
+ SwCntntFrm *pFrm = rTxtNode.GetFrm();
+ SwPosition aFldPos(rTxtNode);
+ const SwTxtNode* pTxtNode = 0;
+ if(pFrm && !pFrm->IsInDocBody())
+ pTxtNode = GetBodyTxtNode( *pDoc, aFldPos, *pFrm );
+ if(!pTxtNode)
+ pTxtNode = &rTxtNode;
+ SwTOXAuthority* pNew = new SwTOXAuthority( *pTxtNode, *pFmtFld, rIntl );
InsertSorted(pNew);
}
diff --git a/sw/source/core/doc/notxtfrm.cxx b/sw/source/core/doc/notxtfrm.cxx
index 7bbbdae60267..b4831304a9ed 100644
--- a/sw/source/core/doc/notxtfrm.cxx
+++ b/sw/source/core/doc/notxtfrm.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: notxtfrm.cxx,v $
*
- * $Revision: 1.18 $
+ * $Revision: 1.19 $
*
- * last change: $Author: od $ $Date: 2002-11-29 15:09:22 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:39:39 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -213,11 +213,12 @@
#define DEFTEXTSIZE 12
-/// OD 25.09.2002 #99739# - insert declaration of global methods <SwAlignRect>
-/// and <SwAlignGrtRect>.
-/// Methods are implemented in /core/layout/paintfrm.cxx
-extern void MA_FASTCALL SwAlignRect( SwRect &rRect, ViewShell *pSh );
-extern void SwAlignGrfRect( SwRect *pGrfRect, const OutputDevice &rOut );
+// OD 25.09.2002 #99739# - insert declaration of global methods <SwAlignRect>
+// and <SwAlignGrtRect>.
+// Methods are implemented in /core/layout/paintfrm.cxx
+// OD 24.01.2003 #106593# - no longer needed, included in <frmtool.hxx>
+//extern void MA_FASTCALL SwAlignRect( SwRect &rRect, ViewShell *pSh );
+//extern void SwAlignGrfRect( SwRect *pGrfRect, const OutputDevice &rOut );
//Zum asynchronen (erstmaligem) anfordern von Grafiken
class SwRequestGraphic : public SwClient
@@ -485,7 +486,8 @@ void SwNoTxtFrm::Paint( const SwRect &rRect ) const
if( !pSh->GetViewOptions()->IsGraphic() )
{
StopAnimation();
- if ( pSh->GetWin() )
+ // OD 10.01.2003 #i6467# - no paint of placeholder for page preview
+ if ( pSh->GetWin() && !pSh->IsPreView() )
{
const SwNoTxtNode* pNd = GetNode()->GetNoTxtNode();
String aTxt( pNd->GetAlternateText() );
diff --git a/sw/source/core/doc/poolfmt.cxx b/sw/source/core/doc/poolfmt.cxx
index 829b5cdb41b3..21616f836f74 100644
--- a/sw/source/core/doc/poolfmt.cxx
+++ b/sw/source/core/doc/poolfmt.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: poolfmt.cxx,v $
*
- * $Revision: 1.21 $
+ * $Revision: 1.22 $
*
- * last change: $Author: hbrinkm $ $Date: 2002-12-04 14:38:05 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:39:40 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -138,6 +138,9 @@
#ifndef _SVX_FRMDIRITEM_HXX
#include <svx/frmdiritem.hxx>
#endif
+#ifndef _SVX_EMPHITEM_HXX
+#include <svx/emphitem.hxx>
+#endif
#ifndef _VIEWOPT_HXX
#include <viewopt.hxx>
#endif
@@ -435,7 +438,7 @@ void lcl_SetNumBul( SwDoc* pDoc, SwTxtFmtColl* pColl,
// Ist der String-Pointer definiert, dann erfrage nur die
// Beschreibung der Attribute, !! es legt keine Vorlage an !!
-SvxFrameDirection lcl_GetFrameDirection(ULONG nLanguage)
+SvxFrameDirection GetDefaultFrameDirection(ULONG nLanguage)
{
SvxFrameDirection eResult = FRMDIR_HORI_LEFT_TOP;
@@ -555,7 +558,8 @@ SwTxtFmtColl* SwDoc::GetTxtCollFromPool
// allgemeine Inhaltsformen
case RES_POOLCOLL_STANDARD:
if (bRegardLanguage &&
- lcl_GetFrameDirection(GetAppLanguage()) == FRMDIR_HORI_RIGHT_TOP)
+ GetDefaultFrameDirection(GetAppLanguage()) ==
+ FRMDIR_HORI_RIGHT_TOP)
{
SvxAdjustItem aAdjust(SVX_ADJUST_RIGHT);
aSet.Put(aAdjust);
@@ -1432,6 +1436,8 @@ SwFmt* SwDoc::GetFmtFromPool( USHORT nId, String* pDesc,
long nH = ((SvxFontHeightItem*)GetDfltAttr(
RES_CHRATR_CJK_FONTSIZE ))->GetHeight() / 2;
SetAllScriptItem( aSet, SvxFontHeightItem( nH ));
+ aSet.Put(SvxUnderlineItem( UNDERLINE_NONE ));
+ aSet.Put(SvxEmphasisMarkItem( EMPHASISMARK_NONE) );
}
break;
diff --git a/sw/source/core/doc/tblcpy.cxx b/sw/source/core/doc/tblcpy.cxx
index e11da889ac06..612fb927667e 100644
--- a/sw/source/core/doc/tblcpy.cxx
+++ b/sw/source/core/doc/tblcpy.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: tblcpy.cxx,v $
*
- * $Revision: 1.2 $
+ * $Revision: 1.3 $
*
- * last change: $Author: jp $ $Date: 2002-03-21 13:12:30 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:39:41 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -392,7 +392,12 @@ BOOL SwTable::InsTable( const SwTable& rCpyTbl, const SwSelBoxes& rSelBoxes,
USHORT nLn, nBx;
_FndLine *pFLine, *pInsFLine = 0;
- _FndBox aFndBox( rSelBoxes );
+ _FndBox aFndBox( 0, 0 );
+ // suche alle Boxen / Lines
+ {
+ _FndPara aPara( rSelBoxes, &aFndBox );
+ ((SwTableLines&)GetTabLines()).ForEach( &_FndLineCopyCol, &aPara );
+ }
// JP 06.09.96: Sonderfall - eine Box in der Tabelle -> in alle
// selektierten Boxen kopieren!
diff --git a/sw/source/core/doc/tblrwcl.cxx b/sw/source/core/doc/tblrwcl.cxx
index eebcef006252..736b703f5691 100644
--- a/sw/source/core/doc/tblrwcl.cxx
+++ b/sw/source/core/doc/tblrwcl.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: tblrwcl.cxx,v $
*
- * $Revision: 1.6 $
+ * $Revision: 1.7 $
*
- * last change: $Author: fme $ $Date: 2002-11-15 09:31:09 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:39:41 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -588,7 +588,11 @@ BOOL SwTable::InsertCol( SwDoc* pDoc, const SwSelBoxes& rBoxes,
return FALSE;
// suche alle Boxen / Lines
- _FndBox aFndBox( rBoxes );
+ _FndBox aFndBox( 0, 0 );
+ {
+ _FndPara aPara( rBoxes, &aFndBox );
+ GetTabLines().ForEach( &_FndLineCopyCol, &aPara );
+ }
if( !aFndBox.GetLines().Count() )
return FALSE;
@@ -625,7 +629,11 @@ BOOL SwTable::InsertRow( SwDoc* pDoc, const SwSelBoxes& rBoxes,
return FALSE;
// suche alle Boxen / Lines
- _FndBox aFndBox( rBoxes );
+ _FndBox aFndBox( 0, 0 );
+ {
+ _FndPara aPara( rBoxes, &aFndBox );
+ GetTabLines().ForEach( &_FndLineCopyCol, &aPara );
+ }
if( !aFndBox.GetLines().Count() )
return FALSE;
@@ -702,6 +710,41 @@ BOOL SwTable::InsertRow( SwDoc* pDoc, const SwSelBoxes& rBoxes,
return TRUE;
}
+BOOL _FndBoxAppendRowLine( const SwTableLine*& rpLine, void* pPara );
+
+BOOL _FndBoxAppendRowBox( const SwTableBox*& rpBox, void* pPara )
+{
+ _FndPara* pFndPara = (_FndPara*)pPara;
+ _FndBox* pFndBox = new _FndBox( (SwTableBox*)rpBox, pFndPara->pFndLine );
+ if( rpBox->GetTabLines().Count() )
+ {
+ _FndPara aPara( *pFndPara, pFndBox );
+ pFndBox->GetBox()->GetTabLines().ForEach( &_FndBoxAppendRowLine, &aPara );
+ if( !pFndBox->GetLines().Count() )
+ delete pFndBox;
+ }
+ else
+ pFndPara->pFndLine->GetBoxes().C40_INSERT( _FndBox, pFndBox,
+ pFndPara->pFndLine->GetBoxes().Count() );
+ return TRUE;
+}
+
+BOOL _FndBoxAppendRowLine( const SwTableLine*& rpLine, void* pPara )
+{
+ _FndPara* pFndPara = (_FndPara*)pPara;
+ _FndLine* pFndLine = new _FndLine( (SwTableLine*)rpLine, pFndPara->pFndBox );
+ _FndPara aPara( *pFndPara, pFndLine );
+ pFndLine->GetLine()->GetTabBoxes().ForEach( &_FndBoxAppendRowBox, &aPara );
+ if( pFndLine->GetBoxes().Count() )
+ {
+ pFndPara->pFndBox->GetLines().C40_INSERT( _FndLine, pFndLine,
+ pFndPara->pFndBox->GetLines().Count() );
+ }
+ else
+ delete pFndLine;
+ return TRUE;
+}
+
BOOL SwTable::AppendRow( SwDoc* pDoc, USHORT nCnt )
{
@@ -710,7 +753,15 @@ BOOL SwTable::AppendRow( SwDoc* pDoc, USHORT nCnt )
return FALSE;
// suche alle Boxen / Lines
- _FndBox aFndBox( *GetTabLines()[ GetTabLines().Count()-1 ] );
+ _FndBox aFndBox( 0, 0 );
+ {
+ const SwTableLine* pLLine = GetTabLines()[ GetTabLines().Count()-1 ];
+
+ const SwSelBoxes* pBxs = 0; // Dummy !!!
+ _FndPara aPara( *pBxs, &aFndBox );
+
+ _FndBoxAppendRowLine( pLLine, &aPara );
+ }
if( !aFndBox.GetLines().Count() )
return FALSE;
@@ -1683,7 +1734,11 @@ BOOL SwTable::Merge( SwDoc* pDoc, const SwSelBoxes& rBoxes,
return FALSE;
// suche alle Boxen / Lines
- _FndBox aFndBox( rBoxes );
+ _FndBox aFndBox( 0, 0 );
+ {
+ _FndPara aPara( rBoxes, &aFndBox );
+ GetTabLines().ForEach( &_FndLineCopyCol, &aPara );
+ }
if( !aFndBox.GetLines().Count() )
return FALSE;
@@ -1953,7 +2008,11 @@ BOOL SwTable::CopyHeadlineIntoTable( SwTableNode& rTblNd )
pBox = GetTblBox( pBox->GetSttNd()->FindStartNode()->GetIndex() + 1 );
SelLineFromBox( pBox, aSelBoxes, TRUE );
- _FndBox aFndBox( aSelBoxes );
+ _FndBox aFndBox( 0, 0 );
+ {
+ _FndPara aPara( aSelBoxes, &aFndBox );
+ ((SwTableLines&)GetTabLines()).ForEach( &_FndLineCopyCol, &aPara );
+ }
if( !aFndBox.GetLines().Count() )
return FALSE;
@@ -1978,7 +2037,11 @@ BOOL SwTable::MakeCopy( SwDoc* pInsDoc, const SwPosition& rPos,
BOOL bCpyName ) const
{
// suche alle Boxen / Lines
- _FndBox aFndBox( rSelBoxes );
+ _FndBox aFndBox( 0, 0 );
+ {
+ _FndPara aPara( rSelBoxes, &aFndBox );
+ ((SwTableLines&)GetTabLines()).ForEach( &_FndLineCopyCol, &aPara );
+ }
if( !aFndBox.GetLines().Count() )
return FALSE;
@@ -3285,15 +3348,13 @@ _FndBox* lcl_SaveInsDelData( CR_SetBoxWidth& rParam, SwUndo** ppUndo,
rTbl.GetTabSortBoxes().Count() )
return 0;
- _FndBox* pFndBox;
+ _FndBox* pFndBox = new _FndBox( 0, 0 );
if( rParam.bBigger )
- {
- pFndBox = new _FndBox( 0, 0 );
pFndBox->SetTableLines( rParam.aBoxes, rTbl );
- }
else
{
- pFndBox = new _FndBox( rParam.aBoxes );
+ _FndPara aPara( rParam.aBoxes, pFndBox );
+ rTbl.GetTabLines().ForEach( &_FndLineCopyCol, &aPara );
ASSERT( pFndBox->GetLines().Count(), "Wo sind die Boxen" );
pFndBox->SetTableLines( rTbl );
@@ -3813,15 +3874,13 @@ _FndBox* lcl_SaveInsDelData( CR_SetLineHeight& rParam, SwUndo** ppUndo,
rTbl.GetTabSortBoxes().Count() )
return 0;
- _FndBox* pFndBox;
+ _FndBox* pFndBox = new _FndBox( 0, 0 );
if( !rParam.bBigger )
- {
- pFndBox = new _FndBox( 0, 0 );
pFndBox->SetTableLines( rParam.aBoxes, rTbl );
- }
else
{
- pFndBox = new _FndBox( rParam.aBoxes );
+ _FndPara aPara( rParam.aBoxes, pFndBox );
+ rTbl.GetTabLines().ForEach( &_FndLineCopyCol, &aPara );
ASSERT( pFndBox->GetLines().Count(), "Wo sind die Boxen" );
pFndBox->SetTableLines( rTbl );
diff --git a/sw/source/core/docnode/ndcopy.cxx b/sw/source/core/docnode/ndcopy.cxx
index be8dfb911719..55ee8ff4b5b4 100644
--- a/sw/source/core/docnode/ndcopy.cxx
+++ b/sw/source/core/docnode/ndcopy.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: ndcopy.cxx,v $
*
- * $Revision: 1.7 $
+ * $Revision: 1.8 $
*
- * last change: $Author: hbrinkm $ $Date: 2002-11-05 12:37:07 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:39:46 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -148,7 +148,6 @@
#include <poolfmt.hxx>
#endif
-
// Struktur fuer das Mappen von alten und neuen Frame-Formaten an den
// Boxen und Lines einer Tabelle
@@ -902,6 +901,23 @@ BOOL SwDoc::_Copy( SwPaM& rPam, SwPosition& rPos,
}
}
+ const SfxPoolItem * pItem = NULL;
+ SwAttrSet * pAttrSet = pDestNd->GetpSwAttrSet();
+
+ /* #107213#: Safe numrule item at destination. */
+ int aState = SFX_ITEM_UNKNOWN;
+ SwNumRuleItem aNumRuleItem;
+
+ if (pAttrSet != NULL)
+ {
+ aState = pAttrSet->GetItemState
+ (RES_PARATR_NUMRULE, FALSE, &pItem);
+
+ if (SFX_ITEM_SET == aState)
+ aNumRuleItem = *((SwNumRuleItem *) pItem);
+ }
+ /* #107213# */
+
if( !bCopyOk )
{
xub_StrLen nCpyLen = ( bOneNode ? pEnd->nContent.GetIndex()
@@ -918,11 +934,21 @@ BOOL SwDoc::_Copy( SwPaM& rPam, SwPosition& rPos,
if( bCopyCollFmt )
{
pSttNd->CopyCollFmt( *pDestNd );
- if( pSttNd->GetNum() )
- pDestNd->UpdateNum( *pSttNd->GetNum() );
+
+ if (pSttNd->GetNum())
+ pDestNd->UpdateNum(*pSttNd->GetNum());
+
+ /* #107213# If only a part of one paragraph is copied
+ restore the numrule at the destination. */
+ if (SFX_ITEM_SET == aState)
+ pDestNd->SwCntntNode::SetAttr(aNumRuleItem);
+ else
+ pDestNd->ResetAttr(RES_PARATR_NUMRULE);
}
+
break;
}
+
aRg.aStart++;
}
}
@@ -983,6 +1009,23 @@ BOOL SwDoc::_Copy( SwPaM& rPam, SwPosition& rPos,
aInsPos--;
}
+ const SfxPoolItem * pItem = NULL;
+ SwAttrSet * pAttrSet = pDestNd->GetpSwAttrSet();
+
+ /* #107213# Save numrule at destination */
+ int aState = SFX_ITEM_UNKNOWN;
+ SwNumRuleItem aNumRuleItem;
+
+ if (pAttrSet != NULL)
+ {
+ aState = pAttrSet->GetItemState
+ (RES_PARATR_NUMRULE, FALSE, &pItem);
+
+ if (SFX_ITEM_SET == aState)
+ aNumRuleItem = *((SwNumRuleItem *) pItem);
+ }
+ /* #107213# */
+
BOOL bEmptyDestNd = 0 == pDestNd->GetTxt().Len();
pEndNd->Copy( pDestNd, aDestIdx, SwIndex( pEndNd ),
pEnd->nContent.GetIndex() );
@@ -991,8 +1034,19 @@ BOOL SwDoc::_Copy( SwPaM& rPam, SwPosition& rPos,
if( bCopyCollFmt && ( bOneNode || bEmptyDestNd ))
{
pEndNd->CopyCollFmt( *pDestNd );
- if( pEndNd->GetNum() )
+
+ if (pEndNd->GetNum())
pDestNd->UpdateNum( *pEndNd->GetNum() );
+
+ if (bOneNode)
+ {
+ /* #107213# If only a part of one paragraph is copied
+ restore the numrule at the destination. */
+ if (SFX_ITEM_SET == aState)
+ pDestNd->SwCntntNode::SetAttr(aNumRuleItem);
+ else
+ pDestNd->ResetAttr(RES_PARATR_NUMRULE);
+ }
}
}
@@ -1065,6 +1119,7 @@ BOOL SwDoc::_Copy( SwPaM& rPam, SwPosition& rPos,
}
pDoc->SetRedlineMode_intern( eOld );
pDoc->SetModified();
+
return TRUE;
}
diff --git a/sw/source/core/docnode/ndsect.cxx b/sw/source/core/docnode/ndsect.cxx
index 5a812a85ee1e..e1e97e2bc7ec 100644
--- a/sw/source/core/docnode/ndsect.cxx
+++ b/sw/source/core/docnode/ndsect.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: ndsect.cxx,v $
*
- * $Revision: 1.9 $
+ * $Revision: 1.10 $
*
- * last change: $Author: od $ $Date: 2002-11-15 11:07:52 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:39:46 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -412,8 +412,8 @@ USHORT SwDoc::IsInsRegionAvailable( const SwPaM& rRange,
const SwCntntNode* pCNd = pEnd->nNode.GetNode().GetCntntNode();
const SwNode* pNd = &pStt->nNode.GetNode();
const SwSectionNode* pSectNd = pNd->FindSectionNode();
- const SwSectionNode* pEndSectNd = pCNd->FindSectionNode();
- if( pSectNd && pEndSectNd && pSectNd != pCNd->FindSectionNode() )
+ const SwSectionNode* pEndSectNd = pCNd ? pCNd->FindSectionNode() : 0;
+ if( pSectNd && pEndSectNd && pSectNd != pEndSectNd )
{
// versuche eine umschliessende Section zu erzeugen
// Aber, nur wenn der Start am Sectionanfang und das Ende am
diff --git a/sw/source/core/docnode/ndtbl.cxx b/sw/source/core/docnode/ndtbl.cxx
index 9e5d7e7eec53..301091d13c4b 100644
--- a/sw/source/core/docnode/ndtbl.cxx
+++ b/sw/source/core/docnode/ndtbl.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: ndtbl.cxx,v $
*
- * $Revision: 1.9 $
+ * $Revision: 1.10 $
*
- * last change: $Author: fme $ $Date: 2002-11-15 09:51:05 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:39:47 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -115,6 +115,9 @@
#ifndef _CELLFRM_HXX //autogen
#include <cellfrm.hxx>
#endif
+#ifndef _PAGEFRM_HXX
+#include <pagefrm.hxx>
+#endif
#ifndef _TABCOL_HXX //autogen
#include <tabcol.hxx>
#endif
@@ -249,17 +252,17 @@ class lcl_DelRedlines
SwDoc* pDoc;
public:
lcl_DelRedlines( const SwTableNode& rNd, BOOL bCheckForOwnRedline );
- lcl_DelRedlines( SwPaM& rPam )
- : pDoc( rPam.GetDoc() )
- {
- pDoc->StartUndo();
- if( !pDoc->IsIgnoreRedline() && pDoc->GetRedlineTbl().Count() )
- pDoc->DeleteRedline( rPam );
- }
+ lcl_DelRedlines( SwPaM& rPam );
~lcl_DelRedlines() { pDoc->EndUndo(); }
};
+lcl_DelRedlines::lcl_DelRedlines( SwPaM & rPam) : pDoc( rPam.GetDoc() )
+{
+ pDoc->StartUndo();
+ if( !pDoc->IsIgnoreRedline() && pDoc->GetRedlineTbl().Count() )
+ pDoc->AcceptRedline( rPam );
+}
void lcl_SetDfltBoxAttr( SwFrmFmt& rFmt, BYTE nId )
{
@@ -514,6 +517,9 @@ const SwTable* SwDoc::InsertTable( const SwPosition& rPos, USHORT nRows,
if( (nInsTblFlags & HEADLINE) && (1 != nRows || !bDfltBorders) )
pHeadColl = GetTxtCollFromPool( RES_POOLCOLL_TABLE_HDLN );
+ /* #106283# Save content node to extract FRAMEDIR from. */
+ const SwCntntNode * pCntntNd = rPos.nNode.GetNode().GetCntntNode();
+
SwTableNode *pTblNd = GetNodes().InsertTable( rPos.nNode, nCols,
pBodyColl, nRows, pHeadColl );
@@ -521,6 +527,20 @@ const SwTable* SwDoc::InsertTable( const SwPosition& rPos, USHORT nRows,
SwTableLineFmt* pLineFmt = MakeTableLineFmt();
SwTableFmt* pTableFmt = MakeTblFrmFmt( GetUniqueTblName(), GetDfltFrmFmt() );
+ /* #106283# If the node to insert the table at is a context node and has a
+ non-default FRAMEDIR propagate it to the table. */
+ if (pCntntNd)
+ {
+ const SwAttrSet & aNdSet = pCntntNd->GetSwAttrSet();
+ const SfxPoolItem *pItem = NULL;
+
+ if (SFX_ITEM_SET == aNdSet.GetItemState( RES_FRAMEDIR, TRUE, &pItem )
+ && pItem != NULL)
+ {
+ pTableFmt->SetAttr( *pItem );
+ }
+ }
+
//Orientation am Fmt der Table setzen
pTableFmt->SetAttr( SwFmtHoriOrient( 0, eAdjust ) );
// alle Zeilen haben die Fill-Order von links nach rechts !
@@ -716,6 +736,9 @@ const SwTable* SwDoc::TextToTable( const SwPaM& rRange, sal_Unicode cCh,
return 0;
}
+ /* #106283# Save first node in the selection if it is a context node. */
+ SwCntntNode * pSttCntntNd = pStt->nNode.GetNode().GetCntntNode();
+
SwPaM aOriginal( *pStt, *pEnd );
pStt = aOriginal.GetMark();
pEnd = aOriginal.GetPoint();
@@ -786,6 +809,21 @@ const SwTable* SwDoc::TextToTable( const SwPaM& rRange, sal_Unicode cCh,
if( !(nInsTblFlags & SPLIT_LAYOUT) )
pTableFmt->SetAttr( SwFmtLayoutSplit( FALSE ));
+ /* #106283# If the first node in the selection is a context node and if it
+ has an item FRAMEDIR set (no default) propagate the item to the
+ replacing table. */
+ if (pSttCntntNd)
+ {
+ const SwAttrSet & aNdSet = pSttCntntNd->GetSwAttrSet();
+ const SfxPoolItem *pItem = NULL;
+
+ if (SFX_ITEM_SET == aNdSet.GetItemState( RES_FRAMEDIR, TRUE, &pItem )
+ && pItem != NULL)
+ {
+ pTableFmt->SetAttr( *pItem );
+ }
+ }
+
SwTableNode* pTblNd = GetNodes().TextToTable( aRg, cCh, pTableFmt,
pLineFmt, pBoxFmt,
GetTxtCollFromPool( RES_POOLCOLL_STANDARD ),
@@ -1526,7 +1564,12 @@ BOOL SwDoc::DeleteRow( const SwCursor& rCursor )
return FALSE;
// suche alle Boxen / Lines
- _FndBox aFndBox( aBoxes );
+ _FndBox aFndBox( 0, 0 );
+ {
+ _FndPara aPara( aBoxes, &aFndBox );
+ pTblNd->GetTable().GetTabLines().ForEach( &_FndLineCopyCol, &aPara );
+ }
+
if( !aFndBox.GetLines().Count() )
return FALSE;
@@ -2133,18 +2176,19 @@ void SwDoc::GetTabCols( SwTabCols &rFill, const SwCursor* pCrsr,
}
//Fix-Punkte setzen, LeftMin in Dokumentkoordinaten die anderen relativ.
-#ifdef VERTICAL_LAYOUT
SWRECTFN( pTab )
- rFill.SetLeftMin ( (USHORT)(pTab->Frm().*fnRect->fnGetLeft)() );
+ const SwPageFrm* pPage = pTab->FindPageFrm();
+ const ULONG nLeftMin = (pTab->Frm().*fnRect->fnGetLeft)() -
+ (pPage->Frm().*fnRect->fnGetLeft)() +
+ DOCUMENTBORDER;
+ const ULONG nRightMax = (pTab->Frm().*fnRect->fnGetRight)() -
+ (pPage->Frm().*fnRect->fnGetLeft)() +
+ DOCUMENTBORDER;
+
+ rFill.SetLeftMin ( nLeftMin );
rFill.SetLeft ( (pTab->Prt().*fnRect->fnGetLeft)() );
rFill.SetRight ( (pTab->Prt().*fnRect->fnGetRight)());
- rFill.SetRightMax( (USHORT)(pTab->Frm().*fnRect->fnGetRight)() - rFill.GetLeftMin() );
-#else
- rFill.SetLeftMin ( (USHORT)pTab->Frm().Left() );
- rFill.SetLeft ( pTab->Prt().Left() );
- rFill.SetRight ( pTab->Prt().Right());
- rFill.SetRightMax( (USHORT)pTab->Frm().Right() - rFill.GetLeftMin() );
-#endif
+ rFill.SetRightMax( nRightMax - nLeftMin );
pTab->GetTable()->GetTabCols( rFill, pBox );
}
@@ -2205,18 +2249,19 @@ void SwDoc::SetTabCols( const SwTabCols &rNew, BOOL bCurRowOnly,
SwTabCols aOld( rNew.Count() );
+ const SwPageFrm* pPage = pTab->FindPageFrm();
+ const ULONG nLeftMin = (pTab->Frm().*fnRect->fnGetLeft)() -
+ (pPage->Frm().*fnRect->fnGetLeft)() +
+ DOCUMENTBORDER;
+ const ULONG nRightMax = (pTab->Frm().*fnRect->fnGetRight)() -
+ (pPage->Frm().*fnRect->fnGetLeft)() +
+ DOCUMENTBORDER;
+
//Fix-Punkte setzen, LeftMin in Dokumentkoordinaten die anderen relativ.
-#ifdef VERTICAL_LAYOUT
- aOld.SetLeftMin ( (USHORT)(pTab->Frm().*fnRect->fnGetLeft)() );
+ aOld.SetLeftMin ( nLeftMin );
aOld.SetLeft ( (pTab->Prt().*fnRect->fnGetLeft)() );
aOld.SetRight ( (pTab->Prt().*fnRect->fnGetRight)());
- aOld.SetRightMax( (USHORT)(pTab->Frm().*fnRect->fnGetRight)() - aOld.GetLeftMin() );
-#else
- aOld.SetLeftMin ( (USHORT)pTab->Frm().Left() );
- aOld.SetLeft ( pTab->Prt().Left() );
- aOld.SetRight ( pTab->Prt().Right());
- aOld.SetRightMax( (USHORT)pTab->Frm().Right() - aOld.GetLeftMin() );
-#endif
+ aOld.SetRightMax( nRightMax - nLeftMin );
/* if( DoesUndo() )
{
@@ -3018,7 +3063,11 @@ BOOL SwDoc::SetTableAutoFmt( const SwSelBoxes& rBoxes, const SwTableAutoFmt& rNe
return FALSE;
// suche alle Boxen / Lines
- _FndBox aFndBox( rBoxes );
+ _FndBox aFndBox( 0, 0 );
+ {
+ _FndPara aPara( rBoxes, &aFndBox );
+ pTblNd->GetTable().GetTabLines().ForEach( &_FndLineCopyCol, &aPara );
+ }
if( !aFndBox.GetLines().Count() )
return FALSE;
@@ -3089,7 +3138,11 @@ BOOL SwDoc::GetTableAutoFmt( const SwSelBoxes& rBoxes, SwTableAutoFmt& rGet )
return FALSE;
// suche alle Boxen / Lines
- _FndBox aFndBox( rBoxes );
+ _FndBox aFndBox( 0, 0 );
+ {
+ _FndPara aPara( rBoxes, &aFndBox );
+ pTblNd->GetTable().GetTabLines().ForEach( &_FndLineCopyCol, &aPara );
+ }
if( !aFndBox.GetLines().Count() )
return FALSE;
@@ -3890,7 +3943,10 @@ lcl_DelRedlines::lcl_DelRedlines( const SwTableNode& rNd,
}
}
if( bDelete )
- pDoc->DeleteRedline( rNd );
+ {
+ SwPaM aPam(*rNd.EndOfSectionNode(), rNd);
+ pDoc->AcceptRedline( aPam );
+ }
}
}
diff --git a/sw/source/core/docnode/ndtbl1.cxx b/sw/source/core/docnode/ndtbl1.cxx
index a9fb82f3c6ae..1e1a5cf41211 100644
--- a/sw/source/core/docnode/ndtbl1.cxx
+++ b/sw/source/core/docnode/ndtbl1.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: ndtbl1.cxx,v $
*
- * $Revision: 1.4 $
+ * $Revision: 1.5 $
*
- * last change: $Author: fme $ $Date: 2002-12-02 12:24:28 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:39:47 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -287,7 +287,6 @@ BOOL _FindLine( const _FndLine*& rpLine, void* pPara )
return TRUE;
}
-
void lcl_CollectLines( SvPtrarr &rArr, const SwCursor& rCursor )
{
//Zuerst die selektierten Boxen einsammeln.
@@ -296,11 +295,15 @@ void lcl_CollectLines( SvPtrarr &rArr, const SwCursor& rCursor )
return ;
//Die selektierte Struktur kopieren.
- _FndBox aFndBox( aBoxes );
-
- //Diejenigen Lines einsammeln, die nur selektierte Boxen enthalten.
const SwTable &rTable = aBoxes[0]->GetSttNd()->FindTableNode()->GetTable();
LinesAndTable aPara( rArr, rTable );
+ _FndBox aFndBox( 0, 0 );
+ {
+ _FndPara aPara( aBoxes, &aFndBox );
+ ((SwTableLines&)rTable.GetTabLines()).ForEach( &_FndLineCopyCol, &aPara );
+ }
+
+ //Diejenigen Lines einsammeln, die nur selektierte Boxen enthalten.
const _FndBox *pTmp = &aFndBox;
::_FindBox( pTmp, &aPara );
@@ -1427,6 +1430,9 @@ void SwDoc::AdjustCellWidth( const SwCursor& rCursor, BOOL bBalance )
SwTabCols aTabCols;
GetTabCols( aTabCols, 0, (SwCellFrm*)pBoxFrm );
+ if ( ! aTabCols.Count() )
+ return;
+
const BYTE nTmp = (BYTE)Max( USHORT(255), USHORT(aTabCols.Count() + 1) );
SvUShorts aWish( nTmp, nTmp ),
aMins( nTmp, nTmp );
@@ -1501,13 +1507,13 @@ void SwDoc::AdjustCellWidth( const SwCursor& rCursor, BOOL bBalance )
else
nDiff -= aTabCols[i] - aTabCols[i-1];
- USHORT nTabRight = aTabCols.GetRight() + nDiff;
+ long nTabRight = aTabCols.GetRight() + nDiff;
//Wenn die Tabelle zu breit wuerde begrenzen wir die Anpassung
//auf das erlaubte Maximum.
if ( !bBalance && nTabRight > aTabCols.GetRightMax() )
{
- const USHORT nTmp = nTabRight - aTabCols.GetRightMax();
+ const long nTmp = nTabRight - aTabCols.GetRightMax();
nDiff -= nTmp;
nTabRight -= nTmp;
}
diff --git a/sw/source/core/docnode/nodes.cxx b/sw/source/core/docnode/nodes.cxx
index 41cce89dd5de..422e6c295369 100644
--- a/sw/source/core/docnode/nodes.cxx
+++ b/sw/source/core/docnode/nodes.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: nodes.cxx,v $
*
- * $Revision: 1.8 $
+ * $Revision: 1.9 $
*
- * last change: $Author: od $ $Date: 2003-02-28 12:41:34 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:39:47 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
diff --git a/sw/source/core/docnode/swbaslnk.cxx b/sw/source/core/docnode/swbaslnk.cxx
index dcd8db0e9f74..386169d1b4c1 100644
--- a/sw/source/core/docnode/swbaslnk.cxx
+++ b/sw/source/core/docnode/swbaslnk.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: swbaslnk.cxx,v $
*
- * $Revision: 1.4 $
+ * $Revision: 1.5 $
*
- * last change: $Author: jp $ $Date: 2001-07-04 18:13:29 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:39:48 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -69,6 +69,13 @@
#include <hintids.hxx>
+#ifndef _SV_SVAPP_HXX
+#include <vcl/svapp.hxx>
+#endif
+#ifndef _SV_OUTDEV_HXX
+#include <vcl/outdev.hxx>
+#endif
+
#ifndef _LNKBASE_HXX //autogen
#include <so3/lnkbase.hxx>
#endif
@@ -146,7 +153,7 @@
#include <htmltbl.hxx>
#endif
-BOOL SetGrfFlySize( const Size& rGrfSz, SwGrfNode* pGrfNd );
+BOOL SetGrfFlySize( const Size& rGrfSz, const Size& rFrmSz, SwGrfNode* pGrfNd );
TYPEINIT1( SwBaseLink, ::so3::SvBaseLink );
@@ -228,7 +235,7 @@ void SwBaseLink::DataChanged( const String& rMimeType,
FASTBOOL bGraphicArrived = FALSE;
FASTBOOL bGraphicPieceArrived = FALSE;
FASTBOOL bDontNotify = FALSE;
- Size aGrfSz;
+ Size aGrfSz, aFrmFmtSz;
if( pCntntNode->IsGrfNode() )
{
@@ -246,6 +253,18 @@ void SwBaseLink::DataChanged( const String& rMimeType,
GRAPHIC_DEFAULT != rGrfObj.GetType() ) )
{
aGrfSz = ::GetGraphicSizeTwip( aGrf, 0 );
+ if( static_cast< const SwGrfNode * >( pCntntNode )->IsChgTwipSizeFromPixel() )
+ {
+ const MapMode aMapTwip( MAP_TWIP );
+ aFrmFmtSz =
+ Application::GetDefaultDevice()->PixelToLogic(
+ aGrf.GetSizePixel(), aMapTwip );
+
+ }
+ else
+ {
+ aFrmFmtSz = aGrfSz;
+ }
Size aSz( ((SwGrfNode*)pCntntNode)->GetTwipSize() );
if( bGraphicPieceArrived && GRAPHIC_DEFAULT != aGrf.GetType() &&
@@ -341,11 +360,11 @@ void SwBaseLink::DataChanged( const String& rMimeType,
IsGrafikArrived() );
// Fly der Grafik anpassen !
- if( !::SetGrfFlySize( aGrfSz, pGrfNd ) )
+ if( !::SetGrfFlySize( aGrfSz, aFrmFmtSz, pGrfNd ) )
::lcl_CallModify( *pGrfNd, aMsgHint );
}
else if( pBLink == this &&
- !::SetGrfFlySize( aGrfSz, pGrfNd ) )
+ !::SetGrfFlySize( aGrfSz, aFrmFmtSz, pGrfNd ) )
// Fly der Grafik anpassen !
::lcl_CallModify( *pGrfNd, aMsgHint );
}
@@ -387,7 +406,7 @@ FASTBOOL SwBaseLink::IsShowQuickDrawBmp() const
}
-BOOL SetGrfFlySize( const Size& rGrfSz, SwGrfNode* pGrfNd )
+BOOL SetGrfFlySize( const Size& rGrfSz, const Size& rFrmSz, SwGrfNode* pGrfNd )
{
BOOL bRet = FALSE;
ViewShell *pSh;
@@ -406,15 +425,15 @@ BOOL SetGrfFlySize( const Size& rGrfSz, SwGrfNode* pGrfNd )
Size aCalcSz( aSz );
if ( !aSz.Height() && aSz.Width() )
//passende Hoehe ausrechnen.
- aCalcSz.Height() = rGrfSz.Height() *
- aSz.Width() / rGrfSz.Width();
+ aCalcSz.Height() = rFrmSz.Height() *
+ aSz.Width() / rFrmSz.Width();
else if ( !aSz.Width() && aSz.Height() )
//passende Breite ausrechnen
- aCalcSz.Width() = rGrfSz.Width() *
- aSz.Height() / rGrfSz.Height();
+ aCalcSz.Width() = rFrmSz.Width() *
+ aSz.Height() / rFrmSz.Height();
else
//Hoehe und Breite uebernehmen
- aCalcSz = rGrfSz;
+ aCalcSz = rFrmSz;
const SvxBoxItem &rBox = pFmt->GetBox();
aCalcSz.Width() += rBox.CalcLineSpace(BOX_LINE_LEFT) +
diff --git a/sw/source/core/draw/dflyobj.cxx b/sw/source/core/draw/dflyobj.cxx
index 7c29ff6851d1..b37fd7e988d8 100644
--- a/sw/source/core/draw/dflyobj.cxx
+++ b/sw/source/core/draw/dflyobj.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: dflyobj.cxx,v $
*
- * $Revision: 1.9 $
+ * $Revision: 1.10 $
*
- * last change: $Author: fme $ $Date: 2002-10-10 08:45:44 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:39:50 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -301,16 +301,22 @@ SdrObject* __EXPORT SwVirtFlyDrawObj::CheckHit( const Point& rPnt, USHORT nTol,
&& !rURL.GetURL().Len() && !rURL.GetMap()
*/ )
{
- //Vor dem Return noch 3a (siehe oben) pruefen.
- SdrPage *pPg = GetPage();
- for ( UINT32 i = GetOrdNumDirect()+1; i < pPg->GetObjCount(); ++i )
- {
- SdrObject *pObj = pPg->GetObj( i );
- if ( pObj->IsWriterFlyFrame() &&
- ((SwVirtFlyDrawObj*)pObj)->GetBoundRect().IsInside( rPnt ) )
- return 0;
- }
+ // #107513#
+ // This test needs to be done outside, since also drawing layer HitTest
+ // methods are called. Not all drawing objects are derived and the
+ // CheckHit() overloaded. That's an conceptual error here.
return (SdrObject*)this;
+
+ //Vor dem Return noch 3a (siehe oben) pruefen.
+ //SdrPage *pPg = GetPage();
+ //for ( UINT32 i = GetOrdNumDirect()+1; i < pPg->GetObjCount(); ++i )
+ //{
+ // SdrObject *pObj = pPg->GetObj( i );
+ // if ( pObj->IsWriterFlyFrame() &&
+ // ((SwVirtFlyDrawObj*)pObj)->GetBoundRect().IsInside( rPnt ) )
+ // return 0;
+ //}
+ //return (SdrObject*)this;
}
else
{
diff --git a/sw/source/core/draw/dpage.cxx b/sw/source/core/draw/dpage.cxx
index 5cbd2c28745b..4277d6505d73 100644
--- a/sw/source/core/draw/dpage.cxx
+++ b/sw/source/core/draw/dpage.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: dpage.cxx,v $
*
- * $Revision: 1.3 $
+ * $Revision: 1.4 $
*
- * last change: $Author: os $ $Date: 2000-11-27 07:50:16 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:39:50 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -168,10 +168,12 @@ SwDPage::~SwDPage()
}
-Point SwDPage::GetOffset() const
-{
- return Point( DOCUMENTBORDER, DOCUMENTBORDER );
-}
+// #i3694#
+// This GetOffset() method is not needed anymore, it even leads to errors.
+//Point SwDPage::GetOffset() const
+//{
+// return Point( DOCUMENTBORDER, DOCUMENTBORDER );
+//}
/*************************************************************************
|*
diff --git a/sw/source/core/draw/drawdoc.cxx b/sw/source/core/draw/drawdoc.cxx
index 2133aec830e5..d32c209ce6e1 100644
--- a/sw/source/core/draw/drawdoc.cxx
+++ b/sw/source/core/draw/drawdoc.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: drawdoc.cxx,v $
*
- * $Revision: 1.11 $
+ * $Revision: 1.12 $
*
- * last change: $Author: ka $ $Date: 2001-11-02 16:05:52 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:39:51 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -244,6 +244,8 @@ SwDrawDocument::SwDrawDocument( SfxItemPool *pPool, SwDocShell *pDocSh )
SwDrawDocument::~SwDrawDocument()
{
+ Broadcast(SdrHint(HINT_MODELCLEARED));
+
Clear();
}
diff --git a/sw/source/core/edit/acorrect.cxx b/sw/source/core/edit/acorrect.cxx
index 13aaecf3083b..d6948d20bb9d 100644
--- a/sw/source/core/edit/acorrect.cxx
+++ b/sw/source/core/edit/acorrect.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: acorrect.cxx,v $
*
- * $Revision: 1.7 $
+ * $Revision: 1.8 $
*
- * last change: $Author: jp $ $Date: 2002-02-22 12:00:10 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:39:52 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -472,6 +472,7 @@ BOOL SwAutoCorrDoc::ChgAutoCorrWord( xub_StrLen & rSttPos, xub_StrLen nEndPos,
pDoc->DontExpandFmt( *aPam.GetPoint() );
pDoc->Insert( aPam, pCorr->Correct() );
+ pDoc->AppendTmpCorr(sKurz, pCorr->Correct());
bRet = TRUE;
}
}
diff --git a/sw/source/core/edit/autofmt.cxx b/sw/source/core/edit/autofmt.cxx
index 62a31723b732..53881e32594c 100644
--- a/sw/source/core/edit/autofmt.cxx
+++ b/sw/source/core/edit/autofmt.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: autofmt.cxx,v $
*
- * $Revision: 1.15 $
+ * $Revision: 1.16 $
*
- * last change: $Author: iha $ $Date: 2002-11-28 12:12:41 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:39:52 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -961,9 +961,14 @@ USHORT SwAutoFormat::GetDigitLevel( const SwTxtNode& rNd, xub_StrLen& rPos,
// Numerierung mit c oder d anfangen will, werden diese erstmal
// zu chars und spaeter ggfs. zu romischen Zeichen!
// if( strchr( "mdclxvi", cLow ))
+#ifdef WITH_ALPHANUM_AS_NUMFMT
+ //detection of 'c' and 'd' a ROMAN numbering should not be done here
if( 256 > cLow &&( (eScan & (LOWER_ROMAN|UPPER_ROMAN))
? strchr( "mdclxvi", cLow )
: strchr( "mlxvi", cLow ) ))
+#else
+ if( 256 > cLow && ( strchr( "mdclxvi", cLow ) ))
+#endif
{
if( bIsUpper )
cNumTyp = '0' + SVX_NUM_ROMAN_UPPER, eTmpScan = UPPER_ROMAN;
diff --git a/sw/source/core/edit/edattr.cxx b/sw/source/core/edit/edattr.cxx
index 9f3eda4c4408..137b20354461 100644
--- a/sw/source/core/edit/edattr.cxx
+++ b/sw/source/core/edit/edattr.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: edattr.cxx,v $
*
- * $Revision: 1.27 $
+ * $Revision: 1.28 $
*
- * last change: $Author: fme $ $Date: 2002-12-02 10:26:44 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:39:53 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -149,11 +149,15 @@ using namespace ::com::sun::star::i18n;
// wenn Selektion groesser Max Nodes oder mehr als Max Selektionen
// => keine Attribute
-static const USHORT nMaxLookup = 255;
+const USHORT& getMaxLookup()
+{
+ static const USHORT nMaxLookup = 1000;
+ return nMaxLookup;
+}
BOOL SwEditShell::GetAttr( SfxItemSet& rSet ) const
{
- if( GetCrsrCnt() > nMaxLookup )
+ if( GetCrsrCnt() > getMaxLookup() )
{
rSet.InvalidateAllItems();
return FALSE;
@@ -175,7 +179,7 @@ BOOL SwEditShell::GetAttr( SfxItemSet& rSet ) const
nTmp = nSttCnt; nSttCnt = nEndCnt; nEndCnt = (xub_StrLen)nTmp;
}
- if( nEndNd - nSttNd >= nMaxLookup )
+ if( nEndNd - nSttNd >= getMaxLookup() )
{
rSet.ClearItem();
rSet.InvalidateAllItems();
@@ -246,7 +250,7 @@ SwTxtFmtColl* SwEditShell::GetCurTxtFmtColl() const
{
SwTxtFmtColl *pFmt = 0;
- if ( GetCrsrCnt() > nMaxLookup )
+ if ( GetCrsrCnt() > getMaxLookup() )
return 0;
FOREACHPAM_START(this)
@@ -262,7 +266,7 @@ SwTxtFmtColl* SwEditShell::GetCurTxtFmtColl() const
nTmp = nSttCnt; nSttCnt = nEndCnt; nEndCnt = (xub_StrLen)nTmp;
}
- if( nEndNd - nSttNd >= nMaxLookup )
+ if( nEndNd - nSttNd >= getMaxLookup() )
{
pFmt = 0;
break;
@@ -480,10 +484,41 @@ inline USHORT lcl_SetScriptFlags( USHORT nType )
}
BOOL lcl_IsNoEndTxtAttrAtPos( const SwTxtNode& rTNd, xub_StrLen nPos,
- USHORT &rScrpt, BOOL bInSelection )
+ USHORT &rScrpt, BOOL bInSelection, BOOL bNum )
{
BOOL bRet = FALSE;
const String& rTxt = rTNd.GetTxt();
+ String sExp;
+
+ // consider numbering
+ if ( bNum )
+ {
+ bRet = FALSE;
+
+ const SwNumRule* pNumRule = rTNd.GetNumRule();
+ const SwNodeNum* pNum = rTNd.GetNum();
+
+ if( !pNumRule ) // oder sollte OutlineNum an sein?
+ {
+ pNum = rTNd.GetOutlineNum();
+ if( pNum )
+ pNumRule = rTNd.GetDoc()->GetOutlineNumRule();
+ }
+
+ if( pNumRule && pNum && MAXLEVEL > pNum->GetLevel() )
+ {
+ const SwNumFmt &rNumFmt = pNumRule->Get( pNum->GetLevel() );
+
+ if( SVX_NUM_BITMAP != rNumFmt.GetNumberingType() )
+ {
+ sExp = ( SVX_NUM_CHAR_SPECIAL == rNumFmt.GetNumberingType() ?
+ rNumFmt.GetBulletChar() :
+ pNumRule->MakeNumString( *pNum ) );
+ }
+ }
+ }
+
+ // and fields
const SwTxtAttr* pTFld;
if( CH_TXTATR_BREAKWORD == rTxt.GetChar( nPos ) &&
0 != ( pTFld = rTNd.GetTxtAttr( nPos ) ) )
@@ -491,27 +526,32 @@ BOOL lcl_IsNoEndTxtAttrAtPos( const SwTxtNode& rTNd, xub_StrLen nPos,
bRet = TRUE; // all other then fields can be
// defined as weak-script ?
const SwField* pFld;
- String sExp;
if( RES_TXTATR_FIELD == pTFld->Which() &&
- 0 != (pFld = pTFld->GetFld().GetFld() ) &&
- (sExp = pFld->Expand()).Len() )
+ 0 != (pFld = pTFld->GetFld().GetFld() ) )
+ {
+ sExp += pFld->Expand();
+ }
+ }
+
+ xub_StrLen nEnd = sExp.Len();
+ if ( nEnd )
+ {
+ xub_StrLen n;
+ if( bInSelection )
{
- xub_StrLen n, nEnd = sExp.Len();
- if( bInSelection )
+ USHORT nScript;
+ for( n = 0; n < nEnd; n = (xub_StrLen)
+ pBreakIt->xBreak->endOfScript( sExp, n, nScript ))
{
- USHORT nScript;
- for( n = 0; n < nEnd; n = (xub_StrLen)
- pBreakIt->xBreak->endOfScript( sExp, n, nScript ))
- {
- nScript = pBreakIt->xBreak->getScriptType( sExp, n );
- rScrpt |= nScript;
- }
+ nScript = pBreakIt->xBreak->getScriptType( sExp, n );
+ rScrpt |= lcl_SetScriptFlags( nScript );
}
- else
- rScrpt |= lcl_SetScriptFlags( pBreakIt->xBreak->
- getScriptType( sExp, nEnd-1 ));
}
+ else
+ rScrpt |= lcl_SetScriptFlags( pBreakIt->xBreak->
+ getScriptType( sExp, nEnd-1 ));
}
+
return bRet;
}
@@ -557,7 +597,7 @@ USHORT SwEditShell::GetScriptType( USHORT nFlags ) const
else
nScript = GetI18NScriptTypeOfLanguage( (USHORT)GetAppLanguage() );
- if( !lcl_IsNoEndTxtAttrAtPos( *pTNd, nPos, nRet, FALSE ))
+ if( !lcl_IsNoEndTxtAttrAtPos( *pTNd, nPos, nRet, FALSE, FALSE ))
nRet |= lcl_SetScriptFlags( nScript );
}
}
@@ -581,6 +621,7 @@ USHORT SwEditShell::GetScriptType( USHORT nFlags ) const
? pEnd->nContent.GetIndex()
: rTxt.Len(),
nSttPos = nChg;
+
ASSERT( nEndPos <= rTxt.Len(), "Index outside the range - endless loop!" );
if( nEndPos > rTxt.Len() )
nEndPos = rTxt.Len();
@@ -593,7 +634,8 @@ USHORT SwEditShell::GetScriptType( USHORT nFlags ) const
pBreakIt->xBreak->getScriptType(
rTxt, nChg );
- if( !lcl_IsNoEndTxtAttrAtPos( *pTNd, nChg, nRet, TRUE ) )
+ if( !lcl_IsNoEndTxtAttrAtPos( *pTNd, nChg, nRet, TRUE,
+ 0 == nChg && rTxt.Len() == nEndPos ) )
nRet |= lcl_SetScriptFlags( nScript );
if( (SCRIPTTYPE_LATIN | SCRIPTTYPE_ASIAN |
diff --git a/sw/source/core/edit/editsh.cxx b/sw/source/core/edit/editsh.cxx
index 62922b838f79..57282dbf4cf8 100644
--- a/sw/source/core/edit/editsh.cxx
+++ b/sw/source/core/edit/editsh.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: editsh.cxx,v $
*
- * $Revision: 1.19 $
+ * $Revision: 1.20 $
*
- * last change: $Author: os $ $Date: 2002-08-26 14:39:30 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:39:53 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -172,6 +172,9 @@
#ifndef _CRSSKIP_HXX
#include <crsskip.hxx>
#endif
+#ifndef _DRAWFONT_HXX
+#include <drawfont.hxx>
+#endif
#ifndef _UNOOBJ_HXX
#include <unoobj.hxx>
#endif
@@ -217,6 +220,57 @@ void SwEditShell::Insert(const String &rStr)
SaveTblBoxCntnt( PCURCRSR->GetPoint() );
FOREACHPAM_END()
+
+ // calculate cursor bidi level
+ SwCursor* pTmpCrsr = _GetCrsr();
+ const BOOL bDoNotSetBidiLevel = ! pTmpCrsr ||
+ ( 0 != (SwUnoCrsr*)*pTmpCrsr );
+
+ if ( ! bDoNotSetBidiLevel )
+ {
+ SwNode& rNode = pTmpCrsr->GetPoint()->nNode.GetNode();
+ if ( rNode.IsTxtNode() )
+ {
+ SwIndex& rIdx = pTmpCrsr->GetPoint()->nContent;
+ xub_StrLen nPos = rIdx.GetIndex();
+ xub_StrLen nPrevPos = nPos;
+ if ( nPrevPos )
+ --nPrevPos;
+
+ // If some day the font fallback works, we should do this here:
+ // 1. get script info
+ // 2. call InitScriptInfo( rNode, bRTL )
+ // This would avoid calling UpdateBidiInfo here, instead it would
+ // be called within InitScriptInfo and only if there are complex
+ // characters in the string.
+
+ SwScriptInfo* pSI = SwScriptInfo::GetScriptInfo( ((SwTxtNode&)rNode),
+ sal_True );
+
+ BYTE nLevel = 0;
+ if ( ! pSI )
+ {
+ // seems to be an empty paragraph.
+ Point aPt;
+ SwCntntFrm* pFrm =
+ ((SwTxtNode&)rNode).GetFrm( &aPt, pTmpCrsr->GetPoint(),
+ sal_False );
+
+ SwScriptInfo aScriptInfo;
+ aScriptInfo.SetDefaultDir( pFrm->IsRightToLeft() );
+ aScriptInfo.UpdateBidiInfo( ((SwTxtNode&)rNode).GetTxt() );
+ nLevel = aScriptInfo.DirType( nPrevPos );
+ }
+ else
+ {
+ pSI->UpdateBidiInfo( ((SwTxtNode&)rNode).GetTxt() );
+ nLevel = pSI->DirType( nPrevPos );
+ }
+
+ pTmpCrsr->SetCrsrBidiLevel( nLevel );
+ }
+ }
+
EndAllAction();
}
@@ -1071,7 +1125,14 @@ String SwEditShell::DeleteExtTextInput( SwExtTextInput* pDel, BOOL bInsText )
StartAllAction();
pDel->SetInsText( bInsText );
SetOverwriteCrsr( pDel->IsOverwriteCursor() );
+ const SwPosition aPos( *pDel->GetPoint() );
GetDoc()->DeleteExtTextInput( pDel );
+
+ // In this case, the "replace" function did not set the cursor
+ // to the original position. Therefore we have to do this manually.
+ if ( ! bInsText && IsOverwriteCrsr() )
+ *GetCrsr()->GetPoint() = aPos;
+
EndAllAction();
}
return sRet;
diff --git a/sw/source/core/edit/edsect.cxx b/sw/source/core/edit/edsect.cxx
index 1eca7b181411..d8da67c80ef6 100644
--- a/sw/source/core/edit/edsect.cxx
+++ b/sw/source/core/edit/edsect.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: edsect.cxx,v $
*
- * $Revision: 1.4 $
+ * $Revision: 1.5 $
*
- * last change: $Author: os $ $Date: 2001-05-08 08:58:18 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:39:54 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -371,140 +371,149 @@ USHORT SwEditShell::GetFullSelectedSectionCount() const
return nRet;
}
-// is the cursor at the last contentposition of any section and is the
-// insertposition not readonly?
-// The return have 3 values:
-// 0 - not at start or end of Section
-// 1 - at start of Section
-// 2 - at End of Section
-int SwEditShell::CanInsertNodeAtEndOfSection() const
+
+/**
+ * Find the suitable node for a special insert (alt-enter).
+ * This should enable inserting text before/after sections and tables.
+ *
+ * A node is found if:
+ * 1) the innermost table/section is not in a write-protected area
+ * 2) pCurrentPos is at or just before an end node
+ * (or at or just after a start node)
+ * 3) there are only start/end nodes between pCurrentPos and the innermost
+ * table/section
+ *
+ * If a suitable node is found, an SwNode* is returned; else it is NULL.
+ */
+const SwNode* lcl_SpecialInsertNode(const SwPosition* pCurrentPos)
{
- int nRet = 0;
- if( !IsTableMode() )
+ const SwNode* pReturn = NULL;
+
+ // the current position
+ // const SwPosition* pCurrentPos = GetCrsr()->GetPoint();
+ DBG_ASSERT( pCurrentPos != NULL, "Strange, we have no position!" );
+ const SwNode& rCurrentNode = pCurrentPos->nNode.GetNode();
+
+
+ // find innermost section or table. At the end of this scope,
+ // pInntermostNode contain the section/table before/after which we should
+ // insert our empty paragraph, or it will be NULL if none is found.
+ const SwNode* pInnermostNode = NULL;
{
- const SwPosition& rPos = *GetCrsr()->GetPoint();
- const SwSectionNode* pSectNd = rPos.nNode.GetNode().FindSectionNode();
- if( pSectNd )
+ const SwNode* pTableNode = rCurrentNode.FindTableNode();
+ const SwNode* pSectionNode = rCurrentNode.FindSectionNode();
+
+ // find the table/section which is close
+ if( pTableNode == NULL )
+ pInnermostNode = pSectionNode;
+ else if ( pSectionNode == NULL )
+ pInnermostNode = pTableNode;
+ else
{
- BOOL bEnd = FALSE, bStart = FALSE;
- const SwCntntNode* pCntNd = rPos.nNode.GetNode().GetCntntNode();
-
- SwNodeIndex aEnd( rPos.nNode, 1 );
- while( aEnd.GetNode().IsEndNode() &&
- (const SwNode*)&aEnd.GetNode() !=
- pSectNd->EndOfSectionNode() )
- aEnd++;
-
- if( aEnd.GetNode().IsEndNode() &&
- ( !pCntNd || pCntNd->Len() == rPos.nContent.GetIndex() ))
- bEnd = TRUE;
- else
- {
- aEnd = rPos.nNode;
- aEnd--;
- while( aEnd.GetNode().IsStartNode() &&
- (const SwNode*)&aEnd.GetNode() != pSectNd )
- aEnd--;
-
- if( (const SwNode*)&aEnd.GetNode() == pSectNd &&
- ( !pCntNd || !rPos.nContent.GetIndex() ))
- bStart = TRUE;
- }
+ // compare and choose the larger one
+ pInnermostNode =
+ ( pSectionNode->GetIndex() > pTableNode->GetIndex() )
+ ? pSectionNode : pTableNode;
+ }
+ }
- if( bEnd || bStart )
- {
- // is the insertposition readonly?
- if( bEnd )
- {
- aEnd = *pSectNd->EndOfSectionNode();
- aEnd++;
- }
- else
- {
- aEnd = *pSectNd;
- aEnd--;
- // the IsProtect-Method of SwNode test by sectionnode
- // his parent!
- if( aEnd.GetNode().IsSectionNode() )
- aEnd = *pSectNd;
- }
+ // The previous version had a check to skip empty read-only sections. Those
+ // shouldn't occur, so we only need to check whether our pInnermostNode is
+ // inside a protected area.
- do {
- if( !aEnd.GetNode().IsProtect() )
- {
- nRet = bStart ? 1 : 2;
- break;
- }
- else
- {
- // skip protected sections without any content at
- // start or end
- if( bStart )
- {
- if( !aEnd.GetNode().IsSectionNode() ||
- !aEnd.GetNode().StartOfSectionIndex() )
- break;
- aEnd--;
- }
- else
- {
- if( !aEnd.GetNode().IsEndNode() ||
- !aEnd.GetNode().StartOfSectionNode()->
- IsSectionNode() )
- break;
- aEnd++;
- }
- }
- } while( TRUE );
- }
- }
+ // Now, pInnermostNode is NULL or the innermost section or table node.
+ if( (pInnermostNode != NULL) && !pInnermostNode->IsProtect() )
+ {
+ DBG_ASSERT( pInnermostNode->IsTableNode() ||
+ pInnermostNode->IsSectionNode(), "wrong node found" );
+ DBG_ASSERT( ( pInnermostNode->GetIndex() <= rCurrentNode.GetIndex() )&&
+ ( pInnermostNode->EndOfSectionNode()->GetIndex() >=
+ rCurrentNode.GetIndex() ), "wrong node found" );
+
+ // we now need to find the possible start/end positions
+
+ // we found a start if
+ // - we're at or just before a start node
+ // - there are only start nodes between the current and pInnermostNode
+ SwNodeIndex aBegin( pCurrentPos->nNode );
+ if( rCurrentNode.IsCntntNode() &&
+ (pCurrentPos->nContent.GetIndex() == 0))
+ aBegin--;
+ while( (aBegin != pInnermostNode->GetIndex()) &&
+ aBegin.GetNode().IsStartNode() )
+ aBegin--;
+ bool bStart = ( aBegin == pInnermostNode->GetIndex() );
+
+ // we found an end if
+ // - we're at or just before an end node
+ // - there are only end nodes between the current node and
+ // pInnermostNode's end node
+ SwNodeIndex aEnd( pCurrentPos->nNode );
+ if( rCurrentNode.IsCntntNode() &&
+ ( pCurrentPos->nContent.GetIndex() ==
+ rCurrentNode.GetCntntNode()->Len() ) )
+ aEnd++;
+ while( (aEnd != pInnermostNode->EndOfSectionNode()->GetIndex()) &&
+ aEnd.GetNode().IsEndNode() )
+ aEnd++;
+ bool bEnd = ( aEnd == pInnermostNode->EndOfSectionNode()->GetIndex() );
+
+ // evalutate result: if both start + end, end is preferred
+ if( bEnd )
+ pReturn = pInnermostNode->EndOfSectionNode();
+ else if ( bStart )
+ pReturn = pInnermostNode;
+ // else pReturn = NULL;
}
- return nRet;
+ // else: pReturn = NULL
+
+
+ DBG_ASSERT( ( pReturn == NULL ) || pReturn->IsStartNode() ||
+ pReturn->IsEndNode(),
+ "SpecialInsertNode failed" );
+ return pReturn;
}
-BOOL SwEditShell::AppendNodeInSection()
+
+/** a node can be special-inserted (alt-Enter) whenever lcl_SpecialInsertNode
+ finds a suitable position
+*/
+bool SwEditShell::CanSpecialInsert() const
+{
+ return NULL != lcl_SpecialInsertNode( GetCrsr()->GetPoint() );
+}
+
+
+/** check whether a node cen be special-inserted (alt-Enter), and do so. Return
+ whether insertion was possible.
+ */
+bool SwEditShell::DoSpecialInsert()
{
- int nRet = CanInsertNodeAtEndOfSection();
- if( nRet )
+ bool bRet = false;
+
+ // get current node
+ SwPosition* pCursorPos = GetCrsr()->GetPoint();
+ const SwNode* pInsertNode = lcl_SpecialInsertNode( pCursorPos );
+ if( pInsertNode != NULL )
{
StartAllAction();
- SwPosition& rPos = *GetCrsr()->GetPoint();
- const SwSectionNode* pSectNd = rPos.nNode.GetNode().FindSectionNode();
- SwPosition aPos( *pSectNd );
- if( 1 == nRet )
- {
- do {
- const SwNode* pPrvNd = &aPos.nNode.GetNode();
- aPos.nNode--;
- if( !aPos.nNode.GetNode().IsSectionNode() ||
- !pPrvNd->IsProtect() )
- break;
- } while( TRUE );
- }
- else
- {
- SwNodeIndex aIdx( *pSectNd->EndOfSectionNode(), 1 );
- do {
- if( !aIdx.GetNode().IsEndNode() ||
- !aIdx.GetNode().FindStartNode()->IsSectionNode() ||
- !aIdx.GetNode().IsProtect() )
- break;
- aIdx++;
- } while( TRUE );
- aIdx--;
- aPos.nNode = aIdx;
- }
+ // adjust insert position to insert before start nodes and after end
+ // nodes
+ SwNodeIndex aInsertIndex( *pInsertNode,
+ pInsertNode->IsStartNode() ? -1 : 0 );
+ SwPosition aInsertPos( aInsertIndex );
- GetDoc()->AppendTxtNode( aPos );
- rPos = aPos;
+ // insert a new text node, and set the cursor
+ bRet = GetDoc()->AppendTxtNode( aInsertPos );
+ *pCursorPos = aInsertPos;
- // rufe das AttrChangeNotify auf der UI-Seite.
+ // call AttrChangeNotify for the UI
CallChgLnk();
+
EndAllAction();
}
- return 0 != nRet;
-}
-
+ return bRet;
+}
diff --git a/sw/source/core/fields/authfld.cxx b/sw/source/core/fields/authfld.cxx
index 017583b06693..e031972b937e 100644
--- a/sw/source/core/fields/authfld.cxx
+++ b/sw/source/core/fields/authfld.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: authfld.cxx,v $
*
- * $Revision: 1.19 $
+ * $Revision: 1.20 $
*
- * last change: $Author: os $ $Date: 2002-10-30 10:38:14 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:39:57 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -94,6 +94,15 @@
#ifndef _AUTHFLD_HXX
#include <authfld.hxx>
#endif
+#ifndef _EXPFLD_HXX
+#include <expfld.hxx>
+#endif
+#ifndef _PAM_HXX
+#include <pam.hxx>
+#endif
+#ifndef _CNTFRM_HXX
+#include <cntfrm.hxx>
+#endif
#ifndef _TOX_HXX
#include <tox.hxx>
#endif
@@ -531,12 +540,22 @@ USHORT SwAuthorityFieldType::GetSequencePos(long nHandle)
#endif
continue;
}
- const SwTxtNode& rTxtNode = pTxtFld->GetTxtNode();
- ULONG nPos = rTxtNode.GetIndex();
- if( rTxtNode.GetTxt().Len() && rTxtNode.GetFrm() &&
- rTxtNode.GetNodes().IsDocNodes() )
+ const SwTxtNode& rFldTxtNode = pTxtFld->GetTxtNode();
+ SwPosition aFldPos(rFldTxtNode);
+ SwDoc& rDoc = *(SwDoc*)rFldTxtNode.GetDoc();
+ SwCntntFrm *pFrm = rFldTxtNode.GetFrm();
+ const SwTxtNode* pTxtNode = 0;
+ if(pFrm && !pFrm->IsInDocBody())
+ pTxtNode = GetBodyTxtNode( rDoc, aFldPos, *pFrm );
+ //if no text node could be found or the field is in the document
+ //body the directly available text node will be used
+ if(!pTxtNode)
+ pTxtNode = &rFldTxtNode;
+ ULONG nPos = pTxtNode->GetIndex();
+ if( pTxtNode->GetTxt().Len() && pTxtNode->GetFrm() &&
+ pTxtNode->GetNodes().IsDocNodes() )
{
- SwTOXAuthority* pNew = new SwTOXAuthority( rTxtNode,
+ SwTOXAuthority* pNew = new SwTOXAuthority( *pTxtNode,
*pFmtFld, aIntl );
for(short i = 0; i < aSortArr.Count(); ++i)
diff --git a/sw/source/core/fields/fldbas.cxx b/sw/source/core/fields/fldbas.cxx
index 565ce94eb4dd..04fc46d127ac 100644
--- a/sw/source/core/fields/fldbas.cxx
+++ b/sw/source/core/fields/fldbas.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: fldbas.cxx,v $
*
- * $Revision: 1.11 $
+ * $Revision: 1.12 $
*
- * last change: $Author: os $ $Date: 2002-11-15 11:43:50 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:39:57 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -71,8 +71,8 @@
#endif
#include <float.h>
-#ifndef _TOOLS_SOLMATH_HXX
-#include <tools/solmath.hxx>
+#ifndef INCLUDED_RTL_MATH_HXX
+#include <rtl/math.hxx>
#endif
#ifndef _ZFORLIST_HXX //autogen
#include <svtools/zforlist.hxx>
@@ -800,9 +800,8 @@ void SwValueFieldType::DoubleToString( String &rValue, const double &rVal,
nLng = LANGUAGE_SYSTEM;
pFormatter->ChangeIntl( nLng ); // Separator in der richtigen Sprache besorgen
- rValue.Erase();
- SolarMath::DoubleToString( rValue, rVal, 'F', 12,
- pFormatter->GetDecSep(), TRUE );
+ rValue = ::rtl::math::doubleToUString( rVal, rtl_math_StringFormat_F, 12,
+ pFormatter->GetDecSep(), true );
}
/*--------------------------------------------------------------------
diff --git a/sw/source/core/frmedt/fecopy.cxx b/sw/source/core/frmedt/fecopy.cxx
index f8a1f6f53e20..1fcaf5b76d6d 100644
--- a/sw/source/core/frmedt/fecopy.cxx
+++ b/sw/source/core/frmedt/fecopy.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: fecopy.cxx,v $
*
- * $Revision: 1.12 $
+ * $Revision: 1.13 $
*
- * last change: $Author: fme $ $Date: 2002-09-16 08:46:08 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:40:00 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -124,6 +124,9 @@
#ifndef _SVDPAGE_HXX
#include <svx/svdpage.hxx>
#endif
+#ifndef _SVDOGRP_HXX
+#include <svx/svdogrp.hxx>
+#endif
#ifndef _XOUTBMP_HXX
#include <svx/xoutbmp.hxx>
#endif
@@ -389,9 +392,10 @@ BOOL SwFEShell::Copy( SwDoc* pClpDoc, const String* pNewClpTxt )
aSet.Put( aAnchor );
SdrObject* pNew = pClpDoc->CloneSdrObj( *pObj, FALSE, TRUE );
+
//JP 07.01.00: why move??
// pNew->NbcMove( aSiz );
- pClpDoc->Insert( SwPaM( aPos ), *pNew, &aSet );
+ pClpDoc->Insert( SwPaM( aPos ), *pNew, &aSet );
}
else
{
@@ -953,7 +957,8 @@ BOOL SwFEShell::Paste( SwDoc* pClpDoc )
if( !Imp()->GetDrawView() )
MakeDrawView();
- Size aSiz( 0, GetCharRect().Top() );
+ // FME: removed for #105977#
+ // Size aSiz( 0, GetCharRect().Top() );
for ( USHORT i = 0; i < pClpDoc->GetSpzFrmFmts()->Count(); ++i )
{
BOOL bInsWithFmt = TRUE;
@@ -968,9 +973,40 @@ BOOL SwFEShell::Paste( SwDoc* pClpDoc )
{
SdrObject* pNew = GetDoc()->CloneSdrObj( *pSdrObj,
FALSE, FALSE );
- pNew->NbcMove( aSiz );
+
+ // FME: removed for #105977#
+ // pNew->NbcMove( aSiz );
+
+ // Insert object sets any anchor position to 0.
+ // Therefore we calculate the absolute position here
+ // and after the insert the anchor of the object
+ // is set to the anchor of the group object.
+ Rectangle aSnapRect = pNew->GetSnapRect();
+ if( pNew->GetAnchorPos().X() || pNew->GetAnchorPos().Y() )
+ {
+ const Point aPoint( 0, 0 );
+ pNew->NbcSetAnchorPos( aPoint );
+ pNew->NbcSetSnapRect( aSnapRect );
+ }
+
Imp()->GetDrawView()->InsertObject( pNew,
*Imp()->GetPageView() );
+
+ Point aGrpAnchor( 0, 0 );
+ SdrObjList* pList = pNew->GetObjList();
+ if ( pList )
+ {
+ SdrObject* pOwner = pList->GetOwnerObj();
+ if ( pOwner )
+ {
+ SdrObjGroup* pThisGroup = PTR_CAST(SdrObjGroup, pOwner);
+ aGrpAnchor = pThisGroup->GetAnchorPos();
+ }
+ }
+
+ pNew->NbcSetAnchorPos( aGrpAnchor );
+ pNew->NbcSetSnapRect( aSnapRect );
+
bInsWithFmt = FALSE;
}
}
diff --git a/sw/source/core/frmedt/fefly1.cxx b/sw/source/core/frmedt/fefly1.cxx
index ba22928cdc72..b8d3ffdcba97 100644
--- a/sw/source/core/frmedt/fefly1.cxx
+++ b/sw/source/core/frmedt/fefly1.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: fefly1.cxx,v $
*
- * $Revision: 1.8 $
+ * $Revision: 1.9 $
*
- * last change: $Author: fme $ $Date: 2002-09-16 08:46:09 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:40:01 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -321,6 +321,9 @@ BOOL lcl_FindAnchorPos( SwDoc& rDoc, const Point& rPt, const SwFrm& rFrm,
return bRet;
}
+//
+//! also used in unoframe.cxx
+//
sal_Bool lcl_ChkAndSetNewAnchor( const SwFlyFrm& rFly, SfxItemSet& rSet )
{
const SwFrmFmt& rFmt = *rFly.GetFmt();
diff --git a/sw/source/core/frmedt/feshview.cxx b/sw/source/core/frmedt/feshview.cxx
index d6163f34607c..70d309f53f13 100644
--- a/sw/source/core/frmedt/feshview.cxx
+++ b/sw/source/core/frmedt/feshview.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: feshview.cxx,v $
*
- * $Revision: 1.20 $
+ * $Revision: 1.21 $
*
- * last change: $Author: od $ $Date: 2002-12-10 14:12:18 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:40:01 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -1262,6 +1262,44 @@ int SwFEShell::IsObjSelectable( const Point& rPt )
#endif
}
+// #107513#
+// Test if there is a draw object at that position and if it should be selected.
+// The 'should' is aimed at Writer text fly frames which may be in front of
+// the draw object.
+sal_Bool SwFEShell::ShouldObjectBeSelected(const Point& rPt)
+{
+ SET_CURR_SHELL(this);
+ SwDrawView *pDrawView = Imp()->GetDrawView();
+ sal_Bool bRet(sal_False);
+
+ if(pDrawView)
+ {
+ SdrObject* pObj;
+ SdrPageView* pPV;
+ sal_uInt16 nOld(pDrawView->GetHitTolerancePixel());
+
+ pDrawView->SetHitTolerancePixel(pDrawView->GetMarkHdlSizePixel()/2);
+ bRet = pDrawView->PickObj(rPt, pObj, pPV, SDRSEARCH_PICKMARKABLE);
+ pDrawView->SetHitTolerancePixel(nOld);
+
+ if(bRet && pObj)
+ {
+ SdrPage* pPage = GetDoc()->GetDrawModel()->GetPage(0);
+
+ for(sal_uInt32 a(pObj->GetOrdNumDirect() + 1); bRet && a < pPage->GetObjCount(); a++)
+ {
+ SdrObject *pCandidate = pPage->GetObj(a);
+
+ if(pCandidate->IsWriterFlyFrame() && ((SwVirtFlyDrawObj*)pCandidate)->GetBoundRect().IsInside(rPt))
+ {
+ bRet = sal_False;
+ }
+ }
+ }
+ }
+
+ return bRet;
+}
/*************************************************************************
|*
@@ -1464,6 +1502,10 @@ BOOL SwFEShell::GotoObj( BOOL bNext, GotoObjType eType )
if( pBest )
{
+ // OD 11.02.2003 #100556# - set flag value to avoid macro execution.
+ bool bSavedFlagValue = IsMacroExecAllowed();
+ SetMacroExecAllowed( false );
+
BOOL bFlyFrm = pBest->IsWriterFlyFrame();
if( bFlyFrm )
{
@@ -1479,6 +1521,10 @@ BOOL SwFEShell::GotoObj( BOOL bNext, GotoObjType eType )
if( !ActionPend() )
MakeVisible( pBest->GetBoundRect() );
}
+
+ // OD 11.02.2003 #100556# - reset flag value
+ SetMacroExecAllowed( bSavedFlagValue );
+
CallChgLnk();
bRet = TRUE;
}
@@ -2566,10 +2612,8 @@ BOOL SwFEShell::IsAlignPossible() const
{
SdrObject *pO = Imp()->GetDrawView()->GetMarkList().GetMark(0)->GetObj();
SwDrawContact *pC = (SwDrawContact*)GetUserCall(pO);
- if (pC->GetFmt()->GetAnchor().GetAnchorId() == FLY_AT_CNTNT)
- bRet = FALSE;
- else
- bRet = pC->GetAnchor() ? pC->GetAnchor()->IsInDocBody() : FALSE;
+ //only as character bound drawings can be aligned
+ bRet = pC->GetFmt()->GetAnchor().GetAnchorId() == FLY_IN_CNTNT;
}
if ( bRet )
return Imp()->GetDrawView()->IsAlignPossible();
@@ -2947,8 +2991,6 @@ void SwFEShell::CreateDefaultShape(UINT16 eSdrObjectKind, const Rectangle& rRect
pObj->SetItemSet(aSet);
}
- String aText = SW_RESSTR(STR_POOLCOLL_LABEL_FRAME);
- ((SdrCaptionObj*)pObj)->SetText(aText);
((SdrCaptionObj*)pObj)->SetLogicRect(aRect);
((SdrCaptionObj*)pObj)->SetTailPos(
aRect.TopLeft() - Point(aRect.GetWidth() / 2, aRect.GetHeight() / 2));
diff --git a/sw/source/core/frmedt/fetab.cxx b/sw/source/core/frmedt/fetab.cxx
index b8b771211be0..59e6a3057b49 100644
--- a/sw/source/core/frmedt/fetab.cxx
+++ b/sw/source/core/frmedt/fetab.cxx
@@ -1,10 +1,18 @@
-/*************************************************************************
+ /*************************************************************************
*
* $RCSfile: fetab.cxx,v $
*
- * $Revision: 1.11 $
+<<<<<<< fetab.cxx
+ * $Revision: 1.12 $
+=======
+ * $Revision: 1.12 $
+>>>>>>> 1.4.2.6.2.1.20.2
*
- * last change: $Author: fme $ $Date: 2002-11-15 09:54:42 $
+<<<<<<< fetab.cxx
+ * last change: $Author: hr $ $Date: 2003-03-27 15:40:03 $
+=======
+ * last change: $Author: hr $ $Date: 2003-03-27 15:40:03 $
+>>>>>>> 1.4.2.6.2.1.20.2
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -166,7 +174,6 @@
#include <swerror.h>
#endif
-
//siehe auch swtable.cxx
#define COLFUZZY 20L
@@ -202,6 +209,89 @@ inline const SwCursor& GetShellCursor( const SwCrsrShell& rShell )
return *pCrsr;
}
+void SwFEShell::ParkCursorInTab()
+{
+ SwCursor * pSwCrsr = GetSwCrsr();
+
+ ASSERT(pSwCrsr, "no SwCursor");
+
+ SwPosition aStartPos = *pSwCrsr->GetPoint(), aEndPos = aStartPos;
+
+ SwCursor * pTmpCrsr = (SwCursor *) pSwCrsr;
+
+ /* Search least and greatest position in current cursor ring.
+ */
+ do
+ {
+ const SwPosition * pPt = pTmpCrsr->GetPoint(),
+ * pMk = pTmpCrsr->GetMark();
+
+ if (*pPt < aStartPos)
+ aStartPos = *pPt;
+
+ if (*pPt > aEndPos)
+ aEndPos = *pPt;
+
+ if (*pMk < aStartPos)
+ aStartPos = *pMk;
+
+ if (*pMk > aEndPos)
+ aEndPos = *pMk;
+
+ pTmpCrsr = (SwCursor *) pTmpCrsr->GetNext();
+ }
+ while (pTmpCrsr != pSwCrsr);
+
+ KillPams();
+
+ /* Set cursor to end of selection to ensure IsLastCellInRow works
+ properly. */
+ {
+ SwCursor aTmpCrsr(aEndPos);
+ *pSwCrsr = aTmpCrsr;
+ }
+
+ /* Move the cursor out of the columns to delete and stay in the
+ same row. If the table has only one column the cursor will
+ stay in the row and the shell will take care of it. */
+ if (IsLastCellInRow())
+ {
+ /* If the cursor is in the last row of the table, first
+ try to move it to the previous cell. If that fails move
+ it to the next cell. */
+
+ {
+ SwCursor aTmpCrsr(aStartPos);
+ *pSwCrsr = aTmpCrsr;
+ }
+
+ if (! pSwCrsr->GoPrevCell())
+ {
+ SwCursor aTmpCrsr(aEndPos);
+ *pSwCrsr = aTmpCrsr;
+ pSwCrsr->GoNextCell();
+ }
+ }
+ else
+ {
+ /* If the cursor is not in the last row of the table, first
+ try to move it to the next cell. If that fails move it
+ to the previous cell. */
+
+ {
+ SwCursor aTmpCrsr(aEndPos);
+ *pSwCrsr = aTmpCrsr;
+ }
+
+ if (! pSwCrsr->GoNextCell())
+ {
+ SwCursor aTmpCrsr(aStartPos);
+ *pSwCrsr = aTmpCrsr;
+ pSwCrsr->GoPrevCell();
+ }
+ }
+}
+
/***********************************************************************
#* Class : SwFEShell
#* Methoden : GetStartEndCell
@@ -301,6 +391,26 @@ BOOL SwFEShell::InsertCol( USHORT nCnt, BOOL bBehind )
#* Datum : MA 03. May. 93
#* Update : MA 19. Apr. 95
#***********************************************************************/
+
+/**
+ Determines if the current cursor is in the last row of the table.
+*/
+BOOL SwFEShell::IsLastCellInRow() const
+{
+ SwTabCols aTabCols;
+ GetTabCols( aTabCols );
+ BOOL bResult = FALSE;
+
+ if (IsTableRightToLeft())
+ /* If the table is right-to-left the last row is the most left one. */
+ bResult = 0 == GetCurTabColNum();
+ else
+ /* If the table is left-to-right the last row is the most right one. */
+ bResult = aTabCols.Count() == GetCurTabColNum();
+
+ return bResult;
+}
+
BOOL SwFEShell::DeleteCol()
{
// pruefe ob vom aktuellen Crsr der SPoint/Mark in einer Tabelle stehen
@@ -331,13 +441,16 @@ BOOL SwFEShell::DeleteCol()
// Dokument-Position werden sie dann immer an die alte Position gesetzt.
while( !pFrm->IsCellFrm() )
pFrm = pFrm->GetUpper();
- ParkCrsr( SwNodeIndex( *((SwCellFrm*)pFrm)->GetTabBox()->GetSttNd() ));
+
+ ParkCursorInTab();
// dann loesche doch die Spalten
bRet = GetDoc()->DeleteRowCol( aBoxes );
+
}
else
bRet = FALSE;
+
EndAllActionAndCall();
return bRet;
}
@@ -377,7 +490,12 @@ BOOL SwFEShell::DeleteRow()
SwTableNode* pTblNd = ((SwCntntFrm*)pFrm)->GetNode()->FindTableNode();
// suche alle Boxen / Lines
- _FndBox aFndBox( aBoxes );
+ _FndBox aFndBox( 0, 0 );
+ {
+ _FndPara aPara( aBoxes, &aFndBox );
+ pTblNd->GetTable().GetTabLines().ForEach( &_FndLineCopyCol, &aPara );
+ }
+
if( !aFndBox.GetLines().Count() )
{
EndAllActionAndCall();
@@ -553,20 +671,30 @@ void SwFEShell::_GetTabCols( SwTabCols &rToFill, const SwFrm *pBox ) const
if ( pLastTable == pTab->GetTable() )
{
bDel = FALSE;
-#ifdef VERTICAL_LAYOUT
SWRECTFN( pTab )
-#endif
+
+ const SwPageFrm* pPage = pTab->FindPageFrm();
+ const ULONG nLeftMin = (pTab->Frm().*fnRect->fnGetLeft)() -
+ (pPage->Frm().*fnRect->fnGetLeft)() +
+ DOCUMENTBORDER;
+ const ULONG nRightMax = (pTab->Frm().*fnRect->fnGetRight)() -
+ (pPage->Frm().*fnRect->fnGetLeft)() +
+ DOCUMENTBORDER;
+
if ( pLastTabFrm != pTab )
{
//Wenn der TabFrm gewechselt hat, brauchen wir bei gleicher
//Breite nur ein wenig shiften.
-#ifdef VERTICAL_LAYOUT
SWRECTFNX( pLastTabFrm )
if( (pLastTabFrm->Frm().*fnRect->fnGetWidth)() ==
(pTab->Frm().*fnRect->fnGetWidth)() )
{
- pLastCols->SetLeftMin( (USHORT)
- (pTab->Frm().*fnRect->fnGetLeft)() );
+ pLastCols->SetLeftMin( nLeftMin );
+
+ ASSERT( bVert ||
+ pLastCols->GetLeftMin() == (pTab->Frm().*fnRect->fnGetLeft)(),
+ "GetTabCols: wrong result" )
+
pLastTabFrm = pTab;
}
else
@@ -574,28 +702,10 @@ void SwFEShell::_GetTabCols( SwTabCols &rToFill, const SwFrm *pBox ) const
}
if ( !bDel &&
- pLastCols->GetLeftMin () == (USHORT)(pTab->Frm().*fnRect->fnGetLeft)() &&
+ pLastCols->GetLeftMin () == (USHORT)nLeftMin &&
pLastCols->GetLeft () == (USHORT)(pTab->Prt().*fnRect->fnGetLeft)() &&
pLastCols->GetRight () == (USHORT)(pTab->Prt().*fnRect->fnGetRight)()&&
- pLastCols->GetRightMax() ==
- (USHORT)(pTab->Frm().*fnRect->fnGetRight)() - pLastCols->GetLeftMin() )
-#else
- if ( pLastTabFrm->Frm().Width() == pTab->Frm().Width() )
- {
- pLastCols->SetLeftMin( (USHORT)pTab->Frm().Left() );
- pLastTabFrm = pTab;
- }
- else
- bDel = TRUE;
- }
-
- if ( !bDel &&
- pLastCols->GetLeftMin () == (USHORT)pTab->Frm().Left() &&
- pLastCols->GetLeft () == (USHORT)pTab->Prt().Left() &&
- pLastCols->GetRight () == (USHORT)pTab->Prt().Right()&&
- pLastCols->GetRightMax() ==
- (USHORT)pTab->Frm().Right() - pLastCols->GetLeftMin() )
-#endif
+ pLastCols->GetRightMax() == (USHORT)nRightMax - pLastCols->GetLeftMin() )
{
if ( pLastCellFrm != pBox )
{
@@ -894,7 +1004,7 @@ void SwFEShell::ProtectCells()
{
if( IsTableMode() )
ClearMark();
- ParkCrsr( GetCrsr()->GetPoint()->nNode );
+ ParkCursorInTab();
}
EndAllActionAndCall();
}
@@ -1240,27 +1350,43 @@ USHORT SwFEShell::GetCurTabColNum() const
// dem CellFrame vergleichen????
pFrm = pFrm->GetUpper();
} while ( !pFrm->IsCellFrm() );
-#ifdef VERTICAL_LAYOUT
SWRECTFN( pFrm )
const long nX = (pFrm->Frm().*fnRect->fnGetLeft)();
-#else
- const long nX = pFrm->Frm().Left();
-#endif
//TabCols besorgen, den nur ueber diese erreichen wir die Position.
SwTabCols aTabCols;
GetTabCols( aTabCols );
- const long nLeft = aTabCols.GetLeftMin();
+ if( pFrm->FindTabFrm()->IsRightToLeft() )
+ {
+ long nX = (pFrm->Frm().*fnRect->fnGetRight)();
+ const long nRight = aTabCols.GetLeftMin() + aTabCols.GetRight();;
- if ( !::IsSame( nX, nLeft + aTabCols.GetLeft() ) )
+ if ( !::IsSame( nX, nRight ) )
+ {
+ nX = nRight - nX + aTabCols.GetLeft();
+ for ( USHORT i = 0; i < aTabCols.Count(); ++i )
+ if ( ::IsSame( nX, aTabCols[i] ) )
+ {
+ nRet = i + 1;
+ break;
+ }
+ }
+ }
+ else
{
- for ( USHORT i = 0; i < aTabCols.Count(); ++i )
- if ( ::IsSame( nX, nLeft + aTabCols[i] ) )
- {
- nRet = i + 1;
- break;
- }
+ const long nX = (pFrm->Frm().*fnRect->fnGetLeft)();
+ const long nLeft = aTabCols.GetLeftMin();
+
+ if ( !::IsSame( nX, nLeft + aTabCols.GetLeft() ) )
+ {
+ for ( USHORT i = 0; i < aTabCols.Count(); ++i )
+ if ( ::IsSame( nX, nLeft + aTabCols[i] ) )
+ {
+ nRet = i + 1;
+ break;
+ }
+ }
}
}
return nRet;
@@ -1327,7 +1453,6 @@ const SwFrm *lcl_FindFrm( const SwLayoutFrm *pLay, const Point &rPt, SwTwips nFu
pFrm = pFrm->GetUpper();
if ( pFrm )
{
-#ifdef VERTICAL_LAYOUT
if( pFrm->IsVertical() )
{
if ( ::IsSame(pFrm->Frm().Top(), rPt.Y()) ||
@@ -1340,13 +1465,6 @@ const SwFrm *lcl_FindFrm( const SwLayoutFrm *pLay, const Point &rPt, SwTwips nFu
::IsSame(pFrm->Frm().Right(),rPt.X()) )
return pFrm;
}
-#else
- if ( ::IsSame(pFrm->Frm().Left(), rPt.X()) ||
- ::IsSame(pFrm->Frm().Right(),rPt.X()) )
- {
- return pFrm;
- }
-#endif
pFrm = pFrm->GetUpper();
}
} while ( pFrm );
@@ -1558,12 +1676,8 @@ BOOL SwFEShell::SetColRowWidthHeight( USHORT eType, USHORT nDiff )
// sollte die Tabelle noch auf relativen Werten (USHRT_MAX) stehen
// dann muss es jetzt auf absolute umgerechnet werden.
const SwFmtFrmSize& rTblFrmSz = pTab->GetFmt()->GetFrmSize();
-#ifdef VERTICAL_LAYOUT
SWRECTFN( pTab )
long nPrtWidth = (pTab->Prt().*fnRect->fnGetWidth)();
-#else
- long nPrtWidth = pTab->Prt().Width();
-#endif
if( TBLVAR_CHGABS == pTab->GetTable()->GetTblChgMode() &&
( eType & WH_COL_LEFT || eType & WH_COL_RIGHT ) &&
HORI_NONE == pTab->GetFmt()->GetHoriOrient().GetHoriOrient() &&
@@ -1576,11 +1690,7 @@ BOOL SwFEShell::SetColRowWidthHeight( USHORT eType, USHORT nDiff )
if( (eType & (WH_FLAG_BIGGER | WH_FLAG_INSDEL)) ==
(WH_FLAG_BIGGER | WH_FLAG_INSDEL) )
-#ifdef VERTICAL_LAYOUT
nDiff = USHORT((pFrm->Frm().*fnRect->fnGetWidth)());
-#else
- nDiff = USHORT(pFrm->Frm().Width());
-#endif
SwTwips nLogDiff = nDiff;
nLogDiff *= pTab->GetFmt()->GetFrmSize().GetWidth();
@@ -1762,7 +1872,7 @@ BOOL SwFEShell::GetAutoSum( String& rFml ) const
return TRUE;
}
-/* -----------------------------22.08.2002 12:37------------------------------
+/* -----------------------------22.08.2002 12:50------------------------------
---------------------------------------------------------------------------*/
BOOL SwFEShell::IsTableRightToLeft() const
@@ -1783,3 +1893,4 @@ BOOL SwFEShell::IsMouseTableRightToLeft(const Point &rPt) const
ASSERT( pTabFrm, "Table not found" );
return pTabFrm ? pTabFrm->IsRightToLeft() : FALSE;
}
+
diff --git a/sw/source/core/frmedt/tblsel.cxx b/sw/source/core/frmedt/tblsel.cxx
index 4e40a6c9b087..448a8a38be3c 100644
--- a/sw/source/core/frmedt/tblsel.cxx
+++ b/sw/source/core/frmedt/tblsel.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: tblsel.cxx,v $
*
- * $Revision: 1.12 $
+ * $Revision: 1.13 $
*
- * last change: $Author: fme $ $Date: 2002-09-26 13:17:23 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:40:03 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -159,7 +159,6 @@
//siehe auch swtable.cxx
#define COLFUZZY 20L
-
// defines, die bestimmen, wie Tabellen Boxen gemergt werden:
// - 1. alle leeren Zeilen entfernen, alle Boxen werden mit Blank,
// alle Lines mit ParaBreak getrennt
@@ -1575,7 +1574,11 @@ USHORT CheckMergeSel( const SwSelBoxes& rBoxes )
{
eRet = TBLMERGE_OK;
- _FndBox aFndBox( rBoxes );
+ _FndBox aFndBox( 0, 0 );
+ _FndPara aPara( rBoxes, &aFndBox );
+ const SwTableNode* pTblNd = aPara.rBoxes[0]->GetSttNd()->FindTableNode();
+ ((SwTable&)pTblNd->GetTable()).GetTabLines().ForEach(
+ &_FndLineCopyCol, &aPara );
if( aFndBox.GetLines().Count() )
{
BOOL bMergeSelOk = TRUE;
@@ -1616,8 +1619,8 @@ SwTwips lcl_CalcWish( const SwLayoutFrm *pCell, long nWish,
#ifdef BIDI
const sal_Bool bRTL = pCell->IsRightToLeft();
SwTwips nRet = bRTL ?
- nAct - pCell->GetFmt()->GetFrmSize().GetWidth() * nAct / nWish :
- 0;
+ nAct - pCell->Frm().Width() :
+ 0;
#else
SwTwips nRet = 0;
#endif
@@ -2172,6 +2175,51 @@ void lcl_InsertRow( SwTableLine &rLine, SwLayoutFrm *pUpper, SwFrm *pSibling )
}
+BOOL _FndBoxCopyCol( const SwTableBox*& rpBox, void* pPara )
+{
+ _FndPara* pFndPara = (_FndPara*)pPara;
+ _FndBox* pFndBox = new _FndBox( (SwTableBox*)rpBox, pFndPara->pFndLine );
+ if( rpBox->GetTabLines().Count() )
+ {
+ _FndPara aPara( *pFndPara, pFndBox );
+ pFndBox->GetBox()->GetTabLines().ForEach( &_FndLineCopyCol, &aPara );
+ if( !pFndBox->GetLines().Count() )
+ {
+ delete pFndBox;
+ return TRUE;
+ }
+ }
+ else
+ {
+ SwTableBoxPtr pSrch = (SwTableBoxPtr)rpBox;
+ USHORT nFndPos;
+ if( !pFndPara->rBoxes.Seek_Entry( pSrch, &nFndPos ))
+ {
+ delete pFndBox;
+ return TRUE;
+ }
+ }
+ pFndPara->pFndLine->GetBoxes().C40_INSERT( _FndBox, pFndBox,
+ pFndPara->pFndLine->GetBoxes().Count() );
+ return TRUE;
+}
+
+BOOL _FndLineCopyCol( const SwTableLine*& rpLine, void* pPara )
+{
+ _FndPara* pFndPara = (_FndPara*)pPara;
+ _FndLine* pFndLine = new _FndLine( (SwTableLine*)rpLine, pFndPara->pFndBox );
+ _FndPara aPara( *pFndPara, pFndLine );
+ pFndLine->GetLine()->GetTabBoxes().ForEach( &_FndBoxCopyCol, &aPara );
+ if( pFndLine->GetBoxes().Count() )
+ {
+ pFndPara->pFndBox->GetLines().C40_INSERT( _FndLine, pFndLine,
+ pFndPara->pFndBox->GetLines().Count() );
+ }
+ else
+ delete pFndLine;
+ return TRUE;
+}
+
void _FndBox::SetTableLines( const SwSelBoxes &rBoxes, const SwTable &rTable )
{
//Pointer auf die Lines vor und hinter den zu verarbeitenden Bereich
@@ -2429,6 +2477,7 @@ void _FndBox::MakeNewFrms( SwTable &rTable, const USHORT nNumber,
SwTabFrm *pTable;
for ( pTable = (SwTabFrm*)aTabIter.First( TYPE(SwFrm) ); pTable;
pTable = (SwTabFrm*)aTabIter.Next() )
+ {
if( !pTable->IsFollow() )
{
SwFrm *pSibling = 0;
@@ -2497,29 +2546,33 @@ void _FndBox::MakeNewFrms( SwTable &rTable, const USHORT nNumber,
((SwTabFrm*)pUpper)->SetCalcLowers();
}
}
+ }
//Die Headlines mussen ggf. auch verarbeitet werden. Um gut arbeitenden
//Code nicht zu zerfasern wird hier nochmals iteriert.
if ( !bBehind && nBfPos == USHRT_MAX && rTable.IsHeadlineRepeat() )
{
- SwTabFrm *pTab = (SwTabFrm*)aTabIter.First( TYPE(SwFrm) );
- if ( pTab->Lower() )
+ for ( pTable = (SwTabFrm*)aTabIter.First( TYPE(SwFrm) ); pTable;
+ pTable = (SwTabFrm*)aTabIter.Next() )
{
- if ( pTab->IsFollow() )
- {
- //Alte Headline vernichten
- SwFrm *pLow = pTab->Lower();
- pLow->Cut();
- delete pLow;
- }
- if ( ((SwRowFrm*)pTab->Lower())->GetTabLine() !=
- rTable.GetTabLines()[0] )
+ if ( pTable->Lower() )
{
- //Neue Headline einsetzen
- SwRowFrm *pRow = new SwRowFrm( *rTable.GetTabLines()[0]);
- pRow->Paste( pTab, pTab->Lower() );
- pRow->RegistFlys();
- pTab->SetCalcLowers();
+ if ( pTable->IsFollow() )
+ {
+ //Alte Headline vernichten
+ SwFrm *pLow = pTable->Lower();
+ pLow->Cut();
+ delete pLow;
+ }
+ if ( ((SwRowFrm*)pTable->Lower())->GetTabLine() !=
+ rTable.GetTabLines()[0] )
+ {
+ //Neue Headline einsetzen
+ SwRowFrm *pRow = new SwRowFrm( *rTable.GetTabLines()[0]);
+ pRow->Paste( pTable, pTable->Lower() );
+ pRow->RegistFlys();
+ pTable->SetCalcLowers();
+ }
}
}
}
@@ -2626,112 +2679,6 @@ const SwTableBox *lcl_FindLastBox( const SwTable &rTable )
return pBox;
}
- // fill the structure from the selection (the selboxes) into
- // his own structure. Works only if the box contains no data!
-_FndBox::_FndBox( const SwSelBoxes& rBoxes )
- : pBox( 0 ), pUpper( 0 ), pLineBefore( 0 ), pLineBehind( 0 )
-{
- if( 1 == rBoxes.Count() )
- {
- _FndBox *pTmp = this;
- AddToFndBox( pTmp, *rBoxes[0] );
- }
- else
- {
- SwSelBoxes aBoxes;
- aBoxes.Insert( &rBoxes );
- const SwTable &rTable = rBoxes[0]->GetSttNd()->FindTableNode()->GetTable();
- for( USHORT n = 0, nEnd = rTable.GetTabLines().Count();
- n < nEnd && aBoxes.Count(); ++n )
- _FndBox::AddSelLine( *this, *rTable.GetTabLines()[ n ], aBoxes );
- }
-}
-
-_FndBox::_FndBox( const SwTableLine& rLine )
- : pBox( 0 ), pUpper( 0 ), pLineBefore( 0 ), pLineBehind( 0 )
-{
- AppendLine( *this, rLine );
-}
-
-void _FndBox::AddToFndBox( _FndBox*& rpParent, const SwTableBox& rBox )
-{
- // search the toplevel parent
- if( rBox.GetUpper()->GetUpper() )
- _FndBox::AddToFndBox( rpParent, *rBox.GetUpper()->GetUpper() );
-
- _FndLine* pFndLine = new _FndLine( (SwTableLine*)rBox.GetUpper(),
- rpParent );
- rpParent->GetLines().C40_INSERT( _FndLine, pFndLine, 0 );
- _FndBox* pFndBox = new _FndBox( (SwTableBox*)&rBox, pFndLine );
- pFndLine->GetBoxes().C40_INSERT( _FndBox, pFndBox, 0 );
-
- rpParent = pFndBox;
-}
-
-
-void _FndBox::AppendLine( _FndBox& rBox, const SwTableLine& rLine )
-{
- USHORT n = 0, nEnd = rLine.GetTabBoxes().Count();
- if( nEnd )
- {
- _FndLine* pFndLine = new _FndLine( (SwTableLine*)&rLine, &rBox );
- rBox.GetLines().C40_INSERT( _FndLine, pFndLine, rBox.GetLines().Count() );
- for( ; n < nEnd; ++n )
- _FndBox::AppendBox( *pFndLine, *rLine.GetTabBoxes()[ n ] );
- }
-}
-
-void _FndBox::AppendBox( _FndLine& rLine, const SwTableBox& rBox )
-{
- _FndBox* pFndBox = new _FndBox( (SwTableBox*)&rBox, &rLine );
- rLine.GetBoxes().C40_INSERT( _FndBox, pFndBox, rLine.GetBoxes().Count() );
- for( USHORT n = 0, nEnd = rBox.GetTabLines().Count(); n < nEnd; ++n )
- _FndBox::AppendLine( *pFndBox, *rBox.GetTabLines()[ n ] );
-}
-
-void _FndBox::AddSelLine( _FndBox& rBox, const SwTableLine& rLine,
- SwSelBoxes& rBoxes )
-{
- _FndLine* pFndLine = new _FndLine( (SwTableLine*)&rLine, &rBox );
- for( USHORT n = 0, nEnd = rLine.GetTabBoxes().Count();
- n < nEnd && rBoxes.Count(); ++n )
- _FndBox::AddSelBox( *pFndLine, *rLine.GetTabBoxes()[ n ], rBoxes );
-
- if( pFndLine->GetBoxes().Count() )
- rBox.GetLines().C40_INSERT( _FndLine, pFndLine, rBox.GetLines().Count() );
- else
- delete pFndLine;
-}
-
-void _FndBox::AddSelBox( _FndLine& rLine, const SwTableBox& rBox,
- SwSelBoxes& rBoxes )
-{
- _FndBox* pFndBox;
- USHORT n = 0, nEnd = rBox.GetTabLines().Count();
- if( nEnd )
- {
- pFndBox = new _FndBox( (SwTableBox*)&rBox, &rLine );
- for( ; n < nEnd && rBoxes.Count(); ++n )
- _FndBox::AddSelLine( *pFndBox, *rBox.GetTabLines()[ n ], rBoxes );
- if( !pFndBox->GetLines().Count() )
- delete pFndBox, pFndBox = 0;
- }
- else
- {
- SwTableBoxPtr pSrch = (SwTableBoxPtr)&rBox;
- USHORT nFndPos;
- if( rBoxes.Seek_Entry( pSrch, &nFndPos ))
- {
- pFndBox = new _FndBox( pSrch, &rLine );
- rBoxes.Remove( nFndPos );
- }
- else
- pFndBox = 0;
- }
- if( pFndBox )
- rLine.GetBoxes().C40_INSERT( _FndBox, pFndBox, rLine.GetBoxes().Count() );
-}
-
//GPF bei Tab in letzer Zelle mit MSC4
#pragma optimize("",off)
@@ -2834,4 +2781,3 @@ void _FndBox::RestoreChartData( const SwTable &rTable )
#pragma optimize("",on)
-
diff --git a/sw/source/core/graphic/ndgrf.cxx b/sw/source/core/graphic/ndgrf.cxx
index 7d5377c1f80d..9e1e5a95d835 100644
--- a/sw/source/core/graphic/ndgrf.cxx
+++ b/sw/source/core/graphic/ndgrf.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: ndgrf.cxx,v $
*
- * $Revision: 1.21 $
+ * $Revision: 1.22 $
*
- * last change: $Author: od $ $Date: 2002-09-17 13:47:09 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:40:08 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -164,8 +164,8 @@ SwGrfNode::SwGrfNode( const SwNodeIndex & rWhere,
: SwNoTxtNode( rWhere, ND_GRFNODE, pGrfColl, pAutoAttr )
{
aGrfObj.SetSwapStreamHdl( LINK( this, SwGrfNode, SwapGraphic ) );
- bInSwapIn = bChgTwipSize = bLoadLowResGrf = bFrameInPaint =
- bScaleImageMap = FALSE;
+ bInSwapIn = bChgTwipSize = bChgTwipSizeFromPixel = bLoadLowResGrf =
+ bFrameInPaint = bScaleImageMap = FALSE;
bGrafikArrived = TRUE;
ReRead( rGrfName, rFltName, pGraphic, 0, FALSE );
}
@@ -179,8 +179,8 @@ SwGrfNode::SwGrfNode( const SwNodeIndex & rWhere,
aGrfObj.SetSwapStreamHdl( LINK( this, SwGrfNode, SwapGraphic ) );
if( rGrfObj.HasUserData() && rGrfObj.IsSwappedOut() )
aGrfObj.SetSwapState();
- bInSwapIn = bChgTwipSize = bLoadLowResGrf = bFrameInPaint =
- bScaleImageMap = FALSE;
+ bInSwapIn = bChgTwipSize = bChgTwipSizeFromPixel= bLoadLowResGrf =
+ bFrameInPaint = bScaleImageMap = FALSE;
bGrafikArrived = TRUE;
}
@@ -199,8 +199,8 @@ SwGrfNode::SwGrfNode( const SwNodeIndex & rWhere,
Graphic aGrf; aGrf.SetDefaultType();
aGrfObj.SetGraphic( aGrf, rGrfName );
- bInSwapIn = bChgTwipSize = bLoadLowResGrf = bFrameInPaint =
- bScaleImageMap = FALSE;
+ bInSwapIn = bChgTwipSize = bChgTwipSizeFromPixel = bLoadLowResGrf =
+ bFrameInPaint = bScaleImageMap = FALSE;
bGrafikArrived = TRUE;
InsertLink( rGrfName, rFltName );
diff --git a/sw/source/core/inc/drawfont.hxx b/sw/source/core/inc/drawfont.hxx
index 462623d484c4..9c1f690bbb52 100644
--- a/sw/source/core/inc/drawfont.hxx
+++ b/sw/source/core/inc/drawfont.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: drawfont.hxx,v $
*
- * $Revision: 1.28 $
+ * $Revision: 1.29 $
*
- * last change: $Author: fme $ $Date: 2002-12-02 10:27:19 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:40:10 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -153,20 +153,28 @@ private:
SvXub_StrLens aCompLen;
SvBytes aCompType;
xub_StrLen nInvalidityPos;
+ BYTE nDefaultDir;
+ sal_Bool bBidiInfoValid;
public:
enum CompType { KANA, SPECIAL_LEFT, SPECIAL_RIGHT, NONE };
- inline SwScriptInfo() : nInvalidityPos( 0 ) {};
+ inline SwScriptInfo() : nInvalidityPos( 0 ), nDefaultDir( 0 ),
+ bBidiInfoValid( sal_False ) {};
// determines script changes
void InitScriptInfo( const SwTxtNode& rNode, SwAttrHandler& rAH,
const OutputDevice& rOut );
+ void UpdateBidiInfo( const String& rTxt );
// set/get position from which data is invalid
inline void SetInvalidity( const xub_StrLen nPos );
inline xub_StrLen GetInvalidity() const { return nInvalidityPos; };
+ // get default direction for paragraph
+ inline BYTE GetDefaultDir() const { return nDefaultDir; };
+ inline void SetDefaultDir( BYTE nNew ) { nDefaultDir = nNew; };
+
// array operations, nCnt refers to array position
inline USHORT CountScriptChg() const;
inline xub_StrLen GetScriptChg( const USHORT nCnt ) const;
@@ -263,13 +271,15 @@ public:
long* pScrArray, xub_StrLen nIdx,
xub_StrLen nLen, USHORT nSpace = 0 );
- static const SwScriptInfo* GetScriptInfo( const SwTxtNode& rNode );
+ static SwScriptInfo* GetScriptInfo( const SwTxtNode& rNode,
+ sal_Bool bAllowInvalid = sal_False );
};
inline void SwScriptInfo::SetInvalidity( const xub_StrLen nPos )
{
if ( nPos < nInvalidityPos )
nInvalidityPos = nPos;
+ bBidiInfoValid = sal_False;
};
inline USHORT SwScriptInfo::CountScriptChg() const { return aScriptChg.Count(); }
inline xub_StrLen SwScriptInfo::GetScriptChg( const USHORT nCnt ) const
@@ -356,6 +366,7 @@ class SwDrawTextInfo
short nSperren;
short nKern;
short nSpace;
+ BYTE nCursorBidiLevel;
BOOL bBullet : 1;
BOOL bUpper : 1; // Fuer Kapitaelchen: Grossbuchstaben-Flag
BOOL bDrawSpace : 1; // Fuer Kapitaelchen: Unter/Durchstreichung
@@ -396,239 +407,384 @@ public:
BOOL bOfst : 1;
BOOL bHyph : 1;
#endif
+
SwDrawTextInfo( ViewShell *pS, OutputDevice &rO, const SwScriptInfo* pSI,
const XubString &rSt, xub_StrLen nI, xub_StrLen nL,
- USHORT nW = 0, BOOL bB = FALSE)
- { pSh = pS; pOut = &rO; pScriptInfo = pSI; pText = &rSt; nIdx = nI;
- nLen = nL; nKern = 0; nCompress = 0; nWidth = nW;
- bBullet = bB; pUnderFnt = 0; bGreyWave = bSpaceStop =
-#ifdef BIDI
- bSnapToGrid = bIgnoreFrmRTL = FALSE;
-#else
+ USHORT nW = 0, BOOL bB = FALSE )
+ {
+ pFrm = NULL;
+ pSh = pS;
+ pOut = &rO;
+ pScriptInfo = pSI;
+ pText = &rSt;
+ nIdx = nI;
+ nLen = nL;
+ nKern = 0;
+ nCompress = 0;
+ nWidth = nW;
+ nCursorBidiLevel = 0;
+ bBullet = bB;
+ pUnderFnt = 0;
+ bGreyWave = FALSE;
+ bSpaceStop = FALSE;
bSnapToGrid = FALSE;
+#ifdef BIDI
+ bIgnoreFrmRTL = FALSE;
#endif
- pFrm = 0;
#ifndef PRODUCT
bOut = bText = bIdx = bLen = bWidth = bKern = bBull = bSpec =
- bGreyWv = TRUE;
+ bGreyWv = TRUE;
+
bPos = bWrong = bSize = bFnt = bAscent = bSpace = bUppr =
- bDrawSp = bLeft = bRight = bKana = bOfst = bHyph = FALSE;
+ bDrawSp = bLeft = bRight = bKana = bOfst = bHyph = FALSE;
#endif
}
- const SwTxtFrm* GetFrm() const { return pFrm; }
- void SetFrm( const SwTxtFrm* pNewFrm ) { pFrm = pNewFrm; }
+ const SwTxtFrm* GetFrm() const
+ {
+ return pFrm;
+ }
+
+ void SetFrm( const SwTxtFrm* pNewFrm )
+ {
+ pFrm = pNewFrm;
+ }
+
+ ViewShell *GetShell() const
+ {
+ return pSh;
+ }
- ViewShell *GetShell() const { return pSh; }
- OutputDevice& GetOut() const {
+ OutputDevice& GetOut() const
+ {
ASSERT( bOut, "DrawTextInfo: Undefined Outputdevice" );
return *pOut;
}
- OutputDevice *GetpOut() const {
+
+ OutputDevice *GetpOut() const
+ {
ASSERT( bOut, "DrawTextInfo: Undefined Outputdevice" );
return pOut;
}
- const SwScriptInfo* GetScriptInfo() const {
+
+ const SwScriptInfo* GetScriptInfo() const
+ {
return pScriptInfo;
}
- const Point &GetPos() const {
+
+ const Point &GetPos() const
+ {
ASSERT( bPos, "DrawTextInfo: Undefined Position" );
return *pPos;
}
- xub_StrLen *GetHyphPos() const {
+
+ xub_StrLen *GetHyphPos() const
+ {
ASSERT( bHyph, "DrawTextInfo: Undefined Hyph Position" );
return pHyphPos;
}
- const Fraction &GetZoom() const { return aZoom; }
- Fraction &GetZoom() { return aZoom; }
+ const Fraction &GetZoom() const
+ {
+ return aZoom;
+ }
+
+ Fraction &GetZoom()
+ {
+ return aZoom;
+ }
- const XubString &GetText() const {
+ const XubString &GetText() const
+ {
ASSERT( bText, "DrawTextInfo: Undefined String" );
return *pText;
}
- const SwWrongList* GetWrong() const {
+
+ const SwWrongList* GetWrong() const
+ {
ASSERT( bWrong, "DrawTextInfo: Undefined WrongList" );
return pWrong;
}
- const Size &GetSize() const {
+
+ const Size &GetSize() const
+ {
ASSERT( bSize, "DrawTextInfo: Undefined Size" );
return *pSize;
}
- SwFont* GetFont() const {
+
+ SwFont* GetFont() const
+ {
ASSERT( bFnt, "DrawTextInfo: Undefined Font" );
return pFnt;
}
- SwUnderlineFont* GetUnderFnt() const {
+
+ SwUnderlineFont* GetUnderFnt() const
+ {
ASSERT( bSpec, "DrawTextInfo: Undefined Underlinefont" );
return pUnderFnt;
}
- xub_StrLen GetIdx() const {
+
+ xub_StrLen GetIdx() const
+ {
ASSERT( bIdx, "DrawTextInfo: Undefined Index" );
return nIdx;
}
- xub_StrLen GetLen() const {
+
+ xub_StrLen GetLen() const
+ {
ASSERT( bLen, "DrawTextInfo: Undefined Length" );
return nLen;
}
- xub_StrLen GetOfst() const {
+
+ xub_StrLen GetOfst() const
+ {
ASSERT( bOfst, "DrawTextInfo: Undefined Offset" );
return nOfst;
}
- xub_StrLen GetEnd() const {
+
+ xub_StrLen GetEnd() const
+ {
ASSERT( bIdx, "DrawTextInfo: Undefined Index" );
ASSERT( bLen, "DrawTextInfo: Undefined Length" );
return nIdx + nLen;
}
- long GetLeft() const {
+
+ long GetLeft() const
+ {
ASSERT( bLeft, "DrawTextInfo: Undefined left range" );
return nLeft;
}
- long GetRight() const {
+
+ long GetRight() const
+ {
ASSERT( bRight, "DrawTextInfo: Undefined right range" );
return nRight;
}
- long GetKanaDiff() const {
+
+ long GetKanaDiff() const
+ {
ASSERT( bKana, "DrawTextInfo: Undefined kana difference" );
return nKanaDiff;
}
- USHORT GetWidth() const {
+
+ USHORT GetWidth() const
+ {
ASSERT( bWidth, "DrawTextInfo: Undefined Width" );
return nWidth;
}
- USHORT GetAscent() const {
+
+ USHORT GetAscent() const
+ {
ASSERT( bAscent, "DrawTextInfo: Undefined Ascent" );
return nAscent;
}
- USHORT GetKanaComp() const {
+
+ USHORT GetKanaComp() const
+ {
return nCompress;
}
- short GetSperren() const {
+
+ short GetSperren() const
+ {
ASSERT( bSperr, "DrawTextInfo: Undefined >Sperren<" );
return nSperren;
}
- short GetKern() const {
+
+ short GetKern() const
+ {
ASSERT( bKern, "DrawTextInfo: Undefined Kerning" );
return nKern;
}
- short GetSpace() const {
+
+ short GetSpace() const
+ {
ASSERT( bSpace, "DrawTextInfo: Undefined Spacing" );
return nSpace;
}
- BOOL GetBullet() const {
+
+ BYTE GetCursorBidiLevel() const
+ {
+ return nCursorBidiLevel;
+ }
+
+ BOOL GetBullet() const
+ {
ASSERT( bBull, "DrawTextInfo: Undefined Bulletflag" );
return bBullet;
}
- BOOL GetUpper() const {
+
+ BOOL GetUpper() const
+ {
ASSERT( bUppr, "DrawTextInfo: Undefined Upperflag" );
return bUpper;
}
- BOOL GetDrawSpace() const {
+
+ BOOL GetDrawSpace() const
+ {
ASSERT( bDrawSp, "DrawTextInfo: Undefined DrawSpaceflag" );
return bDrawSpace;
}
- BOOL GetGreyWave() const {
+
+ BOOL GetGreyWave() const
+ {
ASSERT( bGreyWv, "DrawTextInfo: Undefined GreyWave" );
return bGreyWave;
}
- BOOL IsSpaceStop() const {
+
+ BOOL IsSpaceStop() const
+ {
return bSpaceStop;
}
- BOOL SnapToGrid() const {
+
+ BOOL SnapToGrid() const
+ {
return bSnapToGrid;
}
- BOOL IsIgnoreFrmRTL() const {
+ BOOL IsIgnoreFrmRTL() const
+ {
return bIgnoreFrmRTL;
}
- void SetOut( OutputDevice &rNew ){ pOut = &rNew;
+ void SetOut( OutputDevice &rNew )
+ {
+ pOut = &rNew;
#ifndef PRODUCT
bOut = TRUE;
#endif
}
- void SetPos( const Point &rNew ){ pPos = &rNew;
+
+ void SetPos( const Point &rNew )
+ {
+ pPos = &rNew;
#ifndef PRODUCT
bPos = TRUE;
#endif
}
- void SetHyphPos( xub_StrLen *pNew ){ pHyphPos = pNew;
+
+ void SetHyphPos( xub_StrLen *pNew )
+ {
+ pHyphPos = pNew;
#ifndef PRODUCT
bHyph = TRUE;
#endif
}
- void SetText( const XubString &rNew ){ pText = &rNew;
+
+ void SetText( const XubString &rNew )
+ {
+ pText = &rNew;
#ifndef PRODUCT
bText = TRUE;
#endif
}
- void SetWrong( const SwWrongList* pNew ){ pWrong = pNew;
+
+ void SetWrong( const SwWrongList* pNew )
+ {
+ pWrong = pNew;
#ifndef PRODUCT
bWrong = TRUE;
#endif
}
- void SetSize( const Size &rNew ){ pSize = &rNew;
+
+ void SetSize( const Size &rNew )
+ {
+ pSize = &rNew;
#ifndef PRODUCT
bSize = TRUE;
#endif
}
- void SetFont( SwFont* pNew ){ pFnt = pNew;
+
+ void SetFont( SwFont* pNew )
+ {
+ pFnt = pNew;
#ifndef PRODUCT
bFnt = TRUE;
#endif
}
- void SetIdx( xub_StrLen nNew ){ nIdx = nNew;
+
+ void SetIdx( xub_StrLen nNew )
+ {
+ nIdx = nNew;
#ifndef PRODUCT
bIdx = TRUE;
#endif
}
- void SetLen( xub_StrLen nNew ){ nLen = nNew;
+
+ void SetLen( xub_StrLen nNew )
+ {
+ nLen = nNew;
#ifndef PRODUCT
bLen = TRUE;
#endif
}
- void SetOfst( xub_StrLen nNew ){ nOfst = nNew;
+
+ void SetOfst( xub_StrLen nNew )
+ {
+ nOfst = nNew;
#ifndef PRODUCT
bOfst = TRUE;
#endif
}
- void SetLeft( long nNew ){ nLeft = nNew;
+
+ void SetLeft( long nNew )
+ {
+ nLeft = nNew;
#ifndef PRODUCT
bLeft = TRUE;
#endif
}
- void SetRight( long nNew ){ nRight = nNew;
+
+ void SetRight( long nNew )
+ {
+ nRight = nNew;
#ifndef PRODUCT
bRight = TRUE;
#endif
}
- void SetKanaDiff( long nNew ){ nKanaDiff = nNew;
+
+ void SetKanaDiff( long nNew )
+ {
+ nKanaDiff = nNew;
#ifndef PRODUCT
bKana = TRUE;
#endif
}
- void SetWidth( USHORT nNew ){ nWidth = nNew;
+
+ void SetWidth( USHORT nNew )
+ {
+ nWidth = nNew;
#ifndef PRODUCT
bWidth = TRUE;
#endif
}
- void SetAscent( USHORT nNew ){ nAscent = nNew;
+
+ void SetAscent( USHORT nNew )
+ {
+ nAscent = nNew;
#ifndef PRODUCT
bAscent = TRUE;
#endif
}
- void SetKern( short nNew ){ nKern = nNew;
+
+ void SetKern( short nNew )
+ {
+ nKern = nNew;
#ifndef PRODUCT
bKern = TRUE;
#endif
}
- void SetSperren( short nNew ){ nSperren = nNew;
+
+ void SetSperren( short nNew )
+ {
+ nSperren = nNew;
#ifndef PRODUCT
bSperr = TRUE;
#endif
}
- void SetSpace( short nNew ){
+
+ void SetSpace( short nNew )
+ {
if( nNew < 0 )
{
SetSperren( -nNew );
@@ -643,40 +799,72 @@ public:
bSpace = TRUE;
#endif
}
- void SetKanaComp( short nNew ){
+
+ void SetCursorBidiLevel( BYTE nNew )
+ {
+ nCursorBidiLevel = nNew;
+ }
+
+ void SetKanaComp( short nNew )
+ {
nCompress = nNew;
}
- void SetBullet( BOOL bNew ){ bBullet = bNew;
+
+ void SetBullet( BOOL bNew )
+ {
+ bBullet = bNew;
#ifndef PRODUCT
bBull = TRUE;
#endif
}
- void SetUnderFnt( SwUnderlineFont* pFnt ){ pUnderFnt = pFnt;
+
+ void SetUnderFnt( SwUnderlineFont* pFnt )
+ {
+ pUnderFnt = pFnt;
#ifndef PRODUCT
bSpec = TRUE;
#endif
}
- void SetUpper( BOOL bNew ){ bUpper = bNew;
+
+ void SetUpper( BOOL bNew )
+ {
+ bUpper = bNew;
#ifndef PRODUCT
bUppr = TRUE;
#endif
}
- void SetDrawSpace( BOOL bNew ){ bDrawSpace = bNew;
+
+ void SetDrawSpace( BOOL bNew )
+ {
+ bDrawSpace = bNew;
#ifndef PRODUCT
bDrawSp = TRUE;
#endif
}
- void SetGreyWave( BOOL bNew ){ bGreyWave = bNew;
+
+ void SetGreyWave( BOOL bNew )
+ {
+ bGreyWave = bNew;
#ifndef PRODUCT
bGreyWv = TRUE;
#endif
}
- void SetSpaceStop( BOOL bNew ) { bSpaceStop = bNew; }
- void SetSnapToGrid( BOOL bNew ) { bSnapToGrid = bNew; }
+ void SetSpaceStop( BOOL bNew )
+ {
+ bSpaceStop = bNew;
+ }
+
+ void SetSnapToGrid( BOOL bNew )
+ {
+ bSnapToGrid = bNew;
+ }
#ifdef BIDI
- void SetIgnoreFrmRTL( BOOL bNew ) { bIgnoreFrmRTL = bNew; }
+ void SetIgnoreFrmRTL( BOOL bNew )
+ {
+ bIgnoreFrmRTL = bNew;
+ }
#endif
void Shift( USHORT nDir );
diff --git a/sw/source/core/inc/frmtool.hxx b/sw/source/core/inc/frmtool.hxx
index 8ba389020e5c..e24d1d299d82 100644
--- a/sw/source/core/inc/frmtool.hxx
+++ b/sw/source/core/inc/frmtool.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: frmtool.hxx,v $
*
- * $Revision: 1.6 $
+ * $Revision: 1.7 $
*
- * last change: $Author: od $ $Date: 2002-10-11 11:05:26 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:40:11 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -95,12 +95,20 @@ class SwCrsrShell;
#define GRFNUM_REPLACE 2
//Painten des Hintergrunds. Mit Brush oder Graphic.
-/// OD 05.08.2002 #99657# - add 6th parameter to indicate that method should
-/// consider background transparency, saved in the color of the brush item
+// OD 05.08.2002 #99657# - add 6th parameter to indicate that method should
+// consider background transparency, saved in the color of the brush item
void MA_FASTCALL DrawGraphic( const SvxBrushItem *, OutputDevice *,
const SwRect &rOrg, const SwRect &rOut, const BYTE nGrfNum = GRFNUM_NO,
const sal_Bool bConsiderBackgroundTransparency = sal_False );
+// OD 24.01.2003 #106593# - method to align rectangle
+// Created declaration here to avoid <extern> declarations
+void MA_FASTCALL SwAlignRect( SwRect &rRect, ViewShell *pSh );
+
+// OD 24.01.2003 #106593# - method to align graphic rectangle
+// Created declaration here to avoid <extern> declarations
+void SwAlignGrfRect( SwRect *pGrfRect, const OutputDevice &rOut );
+
//Fly besorgen, wenn keine List hineingereicht wird, wir die der aktuellen
//Shell benutzt.
//Implementierung in feshview.cxx
@@ -239,6 +247,8 @@ public:
//!!!Achtung: Wenn weitere Attribute gecached werden muss unbedingt die
//Methode Modify::Modify mitgepflegt werden!!!
+// OD 23.01.2003 #106895# - delete old method <SwBorderAttrs::CalcRight()> and
+// the stuff that belongs to it.
class SwBorderAttrs : public SwCacheObj
{
const SwAttrSet &rAttrSet;
@@ -247,7 +257,6 @@ class SwBorderAttrs : public SwCacheObj
const SvxBoxItem &rBox;
const SvxShadowItem &rShadow;
const Size aFrmSize; //Die FrmSize
- long nRight;
BOOL bBorderDist :1; //Ist's ein Frm der auch ohne Linie
//einen Abstand haben kann?
@@ -260,7 +269,6 @@ class SwBorderAttrs : public SwCacheObj
BOOL bRightLine :1;
BOOL bTop :1;
BOOL bBottom :1;
- BOOL bRight :1;
BOOL bLine :1;
BOOL bIsLine :1; //Umrandung an mind. einer Kante?
@@ -288,7 +296,6 @@ class SwBorderAttrs : public SwCacheObj
//Lines + Shadow + Abstaende
void _CalcTop();
void _CalcBottom();
- void _CalcRight();
void _IsLine();
@@ -318,10 +325,7 @@ public:
inline USHORT CalcTop() const;
inline USHORT CalcBottom() const;
long CalcLeft( const SwFrm *pCaller ) const;
-#ifdef BIDI
- long CalcRight( const SwFrm *pCaller );
-#endif
- inline long CalcRight() const;
+ long CalcRight( const SwFrm *pCaller ) const;
inline BOOL IsLine() const;
@@ -447,12 +451,6 @@ inline USHORT SwBorderAttrs::CalcBottom() const
((SwBorderAttrs*)this)->_CalcBottom();
return nBottom;
}
-inline long SwBorderAttrs::CalcRight() const
-{
- if ( bRight )
- ((SwBorderAttrs*)this)->_CalcRight();
- return nRight;
-}
inline BOOL SwBorderAttrs::IsLine() const
{
if ( bLine )
diff --git a/sw/source/core/inc/pagefrm.hxx b/sw/source/core/inc/pagefrm.hxx
index 92891e48cf6d..d1e65e54188f 100644
--- a/sw/source/core/inc/pagefrm.hxx
+++ b/sw/source/core/inc/pagefrm.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: pagefrm.hxx,v $
*
- * $Revision: 1.9 $
+ * $Revision: 1.10 $
*
- * last change: $Author: od $ $Date: 2002-11-20 13:14:44 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:40:13 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -121,6 +121,11 @@ class SwPageFrm: public SwFtnBossFrm
#ifdef VERTICAL_LAYOUT
BOOL bHasGrid :1; // Grid for Asian layout
#endif
+
+ // OD 12.02.2003 #i9719#, #105645#
+ static const sal_Int8 mnBorderPxWidth;
+ static const sal_Int8 mnShadowPxWidth;
+
//Anpassung der RootSize und Benachrichtigungen beim Einsetzen,
//Entfernen und Groessenaenderungen der Seite.
void AdjustRootSize( const SwPageChg eChgType, const SwRect *pOld );
@@ -131,6 +136,75 @@ class SwPageFrm: public SwFtnBossFrm
// Anpassen der max. Fussnotenhoehen in den einzelnen Spalten
void SetColMaxFtnHeight();
+ /** determine rectangle for page border
+
+ OD 12.02.2003 for #i9719# and #105645#
+
+ @author OD
+
+ @param _rPageRect
+ input parameter - constant instance reference of the page rectangle.
+ Generally, it's the frame area of the page, but for empty pages in print
+ preview, this parameter is useful.
+
+ @param _pViewShell
+ input parameter - instance of the view shell, for which the rectangle
+ has to be generated.
+
+ @param _orBorderRect
+ output parameter - instance reference of the border rectangle for
+ the given page rectangle
+ */
+ void GetBorderRect( const SwRect& _rPageRect,
+ ViewShell* _pViewShell,
+ SwRect& _orBorderRect ) const;
+
+ /** determine rectangle for right page shadow
+
+ OD 12.02.2003 for #i9719# and #105645#
+
+ @author OD
+
+ @param _rPageRect
+ input parameter - constant instance reference of the page rectangle.
+ Generally, it's the frame area of the page, but for empty pages in print
+ preview, this parameter is useful.
+
+ @param _pViewShell
+ input parameter - instance of the view shell, for which the rectangle
+ has to be generated.
+
+ @param _orRightShadowRect
+ output parameter - instance reference of the right shadow rectangle for
+ the given page rectangle
+ */
+ void GetRightShadowRect( const SwRect& _rPageRect,
+ ViewShell* _pViewShell,
+ SwRect& _orRightShadowRect ) const;
+
+ /** determine rectangle for bottom page shadow
+
+ OD 12.02.2003 for #i9719# and #105645#
+
+ @author OD
+
+ @param _rPageRect
+ input parameter - constant instance reference of the page rectangle.
+ Generally, it's the frame area of the page, but for empty pages in print
+ preview, this parameter is useful.
+
+ @param _pViewShell
+ input parameter - instance of the view shell, for which the rectangle
+ has to be generated.
+
+ @param _orBottomShadowRect
+ output parameter - instance reference of the bottom shadow rectangle for
+ the given page rectangle
+ */
+ void GetBottomShadowRect( const SwRect& _rPageRect,
+ ViewShell* _pViewShell,
+ SwRect& _orBottomShadowRect ) const;
+
protected:
virtual void MakeAll();
@@ -271,6 +345,58 @@ public:
*/
void PaintMarginArea( const SwRect& _rOutputRect,
ViewShell* _pViewShell ) const;
+
+ /** paint page border and shadow
+
+ OD 12.02.2003 for #i9719# and #105645#
+ implement paint of page border and shadow
+
+ @author OD
+
+ @param _rPageRect
+ input parameter - constant instance reference of the page rectangle.
+ Generally, it's the frame area of the page, but for empty pages in print
+ preview, this parameter is useful.
+
+ @param _pViewShell
+ input parameter - instance of the view shell, on which the output
+ has to be generated.
+ */
+ void PaintBorderAndShadow( const SwRect& _rPageRect,
+ ViewShell* _pViewShell ) const;
+
+ /** get bound rectangle of border and shadow for repaints
+
+ OD 12.02.2003 for #i9719# and #105645#
+
+ author OD
+
+ @param _rPageRect
+ input parameter - constant instance reference of the page rectangle.
+ Generally, it's the frame area of the page, but for empty pages in print
+ preview, this parameter is useful.
+
+ @param _pViewShell
+ input parameter - instance of the view shell, for which the rectangle
+ has to be generated.
+
+ @param _orBorderAndShadowBoundRect
+ output parameter - instance reference of the bounded border and shadow
+ rectangle for the given page rectangle
+ */
+ void GetBorderAndShadowBoundRect( const SwRect& _rPageRect,
+ ViewShell* _pViewShell,
+ SwRect& _orBorderAndShadowBoundRect ) const;
+
+ // OD 12.02.2003 #i9719#, #105645#
+ inline sal_Int8 BorderPxWidth() const
+ {
+ return mnBorderPxWidth;
+ }
+ inline sal_Int8 ShadowPxWidth() const
+ {
+ return mnShadowPxWidth;
+ }
};
inline SwCntntFrm *SwPageFrm::FindFirstBodyCntnt()
diff --git a/sw/source/core/inc/prevwpage.hxx b/sw/source/core/inc/prevwpage.hxx
new file mode 100644
index 000000000000..65dc4542557d
--- /dev/null
+++ b/sw/source/core/inc/prevwpage.hxx
@@ -0,0 +1,38 @@
+#ifndef _PREVIEWPAGES_HXX
+#define _PREVIEWPAGES_HXX
+
+// classes <Point>, <Size> and <Rectangle>
+#ifndef _GEN_HXX
+#include <tools/gen.hxx>
+#endif
+
+class SwPageFrm;
+
+/** data structure for a preview page in the current preview layout
+
+ OD 12.12.2002 #103492# - struct <PrevwPage>
+
+ @author OD
+*/
+struct PrevwPage
+{
+ const SwPageFrm* pPage;
+ bool bVisible;
+ Size aPageSize;
+ Point aPrevwWinPos;
+ Point aLogicPos;
+ Point aMapOffset;
+
+ inline PrevwPage();
+};
+
+inline PrevwPage::PrevwPage()
+ : pPage( 0 ),
+ bVisible( false ),
+ aPageSize( Size(0,0) ),
+ aPrevwWinPos( Point(0,0) ),
+ aLogicPos( Point(0,0) ),
+ aMapOffset( Point(0,0) )
+{};
+
+#endif
diff --git a/sw/source/core/inc/rootfrm.hxx b/sw/source/core/inc/rootfrm.hxx
index 62907753f669..8f344b079661 100644
--- a/sw/source/core/inc/rootfrm.hxx
+++ b/sw/source/core/inc/rootfrm.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: rootfrm.hxx,v $
*
- * $Revision: 1.9 $
+ * $Revision: 1.10 $
*
- * last change: $Author: ama $ $Date: 2002-05-06 10:04:06 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:40:17 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -324,6 +324,22 @@ public:
void AddAccessibleShell() { ++nAccessibleShells; }
void RemoveAccessibleShell() { --nAccessibleShells; }
#endif
+
+ /** get page frame by phyiscal page number
+
+ OD 14.01.2003 #103492#
+ looping through the lowers, which are page frame, in order to find the
+ page frame with the given physical page number.
+ if no page frame is found, 0 is returned.
+ Note: Empty page frames are also returned.
+
+ @param _nPageNum
+ input parameter - physical page number of page frame to be searched and
+ returned.
+
+ @return pointer to the page frame with the given physical page number
+ */
+ SwPageFrm* GetPageByPageNum( sal_uInt16 _nPageNum ) const;
};
inline long SwRootFrm::GetBrowseWidth() const
diff --git a/sw/source/core/inc/swfont.hxx b/sw/source/core/inc/swfont.hxx
index 21d417d6c8e7..4ce78723c2be 100644
--- a/sw/source/core/inc/swfont.hxx
+++ b/sw/source/core/inc/swfont.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: swfont.hxx,v $
*
- * $Revision: 1.30 $
+ * $Revision: 1.31 $
*
- * last change: $Author: fme $ $Date: 2002-11-14 08:54:53 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:40:18 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -145,7 +145,7 @@ class SwSubFont : public SvxFont
inline void SetStrikeout( const FontStrikeout eStrikeout );
inline void SetItalic( const FontItalic eItalic );
inline void SetOutline( const BOOL bOutline );
- inline void SetVertical( const USHORT nDir );
+ inline void SetVertical( const USHORT nDir, const BOOL bVertFormat );
inline void SetShadow( const BOOL bShadow );
inline void SetAutoKern( const BYTE nAutoKern );
inline void SetWordLineMode( const BOOL bWordLineMode );
@@ -836,10 +836,10 @@ inline void SwFont::SetNoCol( const BOOL bNew )
bNoColReplace = bNew;
}
-inline void SwSubFont::SetVertical( const USHORT nDir )
+inline void SwSubFont::SetVertical( const USHORT nDir, const BOOL bVertFormat )
{
pMagic = 0;
- Font::SetVertical( nDir > 1000 );
+ Font::SetVertical( bVertFormat );
Font::SetOrientation( nDir );
}
diff --git a/sw/source/core/inc/txtfrm.hxx b/sw/source/core/inc/txtfrm.hxx
index d16e1c325c22..6eec5990a0fa 100644
--- a/sw/source/core/inc/txtfrm.hxx
+++ b/sw/source/core/inc/txtfrm.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: txtfrm.hxx,v $
*
- * $Revision: 1.27 $
+ * $Revision: 1.28 $
*
- * last change: $Author: fme $ $Date: 2002-12-02 10:27:42 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:40:19 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -272,7 +272,10 @@ public:
sal_Bool _UnitDown(SwPaM *, const SwTwips nOffset = 0,
sal_Bool bSetInReadOnly = sal_False ) const;
- void PrepareVisualMove( xub_StrLen& nPos, BYTE& nCrsrLevel, sal_Bool& bRight );
+ // Prepares the cursor position for a visual cursor move (BiDi).
+ // The behaviour is different for insert and overwrite cursors
+ void PrepareVisualMove( xub_StrLen& nPos, BYTE& nCrsrLevel,
+ sal_Bool& bRight, sal_Bool bInsertCrsr );
// Methoden zur Verwaltung von FolgeFrames
SwCntntFrm *SplitFrm( const xub_StrLen nTxtPos );
diff --git a/sw/source/core/inc/viewimp.hxx b/sw/source/core/inc/viewimp.hxx
index 0e9d3a6d2864..2b2cad189bf6 100644
--- a/sw/source/core/inc/viewimp.hxx
+++ b/sw/source/core/inc/viewimp.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: viewimp.hxx,v $
*
- * $Revision: 1.20 $
+ * $Revision: 1.21 $
*
- * last change: $Author: od $ $Date: 2002-12-10 14:16:07 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:40:19 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -70,8 +70,6 @@
#endif
#include "swtypes.hxx"
#include "swrect.hxx"
-// OD 04.12.2002 #103492#
-#include "previewdata.hxx"
class ViewShell;
class SwFlyFrm;
@@ -94,6 +92,14 @@ class SwAccessibleMap;
class SdrObject;
class Fraction;
#endif
+// OD 12.12.2002 #103492#
+class SwPagePreviewLayout;
+// OD 15.01.2003 #103492#
+#ifndef _PREVWPAGE_HXX
+#include <prevwpage.hxx>
+#endif
+// OD 15.01.2003 #103492#
+#include <vector>
class SwViewImp
{
@@ -102,6 +108,9 @@ class SwViewImp
friend class SwLayAction; //Lay- und IdleAction tragen sich ein und aus.
friend class SwLayIdle;
+ // OD 12.12.2002 #103492# - for paint of page preview
+ friend class SwPagePreviewLayout;
+
ViewShell *pSh; //Falls jemand einen Imp durchreicht und doch
//mal eine ViewShell braucht hier die
//Rueckwaertsverkettung.
@@ -143,8 +152,8 @@ class SwViewImp
USHORT nRestoreActions ; //Die Anzahl der zu restaurierenden Actions (UNO)
SwRect aSmoothRect;
- // OD 27.11.2002 #103492#
- CurrentPreviewData* mpCurrPreviewData;
+ // OD 12.12.2002 #103492#
+ SwPagePreviewLayout* mpPgPrevwLayout;
/**
Signal whether to stop printing.
@@ -284,16 +293,13 @@ public:
void SetRestoreActions(USHORT nSet){nRestoreActions = nSet;}
USHORT GetRestoreActions() const{return nRestoreActions;}
- // OD 04.12.2002 #103492#
- inline void InitPreviewData()
- {
- mpCurrPreviewData = new CurrentPreviewData;
- }
+ // OD 12.12.2002 #103492#
+ void InitPagePreviewLayout();
- // OD 04.12.2002 #103492#
- inline CurrentPreviewData* CurrPrevwData()
+ // OD 12.12.2002 #103492#
+ inline SwPagePreviewLayout* PagePreviewLayout()
{
- return mpCurrPreviewData;
+ return mpPgPrevwLayout;
}
#ifdef ACCESSIBLE_LAYOUT
@@ -340,12 +346,12 @@ public:
const SwFlyFrm *pFollow );
// update data for accessible preview
- void UpdateAccessiblePreview( sal_uInt8 nRow, sal_uInt8 nColumn,
- sal_Int16 nStartPage,
- const Size& rPageSize,
- const Point& rFreePoint,
- const Fraction& rScale,
- USHORT nSelectedPage );
+ // OD 15.01.2003 #103492# - change method signature due to new page preview
+ // functionality
+ void UpdateAccessiblePreview( const std::vector<PrevwPage*>& _rPrevwPages,
+ const Fraction& _rScale,
+ const SwPageFrm* _pSelectedPageFrm,
+ const Size& _rPrevwWinSize );
void InvalidateAccessiblePreViewSelection( sal_uInt16 nSelPage );
diff --git a/sw/source/core/layout/atrfrm.cxx b/sw/source/core/layout/atrfrm.cxx
index e94437df50d8..99a1d65d94be 100644
--- a/sw/source/core/layout/atrfrm.cxx
+++ b/sw/source/core/layout/atrfrm.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: atrfrm.cxx,v $
*
- * $Revision: 1.36 $
+ * $Revision: 1.37 $
*
- * last change: $Author: od $ $Date: 2002-10-11 11:39:45 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:40:23 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -569,7 +569,7 @@ BOOL SwFmtFrmSize::PutValue( const uno::Any& rVal, BYTE nMemberId )
{
sal_Int16 nSet;
rVal >>= nSet;
- if(nSet >= 0 && nSet <= 100)
+ if(nSet >= 0 && nSet <= 0xfe)
SetHeightPercent((BYTE)nSet);
else
bRet = sal_False;
diff --git a/sw/source/core/layout/calcmove.cxx b/sw/source/core/layout/calcmove.cxx
index 5495398e4a2e..5095c65d200b 100644
--- a/sw/source/core/layout/calcmove.cxx
+++ b/sw/source/core/layout/calcmove.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: calcmove.cxx,v $
*
- * $Revision: 1.33 $
+ * $Revision: 1.34 $
*
- * last change: $Author: od $ $Date: 2002-11-11 09:40:33 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:40:24 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -96,6 +96,10 @@
#ifndef _FMTANCHR_HXX //autogen
#include <fmtanchr.hxx>
#endif
+#ifndef _FMTCLBL_HXX
+#include <fmtclbl.hxx>
+#endif
+
#include "tabfrm.hxx"
#include "ftnfrm.hxx"
#include "txtfrm.hxx"
@@ -979,7 +983,18 @@ BOOL SwCntntFrm::MakePrtArea( const SwBorderAttrs &rAttrs )
//4. Der Abstand fuer TextFrms entspricht mindestens dem Durchschuss
nUpper = CalcUpperSpace( &rAttrs, NULL );
- SwTwips nLower = rAttrs.GetBottomLine( this );
+ // in balanced columned section frames we do not want the
+ // common border
+ sal_Bool bCommonBorder = sal_True;
+ if ( IsInSct() && GetUpper()->IsColBodyFrm() )
+ {
+ const SwSectionFrm* pSct = FindSctFrm();
+ bCommonBorder = pSct->GetFmt()->GetBalancedColumns().GetValue();
+ }
+ SwTwips nLower = bCommonBorder ?
+ rAttrs.GetBottomLine( this ) :
+ rAttrs.CalcBottomLine();
+
(Prt().*fnRect->fnSetPosY)( (!bVert || bReverse) ? nUpper : nLower);
nUpper += nLower;
nUpper -= (Frm().*fnRect->fnGetHeight)() -
@@ -1453,10 +1468,25 @@ void SwCntntFrm::MakeAll()
((SwSectionFrm*)pOldUp->GetUpper()->GetUpper())->MoveAllowed(this) )
bMovedFwd = FALSE;
+ const sal_Bool bCheckForGrownBody = pOldUp->IsBodyFrm();
+ const long nOldBodyHeight = (pOldUp->Frm().*fnRect->fnGetHeight)();
+
if ( !bMovedFwd && !MoveFwd( bMakePage, FALSE ) )
bMakePage = FALSE;
SWREFRESHFN( this )
- bMovedFwd = TRUE;
+
+ // If MoveFwd moves the paragraph to the next page, a following
+ // paragraph, which contains footnotes can can cause the old upper
+ // frame to grow. In this case we explicitely allow a new check
+ // for MoveBwd. Robust: We also check the bMovedBwd flag again.
+ // If pOldUp was a footnote frame, it has been deleted inside MoveFwd.
+ // Therefore we only check for growing body frames.
+ if ( bCheckForGrownBody && ! bMovedBwd && pOldUp != GetUpper() &&
+ (pOldUp->Frm().*fnRect->fnGetHeight)() > nOldBodyHeight )
+ bMovedFwd = FALSE;
+ else
+ bMovedFwd = TRUE;
+
bFormatted = FALSE;
if ( bMoveOrFit && GetUpper() == pOldUp )
{
@@ -1649,7 +1679,17 @@ BOOL SwCntntFrm::_WouldFit( SwTwips nSpace, SwLayoutFrm *pNewUpper, BOOL bTstMov
nUpper = CalcUpperSpace( NULL, pPrev );
SwBorderAttrAccess aAccess( SwFrm::GetCache(), pFrm );
const SwBorderAttrs &rAttrs = *aAccess.Get();
- nUpper += rAttrs.GetBottomLine( pFrm );
+ // in balanced columned section frames we do not want the
+ // common border
+ sal_Bool bCommonBorder = sal_True;
+ if ( pFrm->IsInSct() && pFrm->GetUpper()->IsColBodyFrm() )
+ {
+ const SwSectionFrm* pSct = pFrm->FindSctFrm();
+ bCommonBorder = pSct->GetFmt()->GetBalancedColumns().GetValue();
+ }
+ nUpper += bCommonBorder ?
+ rAttrs.GetBottomLine( pFrm ) :
+ rAttrs.CalcBottomLine();
}
else
{
diff --git a/sw/source/core/layout/findfrm.cxx b/sw/source/core/layout/findfrm.cxx
index 003b6de4a3ea..3ae5574e7ba9 100644
--- a/sw/source/core/layout/findfrm.cxx
+++ b/sw/source/core/layout/findfrm.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: findfrm.cxx,v $
*
- * $Revision: 1.15 $
+ * $Revision: 1.16 $
*
- * last change: $Author: od $ $Date: 2002-11-11 09:36:02 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:40:25 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -736,6 +736,13 @@ SwFrm *SwFrm::_FindNext()
if( ((SwCntntFrm*)this)->GetFollow() )
return ((SwCntntFrm*)this)->GetFollow();
}
+ else if ( IsRowFrm() )
+ {
+ SwFrm* pUpper = GetUpper();
+ if ( pUpper->IsTabFrm() && ((SwTabFrm*)pUpper)->GetFollow() )
+ return ((SwTabFrm*)pUpper)->GetFollow()->GetLower();
+ else return NULL;
+ }
else
return NULL;
diff --git a/sw/source/core/layout/flowfrm.cxx b/sw/source/core/layout/flowfrm.cxx
index c1dd7c23ed46..638670e7e1b5 100644
--- a/sw/source/core/layout/flowfrm.cxx
+++ b/sw/source/core/layout/flowfrm.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: flowfrm.cxx,v $
*
- * $Revision: 1.20 $
+ * $Revision: 1.21 $
*
- * last change: $Author: fme $ $Date: 2002-11-13 09:40:43 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:40:25 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -1070,7 +1070,7 @@ BOOL SwFlowFrm::IsPrevObjMove() const
pPreUp = pPreUp->GetUpper();
else if( pPreUp->IsColBodyFrm() &&
pPreUp->GetUpper()->GetUpper()->IsSctFrm() )
- pPreUp = pPreUp->GetUpper()->GetUpper();
+ pPreUp = pPreUp->GetUpper()->GetUpper()->GetUpper();
}
const long nBottom = pPreUp->Frm().Bottom();
const long nRight = pPreUp->Frm().Right();
diff --git a/sw/source/core/layout/fly.cxx b/sw/source/core/layout/fly.cxx
index 24ecaa6587bf..a863e146b0de 100644
--- a/sw/source/core/layout/fly.cxx
+++ b/sw/source/core/layout/fly.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: fly.cxx,v $
*
- * $Revision: 1.37 $
+ * $Revision: 1.38 $
*
- * last change: $Author: fme $ $Date: 2002-11-05 12:30:42 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:40:26 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -1461,6 +1461,7 @@ void CalcCntnt( SwLayoutFrm *pLay, BOOL bNoColl )
if ( ((SwTabFrm*)pFrm)->IsFollow() )
((SwTabFrm*)pFrm)->bLockBackMove = FALSE;
}
+
pFrm = pFrm->FindNext();
if( pFrm && pFrm->IsSctFrm() && pSect )
{
@@ -2180,12 +2181,15 @@ void SwFrm::CalcFlys( BOOL bPosOnly )
{
// change anchor position
pO->SetAnchorPos( GetAnchorPos() );
- SwPageFrm* pPage = FindPageFrm();
- if ( pPage )
+ if ( GetValidPosFlag() )
{
- // check if the new position
- // would not exceed the margins of the page
- CaptureDrawObj( *pO, pPage->Frm() );
+ SwPageFrm* pPage = FindPageFrm();
+ if ( pPage && ! pPage->IsInvalidLayout() )
+ {
+ // check if the new position
+ // would not exceed the margins of the page
+ CaptureDrawObj( *pO, pPage->Frm() );
+ }
}
((SwDrawContact*)GetUserCall(pO))->ChkPage();
diff --git a/sw/source/core/layout/flycnt.cxx b/sw/source/core/layout/flycnt.cxx
index cdda6682195e..d585f2fb3135 100644
--- a/sw/source/core/layout/flycnt.cxx
+++ b/sw/source/core/layout/flycnt.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: flycnt.cxx,v $
*
- * $Revision: 1.28 $
+ * $Revision: 1.29 $
*
- * last change: $Author: fme $ $Date: 2002-10-30 15:04:08 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:40:26 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -1100,11 +1100,7 @@ void SwFlyAtCntFrm::SetAbsPos( const Point &rNew )
const SwRect aOld( AddSpacesToFrm() );
Point aNew( rNew );
-#ifdef BIDI
if( GetAnchor()->IsVertical() || GetAnchor()->IsRightToLeft() )
-#else
- if( GetAnchor()->IsVertical() )
-#endif
aNew.X() += Frm().Width();
SwCntntFrm *pCnt = (SwCntntFrm*)::FindAnchor( GetAnchor(), aNew );
@@ -1113,7 +1109,6 @@ void SwFlyAtCntFrm::SetAbsPos( const Point &rNew )
SwPageFrm *pPage = 0;
SWRECTFN( pCnt )
-#ifdef BIDI
const sal_Bool bRTL = pCnt->IsRightToLeft();
if( ( bVert != GetAnchor()->IsVertical() ) ||
@@ -1124,15 +1119,6 @@ void SwFlyAtCntFrm::SetAbsPos( const Point &rNew )
else
aNew.X() -= Frm().Width();
}
-#else
- if( ( bVert != GetAnchor()->IsVertical() )
- {
- if( bVert )
- aNew.X() += Frm().Width();
- else
- aNew.X() -= Frm().Width();
- }
-#endif
if ( pCnt->IsInDocBody() )
{
@@ -1214,20 +1200,16 @@ void SwFlyAtCntFrm::SetAbsPos( const Point &rNew )
{
if( !pFrm )
{
-#ifdef BIDI
if ( pCnt->IsRightToLeft() )
nX += pCnt->Frm().Right() - rNew.X() - Frm().Width();
else
-#endif
nX += rNew.X() - pCnt->Frm().Left();
}
else
{
-#ifdef BIDI
if ( pFrm->IsRightToLeft() )
nX += pFrm->Frm().Right() - rNew.X() - Frm().Width();
else
-#endif
nX = rNew.X() - pFrm->Frm().Left();
}
}
@@ -1479,6 +1461,22 @@ void SwFlyAtCntFrm::AssertPage()
if ( Frm().Top() < pNewPage->Frm().Top() && pNewPage->GetPrev() )
{
pNewPage = (SwPageFrm*)pNewPage->GetPrev();
+ // OD 19.02.2003 #105643# - skip empty page and consider empty
+ // page at the beginning of the document.
+ // Assumption about document layout:
+ // No two empty pages following each other.
+ if ( pNewPage->IsEmptyPage() )
+ {
+ if ( pNewPage->GetPrev() )
+ {
+ pNewPage = static_cast<SwPageFrm*>(pNewPage->GetPrev());
+ }
+ else
+ {
+ bFound = TRUE;
+ pNewPage = static_cast<SwPageFrm*>(pNewPage->GetNext());
+ }
+ }
if ( nDir == 2 )
{
bFound = TRUE;
@@ -2127,12 +2125,8 @@ void SwFlyAtCntFrm::MakeFlyPos()
nRelPosX += aHori.GetPos();
}
else if( bToggle || ( !aHori.IsPosToggle() && bR2L ) )
-#ifdef BIDI
nRelPosX = nWidth - aFrm.Width() - aHori.GetPos() +
( bR2L ? nAdd : 0 );
-#else
- nRelPosX = nWidth - aFrm.Width() - aHori.GetPos();
-#endif
else
nRelPosX += aHori.GetPos();
//Da die relative Position immer zum Anker relativ ist,
diff --git a/sw/source/core/layout/frmtool.cxx b/sw/source/core/layout/frmtool.cxx
index 4fda29b450f4..bdad954d2e90 100644
--- a/sw/source/core/layout/frmtool.cxx
+++ b/sw/source/core/layout/frmtool.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: frmtool.cxx,v $
*
- * $Revision: 1.41 $
+ * $Revision: 1.42 $
*
- * last change: $Author: fme $ $Date: 2002-12-09 10:37:57 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:40:27 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -1630,7 +1630,7 @@ SwBorderAttrs::SwBorderAttrs( const SwModify *pMod, const SwFrm *pConstructor )
//Muessen alle einmal berechnet werden:
bTopLine = bBottomLine = bLeftLine = bRightLine =
- bTop = bBottom = bRight = bLine = TRUE;
+ bTop = bBottom = bLine = TRUE;
bCacheGetLine = bCachedGetTopLine = bCachedGetBottomLine = FALSE;
@@ -1668,56 +1668,49 @@ void SwBorderAttrs::_CalcBottom()
bBottom = FALSE;
}
-void SwBorderAttrs::_CalcRight()
+long SwBorderAttrs::CalcRight( const SwFrm* pCaller ) const
{
- nRight = CalcRightLine() + rLR.GetRight();
- bRight = FALSE;
-}
-
+ long nRight;
-#ifdef BIDI
+ // OD 23.01.2003 #106895# - for cell frame in R2L text direction the left
+ // and right border are painted on the right respectively left.
+ if ( pCaller->IsCellFrm() && pCaller->IsRightToLeft() )
+ nRight = CalcLeftLine();
+ else
+ nRight = CalcRightLine();
-long SwBorderAttrs::CalcRight( const SwFrm* pCaller )
-{
// for paragraphs, "left" is "before text" and "right" is "after text"
- nRight = CalcRightLine() +
- ( pCaller->IsTxtFrm() && pCaller->IsRightToLeft() ?
- rLR.GetLeft() :
- rLR.GetRight() );
+ if ( pCaller->IsTxtFrm() && pCaller->IsRightToLeft() )
+ nRight += rLR.GetLeft();
+ else
+ nRight += rLR.GetRight();
return nRight;
}
long SwBorderAttrs::CalcLeft( const SwFrm *pCaller ) const
{
- // for paragraphs, "left" is "before text" and "right" is "after text"
- long nLeft = CalcLeftLine() +
- ( pCaller->IsTxtFrm() && pCaller->IsRightToLeft() ?
- rLR.GetRight() :
- rLR.GetLeft() );
+ long nLeft;
-#ifdef NUM_RELSPACE
- if ( pCaller->IsTxtFrm() )
- nLeft += ((SwTxtFrm*)pCaller)->GetTxtNode()->GetLeftMarginWithNum();
-#endif
- return nLeft;
-}
+ // OD 23.01.2003 #106895# - for cell frame in R2L text direction the left
+ // and right border are painted on the right respectively left.
+ if ( pCaller->IsCellFrm() && pCaller->IsRightToLeft() )
+ nLeft = CalcRightLine();
+ else
+ nLeft = CalcLeftLine();
-#else
+ // for paragraphs, "left" is "before text" and "right" is "after text"
+ if ( pCaller->IsTxtFrm() && pCaller->IsRightToLeft() )
+ nLeft += rLR.GetRight();
+ else
+ nLeft += rLR.GetLeft();
-long SwBorderAttrs::CalcLeft( const SwFrm *pCaller ) const
-{
- long nLeft = rLR.GetLeft() + CalcLeftLine();
-#ifdef NUM_RELSPACE
if ( pCaller->IsTxtFrm() )
nLeft += ((SwTxtFrm*)pCaller)->GetTxtNode()->GetLeftMarginWithNum();
-#endif
+
return nLeft;
}
-#endif
-
-
/*************************************************************************
|*
|* SwBorderAttrs::CalcTopLine(), CalcBottomLine(),
diff --git a/sw/source/core/layout/hffrm.cxx b/sw/source/core/layout/hffrm.cxx
index 3bce18e8f25b..98a96d6bacac 100644
--- a/sw/source/core/layout/hffrm.cxx
+++ b/sw/source/core/layout/hffrm.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: hffrm.cxx,v $
*
- * $Revision: 1.10 $
+ * $Revision: 1.11 $
*
- * last change: $Author: fme $ $Date: 2002-10-23 11:16:54 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:40:27 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -237,7 +237,8 @@ void SwHeadFootFrm::FormatPrt(SwTwips & nUL, const SwBorderAttrs * pAttrs)
nUL = pAttrs->CalcBottom() + nSpace;
/* set print area */
- SwTwips nLR = pAttrs->CalcLeft(this) + pAttrs->CalcRight();
+ // OD 23.01.2003 #106895# - add first parameter to <SwBorderAttrs::CalcRight(..)>
+ SwTwips nLR = pAttrs->CalcLeft( this ) + pAttrs->CalcRight( this );
aPrt.Left(pAttrs->CalcLeft(this));
@@ -266,7 +267,8 @@ void SwHeadFootFrm::FormatPrt(SwTwips & nUL, const SwBorderAttrs * pAttrs)
//Sizes einstellen; die Groesse gibt der umgebende Frm vor, die
//die Raender werden einfach abgezogen.
- SwTwips nLR = pAttrs->CalcLeft(this) + pAttrs->CalcRight();
+ // OD 23.01.2003 #106895# - add first parameter to <SwBorderAttrs::CalcRight(..)>
+ SwTwips nLR = pAttrs->CalcLeft( this ) + pAttrs->CalcRight( this );
aPrt.Width ( aFrm.Width() - nLR );
aPrt.Height( aFrm.Height()- nUL );
@@ -313,6 +315,7 @@ void SwHeadFootFrm::FormatSize(SwTwips nUL, const SwBorderAttrs * pAttrs)
}
nRemaining = 0;
pFrm = Lower();
+
while ( pFrm )
{
nRemaining += pFrm->Frm().Height();
@@ -372,6 +375,18 @@ void SwHeadFootFrm::FormatSize(SwTwips nUL, const SwBorderAttrs * pAttrs)
pTmpFrm->Prepare(PREP_ADJUST_FRM);
}
}
+ /* #i3568# Undersized sections need to be
+ invalidated too. */
+ else if (pFrm->IsSctFrm())
+ {
+ SwSectionFrm * pTmpFrm =
+ (SwSectionFrm*) pFrm;
+ if (pTmpFrm->IsUndersized() )
+ {
+ pTmpFrm->InvalidateSize();
+ pTmpFrm->Prepare(PREP_ADJUST_FRM);
+ }
+ }
pFrm = pFrm->GetNext();
}
}
diff --git a/sw/source/core/layout/layact.cxx b/sw/source/core/layout/layact.cxx
index 125e76073ccd..2d52c361df48 100644
--- a/sw/source/core/layout/layact.cxx
+++ b/sw/source/core/layout/layact.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: layact.cxx,v $
*
- * $Revision: 1.23 $
+ * $Revision: 1.24 $
*
- * last change: $Author: od $ $Date: 2002-11-15 10:46:47 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:40:28 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -1536,13 +1536,21 @@ BOOL SwLayAction::FormatLayout( SwLayoutFrm *pLay, BOOL bAddRect )
if ( !bNoPaint && IsPaint() && bAddRect && (pLay->IsCompletePaint() || bChanged) )
{
SwRect aPaint( pLay->Frm() );
- // OD 11.11.2002 #104414# - not necessary to enlarge paint area
- /*
- aPaint.Pos().Y() -= 1;
- aPaint.Pos().X() -= 1;
- aPaint.SSize().Height() += 2;
- aPaint.SSize().Width() += 2;
- */
+ // OD 13.02.2003 #i9719#, #105645# - consider border and shadow for
+ // page frames -> enlarge paint rectangle correspondingly.
+ if ( pLay->IsPageFrm() )
+ {
+ SwPageFrm* pPageFrm = static_cast<SwPageFrm*>(pLay);
+ const nBorderWidth =
+ pImp->GetShell()->GetOut()->PixelToLogic( Size( pPageFrm->BorderPxWidth(), 0 ) ).Width();
+ const nShadowWidth =
+ pImp->GetShell()->GetOut()->PixelToLogic( Size( pPageFrm->ShadowPxWidth(), 0 ) ).Width();
+ aPaint.Left( aPaint.Left() - nBorderWidth );
+ aPaint.Top( aPaint.Top() - nBorderWidth );
+ aPaint.Right( aPaint.Right() + nBorderWidth + nShadowWidth );
+ aPaint.Bottom( aPaint.Bottom() + nBorderWidth + nShadowWidth );
+ }
+
if ( pLay->IsPageFrm() &&
pLay->GetFmt()->GetDoc()->IsBrowseMode() )
{
@@ -1567,22 +1575,6 @@ BOOL SwLayAction::FormatLayout( SwLayoutFrm *pLay, BOOL bAddRect )
pImp->GetShell()->AddPaintRect( aRegion[i] );
}
- //ggf. die Zwischenraeume mit invalidieren.
- if ( pLay->GetPrev() )
- {
- SwRect aTmp( aPaint );
- long nTmp = aTmp.Top() - DOCUMENTBORDER/2;
- if ( nTmp >= 0 )
- aTmp.Top( nTmp );
- aTmp.Bottom( pLay->Frm().Top() );
- pImp->GetShell()->AddPaintRect( aTmp );
- }
- if ( pLay->GetNext() )
- {
- aPaint.Bottom( aPaint.Bottom() + DOCUMENTBORDER/2 );
- aPaint.Top( pLay->Frm().Bottom() );
- pImp->GetShell()->AddPaintRect( aPaint );
- }
}
else
{
@@ -1591,6 +1583,29 @@ BOOL SwLayAction::FormatLayout( SwLayoutFrm *pLay, BOOL bAddRect )
// OD 11.11.2002 #104414# - remember frame at complete paint
aFrmAtCompletePaint = pLay->Frm();
}
+
+ // OD 13.02.2003 #i9719#, #105645# - provide paint of spacing
+ // between pages (not only for in online mode).
+ if ( pLay->IsPageFrm() )
+ {
+ if ( pLay->GetPrev() )
+ {
+ SwRect aSpaceToPrevPage( pLay->Frm() );
+ SwTwips nTop = aSpaceToPrevPage.Top() - DOCUMENTBORDER/2;
+ if ( nTop >= 0 )
+ aSpaceToPrevPage.Top( nTop );
+ aSpaceToPrevPage.Bottom( pLay->Frm().Top() );
+ pImp->GetShell()->AddPaintRect( aSpaceToPrevPage );
+ }
+ if ( pLay->GetNext() )
+ {
+ SwRect aSpaceToNextPage( pLay->Frm() );
+ aSpaceToNextPage.Bottom( aSpaceToNextPage.Bottom() + DOCUMENTBORDER/2 );
+ aSpaceToNextPage.Top( pLay->Frm().Bottom() );
+ pImp->GetShell()->AddPaintRect( aSpaceToNextPage );
+ }
+ }
+
}
pLay->ResetCompletePaint();
}
diff --git a/sw/source/core/layout/pagechg.cxx b/sw/source/core/layout/pagechg.cxx
index 3fd57b8fbbf1..1fc5e788d781 100644
--- a/sw/source/core/layout/pagechg.cxx
+++ b/sw/source/core/layout/pagechg.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: pagechg.cxx,v $
*
- * $Revision: 1.24 $
+ * $Revision: 1.25 $
*
- * last change: $Author: od $ $Date: 2002-11-01 11:10:54 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:40:28 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -341,6 +341,11 @@ SwPageFrm::~SwPageFrm()
pImp->SetFirstVisPageInvalid();
if ( pImp->IsAction() )
pImp->GetLayAction().SetAgain();
+ // OD 12.02.2003 #i9719#, #105645# - retouche area of page
+ // including border and shadow area.
+ SwRect aRetoucheRect;
+ GetBorderAndShadowBoundRect( Frm(), pSh, aRetoucheRect );
+ pSh->AddPaintRect( aRetoucheRect );
}
}
}
@@ -636,7 +641,7 @@ void SwPageFrm::_UpdateAttr( SfxPoolItem *pOld, SfxPoolItem *pNew,
/* kein break hier */
case RES_FRM_SIZE:
{
- const SwRect aOldRect( Frm() );
+ const SwRect aOldPageFrmRect( Frm() );
if ( GetFmt()->GetDoc()->IsBrowseMode() )
{
bValidSize = FALSE;
@@ -659,14 +664,20 @@ void SwPageFrm::_UpdateAttr( SfxPoolItem *pOld, SfxPoolItem *pNew,
Frm().Height( Max( rSz.GetHeight(), long(MINLAY) ) );
Frm().Width ( Max( rSz.GetWidth(), long(MINLAY) ) );
- AdjustRootSize( CHG_CHGPAGE, &aOldRect );
+ AdjustRootSize( CHG_CHGPAGE, &aOldPageFrmRect );
}
//Window aufraeumen.
ViewShell *pSh;
- if ( 0 != (pSh = GetShell()) && pSh->GetWin() && aOldRect.HasArea() )
- pSh->InvalidateWindows( aOldRect );
+ if ( 0 != (pSh = GetShell()) && pSh->GetWin() && aOldPageFrmRect.HasArea() )
+ {
+ // OD 12.02.2003 #i9719#, #105645# - consider border and shadow of
+ // page frame for determine 'old' rectangle - it's used for invalidating.
+ SwRect aOldRectWithBorderAndShadow;
+ GetBorderAndShadowBoundRect( aOldPageFrmRect, pSh, aOldRectWithBorderAndShadow );
+ pSh->InvalidateWindows( aOldRectWithBorderAndShadow );
+ }
rInvFlags |= 0x03;
- if ( aOldRect.Height() != Frm().Height() )
+ if ( aOldPageFrmRect.Height() != Frm().Height() )
rInvFlags |= 0x04;
}
break;
@@ -1886,7 +1897,8 @@ void SwRootFrm::ImplCalcBrowseWidth()
switch ( rHori.GetHoriOrient() )
{
case HORI_NONE:
- nWidth += rAttrs.CalcLeft( pFrm ) + rAttrs.CalcRight();
+ // OD 23.01.2003 #106895# - add 1st param to <SwBorderAttrs::CalcRight(..)>
+ nWidth += rAttrs.CalcLeft( pFrm ) + rAttrs.CalcRight( pFrm );
break;
case HORI_LEFT_AND_WIDTH:
nWidth += rAttrs.CalcLeft( pFrm );
diff --git a/sw/source/core/layout/paintfrm.cxx b/sw/source/core/layout/paintfrm.cxx
index ed0cae1bf92f..d8d2ba18fddc 100644
--- a/sw/source/core/layout/paintfrm.cxx
+++ b/sw/source/core/layout/paintfrm.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: paintfrm.cxx,v $
*
- * $Revision: 1.56 $
+ * $Revision: 1.57 $
*
- * last change: $Author: od $ $Date: 2002-12-10 14:24:00 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:40:29 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -209,6 +209,14 @@
#ifndef _ACCESSIBILITYOPTIONS_HXX
#include <accessibilityoptions.hxx>
#endif
+// OD 20.12.2002 #94627#
+#ifndef _DOCSH_HXX
+#include <docsh.hxx>
+#endif
+// OD 28.02.2003 #b4779636#, #107692#
+#ifndef _SWTABLE_HXX
+#include <swtable.hxx>
+#endif
#define GETOBJSHELL() ((SfxObjectShell*)rSh.GetDoc()->GetDocShell())
@@ -298,12 +306,6 @@ public:
static ViewShell *pGlobalShell = 0;
-/// OD 05.09.2002 #102912# - <bPageOnly> no longer needed
-/*
-//Fuer PaintBackground, eigentlich lokal, aber fuer SwSavePaintStatics jetzt global
-static FASTBOOL bPageOnly = FALSE;
-*/
-
//Wenn durchsichtige FlyInCnts im PaintBackground gepainted werden so soll der
//Hintergrund nicht mehr retouchiert werden.
//static FASTBOOL bLockFlyBackground = FALSE;
@@ -411,13 +413,10 @@ public:
};
SwSavePaintStatics::SwSavePaintStatics() :
-// bSLockFlyBackground ( bLockFlyBackground),
bSFlyMetafile ( bFlyMetafile ),
bSPixelHeightOdd ( bPixelHeightOdd ),
bSPixelWidthOdd ( bPixelWidthOdd ),
bSOneBeepOnly ( bOneBeepOnly ),
-/// OD 05.09.2002 #102912# - <bPageOnly> no longer needed
-// bSPageOnly ( bPageOnly ),
pSGlobalShell ( pGlobalShell ),
pSFlyMetafileOut ( pFlyMetafileOut ),
pSRetoucheFly ( pRetoucheFly ),
@@ -436,8 +435,7 @@ SwSavePaintStatics::SwSavePaintStatics() :
aSScaleX ( aScaleX ),
aSScaleY ( aScaleY )
{
- /// OD 05.09.2002 #102912# - <bPageOnly> no longer needed
- /*bPageOnly = *//*bLockFlyBackground = */bFlyMetafile = FALSE;
+ bFlyMetafile = FALSE;
pFlyMetafileOut = 0;
pRetoucheFly = 0;
pRetoucheFly2 = 0;
@@ -455,14 +453,11 @@ SwSavePaintStatics::SwSavePaintStatics() :
SwSavePaintStatics::~SwSavePaintStatics()
{
-// bLockFlyBackground = bSLockFlyBackground;
pGlobalShell = pSGlobalShell;
bFlyMetafile = bSFlyMetafile;
bPixelHeightOdd = bSPixelHeightOdd;
bPixelWidthOdd = bSPixelWidthOdd;
bOneBeepOnly = bSOneBeepOnly;
-/// OD 05.09.2002 #102912# - <bPageOnly> no longer needed
-// bPageOnly = bSPageOnly;
pFlyMetafileOut = pSFlyMetafileOut;
pRetoucheFly = pSRetoucheFly;
pRetoucheFly2 = pSRetoucheFly2;
@@ -742,7 +737,10 @@ void SwSubsRects::RemoveSuperfluousSubsidiaryLines( const SwLineRects &rRects )
// an <insert> may destroy the object due to a necessary array resize.
const SwLineRect aSubsLineRect = SwLineRect( operator[](i) );
- if ( aSubsLineRect.IsPainted() )
+ // OD 19.12.2002 #106318# - add condition <aSubsLineRect.IsLocked()>
+ // in order to consider only border lines, which are *not* locked.
+ if ( aSubsLineRect.IsPainted() ||
+ aSubsLineRect.IsLocked() )
continue;
const bool bVerticalSubs = aSubsLineRect.Height() > aSubsLineRect.Width();
@@ -761,6 +759,12 @@ void SwSubsRects::RemoveSuperfluousSubsidiaryLines( const SwLineRects &rRects )
{
SwLineRect &rLine = rRects[k];
+ // OD 20.12.2002 #106318# - do *not* consider painted or locked
+ // border lines.
+ // OD 20.01.2003 #i1837# - locked border lines have to be considered.
+ if ( rLine.IsLocked () )
+ continue;
+
if ( !bVerticalSubs == rLine.Height() > rLine.Width() ) //gleiche Ausrichtung?
continue;
@@ -996,10 +1000,24 @@ void SwSubsRects::PaintSubsidiary( OutputDevice *pOut,
{
pOut->Push( PUSH_FILLCOLOR );
+ // OD 14.01.2003 #106660# - reset draw mode in high contrast
+ // mode in order to get fill color set at output device.
+ // Recover draw mode after draw of lines.
+ // Necessary for the subsidiary lines painted by the fly frames.
+ ULONG nOldDrawMode = pOut->GetDrawMode();
+ if( pGlobalShell->GetWin() &&
+ Application::GetSettings().GetStyleSettings().GetHighContrastMode() )
+ {
+ pOut->SetDrawMode( 0 );
+ }
+
for ( USHORT i = 0; i < Count(); ++i )
{
SwLineRect &rLRect = operator[](i);
- if ( !rLRect.IsPainted() )
+ // OD 19.12.2002 #106318# - add condition <!rLRect.IsLocked()>
+ // to prevent paint of locked subsidiary lines.
+ if ( !rLRect.IsPainted() &&
+ !rLRect.IsLocked() )
{
const Color *pCol;
switch ( rLRect.GetSubColor() )
@@ -1010,12 +1028,18 @@ void SwSubsRects::PaintSubsidiary( OutputDevice *pOut,
case SUBCOL_SECT: pCol = &SwViewOption::GetSectionBoundColor(); break;
case SUBCOL_BREAK: pCol = &SwViewOption::GetPageBreakColor(); break;
}
+
if ( pOut->GetFillColor() != *pCol )
pOut->SetFillColor( *pCol );
pOut->DrawRect( rLRect.SVRect() );
+
rLRect.SetPainted();
}
}
+
+ // OD 14.01.2003 #106660# - recovering draw mode
+ pOut->SetDrawMode( nOldDrawMode );
+
pOut->Pop();
}
}
@@ -1024,6 +1048,7 @@ void SwSubsRects::PaintSubsidiary( OutputDevice *pOut,
//-------------------------------------------------------------------------
//Diverse Functions die in diesem File so verwendet werden.
+// OD 20.02.2003 - Note: function <SwAlignRect(..)> also used outside this file.
void MA_FASTCALL SwAlignRect( SwRect &rRect, ViewShell *pSh )
{
if( !rRect.HasArea() )
@@ -1158,7 +1183,15 @@ void MA_FASTCALL lcl_CalcBorderRect( SwRect &rRect, const SwFrm *pFrm,
const SwBorderAttrs &rAttrs,
const BOOL bShadow )
{
- if( pFrm->IsSctFrm() )
+ // OD 23.01.2003 #106386# - special handling for cell frames.
+ // The printing area of a cell frame is completely enclosed in the frame area
+ // and a cell frame has no shadow. Thus, for cell frames the calculated
+ // area equals the frame area.
+ // Notes: Borders of cell frames in R2L text direction will switch its side
+ // - left border is painted on the right; right border on the left.
+ // See <lcl_PaintLeftLine> and <lcl_PaintRightLine>.
+ if( pFrm->IsSctFrm() ||
+ pFrm->IsCellFrm() )
rRect = pFrm->Frm();
else
{
@@ -1176,7 +1209,9 @@ void MA_FASTCALL lcl_CalcBorderRect( SwRect &rRect, const SwFrm *pFrm,
SwTwips nDiff = rBox.GetTop() ?
rBox.CalcLineSpace( BOX_LINE_TOP ) :
( rAttrs.IsBorderDist() ?
- rBox.GetDistance( BOX_LINE_TOP ) + 1 : 0 );
+ // OD 23.01.2003 #106386# - increase of distance by
+ // one twip is incorrect.
+ rBox.GetDistance( BOX_LINE_TOP ) : 0 );
if( nDiff )
(rRect.*fnRect->fnSubTop)( nDiff );
}
@@ -1187,20 +1222,24 @@ void MA_FASTCALL lcl_CalcBorderRect( SwRect &rRect, const SwFrm *pFrm,
SwTwips nDiff = rBox.GetBottom() ?
rBox.CalcLineSpace( BOX_LINE_BOTTOM ) :
( rAttrs.IsBorderDist() ?
- rBox.GetDistance( BOX_LINE_BOTTOM ) + 1 : 0 );
+ // OD 23.01.2003 #106386# - increase of distance by
+ // one twip is incorrect.
+ rBox.GetDistance( BOX_LINE_BOTTOM ) : 0 );
if( nDiff )
(rRect.*fnRect->fnAddBottom)( nDiff );
}
if ( rBox.GetLeft() )
- (rRect.*fnRect->fnSubLeft)( rBox.CalcLineSpace(BOX_LINE_LEFT) );
+ (rRect.*fnRect->fnSubLeft)( rBox.CalcLineSpace( BOX_LINE_LEFT ) );
else if ( rAttrs.IsBorderDist() )
- (rRect.*fnRect->fnSubLeft)(rBox.GetDistance( BOX_LINE_LEFT )+1);
+ // OD 23.01.2003 #106386# - increase of distance by one twip is incorrect.
+ (rRect.*fnRect->fnSubLeft)( rBox.GetDistance( BOX_LINE_LEFT ) );
if ( rBox.GetRight() )
- (rRect.*fnRect->fnAddRight)(rBox.CalcLineSpace(BOX_LINE_RIGHT));
+ (rRect.*fnRect->fnAddRight)( rBox.CalcLineSpace( BOX_LINE_RIGHT ) );
else if ( rAttrs.IsBorderDist() )
- (rRect.*fnRect->fnAddRight)(rBox.GetDistance(BOX_LINE_RIGHT)+1);
+ // OD 23.01.2003 #106386# - increase of distance by one twip is incorrect.
+ (rRect.*fnRect->fnAddRight)( rBox.GetDistance( BOX_LINE_RIGHT ) );
if ( bShadow && rAttrs.GetShadow().GetLocation() != SVX_SHADOW_NONE )
{
@@ -1407,32 +1446,6 @@ inline FASTBOOL IsShortCut( const SwRect &rRect, const SwRect &rFrmRect )
(rFrmRect.Left() > rRect.Right()) );
}
-
-void lcl_PaintShadow( const SwRect& aFrm, ViewShell* pSh )
-{
- const Color& rColor = SwViewOption::GetFontColor();
- Color aFill( pSh->GetOut()->GetFillColor() );
- Color aLine( pSh->GetOut()->GetLineColor() );
- pSh->GetOut()->SetFillColor( Color( COL_TRANSPARENT ) );
- pSh->GetOut()->SetLineColor( rColor );
- Rectangle aPageRect( aFrm.SVRect() );
- pSh->GetOut()->DrawRect( aPageRect );
- aPageRect = pSh->GetOut()->LogicToPixel( aPageRect );
- Rectangle aShadow( aPageRect.Left()+2, aPageRect.Bottom()+1,
- aPageRect.Right()+2, aPageRect.Bottom()+2 );
- pSh->GetOut()->SetFillColor( rColor );
- aShadow = pSh->GetOut()->PixelToLogic( aShadow );
- pSh->GetOut()->DrawRect( aShadow );
- aShadow.Left() = aPageRect.Right() + 1;
- aShadow.Right() = aShadow.Left() + 1;
- aShadow.Top() = aPageRect.Top() + 2;
- aShadow.Bottom() = aPageRect.Bottom();
- aShadow = pSh->GetOut()->PixelToLogic( aShadow );
- pSh->GetOut()->DrawRect( aShadow );
- pSh->GetOut()->SetFillColor( aFill );
- pSh->GetOut()->SetLineColor( aLine );
-}
-
//---------------- Ausgabe fuer das BrushItem ----------------
/** lcl_DrawGraphicBackgrd - local help method to draw a background for a graphic
@@ -2122,8 +2135,17 @@ void SwRootFrm::Paint( const SwRect& rRect ) const
}
pPage->Paint( aPaintRect );
- if( pSh->GetWin() )
- lcl_PaintShadow( pPage->Frm(), pSh );
+
+ // OD 20.12.2002 #94627# - no paint of page border and shadow, if
+ // writer is in place mode.
+ if( pSh->GetWin() &&
+ !pSh->GetDoc()->GetDocShell()->GetProtocol().IsInPlaceActive() )
+ {
+ // OD 12.02.2003 #i9719#, #105645# - use new method
+ // <SwPageFrm::PaintBorderAndShadow(..)>.
+ pPage->PaintBorderAndShadow( pPage->Frm(), pSh );
+ }
+
pLines->PaintLines( pSh->GetOut() );
BOOL bControlExtra = FALSE;
@@ -2311,7 +2333,7 @@ void SwLayoutFrm::Paint( const SwRect& rRect ) const
if ( pFrm->IsRetoucheFrm() && bWin && !pFrm->GetNext() )
{ if ( !pPage )
pPage = FindPageFrm();
- pFrm->Retouche( pPage, rRect );
+ pFrm->Retouche( pPage, rRect );
}
pFrm->ResetRetouche();
}
@@ -2579,10 +2601,10 @@ void SwFlyFrm::Paint( const SwRect& rRect ) const
SwRect aRect( rRect );
aRect._Intersection( Frm() );
- OutputDevice *pOut = pGlobalShell->GetOut();
+ OutputDevice* pOut = pGlobalShell->GetOut();
pOut->Push( PUSH_CLIPREGION );
pOut->SetClipRegion();
- const SwPageFrm *pPage = FindPageFrm();
+ const SwPageFrm* pPage = FindPageFrm();
const SwNoTxtFrm *pNoTxt = Lower() && Lower()->IsNoTxtFrm()
? (SwNoTxtFrm*)Lower() : 0;
@@ -2640,31 +2662,14 @@ void SwFlyFrm::Paint( const SwRect& rRect ) const
SwBorderAttrAccess aAccess( SwFrm::GetCache(), (SwFrm*)this );
const SwBorderAttrs &rAttrs = *aAccess.Get();
-/* //Das Paint der FlyInCnt's wird vom Paint der Lines gerufen. Damit
- //der Rand (UL-/LRSpace) mit der richtigen Farbe retouchiert wird,
- //muss Das Paint an den Anker weitergereicht werden.
- FASTBOOL bUnlock = FALSE;
- if ( IsFlyInCntFrm() )
- {
- bLockFlyBackground = bUnlock = TRUE;
- SwBorderAttrAccess aAccess( SwFrm::GetCache(), GetAnchor());
- const SwBorderAttrs &rAttrs = *aAccess.Get();
- GetAnchor()->PaintBackground( aRect, pPage, rAttrs, FALSE );
- }
-*/
-
- /// OD 06.08.2002 #99657# - paint border before painting background
- /// paint border
+ // OD 06.08.2002 #99657# - paint border before painting background
+ // paint border
{
SwRect aTmp( rRect );
-//?? aTmp._Intersection( Frm() );
PaintBorder( aTmp, pPage, rAttrs );
-/* if ( bUnlock )
- bLockFlyBackground = FALSE;
-*/
}
- /// paint background
+ // paint background
{
SwRegionRects aRegion( aRect );
if ( pNoTxt && !bIsGraphicTransparent )
@@ -2694,11 +2699,65 @@ void SwFlyFrm::Paint( const SwRect& rRect ) const
}
}
+ // OD 19.12.2002 #106318# - fly frame will paint it's subsidiary lines and
+ // the subsidiary lines of its lowers on its own, due to overlapping with
+ // other fly frames or other objects.
+ if( pGlobalShell->GetWin() )
+ {
+ bool bSubsLineRectsCreated;
+ if ( pSubsLines )
+ {
+ // Lock already existing subsidiary lines
+ pSubsLines->LockLines( TRUE );
+ bSubsLineRectsCreated = false;
+ }
+ else
+ {
+ // create new subsidiardy lines
+ pSubsLines = new SwSubsRects;
+ bSubsLineRectsCreated = true;
+ }
+
+ bool bSpecSubsLineRectsCreated;
+ if ( pSpecSubsLines )
+ {
+ // Lock already existing special subsidiary lines
+ pSpecSubsLines->LockLines( TRUE );
+ bSpecSubsLineRectsCreated = false;
+ }
+ else
+ {
+ // create new special subsidiardy lines
+ pSpecSubsLines = new SwSubsRects;
+ bSpecSubsLineRectsCreated = true;
+ }
+ // Add subsidiary lines of fly frame and its lowers
+ RefreshLaySubsidiary( pPage, aRect );
+ // paint subsidiary lines of fly frame and its lowers
+ pSpecSubsLines->PaintSubsidiary( pOut, NULL );
+ pSubsLines->PaintSubsidiary( pOut, pLines );
+ if ( !bSubsLineRectsCreated )
+ // unlock subsidiary lines
+ pSubsLines->LockLines( FALSE );
+ else
+ // delete created subsidiary lines container
+ DELETEZ( pSubsLines );
+
+ if ( !bSpecSubsLineRectsCreated )
+ // unlock special subsidiary lines
+ pSpecSubsLines->LockLines( FALSE );
+ else
+ // delete created special subsidiary lines container
+ DELETEZ( pSpecSubsLines );
+ }
+
SwLayoutFrm::Paint( aRect );
Validate();
- pLines->LockLines( FALSE );
+ // OD 19.12.2002 #106318# - first paint lines added by fly frame paint
+ // and then unlock other lines.
pLines->PaintLines( pOut );
+ pLines->LockLines( FALSE );
pOut->Pop();
@@ -2716,12 +2775,20 @@ void SwFlyFrm::Paint( const SwRect& rRect ) const
void SwTabFrm::Paint( const SwRect& rRect ) const
{
- if( pGlobalShell->GetViewOptions()->IsTable() )
+ if ( pGlobalShell->GetViewOptions()->IsTable() )
+ {
SwLayoutFrm::Paint( rRect );
- else if( pGlobalShell->GetWin() )
+ }
+ // OD 10.01.2003 #i6467# - no light grey rectangle for page preview
+ else if ( pGlobalShell->GetWin() && !pGlobalShell->IsPreView() )
{
+ // OD 10.01.2003 #i6467# - intersect output rectangle with table frame
+ SwRect aTabRect( Prt() );
+ aTabRect.Pos() += Frm().Pos();
+ SwRect aTabOutRect( rRect );
+ aTabOutRect.Intersection( aTabRect );
pGlobalShell->GetViewOptions()->
- DrawRect( pGlobalShell->GetOut(), rRect, COL_LIGHTGRAY );
+ DrawRect( pGlobalShell->GetOut(), aTabOutRect, COL_LIGHTGRAY );
}
((SwTabFrm*)this)->ResetComplete();
}
@@ -2922,12 +2989,12 @@ void SwFrm::PaintShadow( const SwRect& rRect, SwRect& rOutRect,
{
SwRect &rOut = aRegion[i];
aOut = rOut;
- /// OD 30.09.2002 #103636# - no SwAlign of shadow rectangle
- /// no alignment necessary, because (1) <rRect> is already aligned
- /// and because (2) paint of border and background will occur later.
- /// Thus, (1) assures that no conflicts with neighbour object will occure
- /// and (2) assures that border and background is not affected by the
- /// shadow paint.
+ // OD 30.09.2002 #103636# - no SwAlign of shadow rectangle
+ // no alignment necessary, because (1) <rRect> is already aligned
+ // and because (2) paint of border and background will occur later.
+ // Thus, (1) assures that no conflicts with neighbour object will occure
+ // and (2) assures that border and background is not affected by the
+ // shadow paint.
/*
::SwAlignRect( aOut, pGlobalShell );
*/
@@ -3163,6 +3230,144 @@ void MA_FASTCALL lcl_PaintBottomLine( const SwFrm *pFrm, const SwPageFrm *pPage,
|*
|*************************************************************************/
+/** local method to determine cell frame, from which the border attributes
+ for paint of top/bottom border has to be used.
+
+ OD 21.02.2003 #b4779636#, #107692#
+
+ @author OD
+
+
+ @param _pCellFrm
+ input parameter - constant pointer to cell frame for which the cell frame
+ for the border attributes has to be determined.
+
+ @param _rCellBorderAttrs
+ input parameter - constant reference to the border attributes of cell frame
+ <_pCellFrm>.
+
+ @param _bTop
+ input parameter - boolean, that controls, if cell frame for top border or
+ for bottom border has to be determined.
+
+ @return constant pointer to cell frame, for which the border attributes has
+ to be used
+*/
+const SwFrm* lcl_GetCellFrmForBorderAttrs( const SwFrm* _pCellFrm,
+ const SwBorderAttrs& _rCellBorderAttrs,
+ const bool _bTop )
+{
+ // determine, if cell frame is at bottom/top border of a table frame and
+ // the table frame has/is a follow.
+ const SwFrm* pTmpFrm = _pCellFrm;
+ bool bCellAtBorder = true;
+ while( !pTmpFrm->IsRowFrm() || !pTmpFrm->GetUpper()->IsTabFrm() )
+ {
+ pTmpFrm = pTmpFrm->GetUpper();
+ if ( pTmpFrm->IsRowFrm() &&
+ (_bTop ? pTmpFrm->GetPrev() : pTmpFrm->GetNext())
+ )
+ {
+ bCellAtBorder = false;
+ }
+ }
+ ASSERT( pTmpFrm && pTmpFrm->IsRowFrm(), "No RowFrm available" );
+
+ const SwLayoutFrm* pParentRowFrm = static_cast<const SwLayoutFrm*>(pTmpFrm);
+ const SwTabFrm* pParentTabFrm =
+ static_cast<const SwTabFrm*>(pParentRowFrm->GetUpper());
+
+ const bool bCellNeedsAttribute = bCellAtBorder &&
+ ( _bTop ?
+ // bCellInFirstRowWithMaster
+ ( !pParentRowFrm->GetPrev() &&
+ pParentTabFrm->IsFollow() &&
+ !pParentTabFrm->GetTable()->IsHeadlineRepeat() ) :
+ // bCellInLastRowWithFollow
+ ( !pParentRowFrm->GetNext() &&
+ pParentTabFrm->GetFollow() )
+ );
+
+ const SwFrm* pRet = _pCellFrm;
+ if ( bCellNeedsAttribute )
+ {
+ // determine, if cell frame has no borders inside the table.
+ const SvxBoxItem aBorderBox = _rCellBorderAttrs.GetBox();
+ const bool bNoBordersInside =
+ ( !aBorderBox.GetTop() || !pParentRowFrm->GetPrev() ) &&
+ ( !aBorderBox.GetLeft() || !_pCellFrm->GetPrev() ) &&
+ ( !aBorderBox.GetRight() || !_pCellFrm->GetNext() ) &&
+ ( !aBorderBox.GetBottom() || !pParentRowFrm->GetNext() );
+
+ if ( bNoBordersInside )
+ {
+ if ( _bTop && !_rCellBorderAttrs.GetBox().GetTop() )
+ {
+ // #b4779636#-hack:
+ // Cell frame has no top border and no border inside the table, but
+ // it is at the top border of a table frame, which is a follow.
+ // Thus, use border attributes of cell frame in first row of complete table.
+ // First, determine first table frame of complete table.
+ SwTabFrm* pMasterTabFrm = const_cast<SwTabFrm*>(pParentTabFrm->FindMaster());
+ while ( pMasterTabFrm->IsFollow() )
+ {
+ pMasterTabFrm = pMasterTabFrm->FindMaster();
+ }
+ // determine first row of complete table.
+ const SwFrm* pFirstRow = pMasterTabFrm->GetLower();
+ // return first cell in first row
+ SwFrm* pTmpFrm = const_cast<SwFrm*>(pFirstRow->GetLower());
+ while ( !pTmpFrm->IsCellFrm() ||
+ ( pTmpFrm->GetLower() && pTmpFrm->GetLower()->IsLayoutFrm() )
+ )
+ {
+ pTmpFrm = pTmpFrm->GetLower();
+ }
+ ASSERT( pTmpFrm && pTmpFrm->IsCellFrm(), "No CellFrm available" );
+ pRet = pTmpFrm;
+ }
+ else if ( !_bTop && !_rCellBorderAttrs.GetBox().GetBottom() )
+ {
+ // #b4779636#-hack:
+ // Cell frame has no bottom border and no border inside the table,
+ // but it is at the bottom border of a table frame, which has a follow.
+ // Thus, use border attributes of cell frame in last row of complete table.
+ // First, determine last table frame of complete table.
+ SwTabFrm* pLastTabFrm = const_cast<SwTabFrm*>(pParentTabFrm->GetFollow());
+ while ( pLastTabFrm->GetFollow() )
+ {
+ pLastTabFrm = pLastTabFrm->GetFollow();
+ }
+ // determine last row of complete table.
+ SwFrm* pLastRow = pLastTabFrm->GetLower();
+ while ( pLastRow->GetNext() )
+ {
+ pLastRow = pLastRow->GetNext();
+ }
+ // return first bottom border cell in last row
+ SwFrm* pTmpFrm = const_cast<SwFrm*>(pLastRow->GetLower());
+ while ( !pTmpFrm->IsCellFrm() ||
+ ( pTmpFrm->GetLower() && pTmpFrm->GetLower()->IsLayoutFrm() )
+ )
+ {
+ if ( pTmpFrm->IsRowFrm() )
+ {
+ while ( pTmpFrm->GetNext() )
+ {
+ pTmpFrm = pTmpFrm->GetNext();
+ }
+ }
+ pTmpFrm = pTmpFrm->GetLower();
+ }
+ ASSERT( pTmpFrm && pTmpFrm->IsCellFrm(), "No CellFrm available" );
+ pRet = pTmpFrm;
+ }
+ }
+ }
+
+ return pRet;
+}
+
void SwFrm::PaintBorder( const SwRect& rRect, const SwPageFrm *pPage,
const SwBorderAttrs &rAttrs ) const
{
@@ -3175,9 +3380,29 @@ void SwFrm::PaintBorder( const SwRect& rRect, const SwPageFrm *pPage,
!pGlobalShell->GetViewOptions()->IsTable() )
return;
- const FASTBOOL bLine = rAttrs.IsLine();
- const FASTBOOL bShadow = rAttrs.GetShadow().GetLocation() != SVX_SHADOW_NONE;
- if ( bLine || bShadow )
+ const bool bLine = rAttrs.IsLine() ? true : false;
+ const bool bShadow = rAttrs.GetShadow().GetLocation() != SVX_SHADOW_NONE;
+
+ // OD 24.02.2003 #b4779636#, #107692# - flag to control,
+ // if #b4779636#-hack has to be used.
+ const bool bb4779636HackActive = true;
+ // OD 21.02.2003 #b4779636#, #107692#
+ const SwFrm* pCellFrmForBottomBorderAttrs = 0;
+ const SwFrm* pCellFrmForTopBorderAttrs = 0;
+ bool bFoundCellForTopOrBorderAttrs = false;
+ if ( bb4779636HackActive && IsCellFrm() )
+ {
+ pCellFrmForBottomBorderAttrs = lcl_GetCellFrmForBorderAttrs( this, rAttrs, false );
+ if ( pCellFrmForBottomBorderAttrs != this )
+ bFoundCellForTopOrBorderAttrs = true;
+ pCellFrmForTopBorderAttrs = lcl_GetCellFrmForBorderAttrs( this, rAttrs, true );
+ if ( pCellFrmForTopBorderAttrs != this )
+ bFoundCellForTopOrBorderAttrs = true;
+ }
+
+ // OD 24.02.2003 #b4779636#, #107692# - add condition <bFoundCellForTopOrBorderAttrs>
+ // for #b4779636#-hack
+ if ( bLine || bShadow || bFoundCellForTopOrBorderAttrs )
{
//Wenn das Rechteck vollstandig innerhalb der PrtArea liegt,
//so braucht kein Rand gepainted werden.
@@ -3186,21 +3411,21 @@ void SwFrm::PaintBorder( const SwRect& rRect, const SwPageFrm *pPage,
SwRect aRect( Prt() );
aRect += Frm().Pos();
::SwAlignRect( aRect, pGlobalShell );
- /// OD 27.09.2002 #103636# - new local boolean variable in order to
- /// suspend border paint under special cases - see below.
- /// NOTE: This is a fix for the implementation of feature #99657#.
+ // OD 27.09.2002 #103636# - new local boolean variable in order to
+ // suspend border paint under special cases - see below.
+ // NOTE: This is a fix for the implementation of feature #99657#.
bool bDrawOnlyShadowForTransparentFrame = false;
if ( aRect.IsInside( rRect ) )
{
- /// OD 27.09.2002 #103636# - paint shadow, if background is transparent.
- /// Because of introduced transparent background for fly frame #99657#,
- /// the shadow have to be drawn if the background is transparent,
- /// in spite the fact that the paint rectangle <rRect> lies fully
- /// in the printing area.
- /// NOTE to chosen solution:
- /// On transparent background, continue processing, but suspend
- /// drawing of border by setting <bDrawOnlyShadowForTransparentFrame>
- /// to true.
+ // OD 27.09.2002 #103636# - paint shadow, if background is transparent.
+ // Because of introduced transparent background for fly frame #99657#,
+ // the shadow have to be drawn if the background is transparent,
+ // in spite the fact that the paint rectangle <rRect> lies fully
+ // in the printing area.
+ // NOTE to chosen solution:
+ // On transparent background, continue processing, but suspend
+ // drawing of border by setting <bDrawOnlyShadowForTransparentFrame>
+ // to true.
if ( IsLayoutFrm() &&
static_cast<const SwLayoutFrm*>(this)->GetFmt()->IsBackgroundTransparent() )
{
@@ -3219,17 +3444,50 @@ void SwFrm::PaintBorder( const SwRect& rRect, const SwPageFrm *pPage,
rAttrs.SetGetCacheLine( TRUE );
if ( bShadow )
PaintShadow( rRect, aRect, pPage, rAttrs );
- /// OD 27.09.2002 #103636# - suspend drawing of border
- /// add condition < NOT bDrawOnlyShadowForTransparentFrame > - see above
- if ( bLine && !bDrawOnlyShadowForTransparentFrame )
+ // OD 27.09.2002 #103636# - suspend drawing of border
+ // add condition < NOT bDrawOnlyShadowForTransparentFrame > - see above
+ // OD 24.02.2003 #b4779636#, #107692# - add condition <bFoundCellForTopOrBorderAttrs>
+ // for #b4779636#-hack.
+ if ( ( bLine || bFoundCellForTopOrBorderAttrs ) &&
+ !bDrawOnlyShadowForTransparentFrame )
{
SWRECTFN( this )
::lcl_PaintLeftLine ( this, pPage, aRect, rRect, rAttrs, fnRect );
::lcl_PaintRightLine ( this, pPage, aRect, rRect, rAttrs, fnRect );
if ( !IsCntntFrm() || rAttrs.GetTopLine( this ) )
- ::lcl_PaintTopLine( this, pPage, aRect, rRect, rAttrs, fnRect );
+ {
+ // OD 21.02.2003 #b4779636#, #107692# -
+ // #b4779636#-hack: If another cell frame for top border
+ // paint is found, paint its top border.
+ if ( IsCellFrm() && pCellFrmForTopBorderAttrs != this )
+ {
+ SwBorderAttrAccess aAccess( SwFrm::GetCache(),
+ pCellFrmForTopBorderAttrs );
+ const SwBorderAttrs &rTopAttrs = *aAccess.Get();
+ ::lcl_PaintTopLine( this, pPage, aRect, rRect, rTopAttrs, fnRect );
+ }
+ else
+ {
+ ::lcl_PaintTopLine( this, pPage, aRect, rRect, rAttrs, fnRect );
+ }
+ }
if ( !IsCntntFrm() || rAttrs.GetBottomLine( this ) )
- ::lcl_PaintBottomLine(this, pPage, aRect, rRect, rAttrs,fnRect);
+ {
+ // OD 21.02.2003 #b4779636#, #107692# -
+ // #b4779636#-hack: If another cell frame for bottom border
+ // paint is found, paint its bottom border.
+ if ( IsCellFrm() && pCellFrmForBottomBorderAttrs != this )
+ {
+ SwBorderAttrAccess aAccess( SwFrm::GetCache(),
+ pCellFrmForBottomBorderAttrs );
+ const SwBorderAttrs &rBottomAttrs = *aAccess.Get();
+ ::lcl_PaintBottomLine(this, pPage, aRect, rRect, rBottomAttrs, fnRect);
+ }
+ else
+ {
+ ::lcl_PaintBottomLine(this, pPage, aRect, rRect, rAttrs, fnRect);
+ }
+ }
}
rAttrs.SetGetCacheLine( FALSE );
}
@@ -3379,7 +3637,7 @@ void SwPageFrm::PaintGrid( OutputDevice* pOut, SwRect &rRect ) const
{
SwRect aGrid( pBody->Prt() );
aGrid += pBody->Frm().Pos();
- // ::SwAlignRect( aGrid, pGlobalShell );
+
SwRect aInter( aGrid );
aInter.Intersection( rRect );
if( aInter.HasArea() )
@@ -3712,6 +3970,149 @@ void SwPageFrm::PaintMarginArea( const SwRect& _rOutputRect,
}
}
+// ----------------------------------------------------------------------
+//
+// const SwPageFrm::mnBorderPxWidth, const SwPageFrm::mnShadowPxWidth
+// SwPageFrm::GetBorderRect (..), SwPageFrm::GetRightShadowRect(..),
+// SwPageFrm::GetBottomShadowRect(..),
+// SwPageFrm::PaintBorderAndShadow(..),
+// SwPageFrm::GetBorderAndShadowBoundRect(..)
+//
+// OD 12.02.2003 for #i9719# and #105645#
+// ----------------------------------------------------------------------
+
+const sal_Int8 SwPageFrm::mnBorderPxWidth = 1;
+const sal_Int8 SwPageFrm::mnShadowPxWidth = 2;
+
+/** determine rectangle for page border
+
+ OD 12.02.2003 for #i9719# and #105645#
+
+ @author OD
+*/
+void SwPageFrm::GetBorderRect( const SwRect& _rPageRect,
+ ViewShell* _pViewShell,
+ SwRect& _orBorderRect ) const
+{
+ SwRect aAlignedPageRect( _rPageRect );
+ SwAlignRect( aAlignedPageRect, _pViewShell );
+ Rectangle aBorderPxRect =
+ _pViewShell->GetOut()->LogicToPixel( aAlignedPageRect.SVRect() );
+
+ aBorderPxRect.Left() = aBorderPxRect.Left() - mnBorderPxWidth;
+ aBorderPxRect.Top() = aBorderPxRect.Top() - mnBorderPxWidth;
+ aBorderPxRect.Right() = aBorderPxRect.Right() + mnBorderPxWidth;
+ aBorderPxRect.Bottom() = aBorderPxRect.Bottom() + mnBorderPxWidth;
+
+ _orBorderRect =
+ SwRect( _pViewShell->GetOut()->PixelToLogic( aBorderPxRect ) );
+}
+
+/** determine rectangle for right page shadow
+
+ OD 12.02.2003 for #i9719# and #105645#
+
+ @author OD
+*/
+void SwPageFrm::GetRightShadowRect( const SwRect& _rPageRect,
+ ViewShell* _pViewShell,
+ SwRect& _orRightShadowRect ) const
+{
+ SwRect aAlignedPageRect( _rPageRect );
+ SwAlignRect( aAlignedPageRect, _pViewShell );
+ Rectangle aPagePxRect =
+ _pViewShell->GetOut()->LogicToPixel( aAlignedPageRect.SVRect() );
+
+ Rectangle aRightShadowPxRect(
+ aPagePxRect.Right() + mnShadowPxWidth,
+ aPagePxRect.Top() + 1,
+ aPagePxRect.Right() + mnBorderPxWidth + mnShadowPxWidth,
+ aPagePxRect.Bottom() + mnBorderPxWidth + mnShadowPxWidth );
+
+ _orRightShadowRect =
+ SwRect( _pViewShell->GetOut()->PixelToLogic( aRightShadowPxRect ) );
+}
+
+/** determine rectangle for bottom page shadow
+
+ OD 12.02.2003 for #i9719# and #105645#
+
+ @author OD
+*/
+void SwPageFrm::GetBottomShadowRect( const SwRect& _rPageRect,
+ ViewShell* _pViewShell,
+ SwRect& _orBottomShadowRect ) const
+{
+ SwRect aAlignedPageRect( _rPageRect );
+ SwAlignRect( aAlignedPageRect, _pViewShell );
+ Rectangle aPagePxRect =
+ _pViewShell->GetOut()->LogicToPixel( aAlignedPageRect.SVRect() );
+
+ Rectangle aBottomShadowPxRect(
+ aPagePxRect.Left() + 1,
+ aPagePxRect.Bottom() + mnShadowPxWidth,
+ aPagePxRect.Right() + mnBorderPxWidth + mnShadowPxWidth,
+ aPagePxRect.Bottom() + mnBorderPxWidth + mnShadowPxWidth );
+
+ _orBottomShadowRect =
+ SwRect( _pViewShell->GetOut()->PixelToLogic( aBottomShadowPxRect ) );
+}
+
+/** paint page border and shadow
+
+ OD 12.02.2003 for #i9719# and #105645#
+ implement paint of page border and shadow
+
+ @author OD
+*/
+void SwPageFrm::PaintBorderAndShadow( const SwRect& _rPageRect,
+ ViewShell* _pViewShell ) const
+{
+ // get color for page border and shadow paint
+ const Color& rColor = SwViewOption::GetFontColor();
+
+ // save current fill and line color of output device
+ Color aFill( _pViewShell->GetOut()->GetFillColor() );
+ Color aLine( _pViewShell->GetOut()->GetLineColor() );
+
+ // paint page border
+ _pViewShell->GetOut()->SetFillColor(); // OD 20.02.2003 #107369# - no fill color
+ _pViewShell->GetOut()->SetLineColor( rColor );
+ SwRect aPaintRect;
+ GetBorderRect( _rPageRect, _pViewShell, aPaintRect );
+ _pViewShell->GetOut()->DrawRect( aPaintRect.SVRect() );
+
+ // paint shadow
+ _pViewShell->GetOut()->SetFillColor( rColor );
+ GetRightShadowRect( _rPageRect, _pViewShell, aPaintRect );
+ _pViewShell->GetOut()->DrawRect( aPaintRect.SVRect() );
+ GetBottomShadowRect( _rPageRect, _pViewShell, aPaintRect );
+ _pViewShell->GetOut()->DrawRect( aPaintRect.SVRect() );
+
+ _pViewShell->GetOut()->SetFillColor( aFill );
+ _pViewShell->GetOut()->SetLineColor( aLine );
+
+}
+
+/** get bound rectangle of border and shadow for repaints
+
+ OD 12.02.2003 for #i9719# and #105645#
+
+ author OD
+*/
+void SwPageFrm::GetBorderAndShadowBoundRect(
+ const SwRect& _rPageRect,
+ ViewShell* _pViewShell,
+ SwRect& _orBorderAndShadowBoundRect ) const
+{
+ SwRect aTmpRect;
+ GetBorderRect( _rPageRect, _pViewShell, _orBorderAndShadowBoundRect );
+ GetRightShadowRect( _rPageRect, _pViewShell, aTmpRect );
+ _orBorderAndShadowBoundRect.Union( aTmpRect );
+ GetBottomShadowRect( _rPageRect, _pViewShell, aTmpRect );
+ _orBorderAndShadowBoundRect.Union( aTmpRect );
+}
+
/*************************************************************************
|*
|* SwFrm::PaintBaBo()
@@ -3788,6 +4189,14 @@ void SwFrm::PaintBackground( const SwRect &rRect, const SwPageFrm *pPage,
const BOOL bLowerMode,
const BOOL bLowerBorder ) const
{
+ // OD 20.01.2003 #i1837# - no paint of table background, if corresponding
+ // option is *not* set.
+ if( IsTabFrm() &&
+ !pGlobalShell->GetViewOptions()->IsTable() )
+ {
+ return;
+ }
+
ViewShell *pSh = pGlobalShell;
const FASTBOOL bWin = pSh->GetWin() ? TRUE : FALSE;
const SvxBrushItem* pItem;
@@ -3804,19 +4213,34 @@ void SwFrm::PaintBackground( const SwRect &rRect, const SwPageFrm *pPage,
bool bNoFlyBackground = !bFlyMetafile && !bBack && IsFlyFrm();
if ( bNoFlyBackground )
{
- /// OD 05.09.2002 #102912# - Fly frame has no background.
- /// Try to find background brush at parents, if previous call of
- /// <GetBackgroundBrush> disabled this option with the parameter <bLowerMode>
+ // OD 05.09.2002 #102912# - Fly frame has no background.
+ // Try to find background brush at parents, if previous call of
+ // <GetBackgroundBrush> disabled this option with the parameter <bLowerMode>
if ( bLowerMode )
{
bBack = GetBackgroundBrush( pItem, pCol, aOrigBackRect, false );
}
- /// If still no background found for the fly frame, initialize the
- /// background brush <pItem> with global retouche color and set <bBack>
- /// to TRUE, that fly frame will paint its background using this color.
+ // If still no background found for the fly frame, initialize the
+ // background brush <pItem> with global retouche color and set <bBack>
+ // to TRUE, that fly frame will paint its background using this color.
if ( !bBack )
{
- pTmpBackBrush = new SvxBrushItem( aGlobalRetoucheColor );
+ // OD 10.01.2003 #i6467# - on print output, pdf output and
+ // in embedded mode not editing color COL_WHITE is used instead of
+ // the global retouche color.
+ if ( pSh->GetOut()->GetOutDevType() == OUTDEV_PRINTER ||
+ pSh->GetViewOptions()->IsPDFExport() ||
+ ( pSh->GetDoc()->GetDocShell()->GetCreateMode() == SFX_CREATE_MODE_EMBEDDED &&
+ !pSh->GetDoc()->GetDocShell()->GetProtocol().IsInPlaceActive()
+ )
+ )
+ {
+ pTmpBackBrush = new SvxBrushItem( Color( COL_WHITE ) );
+ }
+ else
+ {
+ pTmpBackBrush = new SvxBrushItem( aGlobalRetoucheColor );
+ }
pItem = pTmpBackBrush;
bBack = true;
}
@@ -3950,7 +4374,9 @@ void SwPageFrm::RefreshSubsidiary( const SwRect &rRect ) const
if ( IS_SUBS || IS_SUBS_TABLE || IS_SUBS_SECTION || IS_SUBS_FLYS )
{
SwRect aRect( rRect );
- ::SwAlignRect( aRect, pGlobalShell );
+ // OD 18.02.2003 #104989# - Not necessary and incorrect alignment of
+ // the output rectangle.
+ //::SwAlignRect( aRect, pGlobalShell );
if ( aRect.HasArea() )
{
//Beim Paint ueber die Root wird das Array von dort gesteuert.
@@ -3959,30 +4385,20 @@ void SwPageFrm::RefreshSubsidiary( const SwRect &rRect ) const
if ( !pSubsLines )
{
pSubsLines = new SwSubsRects;
+ // OD 20.12.2002 #106318# - create container for special subsidiary lines
+ pSpecSubsLines = new SwSubsRects;
bDelSubs = TRUE;
}
RefreshLaySubsidiary( this, aRect );
- if ( GetSortedObjs() )
- {
- const SwSortDrawObjs &rObjs = *GetSortedObjs();
- for ( USHORT i = 0; i < rObjs.Count(); ++i )
- {
- SdrObject *pO = rObjs[i];
- if ( pO->IsWriterFlyFrame() )
- {
- const SwFlyFrm *pFly = ((SwVirtFlyDrawObj*)pO)->GetFlyFrm();
- if ( pFly->Frm().IsOver( aRect ) )
- {
- if ( !pFly->Lower() || !pFly->Lower()->IsNoTxtFrm() ||
- !((SwNoTxtFrm*)pFly->Lower())->HasAnimation())
- pFly->RefreshLaySubsidiary( this, aRect );
- }
- }
- }
- }
+
if ( bDelSubs )
{
+ // OD 20.12.2002 #106318# - paint special subsidiary lines
+ // and delete its container
+ pSpecSubsLines->PaintSubsidiary( pGlobalShell->GetOut(), NULL );
+ DELETEZ( pSpecSubsLines );
+
pSubsLines->PaintSubsidiary( pGlobalShell->GetOut(), pLines );
DELETEZ( pSubsLines );
}
@@ -4132,7 +4548,16 @@ void MA_FASTCALL lcl_RefreshLine( const SwLayoutFrm *pLay,
//Mir selbst weiche ich natuerlich nicht aus. Auch wenn ich
//_in_ dem Fly sitze weiche ich nicht aus.
if ( !pFly || (pFly == pLay || pFly->IsAnLower( pLay )) )
- { aIter.Next();
+ {
+ aIter.Next();
+ continue;
+ }
+
+ // OD 19.12.2002 #106318# - do *not* consider fly frames with
+ // a transparent background.
+ if ( pFly->IsBackgroundTransparent() )
+ {
+ aIter.Next();
continue;
}
@@ -4174,9 +4599,21 @@ void SwLayoutFrm::PaintSubsidiaryLines( const SwPageFrm *pPage,
const bool bCell = IsCellFrm() ? true : false;
// use frame area for cells
- SwRect aOriginal( bCell ? Frm() : Prt() );
- if ( !bCell )
+ // OD 13.02.2003 #i3662# - for section use also frame area
+ const bool bUseFrmArea = bCell || IsSctFrm();
+ SwRect aOriginal( bUseFrmArea ? Frm() : Prt() );
+ if ( !bUseFrmArea )
aOriginal.Pos() += Frm().Pos();
+ // OD 13.02.2003 #i3662# - enlarge top of column body frame's printing area
+ // in sections to top of section frame.
+ const bool bColBodyInSection = IsBodyFrm() &&
+ !IsPageBodyFrm() &&
+ GetUpper()->GetUpper()->IsSctFrm();
+ if ( bColBodyInSection )
+ {
+ aOriginal.Top( GetUpper()->GetUpper()->Frm().Top() );
+ }
+
::SwAlignRect( aOriginal, pGlobalShell );
if ( !aOriginal.IsOver( rRect ) )
@@ -4184,7 +4621,13 @@ void SwLayoutFrm::PaintSubsidiaryLines( const SwPageFrm *pPage,
SwRect aOut( aOriginal );
aOut._Intersection( rRect );
- aOut.Intersection( PaintArea() );
+ // OD 13.02.2003 #i3662# - do not intersect *enlarged* column body frame's
+ // printing area with the paint area of the body frame. Otherwise enlargement
+ // will get lost.
+ if ( !bColBodyInSection )
+ {
+ aOut.Intersection( PaintArea() );
+ }
const SwTwips nRight = aOut.Right();
const SwTwips nBottom= aOut.Bottom();
diff --git a/sw/source/core/layout/sectfrm.cxx b/sw/source/core/layout/sectfrm.cxx
index dfa982ed3942..d0ea64989fa7 100644
--- a/sw/source/core/layout/sectfrm.cxx
+++ b/sw/source/core/layout/sectfrm.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: sectfrm.cxx,v $
*
- * $Revision: 1.22 $
+ * $Revision: 1.23 $
*
- * last change: $Author: od $ $Date: 2002-11-15 11:00:24 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:40:29 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -1214,6 +1214,13 @@ void SwSectionFrm::Format( const SwBorderAttrs *pAttr )
//Inhalt selbst verantwortlich.
BOOL bMaximize = ToMaximize( FALSE );
+ // Column widths have to be adjusted before calling _CheckClipping.
+ // _CheckClipping can cause the formatting of the lower frames
+ // which still have a width of 0.
+ const sal_Bool bHasColumns = Lower() && Lower()->IsColumnFrm();
+ if ( bHasColumns && Lower()->GetNext() )
+ AdjustColumns( 0, FALSE );
+
if( GetUpper() )
{
long nWidth = (GetUpper()->Prt().*fnRect->fnGetWidth)();
@@ -1228,13 +1235,8 @@ void SwSectionFrm::Format( const SwBorderAttrs *pAttr )
}
//Breite der Spalten pruefen und ggf. einstellen.
- if ( Lower() && Lower()->IsColumnFrm() )
- {
- if( Lower()->GetNext() )
- AdjustColumns( 0, FALSE );
- else if( bMaximize )
- ((SwColumnFrm*)Lower())->Lower()->Calc();
- }
+ if ( bHasColumns && ! Lower()->GetNext() && bMaximize )
+ ((SwColumnFrm*)Lower())->Lower()->Calc();
if ( !bMaximize )
{
@@ -1674,7 +1676,12 @@ SwLayoutFrm *SwFrm::GetPrevSctLeaf( MakePageType eMakeFtn )
pLayLeaf = pLayLeaf->GetPrevLayoutLeaf();
else if ( bBody && pLayLeaf->IsInDocBody() )
{
- if ( pLayLeaf->Lower() )
+ // If there is a pLayLeaf has a lower pLayLeaf is the frame we are looking for.
+ // Exception: pLayLeaf->Lower() is a zombie section frame
+ const SwFrm* pTmp = pLayLeaf->Lower();
+ if ( pTmp &&
+ ( ! pTmp->IsSctFrm() ||
+ ((SwSectionFrm*)pTmp)->GetSection() ) )
break;
pPrevLeaf = pLayLeaf;
pLayLeaf = pLayLeaf->GetPrevLayoutLeaf();
diff --git a/sw/source/core/layout/tabfrm.cxx b/sw/source/core/layout/tabfrm.cxx
index 5bbdf5d615f8..edbf5086c01a 100644
--- a/sw/source/core/layout/tabfrm.cxx
+++ b/sw/source/core/layout/tabfrm.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: tabfrm.cxx,v $
*
- * $Revision: 1.31 $
+ * $Revision: 1.32 $
*
- * last change: $Author: fme $ $Date: 2002-11-13 09:45:35 $
+ * last change: $Author: hr $ $Date: 2003-03-27 15:40:30 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -238,16 +238,11 @@ void SwTabFrm::RegistFlys()
|*************************************************************************/
SwTwips SwTabFrm::Split( const SwTwips nCutPos )
{
-#ifdef VERTICAL_LAYOUT
SWRECTFN( this )
ASSERT( bVert ? nCutPos >= Frm().Left()
&& nCutPos <= Frm().Left() + Frm().Width() :
nCutPos >= Frm().Top() && nCutPos <= Frm().Bottom(),
"SplitLine out of table." );
-#else
- ASSERT( nCutPos >= Frm().Top() && nCutPos <= Frm().Bottom(),
- "SplitLine ausserhalb der Tabelle." );
-#endif
//Um die Positionen der Zellen mit der CutPos zu vergleichen muessen sie
//ausgehend von der Tabelle nacheinander berechnet werden. Sie koennen
@@ -256,22 +251,14 @@ SwTwips SwTabFrm::Split( const SwTwips nCutPos )
SwFrm *pRow = Lower();
if( !pRow )
return 0;
-#ifdef VERTICAL_LAYOUT
SwTwips nCut = (*fnRect->fnYDiff)( nCutPos, (Frm().*fnRect->fnGetTop)() );
nCut -= (this->*fnRect->fnGetTopMargin)();
SwTwips nRowPos = (pRow->Frm().*fnRect->fnGetHeight)();
-#else
- SwTwips nRowPos = Frm().Top() + Prt().Top() + pRow->Frm().Height();
-#endif
const BOOL bRepeat = GetTable()->IsHeadlineRepeat();
pRow = pRow->GetNext();
if( pRow && bRepeat )
{
-#ifdef VERTICAL_LAYOUT
nRowPos += (pRow->Frm().*fnRect->fnGetHeight)();
-#else
- nRowPos += pRow->Frm().Height();
-#endif
pRow = pRow->GetNext();
}
// No break before the first row and, in case of repeated headlines,
@@ -279,15 +266,9 @@ SwTwips SwTabFrm::Split( const SwTwips nCutPos )
if( !pRow )
return 0;
-#ifdef VERTICAL_LAYOUT
while( pRow && nCut >= ( nRowPos + (pRow->Frm().*fnRect->fnGetHeight)() ) )
{
nRowPos += (pRow->Frm().*fnRect->fnGetHeight)();
-#else
- while ( pRow && nCutPos > (nRowPos + pRow->Frm().Height() - 1) )
- {
- nRowPos += pRow->Frm().Height();
-#endif
pRow = pRow->GetNext();
}
@@ -354,11 +335,7 @@ SwTwips SwTabFrm::Split( const SwTwips nCutPos )
while ( pRow )
{
pNxt = pRow->GetNext();
-#ifdef VERTICAL_LAYOUT
nRet += (pRow->Frm().*fnRect->fnGetHeight)();
-#else
- nRet += pRow->Frm().Height();
-#endif
pRow->Remove();
pRow->InsertBehind( pFoll, pPrv );
pRow->_InvalidateAll();
@@ -374,7 +351,6 @@ SwTwips SwTabFrm::Split( const SwTwips nCutPos )
while ( pRow )
{
pNxt = pRow->GetNext();
-#ifdef VERTICAL_LAYOUT
nRet += (pRow->Frm().*fnRect->fnGetHeight)();
pRow->Remove();
pRow->Paste( pFoll, pPrv );
@@ -385,16 +361,6 @@ SwTwips SwTabFrm::Split( const SwTwips nCutPos )
ASSERT( !bNewFollow || !(pFoll->Frm().*fnRect->fnGetHeight)(),
"Dont care about Performance");
Shrink( nRet );
-#else
- nRet += pRow->Frm().Height();
- pRow->Remove();
- pRow->Paste( pFoll, pPrv );
- pRow = pNxt;
- }
- }
- ASSERT( !bNewFollow || !pFoll->Frm().Height(), "Dont care about Performance");
- Shrink( nRet PHEIGHT );
-#endif
return nRet;
}
@@ -405,9 +371,7 @@ SwTwips SwTabFrm::Join()
if ( !pFoll->IsJoinLocked() )
{
-#ifdef VERTICAL_LAYOUT
SWRECTFN( this )
-#endif
pFoll->Cut(); //Erst ausschneiden um unuetze Benachrichtigungen zu
//minimieren.
@@ -423,17 +387,11 @@ SwTwips SwTabFrm::Join()
while ( pRow )
{
pNxt = pRow->GetNext();
-#ifdef VERTICAL_LAYOUT
nHeight += (pRow->Frm().*fnRect->fnGetHeight)();
-#else
- nHeight += pRow->Frm().Height();
-#endif
pRow->Remove();
pRow->_InvalidateAll();
pRow->InsertBehind( this, pPrv );
-#ifdef VERTICAL_LAYOUT
pRow->CheckDirChange();
-#endif
pPrv = pRow;
pRow = pNxt;
}
@@ -454,9 +412,9 @@ SwTwips SwTabFrm::Join()
|*************************************************************************/
void MA_FASTCALL SwInvalidatePositions( SwFrm *pFrm, long nBottom )
{
-#ifdef VERTICAL_LAYOUT
+ // LONG_MAX == nBottom means we have to calculate all
+ BOOL bAll = LONG_MAX == nBottom;
SWRECTFN( pFrm )
-#endif
do
{ pFrm->_InvalidatePos();
pFrm->_InvalidateSize();
@@ -468,32 +426,25 @@ void MA_FASTCALL SwInvalidatePositions( SwFrm *pFrm, long nBottom )
else
pFrm->Prepare( PREP_ADJUST_FRM );
pFrm = pFrm->GetNext();
-#ifdef VERTICAL_LAYOUT
- } while ( pFrm && (*fnRect->fnYDiff)( (pFrm->Frm().*fnRect->fnGetTop)(),
- nBottom ) < 0 );
-#else
- } while ( pFrm && pFrm->Frm().Top() < nBottom );
-#endif
+ } while ( pFrm &&
+ ( bAll ||
+ (*fnRect->fnYDiff)( (pFrm->Frm().*fnRect->fnGetTop)(), nBottom ) < 0 ) );
}
BOOL MA_FASTCALL lcl_CalcLowers( SwLayoutFrm *pLay, long nBottom )
{
+ // LONG_MAX == nBottom means we have to calculate all
+ BOOL bAll = LONG_MAX == nBottom;
BOOL bRet = FALSE;
SwCntntFrm *pCnt = pLay->ContainsCntnt();
-#ifdef VERTICAL_LAYOUT
SWRECTFN( pLay )
-#endif
while ( pCnt && pLay->GetUpper()->IsAnLower( pCnt ) )
{
bRet |= !pCnt->IsValid();
pCnt->CalcFlys( FALSE );
pCnt->Calc();
pCnt->GetUpper()->Calc();
-#ifdef VERTICAL_LAYOUT
- if( (*fnRect->fnYDiff)((pCnt->Frm().*fnRect->fnGetTop)(), nBottom) > 0 )
-#else
- if ( pCnt->Frm().Top() > nBottom )
-#endif
+ if( ! bAll && (*fnRect->fnYDiff)((pCnt->Frm().*fnRect->fnGetTop)(), nBottom) > 0 )
break;
pCnt = pCnt->GetNextCntntFrm();
}
@@ -502,6 +453,8 @@ BOOL MA_FASTCALL lcl_CalcLowers( SwLayoutFrm *pLay, long nBottom )
BOOL MA_FASTCALL lcl_InnerCalcLayout( SwFrm *pFrm, long nBottom )
{
+ // LONG_MAX == nBottom means we have to calculate all
+ BOOL bAll = LONG_MAX == nBottom;
BOOL bRet = FALSE;
const SwFrm* pOldUp = pFrm->GetUpper();
SWRECTFN( pFrm )
@@ -516,7 +469,8 @@ BOOL MA_FASTCALL lcl_InnerCalcLayout( SwFrm *pFrm, long nBottom )
}
pFrm = pFrm->GetNext();
} while( pFrm &&
- (*fnRect->fnYDiff)((pFrm->Frm().*fnRect->fnGetTop)(), nBottom) < 0
+ ( bAll ||
+ (*fnRect->fnYDiff)((pFrm->Frm().*fnRect->fnGetTop)(), nBottom) < 0 )
&& pFrm->GetUpper() == pOldUp );
return bRet;
}
@@ -540,7 +494,6 @@ void MA_FASTCALL lcl_CalcLayout( SwLayoutFrm *pLay, long nBottom )
void MA_FASTCALL lcl_FirstTabCalc( SwTabFrm *pTab )
{
-#ifdef VERTICAL_LAYOUT
SWRECTFN( pTab )
if ( !pTab->IsFollow() && !pTab->GetTable()->IsTblComplex() )
{
@@ -582,53 +535,6 @@ void MA_FASTCALL lcl_FirstTabCalc( SwTabFrm *pTab )
if ( pTab->GetFmt()->GetDoc()->IsBrowseMode() )
nBottom += pUp->Grow( LONG_MAX, TRUE );
lcl_CalcLowers( (SwLayoutFrm*)pTab->Lower(), nBottom );
-#else
- //Ersteinmal koennen wir die Strukturen auf die richtige Groesse
- //bringen.
- if ( !pTab->IsFollow() && !pTab->GetTable()->IsTblComplex() )
- {
- SwLayoutFrm *pRow = (SwLayoutFrm*)pTab->Lower();
- do
- {
- SwLayoutFrm *pCell = (SwLayoutFrm*)pRow->Lower();
- SwFrm *pCnt = pCell->Lower();
- pCnt->Calc();
- const long nCellHeight = pCell->Frm().Height();
- const long nCellY = pCell->Frm().Top()-1;
- const long nCntHeight = pCnt->Frm().Height();
- const long nCntY = pCnt->Frm().Top()-1;
- if ( 0 != (pCell = (SwLayoutFrm*)pCell->GetNext()) )
- do
- { pCell->Frm().SSize().Height() =
- pCell->Prt().SSize().Height() = nCellHeight;
- pCell->Frm().Pos().Y() = nCellY;
- pCell->_InvalidateAll();
-
- pCnt = pCell->Lower();
- pCnt->Frm().SSize().Height() =
- pCnt->Prt().SSize().Height() = nCntHeight;
- pCnt->Frm().Pos().Y() = nCntY;
- pCnt->_InvalidateAll();
-
- pCell = (SwLayoutFrm*)pCell->GetNext();
- } while ( pCell );
-
- SwTwips nRowTop = pRow->Frm().Top();
- SwTwips nUpBot = pTab->GetUpper()->Frm().Bottom();
- if( nUpBot < nRowTop )
- break;
- pRow = (SwLayoutFrm*)pRow->GetNext();
-
- } while ( pRow );
- }
- //MA 28. Nov. 95: einen weiteren habe ich noch: Es braucht
- //nur soweit formatiert werden, wie Platz vorhanden ist.
- SwFrm *pUp = pTab->GetUpper();
- long nBottom = pUp->Prt().Bottom() + pUp->Frm().Top();
- if ( pTab->GetFmt()->GetDoc()->IsBrowseMode() )
- nBottom += pUp->Grow( LONG_MAX PHEIGHT, TRUE );
- lcl_CalcLowers( (SwLayoutFrm*)pTab->Lower(), nBottom );
-#endif
}
void MA_FASTCALL lcl_Recalc( SwTabFrm *pTab,
@@ -637,7 +543,6 @@ void MA_FASTCALL lcl_Recalc( SwTabFrm *pTab,
{
if ( pTab->Lower() )
{
-#ifdef VERTICAL_LAYOUT
SWRECTFN( pTab )
const SwTwips nOldHeight = (pTab->Frm().*fnRect->fnGetHeight)();
const