Files
libreoffice/sw/source/core/doc/notxtfrm.cxx
Michael Meeks ed40f62e64 Merge commit 'ooo/DEV300_m101' into integration/dev300_m101
Conflicts:
	starmath/inc/applicat.hxx
	starmath/inc/dialog.hxx
	starmath/inc/document.hxx
	starmath/inc/edit.hxx
	starmath/inc/format.hxx
	starmath/inc/node.hxx
	starmath/inc/parse.hxx
	starmath/inc/rect.hxx
	starmath/inc/smdll.hxx
	starmath/inc/smmod.hxx
	starmath/inc/starmath.hrc
	starmath/inc/symbol.hxx
	starmath/inc/toolbox.hxx
	starmath/inc/utility.hxx
	starmath/inc/view.hxx
	starmath/prj/build.lst
	starmath/qa/cppunit/version.map
	starmath/sdi/smslots.sdi
	starmath/source/accessibility.cxx
	starmath/source/cfgitem.cxx
	starmath/source/cfgitem.hxx
	starmath/source/config.cxx
	starmath/source/dialog.cxx
	starmath/source/document.cxx
	starmath/source/edit.cxx
	starmath/source/format.cxx
	starmath/source/makefile.mk
	starmath/source/math_pch.cxx
	starmath/source/mathmlexport.cxx
	starmath/source/mathmlimport.cxx
	starmath/source/mathtype.cxx
	starmath/source/node.cxx
	starmath/source/parse.cxx
	starmath/source/rect.cxx
	starmath/source/register.cxx
	starmath/source/smdetect.cxx
	starmath/source/smdll.cxx
	starmath/source/smmod.cxx
	starmath/source/smres.src
	starmath/source/symbol.cxx
	starmath/source/toolbox.cxx
	starmath/source/unomodel.cxx
	starmath/source/utility.cxx
	starmath/source/view.cxx
	sw/JunitTest_sw_unoapi.mk
	sw/Library_swd.mk
	sw/Makefile
	sw/inc/IDocumentFieldsAccess.hxx
	sw/inc/IDocumentSettingAccess.hxx
	sw/inc/IDocumentUndoRedo.hxx
	sw/inc/IShellCursorSupplier.hxx
	sw/inc/SwUndoField.hxx
	sw/inc/acmplwrd.hxx
	sw/inc/authfld.hxx
	sw/inc/bparr.hxx
	sw/inc/calbck.hxx
	sw/inc/calc.hxx
	sw/inc/ccoll.hxx
	sw/inc/cellatr.hxx
	sw/inc/cellfml.hxx
	sw/inc/chpfld.hxx
	sw/inc/cmdid.h
	sw/inc/crsrsh.hxx
	sw/inc/crstate.hxx
	sw/inc/dbfld.hxx
	sw/inc/dbmgr.hxx
	sw/inc/dcontact.hxx
	sw/inc/ddefld.hxx
	sw/inc/doc.hxx
	sw/inc/docary.hxx
	sw/inc/docsh.hxx
	sw/inc/docstat.hxx
	sw/inc/docstyle.hxx
	sw/inc/docufld.hxx
	sw/inc/editsh.hxx
	sw/inc/errhdl.hxx
	sw/inc/expfld.hxx
	sw/inc/fchrfmt.hxx
	sw/inc/fesh.hxx
	sw/inc/fldbas.hxx
	sw/inc/flddat.hxx
	sw/inc/flddropdown.hxx
	sw/inc/flypos.hxx
	sw/inc/fmtanchr.hxx
	sw/inc/fmtautofmt.hxx
	sw/inc/fmtclds.hxx
	sw/inc/fmtcnct.hxx
	sw/inc/fmtcol.hxx
	sw/inc/fmtfsize.hxx
	sw/inc/fmtftn.hxx
	sw/inc/fmtftntx.hxx
	sw/inc/fmthdft.hxx
	sw/inc/fmtinfmt.hxx
	sw/inc/fmtline.hxx
	sw/inc/fmtornt.hxx
	sw/inc/fmtpdsc.hxx
	sw/inc/fmtruby.hxx
	sw/inc/fmtsrnd.hxx
	sw/inc/fmturl.hxx
	sw/inc/fmtwrapinfluenceonobjpos.hxx
	sw/inc/format.hxx
	sw/inc/frmatr.hxx
	sw/inc/frmfmt.hxx
	sw/inc/grfatr.hxx
	sw/inc/helpid.h
	sw/inc/hintids.hxx
	sw/inc/hints.hxx
	sw/inc/htmltbl.hxx
	sw/inc/inetfld.hxx
	sw/inc/io.hxx
	sw/inc/iodetect.hxx
	sw/inc/itabenum.hxx
	sw/inc/ndarr.hxx
	sw/inc/ndgrf.hxx
	sw/inc/ndindex.hxx
	sw/inc/ndnotxt.hxx
	sw/inc/ndole.hxx
	sw/inc/ndtxt.hxx
	sw/inc/ndtyp.hxx
	sw/inc/node.hxx
	sw/inc/numrule.hxx
	sw/inc/pagedesc.hxx
	sw/inc/pagepreviewlayout.hxx
	sw/inc/pam.hxx
	sw/inc/paratr.hxx
	sw/inc/poolfmt.awk
	sw/inc/poolfmt.hxx
	sw/inc/printdata.hxx
	sw/inc/reffld.hxx
	sw/inc/shellio.hxx
	sw/inc/shellres.hxx
	sw/inc/swabstdlg.hxx
	sw/inc/swatrset.hxx
	sw/inc/swerror.h
	sw/inc/swprtopt.hxx
	sw/inc/swtable.hxx
	sw/inc/swtypes.hxx
	sw/inc/tblafmt.hxx
	sw/inc/tgrditem.hxx
	sw/inc/tox.hxx
	sw/inc/undobj.hxx
	sw/inc/unocoll.hxx
	sw/inc/unoframe.hxx
	sw/inc/unoprnms.hxx
	sw/inc/usrfld.hxx
	sw/inc/viewopt.hxx
	sw/inc/viewsh.hxx
	sw/inc/viscrs.hxx
	sw/prj/build.lst
	sw/qa/complex/accessibility/makefile.mk
	sw/qa/core/Test-BigPtrArray.cxx
	sw/qa/core/makefile.mk
	sw/sdi/makefile.mk
	sw/source/core/access/makefile.mk
	sw/source/core/access/textmarkuphelper.cxx
	sw/source/core/attr/calbck.cxx
	sw/source/core/attr/cellatr.cxx
	sw/source/core/attr/fmtwrapinfluenceonobjpos.cxx
	sw/source/core/attr/format.cxx
	sw/source/core/attr/hints.cxx
	sw/source/core/bastyp/calc.cxx
	sw/source/core/bastyp/init.cxx
	sw/source/core/bastyp/makefile.mk
	sw/source/core/bastyp/swcache.cxx
	sw/source/core/crsr/bookmrk.cxx
	sw/source/core/crsr/callnk.cxx
	sw/source/core/crsr/crsrsh.cxx
	sw/source/core/crsr/crstrvl.cxx
	sw/source/core/crsr/findattr.cxx
	sw/source/core/crsr/findcoll.cxx
	sw/source/core/crsr/makefile.mk
	sw/source/core/crsr/pam.cxx
	sw/source/core/crsr/swcrsr.cxx
	sw/source/core/crsr/trvltbl.cxx
	sw/source/core/crsr/unocrsr.cxx
	sw/source/core/crsr/viscrs.cxx
	sw/source/core/doc/acmplwrd.cxx
	sw/source/core/doc/doc.cxx
	sw/source/core/doc/docbm.cxx
	sw/source/core/doc/doccomp.cxx
	sw/source/core/doc/docdesc.cxx
	sw/source/core/doc/docdraw.cxx
	sw/source/core/doc/docedt.cxx
	sw/source/core/doc/docfld.cxx
	sw/source/core/doc/docfly.cxx
	sw/source/core/doc/docfmt.cxx
	sw/source/core/doc/docftn.cxx
	sw/source/core/doc/docglbl.cxx
	sw/source/core/doc/docglos.cxx
	sw/source/core/doc/doclay.cxx
	sw/source/core/doc/docnew.cxx
	sw/source/core/doc/docnum.cxx
	sw/source/core/doc/docredln.cxx
	sw/source/core/doc/docruby.cxx
	sw/source/core/doc/docsort.cxx
	sw/source/core/doc/docstat.cxx
	sw/source/core/doc/doctxm.cxx
	sw/source/core/doc/fmtcol.cxx
	sw/source/core/doc/gctable.cxx
	sw/source/core/doc/htmltbl.cxx
	sw/source/core/doc/makefile.mk
	sw/source/core/doc/number.cxx
	sw/source/core/doc/poolfmt.cxx
	sw/source/core/doc/tblafmt.cxx
	sw/source/core/doc/tblcpy.cxx
	sw/source/core/doc/tblrwcl.cxx
	sw/source/core/docnode/makefile.mk
	sw/source/core/docnode/ndcopy.cxx
	sw/source/core/docnode/ndnum.cxx
	sw/source/core/docnode/ndsect.cxx
	sw/source/core/docnode/ndtbl.cxx
	sw/source/core/docnode/ndtbl1.cxx
	sw/source/core/docnode/node.cxx
	sw/source/core/docnode/node2lay.cxx
	sw/source/core/docnode/nodes.cxx
	sw/source/core/docnode/section.cxx
	sw/source/core/docnode/swbaslnk.cxx
	sw/source/core/draw/dcontact.cxx
	sw/source/core/draw/dflyobj.cxx
	sw/source/core/draw/drawdoc.cxx
	sw/source/core/draw/dview.cxx
	sw/source/core/draw/makefile.mk
	sw/source/core/edit/autofmt.cxx
	sw/source/core/edit/edattr.cxx
	sw/source/core/edit/eddel.cxx
	sw/source/core/edit/edfcol.cxx
	sw/source/core/edit/edfld.cxx
	sw/source/core/edit/edfldexp.cxx
	sw/source/core/edit/edfmt.cxx
	sw/source/core/edit/edglss.cxx
	sw/source/core/edit/editsh.cxx
	sw/source/core/edit/edlingu.cxx
	sw/source/core/edit/ednumber.cxx
	sw/source/core/edit/edsect.cxx
	sw/source/core/edit/edtab.cxx
	sw/source/core/edit/edtox.cxx
	sw/source/core/edit/edundo.cxx
	sw/source/core/edit/makefile.mk
	sw/source/core/except/dbgloop.cxx
	sw/source/core/except/errhdl.cxx
	sw/source/core/fields/authfld.cxx
	sw/source/core/fields/cellfml.cxx
	sw/source/core/fields/chpfld.cxx
	sw/source/core/fields/dbfld.cxx
	sw/source/core/fields/ddefld.cxx
	sw/source/core/fields/ddetbl.cxx
	sw/source/core/fields/docufld.cxx
	sw/source/core/fields/expfld.cxx
	sw/source/core/fields/fldbas.cxx
	sw/source/core/fields/flddat.cxx
	sw/source/core/fields/flddropdown.cxx
	sw/source/core/fields/macrofld.cxx
	sw/source/core/fields/makefile.mk
	sw/source/core/fields/reffld.cxx
	sw/source/core/fields/scrptfld.cxx
	sw/source/core/fields/tblcalc.cxx
	sw/source/core/fields/usrfld.cxx
	sw/source/core/frmedt/fecopy.cxx
	sw/source/core/frmedt/fedesc.cxx
	sw/source/core/frmedt/fefly1.cxx
	sw/source/core/frmedt/feshview.cxx
	sw/source/core/frmedt/fetab.cxx
	sw/source/core/frmedt/fews.cxx
	sw/source/core/frmedt/makefile.mk
	sw/source/core/frmedt/tblsel.cxx
	sw/source/core/graphic/grfatr.cxx
	sw/source/core/inc/SwUndoFmt.hxx
	sw/source/core/inc/SwUndoTOXChange.hxx
	sw/source/core/inc/anchoredobjectposition.hxx
	sw/source/core/inc/dbgloop.hxx
	sw/source/core/inc/drawfont.hxx
	sw/source/core/inc/flowfrm.hxx
	sw/source/core/inc/frame.hxx
	sw/source/core/inc/frmtool.hxx
	sw/source/core/inc/layact.hxx
	sw/source/core/inc/layfrm.hxx
	sw/source/core/inc/notxtfrm.hxx
	sw/source/core/inc/rolbck.hxx
	sw/source/core/inc/rootfrm.hxx
	sw/source/core/inc/scriptinfo.hxx
	sw/source/core/inc/swblocks.hxx
	sw/source/core/inc/swcache.hxx
	sw/source/core/inc/tabfrm.hxx
	sw/source/core/inc/txmsrt.hxx
	sw/source/core/inc/undoflystrattr.hxx
	sw/source/core/inc/viewimp.hxx
	sw/source/core/layout/atrfrm.cxx
	sw/source/core/layout/calcmove.cxx
	sw/source/core/layout/dbg_lay.cxx
	sw/source/core/layout/findfrm.cxx
	sw/source/core/layout/flowfrm.cxx
	sw/source/core/layout/fly.cxx
	sw/source/core/layout/flycnt.cxx
	sw/source/core/layout/flyincnt.cxx
	sw/source/core/layout/flylay.cxx
	sw/source/core/layout/frmtool.cxx
	sw/source/core/layout/ftnfrm.cxx
	sw/source/core/layout/layact.cxx
	sw/source/core/layout/laycache.cxx
	sw/source/core/layout/makefile.mk
	sw/source/core/layout/objectformatter.cxx
	sw/source/core/layout/pagechg.cxx
	sw/source/core/layout/pagedesc.cxx
	sw/source/core/layout/paintfrm.cxx
	sw/source/core/layout/sectfrm.cxx
	sw/source/core/layout/tabfrm.cxx
	sw/source/core/layout/trvlfrm.cxx
	sw/source/core/layout/unusedf.cxx
	sw/source/core/layout/wsfrm.cxx
	sw/source/core/makefile.mk
	sw/source/core/objectpositioning/anchoredobjectposition.cxx
	sw/source/core/objectpositioning/ascharanchoredobjectposition.cxx
	sw/source/core/objectpositioning/makefile.mk
	sw/source/core/objectpositioning/tocntntanchoredobjectposition.cxx
	sw/source/core/objectpositioning/tolayoutanchoredobjectposition.cxx
	sw/source/core/ole/ndole.cxx
	sw/source/core/para/makefile.mk
	sw/source/core/para/paratr.cxx
	sw/source/core/sw3io/makefile.mk
	sw/source/core/sw3io/sw3convert.cxx
	sw/source/core/swg/SwXMLTextBlocks.cxx
	sw/source/core/swg/makefile.mk
	sw/source/core/swg/swblocks.cxx
	sw/source/core/table/swnewtable.cxx
	sw/source/core/table/swtable.cxx
	sw/source/core/text/EnhancedPDFExportHelper.cxx
	sw/source/core/text/atrstck.cxx
	sw/source/core/text/frmcrsr.cxx
	sw/source/core/text/frmform.cxx
	sw/source/core/text/itrcrsr.cxx
	sw/source/core/text/itrform2.cxx
	sw/source/core/text/makefile.mk
	sw/source/core/text/porlay.cxx
	sw/source/core/text/pormulti.cxx
	sw/source/core/text/txtfld.cxx
	sw/source/core/text/txtfrm.cxx
	sw/source/core/text/txtio.cxx
	sw/source/core/tox/makefile.mk
	sw/source/core/tox/txmsrt.cxx
	sw/source/core/txtnode/fmtatr2.cxx
	sw/source/core/txtnode/fntcache.cxx
	sw/source/core/txtnode/fntcap.cxx
	sw/source/core/txtnode/makefile.mk
	sw/source/core/txtnode/ndhints.cxx
	sw/source/core/txtnode/ndtxt.cxx
	sw/source/core/txtnode/swfont.cxx
	sw/source/core/txtnode/thints.cxx
	sw/source/core/txtnode/txtatr2.cxx
	sw/source/core/txtnode/txtedt.cxx
	sw/source/core/undo/SwUndoField.cxx
	sw/source/core/undo/SwUndoPageDesc.cxx
	sw/source/core/undo/SwUndoTOXChange.cxx
	sw/source/core/undo/docundo.cxx
	sw/source/core/undo/makefile.mk
	sw/source/core/undo/rolbck.cxx
	sw/source/core/undo/unbkmk.cxx
	sw/source/core/undo/undel.cxx
	sw/source/core/undo/undobj.cxx
	sw/source/core/undo/undobj1.cxx
	sw/source/core/undo/unfmco.cxx
	sw/source/core/undo/unins.cxx
	sw/source/core/undo/unnum.cxx
	sw/source/core/undo/unoutl.cxx
	sw/source/core/undo/unredln.cxx
	sw/source/core/undo/unsect.cxx
	sw/source/core/undo/unsort.cxx
	sw/source/core/undo/unspnd.cxx
	sw/source/core/undo/untbl.cxx
	sw/source/core/unocore/makefile.mk
	sw/source/core/unocore/swunohelper.cxx
	sw/source/core/unocore/unobkm.cxx
	sw/source/core/unocore/unocoll.cxx
	sw/source/core/unocore/unocrsrhelper.cxx
	sw/source/core/unocore/unodraw.cxx
	sw/source/core/unocore/unofield.cxx
	sw/source/core/unocore/unoframe.cxx
	sw/source/core/unocore/unomap.cxx
	sw/source/core/unocore/unoprnms.cxx
	sw/source/core/unocore/unoredlines.cxx
	sw/source/core/unocore/unosett.cxx
	sw/source/core/unocore/unosrch.cxx
	sw/source/core/unocore/unostyle.cxx
	sw/source/core/unocore/unotbl.cxx
	sw/source/core/view/vdraw.cxx
	sw/source/core/view/viewimp.cxx
	sw/source/core/view/viewpg.cxx
	sw/source/core/view/viewsh.cxx
	sw/source/core/view/vnew.cxx
	sw/source/core/view/vprint.cxx
	sw/source/filter/ascii/ascatr.cxx
	sw/source/filter/ascii/makefile.mk
	sw/source/filter/ascii/wrtasc.cxx
	sw/source/filter/basflt/fltini.cxx
	sw/source/filter/basflt/iodetect.cxx
	sw/source/filter/basflt/makefile.mk
	sw/source/filter/html/SwAppletImpl.cxx
	sw/source/filter/html/css1atr.cxx
	sw/source/filter/html/htmlatr.cxx
	sw/source/filter/html/htmlbas.cxx
	sw/source/filter/html/htmlcss1.cxx
	sw/source/filter/html/htmlfly.cxx
	sw/source/filter/html/htmlftn.cxx
	sw/source/filter/html/htmlgrin.cxx
	sw/source/filter/html/htmlnum.cxx
	sw/source/filter/html/htmlplug.cxx
	sw/source/filter/html/htmltab.cxx
	sw/source/filter/html/makefile.mk
	sw/source/filter/html/parcss1.cxx
	sw/source/filter/html/svxcss1.cxx
	sw/source/filter/html/swhtml.cxx
	sw/source/filter/inc/msfilter.hxx
	sw/source/filter/inc/wrtswtbl.hxx
	sw/source/filter/rtf/makefile.mk
	sw/source/filter/rtf/rtffly.cxx
	sw/source/filter/rtf/rtfnum.cxx
	sw/source/filter/rtf/rtftbl.cxx
	sw/source/filter/rtf/swparrtf.cxx
	sw/source/filter/rtf/swparrtf.hxx
	sw/source/filter/writer/makefile.mk
	sw/source/filter/writer/writer.cxx
	sw/source/filter/writer/wrt_fn.cxx
	sw/source/filter/writer/wrtswtbl.cxx
	sw/source/filter/ww1/fltshell.cxx
	sw/source/filter/ww1/makefile.mk
	sw/source/filter/ww1/w1class.cxx
	sw/source/filter/ww1/w1class.hxx
	sw/source/filter/ww1/w1filter.cxx
	sw/source/filter/ww1/w1par.cxx
	sw/source/filter/ww1/w1sprm.cxx
	sw/source/filter/ww1/w1struct.hxx
	sw/source/filter/ww8/README-rtf.txt
	sw/source/filter/ww8/attributeoutputbase.hxx
	sw/source/filter/ww8/docxattributeoutput.cxx
	sw/source/filter/ww8/docxattributeoutput.hxx
	sw/source/filter/ww8/docxexport.cxx
	sw/source/filter/ww8/docxexport.hxx
	sw/source/filter/ww8/docxexportfilter.cxx
	sw/source/filter/ww8/dump/dump8.cxx
	sw/source/filter/ww8/dump/dump8a.cxx
	sw/source/filter/ww8/dump/msvbasic.cxx
	sw/source/filter/ww8/dump/msvbasic.hxx
	sw/source/filter/ww8/dump/ww8darr.cxx
	sw/source/filter/ww8/dump/ww8darr.hxx
	sw/source/filter/ww8/dump/ww8dout.cxx
	sw/source/filter/ww8/dump/ww8dout.hxx
	sw/source/filter/ww8/dump/ww8scan.cxx
	sw/source/filter/ww8/dump/ww8scan.hxx
	sw/source/filter/ww8/dump/ww8struc.hxx
	sw/source/filter/ww8/makefile.mk
	sw/source/filter/ww8/rtfattributeoutput.cxx
	sw/source/filter/ww8/rtfattributeoutput.hxx
	sw/source/filter/ww8/rtfexport.cxx
	sw/source/filter/ww8/rtfexport.hxx
	sw/source/filter/ww8/rtfexportfilter.cxx
	sw/source/filter/ww8/rtfexportfilter.hxx
	sw/source/filter/ww8/rtfimportfilter.cxx
	sw/source/filter/ww8/rtfimportfilter.hxx
	sw/source/filter/ww8/rtfsdrexport.cxx
	sw/source/filter/ww8/rtfsdrexport.hxx
	sw/source/filter/ww8/writerhelper.cxx
	sw/source/filter/ww8/writerwordglue.cxx
	sw/source/filter/ww8/wrtw8esh.cxx
	sw/source/filter/ww8/wrtw8nds.cxx
	sw/source/filter/ww8/wrtw8num.cxx
	sw/source/filter/ww8/wrtw8sty.cxx
	sw/source/filter/ww8/wrtww8.cxx
	sw/source/filter/ww8/wrtww8.hxx
	sw/source/filter/ww8/wrtww8gr.cxx
	sw/source/filter/ww8/ww8atr.cxx
	sw/source/filter/ww8/ww8attributeoutput.hxx
	sw/source/filter/ww8/ww8graf.cxx
	sw/source/filter/ww8/ww8graf.hxx
	sw/source/filter/ww8/ww8graf2.cxx
	sw/source/filter/ww8/ww8par.cxx
	sw/source/filter/ww8/ww8par.hxx
	sw/source/filter/ww8/ww8par2.cxx
	sw/source/filter/ww8/ww8par3.cxx
	sw/source/filter/ww8/ww8par5.cxx
	sw/source/filter/ww8/ww8par6.cxx
	sw/source/filter/ww8/ww8scan.cxx
	sw/source/filter/ww8/ww8scan.hxx
	sw/source/filter/ww8/ww8struc.hxx
	sw/source/filter/xml/makefile.mk
	sw/source/filter/xml/xmlimpit.cxx
	sw/source/filter/xml/xmltble.cxx
	sw/source/filter/xml/xmltbli.cxx
	sw/source/ui/app/appenv.cxx
	sw/source/ui/app/apphdl.cxx
	sw/source/ui/app/applab.cxx
	sw/source/ui/app/appopt.cxx
	sw/source/ui/app/docsh.cxx
	sw/source/ui/app/docsh2.cxx
	sw/source/ui/app/docshini.cxx
	sw/source/ui/app/docst.cxx
	sw/source/ui/app/docstyle.cxx
	sw/source/ui/app/makefile.mk
	sw/source/ui/app/mn.src
	sw/source/ui/app/swmodul1.cxx
	sw/source/ui/cctrl/makefile.mk
	sw/source/ui/cctrl/swlbox.cxx
	sw/source/ui/chrdlg/break.cxx
	sw/source/ui/chrdlg/ccoll.cxx
	sw/source/ui/chrdlg/chardlg.cxx
	sw/source/ui/chrdlg/drpcps.cxx
	sw/source/ui/chrdlg/makefile.mk
	sw/source/ui/chrdlg/numpara.cxx
	sw/source/ui/chrdlg/pardlg.cxx
	sw/source/ui/chrdlg/swuiccoll.cxx
	sw/source/ui/config/barcfg.cxx
	sw/source/ui/config/caption.cxx
	sw/source/ui/config/cfgitems.cxx
	sw/source/ui/config/fontcfg.cxx
	sw/source/ui/config/mailconfigpage.cxx
	sw/source/ui/config/makefile.mk
	sw/source/ui/config/modcfg.cxx
	sw/source/ui/config/optcomp.cxx
	sw/source/ui/config/optload.cxx
	sw/source/ui/config/optpage.cxx
	sw/source/ui/config/prtopt.cxx
	sw/source/ui/config/uinums.cxx
	sw/source/ui/config/usrpref.cxx
	sw/source/ui/config/viewopt.cxx
	sw/source/ui/dbui/dbinsdlg.cxx
	sw/source/ui/dbui/dbmgr.cxx
	sw/source/ui/dbui/dbtree.cxx
	sw/source/ui/dbui/makefile.mk
	sw/source/ui/dbui/mmaddressblockpage.cxx
	sw/source/ui/dbui/mmdocselectpage.cxx
	sw/source/ui/dbui/mmoutputpage.cxx
	sw/source/ui/dbui/swdbtoolsclient.cxx
	sw/source/ui/dialog/abstract.cxx
	sw/source/ui/dialog/ascfldlg.cxx
	sw/source/ui/dialog/macassgn.cxx
	sw/source/ui/dialog/makefile.mk
	sw/source/ui/dialog/regionsw.cxx
	sw/source/ui/dialog/swdlgfact.cxx
	sw/source/ui/dialog/swdlgfact.hxx
	sw/source/ui/dialog/uiregionsw.cxx
	sw/source/ui/dochdl/gloshdl.cxx
	sw/source/ui/dochdl/makefile.mk
	sw/source/ui/dochdl/swdtflvr.cxx
	sw/source/ui/docvw/PostItMgr.cxx
	sw/source/ui/docvw/SidebarWin.cxx
	sw/source/ui/docvw/edtdd.cxx
	sw/source/ui/docvw/edtwin.cxx
	sw/source/ui/docvw/edtwin2.cxx
	sw/source/ui/docvw/edtwin3.cxx
	sw/source/ui/docvw/makefile.mk
	sw/source/ui/docvw/romenu.cxx
	sw/source/ui/docvw/romenu.hxx
	sw/source/ui/docvw/srcedtw.cxx
	sw/source/ui/envelp/envfmt.cxx
	sw/source/ui/envelp/envimg.cxx
	sw/source/ui/envelp/envlop1.cxx
	sw/source/ui/envelp/envprt.cxx
	sw/source/ui/envelp/label1.cxx
	sw/source/ui/envelp/labfmt.cxx
	sw/source/ui/envelp/labprt.cxx
	sw/source/ui/envelp/mailmrge.cxx
	sw/source/ui/envelp/makefile.mk
	sw/source/ui/fldui/flddb.cxx
	sw/source/ui/fldui/flddinf.cxx
	sw/source/ui/fldui/flddok.cxx
	sw/source/ui/fldui/fldedt.cxx
	sw/source/ui/fldui/fldfunc.cxx
	sw/source/ui/fldui/fldmgr.cxx
	sw/source/ui/fldui/fldpage.cxx
	sw/source/ui/fldui/fldref.cxx
	sw/source/ui/fldui/fldtdlg.cxx
	sw/source/ui/fldui/fldvar.cxx
	sw/source/ui/fldui/fldwrap.cxx
	sw/source/ui/fldui/inpdlg.cxx
	sw/source/ui/fldui/makefile.mk
	sw/source/ui/fmtui/makefile.mk
	sw/source/ui/fmtui/tmpdlg.cxx
	sw/source/ui/frmdlg/colmgr.cxx
	sw/source/ui/frmdlg/column.cxx
	sw/source/ui/frmdlg/cption.cxx
	sw/source/ui/frmdlg/frmdlg.cxx
	sw/source/ui/frmdlg/frmmgr.cxx
	sw/source/ui/frmdlg/frmpage.cxx
	sw/source/ui/frmdlg/makefile.mk
	sw/source/ui/frmdlg/wrap.cxx
	sw/source/ui/globdoc/makefile.mk
	sw/source/ui/inc/bmpwin.hxx
	sw/source/ui/inc/colmgr.hxx
	sw/source/ui/inc/column.hxx
	sw/source/ui/inc/envimg.hxx
	sw/source/ui/inc/envlop.hxx
	sw/source/ui/inc/frmpage.hxx
	sw/source/ui/inc/inputwin.hxx
	sw/source/ui/inc/javaedit.hxx
	sw/source/ui/inc/num.hxx
	sw/source/ui/inc/optpage.hxx
	sw/source/ui/inc/regionsw.hxx
	sw/source/ui/inc/split.hxx
	sw/source/ui/inc/swlbox.hxx
	sw/source/ui/inc/swmn_tmpl.hrc
	sw/source/ui/inc/swuiidxmrk.hxx
	sw/source/ui/inc/tabsh.hxx
	sw/source/ui/inc/toxmgr.hxx
	sw/source/ui/inc/uiitems.hxx
	sw/source/ui/inc/view.hxx
	sw/source/ui/inc/workctrl.hxx
	sw/source/ui/inc/wrap.hxx
	sw/source/ui/inc/wrtsh.hxx
	sw/source/ui/index/cnttab.cxx
	sw/source/ui/index/makefile.mk
	sw/source/ui/index/toxmgr.cxx
	sw/source/ui/lingu/hhcwrp.cxx
	sw/source/ui/lingu/makefile.mk
	sw/source/ui/lingu/olmenu.cxx
	sw/source/ui/misc/bookmark.cxx
	sw/source/ui/misc/docfnote.cxx
	sw/source/ui/misc/glosbib.cxx
	sw/source/ui/misc/glosdoc.cxx
	sw/source/ui/misc/glshell.cxx
	sw/source/ui/misc/insfnote.cxx
	sw/source/ui/misc/linenum.cxx
	sw/source/ui/misc/makefile.mk
	sw/source/ui/misc/num.cxx
	sw/source/ui/misc/numberingtypelistbox.cxx
	sw/source/ui/misc/outline.cxx
	sw/source/ui/misc/pgfnote.cxx
	sw/source/ui/misc/pggrid.cxx
	sw/source/ui/misc/redlndlg.cxx
	sw/source/ui/misc/srtdlg.cxx
	sw/source/ui/misc/swmodalredlineacceptdlg.cxx
	sw/source/ui/ribbar/conarc.cxx
	sw/source/ui/ribbar/drawbase.cxx
	sw/source/ui/ribbar/inputwin.cxx
	sw/source/ui/ribbar/inputwin.src
	sw/source/ui/ribbar/makefile.mk
	sw/source/ui/ribbar/tbxanchr.cxx
	sw/source/ui/ribbar/workctrl.cxx
	sw/source/ui/ribbar/workctrl.src
	sw/source/ui/shells/annotsh.cxx
	sw/source/ui/shells/basesh.cxx
	sw/source/ui/shells/beziersh.cxx
	sw/source/ui/shells/drawdlg.cxx
	sw/source/ui/shells/drwbassh.cxx
	sw/source/ui/shells/drwtxtex.cxx
	sw/source/ui/shells/drwtxtsh.cxx
	sw/source/ui/shells/frmsh.cxx
	sw/source/ui/shells/grfsh.cxx
	sw/source/ui/shells/grfshex.cxx
	sw/source/ui/shells/makefile.mk
	sw/source/ui/shells/tabsh.cxx
	sw/source/ui/shells/textfld.cxx
	sw/source/ui/shells/textglos.cxx
	sw/source/ui/shells/textsh.cxx
	sw/source/ui/shells/textsh1.cxx
	sw/source/ui/shells/txtattr.cxx
	sw/source/ui/shells/txtcrsr.cxx
	sw/source/ui/shells/txtnum.cxx
	sw/source/ui/table/convert.cxx
	sw/source/ui/table/instable.cxx
	sw/source/ui/table/makefile.mk
	sw/source/ui/table/swtablerep.cxx
	sw/source/ui/table/tabledlg.cxx
	sw/source/ui/table/tablemgr.cxx
	sw/source/ui/table/tablepg.hxx
	sw/source/ui/table/tautofmt.cxx
	sw/source/ui/uiview/formatclipboard.cxx
	sw/source/ui/uiview/makefile.mk
	sw/source/ui/uiview/pview.cxx
	sw/source/ui/uiview/pview.src
	sw/source/ui/uiview/scroll.cxx
	sw/source/ui/uiview/srcview.cxx
	sw/source/ui/uiview/swcli.cxx
	sw/source/ui/uiview/uivwimp.cxx
	sw/source/ui/uiview/view.cxx
	sw/source/ui/uiview/view1.cxx
	sw/source/ui/uiview/view2.cxx
	sw/source/ui/uiview/viewcoll.cxx
	sw/source/ui/uiview/viewdlg2.cxx
	sw/source/ui/uiview/viewling.cxx
	sw/source/ui/uiview/viewmdi.cxx
	sw/source/ui/uiview/viewport.cxx
	sw/source/ui/uiview/viewprt.cxx
	sw/source/ui/uiview/viewsrch.cxx
	sw/source/ui/uiview/viewtab.cxx
	sw/source/ui/uno/SwXDocumentSettings.cxx
	sw/source/ui/uno/SwXPrintPreviewSettings.cxx
	sw/source/ui/uno/SwXPrintPreviewSettings.hxx
	sw/source/ui/uno/unoatxt.cxx
	sw/source/ui/uno/unomod.cxx
	sw/source/ui/uno/unotxdoc.cxx
	sw/source/ui/uno/unotxvw.cxx
	sw/source/ui/utlui/attrdesc.cxx
	sw/source/ui/utlui/content.cxx
	sw/source/ui/utlui/glbltree.cxx
	sw/source/ui/utlui/initui.cxx
	sw/source/ui/utlui/makefile.mk
	sw/source/ui/utlui/navipi.cxx
	sw/source/ui/utlui/navipi.src
	sw/source/ui/utlui/numfmtlb.cxx
	sw/source/ui/utlui/prcntfld.cxx
	sw/source/ui/utlui/uiitems.cxx
	sw/source/ui/utlui/uitool.cxx
	sw/source/ui/utlui/unotools.cxx
	sw/source/ui/utlui/viewlayoutctrl.cxx
	sw/source/ui/utlui/zoomctrl.cxx
	sw/source/ui/vba/makefile.mk
	sw/source/ui/vba/service.cxx
	sw/source/ui/web/makefile.mk
	sw/source/ui/wrtsh/makefile.mk
	sw/source/ui/wrtsh/wrtsh1.cxx
	sw/source/ui/wrtsh/wrtsh2.cxx
	sw/source/ui/wrtsh/wrtsh4.cxx
	sw/source/ui/wrtsh/wrtundo.cxx
	sw/util/hidother.src
	sw/util/makefile.mk
	sw/util/msword.map
2011-03-14 16:51:14 +00:00

1047 lines
34 KiB
C++

/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*************************************************************************
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* Copyright 2000, 2010 Oracle and/or its affiliates.
*
* OpenOffice.org - a multi-platform office productivity suite
*
* This file is part of OpenOffice.org.
*
* OpenOffice.org is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License version 3
* only, as published by the Free Software Foundation.
*
* OpenOffice.org is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License version 3 for more details
* (a copy is included in the LICENSE file that accompanied this code).
*
* You should have received a copy of the GNU Lesser General Public License
* version 3 along with OpenOffice.org. If not, see
* <http://www.openoffice.org/license.html>
* for a copy of the LGPLv3 License.
*
************************************************************************/
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_sw.hxx"
#include <hintids.hxx>
#include <tools/urlobj.hxx>
#include <vcl/print.hxx>
#include <vcl/virdev.hxx>
#include <vcl/svapp.hxx>
#include <svtools/imapobj.hxx>
#include <svtools/imap.hxx>
#include <svl/urihelper.hxx>
#include <svtools/soerr.hxx>
#include <sfx2/progress.hxx>
#include <sfx2/docfile.hxx>
#include <sfx2/printer.hxx>
#include <editeng/udlnitem.hxx>
#include <editeng/colritem.hxx>
#include <svx/xoutbmp.hxx>
#include <vcl/window.hxx>
#include <fmturl.hxx>
#include <fmtsrnd.hxx>
#include <frmfmt.hxx>
#include <swrect.hxx>
#include <fesh.hxx>
#include <doc.hxx>
#include <flyfrm.hxx>
#include <frmtool.hxx>
#include <viewopt.hxx>
#include <viewimp.hxx>
#include <pam.hxx>
#include <hints.hxx>
#include <rootfrm.hxx>
#include <dflyobj.hxx>
#include <pagefrm.hxx>
#include <notxtfrm.hxx>
#include <grfatr.hxx>
#include <charatr.hxx>
#include <fmtornt.hxx>
#include <ndnotxt.hxx>
#include <ndgrf.hxx>
#include <ndole.hxx>
#include <swregion.hxx>
#include <poolfmt.hxx>
#include <mdiexp.hxx>
#include <swwait.hxx>
#include <comcore.hrc>
#include <accessibilityoptions.hxx>
#include <com/sun/star/embed/EmbedMisc.hpp>
#include <com/sun/star/embed/EmbedStates.hpp>
#include <svtools/embedhlp.hxx>
#include <svtools/chartprettypainter.hxx>
#include <dview.hxx> // #i99665#
using namespace com::sun::star;
#define DEFTEXTSIZE 12
extern void ClrContourCache( const SdrObject *pObj ); // TxtFly.Cxx
inline sal_Bool GetRealURL( const SwGrfNode& rNd, String& rTxt )
{
sal_Bool bRet = rNd.GetFileFilterNms( &rTxt, 0 );
if( bRet )
rTxt = URIHelper::removePassword( rTxt, INetURLObject::WAS_ENCODED,
INetURLObject::DECODE_UNAMBIGUOUS);
return bRet;
}
void lcl_PaintReplacement( const SwRect &rRect, const String &rText,
const ViewShell &rSh, const SwNoTxtFrm *pFrm,
sal_Bool bDefect )
{
static Font *pFont = 0;
if ( !pFont )
{
pFont = new Font();
pFont->SetWeight( WEIGHT_BOLD );
pFont->SetStyleName( aEmptyStr );
pFont->SetName( String::CreateFromAscii(
RTL_CONSTASCII_STRINGPARAM( "Arial Unicode" )));
pFont->SetFamily( FAMILY_SWISS );
pFont->SetTransparent( sal_True );
}
Color aCol( COL_RED );
FontUnderline eUnderline = UNDERLINE_NONE;
const SwFmtURL &rURL = pFrm->FindFlyFrm()->GetFmt()->GetURL();
if( rURL.GetURL().Len() || rURL.GetMap() )
{
sal_Bool bVisited = sal_False;
if ( rURL.GetMap() )
{
ImageMap *pMap = (ImageMap*)rURL.GetMap();
for( sal_uInt16 i = 0; i < pMap->GetIMapObjectCount(); i++ )
{
IMapObject *pObj = pMap->GetIMapObject( i );
if( rSh.GetDoc()->IsVisitedURL( pObj->GetURL() ) )
{
bVisited = sal_True;
break;
}
}
}
else if ( rURL.GetURL().Len() )
bVisited = rSh.GetDoc()->IsVisitedURL( rURL.GetURL() );
SwFmt *pFmt = rSh.GetDoc()->GetFmtFromPool( static_cast<sal_uInt16>
(bVisited ? RES_POOLCHR_INET_VISIT : RES_POOLCHR_INET_NORMAL ) );
aCol = pFmt->GetColor().GetValue();
eUnderline = pFmt->GetUnderline().GetLineStyle();
}
pFont->SetUnderline( eUnderline );
pFont->SetColor( aCol );
const BitmapEx& rBmp = ViewShell::GetReplacementBitmap( bDefect != sal_False );
Graphic::DrawEx( rSh.GetOut(), rText, *pFont, rBmp, rRect.Pos(), rRect.SSize() );
}
/*************************************************************************
|*
|* SwGrfFrm::SwGrfFrm(ViewShell * const,SwGrfNode *)
|*
*************************************************************************/
SwNoTxtFrm::SwNoTxtFrm(SwNoTxtNode * const pNode)
: SwCntntFrm(pNode)
{
InitCtor();
}
// Initialisierung: z.Zt. Eintragen des Frames im Cache
void SwNoTxtFrm::InitCtor()
{
nType = FRMC_NOTXT;
// Das Gewicht der Grafik ist 0, wenn sie noch nicht
// gelesen ist, < 0, wenn ein Lesefehler auftrat und
// Ersatzdarstellung angewendet werden musste und >0,
// wenn sie zur Verfuegung steht.
nWeight = 0;
}
/*************************************************************************
|*
|* SwNoTxtNode::MakeFrm()
|*
*************************************************************************/
SwCntntFrm *SwNoTxtNode::MakeFrm()
{
return new SwNoTxtFrm(this);
}
/*************************************************************************
|*
|* SwNoTxtFrm::~SwNoTxtFrm()
|*
*************************************************************************/
SwNoTxtFrm::~SwNoTxtFrm()
{
StopAnimation();
}
/*************************************************************************
|*
|* void SwNoTxtFrm::Modify( SwHint * pOld, SwHint * pNew )
|*
*************************************************************************/
void SetOutDev( ViewShell *pSh, OutputDevice *pOut )
{
pSh->pOut = pOut;
}
void lcl_ClearArea( const SwFrm &rFrm,
OutputDevice &rOut, const SwRect& rPtArea,
const SwRect &rGrfArea )
{
SwRegionRects aRegion( rPtArea, 4, 4 );
aRegion -= rGrfArea;
if ( aRegion.Count() )
{
const SvxBrushItem *pItem; const Color *pCol; SwRect aOrigRect;
if ( rFrm.GetBackgroundBrush( pItem, pCol, aOrigRect, sal_False ) )
for( sal_uInt16 i = 0; i < aRegion.Count(); ++i )
::DrawGraphic( pItem, &rOut, aOrigRect, aRegion[i] );
else
{
rOut.Push( PUSH_FILLCOLOR|PUSH_LINECOLOR );
rOut.SetFillColor( rFrm.GetShell()->Imp()->GetRetoucheColor());
rOut.SetLineColor();
for( sal_uInt16 i = 0; i < aRegion.Count(); ++i )
rOut.DrawRect( aRegion[i].SVRect() );
rOut.Pop();
}
}
}
/*************************************************************************
|*
|* void SwNoTxtFrm::Paint()
|*
*************************************************************************/
void SwNoTxtFrm::Paint(SwRect const& rRect, SwPrintData const*const) const
{
if ( Frm().IsEmpty() )
return;
const ViewShell* pSh = GetShell();
if( !pSh->GetViewOptions()->IsGraphic() )
{
StopAnimation();
// #i6467# - no paint of placeholder for page preview
if ( pSh->GetWin() && !pSh->IsPreView() )
{
const SwNoTxtNode* pNd = GetNode()->GetNoTxtNode();
String aTxt( pNd->GetTitle() );
if ( !aTxt.Len() && pNd->IsGrfNode() )
GetRealURL( *(SwGrfNode*)pNd, aTxt );
if( !aTxt.Len() )
aTxt = FindFlyFrm()->GetFmt()->GetName();
lcl_PaintReplacement( Frm(), aTxt, *pSh, this, sal_False );
}
return;
}
if( pSh->GetAccessibilityOptions()->IsStopAnimatedGraphics() ||
// --> FME 2004-06-21 #i9684# Stop animation during printing/pdf export
!pSh->GetWin() )
// <--
StopAnimation();
SfxProgress::EnterLock(); //Keine Progress-Reschedules im Paint (SwapIn)
OutputDevice *pOut = pSh->GetOut();
pOut->Push();
sal_Bool bClip = sal_True;
PolyPolygon aPoly;
SwNoTxtNode& rNoTNd = *(SwNoTxtNode*)GetNode();
SwGrfNode* pGrfNd = rNoTNd.GetGrfNode();
if( pGrfNd )
pGrfNd->SetFrameInPaint( sal_True );
// #i13147# - add 2nd parameter with value <sal_True> to
// method call <FindFlyFrm().GetContour(..)> to indicate that it is called
// for paint in order to avoid load of the intrinsic graphic.
if ( ( !pOut->GetConnectMetaFile() ||
!pSh->GetWin() ) &&
FindFlyFrm()->GetContour( aPoly, sal_True )
)
{
pOut->SetClipRegion( aPoly );
bClip = sal_False;
}
SwRect aOrigPaint( rRect );
if ( HasAnimation() && pSh->GetWin() )
{
aOrigPaint = Frm(); aOrigPaint += Prt().Pos();
}
SwRect aGrfArea( Frm() );
SwRect aPaintArea( aGrfArea );
aPaintArea._Intersection( aOrigPaint );
SwRect aNormal( Frm().Pos() + Prt().Pos(), Prt().SSize() );
aNormal.Justify(); //Normalisiertes Rechteck fuer die Vergleiche
if( aPaintArea.IsOver( aNormal ) )
{
// berechne die 4 zu loeschenden Rechtecke
if( pSh->GetWin() )
::lcl_ClearArea( *this, *pSh->GetOut(), aPaintArea, aNormal );
// in der Schnittmenge vom PaintBereich und der Bitmap liegt
// der absolut sichtbare Bereich vom Frame
aPaintArea._Intersection( aNormal );
if ( bClip )
pOut->IntersectClipRegion( aPaintArea.SVRect() );
/// delete unused 3rd parameter
PaintPicture( pOut, aGrfArea );
}
else
// wenn nicht sichtbar, loesche einfach den angegebenen Bereich
lcl_ClearArea( *this, *pSh->GetOut(), aPaintArea, SwRect() );
if( pGrfNd )
pGrfNd->SetFrameInPaint( sal_False );
pOut->Pop();
SfxProgress::LeaveLock();
}
/*************************************************************************
|*
|* void lcl_CalcRect( Point & aPt, Size & aDim,
|* sal_uInt16 nMirror )
|*
|* Beschreibung Errechne die Position und die Groesse der Grafik im
|* Frame, entsprechen der aktuellen Grafik-Attribute
|*
|* Parameter Point& die Position im Frame ( auch Return-Wert )
|* Size& die Groesse der Grafik ( auch Return-Wert )
|* MirrorGrf akt. Spiegelungs-Attribut
|*
*************************************************************************/
void lcl_CalcRect( Point& rPt, Size& rDim, sal_uInt16 nMirror )
{
if( nMirror == RES_MIRROR_GRAPH_VERT || nMirror == RES_MIRROR_GRAPH_BOTH )
{
rPt.X() += rDim.Width() -1;
rDim.Width() = -rDim.Width();
}
if( nMirror == RES_MIRROR_GRAPH_HOR || nMirror == RES_MIRROR_GRAPH_BOTH )
{
rPt.Y() += rDim.Height() -1;
rDim.Height() = -rDim.Height();
}
}
/*************************************************************************
|*
|* void SwNoTxtFrm::GetGrfArea()
|*
|* Beschreibung Errechne die Position und die Groesse der Bitmap
|* innerhalb des uebergebenem Rechtecks.
|*
*************************************************************************/
void SwNoTxtFrm::GetGrfArea( SwRect &rRect, SwRect* pOrigRect,
sal_Bool ) const
{
//currently only used for scaling, cropping and mirroring the contour of graphics!
//all other is handled by the GraphicObject
//In rRect wird das sichbare Rechteck der Grafik gesteckt.
//In pOrigRect werden Pos+Size der Gesamtgrafik gesteck.
const SwAttrSet& rAttrSet = GetNode()->GetSwAttrSet();
const SwCropGrf& rCrop = rAttrSet.GetCropGrf();
sal_uInt16 nMirror = rAttrSet.GetMirrorGrf().GetValue();
if( rAttrSet.GetMirrorGrf().IsGrfToggle() )
{
if( !(FindPageFrm()->GetVirtPageNum() % 2) )
{
switch ( nMirror )
{
case RES_MIRROR_GRAPH_DONT: nMirror = RES_MIRROR_GRAPH_VERT; break;
case RES_MIRROR_GRAPH_VERT: nMirror = RES_MIRROR_GRAPH_DONT; break;
case RES_MIRROR_GRAPH_HOR: nMirror = RES_MIRROR_GRAPH_BOTH; break;
default: nMirror = RES_MIRROR_GRAPH_HOR; break;
}
}
}
//Grafik wird vom Node eingelesen falls notwendig. Kann aber schiefgehen.
long nLeftCrop, nRightCrop, nTopCrop, nBottomCrop;
Size aOrigSz( ((SwNoTxtNode*)GetNode())->GetTwipSize() );
if ( !aOrigSz.Width() )
{
aOrigSz.Width() = Prt().Width();
nLeftCrop = -rCrop.GetLeft();
nRightCrop = -rCrop.GetRight();
}
else
{
nLeftCrop = Max( aOrigSz.Width() -
(rCrop.GetRight() + rCrop.GetLeft()), long(1) );
const double nScale = double(Prt().Width()) / double(nLeftCrop);
nLeftCrop = long(nScale * -rCrop.GetLeft() );
nRightCrop = long(nScale * -rCrop.GetRight() );
}
// crop values have to be mirrored too
if( nMirror == RES_MIRROR_GRAPH_VERT || nMirror == RES_MIRROR_GRAPH_BOTH )
{
long nTmpCrop = nLeftCrop;
nLeftCrop = nRightCrop;
nRightCrop= nTmpCrop;
}
if( !aOrigSz.Height() )
{
aOrigSz.Height() = Prt().Height();
nTopCrop = -rCrop.GetTop();
nBottomCrop= -rCrop.GetBottom();
}
else
{
nTopCrop = Max( aOrigSz.Height() - (rCrop.GetTop() + rCrop.GetBottom()), long(1) );
const double nScale = double(Prt().Height()) / double(nTopCrop);
nTopCrop = long(nScale * -rCrop.GetTop() );
nBottomCrop= long(nScale * -rCrop.GetBottom() );
}
// crop values have to be mirrored too
if( nMirror == RES_MIRROR_GRAPH_HOR || nMirror == RES_MIRROR_GRAPH_BOTH )
{
long nTmpCrop = nTopCrop;
nTopCrop = nBottomCrop;
nBottomCrop= nTmpCrop;
}
Size aVisSz( Prt().SSize() );
Size aGrfSz( aVisSz );
Point aVisPt( Frm().Pos() + Prt().Pos() );
Point aGrfPt( aVisPt );
//Erst das 'sichtbare' Rect einstellen.
if ( nLeftCrop > 0 )
{
aVisPt.X() += nLeftCrop;
aVisSz.Width() -= nLeftCrop;
}
if ( nTopCrop > 0 )
{
aVisPt.Y() += nTopCrop;
aVisSz.Height() -= nTopCrop;
}
if ( nRightCrop > 0 )
aVisSz.Width() -= nRightCrop;
if ( nBottomCrop > 0 )
aVisSz.Height() -= nBottomCrop;
rRect.Pos ( aVisPt );
rRect.SSize( aVisSz );
//Ggf. Die Gesamtgrafik berechnen
if ( pOrigRect )
{
Size aTmpSz( aGrfSz );
aGrfPt.X() += nLeftCrop;
aTmpSz.Width() -= nLeftCrop + nRightCrop;
aGrfPt.Y() += nTopCrop;
aTmpSz.Height()-= nTopCrop + nBottomCrop;
if( RES_MIRROR_GRAPH_DONT != nMirror )
lcl_CalcRect( aGrfPt, aTmpSz, nMirror );
pOrigRect->Pos ( aGrfPt );
pOrigRect->SSize( aTmpSz );
}
}
/*************************************************************************
|*
|* Size SwNoTxtFrm::GetSize()
|*
|* Beschreibung Gebe die Groesse des umgebenen FLys und
|* damit die der Grafik zurueck.
|*
*************************************************************************/
const Size& SwNoTxtFrm::GetSize() const
{
// gebe die Groesse des Frames zurueck
const SwFrm *pFly = FindFlyFrm();
if( !pFly )
pFly = this;
return pFly->Prt().SSize();
}
/*************************************************************************
|*
|* SwNoTxtFrm::MakeAll()
|*
*************************************************************************/
void SwNoTxtFrm::MakeAll()
{
SwCntntNotify aNotify( this );
SwBorderAttrAccess aAccess( SwFrm::GetCache(), this );
const SwBorderAttrs &rAttrs = *aAccess.Get();
while ( !bValidPos || !bValidSize || !bValidPrtArea )
{
MakePos();
if ( !bValidSize )
Frm().Width( GetUpper()->Prt().Width() );
MakePrtArea( rAttrs );
if ( !bValidSize )
{ bValidSize = sal_True;
Format();
}
}
}
/*************************************************************************
|*
|* SwNoTxtFrm::Format()
|*
|* Beschreibung Errechne die Groesse der Bitmap, wenn noetig
|*
*************************************************************************/
void SwNoTxtFrm::Format( const SwBorderAttrs * )
{
const Size aNewSize( GetSize() );
// hat sich die Hoehe geaendert?
SwTwips nChgHght = IsVertical() ?
(SwTwips)(aNewSize.Width() - Prt().Width()) :
(SwTwips)(aNewSize.Height() - Prt().Height());
if( nChgHght > 0)
Grow( nChgHght );
else if( nChgHght < 0)
Shrink( Min(Prt().Height(), -nChgHght) );
}
/*************************************************************************
|*
|* SwNoTxtFrm::GetCharRect()
|*
|*************************************************************************/
sal_Bool SwNoTxtFrm::GetCharRect( SwRect &rRect, const SwPosition& rPos,
SwCrsrMoveState *pCMS ) const
{
if ( &rPos.nNode.GetNode() != (SwNode*)GetNode() )
return sal_False;
Calc();
SwRect aFrameRect( Frm() );
rRect = aFrameRect;
rRect.Pos( Frm().Pos() + Prt().Pos() );
rRect.SSize( Prt().SSize() );
rRect.Justify();
// liegt die Bitmap ueberhaupt im sichtbaren Berich ?
if( !aFrameRect.IsOver( rRect ) )
{
// wenn nicht dann steht der Cursor auf dem Frame
rRect = aFrameRect;
rRect.Width( 1 );
}
else
rRect._Intersection( aFrameRect );
if ( pCMS )
{
if ( pCMS->bRealHeight )
{
pCMS->aRealHeight.Y() = rRect.Height();
pCMS->aRealHeight.X() = 0;
}
}
return sal_True;
}
sal_Bool SwNoTxtFrm::GetCrsrOfst(SwPosition* pPos, Point& ,
SwCrsrMoveState* ) const
{
SwCntntNode* pCNd = (SwCntntNode*)GetNode();
pPos->nNode = *pCNd;
pPos->nContent.Assign( pCNd, 0 );
return sal_True;
}
#define CLEARCACHE( pNd ) {\
(pNd)->GetGrfObj().ReleaseFromCache();\
SwFlyFrm* pFly = FindFlyFrm();\
if( pFly && pFly->GetFmt()->GetSurround().IsContour() )\
{\
ClrContourCache( pFly->GetVirtDrawObj() );\
pFly->NotifyBackground( FindPageFrm(), Prt(), PREP_FLY_ATTR_CHG );\
}\
}
void SwNoTxtFrm::Modify( SfxPoolItem* pOld, SfxPoolItem* pNew )
{
sal_uInt16 nWhich = pNew ? pNew->Which() : pOld ? pOld->Which() : 0;
// #i73788#
// no <SwCntntFrm::Modify(..)> for RES_LINKED_GRAPHIC_STREAM_ARRIVED
if ( RES_GRAPHIC_PIECE_ARRIVED != nWhich &&
RES_GRAPHIC_ARRIVED != nWhich &&
RES_GRF_REREAD_AND_INCACHE != nWhich &&
RES_LINKED_GRAPHIC_STREAM_ARRIVED != nWhich )
// <--
{
SwCntntFrm::Modify( pOld, pNew );
}
sal_Bool bComplete = sal_True;
switch( nWhich )
{
case RES_OBJECTDYING:
break;
case RES_GRF_REREAD_AND_INCACHE:
if( ND_GRFNODE == GetNode()->GetNodeType() )
{
bComplete = sal_False;
SwGrfNode* pNd = (SwGrfNode*) GetNode();
ViewShell *pVSh = 0;
pNd->GetDoc()->GetEditShell( &pVSh );
if( pVSh )
{
GraphicAttr aAttr;
if( pNd->GetGrfObj().IsCached( pVSh->GetOut(), Point(),
Prt().SSize(), &pNd->GetGraphicAttr( aAttr, this ) ))
{
ViewShell *pSh = pVSh;
do {
SET_CURR_SHELL( pSh );
if( pSh->GetWin() )
{
if( pSh->IsPreView() )
::RepaintPagePreview( pSh, Frm().SVRect() );
else
pSh->GetWin()->Invalidate( Frm().SVRect() );
}
} while( pVSh != (pSh = (ViewShell*)pSh->GetNext() ));
}
else
pNd->SwapIn();
}
}
break;
case RES_UPDATE_ATTR:
case RES_FMT_CHG:
CLEARCACHE( (SwGrfNode*) GetNode() )
break;
case RES_ATTRSET_CHG:
{
sal_uInt16 n;
for( n = RES_GRFATR_BEGIN; n < RES_GRFATR_END; ++n )
if( SFX_ITEM_SET == ((SwAttrSetChg*)pOld)->GetChgSet()->
GetItemState( n, sal_False ))
{
CLEARCACHE( (SwGrfNode*) GetNode() )
break;
}
if( RES_GRFATR_END == n ) // not found
return ;
}
break;
case RES_GRAPHIC_PIECE_ARRIVED:
case RES_GRAPHIC_ARRIVED:
// i73788# - handle RES_LINKED_GRAPHIC_STREAM_ARRIVED as RES_GRAPHIC_ARRIVED
case RES_LINKED_GRAPHIC_STREAM_ARRIVED:
if ( GetNode()->GetNodeType() == ND_GRFNODE )
{
bComplete = sal_False;
SwGrfNode* pNd = (SwGrfNode*) GetNode();
CLEARCACHE( pNd )
SwRect aRect( Frm() );
ViewShell *pVSh = 0;
pNd->GetDoc()->GetEditShell( &pVSh );
if( !pVSh )
break;
ViewShell *pSh = pVSh;
do {
SET_CURR_SHELL( pSh );
if( pSh->IsPreView() )
{
if( pSh->GetWin() )
::RepaintPagePreview( pSh, aRect );
}
else if ( pSh->VisArea().IsOver( aRect ) &&
OUTDEV_WINDOW == pSh->GetOut()->GetOutDevType() )
{
//invalidate instead of painting
pSh->GetWin()->Invalidate( aRect.SVRect() );
}
pSh = (ViewShell *)pSh->GetNext();
} while( pSh != pVSh );
}
break;
default:
if ( !pNew || !isGRFATR(nWhich) )
return;
}
if( bComplete )
{
InvalidatePrt();
SetCompletePaint();
}
}
void lcl_correctlyAlignRect( SwRect& rAlignedGrfArea, const SwRect& rInArea, OutputDevice* pOut )
{
if(!pOut)
return;
Rectangle aPxRect = pOut->LogicToPixel( rInArea.SVRect() );
Rectangle aNewPxRect( aPxRect );
while( aNewPxRect.Left() < aPxRect.Left() )
{
rAlignedGrfArea.Left( rAlignedGrfArea.Left()+1 );
aNewPxRect = pOut->LogicToPixel( rAlignedGrfArea.SVRect() );
}
while( aNewPxRect.Top() < aPxRect.Top() )
{
rAlignedGrfArea.Top( rAlignedGrfArea.Top()+1 );
aNewPxRect = pOut->LogicToPixel( rAlignedGrfArea.SVRect() );
}
while( aNewPxRect.Bottom() > aPxRect.Bottom() )
{
rAlignedGrfArea.Bottom( rAlignedGrfArea.Bottom()-1 );
aNewPxRect = pOut->LogicToPixel( rAlignedGrfArea.SVRect() );
}
while( aNewPxRect.Right() > aPxRect.Right() )
{
rAlignedGrfArea.Right( rAlignedGrfArea.Right()-1 );
aNewPxRect = pOut->LogicToPixel( rAlignedGrfArea.SVRect() );
}
}
// Ausgabe der Grafik. Hier wird entweder eine QuickDraw-Bmp oder
// eine Grafik vorausgesetzt. Ist nichts davon vorhanden, wird
// eine Ersatzdarstellung ausgegeben.
/// delete unused 3rd parameter.
/// use aligned rectangle for drawing graphic.
/// pixel-align coordinations for drawing graphic.
void SwNoTxtFrm::PaintPicture( OutputDevice* pOut, const SwRect &rGrfArea ) const
{
ViewShell* pShell = GetShell();
SwNoTxtNode& rNoTNd = *(SwNoTxtNode*)GetNode();
SwGrfNode* pGrfNd = rNoTNd.GetGrfNode();
SwOLENode* pOLENd = rNoTNd.GetOLENode();
const sal_Bool bPrn = pOut == rNoTNd.getIDocumentDeviceAccess()->getPrinter( false ) ||
pOut->GetConnectMetaFile();
const bool bIsChart = pOLENd && ChartPrettyPainter::IsChart( pOLENd->GetOLEObj().GetObject() );
/// calculate aligned rectangle from parameter <rGrfArea>.
/// Use aligned rectangle <aAlignedGrfArea> instead of <rGrfArea> in
/// the following code.
SwRect aAlignedGrfArea = rGrfArea;
::SwAlignRect( aAlignedGrfArea, pShell );
if( !bIsChart )
{
/// Because for drawing a graphic left-top-corner and size coordinations are
/// used, these coordinations have to be determined on pixel level.
::SwAlignGrfRect( &aAlignedGrfArea, *pOut );
}
else //if( bIsChart )
{
//#i78025# charts own borders are not completely visible
//the above pixel correction is not correct - at least not for charts
//so a different pixel correction is choosen here
//this might be a good idea for all other OLE objects also,
//but as I cannot oversee the consequences I fix it only for charts for now
lcl_correctlyAlignRect( aAlignedGrfArea, rGrfArea, pOut );
}
if( pGrfNd )
{
sal_Bool bForceSwap = sal_False, bContinue = sal_True;
GraphicObject& rGrfObj = pGrfNd->GetGrfObj();
GraphicAttr aGrfAttr;
pGrfNd->GetGraphicAttr( aGrfAttr, this );
if( !bPrn )
{
// #i73788#
if ( pGrfNd->IsLinkedInputStreamReady() )
{
pGrfNd->UpdateLinkWithInputStream();
}
// <--
// #i85717#, #i90395# - check, if asynchronous retrieval
// if input stream for the graphic is possible
// else if( GRAPHIC_DEFAULT == rGrfObj.GetType() &&
else if ( ( rGrfObj.GetType() == GRAPHIC_DEFAULT ||
rGrfObj.GetType() == GRAPHIC_NONE ) &&
pGrfNd->IsLinkedFile() &&
pGrfNd->IsAsyncRetrieveInputStreamPossible() )
// <--
{
Size aTmpSz;
::sfx2::SvLinkSource* pGrfObj = pGrfNd->GetLink()->GetObj();
if( !pGrfObj ||
!pGrfObj->IsDataComplete() ||
!(aTmpSz = pGrfNd->GetTwipSize()).Width() ||
!aTmpSz.Height() || !pGrfNd->GetAutoFmtLvl() )
{
pGrfNd->TriggerAsyncRetrieveInputStream(); // #i73788#
}
String aTxt( pGrfNd->GetTitle() );
if ( !aTxt.Len() )
GetRealURL( *pGrfNd, aTxt );
::lcl_PaintReplacement( aAlignedGrfArea, aTxt, *pShell, this, sal_False );
bContinue = sal_False;
}
else if( rGrfObj.IsCached( pOut, aAlignedGrfArea.Pos(),
aAlignedGrfArea.SSize(), &aGrfAttr ))
{
rGrfObj.DrawWithPDFHandling( *pOut,
aAlignedGrfArea.Pos(), aAlignedGrfArea.SSize(),
&aGrfAttr );
bContinue = sal_False;
}
}
if( bContinue )
{
const sal_Bool bSwapped = rGrfObj.IsSwappedOut();
const sal_Bool bSwappedIn = 0 != pGrfNd->SwapIn( bPrn );
if( bSwappedIn && rGrfObj.GetGraphic().IsSupportedGraphic())
{
const sal_Bool bAnimate = rGrfObj.IsAnimated() &&
!pShell->IsPreView() &&
!pShell->GetAccessibilityOptions()->IsStopAnimatedGraphics() &&
// --> FME 2004-06-21 #i9684# Stop animation during printing/pdf export
pShell->GetWin();
// <--
if( bAnimate &&
FindFlyFrm() != ::GetFlyFromMarked( 0, pShell ))
{
OutputDevice* pVout;
if( pOut == pShell->GetOut() && SwRootFrm::FlushVout() )
pVout = pOut, pOut = pShell->GetOut();
else if( pShell->GetWin() &&
OUTDEV_VIRDEV == pOut->GetOutDevType() )
pVout = pOut, pOut = pShell->GetWin();
else
pVout = 0;
OSL_ENSURE( OUTDEV_VIRDEV != pOut->GetOutDevType() ||
pShell->GetViewOptions()->IsPDFExport(),
"pOut sollte kein virtuelles Device sein" );
rGrfObj.StartAnimation( pOut, aAlignedGrfArea.Pos(),
aAlignedGrfArea.SSize(), long(this),
0, GRFMGR_DRAW_STANDARD, pVout );
}
else
rGrfObj.DrawWithPDFHandling( *pOut,
aAlignedGrfArea.Pos(), aAlignedGrfArea.SSize(),
&aGrfAttr );
}
else
{
sal_uInt16 nResId = 0;
if( bSwappedIn )
{
if( GRAPHIC_NONE == rGrfObj.GetType() )
nResId = STR_COMCORE_READERROR;
else if ( !rGrfObj.GetGraphic().IsSupportedGraphic() )
nResId = STR_COMCORE_CANT_SHOW;
}
((SwNoTxtFrm*)this)->nWeight = -1;
String aText;
if ( !nResId &&
!(aText = pGrfNd->GetTitle()).Len() &&
(!GetRealURL( *pGrfNd, aText ) || !aText.Len()))
{
nResId = STR_COMCORE_READERROR;
}
if ( nResId )
aText = SW_RESSTR( nResId );
::lcl_PaintReplacement( aAlignedGrfArea, aText, *pShell, this, sal_True );
}
//Beim Drucken duerfen wir nicht die Grafiken sammeln...
if( bSwapped && bPrn )
bForceSwap = sal_True;
}
if( bForceSwap )
pGrfNd->SwapOut();
}
else if( bIsChart
//charts must be painted resolution dependent!! #i82893#, #i75867#
&& ChartPrettyPainter::ShouldPrettyPaintChartOnThisDevice( pOut )
&& svt::EmbeddedObjectRef::TryRunningState( pOLENd->GetOLEObj().GetOleRef() )
&& ChartPrettyPainter::DoPrettyPaintChart( uno::Reference< frame::XModel >(
pOLENd->GetOLEObj().GetOleRef()->getComponent(), uno::UNO_QUERY), pOut, aAlignedGrfArea.SVRect() ) )
{
(void)(0);//all was done in if statement
}
else if( pOLENd )
{
// #i99665#
// Adjust AntiAliasing mode at output device for chart OLE
const sal_uInt16 nFormerAntialiasingAtOutput( pOut->GetAntialiasing() );
if ( pOLENd->IsChart() &&
pShell->Imp()->GetDrawView()->IsAntiAliasing() )
{
const sal_uInt16 nAntialiasingForChartOLE =
nFormerAntialiasingAtOutput | ANTIALIASING_PIXELSNAPHAIRLINE;
pOut->SetAntialiasing( nAntialiasingForChartOLE );
}
// <--
Point aPosition(aAlignedGrfArea.Pos());
Size aSize(aAlignedGrfArea.SSize());
// Im BrowseModus gibt es nicht unbedingt einen Drucker und
// damit kein JobSetup, also legen wir eines an ...
const JobSetup* pJobSetup = pOLENd->getIDocumentDeviceAccess()->getJobsetup();
sal_Bool bDummyJobSetup = 0 == pJobSetup;
if( bDummyJobSetup )
pJobSetup = new JobSetup();
// #i42323#
//TODO/LATER: is it a problem that the JopSetup isn't used?
//xRef->DoDraw( pOut, aAlignedGrfArea.Pos(), aAlignedGrfArea.SSize(), *pJobSetup );
Graphic* pGraphic = pOLENd->GetGraphic();
if ( pGraphic && pGraphic->GetType() != GRAPHIC_NONE )
{
pGraphic->Draw( pOut, aPosition, aSize );
// shade the representation if the object is activated outplace
uno::Reference < embed::XEmbeddedObject > xObj = pOLENd->GetOLEObj().GetOleRef();
if ( xObj.is() && xObj->getCurrentState() == embed::EmbedStates::ACTIVE )
{
::svt::EmbeddedObjectRef::DrawShading( Rectangle( aPosition, aSize ), pOut );
}
}
else
::svt::EmbeddedObjectRef::DrawPaintReplacement( Rectangle( aPosition, aSize ), pOLENd->GetOLEObj().GetCurrentPersistName(), pOut );
if( bDummyJobSetup )
delete pJobSetup; // ... und raeumen wieder auf.
sal_Int64 nMiscStatus = pOLENd->GetOLEObj().GetOleRef()->getStatus( pOLENd->GetAspect() );
if ( !bPrn && pShell->ISA( SwCrsrShell ) &&
nMiscStatus & embed::EmbedMisc::MS_EMBED_ACTIVATEWHENVISIBLE )
{
const SwFlyFrm *pFly = FindFlyFrm();
OSL_ENSURE( pFly, "OLE not in FlyFrm" );
((SwFEShell*)pShell)->ConnectObj( pOLENd->GetOLEObj().GetObject(), pFly->Prt(), pFly->Frm());
}
// #i99665#
if ( pOLENd->IsChart() &&
pShell->Imp()->GetDrawView()->IsAntiAliasing() )
{
pOut->SetAntialiasing( nFormerAntialiasingAtOutput );
}
// <--
}
}
sal_Bool SwNoTxtFrm::IsTransparent() const
{
const ViewShell* pSh = GetShell();
if ( !pSh || !pSh->GetViewOptions()->IsGraphic() )
return sal_True;
const SwGrfNode *pNd;
if( 0 != (pNd = GetNode()->GetGrfNode()) )
return pNd->IsTransparent();
//#29381# OLE sind immer Transparent.
return sal_True;
}
void SwNoTxtFrm::StopAnimation( OutputDevice* pOut ) const
{
//animierte Grafiken anhalten
SwGrfNode* pGrfNd = (SwGrfNode*)GetNode()->GetGrfNode();
if( pGrfNd && pGrfNd->IsAnimated() )
pGrfNd->GetGrfObj().StopAnimation( pOut, long(this) );
}
sal_Bool SwNoTxtFrm::HasAnimation() const
{
const SwGrfNode* pGrfNd = GetNode()->GetGrfNode();
return pGrfNd && pGrfNd->IsAnimated();
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */