From f47a9d9db3d06927380bb79b04bb6d4721a92d2b Mon Sep 17 00:00:00 2001
From: Jens-Heiner Rechtien
Date: Mon, 18 Sep 2000 16:07:07 +0000
Subject: initial import
---
sd/inc/anmdef.hxx | 75 +
sd/inc/anminfo.hxx | 153 +
sd/inc/app.hrc | 463 ++
sd/inc/app.hxx | 63 +
sd/inc/cusshow.hxx | 110 +
sd/inc/diadef.h | 76 +
sd/inc/drawdoc.hxx | 403 ++
sd/inc/eetext.hxx | 119 +
sd/inc/fadedef.h | 78 +
sd/inc/glob.hrc | 154 +
sd/inc/glob.hxx | 114 +
sd/inc/helpids.h | 217 +
sd/inc/imapinfo.hxx | 148 +
sd/inc/misc.hxx | 70 +
sd/inc/movedef.hxx | 76 +
sd/inc/pglink.hxx | 98 +
sd/inc/pres.hxx | 115 +
sd/inc/resltn.hxx | 85 +
sd/inc/sdattr.hxx | 406 ++
sd/inc/sddll.hxx | 166 +
sd/inc/sdiocmpt.hxx | 89 +
sd/inc/sdmod.hxx | 173 +
sd/inc/sdobjfac.hxx | 95 +
sd/inc/sdpage.hxx | 268 +
sd/inc/sdresid.hxx | 80 +
sd/inc/sduiks.hrc | 107 +
sd/inc/sdundo.hxx | 87 +
sd/inc/sdxmlwrp.hxx | 94 +
sd/inc/segdefs.hxx | 63 +
sd/inc/segdefs_.hxx | 1434 ++++
sd/inc/stlpool.hxx | 120 +
sd/inc/stlsheet.hxx | 103 +
sd/inc/strmname.h | 81 +
sd/prj/d.lst | 78 +
sd/prj/make.bat | 92 +
sd/prj/postdlv.btm | 2 +
sd/prj/stree.bat | 151 +
sd/prj/struct.txt | 54 +
sd/res/webview/common.inc | 110 +
sd/res/webview/edit.asp | 9 +
sd/res/webview/editpic.asp | 58 +
sd/res/webview/poll.asp | 36 +
sd/res/webview/savepic.asp | 39 +
sd/res/webview/show.asp | 42 +
sd/res/webview/webview.asp | 28 +
sd/sdi/_docsh.sdi | 133 +
sd/sdi/_drvwsh.sdi | 2299 +++++++
sd/sdi/app.sdi | 68 +
sd/sdi/docshell.sdi | 52 +
sd/sdi/drbezob.sdi | 64 +
sd/sdi/drgrfob.sdi | 111 +
sd/sdi/drtxtob.sdi | 165 +
sd/sdi/drviewsh.sdi | 245 +
sd/sdi/grdocsh.sdi | 52 +
sd/sdi/grviewsh.sdi | 52 +
sd/sdi/makefile.mk | 124 +
sd/sdi/outlnvsh.sdi | 419 ++
sd/sdi/sdgslots.sdi | 124 +
sd/sdi/sdnew.sdi | 188 +
sd/sdi/sdraw.sdi | 6241 +++++++++++++++++
sd/sdi/sdslots.hrc | 65 +
sd/sdi/sdslots.sdi | 124 +
sd/sdi/svxitems.sdi | 92 +
sd/source/filter/eppt/eppt.cxx | 2354 +++++++
sd/source/filter/eppt/eppt.hxx | 964 +++
sd/source/filter/eppt/epptdef.hxx | 296 +
sd/source/filter/eppt/epptso.cxx | 5519 +++++++++++++++
sd/source/filter/eppt/escherex.cxx | 1231 ++++
sd/source/filter/eppt/escherex.hxx | 1209 ++++
sd/source/filter/eppt/makefile.mk | 198 +
sd/source/filter/makefile.mk | 91 +
sd/source/filter/pptin.cxx | 2558 +++++++
sd/source/filter/propread.cxx | 648 ++
sd/source/filter/propread.hxx | 231 +
sd/source/filter/xml/makefile.mk | 83 +
sd/source/filter/xml/sdxmlwrp.cxx | 328 +
sd/source/ui/app/_app.hrc | 76 +
sd/source/ui/app/app.img | 120 +
sd/source/ui/app/app.src | 464 ++
sd/source/ui/app/makefile.mk | 148 +
sd/source/ui/app/optsitem.cxx | 1181 ++++
sd/source/ui/app/popup.src | 354 +
sd/source/ui/app/res_bmp.src | 686 ++
sd/source/ui/app/sddll.cxx | 161 +
sd/source/ui/app/sddll1.cxx | 149 +
sd/source/ui/app/sddll2.cxx | 246 +
sd/source/ui/app/sdmod.cxx | 379 ++
sd/source/ui/app/sdmod1.cxx | 793 +++
sd/source/ui/app/sdmod2.cxx | 795 +++
sd/source/ui/app/sdpopup.cxx | 332 +
sd/source/ui/app/sdresid.cxx | 98 +
sd/source/ui/app/sdstring.src | 650 ++
sd/source/ui/app/strings.src | 11209 +++++++++++++++++++++++++++++++
sd/source/ui/app/tbx_ww.src | 1439 ++++
sd/source/ui/app/tbxww.cxx | 492 ++
sd/source/ui/app/toolbox.src | 767 +++
sd/source/ui/dlg/animobjs.cxx | 1443 ++++
sd/source/ui/dlg/animobjs.src | 1464 ++++
sd/source/ui/dlg/assclass.cxx | 258 +
sd/source/ui/dlg/brkdlg.cxx | 209 +
sd/source/ui/dlg/brkdlg.src | 110 +
sd/source/ui/dlg/copydlg.cxx | 394 ++
sd/source/ui/dlg/copydlg.src | 622 ++
sd/source/ui/dlg/custsdlg.cxx | 591 ++
sd/source/ui/dlg/custsdlg.src | 464 ++
sd/source/ui/dlg/diactrl.cxx | 765 +++
sd/source/ui/dlg/dlg_char.src | 207 +
sd/source/ui/dlg/dlgass.cxx | 1925 ++++++
sd/source/ui/dlg/dlgass.src | 1197 ++++
sd/source/ui/dlg/dlgassim.cxx | 535 ++
sd/source/ui/dlg/dlgassim.hxx | 161 +
sd/source/ui/dlg/dlgchar.cxx | 122 +
sd/source/ui/dlg/dlgctrls.cxx | 158 +
sd/source/ui/dlg/dlgfield.cxx | 307 +
sd/source/ui/dlg/dlgfield.src | 223 +
sd/source/ui/dlg/dlgolbul.cxx | 281 +
sd/source/ui/dlg/dlgolbul.src | 223 +
sd/source/ui/dlg/dlgpage.cxx | 164 +
sd/source/ui/dlg/dlgpage.src | 206 +
sd/source/ui/dlg/dlgsnap.cxx | 253 +
sd/source/ui/dlg/dlgsnap.src | 348 +
sd/source/ui/dlg/docprev.cxx | 274 +
sd/source/ui/dlg/gluectrl.cxx | 403 ++
sd/source/ui/dlg/inspagob.cxx | 211 +
sd/source/ui/dlg/inspagob.src | 171 +
sd/source/ui/dlg/makefile.mk | 232 +
sd/source/ui/dlg/morphdlg.cxx | 215 +
sd/source/ui/dlg/morphdlg.src | 238 +
sd/source/ui/dlg/navigatr.cxx | 947 +++
sd/source/ui/dlg/navigatr.src | 356 +
sd/source/ui/dlg/paragr.cxx | 116 +
sd/source/ui/dlg/paragr.src | 253 +
sd/source/ui/dlg/present.cxx | 289 +
sd/source/ui/dlg/present.src | 664 ++
sd/source/ui/dlg/printdlg.cxx | 116 +
sd/source/ui/dlg/printdlg.src | 244 +
sd/source/ui/dlg/prltempl.cxx | 472 ++
sd/source/ui/dlg/prltempl.src | 525 ++
sd/source/ui/dlg/prntopts.cxx | 331 +
sd/source/ui/dlg/prntopts.src | 718 ++
sd/source/ui/dlg/sdpreslt.cxx | 358 +
sd/source/ui/dlg/sdpreslt.src | 227 +
sd/source/ui/dlg/sdtreelb.cxx | 985 +++
sd/source/ui/dlg/tabtempl.cxx | 289 +
sd/source/ui/dlg/tabtempl.src | 472 ++
sd/source/ui/dlg/tpaction.cxx | 1234 ++++
sd/source/ui/dlg/tpoption.cxx | 639 ++
sd/source/ui/dlg/tpoption.src | 1438 ++++
sd/source/ui/dlg/unchss.cxx | 183 +
sd/source/ui/dlg/vectdlg.cxx | 440 ++
sd/source/ui/dlg/vectdlg.src | 446 ++
sd/source/ui/docshell/docshel2.cxx | 524 ++
sd/source/ui/docshell/docshel3.cxx | 344 +
sd/source/ui/docshell/docshel4.cxx | 1089 +++
sd/source/ui/docshell/docshell.cxx | 538 ++
sd/source/ui/docshell/grdocsh.cxx | 152 +
sd/source/ui/docshell/makefile.mk | 93 +
sd/source/ui/docshell/sdclient.cxx | 335 +
sd/source/ui/func/bulmaper.cxx | 227 +
sd/source/ui/func/fuarea.cxx | 148 +
sd/source/ui/func/fubullet.cxx | 208 +
sd/source/ui/func/fuchar.cxx | 151 +
sd/source/ui/func/fucon3d.cxx | 468 ++
sd/source/ui/func/fuconarc.cxx | 313 +
sd/source/ui/func/fuconbez.cxx | 385 ++
sd/source/ui/func/fuconnct.cxx | 124 +
sd/source/ui/func/fuconrec.cxx | 770 +++
sd/source/ui/func/fuconstr.cxx | 487 ++
sd/source/ui/func/fuconuno.cxx | 236 +
sd/source/ui/func/fucopy.cxx | 392 ++
sd/source/ui/func/fucushow.cxx | 119 +
sd/source/ui/func/fudraw.cxx | 1216 ++++
sd/source/ui/func/fudspord.cxx | 213 +
sd/source/ui/func/fuediglu.cxx | 489 ++
sd/source/ui/func/fuexpand.cxx | 252 +
sd/source/ui/func/fuinsert.cxx | 836 +++
sd/source/ui/func/fuinsfil.cxx | 858 +++
sd/source/ui/func/fuline.cxx | 181 +
sd/source/ui/func/fulinend.cxx | 230 +
sd/source/ui/func/fulink.cxx | 106 +
sd/source/ui/func/fumeasur.cxx | 122 +
sd/source/ui/func/fumorph.cxx | 447 ++
sd/source/ui/func/fuoaprms.cxx | 985 +++
sd/source/ui/func/fuolbull.cxx | 193 +
sd/source/ui/func/fuoltext.cxx | 392 ++
sd/source/ui/func/fuoutl.cxx | 120 +
sd/source/ui/func/fupage.cxx | 587 ++
sd/source/ui/func/fuparagr.cxx | 196 +
sd/source/ui/func/fupoor.cxx | 710 ++
sd/source/ui/func/fuprlout.cxx | 317 +
sd/source/ui/func/fuprobjs.cxx | 200 +
sd/source/ui/func/fuscale.cxx | 275 +
sd/source/ui/func/fusearch.cxx | 185 +
sd/source/ui/func/fusel.cxx | 1430 ++++
sd/source/ui/func/fusldlg.cxx | 274 +
sd/source/ui/func/fusnapln.cxx | 212 +
sd/source/ui/func/fuspell.cxx | 177 +
sd/source/ui/func/fusumry.cxx | 255 +
sd/source/ui/func/futempl.cxx | 555 ++
sd/source/ui/func/futext.cxx | 1292 ++++
sd/source/ui/func/futext2.cxx | 106 +
sd/source/ui/func/futhes.cxx | 209 +
sd/source/ui/func/futransf.cxx | 246 +
sd/source/ui/func/futxtatt.cxx | 124 +
sd/source/ui/func/fuvect.cxx | 130 +
sd/source/ui/func/fuzoom.cxx | 326 +
sd/source/ui/func/makefile.mk | 271 +
sd/source/ui/func/outlinfo.cxx | 217 +
sd/source/ui/func/sdundo.cxx | 70 +
sd/source/ui/func/sdundogr.cxx | 156 +
sd/source/ui/func/undopage.cxx | 279 +
sd/source/ui/func/unmovss.cxx | 224 +
sd/source/ui/func/unoaprms.cxx | 241 +
sd/source/ui/func/unprlout.cxx | 162 +
sd/source/ui/inc/3dchld.hxx | 86 +
sd/source/ui/inc/animobjs.hrc | 85 +
sd/source/ui/inc/animobjs.hxx | 260 +
sd/source/ui/inc/assclass.hxx | 121 +
sd/source/ui/inc/bmcache.hxx | 92 +
sd/source/ui/inc/brkdlg.hrc | 68 +
sd/source/ui/inc/bulmaper.hxx | 79 +
sd/source/ui/inc/cfgids.hxx | 108 +
sd/source/ui/inc/copydlg.hrc | 85 +
sd/source/ui/inc/copydlg.hxx | 145 +
sd/source/ui/inc/custsdlg.hrc | 81 +
sd/source/ui/inc/custsdlg.hxx | 160 +
sd/source/ui/inc/diactrl.hxx | 273 +
sd/source/ui/inc/dlg_char.hrc | 62 +
sd/source/ui/inc/dlg_char.hxx | 97 +
sd/source/ui/inc/dlgass.hrc | 119 +
sd/source/ui/inc/dlgass.hxx | 124 +
sd/source/ui/inc/dlgctrls.hxx | 101 +
sd/source/ui/inc/dlgfield.hrc | 69 +
sd/source/ui/inc/dlgfield.hxx | 115 +
sd/source/ui/inc/dlgolbul.hrc | 61 +
sd/source/ui/inc/dlgpage.hrc | 61 +
sd/source/ui/inc/dlgpage.hxx | 117 +
sd/source/ui/inc/dlgsnap.hrc | 74 +
sd/source/ui/inc/dlgsnap.hxx | 139 +
sd/source/ui/inc/docprev.hxx | 114 +
sd/source/ui/inc/drawview.hxx | 145 +
sd/source/ui/inc/enumdlg.hrc | 76 +
sd/source/ui/inc/fontwork.hrc | 79 +
sd/source/ui/inc/fuarea.hxx | 85 +
sd/source/ui/inc/fubullet.hxx | 80 +
sd/source/ui/inc/fuchar.hxx | 83 +
sd/source/ui/inc/fucon3d.hxx | 99 +
sd/source/ui/inc/fuconarc.hxx | 99 +
sd/source/ui/inc/fuconbez.hxx | 111 +
sd/source/ui/inc/fuconnct.hxx | 81 +
sd/source/ui/inc/fuconrec.hxx | 106 +
sd/source/ui/inc/fuconstr.hxx | 114 +
sd/source/ui/inc/fuconuno.hxx | 109 +
sd/source/ui/inc/fucopy.hxx | 84 +
sd/source/ui/inc/fucushow.hxx | 81 +
sd/source/ui/inc/fudraw.hxx | 125 +
sd/source/ui/inc/fudspord.hxx | 104 +
sd/source/ui/inc/fuediglu.hxx | 99 +
sd/source/ui/inc/fuexpand.hxx | 80 +
sd/source/ui/inc/fugrid.hxx | 83 +
sd/source/ui/inc/fuinsert.hxx | 116 +
sd/source/ui/inc/fuinsfil.hxx | 97 +
sd/source/ui/inc/fuline.hxx | 84 +
sd/source/ui/inc/fulinend.hxx | 84 +
sd/source/ui/inc/fulink.hxx | 81 +
sd/source/ui/inc/fumeasur.hxx | 80 +
sd/source/ui/inc/fumorph.hxx | 103 +
sd/source/ui/inc/fuoaprms.hxx | 88 +
sd/source/ui/inc/fuolbull.hxx | 94 +
sd/source/ui/inc/fuoltext.hxx | 103 +
sd/source/ui/inc/fuoutl.hxx | 116 +
sd/source/ui/inc/fupage.hxx | 83 +
sd/source/ui/inc/fuparagr.hxx | 83 +
sd/source/ui/inc/fupoor.hxx | 180 +
sd/source/ui/inc/fuprlout.hxx | 95 +
sd/source/ui/inc/fuprobjs.hxx | 91 +
sd/source/ui/inc/fuprtmpl.hxx | 91 +
sd/source/ui/inc/fuscale.hxx | 84 +
sd/source/ui/inc/fusearch.hxx | 92 +
sd/source/ui/inc/fusel.hxx | 122 +
sd/source/ui/inc/fusldlg.hxx | 81 +
sd/source/ui/inc/fuslhide.hxx | 88 +
sd/source/ui/inc/fuslid.hxx | 108 +
sd/source/ui/inc/fuslsel.hxx | 140 +
sd/source/ui/inc/fusnapln.hxx | 85 +
sd/source/ui/inc/fuspell.hxx | 94 +
sd/source/ui/inc/fusumry.hxx | 81 +
sd/source/ui/inc/futempl.hxx | 85 +
sd/source/ui/inc/futext.hxx | 132 +
sd/source/ui/inc/futhes.hxx | 81 +
sd/source/ui/inc/futransf.hxx | 90 +
sd/source/ui/inc/futxtatt.hxx | 80 +
sd/source/ui/inc/fuvect.hxx | 87 +
sd/source/ui/inc/fuzoom.hxx | 115 +
sd/source/ui/inc/gluectrl.hxx | 111 +
sd/source/ui/inc/inspagob.hrc | 67 +
sd/source/ui/inc/inspagob.hxx | 113 +
sd/source/ui/inc/morphdlg.hrc | 69 +
sd/source/ui/inc/morphdlg.hxx | 121 +
sd/source/ui/inc/navigatr.hrc | 70 +
sd/source/ui/inc/navigatr.hxx | 238 +
sd/source/ui/inc/optdlg.hrc | 68 +
sd/source/ui/inc/optdlg.hxx | 96 +
sd/source/ui/inc/optsitem.hxx | 358 +
sd/source/ui/inc/outlinfo.hxx | 153 +
sd/source/ui/inc/packgdlg.hrc | 79 +
sd/source/ui/inc/paragr.hrc | 62 +
sd/source/ui/inc/paragr.hxx | 91 +
sd/source/ui/inc/pgjump.hxx | 77 +
sd/source/ui/inc/present.hrc | 94 +
sd/source/ui/inc/present.hxx | 141 +
sd/source/ui/inc/preview.hrc | 62 +
sd/source/ui/inc/printdlg.hrc | 70 +
sd/source/ui/inc/printdlg.hxx | 112 +
sd/source/ui/inc/prltempl.hrc | 67 +
sd/source/ui/inc/prltempl.hxx | 137 +
sd/source/ui/inc/prntopts.hrc | 87 +
sd/source/ui/inc/prntopts.hxx | 145 +
sd/source/ui/inc/pubdlg.hrc | 182 +
sd/source/ui/inc/pubdlg.hxx | 260 +
sd/source/ui/inc/res_bmp.hrc | 326 +
sd/source/ui/inc/sdpopup.hxx | 97 +
sd/source/ui/inc/sdpreslt.hrc | 70 +
sd/source/ui/inc/sdpreslt.hxx | 123 +
sd/source/ui/inc/sdstring.hrc | 89 +
sd/source/ui/inc/sdtreelb.hxx | 155 +
sd/source/ui/inc/sdundogr.hxx | 90 +
sd/source/ui/inc/showview.hxx | 114 +
sd/source/ui/inc/sprite.hxx | 126 +
sd/source/ui/inc/strings.hrc | 688 ++
sd/source/ui/inc/tabtempl.hrc | 64 +
sd/source/ui/inc/tabtempl.hxx | 124 +
sd/source/ui/inc/tbx_ww.hrc | 63 +
sd/source/ui/inc/tbx_ww.hxx | 124 +
sd/source/ui/inc/tpoption.hrc | 113 +
sd/source/ui/inc/tpoption.hxx | 239 +
sd/source/ui/inc/unchss.hxx | 97 +
sd/source/ui/inc/undopage.hxx | 206 +
sd/source/ui/inc/unmodpg.hxx | 106 +
sd/source/ui/inc/unmovss.hxx | 94 +
sd/source/ui/inc/unoaprms.hxx | 203 +
sd/source/ui/inc/unokywds.hxx | 143 +
sd/source/ui/inc/unomodel.hxx | 330 +
sd/source/ui/inc/unoprnms.hxx | 132 +
sd/source/ui/inc/unosrch.hxx | 206 +
sd/source/ui/inc/unprlout.hxx | 103 +
sd/source/ui/inc/unslsel.hxx | 85 +
sd/source/ui/inc/vectdlg.hrc | 87 +
sd/source/ui/inc/vectdlg.hxx | 155 +
sd/source/ui/inc/zoomlist.hxx | 93 +
sd/source/ui/unoidl/makefile.mk | 127 +
sd/source/ui/unoidl/unocpres.cxx | 484 ++
sd/source/ui/unoidl/unocpres.hxx | 203 +
sd/source/ui/unoidl/unohelp.hxx | 93 +
sd/source/ui/unoidl/unokywds.cxx | 138 +
sd/source/ui/unoidl/unolayer.cxx | 655 ++
sd/source/ui/unoidl/unolayer.hxx | 185 +
sd/source/ui/unoidl/unomodel.cxx | 1280 ++++
sd/source/ui/unoidl/unoobj.cxx | 965 +++
sd/source/ui/unoidl/unoobj.hxx | 141 +
sd/source/ui/unoidl/unopage.cxx | 1762 +++++
sd/source/ui/unoidl/unopage.hxx | 320 +
sd/source/ui/unoidl/unopback.cxx | 353 +
sd/source/ui/unoidl/unopback.hxx | 133 +
sd/source/ui/unoidl/unosrch.cxx | 934 +++
sd/source/ui/unoidl/unovwcrs.cxx | 275 +
sd/source/ui/unoidl/unowcntr.cxx | 166 +
sd/source/ui/unoidl/unowcntr.hxx | 95 +
sd/source/ui/view/bmcache.cxx | 228 +
sd/source/ui/view/clview.cxx | 141 +
sd/source/ui/view/drawview.cxx | 1387 ++++
sd/source/ui/view/drbezob.cxx | 362 +
sd/source/ui/view/drtxtob.cxx | 467 ++
sd/source/ui/view/drtxtob1.cxx | 541 ++
sd/source/ui/view/drviews1.cxx | 1561 +++++
sd/source/ui/view/drviews2.cxx | 1296 ++++
sd/source/ui/view/drviews3.cxx | 879 +++
sd/source/ui/view/drviews4.cxx | 817 +++
sd/source/ui/view/drviews5.cxx | 669 ++
sd/source/ui/view/drviews6.cxx | 767 +++
sd/source/ui/view/drviews7.cxx | 1446 ++++
sd/source/ui/view/drviews8.cxx | 526 ++
sd/source/ui/view/drviews9.cxx | 995 +++
sd/source/ui/view/drviewsa.cxx | 884 +++
sd/source/ui/view/drviewsb.cxx | 669 ++
sd/source/ui/view/drviewsc.cxx | 1028 +++
sd/source/ui/view/drviewsd.cxx | 315 +
sd/source/ui/view/drviewse.cxx | 1652 +++++
sd/source/ui/view/drviewsf.cxx | 611 ++
sd/source/ui/view/drviewsg.cxx | 353 +
sd/source/ui/view/drviewsh.cxx | 169 +
sd/source/ui/view/drviewsi.cxx | 1275 ++++
sd/source/ui/view/drviewsj.cxx | 664 ++
sd/source/ui/view/drvwshrg.cxx | 195 +
sd/source/ui/view/frmview.cxx | 589 ++
sd/source/ui/view/grviewsh.cxx | 127 +
sd/source/ui/view/makefile.mk | 210 +
sd/source/ui/view/outlnvs2.cxx | 655 ++
sd/source/ui/view/outlnvsh.cxx | 2169 ++++++
sd/source/ui/view/outlview.cxx | 1977 ++++++
sd/source/ui/view/sdruler.cxx | 263 +
sd/source/ui/view/sdview.cxx | 951 +++
sd/source/ui/view/sdview2.cxx | 657 ++
sd/source/ui/view/sdview3.cxx | 1033 +++
sd/source/ui/view/sdview4.cxx | 458 ++
sd/source/ui/view/sdview5.cxx | 545 ++
sd/source/ui/view/sdwindow.cxx | 858 +++
sd/source/ui/view/showview.cxx | 226 +
sd/source/ui/view/tabcontr.cxx | 444 ++
sd/source/ui/view/unmodpg.cxx | 236 +
sd/source/ui/view/viewshe2.cxx | 1361 ++++
sd/source/ui/view/viewshe3.cxx | 1735 +++++
sd/source/ui/view/viewshel.cxx | 1325 ++++
sd/source/ui/view/zoomlist.cxx | 235 +
sd/util/hidother.hrc | 78 +
sd/util/hidother.src | 147 +
sd/util/makefile.mk | 345 +
sd/util/makefile.pmk | 62 +
sd/util/sd.map | 11 +
sd/workben/testdll/makefile | 101 +
sd/xml/SdDocLinkTargets.xml | 33 +
sd/xml/SdDrawPage.xml | 33 +
sd/xml/SdDrawPagesAccess.xml | 33 +
sd/xml/SdGenericDrawPage.xml | 33 +
sd/xml/SdLayer.xml | 33 +
sd/xml/SdLayerManager.xml | 33 +
sd/xml/SdMasterPage.xml | 33 +
sd/xml/SdMasterPagesAccess.xml | 33 +
sd/xml/SdPageLinkTargets.xml | 33 +
sd/xml/SdXCustomPresentation.xml | 33 +
sd/xml/SdXCustomPresentationAccess.xml | 33 +
sd/xml/SdXImpressDocument.xml | 33 +
sd/xml/SdXPresentation.xml | 33 +
sd/xml/SdXShape.xml | 33 +
434 files changed, 164208 insertions(+)
create mode 100644 sd/inc/anmdef.hxx
create mode 100644 sd/inc/anminfo.hxx
create mode 100644 sd/inc/app.hrc
create mode 100644 sd/inc/app.hxx
create mode 100644 sd/inc/cusshow.hxx
create mode 100644 sd/inc/diadef.h
create mode 100644 sd/inc/drawdoc.hxx
create mode 100644 sd/inc/eetext.hxx
create mode 100644 sd/inc/fadedef.h
create mode 100644 sd/inc/glob.hrc
create mode 100644 sd/inc/glob.hxx
create mode 100644 sd/inc/helpids.h
create mode 100644 sd/inc/imapinfo.hxx
create mode 100644 sd/inc/misc.hxx
create mode 100644 sd/inc/movedef.hxx
create mode 100644 sd/inc/pglink.hxx
create mode 100644 sd/inc/pres.hxx
create mode 100644 sd/inc/resltn.hxx
create mode 100644 sd/inc/sdattr.hxx
create mode 100644 sd/inc/sddll.hxx
create mode 100644 sd/inc/sdiocmpt.hxx
create mode 100644 sd/inc/sdmod.hxx
create mode 100644 sd/inc/sdobjfac.hxx
create mode 100644 sd/inc/sdpage.hxx
create mode 100644 sd/inc/sdresid.hxx
create mode 100644 sd/inc/sduiks.hrc
create mode 100644 sd/inc/sdundo.hxx
create mode 100644 sd/inc/sdxmlwrp.hxx
create mode 100644 sd/inc/segdefs.hxx
create mode 100644 sd/inc/segdefs_.hxx
create mode 100644 sd/inc/stlpool.hxx
create mode 100644 sd/inc/stlsheet.hxx
create mode 100644 sd/inc/strmname.h
create mode 100644 sd/prj/d.lst
create mode 100644 sd/prj/make.bat
create mode 100644 sd/prj/postdlv.btm
create mode 100644 sd/prj/stree.bat
create mode 100644 sd/prj/struct.txt
create mode 100644 sd/res/webview/common.inc
create mode 100644 sd/res/webview/edit.asp
create mode 100644 sd/res/webview/editpic.asp
create mode 100644 sd/res/webview/poll.asp
create mode 100644 sd/res/webview/savepic.asp
create mode 100644 sd/res/webview/show.asp
create mode 100644 sd/res/webview/webview.asp
create mode 100644 sd/sdi/_docsh.sdi
create mode 100644 sd/sdi/_drvwsh.sdi
create mode 100644 sd/sdi/app.sdi
create mode 100644 sd/sdi/docshell.sdi
create mode 100644 sd/sdi/drbezob.sdi
create mode 100644 sd/sdi/drgrfob.sdi
create mode 100644 sd/sdi/drtxtob.sdi
create mode 100644 sd/sdi/drviewsh.sdi
create mode 100644 sd/sdi/grdocsh.sdi
create mode 100644 sd/sdi/grviewsh.sdi
create mode 100644 sd/sdi/makefile.mk
create mode 100644 sd/sdi/outlnvsh.sdi
create mode 100644 sd/sdi/sdgslots.sdi
create mode 100644 sd/sdi/sdnew.sdi
create mode 100644 sd/sdi/sdraw.sdi
create mode 100644 sd/sdi/sdslots.hrc
create mode 100644 sd/sdi/sdslots.sdi
create mode 100644 sd/sdi/svxitems.sdi
create mode 100644 sd/source/filter/eppt/eppt.cxx
create mode 100644 sd/source/filter/eppt/eppt.hxx
create mode 100644 sd/source/filter/eppt/epptdef.hxx
create mode 100644 sd/source/filter/eppt/epptso.cxx
create mode 100644 sd/source/filter/eppt/escherex.cxx
create mode 100644 sd/source/filter/eppt/escherex.hxx
create mode 100644 sd/source/filter/eppt/makefile.mk
create mode 100644 sd/source/filter/makefile.mk
create mode 100644 sd/source/filter/pptin.cxx
create mode 100644 sd/source/filter/propread.cxx
create mode 100644 sd/source/filter/propread.hxx
create mode 100644 sd/source/filter/xml/makefile.mk
create mode 100644 sd/source/filter/xml/sdxmlwrp.cxx
create mode 100644 sd/source/ui/app/_app.hrc
create mode 100644 sd/source/ui/app/app.img
create mode 100644 sd/source/ui/app/app.src
create mode 100644 sd/source/ui/app/makefile.mk
create mode 100644 sd/source/ui/app/optsitem.cxx
create mode 100644 sd/source/ui/app/popup.src
create mode 100644 sd/source/ui/app/res_bmp.src
create mode 100644 sd/source/ui/app/sddll.cxx
create mode 100644 sd/source/ui/app/sddll1.cxx
create mode 100644 sd/source/ui/app/sddll2.cxx
create mode 100644 sd/source/ui/app/sdmod.cxx
create mode 100644 sd/source/ui/app/sdmod1.cxx
create mode 100644 sd/source/ui/app/sdmod2.cxx
create mode 100644 sd/source/ui/app/sdpopup.cxx
create mode 100644 sd/source/ui/app/sdresid.cxx
create mode 100644 sd/source/ui/app/sdstring.src
create mode 100644 sd/source/ui/app/strings.src
create mode 100644 sd/source/ui/app/tbx_ww.src
create mode 100644 sd/source/ui/app/tbxww.cxx
create mode 100644 sd/source/ui/app/toolbox.src
create mode 100644 sd/source/ui/dlg/animobjs.cxx
create mode 100644 sd/source/ui/dlg/animobjs.src
create mode 100644 sd/source/ui/dlg/assclass.cxx
create mode 100644 sd/source/ui/dlg/brkdlg.cxx
create mode 100644 sd/source/ui/dlg/brkdlg.src
create mode 100644 sd/source/ui/dlg/copydlg.cxx
create mode 100644 sd/source/ui/dlg/copydlg.src
create mode 100644 sd/source/ui/dlg/custsdlg.cxx
create mode 100644 sd/source/ui/dlg/custsdlg.src
create mode 100644 sd/source/ui/dlg/diactrl.cxx
create mode 100644 sd/source/ui/dlg/dlg_char.src
create mode 100644 sd/source/ui/dlg/dlgass.cxx
create mode 100644 sd/source/ui/dlg/dlgass.src
create mode 100644 sd/source/ui/dlg/dlgassim.cxx
create mode 100644 sd/source/ui/dlg/dlgassim.hxx
create mode 100644 sd/source/ui/dlg/dlgchar.cxx
create mode 100644 sd/source/ui/dlg/dlgctrls.cxx
create mode 100644 sd/source/ui/dlg/dlgfield.cxx
create mode 100644 sd/source/ui/dlg/dlgfield.src
create mode 100644 sd/source/ui/dlg/dlgolbul.cxx
create mode 100644 sd/source/ui/dlg/dlgolbul.src
create mode 100644 sd/source/ui/dlg/dlgpage.cxx
create mode 100644 sd/source/ui/dlg/dlgpage.src
create mode 100644 sd/source/ui/dlg/dlgsnap.cxx
create mode 100644 sd/source/ui/dlg/dlgsnap.src
create mode 100644 sd/source/ui/dlg/docprev.cxx
create mode 100644 sd/source/ui/dlg/gluectrl.cxx
create mode 100644 sd/source/ui/dlg/inspagob.cxx
create mode 100644 sd/source/ui/dlg/inspagob.src
create mode 100644 sd/source/ui/dlg/makefile.mk
create mode 100644 sd/source/ui/dlg/morphdlg.cxx
create mode 100644 sd/source/ui/dlg/morphdlg.src
create mode 100644 sd/source/ui/dlg/navigatr.cxx
create mode 100644 sd/source/ui/dlg/navigatr.src
create mode 100644 sd/source/ui/dlg/paragr.cxx
create mode 100644 sd/source/ui/dlg/paragr.src
create mode 100644 sd/source/ui/dlg/present.cxx
create mode 100644 sd/source/ui/dlg/present.src
create mode 100644 sd/source/ui/dlg/printdlg.cxx
create mode 100644 sd/source/ui/dlg/printdlg.src
create mode 100644 sd/source/ui/dlg/prltempl.cxx
create mode 100644 sd/source/ui/dlg/prltempl.src
create mode 100644 sd/source/ui/dlg/prntopts.cxx
create mode 100644 sd/source/ui/dlg/prntopts.src
create mode 100644 sd/source/ui/dlg/sdpreslt.cxx
create mode 100644 sd/source/ui/dlg/sdpreslt.src
create mode 100644 sd/source/ui/dlg/sdtreelb.cxx
create mode 100644 sd/source/ui/dlg/tabtempl.cxx
create mode 100644 sd/source/ui/dlg/tabtempl.src
create mode 100644 sd/source/ui/dlg/tpaction.cxx
create mode 100644 sd/source/ui/dlg/tpoption.cxx
create mode 100644 sd/source/ui/dlg/tpoption.src
create mode 100644 sd/source/ui/dlg/unchss.cxx
create mode 100644 sd/source/ui/dlg/vectdlg.cxx
create mode 100644 sd/source/ui/dlg/vectdlg.src
create mode 100644 sd/source/ui/docshell/docshel2.cxx
create mode 100644 sd/source/ui/docshell/docshel3.cxx
create mode 100644 sd/source/ui/docshell/docshel4.cxx
create mode 100644 sd/source/ui/docshell/docshell.cxx
create mode 100644 sd/source/ui/docshell/grdocsh.cxx
create mode 100644 sd/source/ui/docshell/makefile.mk
create mode 100644 sd/source/ui/docshell/sdclient.cxx
create mode 100644 sd/source/ui/func/bulmaper.cxx
create mode 100644 sd/source/ui/func/fuarea.cxx
create mode 100644 sd/source/ui/func/fubullet.cxx
create mode 100644 sd/source/ui/func/fuchar.cxx
create mode 100644 sd/source/ui/func/fucon3d.cxx
create mode 100644 sd/source/ui/func/fuconarc.cxx
create mode 100644 sd/source/ui/func/fuconbez.cxx
create mode 100644 sd/source/ui/func/fuconnct.cxx
create mode 100644 sd/source/ui/func/fuconrec.cxx
create mode 100644 sd/source/ui/func/fuconstr.cxx
create mode 100644 sd/source/ui/func/fuconuno.cxx
create mode 100644 sd/source/ui/func/fucopy.cxx
create mode 100644 sd/source/ui/func/fucushow.cxx
create mode 100644 sd/source/ui/func/fudraw.cxx
create mode 100644 sd/source/ui/func/fudspord.cxx
create mode 100644 sd/source/ui/func/fuediglu.cxx
create mode 100644 sd/source/ui/func/fuexpand.cxx
create mode 100644 sd/source/ui/func/fuinsert.cxx
create mode 100644 sd/source/ui/func/fuinsfil.cxx
create mode 100644 sd/source/ui/func/fuline.cxx
create mode 100644 sd/source/ui/func/fulinend.cxx
create mode 100644 sd/source/ui/func/fulink.cxx
create mode 100644 sd/source/ui/func/fumeasur.cxx
create mode 100644 sd/source/ui/func/fumorph.cxx
create mode 100644 sd/source/ui/func/fuoaprms.cxx
create mode 100644 sd/source/ui/func/fuolbull.cxx
create mode 100644 sd/source/ui/func/fuoltext.cxx
create mode 100644 sd/source/ui/func/fuoutl.cxx
create mode 100644 sd/source/ui/func/fupage.cxx
create mode 100644 sd/source/ui/func/fuparagr.cxx
create mode 100644 sd/source/ui/func/fupoor.cxx
create mode 100644 sd/source/ui/func/fuprlout.cxx
create mode 100644 sd/source/ui/func/fuprobjs.cxx
create mode 100644 sd/source/ui/func/fuscale.cxx
create mode 100644 sd/source/ui/func/fusearch.cxx
create mode 100644 sd/source/ui/func/fusel.cxx
create mode 100644 sd/source/ui/func/fusldlg.cxx
create mode 100644 sd/source/ui/func/fusnapln.cxx
create mode 100644 sd/source/ui/func/fuspell.cxx
create mode 100644 sd/source/ui/func/fusumry.cxx
create mode 100644 sd/source/ui/func/futempl.cxx
create mode 100644 sd/source/ui/func/futext.cxx
create mode 100644 sd/source/ui/func/futext2.cxx
create mode 100644 sd/source/ui/func/futhes.cxx
create mode 100644 sd/source/ui/func/futransf.cxx
create mode 100644 sd/source/ui/func/futxtatt.cxx
create mode 100644 sd/source/ui/func/fuvect.cxx
create mode 100644 sd/source/ui/func/fuzoom.cxx
create mode 100644 sd/source/ui/func/makefile.mk
create mode 100644 sd/source/ui/func/outlinfo.cxx
create mode 100644 sd/source/ui/func/sdundo.cxx
create mode 100644 sd/source/ui/func/sdundogr.cxx
create mode 100644 sd/source/ui/func/undopage.cxx
create mode 100644 sd/source/ui/func/unmovss.cxx
create mode 100644 sd/source/ui/func/unoaprms.cxx
create mode 100644 sd/source/ui/func/unprlout.cxx
create mode 100644 sd/source/ui/inc/3dchld.hxx
create mode 100644 sd/source/ui/inc/animobjs.hrc
create mode 100644 sd/source/ui/inc/animobjs.hxx
create mode 100644 sd/source/ui/inc/assclass.hxx
create mode 100644 sd/source/ui/inc/bmcache.hxx
create mode 100644 sd/source/ui/inc/brkdlg.hrc
create mode 100644 sd/source/ui/inc/bulmaper.hxx
create mode 100644 sd/source/ui/inc/cfgids.hxx
create mode 100644 sd/source/ui/inc/copydlg.hrc
create mode 100644 sd/source/ui/inc/copydlg.hxx
create mode 100644 sd/source/ui/inc/custsdlg.hrc
create mode 100644 sd/source/ui/inc/custsdlg.hxx
create mode 100644 sd/source/ui/inc/diactrl.hxx
create mode 100644 sd/source/ui/inc/dlg_char.hrc
create mode 100644 sd/source/ui/inc/dlg_char.hxx
create mode 100644 sd/source/ui/inc/dlgass.hrc
create mode 100644 sd/source/ui/inc/dlgass.hxx
create mode 100644 sd/source/ui/inc/dlgctrls.hxx
create mode 100644 sd/source/ui/inc/dlgfield.hrc
create mode 100644 sd/source/ui/inc/dlgfield.hxx
create mode 100644 sd/source/ui/inc/dlgolbul.hrc
create mode 100644 sd/source/ui/inc/dlgpage.hrc
create mode 100644 sd/source/ui/inc/dlgpage.hxx
create mode 100644 sd/source/ui/inc/dlgsnap.hrc
create mode 100644 sd/source/ui/inc/dlgsnap.hxx
create mode 100644 sd/source/ui/inc/docprev.hxx
create mode 100644 sd/source/ui/inc/drawview.hxx
create mode 100644 sd/source/ui/inc/enumdlg.hrc
create mode 100644 sd/source/ui/inc/fontwork.hrc
create mode 100644 sd/source/ui/inc/fuarea.hxx
create mode 100644 sd/source/ui/inc/fubullet.hxx
create mode 100644 sd/source/ui/inc/fuchar.hxx
create mode 100644 sd/source/ui/inc/fucon3d.hxx
create mode 100644 sd/source/ui/inc/fuconarc.hxx
create mode 100644 sd/source/ui/inc/fuconbez.hxx
create mode 100644 sd/source/ui/inc/fuconnct.hxx
create mode 100644 sd/source/ui/inc/fuconrec.hxx
create mode 100644 sd/source/ui/inc/fuconstr.hxx
create mode 100644 sd/source/ui/inc/fuconuno.hxx
create mode 100644 sd/source/ui/inc/fucopy.hxx
create mode 100644 sd/source/ui/inc/fucushow.hxx
create mode 100644 sd/source/ui/inc/fudraw.hxx
create mode 100644 sd/source/ui/inc/fudspord.hxx
create mode 100644 sd/source/ui/inc/fuediglu.hxx
create mode 100644 sd/source/ui/inc/fuexpand.hxx
create mode 100644 sd/source/ui/inc/fugrid.hxx
create mode 100644 sd/source/ui/inc/fuinsert.hxx
create mode 100644 sd/source/ui/inc/fuinsfil.hxx
create mode 100644 sd/source/ui/inc/fuline.hxx
create mode 100644 sd/source/ui/inc/fulinend.hxx
create mode 100644 sd/source/ui/inc/fulink.hxx
create mode 100644 sd/source/ui/inc/fumeasur.hxx
create mode 100644 sd/source/ui/inc/fumorph.hxx
create mode 100644 sd/source/ui/inc/fuoaprms.hxx
create mode 100644 sd/source/ui/inc/fuolbull.hxx
create mode 100644 sd/source/ui/inc/fuoltext.hxx
create mode 100644 sd/source/ui/inc/fuoutl.hxx
create mode 100644 sd/source/ui/inc/fupage.hxx
create mode 100644 sd/source/ui/inc/fuparagr.hxx
create mode 100644 sd/source/ui/inc/fupoor.hxx
create mode 100644 sd/source/ui/inc/fuprlout.hxx
create mode 100644 sd/source/ui/inc/fuprobjs.hxx
create mode 100644 sd/source/ui/inc/fuprtmpl.hxx
create mode 100644 sd/source/ui/inc/fuscale.hxx
create mode 100644 sd/source/ui/inc/fusearch.hxx
create mode 100644 sd/source/ui/inc/fusel.hxx
create mode 100644 sd/source/ui/inc/fusldlg.hxx
create mode 100644 sd/source/ui/inc/fuslhide.hxx
create mode 100644 sd/source/ui/inc/fuslid.hxx
create mode 100644 sd/source/ui/inc/fuslsel.hxx
create mode 100644 sd/source/ui/inc/fusnapln.hxx
create mode 100644 sd/source/ui/inc/fuspell.hxx
create mode 100644 sd/source/ui/inc/fusumry.hxx
create mode 100644 sd/source/ui/inc/futempl.hxx
create mode 100644 sd/source/ui/inc/futext.hxx
create mode 100644 sd/source/ui/inc/futhes.hxx
create mode 100644 sd/source/ui/inc/futransf.hxx
create mode 100644 sd/source/ui/inc/futxtatt.hxx
create mode 100644 sd/source/ui/inc/fuvect.hxx
create mode 100644 sd/source/ui/inc/fuzoom.hxx
create mode 100644 sd/source/ui/inc/gluectrl.hxx
create mode 100644 sd/source/ui/inc/inspagob.hrc
create mode 100644 sd/source/ui/inc/inspagob.hxx
create mode 100644 sd/source/ui/inc/morphdlg.hrc
create mode 100644 sd/source/ui/inc/morphdlg.hxx
create mode 100644 sd/source/ui/inc/navigatr.hrc
create mode 100644 sd/source/ui/inc/navigatr.hxx
create mode 100644 sd/source/ui/inc/optdlg.hrc
create mode 100644 sd/source/ui/inc/optdlg.hxx
create mode 100644 sd/source/ui/inc/optsitem.hxx
create mode 100644 sd/source/ui/inc/outlinfo.hxx
create mode 100644 sd/source/ui/inc/packgdlg.hrc
create mode 100644 sd/source/ui/inc/paragr.hrc
create mode 100644 sd/source/ui/inc/paragr.hxx
create mode 100644 sd/source/ui/inc/pgjump.hxx
create mode 100644 sd/source/ui/inc/present.hrc
create mode 100644 sd/source/ui/inc/present.hxx
create mode 100644 sd/source/ui/inc/preview.hrc
create mode 100644 sd/source/ui/inc/printdlg.hrc
create mode 100644 sd/source/ui/inc/printdlg.hxx
create mode 100644 sd/source/ui/inc/prltempl.hrc
create mode 100644 sd/source/ui/inc/prltempl.hxx
create mode 100644 sd/source/ui/inc/prntopts.hrc
create mode 100644 sd/source/ui/inc/prntopts.hxx
create mode 100644 sd/source/ui/inc/pubdlg.hrc
create mode 100644 sd/source/ui/inc/pubdlg.hxx
create mode 100644 sd/source/ui/inc/res_bmp.hrc
create mode 100644 sd/source/ui/inc/sdpopup.hxx
create mode 100644 sd/source/ui/inc/sdpreslt.hrc
create mode 100644 sd/source/ui/inc/sdpreslt.hxx
create mode 100644 sd/source/ui/inc/sdstring.hrc
create mode 100644 sd/source/ui/inc/sdtreelb.hxx
create mode 100644 sd/source/ui/inc/sdundogr.hxx
create mode 100644 sd/source/ui/inc/showview.hxx
create mode 100644 sd/source/ui/inc/sprite.hxx
create mode 100644 sd/source/ui/inc/strings.hrc
create mode 100644 sd/source/ui/inc/tabtempl.hrc
create mode 100644 sd/source/ui/inc/tabtempl.hxx
create mode 100644 sd/source/ui/inc/tbx_ww.hrc
create mode 100644 sd/source/ui/inc/tbx_ww.hxx
create mode 100644 sd/source/ui/inc/tpoption.hrc
create mode 100644 sd/source/ui/inc/tpoption.hxx
create mode 100644 sd/source/ui/inc/unchss.hxx
create mode 100644 sd/source/ui/inc/undopage.hxx
create mode 100644 sd/source/ui/inc/unmodpg.hxx
create mode 100644 sd/source/ui/inc/unmovss.hxx
create mode 100644 sd/source/ui/inc/unoaprms.hxx
create mode 100644 sd/source/ui/inc/unokywds.hxx
create mode 100644 sd/source/ui/inc/unomodel.hxx
create mode 100644 sd/source/ui/inc/unoprnms.hxx
create mode 100644 sd/source/ui/inc/unosrch.hxx
create mode 100644 sd/source/ui/inc/unprlout.hxx
create mode 100644 sd/source/ui/inc/unslsel.hxx
create mode 100644 sd/source/ui/inc/vectdlg.hrc
create mode 100644 sd/source/ui/inc/vectdlg.hxx
create mode 100644 sd/source/ui/inc/zoomlist.hxx
create mode 100644 sd/source/ui/unoidl/makefile.mk
create mode 100644 sd/source/ui/unoidl/unocpres.cxx
create mode 100644 sd/source/ui/unoidl/unocpres.hxx
create mode 100644 sd/source/ui/unoidl/unohelp.hxx
create mode 100644 sd/source/ui/unoidl/unokywds.cxx
create mode 100644 sd/source/ui/unoidl/unolayer.cxx
create mode 100644 sd/source/ui/unoidl/unolayer.hxx
create mode 100644 sd/source/ui/unoidl/unomodel.cxx
create mode 100644 sd/source/ui/unoidl/unoobj.cxx
create mode 100644 sd/source/ui/unoidl/unoobj.hxx
create mode 100644 sd/source/ui/unoidl/unopage.cxx
create mode 100644 sd/source/ui/unoidl/unopage.hxx
create mode 100644 sd/source/ui/unoidl/unopback.cxx
create mode 100644 sd/source/ui/unoidl/unopback.hxx
create mode 100644 sd/source/ui/unoidl/unosrch.cxx
create mode 100644 sd/source/ui/unoidl/unovwcrs.cxx
create mode 100644 sd/source/ui/unoidl/unowcntr.cxx
create mode 100644 sd/source/ui/unoidl/unowcntr.hxx
create mode 100644 sd/source/ui/view/bmcache.cxx
create mode 100644 sd/source/ui/view/clview.cxx
create mode 100644 sd/source/ui/view/drawview.cxx
create mode 100644 sd/source/ui/view/drbezob.cxx
create mode 100644 sd/source/ui/view/drtxtob.cxx
create mode 100644 sd/source/ui/view/drtxtob1.cxx
create mode 100644 sd/source/ui/view/drviews1.cxx
create mode 100644 sd/source/ui/view/drviews2.cxx
create mode 100644 sd/source/ui/view/drviews3.cxx
create mode 100644 sd/source/ui/view/drviews4.cxx
create mode 100644 sd/source/ui/view/drviews5.cxx
create mode 100644 sd/source/ui/view/drviews6.cxx
create mode 100644 sd/source/ui/view/drviews7.cxx
create mode 100644 sd/source/ui/view/drviews8.cxx
create mode 100644 sd/source/ui/view/drviews9.cxx
create mode 100644 sd/source/ui/view/drviewsa.cxx
create mode 100644 sd/source/ui/view/drviewsb.cxx
create mode 100644 sd/source/ui/view/drviewsc.cxx
create mode 100644 sd/source/ui/view/drviewsd.cxx
create mode 100644 sd/source/ui/view/drviewse.cxx
create mode 100644 sd/source/ui/view/drviewsf.cxx
create mode 100644 sd/source/ui/view/drviewsg.cxx
create mode 100644 sd/source/ui/view/drviewsh.cxx
create mode 100644 sd/source/ui/view/drviewsi.cxx
create mode 100644 sd/source/ui/view/drviewsj.cxx
create mode 100644 sd/source/ui/view/drvwshrg.cxx
create mode 100644 sd/source/ui/view/frmview.cxx
create mode 100644 sd/source/ui/view/grviewsh.cxx
create mode 100644 sd/source/ui/view/makefile.mk
create mode 100644 sd/source/ui/view/outlnvs2.cxx
create mode 100644 sd/source/ui/view/outlnvsh.cxx
create mode 100644 sd/source/ui/view/outlview.cxx
create mode 100644 sd/source/ui/view/sdruler.cxx
create mode 100644 sd/source/ui/view/sdview.cxx
create mode 100644 sd/source/ui/view/sdview2.cxx
create mode 100644 sd/source/ui/view/sdview3.cxx
create mode 100644 sd/source/ui/view/sdview4.cxx
create mode 100644 sd/source/ui/view/sdview5.cxx
create mode 100644 sd/source/ui/view/sdwindow.cxx
create mode 100644 sd/source/ui/view/showview.cxx
create mode 100644 sd/source/ui/view/tabcontr.cxx
create mode 100644 sd/source/ui/view/unmodpg.cxx
create mode 100644 sd/source/ui/view/viewshe2.cxx
create mode 100644 sd/source/ui/view/viewshe3.cxx
create mode 100644 sd/source/ui/view/viewshel.cxx
create mode 100644 sd/source/ui/view/zoomlist.cxx
create mode 100644 sd/util/hidother.hrc
create mode 100644 sd/util/hidother.src
create mode 100644 sd/util/makefile.mk
create mode 100644 sd/util/makefile.pmk
create mode 100644 sd/util/sd.map
create mode 100644 sd/workben/testdll/makefile
create mode 100644 sd/xml/SdDocLinkTargets.xml
create mode 100644 sd/xml/SdDrawPage.xml
create mode 100644 sd/xml/SdDrawPagesAccess.xml
create mode 100644 sd/xml/SdGenericDrawPage.xml
create mode 100644 sd/xml/SdLayer.xml
create mode 100644 sd/xml/SdLayerManager.xml
create mode 100644 sd/xml/SdMasterPage.xml
create mode 100644 sd/xml/SdMasterPagesAccess.xml
create mode 100644 sd/xml/SdPageLinkTargets.xml
create mode 100644 sd/xml/SdXCustomPresentation.xml
create mode 100644 sd/xml/SdXCustomPresentationAccess.xml
create mode 100644 sd/xml/SdXImpressDocument.xml
create mode 100644 sd/xml/SdXPresentation.xml
create mode 100644 sd/xml/SdXShape.xml
(limited to 'sd')
diff --git a/sd/inc/anmdef.hxx b/sd/inc/anmdef.hxx
new file mode 100644
index 000000000000..84a7c59f87ab
--- /dev/null
+++ b/sd/inc/anmdef.hxx
@@ -0,0 +1,75 @@
+/*************************************************************************
+ *
+ * $RCSfile: anmdef.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:27 $
+ *
+ * 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 _SD_ANMDEF_HXX
+#define _SD_ANMDEF_HXX
+
+// muss angepasst werden!
+#define ANIMATION_SPEED_COUNT 3
+
+// muss angepasst werden!
+#define ANIMATION_EFFECT_COUNT 48
+
+// muss angepasst werden!
+#define CLICK_ACTION_COUNT 14
+
+#endif // _SD_ANIMATIONDEF_HXX
+
diff --git a/sd/inc/anminfo.hxx b/sd/inc/anminfo.hxx
new file mode 100644
index 000000000000..616a47a3c317
--- /dev/null
+++ b/sd/inc/anminfo.hxx
@@ -0,0 +1,153 @@
+/*************************************************************************
+ *
+ * $RCSfile: anminfo.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:27 $
+ *
+ * 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 _SD_ANMINFO_HXX
+#define _SD_ANMINFO_HXX
+
+#ifndef _COM_SUN_STAR_PRESENTATION_ANIMATIONEFFECT_HPP_
+#include
+#endif
+#ifndef _COM_SUN_STAR_PRESENTATION_ANIMATIONSPEED_HPP_
+#include
+#endif
+#ifndef _COM_SUN_STAR_PRESENTATION_CLICKACTION_HPP_
+#include
+#endif
+
+#ifndef _SD_ANMDEF_HXX
+#include "anmdef.hxx"
+#endif
+#ifndef _SVDOBJ_HXX //autogen
+#include
+#endif
+#ifndef _SV_COLOR_HXX //autogen
+#include
+#endif
+
+class Polygon;
+class Point;
+class SvStream;
+class SdrObjSurrogate;
+class SdrObject;
+class SdrPathObj;
+class SdDrawDocument;
+
+
+class SdAnimationInfo : public SdrObjUserData, public SfxListener
+{
+private:
+
+ SdDrawDocument* pDoc;
+
+public:
+
+ Polygon* pPolygon; // fuer nichtlinearen Pfad (unbenutzt)
+ Point aStart; // Startpunkt eines linearen Pfades (unbenutzt)
+ Point aEnd; // Endpunkt eines linearen Pfades (unbenutzt)
+ ::com::sun::star::presentation::AnimationEffect eEffect; // Animationseffekt
+ ::com::sun::star::presentation::AnimationEffect eTextEffect; // Animationseffekt fuer Textinhalt
+ ::com::sun::star::presentation::AnimationSpeed eSpeed; // Geschwindigkeit der Animation
+ BOOL bActive; // eingeschaltet ?
+ BOOL bDimPrevious; // Objekt abblenden
+ BOOL bIsMovie; // wenn Gruppenobjekt, dann Sequenz aus den
+ BOOL bDimHide; // verstecken statt abblenden
+ Color aBlueScreen; // identifiziert "Hintergrundpixel"
+ Color aDimColor; // zum Abblenden des Objekts
+ String aSoundFile; // Pfad zum Soundfile in MSDOS-Notation
+ BOOL bSoundOn; // Sound ein/aus
+ BOOL bPlayFull; // Sound ganz abspielen
+ SdrObjSurrogate* pPathSuro; // Surrogat fuer pPathObj
+ SdrPathObj* pPathObj; // das Pfadobjekt
+ ::com::sun::star::presentation::ClickAction eClickAction; // Aktion bei Mausklick
+ ::com::sun::star::presentation::AnimationEffect eSecondEffect; // fuer Objekt ausblenden
+ ::com::sun::star::presentation::AnimationSpeed eSecondSpeed; // fuer Objekt ausblenden
+ String aSecondSoundFile; // fuer Objekt ausblenden
+ BOOL bSecondSoundOn; // fuer Objekt ausblenden
+ BOOL bSecondPlayFull;// fuer Objekt ausblenden
+ String aBookmark; // Sprung zu Objekt/Seite
+ USHORT nVerb; // fuer OLE-Objekt
+ BOOL bInvisibleInPresentation;
+ BOOL bIsShown; // in der Show gerade sichtbar, NICHT PERSISTENT!
+ BOOL bShow; // Befehl: mit 1. Effekt zeigen (TRUE)
+ // oder mit 2. Effekt entfernen (FALSE)
+ // NICHT PERSISTENT!
+ BOOL bDimmed; // in der Show abgeblendet (TRUE) oder
+ // nicht (TRUE)
+ // NICHT PERSISTENT!
+ ULONG nPresOrder;
+
+ SdAnimationInfo(SdDrawDocument* pTheDoc);
+ SdAnimationInfo(const SdAnimationInfo& rAnmInfo);
+ virtual ~SdAnimationInfo();
+
+ virtual SdrObjUserData* Clone(SdrObject* pObj) const;
+
+ virtual void WriteData(SvStream& rOut);
+ virtual void ReadData(SvStream& rIn);
+
+ // NULL loest die Verbindung zum Pfadobjekt
+ void SetPath(SdrPathObj* pPath = NULL);
+ virtual void SFX_NOTIFY(SfxBroadcaster& rBC, const TypeId& rBCType, const SfxHint& rHint, const TypeId& rHintType);
+ virtual void AfterRead();
+};
+
+#endif // _SD_ANMINFO_HXX
+
diff --git a/sd/inc/app.hrc b/sd/inc/app.hrc
new file mode 100644
index 000000000000..9d2aebf1a421
--- /dev/null
+++ b/sd/inc/app.hrc
@@ -0,0 +1,463 @@
+/*************************************************************************
+ *
+ * $RCSfile: app.hrc,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:27 $
+ *
+ * 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 _SFX_HRC
+#include
+#endif
+
+#define SID_BACKGROUND (SID_SD_START)
+#define SID_LASTVERSION (SID_SD_START+1)
+#define SID_PAGESETUP (SID_SD_START+2)
+#define SID_PASTE2 (SID_SD_START+3)
+#define SID_COPYOBJECTS (SID_SD_START+4)
+#define SID_MANAGE_LINKS (SID_SD_START+5)
+//#define SID_CONVERT_TO_3D (SID_SD_START+6)
+#define SID_CHOOSE (SID_SD_START+7)
+#define SID_CONVERT_TO_3D_LATHE (SID_SD_START+8)
+#define SID_DRAWINGMODE (SID_SD_START+9)
+#define SID_OUTLINEMODE (SID_SD_START+10)
+#define SID_DIAMODE (SID_SD_START+11)
+// #define (SID_SD_START+12)
+#define SID_VIEWS (SID_SD_START+13)
+#define SID_INSERTPAGE (SID_SD_START+14)
+#define SID_INSERTFILE (SID_SD_START+15)
+#define SID_INSERTSYMBOL (SID_SD_START+16)
+#define SID_ZOOM_PANNING (SID_SD_START+17)
+#define SID_PRESENTATION_END (SID_SD_START+18)
+#define SID_BULLET (SID_SD_START+19)
+#define SID_TEXTFORMAT (SID_SD_START+20)
+#define SID_PIXELMODE (SID_SD_START+21)
+#define SID_POSITION (SID_SD_START+22)
+#define SID_MIRROR (SID_SD_START+23)
+#define SID_CONVERT (SID_SD_START+24)
+#define SID_TEXT_FITTOTEXT (SID_SD_START+25)
+#define SID_COMBINE (SID_SD_START+26)
+#define SID_NAME_GROUP (SID_SD_START+27)
+#define SID_DRAWTBX_CONNECTORS (SID_SD_START+28)
+#define SID_TEXTALIGNMENT (SID_SD_START+29)
+#define SID_BEZIER_ELIMINATE_POINTS (SID_SD_START+30)
+#define SID_MOREFRONT (SID_SD_START+31)
+#define SID_MOREBACK (SID_SD_START+32)
+#define SID_LIVE_PRESENTATION (SID_SD_START+33)
+#define SID_VERTICAL (SID_SD_START+34)
+#define SID_HORIZONTAL (SID_SD_START+35)
+#define SID_CHANGEBEZIER (SID_SD_START+36)
+#define SID_CHANGEPOLYGON (SID_SD_START+37)
+#define SID_CAPTUREPOINT (SID_SD_START+38)
+#define SID_EXECUTE_MACRO (SID_SD_START+39)
+#define SID_RULER (SID_SD_START+40)
+
+#define SID_WORKINGAREA (SID_SD_START+41) // Soll raus !!!
+
+#define SID_HELPKEYBOARD (SID_SD_START+42)
+#define SID_INSERTLAYER (SID_SD_START+43)
+#define SID_EDIT_OUTLINER (SID_SD_START+44)
+#define SID_SWITCHPAGE (SID_SD_START+45)
+#define SID_MODIFYPAGE (SID_SD_START+46)
+#define SID_SWITCHLAYER (SID_SD_START+47)
+#define SID_MODIFYLAYER (SID_SD_START+48)
+#define SID_PAGEMODE (SID_SD_START+49)
+#define SID_LAYERMODE (SID_SD_START+50)
+#define SID_DRAW_MEASURELINE (SID_SD_START+51)
+#define SID_STARTAPP (SID_SD_START+52)
+#define SID_MASTERPAGE (SID_SD_START+53)
+#define SID_DIA_EFFECT (SID_SD_START+54)
+#define SID_DIA_SPEED (SID_SD_START+55)
+#define SID_DIA_AUTO (SID_SD_START+56)
+#define SID_DIA_TIME (SID_SD_START+57)
+#define SID_TOOL_CONNECTOR (SID_SD_START+58)
+#define SID_ANIMATIONMODE (SID_SD_START+59)
+#define SID_ACTIONMODE (SID_SD_START+60)
+#define SID_ANIMATION (SID_SD_START+61)
+#define SID_ANIMATION_OBJECTS (SID_SD_START+62)
+#define SID_ANIMATION_EFFECTS (SID_SD_START+63)
+#define SID_PRESENTATION_LAYOUT (SID_SD_START+64)
+#define SID_BEZIER_CONVERT (SID_SD_START+65)
+#define SID_BEZIER_EDGE (SID_SD_START+66)
+#define SID_BEZIER_SYMMTR (SID_SD_START+67)
+#define SID_PRESENTATION_TEMPLATES (SID_SD_START+68)
+#define SID_NOTESMODE (SID_SD_START+69)
+#define SID_HANDOUTMODE (SID_SD_START+70)
+#define SID_LINEEND_POLYGON (SID_SD_START+71)
+#define SID_OBJPALETTE_SELECT (SID_SD_START+72)
+#define SID_GRAPHIC_EXPORT (SID_SD_START+73)
+#define SID_SWITCH_POINTEDIT (SID_SD_START+74)
+#define SID_RULER_NULLOFFSET (SID_SD_START+75)
+#define SID_TEXTEDIT (SID_SD_START+76)
+#define SID_SET_SNAPITEM (SID_SD_START+77)
+#define SID_PRINT_PREVIEW (SID_SD_START+78)
+#define SID_SEARCH_REPLACE (SID_SD_START+79)
+#define SID_DELETE_PAGE (SID_SD_START+80)
+#define SID_DELETE_LAYER (SID_SD_START+81)
+#define SID_DISMANTLE (SID_SD_START+82)
+#define SID_SD_HELP_PI (SID_SD_START+83)
+#define SID_TIPHELP (SID_SD_START+84)
+#define SID_OBJECT_MIRROR (SID_SD_START+85)
+#define SID_STATUS_PAGE (SID_SD_START+86)
+#define SID_STATUS_LAYOUT (SID_SD_START+87)
+#define SID_STATUS_SELMODE (SID_SD_START+88)
+#define SID_MODIFIED (SID_SD_START+89)
+#define SID_OBJECT_CROOK_ROTATE (SID_SD_START+90)
+#define SID_OBJECT_CROOK_SLANT (SID_SD_START+91)
+#define SID_OBJECT_CROOK_STRETCH (SID_SD_START+92)
+#define SID_CONNECT (SID_SD_START+93)
+#define SID_BREAK (SID_SD_START+94)
+#define SID_OBJECT_CHOOSE_MODE (SID_SD_START+95)
+#define SID_ENTER_GROUP (SID_SD_START+96)
+#define SID_LEAVE_GROUP (SID_SD_START+97)
+#define SID_SIZE_PAGE_WIDTH (SID_SD_START+98)
+#define SID_SIZE_OPTIMAL (SID_SD_START+99)
+#define SID_OBJECT_TRANSPARENCE (SID_SD_START+100)
+#define SID_OBJECT_GRADIENT (SID_SD_START+101)
+#define SID_OBJPALETTE_ADD (SID_SD_START+102)
+#define SID_OBJPALETTE_MODIFY (SID_SD_START+103)
+#define SID_OBJPALETTE_OBJECTS (SID_SD_START+104)
+#define SID_INSERT_IMAGE (SID_SD_START+105)
+#define SID_INSERT_MATH (SID_SD_START+106)
+#define SID_OBJECT_SHEAR (SID_SD_START+107)
+#define SID_DELETE_SNAPITEM (SID_SD_START+108)
+#define SID_OBJECT_CLOSE (SID_SD_START+109)
+#define SID_ANIMATOR_ADD (SID_SD_START+110)
+#define SID_ANIMATOR_CREATE (SID_SD_START+111)
+#define SID_ANIMATOR_STATE (SID_SD_START+112)
+#define SID_PRESENTATIONOBJECT (SID_SD_START+113)
+#define SID_SIZE_VISAREA (SID_SD_START+114)
+
+#define SID_BEHIND_OBJ (SID_SD_START+116)
+#define SID_REVERSE_ORDER (SID_SD_START+117)
+#define SID_SDOPTIONS (SID_SD_START+118)
+
+#define SID_CONNECTOR_ARROW_START (SID_SD_START+119)
+#define SID_CONNECTOR_ARROW_END (SID_SD_START+120)
+#define SID_CONNECTOR_ARROWS (SID_SD_START+121)
+#define SID_CONNECTOR_CIRCLE_START (SID_SD_START+122)
+#define SID_CONNECTOR_CIRCLE_END (SID_SD_START+123)
+#define SID_CONNECTOR_CIRCLES (SID_SD_START+124)
+#define SID_CONNECTOR_LINE (SID_SD_START+125)
+#define SID_CONNECTOR_LINE_ARROW_START (SID_SD_START+126)
+#define SID_CONNECTOR_LINE_ARROW_END (SID_SD_START+127)
+#define SID_CONNECTOR_LINE_ARROWS (SID_SD_START+128)
+#define SID_CONNECTOR_LINE_CIRCLE_START (SID_SD_START+129)
+#define SID_CONNECTOR_LINE_CIRCLE_END (SID_SD_START+130)
+#define SID_CONNECTOR_LINE_CIRCLES (SID_SD_START+131)
+#define SID_CONNECTOR_CURVE (SID_SD_START+132)
+#define SID_CONNECTOR_CURVE_ARROW_START (SID_SD_START+133)
+#define SID_CONNECTOR_CURVE_ARROW_END (SID_SD_START+134)
+#define SID_CONNECTOR_CURVE_ARROWS (SID_SD_START+135)
+#define SID_CONNECTOR_CURVE_CIRCLE_START (SID_SD_START+136)
+#define SID_CONNECTOR_CURVE_CIRCLE_END (SID_SD_START+137)
+#define SID_CONNECTOR_CURVE_CIRCLES (SID_SD_START+138)
+#define SID_CONNECTOR_LINES (SID_SD_START+139)
+#define SID_CONNECTOR_LINES_ARROW_START (SID_SD_START+140)
+#define SID_CONNECTOR_LINES_ARROW_END (SID_SD_START+141)
+#define SID_CONNECTOR_LINES_ARROWS (SID_SD_START+142)
+#define SID_CONNECTOR_LINES_CIRCLE_START (SID_SD_START+143)
+#define SID_CONNECTOR_LINES_CIRCLE_END (SID_SD_START+144)
+#define SID_CONNECTOR_LINES_CIRCLES (SID_SD_START+145)
+
+// Options-Leisten Slot-IDs
+#define SID_GRAPHIC_DRAFT (SID_SD_START+146)
+#define SID_FILL_DRAFT (SID_SD_START+147)
+#define SID_TEXT_DRAFT (SID_SD_START+148)
+#define SID_LINE_DRAFT (SID_SD_START+149)
+#define SID_HANDLES_DRAFT (SID_SD_START+150)
+#define SID_SOLID_CREATE (SID_SD_START+151)
+#define SID_HELPLINES_USE (SID_SD_START+152)
+#define SID_HELPLINES_MOVE (SID_SD_START+153)
+#define SID_GRID_USE (SID_SD_START+154)
+#define SID_SNAP_BORDER (SID_SD_START+155)
+#define SID_SNAP_FRAME (SID_SD_START+156)
+#define SID_SNAP_POINTS (SID_SD_START+157)
+#define SID_QUICKEDIT (SID_SD_START+158)
+#define SID_PICK_THROUGH (SID_SD_START+159)
+#define SID_COLORRESOLUTION (SID_SD_START+160)
+#define SID_CONVERT_TO_1BIT_THRESHOLD (SID_SD_START+161)
+#define SID_CONVERT_TO_1BIT_MATRIX (SID_SD_START+162)
+#define SID_CONVERT_TO_4BIT_GRAYS (SID_SD_START+163)
+#define SID_CONVERT_TO_4BIT_COLORS (SID_SD_START+164)
+#define SID_CONVERT_TO_8BIT_GRAYS (SID_SD_START+165)
+#define SID_CONVERT_TO_8BIT_COLORS (SID_SD_START+166)
+#define SID_CONVERT_TO_24BIT (SID_SD_START+167)
+#define SID_BIG_HANDLES (SID_SD_START+168)
+#define SID_DOUBLECLICK_TEXTEDIT (SID_SD_START+169)
+#define SID_CLICK_CHANGE_ROTATION (SID_SD_START+170)
+
+#define SID_DRAWTBX_ARROWS (SID_SD_START+171)
+#define SID_LINE_ARROW_START (SID_SD_START+172)
+#define SID_LINE_ARROW_END (SID_SD_START+173)
+#define SID_LINE_ARROWS (SID_SD_START+174)
+#define SID_LINE_ARROW_CIRCLE (SID_SD_START+175)
+#define SID_LINE_CIRCLE_ARROW (SID_SD_START+176)
+#define SID_LINE_ARROW_SQUARE (SID_SD_START+177)
+#define SID_LINE_SQUARE_ARROW (SID_SD_START+178)
+// und noch weitere...
+
+#define ID_VAL_ENDINTENS (SID_SD_START+197)
+#define ID_VAL_STARTINTENS (SID_SD_START+198)
+#define ID_VAL_BORDER (SID_SD_START+199)
+#define ID_VAL_MOUSESTART_X (SID_SD_START+200)
+#define ID_VAL_MOUSESTART_Y (SID_SD_START+201)
+#define ID_VAL_LENGTH_X (SID_SD_START+202)
+#define ID_VAL_LENGTH_Y (SID_SD_START+203)
+#define ID_VAL_MOUSEEND_X (SID_SD_START+204)
+#define ID_VAL_MOUSEEND_Y (SID_SD_START+205)
+#define ID_VAL_AXIS_X (SID_SD_START+206)
+#define ID_VAL_AXIS_Y (SID_SD_START+207)
+#define ID_VAL_ANGLESTART (SID_SD_START+208)
+#define ID_VAL_ANGLEEND (SID_SD_START+209)
+#define ID_VAL_CENTER_X (SID_SD_START+210)
+#define ID_VAL_CENTER_Y (SID_SD_START+211)
+#define ID_VAL_WHATPAGE (SID_SD_START+212)
+#define ID_VAL_WHATLAYER (SID_SD_START+213)
+#define ID_VAL_ANGLE (SID_SD_START+214)
+#define ID_VAL_MIRRORVERT (SID_SD_START+215)
+#define ID_VAL_ISACTIVE (SID_SD_START+216)
+#define ID_VAL_WHATKIND (SID_SD_START+217)
+#define ID_VAL_PAGEWIDTH (SID_SD_START+218)
+#define ID_VAL_PAGEMARGIN (SID_SD_START+219)
+#define ID_VAL_PAGETOP (SID_SD_START+220)
+#define ID_VAL_PAGEBOTTOM (SID_SD_START+221)
+#define ID_VAL_PAGELEFT (SID_SD_START+222)
+#define ID_VAL_PAGERIGHT (SID_SD_START+223)
+#define ID_VAL_SCALEOBJECTS (SID_SD_START+224)
+#define ID_VAL_PAGENAME (SID_SD_START+225)
+#define ID_VAL_WHATLAYOUT (SID_SD_START+226)
+#define ID_VAL_ISPAGEBACK (SID_SD_START+227)
+#define ID_VAL_ISPAGEOBJ (SID_SD_START+228)
+#define ID_VAL_LAYERNAME (SID_SD_START+229)
+#define ID_VAL_ISVISIBLE (SID_SD_START+230)
+#define ID_VAL_ISLOCKED (SID_SD_START+231)
+#define ID_VAL_ISPRINTABLE (SID_SD_START+232)
+#define ID_VAL_PAGEHEIGHT (SID_SD_START+233)
+#define ID_VAL_ZOOM (SID_SD_START+234)
+#define ID_VAL_ANCHOR_X (SID_SD_START+235)
+#define ID_VAL_ANCHOR_Y (SID_SD_START+236)
+#define ID_VAL_RED (SID_SD_START+237)
+#define ID_VAL_GREEN (SID_SD_START+238)
+#define ID_VAL_BLUE (SID_SD_START+239)
+#define ID_VAL_STYLE (SID_SD_START+240)
+#define ID_VAL_DOTS (SID_SD_START+241)
+#define ID_VAL_DOTLEN (SID_SD_START+242)
+#define ID_VAL_DASHES (SID_SD_START+243)
+#define ID_VAL_DASHLEN (SID_SD_START+244)
+#define ID_VAL_DISTANCE (SID_SD_START+245)
+#define ID_VAL_INDEX (SID_SD_START+246)
+#define ID_VAL_WIDTH (SID_SD_START+247)
+#define ID_VAL_HEIGHT (SID_SD_START+248)
+
+// nur zum austesten, um nicht jedesmal APP:HRC ff. durchbuilden zu muessen
+#define ID_VAL_DUMMY0 (SID_SD_START+230)
+#define ID_VAL_DUMMY1 (SID_SD_START+231)
+#define ID_VAL_DUMMY2 (SID_SD_START+232)
+#define ID_VAL_DUMMY3 (SID_SD_START+233)
+#define ID_VAL_DUMMY4 (SID_SD_START+234)
+#define ID_VAL_DUMMY5 (SID_SD_START+235)
+#define ID_VAL_DUMMY6 (SID_SD_START+236)
+#define ID_VAL_DUMMY7 (SID_SD_START+237)
+#define ID_VAL_DUMMY8 (SID_SD_START+238)
+#define ID_VAL_DUMMY9 (SID_SD_START+239)
+
+#define SID_MOVETO (SID_SD_START+250)
+#define SID_LINETO (SID_SD_START+251)
+#define SID_BEZIERTO (SID_SD_START+252)
+#define SID_PAGESIZE (SID_SD_START+253)
+#define SID_PAGEMARGIN (SID_SD_START+254)
+#define SID_ZOOMING (SID_SD_START+255)
+#define SID_SELECTAT (SID_SD_START+256)
+#define SID_COLORVIEW (SID_SD_START+257)
+
+#define SID_GETRED (SID_SD_START+259)
+#define SID_GETBLUE (SID_SD_START+260)
+#define SID_GETGREEN (SID_SD_START+261)
+#define SID_SETFILLSTYLE (SID_SD_START+262)
+#define SID_SETFILLCOLOR (SID_SD_START+263)
+#define SID_GRADIENT (SID_SD_START+264)
+#define SID_SETLINESTYLE (SID_SD_START+265)
+#define SID_SETLINEWIDTH (SID_SD_START+266)
+#define SID_DASH (SID_SD_START+267)
+#define SID_RENAMEPAGE (SID_SD_START+268)
+#define SID_RENAMELAYER (SID_SD_START+269)
+#define SID_HATCH (SID_SD_START+270)
+#define SID_GETFILLSTYLE (SID_SD_START+271)
+#define SID_GETLINESTYLE (SID_SD_START+272)
+#define SID_GETLINEWIDTH (SID_SD_START+273)
+#define SID_SETLINECOLOR (SID_SD_START+274)
+#define SID_SETHATCHCOLOR (SID_SD_START+275)
+#define SID_SETGRADSTARTCOLOR (SID_SD_START+276)
+#define SID_SETGRADENDCOLOR (SID_SD_START+277)
+#define SID_SELECTGRADIENT (SID_SD_START+278)
+#define SID_SELECTHATCH (SID_SD_START+279)
+#define SID_UNSELECT (SID_SD_START+280)
+#define SID_TEXTATTR_DLG (SID_SD_START+281)
+#define SID_ORIGINAL_SIZE (SID_SD_START+282)
+#define SID_PUBLISH (SID_SD_START+283)
+#define SID_PAGES_PER_ROW (SID_SD_START+284)
+#define SID_TEXT_FITTOSIZE (SID_SD_START+285)
+//#define SID_FLTWIN_SDOBJPALETTE (SID_SD_START+286)
+#define SID_NAVIGATOR_PAGENAME (SID_SD_START+287)
+#define SID_NAVIGATOR_STATE (SID_SD_START+288)
+#define SID_NAVIGATOR_INIT (SID_SD_START+289)
+#define SID_NAVIGATOR_LIVE (SID_SD_START+290)
+#define SID_NAVIGATOR_PEN (SID_SD_START+291)
+#define SID_NAVIGATOR_PAGE (SID_SD_START+292)
+#define SID_NAVIGATOR_OBJECT (SID_SD_START+293)
+#define SID_ANIMATOR_INIT (SID_SD_START+294)
+#define SID_DRAWTBX_3D_OBJECTS (SID_SD_START+295)
+#define SID_3D_CUBE (SID_SD_START+296)
+#define SID_3D_SPHERE (SID_SD_START+297)
+#define SID_3D_CYLINDER (SID_SD_START+298)
+#define SID_3D_CONE (SID_SD_START+299)
+#define SID_3D_PYRAMID (SID_SD_START+300)
+#define SID_GLUE_EDITMODE (SID_SD_START+301)
+#define SID_GLUE_INSERT_POINT (SID_SD_START+302)
+#define SID_GLUE_PERCENT (SID_SD_START+303)
+#define SID_GLUE_ESCDIR (SID_SD_START+304)
+#define SID_GLUE_HORZALIGN_CENTER (SID_SD_START+305)
+#define SID_GLUE_HORZALIGN_LEFT (SID_SD_START+306)
+#define SID_GLUE_HORZALIGN_RIGHT (SID_SD_START+307)
+#define SID_GLUE_VERTALIGN_CENTER (SID_SD_START+308)
+#define SID_GLUE_VERTALIGN_TOP (SID_SD_START+309)
+#define SID_GLUE_VERTALIGN_BOTTOM (SID_SD_START+310)
+#define SID_3D_SHELL (SID_SD_START+311)
+#define SID_3D_TORUS (SID_SD_START+312)
+#define SID_3D_HALF_SPHERE (SID_SD_START+313)
+#define SID_GLUE_ESCDIR_LEFT (SID_SD_START+314)
+#define SID_GLUE_ESCDIR_RIGHT (SID_SD_START+315)
+#define SID_GLUE_ESCDIR_TOP (SID_SD_START+316)
+#define SID_GLUE_ESCDIR_BOTTOM (SID_SD_START+317)
+#define SID_DRAWTBX_INSERT (SID_SD_START+318)
+#define SID_POLYGON_MORPHING (SID_SD_START+319)
+#define SID_MEASURE_DLG (SID_SD_START+320)
+#define SID_EXPORT (SID_SD_START+321)
+#define SID_GRID_VISIBLE (SID_SD_START+322)
+#define SID_GRID_FRONT (SID_SD_START+323)
+#define SID_HELPLINES_VISIBLE (SID_SD_START+324)
+#define SID_HELPLINES_FRONT (SID_SD_START+325)
+#define SID_BEFORE_OBJ (SID_SD_START+326)
+#define SID_PREVIEW_WIN (SID_SD_START+327)
+#define SID_EFFECT_WIN (SID_SD_START+328)
+#define SID_PREVIEW_STATE (SID_SD_START+329)
+#define SID_EFFECT_STATE (SID_SD_START+330)
+#define SID_EFFECT_INIT (SID_SD_START+331)
+#define SID_EFFECT_ASSIGN (SID_SD_START+332)
+// (SID_SD_START+333)
+#define SID_SLIDE_CHANGE_WIN (SID_SD_START+334)
+#define SID_SLIDE_CHANGE_STATE (SID_SD_START+335)
+#define SID_SLIDE_CHANGE_ASSIGN (SID_SD_START+336)
+//#define SID_CONVERT_TO_3D_LATHE_FAST (SID_SD_START+337)
+#define SID_CONNECTION_DLG (SID_SD_START+338)
+#define SID_PRESENTATION_DLG (SID_SD_START+339)
+#define SID_HYPHENATION (SID_SD_START+340)
+#define SID_CONNECTION_NEW_ROUTING (SID_SD_START+341)
+#define SID_DUPLICATE_PAGE (SID_SD_START+342)
+#define SID_EXPAND_PAGE (SID_SD_START+343)
+#define SID_SUMMARY_PAGE (SID_SD_START+344)
+#define SID_LEAVE_ALL_GROUPS (SID_SD_START+345)
+#define SID_PARASPACE_INCREASE (SID_SD_START+346)
+#define SID_PARASPACE_DECREASE (SID_SD_START+347)
+#define SID_SLIDE_MASTERPAGE (SID_SD_START+348)
+#define SID_HANDOUT_MASTERPAGE (SID_SD_START+349)
+#define SID_NOTES_MASTERPAGE (SID_SD_START+350)
+#define SID_TITLE_MASTERPAGE (SID_SD_START+351)
+#define SID_INSERTPAGE_QUICK (SID_SD_START+352)
+//#define SID_3D_WIN (SID_SD_START+353)
+//#define SID_3D_STATE (SID_SD_START+354)
+//#define SID_3D_INIT (SID_SD_START+355)
+//#define SID_3D_ASSIGN (SID_SD_START+356)
+#define SID_INSERT_FLD_DATE_VAR (SID_SD_START+357)
+#define SID_INSERT_FLD_DATE_FIX (SID_SD_START+358)
+#define SID_INSERT_FLD_TIME_VAR (SID_SD_START+359)
+#define SID_INSERT_FLD_TIME_FIX (SID_SD_START+360)
+#define SID_INSERT_FLD_PAGE (SID_SD_START+361)
+#define SID_MODIFY_FIELD (SID_SD_START+362)
+#define SID_INSERT_FLD_FILE (SID_SD_START+363)
+#define SID_INSERT_FLD_AUTHOR (SID_SD_START+364)
+#define SID_CUSTOMSHOW_DLG (SID_SD_START+365)
+
+#define SID_OUTPUT_QUALITY_COLOR (SID_SD_START+366)
+#define SID_OUTPUT_QUALITY_GRAYSCALE (SID_SD_START+367)
+#define SID_OUTPUT_QUALITY_BLACKWHITE (SID_SD_START+368)
+#define SID_PREVIEW_QUALITY_COLOR (SID_SD_START+369)
+#define SID_PREVIEW_QUALITY_GRAYSCALE (SID_SD_START+370)
+#define SID_PREVIEW_QUALITY_BLACKWHITE (SID_SD_START+371)
+#define SID_VECTORIZE (SID_SD_START+372)
+
+#define SID_GRAFTBX_FILTERS (SID_SD_START+373)
+#define SID_GRAFFILTER_INVERT (SID_SD_START+374)
+#define SID_GRAFFILTER_SMOOTH (SID_SD_START+375)
+#define SID_GRAFFILTER_SHARPEN (SID_SD_START+376)
+#define SID_GRAFFILTER_REMOVENOISE (SID_SD_START+377)
+
+#define SID_CONVERT_TO_BITMAP (SID_SD_START+378)
+#define SID_CONVERT_TO_METAFILE (SID_SD_START+379)
+
+#define SID_PACKNGO (SID_SD_START+380)
+
+#define SID_CONVERT_TO_CONTOUR (SID_SD_START+381)
+
+#define SID_EDIT_HYPERLINK (SID_SD_START+382)
+
+#define SID_GRAFFILTER_SOBEL (SID_SD_START+390)
+#define SID_GRAFFILTER_MOSAIC (SID_SD_START+391)
+#define SID_GRAFFILTER_EMBOSS (SID_SD_START+392)
+#define SID_GRAFFILTER_POSTER (SID_SD_START+393)
+#define SID_GRAFFILTER_POPART (SID_SD_START+394)
+#define SID_GRAFFILTER_SEPIA (SID_SD_START+395)
+#define SID_GRAFFILTER_SOLARIZE (SID_SD_START+396)
diff --git a/sd/inc/app.hxx b/sd/inc/app.hxx
new file mode 100644
index 000000000000..37ce25ff4b46
--- /dev/null
+++ b/sd/inc/app.hxx
@@ -0,0 +1,63 @@
+/*************************************************************************
+ *
+ * $RCSfile: app.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:27 $
+ *
+ * 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): _______________________________________
+ *
+ *
+ ************************************************************************/
+#define _SD_DLL // fuer SD_MOD()
+#include "sdmod.hxx"
+
diff --git a/sd/inc/cusshow.hxx b/sd/inc/cusshow.hxx
new file mode 100644
index 000000000000..6484699ca2c8
--- /dev/null
+++ b/sd/inc/cusshow.hxx
@@ -0,0 +1,110 @@
+/*************************************************************************
+ *
+ * $RCSfile: cusshow.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:27 $
+ *
+ * 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 _SD_CUSSHOW_HXX
+#define _SD_CUSSHOW_HXX
+
+#ifndef _LIST_HXX //autogen
+#include
+#endif
+
+#ifndef _STREAM_HXX //autogen
+#include
+#endif
+
+#ifndef _STRING_HXX //autogen
+#include
+#endif
+
+class SdDrawDocument;
+
+
+
+/*************************************************************************
+|*
+|* CustomShow
+|*
+\************************************************************************/
+class SdCustomShow : public List
+{
+private:
+ String aName;
+ SdDrawDocument* pDoc;
+
+public:
+ SdCustomShow(SdDrawDocument* pDrawDoc);
+ SdCustomShow( const SdCustomShow& rShow );
+ virtual ~SdCustomShow();
+
+ void SetName(const String& rName) { aName = rName; }
+ String GetName() const { return aName; }
+
+ SdDrawDocument* GetDoc() const { return pDoc; }
+
+ friend SvStream& operator << (SvStream& rOut, const SdCustomShow& rCustomShow);
+ friend SvStream& operator >> (SvStream& rIn, SdCustomShow& rCustomShow);
+};
+
+
+
+
+#endif // _SD_CUSSHOW_HXX
+
diff --git a/sd/inc/diadef.h b/sd/inc/diadef.h
new file mode 100644
index 000000000000..430d3290a15c
--- /dev/null
+++ b/sd/inc/diadef.h
@@ -0,0 +1,76 @@
+/*************************************************************************
+ *
+ * $RCSfile: diadef.h,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:28 $
+ *
+ * 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 _SD_DIADEF_H
+#define _SD_DIADEF_H
+
+enum PresChange
+{
+ PRESCHANGE_MANUAL = 0,
+ PRESCHANGE_AUTO = 1,
+ PRESCHANGE_SEMIAUTO = 2
+};
+
+// muss angepasst werden!
+#define PRESCHANGE_COUNT 3
+
+#endif // _SD_DIADEF_H
+
diff --git a/sd/inc/drawdoc.hxx b/sd/inc/drawdoc.hxx
new file mode 100644
index 000000000000..e74135473662
--- /dev/null
+++ b/sd/inc/drawdoc.hxx
@@ -0,0 +1,403 @@
+/*************************************************************************
+ *
+ * $RCSfile: drawdoc.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:28 $
+ *
+ * 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 _DRAWDOC_HXX
+#define _DRAWDOC_HXX
+
+#ifndef _SV_PRINT_HXX
+#include
+#endif
+#ifndef _FM_FMMODEL_HXX
+#include
+#endif
+#ifndef _PRESENTATION_HXX
+#include "pres.hxx"
+#endif
+#ifndef _SVX_PAGEITEM_HXX //autogen
+#include
+#endif
+#ifndef _UNOTOOLS_CHARCLASS_HXX
+#include
+#endif
+#ifndef _TOOLS_INTN_HXX
+#include
+#endif
+#ifndef _COM_SUN_STAR_LANG_LOCALE_HPP_
+#include
+#endif
+
+#ifdef SVX_LIGHT
+#define SdOutliner Outliner
+#endif
+#ifndef _RSCSFX_HXX
+#include
+#endif
+
+
+class Timer;
+class SfxObjectShell;
+class SdPage;
+class FrameView;
+class SdDrawDocShell;
+class SdOutliner;
+class SdAnimationInfo;
+class SdIMapInfo;
+class IMapObject;
+class SdStyleSheetPool;
+class SfxMedium;
+class SvxSearchItem;
+class SdrOle2Obj;
+class EditStatus;
+class Graphic;
+class Point;
+class Window;
+struct SpellCallbackInfo;
+struct StyleRequestData;
+
+#ifndef SVX_LIGHT
+#ifndef SV_DECL_SDDRAWDOCSHELL_DEFINED
+#define SV_DECL_SDDRAWDOCSHELL_DEFINED
+SV_DECL_REF(SdDrawDocShell)
+#endif
+#endif
+
+struct StyleReplaceData
+{
+ SfxStyleFamily nFamily;
+ SfxStyleFamily nNewFamily;
+ String aName;
+ String aNewName;
+};
+
+enum DocCreationMode
+{
+ NEW_DOC,
+ DOC_LOADED
+};
+
+#ifdef SVX_LIGHT
+class SvStream;
+
+class SdDrawDocShell
+{
+private:
+ SvStream* pStream;
+ Printer* pPrinter;
+public:
+ SdDrawDocShell( SvStream* pS ) { pPrinter = NULL; pStream = pS; }
+ ~SdDrawDocShell() { delete pPrinter; }
+
+ virtual void SetPrinter( Printer* pPrntr ) { pPrinter = pPrntr; }
+ virtual Printer* GetPrinter( BOOL bCreate ) { if( pPrinter == NULL && bCreate ) pPrinter = new Printer(); return pPrinter; }
+
+ virtual SvStream* GetDocumentStream(FASTBOOL& rbDeleteAfterUse) const { return pStream; }
+};
+
+#endif
+
+
+//==================================================================
+
+class SdDrawDocument : public FmFormModel
+{
+public:
+ static SdDrawDocument* pDocLockedInsertingLinks; // static to prevent recursions while resolving links
+
+private:
+ SdOutliner* pOutliner; // Lokaler Outliner fuer den Gliederungsmodus
+ SdOutliner* pInternalOutliner; // Interner Outliner zum Erzeugen von Textobjekten
+ Timer* pWorkStartupTimer;
+ Timer* pOnlineSpellingTimer;
+ List* pOnlineSpellingList;
+ List* pDeletedPresObjList;
+ SvxSearchItem* pOnlineSearchItem;
+ List* pFrameViewList;
+ List* pCustomShowList;
+ SdDrawDocShell* pDocSh;
+ BOOL bHasOnlineSpellErrors;
+ BOOL bInitialOnlineSpellingEnabled;
+ String aBookmarkFile; // Zum Laden von Bookmarks
+#ifndef SVX_LIGHT
+ SdDrawDocShellRef xBookmarkDocShRef; // Zum Laden von Bookmarks
+#endif
+ String aPresPage;
+ BOOL bNewOrLoadCompleted;
+ BOOL bPresAll;
+ BOOL bPresEndless;
+ BOOL bPresManual;
+ BOOL bPresMouseVisible;
+ BOOL bPresMouseAsPen;
+ BOOL bStartPresWithNavigator;
+ BOOL bAnimationAllowed;
+ BOOL bPresLockedPages;
+ BOOL bPresAlwaysOnTop;
+ BOOL bPresFullScreen;
+ ULONG nPresPause;
+ BOOL bPresShowLogo;
+ BOOL bSdDataObj;
+ BOOL bOnlineSpell;
+ BOOL bHideSpell;
+ BOOL bCustomShow;
+ ULONG nPresFirstPage;
+ LanguageType eLanguage;
+ SvxNumType ePageNumType;
+ Link aOldNotifyUndoActionHdl;
+#ifndef SVX_LIGHT
+ SdDrawDocShellRef xAllocedDocShRef; // Fuer AllocModel()
+ BOOL bAllocDocSh; // Fuer AllocModel()
+#endif
+ DocumentType eDocType;
+ UINT16 nFileFormatVersion;
+
+ void UpdatePageObjectsInNotes(USHORT nStartPos);
+ DECL_LINK(NotifyUndoActionHdl, SfxUndoAction*);
+ DECL_LINK(WorkStartupHdl, Timer*);
+ DECL_LINK(OnlineSpellingHdl, Timer*);
+ DECL_LINK(OnlineSpellEventHdl, EditStatus*);
+ void FillOnlineSpellingList(SdPage* pPage);
+ void SpellObject(SdrTextObj* pObj);
+
+ International* mpInternational;
+ ::com::sun::star::lang::Locale* mpLocale;
+ CharClass* mpCharClass;
+
+public:
+ TYPEINFO();
+
+ SdDrawDocument(DocumentType eType, SfxObjectShell* pDocSh);
+ ~SdDrawDocument();
+
+ virtual SdrModel* AllocModel() const;
+ virtual SdrPage* AllocPage(FASTBOOL bMasterPage);
+#ifndef SVX_LIGHT
+ virtual const SdrModel* LoadModel(const String& rFileName);
+ virtual void DisposeLoadedModels();
+#endif
+ virtual FASTBOOL IsReadOnly() const;
+
+ SfxItemPool& GetPool() { return( *pItemPool ); }
+
+ SdOutliner* GetOutliner(BOOL bCreateOutliner=TRUE);
+ SdOutliner* GetInternalOutliner(BOOL bCreateOutliner=TRUE);
+
+ SdDrawDocShell* GetDocSh() { return(pDocSh) ; }
+
+ LanguageType GetLanguage() const;
+ void SetLanguage( LanguageType eNewLang );
+
+ SvxNumType GetPageNumType() const { return ePageNumType; }
+ void SetPageNumType(SvxNumType eType) { ePageNumType = eType; }
+ String CreatePageNumValue(USHORT nNum) const;
+
+ DocumentType GetDocumentType() const { return eDocType; }
+
+#ifndef SVX_LIGHT
+ void SetAllocDocSh(BOOL bAlloc);
+#endif
+
+ void CreatingDataObj(BOOL bDataObj) { bSdDataObj = bDataObj; }
+
+ void CreateFirstPages();
+ BOOL CreateMissingNotesAndHandoutPages();
+
+ void MovePage(USHORT nPgNum, USHORT nNewPos);
+ void InsertPage(SdrPage* pPage, USHORT nPos=0xFFFF);
+ void DeletePage(USHORT nPgNum);
+ SdrPage* RemovePage(USHORT nPgNum);
+ void RemoveUnnessesaryMasterPages( SdPage* pMaster=NULL, BOOL bOnlyDuplicatePages=FALSE, BOOL bUndo=TRUE );
+ void SetMasterPage(USHORT nSdPageNum, const String& rLayoutName,
+ SdDrawDocument* pSourceDoc, BOOL bMaster, BOOL bCheckMasters);
+
+ SdDrawDocument* OpenBookmarkDoc(const String& rBookmarkFile);
+ SdDrawDocument* OpenBookmarkDoc(SfxMedium& rMedium);
+ BOOL InsertBookmark(List* pBookmarkList, List* pExchangeList, BOOL bLink,
+ BOOL bReplace, USHORT nPgPos, BOOL bNoDialogs,
+ SdDrawDocShell* pBookmarkDocSh, BOOL bCopy,
+ Point* pObjPos);
+ BOOL InsertBookmarkAsPage(List* pBookmarkList, List* pExchangeList,
+ BOOL bLink, BOOL bReplace, USHORT nPgPos,
+ BOOL bNoDialogs, SdDrawDocShell* pBookmarkDocSh,
+ BOOL bCopy, BOOL bMergeMasterPages);
+ BOOL InsertBookmarkAsObject(List* pBookmarkList, List* pExchangeListL,
+ BOOL bLink, SdDrawDocShell* pBookmarkDocSh,
+ Point* pObjPos);
+ void CloseBookmarkDoc();
+
+ SdrObject* GetObj(const String& rObjName) const;
+
+ USHORT GetPageByName(const String& rPgName) const;
+ SdPage* GetSdPage(USHORT nPgNum, PageKind ePgKind) const;
+ USHORT GetSdPageCount(PageKind ePgKind) const;
+ void SetSelected(SdPage* pPage, BOOL bSelect);
+ BOOL MovePages(USHORT nTargetPage);
+
+ SdPage* GetMasterSdPage(USHORT nPgNum, PageKind ePgKind);
+ USHORT GetMasterSdPageCount(PageKind ePgKind) const;
+
+ USHORT GetMasterPageUserCount(SdrPage* pMaster) const;
+
+ void SetPresPage( const String& rPresPage ) { aPresPage = rPresPage; }
+ const String& GetPresPage() const { return aPresPage; }
+
+ void SetPresAll(BOOL bNewPresAll);
+ BOOL GetPresAll() const { return bPresAll; }
+
+ void SetPresEndless(BOOL bNewPresEndless);
+ BOOL GetPresEndless() const { return bPresEndless; }
+
+ void SetPresManual(BOOL bNewPresManual);
+ BOOL GetPresManual() const { return bPresManual; }
+
+ void SetPresMouseVisible(BOOL bNewPresMouseVisible);
+ BOOL GetPresMouseVisible() const { return bPresMouseVisible; }
+
+ void SetPresMouseAsPen(BOOL bNewPresMouseAsPen);
+ BOOL GetPresMouseAsPen() const { return bPresMouseAsPen; }
+
+ void SetPresFirstPage (ULONG nNewFirstPage);
+ ULONG GetPresFirstPage() const { return nPresFirstPage; }
+
+ void SetStartPresWithNavigator (BOOL bStart);
+ BOOL GetStartPresWithNavigator() const { return bStartPresWithNavigator; }
+
+ void SetAnimationAllowed (BOOL bAllowed) { bAnimationAllowed = bAllowed; }
+ BOOL IsAnimationAllowed() const { return bAnimationAllowed; }
+
+ void SetPresPause( ULONG nSecondsToWait ) { nPresPause = nSecondsToWait; }
+ ULONG GetPresPause() const { return nPresPause; }
+
+ void SetPresShowLogo( BOOL bShowLogo ) { bPresShowLogo = bShowLogo; }
+ BOOL IsPresShowLogo() const { return bPresShowLogo; }
+
+ void SetPresLockedPages (BOOL bLock);
+ BOOL GetPresLockedPages() const { return bPresLockedPages; }
+
+ void SetPresAlwaysOnTop (BOOL bOnTop);
+ BOOL GetPresAlwaysOnTop() const { return bPresAlwaysOnTop; }
+
+ void SetPresFullScreen (BOOL bNewFullScreen);
+ BOOL GetPresFullScreen() const { return bPresFullScreen; }
+
+#ifndef SVX_LIGHT
+ void SetOnlineSpell( BOOL bIn );
+ BOOL GetOnlineSpell() const { return bOnlineSpell; }
+ void StopOnlineSpelling();
+ void StartOnlineSpelling(BOOL bForceSpelling=TRUE);
+ DECL_LINK(OnlineSpellCallback, SpellCallbackInfo*);
+
+ void InsertObject(SdrObject* pObj, SdPage* pPage);
+ void RemoveObject(SdrObject* pObj, SdPage* pPage);
+
+ void SetHideSpell( BOOL bIn );
+ BOOL GetHideSpell() const { return bHideSpell; }
+#endif
+
+ ULONG GetLinkCount();
+
+ List* GetFrameViewList() const { return pFrameViewList; }
+ List* GetCustomShowList(BOOL bCreate = FALSE);
+
+ void SetCustomShow(BOOL bCustShow) { bCustomShow = bCustShow; }
+ BOOL IsCustomShow() const { return bCustomShow; }
+
+ friend SvStream& operator << (SvStream& rOut, SdDrawDocument& rDoc);
+ friend SvStream& operator >> (SvStream& rIn, SdDrawDocument& rDoc);
+
+ virtual void SetChanged(FASTBOOL bFlag = TRUE);
+ virtual void NbcSetChanged(FASTBOOL bFlag = TRUE) { bChanged = bFlag; }
+ virtual SvStream* GetDocumentStream(FASTBOOL& rbDeleteAfterUse) const;
+
+ void SetTextDefaults() const;
+
+ void CreateLayoutTemplates();
+ void RenameLayoutTemplate(const String& rOldLayoutName, const String& rNewName);
+
+ void StopWorkStartupDelay();
+
+ void NewOrLoadCompleted(DocCreationMode eMode);
+ BOOL IsNewOrLoadCompleted() const {return bNewOrLoadCompleted; }
+
+ FrameView* GetFrameView(ULONG nPos)
+ { return (FrameView*) pFrameViewList->GetObject(nPos); }
+
+ SdAnimationInfo* GetAnimationInfo(SdrObject* pObject) const;
+
+ SdIMapInfo* GetIMapInfo( SdrObject* pObject ) const;
+ IMapObject* GetHitIMapObject( SdrObject* pObject, const Point& rWinPoint, const Window& rCmpWnd );
+
+ Graphic GetGraphicFromOle2Obj( const SdrOle2Obj* pOle2Obj );
+
+ List* GetDeletedPresObjList();
+
+ CharClass* GetCharClass() const { return mpCharClass; }
+ International* GetInternational() const { return mpInternational; }
+
+#ifndef SVX_LIGHT
+ void RestoreLayerNames();
+#endif
+ void MakeUniqueLayerNames();
+};
+
+
+
+#endif // _DRAWDOC_HXX
+
+
diff --git a/sd/inc/eetext.hxx b/sd/inc/eetext.hxx
new file mode 100644
index 000000000000..fd79badc40c9
--- /dev/null
+++ b/sd/inc/eetext.hxx
@@ -0,0 +1,119 @@
+/*************************************************************************
+ *
+ * $RCSfile: eetext.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:28 $
+ *
+ * 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 _EETEXT_HXX
+#define _EETEXT_HXX
+
+// Zeichenattribute....
+#define ITEMID_FONT EE_CHAR_FONTINFO
+#define ITEMID_POSTURE EE_CHAR_ITALIC
+#define ITEMID_WEIGHT EE_CHAR_WEIGHT
+#define ITEMID_SHADOWED EE_CHAR_SHADOW
+#define ITEMID_CONTOUR EE_CHAR_OUTLINE
+#define ITEMID_CROSSEDOUT EE_CHAR_STRIKEOUT
+#define ITEMID_UNDERLINE EE_CHAR_UNDERLINE
+#define ITEMID_FONTHEIGHT EE_CHAR_FONTHEIGHT
+#define ITEMID_COLOR EE_CHAR_COLOR
+#ifdef MAC
+#ifdef ITEMID_WORDLINEMODE
+#undef ITEMID_WORDLINEMODE
+#endif
+#ifdef ITEMID_CHARSETCOLOR
+#undef ITEMID_CHARSETCOLOR
+#endif
+#endif
+// #define ITEMID_WORDLINEMODE 0
+#define ITEMID_PROPSIZE 0
+// #define ITEMID_CHARSETCOLOR 0
+// #define ITEMID_KERNING 0
+// #define ITEMID_CASEMAP 0
+// #define ITEMID_LANGUAGE 0
+#define ITEMID_ESCAPEMENT EE_CHAR_ESCAPEMENT
+#define ITEMID_NOLINEBREAK 0
+#define ITEMID_NOHYPHENHERE 0
+
+// Absatzattribute
+#define ITEMID_ADJUST EE_PARA_JUST
+#define ITEMID_LINESPACING EE_PARA_SBL
+// #define ITEMID_WIDOWS 0
+// #define ITEMID_ORPHANS 0
+// #define ITEMID_HYPHENZONE 0
+
+#define ITEMID_TABSTOP EE_PARA_TABS
+
+#define ITEMID_PAPERBIN 0
+#define ITEMID_LRSPACE EE_PARA_LRSPACE
+#define ITEMID_ULSPACE EE_PARA_ULSPACE
+#define ITEMID_PRINT 0
+#define ITEMID_OPAQUE 0
+#define ITEMID_PROTECT 0
+#define ITEMID_BACKGROUND 0
+#define ITEMID_SHADOW 0
+#define ITEMID_MACRO 0
+#define ITEMID_BOX 0
+#define ITEMID_BOXINFO 0
+
+#ifndef _OUTLINER_HXX
+#include
+#endif
+
+#endif // EETEXT_HXX
+
+
diff --git a/sd/inc/fadedef.h b/sd/inc/fadedef.h
new file mode 100644
index 000000000000..fda447bbaa74
--- /dev/null
+++ b/sd/inc/fadedef.h
@@ -0,0 +1,78 @@
+/*************************************************************************
+ *
+ * $RCSfile: fadedef.h,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:28 $
+ *
+ * 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 _SD_FADEDEF_H
+#define _SD_FADEDEF_H
+
+// muss angepasst werden!
+#define FADE_EFFECT_COUNT 43
+
+enum FadeSpeed
+{
+ FADE_SPEED_SLOW,
+ FADE_SPEED_MEDIUM,
+ FADE_SPEED_FAST
+};
+// muss angepasst werden!
+#define FADE_SPEED_COUNT 3
+
+#endif // _SD_FADEDEF_H
+
diff --git a/sd/inc/glob.hrc b/sd/inc/glob.hrc
new file mode 100644
index 000000000000..b428312122b0
--- /dev/null
+++ b/sd/inc/glob.hrc
@@ -0,0 +1,154 @@
+/*************************************************************************
+ *
+ * $RCSfile: glob.hrc,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:28 $
+ *
+ * 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 _SFX_HRC
+#include
+#endif
+
+#define STR_LAYER_BCKGRND RID_APP_START+700
+#define STR_LAYER_BCKGRNDOBJ RID_APP_START+701
+#define STR_LAYER_LAYOUT RID_APP_START+702
+#define STR_LAYER_CONTROLS RID_APP_START+703
+#define STR_PAGE RID_APP_START+704
+#define STR_PRESOBJ_TITLE RID_APP_START+705
+#define STR_PRESOBJ_OUTLINE RID_APP_START+706
+#define STR_PRESOBJ_TEXT RID_APP_START+707
+#define STR_PRESOBJ_GRAPHIC RID_APP_START+708
+#define STR_PRESOBJ_OBJECT RID_APP_START+709
+#define STR_PRESOBJ_CHART RID_APP_START+710
+#define STR_PRESOBJ_ORGCHART RID_APP_START+711
+#define STR_PRESOBJ_TABLE RID_APP_START+712
+#define STR_PRESOBJ_IMAGE RID_APP_START+713
+#define BMP_PRESOBJ_GRAPHIC RID_APP_START+714
+#define BMP_PRESOBJ_OBJECT RID_APP_START+715
+#define BMP_PRESOBJ_CHART RID_APP_START+716
+#define BMP_PRESOBJ_ORGCHART RID_APP_START+717
+#define BMP_PRESOBJ_TABLE RID_APP_START+718
+#define BMP_PRESOBJ_IMAGE RID_APP_START+719
+#define STR_SLIDEVIEWSHELL RID_APP_START+720
+#define STR_OUTLINEVIEWSHELL RID_APP_START+721
+#define STR_DRAWVIEWSHELL RID_APP_START+722
+#define STR_TEXTOBJECTBARSHELL RID_APP_START+723
+#define STR_STDOBJECTBARSHELL RID_APP_START+724
+#define STR_BEZIEROBJECTBARSHELL RID_APP_START+725
+#define STR_APPLICATIONOBJECTBAR RID_APP_START+726
+#define STR_LAYOUT_TITLE RID_APP_START+727
+#define STR_LAYOUT_OUTLINE RID_APP_START+728
+#define STR_LAYOUT_BACKGROUNDOBJECTS RID_APP_START+729
+#define STR_LAYOUT_BACKGROUND RID_APP_START+730
+#define STR_LAYOUT_NOTES RID_APP_START+731
+#define STR_PRESOBJ_MPTITLE RID_APP_START+732
+#define STR_PRESOBJ_MPOUTLINE RID_APP_START+733
+#define STR_PRESOBJ_MPOUTLLAYER2 RID_APP_START+734
+#define STR_PRESOBJ_MPOUTLLAYER3 RID_APP_START+735
+#define STR_PRESOBJ_MPOUTLLAYER4 RID_APP_START+736
+#define STR_PRESOBJ_MPOUTLLAYER5 RID_APP_START+737
+#define STR_PRESOBJ_MPOUTLLAYER6 RID_APP_START+738
+#define STR_PRESOBJ_MPOUTLLAYER7 RID_APP_START+739
+#define STR_PRESOBJ_MPOUTLLAYER8 RID_APP_START+740
+#define STR_PRESOBJ_MPOUTLLAYER9 RID_APP_START+741
+#define STR_PRESOBJ_MPNOTESTITLE RID_APP_START+742
+#define STR_PRESOBJ_MPNOTESTEXT RID_APP_START+743
+#define STR_PRESOBJ_NOTESTEXT RID_APP_START+744
+#define STR_LAYOUT_DEFAULT_NAME RID_APP_START+745
+#define STR_STANDARD_STYLESHEET_NAME RID_APP_START+746
+#define STR_NOTES RID_APP_START+747
+#define STR_HANDOUT RID_APP_START+748
+#define STR_MASTERPAGE RID_APP_START+749
+#define STR_PRESOBJNOTESTEXT RID_APP_START+750
+#define STR_BAD_PASSWORD_OR_FILE_CORRUPTED RID_APP_START+751
+#define STR_UNDO_MOVEPAGES RID_APP_START+752
+#define STR_NOT_ENOUGH_MEMORY RID_APP_START+753
+#define STR_LAYOUT_SUBTITLE RID_APP_START+754
+#define STR_POOLSHEET_OBJWITHARROW RID_APP_START+755
+#define STR_POOLSHEET_OBJWITHSHADOW RID_APP_START+756
+#define STR_POOLSHEET_OBJWITHOUTFILL RID_APP_START+757
+#define STR_POOLSHEET_TEXT RID_APP_START+758
+#define STR_POOLSHEET_TEXTBODY RID_APP_START+759
+#define STR_POOLSHEET_TEXTBODY_JUSTIFY RID_APP_START+760
+#define STR_POOLSHEET_TEXTBODY_INDENT RID_APP_START+761
+#define STR_POOLSHEET_TITLE RID_APP_START+762
+#define STR_POOLSHEET_TITLE1 RID_APP_START+763
+#define STR_POOLSHEET_TITLE2 RID_APP_START+764
+#define STR_POOLSHEET_HEADLINE RID_APP_START+765
+#define STR_POOLSHEET_HEADLINE1 RID_APP_START+766
+#define STR_POOLSHEET_HEADLINE2 RID_APP_START+767
+#define STR_POOLSHEET_MEASURE RID_APP_START+768
+#define STR_PSEUDOSHEET_TITLE RID_APP_START+769
+#define STR_PSEUDOSHEET_OUTLINE RID_APP_START+770
+#define STR_PSEUDOSHEET_BACKGROUNDOBJECTS RID_APP_START+771
+#define STR_PSEUDOSHEET_BACKGROUND RID_APP_START+772
+#define STR_PSEUDOSHEET_NOTES RID_APP_START+773
+#define STR_GLUEPOINTSOBJECTBARSHELL RID_APP_START+774
+#define STR_EMPTY_STYLESHEET_NAME RID_APP_START+775
+#define STR_LAYER_MEASURELINES RID_APP_START+776
+#define STR_POOLSHEET_OBJWITHOUTFILL_NT RID_APP_START+777
+#define STR_POOLSHEET_TEXTBODY_NT RID_APP_START+778
+#define STR_POOLSHEET_TEXTBODY_JUSTIFY_NT RID_APP_START+779
+#define STR_POOLSHEET_TEXTBODY_INDENT_NT RID_APP_START+780
+#define STR_POOLSHEET_HEADLINE_NT RID_APP_START+781
+#define STR_POOLSHEET_HEADLINE1_NT RID_APP_START+782
+#define STR_POOLSHEET_HEADLINE2_NT RID_APP_START+783
+#define STR_POOLSHEET_MEASURE_NT RID_APP_START+784
+#define STR_PSEUDOSHEET_SUBTITLE RID_APP_START+785
+#define STR_LAYOUT_DEFAULT_TITLE_NAME RID_APP_START+786
+#define STR_GRAFOBJECTBARSHELL RID_APP_START+787
+
+
diff --git a/sd/inc/glob.hxx b/sd/inc/glob.hxx
new file mode 100644
index 000000000000..14b8eaaf8d3c
--- /dev/null
+++ b/sd/inc/glob.hxx
@@ -0,0 +1,114 @@
+/*************************************************************************
+ *
+ * $RCSfile: glob.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:28 $
+ *
+ * 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 _SD_GLOB_HXX
+#define _SD_GLOB_HXX
+
+#ifndef _SOLAR_H
+#include
+#endif
+
+//------------------------------------------------------------------
+
+#define DIA_SLOW 0
+#define DIA_MEDIUM 1
+#define DIA_FAST 2
+
+#define SD_IF_SDAPP SFX_INTERFACE_SD_START + 0
+#define SD_IF_SDDRAWDOCSHELL SFX_INTERFACE_SD_START + 1
+#define SD_IF_SDVIEWSHELL SFX_INTERFACE_SD_START + 2
+#define SD_IF_SDDRAWVIEWSHELL SFX_INTERFACE_SD_START + 3
+#define SD_IF_SDSLIDEVIEWSHELL SFX_INTERFACE_SD_START + 4
+#define SD_IF_SDOUTLINEVIEWSHELL SFX_INTERFACE_SD_START + 5
+#define SD_IF_SDDRAWSTDOBJECTBAR SFX_INTERFACE_SD_START + 6
+#define SD_IF_SDDRAWTEXTOBJECTBAR SFX_INTERFACE_SD_START + 7
+#define SD_IF_SDDRAWBEZIEROBJECTBAR SFX_INTERFACE_SD_START + 8
+#define SD_IF_SDDRAWGLUEPOINTSOBJECTBAR SFX_INTERFACE_SD_START + 9
+#define SD_IF_SDGRAPHICDOCSHELL SFX_INTERFACE_SD_START + 10
+#define SD_IF_SDGRAPHICVIEWSHELL SFX_INTERFACE_SD_START + 11
+#define SD_IF_SDGRAPHICSTDOBJECTBAR SFX_INTERFACE_SD_START + 12
+#define SD_IF_SDDRAWGRAFOBJECTBAR SFX_INTERFACE_SD_START + 13
+
+// Inventor-Id fuer StarDraw UserData
+const UINT32 SdUDInventor=UINT32('S')*0x00000001+
+ UINT32('D')*0x00000100+
+ UINT32('U')*0x00010000+
+ UINT32('D')*0x01000000;
+
+// Object-Ids fuer StarDraw UserData
+#define SD_ANIMATIONINFO_ID 1
+#define SD_IMAPINFO_ID 2
+
+// FamilyId der Praesentationsvorlagen
+#define SD_LT_FAMILY (SfxStyleFamily)0xaffe
+
+// Trennzeichen zwischen Layoutname und Vorlagenname der Praesentationsvorlagen
+#define SD_LT_SEPARATOR "~LT~"
+
+// Optionsstream-Identifier
+#define SD_OPTION_MORPHING "Morph"
+#define SD_OPTION_VECTORIZE "Vectorize"
+
+//------------------------------------------------------------------
+
+#endif // _SD_GLOB_HXX
+
+
diff --git a/sd/inc/helpids.h b/sd/inc/helpids.h
new file mode 100644
index 000000000000..3dd2bf1cb394
--- /dev/null
+++ b/sd/inc/helpids.h
@@ -0,0 +1,217 @@
+/*************************************************************************
+ *
+ * $RCSfile: helpids.h,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:28 $
+ *
+ * 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 _SOLAR_HRC
+#include
+#endif
+
+#define HID_SD_PRINT_OPTIONS (HID_SD_START + 0)
+#define HID_SD_OPTIONS_SNAP (HID_SD_START + 1)
+#define HID_SD_OPTIONS_VIEW (HID_SD_START + 2)
+
+#define HID_SD_AUTOPILOT_PAGE1 (HID_SD_START + 3)
+#define HID_SD_AUTOPILOT_PAGE2 (HID_SD_START + 4)
+#define HID_SD_AUTOPILOT_PAGE3 (HID_SD_START + 5)
+#define HID_SD_AUTOPILOT_PAGE4 (HID_SD_START + 6)
+#define HID_SD_AUTOPILOT_PAGE5 (HID_SD_START + 7)
+#define HID_SD_AUTOPILOT_PAGE6 (HID_SD_START + 8)
+
+#define HID_SD_CBX_ONLYSELECTED (HID_SD_START + 9)
+#define HID_SD_BTN_FILTERDIALOG (HID_SD_START + 10)
+
+#define HID_SD_BTN_PAGE (HID_SD_START + 11)
+#define HID_SD_BTN_MASTERPAGE (HID_SD_START + 12)
+#define HID_SD_BTN_LAYER (HID_SD_START + 13)
+
+#define HID_SD_BTN_DRAW (HID_SD_START + 14)
+#define HID_SD_BTN_SLIDE (HID_SD_START + 15)
+#define HID_SD_BTN_OUTLINE (HID_SD_START + 16)
+#define HID_SD_BTN_NOTES (HID_SD_START + 17)
+#define HID_SD_BTN_HANDOUT (HID_SD_START + 18)
+
+#define HID_SD_WIN_DOCUMENT (HID_SD_START + 19)
+
+#define HID_SD_OPTIONS_LAYOUT (HID_SD_START + 20)
+#define HID_SD_OPTIONS_CONTENTS (HID_SD_START + 21)
+#define HID_SD_OPTIONS_MISC (HID_SD_START + 22)
+
+#define HID_SD_EFFECT_PREVIEW (HID_SD_START + 23)
+#define HID_SD_CTL_NEWFOIL (HID_SD_START + 24)
+#define HID_SD_NAVIGATOR_TLB (HID_SD_START + 25)
+#define HID_SD_NAVIGATOR (HID_SD_START + 26)
+
+#define HID_SD_CTL_EFFECTS (HID_SD_START + 27)
+#define HID_SD_CTL_TEXT_EFFECTS (HID_SD_START + 28)
+
+#define HID_SD_CTL_SLIDE_CHANGE (HID_SD_START + 29)
+
+#define HID_SD_NAVIGATOR_TBX (HID_SD_START + 30)
+#define HID_SD_NAVIGATOR_LB (HID_SD_START + 31)
+
+#define HID_SD_NAVIGATOR_TBI_LIVE (HID_SD_START + 32)
+#define HID_SD_NAVIGATOR_TBI_PEN (HID_SD_START + 33)
+#define HID_SD_NAVIGATOR_TBI_FIRST (HID_SD_START + 34)
+#define HID_SD_NAVIGATOR_TBI_PREV (HID_SD_START + 35)
+#define HID_SD_NAVIGATOR_TBI_NEXT (HID_SD_START + 36)
+#define HID_SD_NAVIGATOR_TBI_LAST (HID_SD_START + 37)
+#define HID_SD_NAVIGATOR_TBI_DRAGTYPE (HID_SD_START + 38)
+
+// Toolboxen
+#define HID_SD_DRAW_DEFAULTTOOLBOX (HID_SD_START + 40)
+#define HID_SD_PLUGINTOOLBOX (HID_SD_START + 41)
+#define HID_SD_DRAW_TOOLBOX (HID_SD_START + 42)
+#define HID_SD_SLIDE_TOOLBOX (HID_SD_START + 43)
+#define HID_SD_OUTLINE_TOOLBOX (HID_SD_START + 44)
+#define HID_SD_DRAW_OBJ_TOOLBOX (HID_SD_START + 45)
+#define HID_SD_DRAW_OPTIONS_TOOLBOX (HID_SD_START + 46)
+#define HID_SD_DRAW_COMMONTASK_TOOLBOX (HID_SD_START + 47)
+#define HID_SD_BEZIER_TOOLBOX (HID_SD_START + 48)
+#define HID_SD_TEXT_TOOLBOX (HID_SD_START + 49)
+#define HID_SD_GLUEPOINTS_TOOLBOX (HID_SD_START + 50)
+#define HID_SD_SLIDE_OBJ_TOOLBOX (HID_SD_START + 51)
+
+// FloatingWindows
+#define HID_SD_FW_ALIGNMENT (HID_SD_START + 52)
+#define HID_SD_FW_ZOOM (HID_SD_START + 53)
+#define HID_SD_FW_CHOOSE_MODE (HID_SD_START + 54)
+#define HID_SD_FW_TEXT (HID_SD_START + 55)
+#define HID_SD_FW_RECTANGLES (HID_SD_START + 56)
+#define HID_SD_FW_ELLIPSES (HID_SD_START + 57)
+#define HID_SD_FW_LINES (HID_SD_START + 58)
+#define HID_SD_FW_ARROWS (HID_SD_START + 59)
+#define HID_SD_FW_3D_OBJECTS (HID_SD_START + 60)
+#define HID_SD_FW_CONNECTORS (HID_SD_START + 61)
+#define HID_SD_FW_INSERT (HID_SD_START + 62)
+#define HID_SD_FW_POSITION (HID_SD_START + 63)
+
+#define HID_SD_BTN_PREVIEW (HID_SD_START + 64)
+
+#define HID_SD_NAVIGATOR_MENU1 (HID_SD_START + 65)
+#define HID_SD_NAVIGATOR_MENU2 (HID_SD_START + 66)
+#define HID_SD_NAVIGATOR_MENU3 (HID_SD_START + 67)
+
+#define HID_SD_WIN_PRESENTATION (HID_SD_START + 68)
+
+// HelpIDs fuer Vorlagen
+#define HID_STANDARD_STYLESHEET_NAME (HID_SD_START + 70)
+#define HID_POOLSHEET_OBJWITHARROW (HID_SD_START + 71)
+#define HID_POOLSHEET_OBJWITHSHADOW (HID_SD_START + 72)
+#define HID_POOLSHEET_OBJWITHOUTFILL (HID_SD_START + 73)
+#define HID_POOLSHEET_TEXT (HID_SD_START + 74)
+#define HID_POOLSHEET_TEXTBODY (HID_SD_START + 75)
+#define HID_POOLSHEET_TEXTBODY_JUSTIFY (HID_SD_START + 76)
+#define HID_POOLSHEET_TEXTBODY_INDENT (HID_SD_START + 77)
+#define HID_POOLSHEET_TITLE (HID_SD_START + 78)
+#define HID_POOLSHEET_TITLE1 (HID_SD_START + 79)
+#define HID_POOLSHEET_TITLE2 (HID_SD_START + 80)
+#define HID_POOLSHEET_HEADLINE (HID_SD_START + 81)
+#define HID_POOLSHEET_HEADLINE1 (HID_SD_START + 82)
+#define HID_POOLSHEET_HEADLINE2 (HID_SD_START + 83)
+#define HID_POOLSHEET_MEASURE (HID_SD_START + 84)
+
+#define HID_PSEUDOSHEET_TITLE (HID_SD_START + 85)
+#define HID_PSEUDOSHEET_OUTLINE (HID_SD_START + 86)
+#define HID_PSEUDOSHEET_OUTLINE1 (HID_SD_START + 87)
+#define HID_PSEUDOSHEET_OUTLINE2 (HID_SD_START + 88)
+#define HID_PSEUDOSHEET_OUTLINE3 (HID_SD_START + 89)
+#define HID_PSEUDOSHEET_OUTLINE4 (HID_SD_START + 90)
+#define HID_PSEUDOSHEET_OUTLINE5 (HID_SD_START + 91)
+#define HID_PSEUDOSHEET_OUTLINE6 (HID_SD_START + 92)
+#define HID_PSEUDOSHEET_OUTLINE7 (HID_SD_START + 93)
+#define HID_PSEUDOSHEET_OUTLINE8 (HID_SD_START + 94)
+#define HID_PSEUDOSHEET_OUTLINE9 (HID_SD_START + 95)
+#define HID_PSEUDOSHEET_BACKGROUNDOBJECTS (HID_SD_START + 96)
+#define HID_PSEUDOSHEET_BACKGROUND (HID_SD_START + 97)
+#define HID_PSEUDOSHEET_NOTES (HID_SD_START + 98)
+
+#define HID_DLG_DEFINE_CUSTOMSHOW (HID_SD_START + 99)
+#define HID_DLG_DEFINE_CUSTOMSHOW_CTL (HID_SD_START + 100)
+
+#define HID_PSEUDOSHEET_SUBTITLE (HID_SD_START + 101)
+
+#define HID_CTL_ACTION_DLG_1 (HID_SD_START + 102)
+#define HID_CTL_ACTION_DLG_2 (HID_SD_START + 103)
+
+#define HID_SD_BTN_PRESENTATION (HID_SD_START + 104)
+
+#define HID_SD_HTMLEXPORT_PAGE1 (HID_SD_START + 105)
+#define HID_SD_HTMLEXPORT_PAGE2 (HID_SD_START + 106)
+#define HID_SD_HTMLEXPORT_PAGE3 (HID_SD_START + 107)
+#define HID_SD_HTMLEXPORT_PAGE4 (HID_SD_START + 108)
+#define HID_SD_HTMLEXPORT_PAGE5 (HID_SD_START + 109)
+#define HID_SD_HTMLEXPORT_PAGE6 (HID_SD_START + 110)
+
+#define HID_SD_CHGFOIL_LAYOUT (HID_SD_START + 111)
+#define HID_SD_CHGFOIL_BACKGROUND (HID_SD_START + 112)
+#define HID_SD_CHGFOIL_OBJECTS (HID_SD_START + 113)
+#define HID_SD_CHGFOIL_NAME (HID_SD_START + 114)
+
+#define HID_SD_HTMLEXPORT_DLG_DNAME (HID_SD_START + 115)
+
+#define HID_FM_CTL_SELECTION (HID_SD_START + 116)
+
+#define HID_SD_AUTOPILOT_REGION (HID_SD_START + 117)
+#define HID_SD_AUTOPILOT_TEMPLATES (HID_SD_START + 118)
+#define HID_SD_AUTOPILOT_OPEN (HID_SD_START + 119)
+#define HID_SD_AUTOPILOT_PAGETEMPLATES (HID_SD_START + 120)
+
+#define HID_SD_DRAW_GRAF_TOOLBOX (HID_SD_START + 121)
+
+#define HID_SD_FW_GRAFFILTERS (HID_SD_START + 122)
diff --git a/sd/inc/imapinfo.hxx b/sd/inc/imapinfo.hxx
new file mode 100644
index 000000000000..2aa08d3bb44a
--- /dev/null
+++ b/sd/inc/imapinfo.hxx
@@ -0,0 +1,148 @@
+/*************************************************************************
+ *
+ * $RCSfile: imapinfo.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:28 $
+ *
+ * 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 _SD_IMAPINFO_HXX
+#define _SD_IMAPINFO_HXX
+
+#ifndef _SD_SDIOCMPT_HXX
+#include "sdiocmpt.hxx"
+#endif
+#ifndef _SD_GLOB_HXX
+#include "glob.hxx"
+#endif
+#ifndef _SVDOBJ_HXX //autogen
+#include
+#endif
+#ifndef _IMAP_HXX //autogen
+#include
+#endif
+
+
+/*************************************************************************
+|*
+|*
+|*
+\************************************************************************/
+
+class SdIMapInfo : public SdrObjUserData, public SfxListener
+{
+
+ ImageMap aImageMap;
+
+public:
+ SdIMapInfo() :
+ SdrObjUserData( SdUDInventor, SD_IMAPINFO_ID, 0 ) {};
+
+ SdIMapInfo( const ImageMap& rImageMap ) :
+ SdrObjUserData( SdUDInventor, SD_IMAPINFO_ID, 0 ),
+ aImageMap( rImageMap ) {};
+
+ SdIMapInfo( const SdIMapInfo& rIMapInfo ) :
+ SdrObjUserData( SdUDInventor, SD_IMAPINFO_ID, 0 ),
+ aImageMap( rIMapInfo.aImageMap ) {};
+
+ virtual ~SdIMapInfo() {};
+
+ virtual SdrObjUserData* Clone( SdrObject* pObj ) const { return new SdIMapInfo( *this ); }
+
+ virtual void WriteData( SvStream& rOStm );
+ virtual void ReadData( SvStream& rIStm );
+
+ void SetImageMap( const ImageMap& rIMap ) { aImageMap = rIMap; }
+ const ImageMap& GetImageMap() const { return aImageMap; }
+};
+
+
+/*************************************************************************
+|*
+|*
+|*
+\************************************************************************/
+
+inline void SdIMapInfo::WriteData( SvStream& rOStm )
+{
+ SdrObjUserData::WriteData( rOStm );
+
+ SdIOCompat aIO( rOStm, STREAM_WRITE, 1 );
+
+ rOStm << aImageMap;
+}
+
+
+/*************************************************************************
+|*
+|*
+|*
+\************************************************************************/
+
+inline void SdIMapInfo::ReadData( SvStream& rIStm )
+{
+ SdrObjUserData::ReadData( rIStm );
+
+ SdIOCompat aIO( rIStm, STREAM_READ );
+
+ rIStm >> aImageMap;
+}
+
+
+#endif // _SD_IMAPINFO_HXX
+
+
diff --git a/sd/inc/misc.hxx b/sd/inc/misc.hxx
new file mode 100644
index 000000000000..aa4becc3a98e
--- /dev/null
+++ b/sd/inc/misc.hxx
@@ -0,0 +1,70 @@
+/*************************************************************************
+ *
+ * $RCSfile: misc.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:28 $
+ *
+ * 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 _SD_MISC_HXX
+#define _SD_MISC_HXX
+
+// do we have a StarOffice Image OLE server?
+#undef STARIMAGE_AVAILABLE
+
+#endif // _SD_MISC_HXX
+
+
diff --git a/sd/inc/movedef.hxx b/sd/inc/movedef.hxx
new file mode 100644
index 000000000000..ecc292dff171
--- /dev/null
+++ b/sd/inc/movedef.hxx
@@ -0,0 +1,76 @@
+/*************************************************************************
+ *
+ * $RCSfile: movedef.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:28 $
+ *
+ * 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 _SD_MOVEDEF_HXX
+#define _SD_MOVEDEF_HXX
+
+enum MoveSpeed
+{
+ MOVE_SPEED_SLOW,
+ MOVE_SPEED_MEDIUM,
+ MOVE_SPEED_FAST
+};
+
+// muss angepasst werden!
+#define MOVE_SPEED_COUNT 3
+
+#endif // _SD_MOVEDEF_HXX
+
diff --git a/sd/inc/pglink.hxx b/sd/inc/pglink.hxx
new file mode 100644
index 000000000000..18ce4f5185ca
--- /dev/null
+++ b/sd/inc/pglink.hxx
@@ -0,0 +1,98 @@
+/*************************************************************************
+ *
+ * $RCSfile: pglink.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:28 $
+ *
+ * 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 _PGLINK_HXX
+#define _PGLINK_HXX
+
+#ifndef SVX_LIGHT
+
+#ifndef _LNKBASE_HXX //autogen
+#include
+#endif
+
+class SdPage;
+
+
+
+class SdPageLink : public SvBaseLink
+{
+ SdPage* pPage;
+
+public:
+ SdPageLink(SdPage* pPg, const String& rFileName, const String& rBookmarkName);
+ virtual ~SdPageLink();
+
+ virtual void Closed();
+ virtual void DataChanged(SvData& rData);
+ FASTBOOL Connect() { return 0 != SvBaseLink::GetRealObject(); }
+};
+
+#else
+
+class SdPageLink;
+
+#endif
+
+#endif // _PGLINK_HXX
+
+
+
+
diff --git a/sd/inc/pres.hxx b/sd/inc/pres.hxx
new file mode 100644
index 000000000000..f24b7689ac52
--- /dev/null
+++ b/sd/inc/pres.hxx
@@ -0,0 +1,115 @@
+/*************************************************************************
+ *
+ * $RCSfile: pres.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:28 $
+ *
+ * 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 _PRESENTATION_HXX
+#define _PRESENTATION_HXX
+
+enum AutoLayout
+{
+ AUTOLAYOUT_TITLE,
+ AUTOLAYOUT_ENUM,
+ AUTOLAYOUT_CHART,
+ AUTOLAYOUT_2TEXT,
+ AUTOLAYOUT_TEXTCHART,
+ AUTOLAYOUT_ORG,
+ AUTOLAYOUT_TEXTCLIP,
+ AUTOLAYOUT_CHARTTEXT,
+ AUTOLAYOUT_TAB,
+ AUTOLAYOUT_CLIPTEXT,
+ AUTOLAYOUT_TEXTOBJ,
+ AUTOLAYOUT_OBJ,
+ AUTOLAYOUT_TEXT2OBJ,
+ AUTOLAYOUT_OBJTEXT,
+ AUTOLAYOUT_OBJOVERTEXT,
+ AUTOLAYOUT_2OBJTEXT,
+ AUTOLAYOUT_2OBJOVERTEXT,
+ AUTOLAYOUT_TEXTOVEROBJ,
+ AUTOLAYOUT_4OBJ,
+ AUTOLAYOUT_ONLY_TITLE,
+ AUTOLAYOUT_NONE,
+ AUTOLAYOUT_NOTES,
+ AUTOLAYOUT_HANDOUT1,
+ AUTOLAYOUT_HANDOUT2,
+ AUTOLAYOUT_HANDOUT3,
+ AUTOLAYOUT_HANDOUT4,
+ AUTOLAYOUT_HANDOUT6
+};
+
+enum PageKind
+{
+ PK_STANDARD,
+ PK_NOTES,
+ PK_HANDOUT
+};
+
+enum EditMode
+{
+ EM_PAGE,
+ EM_MASTERPAGE
+};
+
+enum DocumentType
+{
+ DOCUMENT_TYPE_IMPRESS,
+ DOCUMENT_TYPE_DRAW
+};
+
+#endif // _PRESENTATION_HXX
+
diff --git a/sd/inc/resltn.hxx b/sd/inc/resltn.hxx
new file mode 100644
index 000000000000..032461a9f3a0
--- /dev/null
+++ b/sd/inc/resltn.hxx
@@ -0,0 +1,85 @@
+/*************************************************************************
+ *
+ * $RCSfile: resltn.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:28 $
+ *
+ * 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 _SD_RESLTN_HXX
+#define _SD_RESLTN_HXX
+
+enum PublishingResolution
+{
+ RESOLUTION_HIGH,
+ RESOLUTION_MEDIUM,
+ RESOLUTION_LOW
+};
+
+enum PublishingFormat
+{
+ FORMAT_GIF,
+ FORMAT_JPG
+};
+
+enum PublishingScript
+{
+ SCRIPT_ASP,
+ SCRIPT_PERL
+};
+
+#endif // _SD_RESLTN_HXX
+
diff --git a/sd/inc/sdattr.hxx b/sd/inc/sdattr.hxx
new file mode 100644
index 000000000000..1f96bad7ddbc
--- /dev/null
+++ b/sd/inc/sdattr.hxx
@@ -0,0 +1,406 @@
+/*************************************************************************
+ *
+ * $RCSfile: sdattr.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:28 $
+ *
+ * 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 _SDATTR_HXX
+#define _SDATTR_HXX
+
+#ifndef _COM_SUN_STAR_PRESENTATION_FADEEFFECT_HPP_
+#include
+#endif
+
+#ifndef _SFXINTITEM_HXX //autogen
+#include
+#endif
+#ifndef _SFXENUMITEM_HXX //autogen
+#include
+#endif
+#ifndef _SFXSTRITEM_HXX //autogen
+#include
+#endif
+#ifndef _SFX_HRC
+#include
+#endif
+
+#ifndef _SD_GLOB_HXX
+#include "glob.hxx"
+#endif
+#ifndef _SD_FADEDEF_H
+#include "fadedef.h"
+#endif
+#ifndef _SD_DIADEF_H
+#include "diadef.h"
+#endif
+
+//------------------------------------------------------------------
+
+// Anfang Page-Attribute
+#define ATTR_PAGE_START SID_SD_START + 1234
+#define ATTR_PAGE_NAME ATTR_PAGE_START
+#define ATTR_PAGE_BACKGROUND ATTR_PAGE_START + 1
+#define ATTR_PAGE_OBJECTS ATTR_PAGE_START + 2
+#define ATTR_PAGE_LAYOUT ATTR_PAGE_START + 3
+#define ATTR_PAGE_END ATTR_PAGE_LAYOUT
+
+// Layer-Attribute
+#define ATTR_LAYER_START ATTR_PAGE_END + 1
+#define ATTR_LAYER_NAME ATTR_LAYER_START
+#define ATTR_LAYER_VISIBLE ATTR_LAYER_START + 1
+#define ATTR_LAYER_PRINTABLE ATTR_LAYER_START + 2
+#define ATTR_LAYER_LOCKED ATTR_LAYER_START + 3
+#define ATTR_LAYER_THISPAGE ATTR_LAYER_START + 4
+#define ATTR_LAYER_END ATTR_LAYER_THISPAGE
+
+// Anfang Dia-Attribute
+#define ATTR_DIA_START ATTR_LAYER_END + 1
+#define ATTR_DIA_EFFECT ATTR_DIA_START
+#define ATTR_DIA_SPEED ATTR_DIA_START + 1
+#define ATTR_DIA_AUTO ATTR_DIA_START + 2
+#define ATTR_DIA_TIME ATTR_DIA_START + 3
+#define ATTR_DIA_SOUND ATTR_DIA_START + 4
+#define ATTR_DIA_SOUNDFILE ATTR_DIA_START + 5
+#define ATTR_DIA_END ATTR_DIA_SOUNDFILE
+
+// Praesentations-Attribute
+#define ATTR_PRESENT_START ATTR_DIA_END + 1
+#define ATTR_PRESENT_ALL ATTR_PRESENT_START
+#define ATTR_PRESENT_CUSTOMSHOW ATTR_PRESENT_START + 1
+#define ATTR_PRESENT_DIANAME ATTR_PRESENT_START + 2
+#define ATTR_PRESENT_ENDLESS ATTR_PRESENT_START + 3
+#define ATTR_PRESENT_MANUEL ATTR_PRESENT_START + 4
+#define ATTR_PRESENT_MOUSE ATTR_PRESENT_START + 5
+#define ATTR_PRESENT_PEN ATTR_PRESENT_START + 6
+#define ATTR_PRESENT_NAVIGATOR ATTR_PRESENT_START + 7
+#define ATTR_PRESENT_CHANGE_PAGE ATTR_PRESENT_START + 8
+#define ATTR_PRESENT_ALWAYS_ON_TOP ATTR_PRESENT_START + 9
+#define ATTR_PRESENT_FULLSCREEN ATTR_PRESENT_START + 10
+#define ATTR_PRESENT_START_ACTUAL_PAGE ATTR_PRESENT_START + 11
+#define ATTR_PRESENT_ANIMATION_ALLOWED ATTR_PRESENT_START + 12
+#define ATTR_PRESENT_PAUSE_TIMEOUT ATTR_PRESENT_START + 13
+#define ATTR_PRESENT_SHOW_PAUSELOGO ATTR_PRESENT_START + 14
+#define ATTR_PRESENT_END ATTR_PRESENT_SHOW_PAUSELOGO
+
+// Transformations-Attribute
+#define ATTR_TRANSF_START ATTR_PRESENT_END + 1
+#define ATTR_TRANSF_POS_X ATTR_TRANSF_START
+#define ATTR_TRANSF_POS_Y ATTR_TRANSF_START + 1
+#define ATTR_TRANSF_WIDTH ATTR_TRANSF_START + 2
+#define ATTR_TRANSF_HEIGHT ATTR_TRANSF_START + 3
+#define ATTR_TRANSF_SIZE_POINT ATTR_TRANSF_START + 4
+#define ATTR_TRANSF_ROT_X ATTR_TRANSF_START + 5
+#define ATTR_TRANSF_ROT_Y ATTR_TRANSF_START + 6
+#define ATTR_TRANSF_ANGLE ATTR_TRANSF_START + 7
+#define ATTR_TRANSF_END ATTR_TRANSF_ANGLE
+
+// Raster-Attribute
+#define ATTR_GRID_START ATTR_TRANSF_END + 1
+#define ATTR_GRID_USE ATTR_GRID_START
+#define ATTR_GRID_DRAW_X ATTR_GRID_START + 1
+#define ATTR_GRID_DRAW_Y ATTR_GRID_START + 2
+#define ATTR_GRID_DIVISION_X ATTR_GRID_START + 3
+#define ATTR_GRID_DIVISION_Y ATTR_GRID_START + 4
+#define ATTR_GRID_SNAP_X ATTR_GRID_START + 5
+#define ATTR_GRID_SNAP_Y ATTR_GRID_START + 6
+#define ATTR_GRID_ORIGIN_X ATTR_GRID_START + 7
+#define ATTR_GRID_ORIGIN_Y ATTR_GRID_START + 8
+#define ATTR_GRID_END ATTR_GRID_ORIGIN_Y
+
+// Bildschirm-Attribute
+#define ATTR_DISPLAY_START ATTR_GRID_END + 1
+#define ATTR_DISPLAY_FUNCTIONBAR ATTR_DISPLAY_START
+#define ATTR_DISPLAY_OBJECTBAR ATTR_DISPLAY_START + 1
+#define ATTR_DISPLAY_STATUSBAR ATTR_DISPLAY_START + 2
+#define ATTR_DISPLAY_TOOLBAR ATTR_DISPLAY_START + 3
+#define ATTR_DISPLAY_GRID ATTR_DISPLAY_START + 4
+#define ATTR_DISPLAY_RULER ATTR_DISPLAY_START + 5
+#define ATTR_DISPLAY_HELPLINES ATTR_DISPLAY_START + 6
+#define ATTR_DISPLAY_STRANGE_GRAPHIC ATTR_DISPLAY_START + 7
+#define ATTR_DISPLAY_ADJUSTLINES ATTR_DISPLAY_START + 8
+#define ATTR_DISPLAY_END ATTR_DISPLAY_ADJUSTLINES
+
+#define ATTR_TBX_DUMMY ATTR_DISPLAY_END + 1
+
+// Animations-Attribute
+#define ATTR_ANIMATION_START ATTR_TBX_DUMMY + 1
+#define ATTR_ANIMATION_ACTIVE ATTR_ANIMATION_START
+#define ATTR_ANIMATION_EFFECT ATTR_ANIMATION_START + 1
+#define ATTR_ANIMATION_SPEED ATTR_ANIMATION_START + 2
+#define ATTR_ANIMATION_INVISIBLE ATTR_ANIMATION_START + 3
+#define ATTR_ANIMATION_FADEOUT ATTR_ANIMATION_START + 4
+#define ATTR_ANIMATION_COLOR ATTR_ANIMATION_START + 5
+#define ATTR_ANIMATION_SOUNDON ATTR_ANIMATION_START + 6
+#define ATTR_ANIMATION_SOUNDFILE ATTR_ANIMATION_START + 7
+#define ATTR_ANIMATION_PLAYFULL ATTR_ANIMATION_START + 8
+#define ATTR_ANIMATION_TRANSPCOLOR ATTR_ANIMATION_START + 9
+#define ATTR_ANIMATION_TEXTEFFECT ATTR_ANIMATION_START + 10
+#define ATTR_ANIMATION_END ATTR_ANIMATION_TEXTEFFECT
+
+#define ATTR_ACTION_START ATTR_ANIMATION_END + 1
+#define ATTR_ACTION ATTR_ACTION_START
+#define ATTR_ACTION_EFFECT ATTR_ACTION_START + 1
+#define ATTR_ACTION_EFFECTSPEED ATTR_ACTION_START + 2
+#define ATTR_ACTION_FILENAME ATTR_ACTION_START + 3
+#define ATTR_ACTION_SOUNDON ATTR_ACTION_START + 4
+#define ATTR_ACTION_PLAYFULL ATTR_ACTION_START + 5
+#define ATTR_ACTION_END ATTR_ACTION_PLAYFULL
+
+#define ATTR_PRINTOPTIONS_START ATTR_ACTION_END + 1
+#define ATTR_PRINTOPTIONS_PRINT ATTR_PRINTOPTIONS_START
+#define ATTR_PRINTOPTIONS_PAGESIZE ATTR_PRINTOPTIONS_START + 1
+#define ATTR_PRINTOPTIONS_FADEOUT ATTR_PRINTOPTIONS_START + 2
+#define ATTR_PRINTOPTIONS_DATE ATTR_PRINTOPTIONS_START + 3
+#define ATTR_PRINTOPTIONS_TIME ATTR_PRINTOPTIONS_START + 4
+#define ATTR_PRINTOPTIONS_PAGENAME ATTR_PRINTOPTIONS_START + 5
+#define ATTR_PRINTOPTIONS_END ATTR_PRINTOPTIONS_PAGENAME
+
+#define ATTR_COPY_START ATTR_PRINTOPTIONS_END + 1
+#define ATTR_COPY_NUMBER ATTR_COPY_START
+#define ATTR_COPY_MOVE_X ATTR_COPY_START + 1
+#define ATTR_COPY_MOVE_Y ATTR_COPY_START + 2
+#define ATTR_COPY_ANGLE ATTR_COPY_START + 3
+#define ATTR_COPY_WIDTH ATTR_COPY_START + 4
+#define ATTR_COPY_HEIGHT ATTR_COPY_START + 5
+#define ATTR_COPY_START_COLOR ATTR_COPY_START + 6
+#define ATTR_COPY_END_COLOR ATTR_COPY_START + 7
+#define ATTR_COPY_END ATTR_COPY_END_COLOR
+
+#define ATTR_SNAPLINE_START ATTR_COPY_END + 1
+#define ATTR_SNAPLINE_KIND ATTR_SNAPLINE_START
+#define ATTR_SNAPLINE_X ATTR_SNAPLINE_START + 1
+#define ATTR_SNAPLINE_Y ATTR_SNAPLINE_START + 2
+#define ATTR_SNAPLINE_END ATTR_SNAPLINE_Y
+
+#define ATTR_OPTIONS_START ATTR_SNAPLINE_END + 1
+#define ATTR_OPTIONS ATTR_OPTIONS_START
+#define ATTR_OPTIONS_LAYOUT ATTR_OPTIONS_START + 1
+#define ATTR_OPTIONS_CONTENTS ATTR_OPTIONS_START + 2
+#define ATTR_OPTIONS_MISC ATTR_OPTIONS_START + 3
+#define ATTR_OPTIONS_SNAP ATTR_OPTIONS_START + 4
+#define ATTR_OPTIONS_PRINT ATTR_OPTIONS_START + 5
+#define ATTR_OPTIONS_END ATTR_OPTIONS_PRINT
+
+#define ATTR_OPTIONS_SCALE_START ATTR_OPTIONS_END + 1
+#define ATTR_OPTIONS_SCALE_X ATTR_OPTIONS_SCALE_START
+#define ATTR_OPTIONS_SCALE_Y ATTR_OPTIONS_SCALE_START + 1
+#define ATTR_OPTIONS_SCALE_WIDTH ATTR_OPTIONS_SCALE_START + 2
+#define ATTR_OPTIONS_SCALE_HEIGHT ATTR_OPTIONS_SCALE_START + 3
+#define ATTR_OPTIONS_SCALE_END ATTR_OPTIONS_SCALE_HEIGHT
+
+#define ATTR_PUBLISH_START ATTR_OPTIONS_SCALE_END + 1
+#define ATTR_PUBLISH_LOCATION ATTR_PUBLISH_START
+#define ATTR_PUBLISH_WITHCONTENTSPAGE ATTR_PUBLISH_START + 1
+#define ATTR_PUBLISH_RESOLUTION ATTR_PUBLISH_START + 2
+#define ATTR_PUBLISH_MODE ATTR_PUBLISH_START + 3
+#define ATTR_PUBLISH_FORMAT ATTR_PUBLISH_START + 4
+#define ATTR_PUBLISH_COMPRESSION ATTR_PUBLISH_START + 5
+#define ATTR_PUBLISH_WITHNOTES ATTR_PUBLISH_START + 6
+#define ATTR_PUBLISH_AUTHOR ATTR_PUBLISH_START + 9
+#define ATTR_PUBLISH_EMAIL ATTR_PUBLISH_START + 10
+#define ATTR_PUBLISH_WWW ATTR_PUBLISH_START + 11
+#define ATTR_PUBLISH_INFO ATTR_PUBLISH_START + 12
+#define ATTR_PUBLISH_WITHDOWNLOAD ATTR_PUBLISH_START + 13
+#define ATTR_PUBLISH_WITHSTAROFFICE ATTR_PUBLISH_START + 14
+#define ATTR_PUBLISH_BUTTONS ATTR_PUBLISH_START + 15
+#define ATTR_PUBLISH_USERATTR ATTR_PUBLISH_START + 16
+#define ATTR_PUBLISH_BACKCOLOR ATTR_PUBLISH_START + 17
+#define ATTR_PUBLISH_TEXTCOLOR ATTR_PUBLISH_START + 18
+#define ATTR_PUBLISH_LINKCOLOR ATTR_PUBLISH_START + 19
+#define ATTR_PUBLISH_VLINKCOLOR ATTR_PUBLISH_START + 20
+#define ATTR_PUBLISH_ALINKCOLOR ATTR_PUBLISH_START + 21
+#define ATTR_PUBLISH_USEATTRIBS ATTR_PUBLISH_START + 22
+#define ATTR_PUBLISH_USECOLOR ATTR_PUBLISH_START + 23
+#define ATTR_PUBLISH_WEBSHOW ATTR_PUBLISH_START + 24
+#define ATTR_PUBLISH_SCRIPT ATTR_PUBLISH_START + 25
+#define ATTR_PUBLISH_URLPATH ATTR_PUBLISH_START + 26
+#define ATTR_PUBLISH_CGIPATH ATTR_PUBLISH_START + 27
+#define ATTR_PUBLISH_INDEX ATTR_PUBLISH_START + 28
+#define ATTR_PUBLISH_SLIDECHG ATTR_PUBLISH_START + 29
+#define ATTR_PUBLISH_SLIDEDURATION ATTR_PUBLISH_START + 30
+#define ATTR_PUBLISH_ENDLESS ATTR_PUBLISH_START + 31
+#define ATTR_PUBLISH_SLIDESOUND ATTR_PUBLISH_START + 32
+#define ATTR_PUBLISH_END ATTR_PUBLISH_SLIDESOUND
+
+#define ATTR_PRESLAYOUT_START ATTR_PUBLISH_END + 1
+#define ATTR_PRESLAYOUT_NAME ATTR_PRESLAYOUT_START
+#define ATTR_PRESLAYOUT_LOAD ATTR_PRESLAYOUT_START + 1
+#define ATTR_PRESLAYOUT_MASTER_PAGE ATTR_PRESLAYOUT_START + 2
+#define ATTR_PRESLAYOUT_CHECK_MASTERS ATTR_PRESLAYOUT_START + 3
+#define ATTR_PRESLAYOUT_END ATTR_PRESLAYOUT_CHECK_MASTERS
+
+// Pack & Go Attribute
+#define ATTR_PACKNGO_START ATTR_PRESLAYOUT_END + 1
+#define ATTR_PACKNGO_UNLINK ATTR_PACKNGO_START
+#define ATTR_PACKNGO_COMPRESS ATTR_PACKNGO_START + 1
+#define ATTR_PACKNGO_SPANNING ATTR_PACKNGO_START + 2
+#define ATTR_PACKNGO_MEDIUMSIZE ATTR_PACKNGO_START + 3
+#define ATTR_PACKNGO_END ATTR_PACKNGO_MEDIUMSIZE
+
+//==================================================================
+// Layer-Attribute
+//==================================================================
+
+class SdAttrLayerName : public SfxStringItem
+{
+public:
+ SdAttrLayerName() :
+ SfxStringItem( ATTR_LAYER_NAME, String( RTL_CONSTASCII_USTRINGPARAM( "neue Ebene" ))) {}
+ SdAttrLayerName( const String& aStr ) :
+ SfxStringItem( ATTR_LAYER_NAME, aStr ) {}
+};
+
+
+//------------------------------------------------------------------
+
+class SdAttrLayerVisible : public SfxBoolItem
+{
+public:
+ SdAttrLayerVisible( BOOL bValue = TRUE ) :
+ SfxBoolItem( ATTR_LAYER_VISIBLE, bValue ) {}
+};
+
+//------------------------------------------------------------------
+
+class SdAttrLayerPrintable : public SfxBoolItem
+{
+public:
+ SdAttrLayerPrintable( BOOL bValue = TRUE ) :
+ SfxBoolItem( ATTR_LAYER_PRINTABLE, bValue ) {}
+};
+
+//------------------------------------------------------------------
+
+class SdAttrLayerLocked : public SfxBoolItem
+{
+public:
+ SdAttrLayerLocked( BOOL bValue = FALSE ) :
+ SfxBoolItem( ATTR_LAYER_LOCKED, bValue ) {}
+};
+
+//------------------------------------------------------------------
+
+class SdAttrLayerThisPage : public SfxBoolItem
+{
+public:
+ SdAttrLayerThisPage( BOOL bValue = FALSE ) :
+ SfxBoolItem( ATTR_LAYER_THISPAGE, bValue ) {}
+};
+
+//------------------------------------------------------------------
+
+class DiaEffectItem : public SfxEnumItem
+{
+public:
+ TYPEINFO();
+ DiaEffectItem( ::com::sun::star::presentation::FadeEffect eFade = com::sun::star::presentation::FadeEffect_NONE );
+ DiaEffectItem( SvStream& rIn );
+
+ virtual SfxPoolItem* Clone( SfxItemPool* pPool = 0 ) const;
+ virtual SfxPoolItem* Create( SvStream& rIn, USHORT nVer ) const;
+ USHORT GetValueCount() const { return FADE_EFFECT_COUNT; }
+ ::com::sun::star::presentation::FadeEffect GetValue() const
+ { return (::com::sun::star::presentation::FadeEffect) SfxEnumItem::GetValue(); }
+};
+
+//------------------------------------------------------------------
+
+class DiaSpeedItem : public SfxEnumItem
+{
+public:
+ TYPEINFO();
+ DiaSpeedItem( FadeSpeed = FADE_SPEED_MEDIUM );
+ DiaSpeedItem( SvStream& rIn );
+
+ virtual SfxPoolItem* Clone( SfxItemPool* pPool = 0 ) const;
+ virtual SfxPoolItem* Create( SvStream& rIn, USHORT nVer ) const;
+ USHORT GetValueCount() const { return FADE_SPEED_COUNT; }
+ FadeSpeed GetValue() const
+ { return (FadeSpeed) SfxEnumItem::GetValue(); }
+};
+
+//------------------------------------------------------------------
+
+class DiaAutoItem : public SfxEnumItem
+{
+public:
+ TYPEINFO();
+ DiaAutoItem( PresChange = PRESCHANGE_MANUAL );
+ DiaAutoItem( SvStream& rIn );
+
+ virtual SfxPoolItem* Clone( SfxItemPool* pPool = 0 ) const;
+ virtual SfxPoolItem* Create( SvStream& rIn, USHORT nVer ) const;
+ USHORT GetValueCount() const { return PRESCHANGE_COUNT; }
+ PresChange GetValue() const { return (PresChange) SfxEnumItem::GetValue(); }
+};
+
+//------------------------------------------------------------------
+
+class DiaTimeItem : public SfxUInt32Item
+{
+public:
+ TYPEINFO();
+ DiaTimeItem( UINT32 nValue = 0L );
+
+ virtual SfxPoolItem* Clone( SfxItemPool* pPool = 0 ) const;
+ virtual int operator==( const SfxPoolItem& ) const;
+};
+
+#endif // _SDATTR_HXX
+
+
diff --git a/sd/inc/sddll.hxx b/sd/inc/sddll.hxx
new file mode 100644
index 000000000000..668f98343350
--- /dev/null
+++ b/sd/inc/sddll.hxx
@@ -0,0 +1,166 @@
+/*************************************************************************
+ *
+ * $RCSfile: sddll.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:28 $
+ *
+ * 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 _SDDLL_HXX
+#define _SDDLL_HXX
+
+#ifndef _SFXMODULE_HXX //autogen
+#include
+#endif
+#ifndef _SFXDEFS_HXX //autogen
+#include
+#endif
+
+class SvFactory;
+class SotFactory;
+class SfxMedium;
+class SfxFilter;
+
+
+/*************************************************************************
+|*
+|* This class is a wrapper for a Load-On-Demand-DLL. One instance
+|* per SfxApplication will be created for the runtime of
+|* SfxApplication-subclass::Main().
+|*
+|* Remember: Do export this class! It is used by the application.
+|*
+\************************************************************************/
+
+class SdDLL
+{
+protected:
+ static void RegisterFactorys();
+ static void RegisterInterfaces();
+ static void RegisterControllers();
+
+public:
+ // Ctor/Dtor must be linked to the application
+ SdDLL();
+ ~SdDLL();
+
+ // static-init/exit-code must be linked to the application
+ static void LibInit(); // called from SfxApplication-subclass::Init()
+ static void LibExit(); // called from SfxApplication-subclass::Exit()
+
+ // DLL-init/exit-code must be linked to the DLL only
+ static void Init(); // called directly after loading the DLL
+ static void Exit(); // called directly befor unloading the DLL
+
+ static ULONG DetectFilter(SfxMedium& rMedium, const SfxFilter** pFilter,
+ SfxFilterFlags nMust, SfxFilterFlags nDont);
+};
+
+
+
+
+/*************************************************************************
+|*
+|* This tricky class keeps pointers to the SvFactories while
+|* the DLL isn`t loaded. A pointer to the one instance is available
+|* through SD_MOD() (shared-lib-app-data).
+|*
+\************************************************************************/
+
+class SdModuleDummy : public SfxModule
+{
+public:
+ TYPEINFO();
+
+ // SvFactory name convention:
+ // 'p' + SfxObjectShell-subclass + 'Factory'
+#ifndef SO3
+ SvFactory* pSdDrawDocShellFactory;
+ SvFactory* pSdGraphicDocShellFactory;
+
+ SdModuleDummy(ResMgr* pResMgr, BOOL bDummy,
+ SvFactory* pDrawObjFact, SvFactory* pGraphicObjFact)
+#else
+ SotFactory* pSdDrawDocShellFactory;
+ SotFactory* pSdGraphicDocShellFactory;
+
+ SdModuleDummy(ResMgr* pResMgr, BOOL bDummy,
+ SotFactory* pDrawObjFact, SotFactory* pGraphicObjFact)
+#endif
+ : SfxModule(pResMgr, bDummy,
+ // Der erste Factory-Pointer muss gueltig sein!
+ (SfxObjectFactory*) (pDrawObjFact ? pDrawObjFact : pGraphicObjFact),
+ (SfxObjectFactory*) (pDrawObjFact ? pGraphicObjFact : pDrawObjFact),
+ 0L),
+ pSdDrawDocShellFactory( pDrawObjFact ),
+ pSdGraphicDocShellFactory( pGraphicObjFact )
+ {}
+
+ virtual SfxModule* Load();
+
+ static SvGlobalName GetID(USHORT nFileFormat);
+ static USHORT HasID(const SvGlobalName& rName);
+};
+
+
+
+
+#ifndef _SD_DLL // Das define muss im Draw gesetzt werden
+#define SD_MOD() ( *(SdModuleDummy**) GetAppData(SHL_DRAW) )
+#endif
+
+#endif // _SDDLL_HXX
+
diff --git a/sd/inc/sdiocmpt.hxx b/sd/inc/sdiocmpt.hxx
new file mode 100644
index 000000000000..4d37a033e23a
--- /dev/null
+++ b/sd/inc/sdiocmpt.hxx
@@ -0,0 +1,89 @@
+/*************************************************************************
+ *
+ * $RCSfile: sdiocmpt.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:28 $
+ *
+ * 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 _SD_SDIOCMPT_HXX
+#define _SD_SDIOCMPT_HXX
+
+#ifndef _SVDIO_HXX //autogen
+#include
+#endif
+
+class SvStream;
+
+#define SDIOCOMPAT_VERSIONDONTKNOW (UINT16)0xffff
+
+class SdIOCompat : public SdrDownCompat
+{
+private:
+ UINT16 nVersion;
+
+public:
+ // nNewMode: STREAM_READ oder STREAM_WRITE
+ // nVer: nur beim Schreiben angeben
+ SdIOCompat(SvStream& rNewStream, USHORT nNewMode,
+ UINT16 nVer = SDIOCOMPAT_VERSIONDONTKNOW);
+ ~SdIOCompat() {};
+ UINT16 GetVersion() const { return nVersion; }
+};
+
+#endif // _SD_SDIOCMPT_HXX
+
+
diff --git a/sd/inc/sdmod.hxx b/sd/inc/sdmod.hxx
new file mode 100644
index 000000000000..f709a277785f
--- /dev/null
+++ b/sd/inc/sdmod.hxx
@@ -0,0 +1,173 @@
+/*************************************************************************
+ *
+ * $RCSfile: sdmod.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:28 $
+ *
+ * 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 _SDMOD_HXX
+#define _SDMOD_HXX
+
+
+#ifndef _SDDLL_HXX
+#define _SD_DLL // fuer SD_MOD()
+#include "sddll.hxx" // fuer SdModuleDummy
+#endif
+
+#ifndef _SD_GLOB_HXX
+#include "glob.hxx"
+#endif
+#ifndef _PRESENTATION_HXX
+#include "pres.hxx"
+#endif
+#ifndef _SVSTOR_HXX
+#include
+#endif
+
+class SdOptions;
+class BasicIDE;
+class SvxSearchItem;
+class SdAppLinkHdl; ;
+class SvxErrorHandler;
+class SdDataObject;
+class EditFieldInfo;
+class SvFactory;
+
+// ----------------------
+// - SdOptionStreamMode -
+// ----------------------
+
+enum SdOptionStreamMode
+{
+ SD_OPTION_LOAD = 0,
+ SD_OPTION_STORE = 1
+};
+
+/*************************************************************************
+|*
+|* This subclass of (which is a subclass of ) is
+|* linked to the DLL. One instance of this class exists while the DLL is
+|* loaded.
+|*
+|* SdModule is like to be compared with the -subclass.
+|*
+|* Remember: Don`t export this class! It uses DLL-internal symbols.
+|*
+\************************************************************************/
+
+class SdModule : public SdModuleDummy
+{
+protected:
+ SdOptions* pImpressOptions;
+ SdOptions* pDrawOptions;
+ SvxSearchItem* pSearchItem;
+ SvStorageRef xOptionStorage;
+
+ BOOL bAutoSave;
+ BOOL bWaterCan;
+
+ virtual BOOL QueryUnload();
+
+public:
+ TYPEINFO();
+ SFX_DECL_INTERFACE(SD_IF_SDAPP);
+
+ SdModule(SvFactory* pDrawObjFact, SvFactory* pGraphicObjFact);
+ virtual ~SdModule();
+
+ SdDataObject* pDragData;
+ SdDataObject* pClipboardData;
+
+ void Execute(SfxRequest& rReq);
+ void GetState(SfxItemSet&);
+
+ virtual SfxModule* Load();
+ virtual void Free();
+
+ virtual void FillStatusBar(StatusBar& rBar);
+ virtual SfxFileDialog* CreateDocFileDialog( ULONG nBits,
+ const SfxObjectFactory& rFact,
+ const SfxItemSet* pSet );
+
+ SdOptions* GetSdOptions(DocumentType eDocType);
+
+ SvStorageStreamRef GetOptionStream( const String& rOptionName,
+ SdOptionStreamMode eMode );
+
+ BOOL GetWaterCan() const { return bWaterCan; }
+ void SetWaterCan( BOOL bWC ) { bWaterCan = bWC; }
+
+ SvxSearchItem* GetSearchItem() { return (pSearchItem); }
+ void SetSearchItem(SvxSearchItem* pItem) { pSearchItem = pItem; }
+
+ DECL_LINK(CalcFieldValueHdl, EditFieldInfo*);
+
+ //virtuelle Methoden fuer den Optionendialog
+ virtual SfxItemSet* CreateItemSet( USHORT nId );
+ virtual void ApplyItemSet( USHORT nId, const SfxItemSet& rSet );
+ virtual SfxTabPage* CreateTabPage( USHORT nId, Window* pParent, const SfxItemSet& rSet );
+};
+
+
+
+
+#ifndef SD_MOD
+#define SD_MOD() ( *(SdModule**) GetAppData(SHL_DRAW) )
+#endif
+
+#endif // _SDMOD_HXX
+
diff --git a/sd/inc/sdobjfac.hxx b/sd/inc/sdobjfac.hxx
new file mode 100644
index 000000000000..44a8dc1902fb
--- /dev/null
+++ b/sd/inc/sdobjfac.hxx
@@ -0,0 +1,95 @@
+/*************************************************************************
+ *
+ * $RCSfile: sdobjfac.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:28 $
+ *
+ * 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 _SDOBJFAC_HXX
+#define _SDOBJFAC_HXX
+
+
+#ifndef _LINK_HXX //autogen
+#include
+#endif
+
+//-----------------------
+// class SdObjectFactory
+//-----------------------
+class SdrObjFactory;
+
+class SdObjectFactory
+{
+protected:
+ Link aOldMakeObjLink;
+ Link aOldMakeUserDataLink;
+
+public:
+ SdObjectFactory() {}
+
+ void SetOldMakeUserDataHdl( const Link& rLink )
+ { aOldMakeUserDataLink = rLink; }
+ Link GetOldMakeUserDataHdl() const { return aOldMakeUserDataLink; }
+
+ DECL_LINK( MakeUserData, SdrObjFactory * );
+};
+
+extern SdObjectFactory aSdObjectFactory;
+
+
+#endif // _SDOBJFAC_HXX
+
diff --git a/sd/inc/sdpage.hxx b/sd/inc/sdpage.hxx
new file mode 100644
index 000000000000..e0b0ae4fff8d
--- /dev/null
+++ b/sd/inc/sdpage.hxx
@@ -0,0 +1,268 @@
+/*************************************************************************
+ *
+ * $RCSfile: sdpage.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:28 $
+ *
+ * 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 _SDPAGE_HXX
+#define _SDPAGE_HXX
+
+#ifndef _COM_SUN_STAR_PRESENTATION_FADEEFFECT_HPP_
+#include
+#endif
+
+#ifndef _SVDOBJ_HXX //autogen
+#include
+#endif
+#ifndef _FM_FMPAGE_HXX //autogen
+#include
+#endif
+#ifndef _SD_FADEDEF_H
+#include "fadedef.h"
+#endif
+#ifndef _SD_DIADEF_H
+#include
+#endif
+#ifndef _PRESENTATION
+#include "pres.hxx"
+#endif
+
+class SfxStyleSheet;
+class SdDrawDocument;
+class SdrTextObj;
+class SdPageLink;
+class StarBASIC;
+struct StyleRequestData;
+
+enum PresObjKind
+{
+ PRESOBJ_NONE,
+ PRESOBJ_TITLE,
+ PRESOBJ_OUTLINE,
+ PRESOBJ_TEXT,
+ PRESOBJ_GRAPHIC,
+ PRESOBJ_OBJECT,
+ PRESOBJ_CHART,
+ PRESOBJ_ORGCHART,
+ PRESOBJ_TABLE,
+ PRESOBJ_IMAGE,
+ PRESOBJ_BACKGROUND,
+ PRESOBJ_PAGE,
+ PRESOBJ_HANDOUT,
+ PRESOBJ_NOTES
+};
+
+class SdPage : public FmFormPage, public SdrObjUserCall
+{
+friend class SdGenericDrawPage;
+
+protected:
+ PageKind ePageKind; // Seitentyp
+ AutoLayout eAutoLayout; // AutoLayout
+ List aPresObjList; // Praesentationsobjekte
+ BOOL bOwnArrangement; // Objekte werden intern angeordnet
+
+ BOOL bSelected; // Selektionskennung
+ FadeSpeed eFadeSpeed; // Ueberblendgeschwindigkeit
+ ::com::sun::star::presentation::FadeEffect eFadeEffect; // Ueberblendeffekt
+ PresChange ePresChange; // manuell/automatisch/halbautomatisch
+ UINT32 nTime; // Anzeigedauer in Sekunden
+ BOOL bSoundOn; // mit/ohne Sound (TRUE/FALSE)
+ BOOL bExcluded; // wird in der Show nicht/doch
+ // angezeigt (TRUE/FALSE)
+ String aLayoutName; // Name des Layouts
+ String aSoundFile; // Pfad zum Soundfile (MSDOS-Notation)
+ String aCreatedPageName; // von GetPageName erzeugter Seitenname
+ String aFileName; // Filename
+ String aBookmarkName; // Bookmarkname
+ BOOL bScaleObjects; // Objekte sollen skaliert werden
+ BOOL bBackgroundFullSize; // Hintergrundobjekt auf ganze Seite darstellen
+ rtl_TextEncoding eCharSet; // Text-Encoding
+ USHORT nPaperBin; // PaperBin
+ Orientation eOrientation; // Print-Orientation
+ SdPageLink* pPageLink; // PageLink (nur bei gelinkten Seiten)
+
+ BOOL InsertPresObj(SdrObject* pObj, PresObjKind eObjKind,
+ Rectangle rRect, BOOL bInit, List& rObjList);
+
+ void AdjustBackgroundSize();
+ Rectangle GetTitleRect() const;
+ Rectangle GetLayoutRect() const;
+
+public:
+ TYPEINFO();
+
+ SdPage(SdDrawDocument& rNewDoc, StarBASIC* pBasic, BOOL bMasterPage=FALSE);
+ SdPage(const SdPage& rSrcPage);
+ ~SdPage();
+ virtual SdrPage* Clone() const;
+
+ virtual void SetSize(const Size& aSize);
+ virtual void SetBorder(INT32 nLft, INT32 nUpp, INT32 nRgt, INT32 Lwr);
+ virtual void SetLftBorder(INT32 nBorder);
+ virtual void SetRgtBorder(INT32 nBorder);
+ virtual void SetUppBorder(INT32 nBorder);
+ virtual void SetLwrBorder(INT32 nBorder);
+ virtual void SetModel(SdrModel* pNewModel);
+ virtual FASTBOOL IsReadOnly() const;
+
+ List* GetPresObjList() { return &aPresObjList; }
+ SdrObject* CreatePresObj(PresObjKind eObjKind, const Rectangle& rRect, BOOL bInsert=FALSE);
+ SdrObject* GetPresObj(PresObjKind eObjKind, USHORT nIndex = 1);
+ PresObjKind GetPresObjKind(SdrObject* pObj);
+ String GetPresObjText(PresObjKind eObjKind);
+ SfxStyleSheet* GetStyleSheetForPresObj(PresObjKind eObjKind);
+ void SetAutoLayout(AutoLayout eLayout, BOOL bInit=FALSE);
+ AutoLayout GetAutoLayout() const { return eAutoLayout; }
+ void CreateTitleAndLayout(BOOL bInit=FALSE);
+
+ virtual void NbcInsertObject(SdrObject* pObj, ULONG nPos=CONTAINER_APPEND,
+ const SdrInsertReason* pReason=NULL);
+#ifndef SVX_LIGHT
+ virtual SdrObject* NbcRemoveObject(ULONG nObjNum);
+ virtual SdrObject* RemoveObject(ULONG nObjNum);
+#endif
+
+ virtual void SetLinkData(const String& rLinkName, const String& rLinkData);
+
+ void SetObjText(SdrTextObj* pObj, SdrOutliner* pOutliner, PresObjKind eObjKind, const String& rStr );
+
+ void SetPageKind(PageKind ePgType) { ePageKind = ePgType; }
+ PageKind GetPageKind() const { return ePageKind; }
+
+ void SetSelected(BOOL bSel) { bSelected = bSel; }
+ BOOL IsSelected() const { return bSelected; }
+
+ void SetFadeSpeed(FadeSpeed eNewSpeed) { eFadeSpeed = eNewSpeed; }
+ FadeSpeed GetFadeSpeed() const { return eFadeSpeed; }
+
+ void SetFadeEffect(::com::sun::star::presentation::FadeEffect eNewEffect) { eFadeEffect = eNewEffect; }
+ ::com::sun::star::presentation::FadeEffect GetFadeEffect() const { return eFadeEffect; }
+
+ void SetPresChange(PresChange eChange) { ePresChange = eChange; }
+ PresChange GetPresChange() const { return ePresChange; }
+
+ void SetTime(UINT32 nNewTime) { nTime = nNewTime; }
+ UINT32 GetTime() const { return nTime; }
+
+ void SetSound(BOOL bNewSoundOn) { bSoundOn = bNewSoundOn; }
+ BOOL IsSoundOn() const { return bSoundOn; }
+
+ void SetExcluded(BOOL bNewExcluded) { bExcluded = bNewExcluded; }
+ BOOL IsExcluded() const { return bExcluded; }
+
+ void SetScaleObjects(BOOL bScale) { bScaleObjects = bScale; }
+ BOOL IsScaleObjects() const { return bScaleObjects; }
+
+ void SetSoundFile(const String& rStr) { aSoundFile = rStr; }
+ String GetSoundFile() const { return aSoundFile; }
+
+#ifndef SVX_LIGHT
+ // Virtuelle Methoden von SdrObjUserCall
+ virtual void Changed(const SdrObject& rObj, SdrUserCallType eType,
+ const Rectangle& rOldBoundRect);
+
+ virtual void RequestBasic();
+
+ virtual void WriteData(SvStream& rOut) const;
+#endif
+ virtual void ReadData(const SdrIOHeader& rHead, SvStream& rIn);
+
+ void SetLayoutName(String aName);
+ virtual String GetLayoutName() const { return aLayoutName; }
+
+ void SetFileName(const String& aName) { aFileName = aName; }
+ virtual String GetFileName() const { return aFileName; }
+ void SetBookmarkName(const String& aName) { aBookmarkName = aName; }
+ virtual String GetBookmarkName() const { return aBookmarkName; }
+ SdPageLink* GetLink() { return pPageLink; }
+
+#ifndef SVX_LIGHT
+ void ConnectLink();
+ void DisconnectLink();
+#endif
+
+ void ScaleObjects(const Size& rNewPageSize, const Rectangle& rNewBorderRect,
+ BOOL bScaleAllObj);
+
+ const String& GetName();
+ String GetRealName() const { return aPageName; };
+
+ void SetPresentationLayout(const String& rLayoutName,
+ BOOL bReplaceStyleSheets = TRUE,
+ BOOL bSetMasterPage = TRUE,
+ BOOL bReverseOrder = FALSE);
+ void EndListenOutlineText();
+
+ void SetBackgroundFullSize( BOOL bIn );
+ BOOL GetBackgroundFullSize() const { return bBackgroundFullSize; }
+
+ rtl_TextEncoding GetCharSet() { return(eCharSet); }
+
+ void SetPaperBin(USHORT nBin) { nPaperBin = nBin; }
+ USHORT GetPaperBin() const { return nPaperBin; }
+ void SetOrientation(const Orientation eOrient) { eOrientation = eOrient; }
+ Orientation GetOrientation() const { return eOrientation; }
+
+};
+
+#endif // _SDPAGE_HXX
+
+
+
+
diff --git a/sd/inc/sdresid.hxx b/sd/inc/sdresid.hxx
new file mode 100644
index 000000000000..fdd45d9ef79b
--- /dev/null
+++ b/sd/inc/sdresid.hxx
@@ -0,0 +1,80 @@
+/*************************************************************************
+ *
+ * $RCSfile: sdresid.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:28 $
+ *
+ * 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 _SDRESID_HXX
+#define _SDRESID_HXX
+
+
+#ifndef _RESID_HXX //autogen
+#include
+#endif
+
+class SdResId : public ResId
+{
+public:
+ SdResId(USHORT nId);
+ SdResId(USHORT nId, ResMgr* pMgr); // kann entfallen
+};
+
+
+
+#endif // _SD_SDRESID_HXX
+
diff --git a/sd/inc/sduiks.hrc b/sd/inc/sduiks.hrc
new file mode 100644
index 000000000000..9b03cf9ff8b2
--- /dev/null
+++ b/sd/inc/sduiks.hrc
@@ -0,0 +1,107 @@
+/*************************************************************************
+ *
+ * $RCSfile: sduiks.hrc,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:28 $
+ *
+ * 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 _SDUIKS_HRC
+#define _SDUIKS_HRC
+
+#include
+
+#define SD_UIK_SHAPE_FACTORY UIK_DRAWING(00)
+#define SD_UIK_POLYGON_FACTORY UIK_DRAWING(01)
+#define SD_UIK_3D_SHAPE_FACTORY UIK_DRAWING(02)
+#define SD_UIK_TEXT_FACTORY UIK_DRAWING(03)
+#define SD_UIK_SNAP_FACTORY UIK_DRAWING(04)
+
+#define SD_UIK_DRAW_PAGES UIK_DRAWING(10)
+#define SD_UIK_DRAW_PAGE_MANIPULATOR UIK_DRAWING(11)
+
+#define SD_UIK_SHAPE UIK_DRAWING(20)
+#define SD_UIK_CONNECTOR UIK_DRAWING(21)
+#define SD_UIK_CONNECTABLE UIK_DRAWING(22)
+#define SD_UIK_SHAPE_3D UIK_DRAWING(23)
+#define SD_UIK_SHAPE_GROUP UIK_DRAWING(24)
+#define SD_UIK_SHAPE_MIRRORER UIK_DRAWING(25)
+#define SD_UIK_SHAPE_ALIGNER UIK_DRAWING(26)
+#define SD_UIK_SHAPE_ARRANGER UIK_DRAWING(27)
+#define SD_UIK_SHAPE_CONVERTER UIK_DRAWING(28)
+#define SD_UIK_ANIMATOR UIK_DRAWING(29)
+
+#define SD_UIK_DRAW_PAGE UIK_DRAWING(30)
+#define SD_UIK_SHAPES UIK_DRAWING(31)
+#define SD_UIK_GROUP UIK_DRAWING(32)
+#define SD_UIK_COMBINE UIK_DRAWING(33)
+#define SD_UIK_CONNECT UIK_DRAWING(34)
+#define SD_UIK_CONNECT UIK_DRAWING(35)
+
+#define SD_UIK_PRESENTATION UIK_DRAWING(40)
+#define SD_UIK_PRESENTATION_NAVIGATION UIK_DRAWING(41)
+#define SD_UIK_CUSTOM_PRESENTATION UIK_DRAWING(42)
+#define SD_UIK_CUSTOM_PRESENTATIONS UIK_DRAWING(43)
+#define SD_UIK_CUSTOM_PRESENTATIONS UIK_DRAWING(44)
+
+#define SD_UIK_ZOOM UIK_DRAWING(50)
+#define SD_UIK_DRAW_VIEW UIK_DRAWING(51)
+#define SD_UIK_OUTLINE_VIEW UIK_DRAWING(52)
+#define SD_UIK_SLIDE_VIEW UIK_DRAWING(53)
+#define SD_UIK_SLIDE_VIEW UIK_DRAWING(53)
+
+#define SD_UIK_PRESENTATION_STYLES UIK_DRAWING(60)
+
+#endif
diff --git a/sd/inc/sdundo.hxx b/sd/inc/sdundo.hxx
new file mode 100644
index 000000000000..eff5d0436729
--- /dev/null
+++ b/sd/inc/sdundo.hxx
@@ -0,0 +1,87 @@
+/*************************************************************************
+ *
+ * $RCSfile: sdundo.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:28 $
+ *
+ * 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 _SD_SDUNDO_HXX
+#define _SD_SDUNDO_HXX
+
+
+#ifndef _UNDO_HXX //autogen
+#include
+#endif
+
+class SdDrawDocument;
+
+class SdUndoAction : public SfxUndoAction
+{
+ String aComment;
+protected:
+ SdDrawDocument* pDoc;
+public:
+ TYPEINFO();
+ SdUndoAction(SdDrawDocument* pSdDrawDocument)
+ : pDoc(pSdDrawDocument) {}
+ virtual ~SdUndoAction() {}
+ void SetComment(String& rStr) { aComment = rStr; }
+ virtual String GetComment() const { return aComment; }
+};
+
+#endif // _SD_SDUNDO_HXX
+
diff --git a/sd/inc/sdxmlwrp.hxx b/sd/inc/sdxmlwrp.hxx
new file mode 100644
index 000000000000..9a7e024d38af
--- /dev/null
+++ b/sd/inc/sdxmlwrp.hxx
@@ -0,0 +1,94 @@
+/*************************************************************************
+ *
+ * $RCSfile: sdxmlwrp.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:28 $
+ *
+ * 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 _SDXMLWRP_HXX
+#define _SDXMLWRP_HXX
+
+class SdDrawDocument;
+class SfxMedium;
+
+#ifndef _COM_SUN_STAR_FRAME_XMODEL_HPP_
+#include
+#endif
+
+class SdXMLWrapper
+{
+ ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel> mxLocalModel;
+ SfxMedium& mrMedium;
+
+ BOOL mbIsDraw : 1;
+ BOOL mbShowProgress : 1;
+
+public:
+ SdXMLWrapper(
+ ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel>& xRef,
+ SfxMedium& rMedium,
+ BOOL bIsDraw, BOOL bShowProg = TRUE);
+
+ BOOL Import();
+ BOOL Export();
+
+ BOOL IsDraw() const { return mbIsDraw; }
+ BOOL IsImpress() const { return !mbIsDraw; }
+};
+
+#endif // _SDXMLWRP_HXX
+
+
diff --git a/sd/inc/segdefs.hxx b/sd/inc/segdefs.hxx
new file mode 100644
index 000000000000..7dbb3ddce8fe
--- /dev/null
+++ b/sd/inc/segdefs.hxx
@@ -0,0 +1,63 @@
+/*************************************************************************
+ *
+ * $RCSfile: segdefs.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:28 $
+ *
+ * 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): _______________________________________
+ *
+ *
+ ************************************************************************/
+#include
+
+
diff --git a/sd/inc/segdefs_.hxx b/sd/inc/segdefs_.hxx
new file mode 100644
index 000000000000..325526e5cc78
--- /dev/null
+++ b/sd/inc/segdefs_.hxx
@@ -0,0 +1,1434 @@
+/*************************************************************************
+ *
+ * $RCSfile: segdefs_.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:28 $
+ *
+ * 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): _______________________________________
+ *
+ *
+ ************************************************************************/
+#define app_01 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE)
+#define app_04 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE)
+#define app_05 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE)
+#define app_0a SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE)
+#define app2_01 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE)
+#define app2_03 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE)
+#define app2_06 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE)
+#define app4_01 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE)
+#define splcfg_01 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE)
+#define splcfg_04 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE)
+#define app5_01 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE)
+#define optsitem_01 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE)
+#define optsitem_02 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE)
+#define optsitem_03 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE)
+#define optsitem_04 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE)
+#define optsitem_06 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE)
+#define optsitem_07 SEG_SEGCLASS(STARTING_SEG000,STARTING_CODE)
+#define drawdoc2_04 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
+#define drviewsa_0a SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
+#define drawdoc_11 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
+#define drawdoc2_03 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
+#define sdpage_11 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
+#define drawdoc_0e SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
+#define stlsheet_06 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
+#define drawview_06 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
+#define sdview_07 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
+#define drawview_09 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
+#define drviews5_08 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
+#define sdwindow_06 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
+#define sdview_11 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
+#define drawview_04 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
+#define drviews5_01 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
+#define viewshel_07 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
+#define fudraw_0b SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
+#define fudraw_04 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
+#define fusel_04 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
+#define viewshel_0a SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
+#define drviews4_08 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
+#define sdwindow_09 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
+#define drviews4_0b SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
+#define fudraw_09 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
+#define fusel_07 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
+#define drviews4_01 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
+#define drviewsa_06 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
+#define viewshel_06 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
+#define fupoor_03 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
+#define docshel2_04 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
+#define drviews1_01 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
+#define drviews5_07 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
+#define drviews1_02 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
+#define fupoor_01 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
+#define fudraw_01 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
+#define fusel_08 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
+#define fudraw_0a SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
+#define fupoor_04 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
+#define fupoor_02 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
+#define fudraw_02 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
+#define drviews7_02 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
+#define viewshel_08 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
+#define drviews6_07 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
+#define tbxitem_01 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
+#define tbxitem_02 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
+#define docshell_07 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
+#define drawdoc2_0c SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
+#define docshell_0a SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
+#define docshel4_1d SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
+#define stlsheet_07 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
+#define sdwindow_20 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
+#define docshell_08 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
+#define docshell_06 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
+#define viewshe2_16 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
+#define sdwindow_0c SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
+#define fudraw_0e SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
+#define fupoor_12 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
+#define docshel4_0b SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
+#define drviews1_0b SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
+#define drviews7_01 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
+#define drviews7_03 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
+#define sdview_0a SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
+#define tbxitem_03 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
+#define drviews3_06 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
+#define sdwindow_07 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
+#define sdpage_03 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
+#define viewshe2_01 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
+#define sdwindow_14 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
+#define sdwindow_1b SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
+#define sdwindow_1c SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
+#define sdwindow_19 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
+#define sdwindow_17 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
+#define sdwindow_18 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
+#define sdwindow_1a SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
+#define sdwindow_15 SEG_SEGCLASS(STARTWORK_SEG000,STARTWORK_CODE)
+#define sdwindow_0d SEG_SEGCLASS(STARTWORK_SEG001,STARTWORK_CODE)
+#define sdwindow_04 SEG_SEGCLASS(STARTWORK_SEG001,STARTWORK_CODE)
+#define sdpage2_08 SEG_SEGCLASS(STARTWORK_SEG001,STARTWORK_CODE)
+#define sdruler_06 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
+#define viewshe2_09 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
+#define sdwindow_0e SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
+#define sdwindow_0f SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
+#define outlview_0f SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
+#define outlview_09 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
+#define fuoltext_06 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
+#define outlnvsh_1c SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
+#define outlnvsh_11 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
+#define outlview_0a SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
+#define sdwindow_21 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
+#define outlnvsh_15 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
+#define viewshe2_07 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
+#define sdwindow_11 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
+#define sdwindow_10 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
+#define sdwindow_12 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
+#define viewshe2_08 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
+#define drviews1_06 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
+#define drviews4_02 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
+#define drviews5_05 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
+#define viewshel_10 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
+#define viewshel_12 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
+#define sdwindow_13 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
+#define drviews1_10 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
+#define viewshel_13 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
+#define viewshel_0f SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
+#define sdpage_1f SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
+#define drviews1_1c SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
+#define drviews5_06 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
+#define drviews5_04 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
+#define drviews1_13 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
+#define sdruler_03 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
+#define sdruler_01 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
+#define drviews1_14 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
+#define app3_01 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
+#define docshel4_1c SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
+#define drviewsh_01 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
+#define docshell_02 SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
+#define docshel4_0e SEG_SEGCLASS(STARTSLICE_SEG000,STARTSLICE_CODE)
+#define drawdoc2_07 SEG_SEGCLASS(STARTSLICE_SEG001,STARTSLICE_CODE)
+#define drawdoc2_09 SEG_SEGCLASS(STARTSLICE_SEG001,STARTSLICE_CODE)
+#define drawdoc2_0e SEG_SEGCLASS(STARTSLICE_SEG001,STARTSLICE_CODE)
+#define sdpage2_05 SEG_SEGCLASS(STARTSLICE_SEG001,STARTSLICE_CODE)
+#define sdpage2_07 SEG_SEGCLASS(STARTSLICE_SEG001,STARTSLICE_CODE)
+#define drawdoc_04 SEG_SEGCLASS(STARTSLICE_SEG001,STARTSLICE_CODE)
+#define sdpage_01 SEG_SEGCLASS(STARTSLICE_SEG001,STARTSLICE_CODE)
+#define outlview_0c SEG_SEGCLASS(STARTSLICE_SEG001,STARTSLICE_CODE)
+#define sdpage_0e SEG_SEGCLASS(STARTSLICE_SEG001,STARTSLICE_CODE)
+#define sdpage_0d SEG_SEGCLASS(STARTSLICE_SEG001,STARTSLICE_CODE)
+#define drawdoc2_13 SEG_SEGCLASS(STARTSLICE_SEG001,STARTSLICE_CODE)
+#define sdpage_19 SEG_SEGCLASS(STARTSLICE_SEG001,STARTSLICE_CODE)
+#define sdpage_04 SEG_SEGCLASS(STARTSLICE_SEG001,STARTSLICE_CODE)
+#define sdpage_05 SEG_SEGCLASS(STARTSLICE_SEG001,STARTSLICE_CODE)
+#define drawdoc_13 SEG_SEGCLASS(STARTSLICE_SEG001,STARTSLICE_CODE)
+#define sdoutl_01 SEG_SEGCLASS(STARTSLICE_SEG001,STARTSLICE_CODE)
+#define drawdoc_12 SEG_SEGCLASS(STARTSLICE_SEG001,STARTSLICE_CODE)
+#define outlnvsh_01 SEG_SEGCLASS(STARTSLICE_SEG001,STARTSLICE_CODE)
+#define sdview_01 SEG_SEGCLASS(STARTSLICE_SEG001,STARTSLICE_CODE)
+#define drawdoc2_05 SEG_SEGCLASS(STARTSLICE_SEG001,STARTSLICE_CODE)
+#define drtxtob_01 SEG_SEGCLASS(STARTSLICE_SEG001,STARTSLICE_CODE)
+#define sdpage_1d SEG_SEGCLASS(STARTSLICE_SEG001,STARTSLICE_CODE)
+#define sdpage_1b SEG_SEGCLASS(STARTSLICE_SEG001,STARTSLICE_CODE)
+#define sdpage_12 SEG_SEGCLASS(STARTSLICE_SEG001,STARTSLICE_CODE)
+#define sdpage_13 SEG_SEGCLASS(STARTSLICE_SEG001,STARTSLICE_CODE)
+#define stlpool_03 SEG_SEGCLASS(STARTSLICE_SEG001,STARTSLICE_CODE)
+#define stlsheet_01 SEG_SEGCLASS(STARTSLICE_SEG001,STARTSLICE_CODE)
+#define app3_02 SEG_SEGCLASS(STARTSLICE_SEG002,STARTSLICE_CODE)
+#define fusel_01 SEG_SEGCLASS(STARTSLICE_SEG002,STARTSLICE_CODE)
+#define fusel_02 SEG_SEGCLASS(STARTSLICE_SEG002,STARTSLICE_CODE)
+#define drviewsa_05 SEG_SEGCLASS(STARTSLICE_SEG002,STARTSLICE_CODE)
+#define drawdoc2_0d SEG_SEGCLASS(STARTSLICE_SEG002,STARTSLICE_CODE)
+#define outlview_14 SEG_SEGCLASS(STARTSLICE_SEG002,STARTSLICE_CODE)
+#define outlview_0b SEG_SEGCLASS(STARTSLICE_SEG002,STARTSLICE_CODE)
+#define frmview_04 SEG_SEGCLASS(STARTSLICE_SEG002,STARTSLICE_CODE)
+#define sdview_02 SEG_SEGCLASS(STARTSLICE_SEG002,STARTSLICE_CODE)
+#define sdview_06 SEG_SEGCLASS(STARTSLICE_SEG002,STARTSLICE_CODE)
+#define drawview_02 SEG_SEGCLASS(STARTSLICE_SEG002,STARTSLICE_CODE)
+#define outlnvsh_05 SEG_SEGCLASS(STARTSLICE_SEG002,STARTSLICE_CODE)
+#define fuoltext_02 SEG_SEGCLASS(STARTSLICE_SEG002,STARTSLICE_CODE)
+#define outlview_02 SEG_SEGCLASS(STARTSLICE_SEG002,STARTSLICE_CODE)
+#define fuoutl_02 SEG_SEGCLASS(STARTSLICE_SEG002,STARTSLICE_CODE)
+#define fuoltext_08 SEG_SEGCLASS(STARTSLICE_SEG002,STARTSLICE_CODE)
+#define outlview_12 SEG_SEGCLASS(STARTSLICE_SEG002,STARTSLICE_CODE)
+#define outlview_18 SEG_SEGCLASS(STARTSLICE_SEG002,STARTSLICE_CODE)
+#define outlview_01 SEG_SEGCLASS(STARTSLICE_SEG002,STARTSLICE_CODE)
+#define outlview_13 SEG_SEGCLASS(STARTSLICE_SEG002,STARTSLICE_CODE)
+#define outlnvsh_14 SEG_SEGCLASS(STARTSLICE_SEG002,STARTSLICE_CODE)
+#define drtxtob_04 SEG_SEGCLASS(STARTSLICE_SEG003,STARTSLICE_CODE)
+#define outlview_16 SEG_SEGCLASS(STARTSLICE_SEG003,STARTSLICE_CODE)
+#define tbxww_08 SEG_SEGCLASS(STARTSLICE_SEG003,STARTSLICE_CODE)
+#define viewshe2_0b SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE)
+#define sdpage_1a SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE)
+#define sdpage_0a SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE)
+#define sdview_03 SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE)
+#define outlnvsh_0d SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE)
+#define sdview_04 SEG_SEGCLASS(STARTSLICE_SEG004,STARTSLICE_CODE)
+#define outlnvsh_0b SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
+#define drviews1_16 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
+#define sdwindow_05 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
+#define drviews1_15 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
+#define drviews1_12 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
+#define outlnvsh_1e SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
+#define drawdoc2_12 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
+#define drawdoc_01 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
+#define stlpool_01 SEG_SEGCLASS(STARTSLICE_SEG005,STARTSLICE_CODE)
+#define optsitem_14 SEG_SEGCLASS(STARTSLICE_SEG006,STARTSLICE_CODE)
+#define optsitem_16 SEG_SEGCLASS(STARTSLICE_SEG006,STARTSLICE_CODE)
+#define optsitem_17 SEG_SEGCLASS(STARTSLICE_SEG006,STARTSLICE_CODE)
+#define drviews1_1d SEG_SEGCLASS(STARTSLICE_SEG006,STARTSLICE_CODE)
+#define stlsheet_05 SEG_SEGCLASS(STARTSLICE_SEG007,STARTSLICE_CODE)
+#define drawdoc4_01 SEG_SEGCLASS(STARTSLICE_SEG007,STARTSLICE_CODE)
+#define stlpool_07 SEG_SEGCLASS(STARTSLICE_SEG007,STARTSLICE_CODE)
+#define drawdoc_10 SEG_SEGCLASS(STARTSLICE_SEG007,STARTSLICE_CODE)
+#define outlnvsh_06 SEG_SEGCLASS(STARTSLICE_SEG008,STARTSLICE_CODE)
+#define outlview_03 SEG_SEGCLASS(STARTSLICE_SEG008,STARTSLICE_CODE)
+#define viewshel_01 SEG_SEGCLASS(STARTSLICE_SEG008,STARTSLICE_CODE)
+#define viewshel_02 SEG_SEGCLASS(STARTSLICE_SEG008,STARTSLICE_CODE)
+#define sdwindow_01 SEG_SEGCLASS(STARTSLICE_SEG008,STARTSLICE_CODE)
+#define frmview_01 SEG_SEGCLASS(STARTSLICE_SEG009,STARTSLICE_CODE)
+#define frmview_07 SEG_SEGCLASS(STARTSLICE_SEG009,STARTSLICE_CODE)
+#define drviewsa_03 SEG_SEGCLASS(STARTSLICE_SEG009,STARTSLICE_CODE)
+#define frmview_03 SEG_SEGCLASS(STARTSLICE_SEG009,STARTSLICE_CODE)
+#define outlnvsh_03 SEG_SEGCLASS(STARTSLICE_SEG009,STARTSLICE_CODE)
+#define outlnvsh_10 SEG_SEGCLASS(STARTSLICE_SEG009,STARTSLICE_CODE)
+#define fuoutl_01 SEG_SEGCLASS(STARTSLICE_SEG009,STARTSLICE_CODE)
+#define drviewsa_07 SEG_SEGCLASS(STARTSLICE_SEG009,STARTSLICE_CODE)
+#define fuoltext_01 SEG_SEGCLASS(STARTSLICE_SEG009,STARTSLICE_CODE)
+#define fuoltext_07 SEG_SEGCLASS(STARTSLICE_SEG009,STARTSLICE_CODE)
+#define drawitem_03 SEG_SEGCLASS(STARTSLICE_SEG010,STARTSLICE_CODE)
+#define drawitem_06 SEG_SEGCLASS(STARTSLICE_SEG010,STARTSLICE_CODE)
+#define docshell_0b SEG_SEGCLASS(STARTSLICE_SEG010,STARTSLICE_CODE)
+#define docshell_01 SEG_SEGCLASS(STARTSLICE_SEG010,STARTSLICE_CODE)
+#define drawitem_02 SEG_SEGCLASS(STARTSLICE_SEG010,STARTSLICE_CODE)
+#define drawitem_08 SEG_SEGCLASS(STARTSLICE_SEG010,STARTSLICE_CODE)
+#define drawitem_0c SEG_SEGCLASS(STARTSLICE_SEG010,STARTSLICE_CODE)
+#define drawitem_09 SEG_SEGCLASS(STARTSLICE_SEG010,STARTSLICE_CODE)
+#define drawitem_0e SEG_SEGCLASS(STARTSLICE_SEG010,STARTSLICE_CODE)
+#define drawitem_12 SEG_SEGCLASS(STARTSLICE_SEG010,STARTSLICE_CODE)
+#define drawitem_0f SEG_SEGCLASS(STARTSLICE_SEG010,STARTSLICE_CODE)
+#define drawitem_14 SEG_SEGCLASS(STARTSLICE_SEG010,STARTSLICE_CODE)
+#define drawitem_18 SEG_SEGCLASS(STARTSLICE_SEG010,STARTSLICE_CODE)
+#define drawitem_15 SEG_SEGCLASS(STARTSLICE_SEG010,STARTSLICE_CODE)
+#define drawitem_1a SEG_SEGCLASS(STARTSLICE_SEG010,STARTSLICE_CODE)
+#define drawitem_1e SEG_SEGCLASS(STARTSLICE_SEG010,STARTSLICE_CODE)
+#define drawitem_1b SEG_SEGCLASS(STARTSLICE_SEG010,STARTSLICE_CODE)
+#define drawitem_20 SEG_SEGCLASS(STARTSLICE_SEG010,STARTSLICE_CODE)
+#define drawitem_24 SEG_SEGCLASS(STARTSLICE_SEG010,STARTSLICE_CODE)
+#define drawitem_21 SEG_SEGCLASS(STARTSLICE_SEG010,STARTSLICE_CODE)
+#define drviews1_11 SEG_SEGCLASS(STARTSLICE_SEG011,STARTSLICE_CODE)
+#define drbezob_01 SEG_SEGCLASS(STARTSLICE_SEG011,STARTSLICE_CODE)
+#define tabcontr_01 SEG_SEGCLASS(STARTSLICE_SEG011,STARTSLICE_CODE)
+#define drawview_01 SEG_SEGCLASS(STARTSLICE_SEG011,STARTSLICE_CODE)
+#define drstdob_01 SEG_SEGCLASS(STARTSLICE_SEG011,STARTSLICE_CODE)
+#define layertab_01 SEG_SEGCLASS(STARTSLICE_SEG011,STARTSLICE_CODE)
+#define sdruler_02 SEG_SEGCLASS(STARTSLICE_SEG011,STARTSLICE_CODE)
+#define sdruler_08 SEG_SEGCLASS(STARTSLICE_SEG011,STARTSLICE_CODE)
+#define docshel2_03 SEG_SEGCLASS(STARTSLICE_SEG011,STARTSLICE_CODE)
+#define docshel2_02 SEG_SEGCLASS(STARTSLICE_SEG011,STARTSLICE_CODE)
+#define tbxww_04 SEG_SEGCLASS(STARTSLICE_SEG012,STARTSLICE_CODE)
+#define viewshe2_1d SEG_SEGCLASS(STARTSLICE_SEG012,STARTSLICE_CODE)
+#define viewshel_04 SEG_SEGCLASS(STARTSLICE_SEG012,STARTSLICE_CODE)
+#define docshel2_05 SEG_SEGCLASS(STARTSLICE_SEG012,STARTSLICE_CODE)
+#define sdwindow_02 SEG_SEGCLASS(STARTSLICE_SEG012,STARTSLICE_CODE)
+#define drtxtob_02 SEG_SEGCLASS(STARTSLICE_SEG012,STARTSLICE_CODE)
+#define drstdob_02 SEG_SEGCLASS(STARTSLICE_SEG012,STARTSLICE_CODE)
+#define drbezob_02 SEG_SEGCLASS(STARTSLICE_SEG012,STARTSLICE_CODE)
+#define sdruler_04 SEG_SEGCLASS(STARTSLICE_SEG012,STARTSLICE_CODE)
+#define tabcontr_02 SEG_SEGCLASS(STARTSLICE_SEG013,STARTSLICE_CODE)
+#define layertab_02 SEG_SEGCLASS(STARTSLICE_SEG013,STARTSLICE_CODE)
+#define drviews1_0a SEG_SEGCLASS(STARTSLICE_SEG013,STARTSLICE_CODE)
+#define outlnvsh_1a SEG_SEGCLASS(STARTSLICE_SEG013,STARTSLICE_CODE)
+#define app4_02 SEG_SEGCLASS(STARTSLICE_SEG013,STARTSLICE_CODE)
+#define docdlg_01 SEG_SEGCLASS(STARTSLICE_SEG013,STARTSLICE_CODE)
+#define tabcontr_04 SEG_SEGCLASS(STARTSLICE_SEG013,STARTSLICE_CODE)
+#define viewshe2_10 SEG_SEGCLASS(STARTSLICE_SEG013,STARTSLICE_CODE)
+#define outlnvsh_08 SEG_SEGCLASS(STARTSLICE_SEG013,STARTSLICE_CODE)
+#define outlnvsh_09 SEG_SEGCLASS(STARTSLICE_SEG014,STARTSLICE_CODE)
+#define outlnvsh_0a SEG_SEGCLASS(STARTSLICE_SEG014,STARTSLICE_CODE)
+#define outlnvsh_18 SEG_SEGCLASS(STARTSLICE_SEG014,STARTSLICE_CODE)
+#define outlnvsh_19 SEG_SEGCLASS(STARTSLICE_SEG014,STARTSLICE_CODE)
+#define tabcontr_08 SEG_SEGCLASS(STARTSLICE_SEG015,STARTSLICE_CODE)
+#define drawdoc2_16 SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE)
+#define drviews2_02 SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE)
+#define drawview_05 SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE)
+#define fucopy_01 SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE)
+#define drawview_03 SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE)
+#define sdview_08 SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE)
+#define drviews1_03 SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE)
+#define sdpage2_06 SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE)
+#define sdview_09 SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE)
+#define fudraw_06 SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE)
+#define sdview2_07 SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE)
+#define drviewsc_01 SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE)
+#define fuoltext_04 SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE)
+#define outlview_19 SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE)
+#define sdview_0e SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE)
+#define futext_04 SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE)
+#define fupoor_05 SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE)
+#define fuconstr_04 SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE)
+#define sdpage2_04 SEG_SEGCLASS(CALLOPT_SEG000,CALLOPT_CODE)
+#define viewshel_0b SEG_SEGCLASS(WORKSET_SEG000,WORKSET_CODE)
+#define drviews4_09 SEG_SEGCLASS(WORKSET_SEG000,WORKSET_CODE)
+#define sdwindow_0a SEG_SEGCLASS(WORKSET_SEG000,WORKSET_CODE)
+#define fusel_05 SEG_SEGCLASS(WORKSET_SEG000,WORKSET_CODE)
+#define fudraw_05 SEG_SEGCLASS(WORKSET_SEG000,WORKSET_CODE)
+#define fupoor_0f SEG_SEGCLASS(WORKSET_SEG000,WORKSET_CODE)
+#define drawdoc3_09 SEG_SEGCLASS(WORKSET_SEG000,WORKSET_CODE)
+#define fusel_03 SEG_SEGCLASS(WORKSET_SEG000,WORKSET_CODE)
+#define viewshel_09 SEG_SEGCLASS(WORKSET_SEG000,WORKSET_CODE)
+#define drviews4_07 SEG_SEGCLASS(WORKSET_SEG000,WORKSET_CODE)
+#define fudraw_03 SEG_SEGCLASS(WORKSET_SEG000,WORKSET_CODE)
+#define sdwindow_08 SEG_SEGCLASS(WORKSET_SEG000,WORKSET_CODE)
+#define viewshe2_1b SEG_SEGCLASS(WORKSET_SEG000,WORKSET_CODE)
+#define sdwindow_0b SEG_SEGCLASS(WORKSET_SEG000,WORKSET_CODE)
+#define drviews4_0a SEG_SEGCLASS(WORKSET_SEG000,WORKSET_CODE)
+#define viewshel_0c SEG_SEGCLASS(WORKSET_SEG000,WORKSET_CODE)
+#define viewshel_05 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
+#define drviews8_01 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
+#define drviewsb_01 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
+#define outlnvsh_0f SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
+#define fuarea_01 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
+#define fuconpol_05 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
+#define sdview_10 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
+#define fuconrec_05 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
+#define fuconstr_05 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
+#define futext_05 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
+#define futext_0a SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
+#define futext_01 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
+#define futext_0b SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
+#define futext_0c SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
+#define sdview_13 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
+#define futext_08 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
+#define fuconstr_07 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
+#define fuconpol_07 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
+#define app6_06 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
+#define futext_0f SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
+#define fuconrec_07 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
+#define futext_0d SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
+#define futext_03 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
+#define sdview_14 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
+#define futext_0e SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
+#define futext_02 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
+#define futext_10 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
+#define fuconbez_05 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
+#define fuconstr_02 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
+#define fuconpol_02 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
+#define fuconpol_08 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
+#define fuconstr_08 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
+#define fuconrec_08 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
+#define futext_09 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
+#define fuconstr_01 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
+#define fuconpol_01 SEG_SEGCLASS(SLICES_SEG000,SLICES_CODE)
+#define fudraw_0d SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
+#define fupoor_0d SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
+#define futext_11 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
+#define sdwindow_1d SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
+#define sdwindow_1f SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
+#define drviews1_08 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
+#define sdview2_05 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
+#define fuoutl_03 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
+#define sdwindow_1e SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
+#define viewshe2_13 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
+#define outlview_08 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
+#define outlview_0e SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
+#define drawdoc2_0b SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
+#define outlview_0d SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
+#define outlnvsh_0e SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
+#define viewshe2_1c SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
+#define sdwindow_22 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
+#define drviews1_09 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
+#define sdview2_06 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
+#define outlview_1a SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
+#define fuoltext_09 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
+#define fuoltext_0b SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
+#define viewshe2_12 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
+#define outlview_07 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
+#define outlview_10 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
+#define outlview_11 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
+#define drawdoc2_0f SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
+#define fubullet_01 SEG_SEGCLASS(SLICES_SEG001,SLICES_CODE)
+#define drviews4_05 SEG_SEGCLASS(SLICES_SEG002,SLICES_CODE)
+#define showwin_03 SEG_SEGCLASS(SLICES_SEG002,SLICES_CODE)
+#define fuslshow_0c SEG_SEGCLASS(SLICES_SEG002,SLICES_CODE)
+#define fupoor_08 SEG_SEGCLASS(SLICES_SEG002,SLICES_CODE)
+#define fusel_06 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
+#define sdpage_02 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
+#define sdpage2_02 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
+#define drawdoc_02 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
+#define docshel4_0f SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
+#define drawdoc3_06 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
+#define drawdoc3_0a SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
+#define docshell_05 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
+#define stlsheet_02 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
+#define stlpool_02 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
+#define stlpool_06 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
+#define dragserv_03 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
+#define drawdoc_06 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
+#define drawdoc3_08 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
+#define sdoutl_02 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
+#define stlpool_05 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
+#define fuprlout_01 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
+#define drawdoc_03 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
+#define sdpage_18 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
+#define sdpage2_01 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
+#define drawview_07 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
+#define docshel4_0c SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
+#define sdiocmpt_01 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
+#define frmview_06 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
+#define stlsheet_03 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
+#define sdpage2_03 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
+#define drawdoc_05 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
+#define docshel4_1e SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
+#define frmview_05 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
+#define drawdoc2_11 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
+#define drawdoc2_14 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
+#define docshel4_14 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
+#define docshel4_0d SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
+#define stlsheet_04 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
+#define viewshe2_1f SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
+#define app6_0a SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
+#define sdobjpal_12 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
+#define sdobjpal_11 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
+#define sdobjpal_14 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
+#define sdobjpal_06 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
+#define sdobjpal_02 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
+#define app6_05 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
+#define sdobjpal_04 SEG_SEGCLASS(SLICES_SEG003,SLICES_CODE)
+#define sdview_0c SEG_SEGCLASS(SLICES_SEG004,SLICES_CODE)
+#define sdobjpal_17 SEG_SEGCLASS(SLICES_SEG004,SLICES_CODE)
+#define sdobjpal_0c SEG_SEGCLASS(SLICES_SEG004,SLICES_CODE)
+#define sdobjpal_01 SEG_SEGCLASS(SLICES_SEG004,SLICES_CODE)
+#define sdobjpal_0d SEG_SEGCLASS(SLICES_SEG004,SLICES_CODE)
+#define app6_07 SEG_SEGCLASS(SLICES_SEG004,SLICES_CODE)
+#define app6_0b SEG_SEGCLASS(SLICES_SEG004,SLICES_CODE)
+#define drviews6_03 SEG_SEGCLASS(SLICES_SEG004,SLICES_CODE)
+#define sdobjpal_10 SEG_SEGCLASS(SLICES_SEG004,SLICES_CODE)
+#define drviews6_04 SEG_SEGCLASS(SLICES_SEG004,SLICES_CODE)
+#define sdobjpal_0e SEG_SEGCLASS(SLICES_SEG004,SLICES_CODE)
+#define app6_08 SEG_SEGCLASS(SLICES_SEG004,SLICES_CODE)
+#define sdobjpal_0f SEG_SEGCLASS(SLICES_SEG004,SLICES_CODE)
+#define fuconstr_03 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE)
+#define fuconrec_03 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE)
+#define fuconbez_03 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE)
+#define fuconarc_03 SEG_SEGCLASS(SLICES_SEG005,SLICES_CODE)
+#define futext_12 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
+#define frmview_02 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
+#define fuconrec_04 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
+#define viewshe2_0a SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
+#define drviews3_01 SEG_SEGCLASS(SLICES_SEG006,SLICES_CODE)
+#define drawdoc2_10 SEG_SEGCLASS(SLICES_SEG007,SLICES_CODE)
+#define fuoltext_03 SEG_SEGCLASS(SLICES_SEG007,SLICES_CODE)
+#define fuoltext_05 SEG_SEGCLASS(SLICES_SEG007,SLICES_CODE)
+#define fuconrec_01 SEG_SEGCLASS(SLICES_SEG007,SLICES_CODE)
+#define fuconrec_02 SEG_SEGCLASS(SLICES_SEG007,SLICES_CODE)
+#define sdview_0f SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
+#define drtxtob_03 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
+#define outlview_15 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
+#define fuchar_01 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
+#define dlgchar_01 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
+#define dlgchar_02 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
+#define fuolbull_01 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
+#define enumdlg_02 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
+#define enumdlg_04 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
+#define dlgolbul_01 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
+#define enumdlg_03 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
+#define enumdlg_07 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
+#define enumdlg_05 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
+#define enumdlg_0f SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
+#define enumdlg_10 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
+#define enumdlg_0b SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
+#define enumdlg_06 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
+#define enumdlg_01 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
+#define enumdlg_0c SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
+#define enumdlg_09 SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
+#define enumdlg_0a SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
+#define enumdlg_0d SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
+#define enumdlg_0e SEG_SEGCLASS(SLICES_SEG008,SLICES_CODE)
+#define sdpage_07 SEG_SEGCLASS(SLICES_SEG009,SLICES_CODE)
+#define app1_03 SEG_SEGCLASS(SLICES_SEG009,SLICES_CODE)
+#define newfoil_01 SEG_SEGCLASS(SLICES_SEG009,SLICES_CODE)
+#define newfoil_03 SEG_SEGCLASS(SLICES_SEG009,SLICES_CODE)
+#define newfoil_07 SEG_SEGCLASS(SLICES_SEG009,SLICES_CODE)
+#define newfoil_05 SEG_SEGCLASS(SLICES_SEG009,SLICES_CODE)
+#define newfoil_02 SEG_SEGCLASS(SLICES_SEG010,SLICES_CODE)
+#define newfoil_04 SEG_SEGCLASS(SLICES_SEG010,SLICES_CODE)
+#define newfoil_06 SEG_SEGCLASS(SLICES_SEG010,SLICES_CODE)
+#define futext_07 SEG_SEGCLASS(SLICES_SEG010,SLICES_CODE)
+#define app_02 SEG_SEGCLASS(SLICES_SEG010,SLICES_CODE)
+#define sdobjpal_03 SEG_SEGCLASS(SLICES_SEG011,SLICES_CODE)
+#define sdobjpal_13 SEG_SEGCLASS(SLICES_SEG011,SLICES_CODE)
+#define tabcontr_03 SEG_SEGCLASS(SLICES_SEG011,SLICES_CODE)
+#define fuconpol_04 SEG_SEGCLASS(SLICES_SEG011,SLICES_CODE)
+#define app2_02 SEG_SEGCLASS(SLICES_SEG011,SLICES_CODE)
+#define app1_02 SEG_SEGCLASS(SLICES_SEG011,SLICES_CODE)
+#define app6_02 SEG_SEGCLASS(SLICES_SEG011,SLICES_CODE)
+#define app2_07 SEG_SEGCLASS(SLICES_SEG012,SLICES_CODE)
+#define outlnvsh_1d SEG_SEGCLASS(SLICES_SEG012,SLICES_CODE)
+#define drviews1_07 SEG_SEGCLASS(SLICES_SEG012,SLICES_CODE)
+#define fuconbez_04 SEG_SEGCLASS(SLICES_SEG012,SLICES_CODE)
+#define fupoor_0e SEG_SEGCLASS(SLICES_SEG012,SLICES_CODE)
+#define app_08 SEG_SEGCLASS(SLICES_SEG013,SLICES_CODE)
+#define sdobjpal_19 SEG_SEGCLASS(SLICES_SEG013,SLICES_CODE)
+#define tbxww_01 SEG_SEGCLASS(SLICES_SEG013,SLICES_CODE)
+#define tbxww_06 SEG_SEGCLASS(SLICES_SEG013,SLICES_CODE)
+#define tbxww_07 SEG_SEGCLASS(SLICES_SEG013,SLICES_CODE)
+#define tbxww_05 SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE)
+#define fupoor_10 SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE)
+#define unchss_01 SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE)
+#define drviews6_09 SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE)
+#define fuslshow_03 SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE)
+#define fader_06 SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE)
+#define fader_0e SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE)
+#define fader_11 SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE)
+#define fader_13 SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE)
+#define fader_07 SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE)
+#define fuslshow_07 SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE)
+#define showview_01 SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE)
+#define showwin_07 SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE)
+#define fuslshow_11 SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE)
+#define fuslshow_0d SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE)
+#define fader_1b SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE)
+#define fader_08 SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE)
+#define fader_15 SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE)
+#define fader_16 SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE)
+#define fader_1a SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE)
+#define showwin_05 SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE)
+#define fuslshow_08 SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE)
+#define fuslshw2_0b SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE)
+#define showview_03 SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE)
+#define showview_06 SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE)
+#define showview_04 SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE)
+#define fuslshw2_01 SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE)
+#define fuslshow_0b SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE)
+#define fuslshw3_02 SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE)
+#define fuslshow_14 SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE)
+#define fuslshow_0a SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE)
+#define fuslshw3_01 SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE)
+#define fuslshow_12 SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE)
+#define fuslshw2_0c SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE)
+#define fuslshw3_08 SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE)
+#define fuslshw3_0b SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE)
+#define fuslshw3_0c SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE)
+#define fuslshw2_10 SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE)
+#define fuslshw3_12 SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE)
+#define fuslshw2_0e SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE)
+#define fuslshw3_09 SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE)
+#define fuslshw2_02 SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE)
+#define fader_21 SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE)
+#define fader_22 SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE)
+#define fuslshw2_0f SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE)
+#define fader_0f SEG_SEGCLASS(SLICES_SEG014,SLICES_CODE)
+#define tbxww_02 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
+#define drviews1_19 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
+#define fupage_01 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
+#define viewshe2_20 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
+#define drawdoc2_06 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
+#define dlgpage_01 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
+#define sdundogr_05 SEG_SEGCLASS(SLICES_SEG015,SLICES_CODE)
+#define fuconbez_07 SEG_SEGCLASS(SLICES_SEG016,SLICES_CODE)
+#define fuconstr_06 SEG_SEGCLASS(SLICES_SEG016,SLICES_CODE)
+#define fuconrec_06 SEG_SEGCLASS(SLICES_SEG016,SLICES_CODE)
+#define fuconbez_06 SEG_SEGCLASS(SLICES_SEG016,SLICES_CODE)
+#define fudraw_0c SEG_SEGCLASS(SLICES_SEG016,SLICES_CODE)
+#define fuslshow_01 SEG_SEGCLASS(SLICES_SEG016,SLICES_CODE)
+#define drawdoc_08 SEG_SEGCLASS(SLICES_SEG016,SLICES_CODE)
+#define drawdoc_09 SEG_SEGCLASS(SLICES_SEG016,SLICES_CODE)
+#define drawdoc_0a SEG_SEGCLASS(SLICES_SEG016,SLICES_CODE)
+#define drawdoc_0b SEG_SEGCLASS(SLICES_SEG016,SLICES_CODE)
+#define drawdoc_0c SEG_SEGCLASS(SLICES_SEG016,SLICES_CODE)
+#define present_01 SEG_SEGCLASS(SLICES_SEG016,SLICES_CODE)
+#define present_03 SEG_SEGCLASS(SLICES_SEG016,SLICES_CODE)
+#define present_04 SEG_SEGCLASS(SLICES_SEG016,SLICES_CODE)
+#define present_02 SEG_SEGCLASS(SLICES_SEG016,SLICES_CODE)
+#define fuslshow_02 SEG_SEGCLASS(SLICES_SEG017,SLICES_CODE)
+#define fader_02 SEG_SEGCLASS(SLICES_SEG017,SLICES_CODE)
+#define mover_02 SEG_SEGCLASS(SLICES_SEG017,SLICES_CODE)
+#define showview_02 SEG_SEGCLASS(SLICES_SEG017,SLICES_CODE)
+#define fuslshow_0e SEG_SEGCLASS(SLICES_SEG018,SLICES_CODE)
+#define fuslshow_0f SEG_SEGCLASS(SLICES_SEG018,SLICES_CODE)
+#define docshel4_11 SEG_SEGCLASS(SLICES_SEG018,SLICES_CODE)
+#define docshel4_16 SEG_SEGCLASS(SLICES_SEG018,SLICES_CODE)
+#define app6_03 SEG_SEGCLASS(SLICES_SEG018,SLICES_CODE)
+#define sdobjpal_21 SEG_SEGCLASS(SLICES_SEG018,SLICES_CODE)
+#define app6_04 SEG_SEGCLASS(SLICES_SEG018,SLICES_CODE)
+#define fuedibez_03 SEG_SEGCLASS(SLICES_SEG019,SLICES_CODE)
+#define fuedibez_0a SEG_SEGCLASS(SLICES_SEG019,SLICES_CODE)
+#define fuedibez_04 SEG_SEGCLASS(SLICES_SEG019,SLICES_CODE)
+#define fuedibez_05 SEG_SEGCLASS(SLICES_SEG019,SLICES_CODE)
+#define fuconbez_01 SEG_SEGCLASS(SLICES_SEG020,SLICES_CODE)
+#define fuconbez_08 SEG_SEGCLASS(SLICES_SEG020,SLICES_CODE)
+#define fader_01 SEG_SEGCLASS(SLICES_SEG020,SLICES_CODE)
+#define fupoor_09 SEG_SEGCLASS(SLICES_SEG020,SLICES_CODE)
+#define sdview2_01 SEG_SEGCLASS(SLICES_SEG020,SLICES_CODE)
+#define mover_01 SEG_SEGCLASS(SLICES_SEG020,SLICES_CODE)
+#define showwin_01 SEG_SEGCLASS(SLICES_SEG020,SLICES_CODE)
+#define showwin_02 SEG_SEGCLASS(SLICES_SEG020,SLICES_CODE)
+#define dragserv_02 SEG_SEGCLASS(SLICES_SEG021,SLICES_CODE)
+#define dragserv_04 SEG_SEGCLASS(SLICES_SEG021,SLICES_CODE)
+#define dragserv_05 SEG_SEGCLASS(SLICES_SEG021,SLICES_CODE)
+#define dragserv_06 SEG_SEGCLASS(SLICES_SEG021,SLICES_CODE)
+#define dragserv_08 SEG_SEGCLASS(SLICES_SEG021,SLICES_CODE)
+#define stlpool_09 SEG_SEGCLASS(SLICES_SEG022,SLICES_CODE)
+#define stlpool_0a SEG_SEGCLASS(SLICES_SEG022,SLICES_CODE)
+#define drviews6_08 SEG_SEGCLASS(SLICES_SEG023,SLICES_CODE)
+#define fuslshow_09 SEG_SEGCLASS(SLICES_SEG023,SLICES_CODE)
+#define fuedibez_07 SEG_SEGCLASS(SLICES_SEG024,SLICES_CODE)
+#define fuconbez_02 SEG_SEGCLASS(SLICES_SEG024,SLICES_CODE)
+#define fupoor_0b SEG_SEGCLASS(SLICES_SEG024,SLICES_CODE)
+#define sdview2_03 SEG_SEGCLASS(SLICES_SEG024,SLICES_CODE)
+#define showwin_04 SEG_SEGCLASS(SLICES_SEG025,SLICES_CODE)
+#define showwin_06 SEG_SEGCLASS(SLICES_SEG025,SLICES_CODE)
+#define fuinsert_01 SEG_SEGCLASS(SLICES_SEG025,SLICES_CODE)
+#define graphpro_01 SEG_SEGCLASS(SLICES_SEG025,SLICES_CODE)
+#define graphpro_02 SEG_SEGCLASS(SLICES_SEG025,SLICES_CODE)
+#define graphpro_03 SEG_SEGCLASS(SLICES_SEG025,SLICES_CODE)
+#define fuinsert_02 SEG_SEGCLASS(SLICES_SEG026,SLICES_CODE)
+#define fuprlout_02 SEG_SEGCLASS(SLICES_SEG026,SLICES_CODE)
+#define fucopy_02 SEG_SEGCLASS(SLICES_SEG026,SLICES_CODE)
+#define fucopy_04 SEG_SEGCLASS(SLICES_SEG026,SLICES_CODE)
+#define fuline_01 SEG_SEGCLASS(SLICES_SEG026,SLICES_CODE)
+#define unprlout_01 SEG_SEGCLASS(SLICES_SEG027,SLICES_CODE)
+#define unmovss_01 SEG_SEGCLASS(SLICES_SEG027,SLICES_CODE)
+#define stlsheet_08 SEG_SEGCLASS(SLICES_SEG027,SLICES_CODE)
+#define copydlg_01 SEG_SEGCLASS(SLICES_SEG027,SLICES_CODE)
+#define copydlg_03 SEG_SEGCLASS(SLICES_SEG027,SLICES_CODE)
+#define copydlg_02 SEG_SEGCLASS(SLICES_SEG028,SLICES_CODE)
+#define copydlg_04 SEG_SEGCLASS(SLICES_SEG028,SLICES_CODE)
+#define docshell_0c SEG_SEGCLASS(SLICES_SEG029,SLICES_CODE)
+#define docshel3_01 SEG_SEGCLASS(SLICES_SEG029,SLICES_CODE)
+#define fusearch_01 SEG_SEGCLASS(SLICES_SEG029,SLICES_CODE)
+#define sdoutl_03 SEG_SEGCLASS(SLICES_SEG029,SLICES_CODE)
+#define app2_04 SEG_SEGCLASS(SLICES_SEG029,SLICES_CODE)
+#define sdoutl_04 SEG_SEGCLASS(SLICES_SEG029,SLICES_CODE)
+#define fusearch_02 SEG_SEGCLASS(SLICES_SEG029,SLICES_CODE)
+#define fuspell_01 SEG_SEGCLASS(SLICES_SEG029,SLICES_CODE)
+#define fuspell_02 SEG_SEGCLASS(SLICES_SEG029,SLICES_CODE)
+#define fusearch_03 SEG_SEGCLASS(SLICES_SEG029,SLICES_CODE)
+#define sdoutl_07 SEG_SEGCLASS(SLICES_SEG029,SLICES_CODE)
+#define fuspell_03 SEG_SEGCLASS(SLICES_SEG029,SLICES_CODE)
+#define sdoutl_05 SEG_SEGCLASS(SLICES_SEG029,SLICES_CODE)
+#define viewshe2_04 SEG_SEGCLASS(SLICES_SEG030,SLICES_CODE)
+#define viewshe2_05 SEG_SEGCLASS(SLICES_SEG030,SLICES_CODE)
+#define sdwindow_16 SEG_SEGCLASS(SLICES_SEG030,SLICES_CODE)
+#define outlnvsh_13 SEG_SEGCLASS(SLICES_SEG030,SLICES_CODE)
+#define viewshe2_0e SEG_SEGCLASS(SLICES_SEG031,SLICES_CODE)
+#define fuzoom_04 SEG_SEGCLASS(SLICES_SEG031,SLICES_CODE)
+#define fuzoom_05 SEG_SEGCLASS(SLICES_SEG031,SLICES_CODE)
+#define outlnvsh_16 SEG_SEGCLASS(SLICES_SEG031,SLICES_CODE)
+#define fuzoom_01 SEG_SEGCLASS(SLICES_SEG032,SLICES_CODE)
+#define fuzoom_02 SEG_SEGCLASS(SLICES_SEG032,SLICES_CODE)
+#define fuzoom_03 SEG_SEGCLASS(SLICES_SEG032,SLICES_CODE)
+#define fuzoom_07 SEG_SEGCLASS(SLICES_SEG032,SLICES_CODE)
+#define fuzoom_08 SEG_SEGCLASS(SLICES_SEG032,SLICES_CODE)
+#define fuolbull_02 SEG_SEGCLASS(SLICES_SEG032,SLICES_CODE)
+#define fuolbull_04 SEG_SEGCLASS(SLICES_SEG032,SLICES_CODE)
+#define newfoil_08 SEG_SEGCLASS(SLICES_SEG032,SLICES_CODE)
+#define app6_09 SEG_SEGCLASS(SLICES_SEG032,SLICES_CODE)
+#define app6_01 SEG_SEGCLASS(SLICES_SEG032,SLICES_CODE)
+#define docdlg_04 SEG_SEGCLASS(SLICES_SEG033,SLICES_CODE)
+#define docdlg_05 SEG_SEGCLASS(SLICES_SEG033,SLICES_CODE)
+#define drviews1_0d SEG_SEGCLASS(SLICES_SEG033,SLICES_CODE)
+#define fuconarc_01 SEG_SEGCLASS(SLICES_SEG033,SLICES_CODE)
+#define fuconarc_02 SEG_SEGCLASS(SLICES_SEG034,SLICES_CODE)
+#define fuconarc_04 SEG_SEGCLASS(SLICES_SEG034,SLICES_CODE)
+#define fuconarc_05 SEG_SEGCLASS(SLICES_SEG034,SLICES_CODE)
+#define fuconarc_07 SEG_SEGCLASS(SLICES_SEG034,SLICES_CODE)
+#define fuconarc_08 SEG_SEGCLASS(SLICES_SEG034,SLICES_CODE)
+#define fuedibez_01 SEG_SEGCLASS(SLICES_SEG034,SLICES_CODE)
+#define fuedibez_02 SEG_SEGCLASS(SLICES_SEG034,SLICES_CODE)
+#define fuedibez_08 SEG_SEGCLASS(SLICES_SEG035,SLICES_CODE)
+#define fupoor_0c SEG_SEGCLASS(SLICES_SEG035,SLICES_CODE)
+#define fudspord_01 SEG_SEGCLASS(SLICES_SEG035,SLICES_CODE)
+#define fudspord_02 SEG_SEGCLASS(SLICES_SEG035,SLICES_CODE)
+#define fudspord_03 SEG_SEGCLASS(SLICES_SEG035,SLICES_CODE)
+#define fudspord_04 SEG_SEGCLASS(SLICES_SEG035,SLICES_CODE)
+#define fudspord_05 SEG_SEGCLASS(SLICES_SEG035,SLICES_CODE)
+#define fudspord_07 SEG_SEGCLASS(SLICES_SEG035,SLICES_CODE)
+#define fudspord_08 SEG_SEGCLASS(SLICES_SEG035,SLICES_CODE)
+#define futempl_01 SEG_SEGCLASS(SLICES_SEG035,SLICES_CODE)
+#define drawview_08 SEG_SEGCLASS(SLICES_SEG035,SLICES_CODE)
+#define sdview_12 SEG_SEGCLASS(SLICES_SEG035,SLICES_CODE)
+#define tabtempl_01 SEG_SEGCLASS(SLICES_SEG035,SLICES_CODE)
+#define tabtempl_02 SEG_SEGCLASS(SLICES_SEG035,SLICES_CODE)
+#define tabtempl_03 SEG_SEGCLASS(SLICES_SEG035,SLICES_CODE)
+#define slidvish_01 SEG_SEGCLASS(SLICES_SEG036,SLICES_CODE)
+#define slidvish_03 SEG_SEGCLASS(SLICES_SEG036,SLICES_CODE)
+#define slidvish_0c SEG_SEGCLASS(SLICES_SEG036,SLICES_CODE)
+#define fuslid_01 SEG_SEGCLASS(SLICES_SEG036,SLICES_CODE)
+#define slidvish_18 SEG_SEGCLASS(SLICES_SEG036,SLICES_CODE)
+#define slidview_05 SEG_SEGCLASS(SLICES_SEG036,SLICES_CODE)
+#define slidview_12 SEG_SEGCLASS(SLICES_SEG036,SLICES_CODE)
+#define slidview_06 SEG_SEGCLASS(SLICES_SEG036,SLICES_CODE)
+#define slidview_0a SEG_SEGCLASS(SLICES_SEG036,SLICES_CODE)
+#define slidview_11 SEG_SEGCLASS(SLICES_SEG036,SLICES_CODE)
+#define slidview_01 SEG_SEGCLASS(SLICES_SEG036,SLICES_CODE)
+#define slidview_09 SEG_SEGCLASS(SLICES_SEG036,SLICES_CODE)
+#define slidview_04 SEG_SEGCLASS(SLICES_SEG036,SLICES_CODE)
+#define slidview_0b SEG_SEGCLASS(SLICES_SEG036,SLICES_CODE)
+#define slidvish_1c SEG_SEGCLASS(SLICES_SEG036,SLICES_CODE)
+#define fuslsel_01 SEG_SEGCLASS(SLICES_SEG036,SLICES_CODE)
+#define fuslsel_08 SEG_SEGCLASS(SLICES_SEG036,SLICES_CODE)
+#define fuslid_06 SEG_SEGCLASS(SLICES_SEG036,SLICES_CODE)
+#define drviews4_06 SEG_SEGCLASS(SLICES_SEG037,SLICES_CODE)
+#define sdruler_05 SEG_SEGCLASS(SLICES_SEG037,SLICES_CODE)
+#define viewshe2_1e SEG_SEGCLASS(SLICES_SEG037,SLICES_CODE)
+#define fuslshow_13 SEG_SEGCLASS(SLICES_SEG037,SLICES_CODE)
+#define fuinsfil_01 SEG_SEGCLASS(SLICES_SEG037,SLICES_CODE)
+#define fuinsfil_07 SEG_SEGCLASS(SLICES_SEG037,SLICES_CODE)
+#define fuinsfil_09 SEG_SEGCLASS(SLICES_SEG037,SLICES_CODE)
+#define fuinsfil_02 SEG_SEGCLASS(SLICES_SEG038,SLICES_CODE)
+#define fuinsfil_04 SEG_SEGCLASS(SLICES_SEG038,SLICES_CODE)
+#define fuprtmpl_01 SEG_SEGCLASS(SLICES_SEG038,SLICES_CODE)
+#define prlayout_01 SEG_SEGCLASS(SLICES_SEG038,SLICES_CODE)
+#define prlayout_03 SEG_SEGCLASS(SLICES_SEG038,SLICES_CODE)
+#define prlayout_05 SEG_SEGCLASS(SLICES_SEG038,SLICES_CODE)
+#define prlayout_02 SEG_SEGCLASS(SLICES_SEG038,SLICES_CODE)
+#define prlayout_04 SEG_SEGCLASS(SLICES_SEG038,SLICES_CODE)
+#define prltempl_03 SEG_SEGCLASS(SLICES_SEG038,SLICES_CODE)
+#define prltempl_01 SEG_SEGCLASS(SLICES_SEG038,SLICES_CODE)
+#define prltempl_02 SEG_SEGCLASS(SLICES_SEG038,SLICES_CODE)
+#define fuprtmpl_02 SEG_SEGCLASS(SLICES_SEG039,SLICES_CODE)
+#define docshel4_19 SEG_SEGCLASS(SLICES_SEG039,SLICES_CODE)
+#define sdobjpal_08 SEG_SEGCLASS(SLICES_SEG039,SLICES_CODE)
+#define sdobjpal_09 SEG_SEGCLASS(SLICES_SEG040,SLICES_CODE)
+#define sdobjpal_18 SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE)
+#define drviews1_05 SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE)
+#define drviews1_0c SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE)
+#define fuedibez_06 SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE)
+#define unmodpg_01 SEG_SEGCLASS(SLICES_SEG041,SLICES_CODE)
+#define unmodpg_06 SEG_SEGCLASS(SLICES_SEG042,SLICES_CODE)
+#define drviews5_02 SEG_SEGCLASS(SLICES_SEG042,SLICES_CODE)
+#define drviews5_0c SEG_SEGCLASS(SLICES_SEG042,SLICES_CODE)
+#define layertab_04 SEG_SEGCLASS(SLICES_SEG043,SLICES_CODE)
+#define layertab_08 SEG_SEGCLASS(SLICES_SEG043,SLICES_CODE)
+#define sdruler_07 SEG_SEGCLASS(SLICES_SEG043,SLICES_CODE)
+#define futxtatt_01 SEG_SEGCLASS(SLICES_SEG043,SLICES_CODE)
+#define fusnapln_01 SEG_SEGCLASS(SLICES_SEG043,SLICES_CODE)
+#define dlgsnap_01 SEG_SEGCLASS(SLICES_SEG043,SLICES_CODE)
+#define dlgsnap_03 SEG_SEGCLASS(SLICES_SEG043,SLICES_CODE)
+#define inspage_05 SEG_SEGCLASS(SLICES_SEG044,SLICES_CODE)
+#define inspage_06 SEG_SEGCLASS(SLICES_SEG044,SLICES_CODE)
+#define sdpage_09 SEG_SEGCLASS(SLICES_SEG045,SLICES_CODE)
+#define app_0b SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
+#define app_0c SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
+#define docshell_03 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
+#define drviewsh_02 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
+#define slidvish_04 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
+#define slidvish_05 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
+#define slidvish_06 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
+#define slidvish_07 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
+#define slidvish_08 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
+#define slidvish_09 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
+#define slidvish_0a SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
+#define slidvish_0b SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
+#define slidvish_0d SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
+#define slidvish_0e SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
+#define slidvish_0f SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
+#define slidvish_10 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
+#define slidvish_11 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
+#define slidvish_12 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
+#define slidvish_13 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
+#define slidvish_14 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
+#define slidvish_15 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
+#define slidvish_16 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
+#define slidvish_17 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
+#define slidvish_19 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
+#define slidvish_1a SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
+#define slidvish_1b SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
+#define slidvish_1d SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
+#define slidvish_1e SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
+#define slidvish_1f SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
+#define outlnvsh_04 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
+#define outlnvsh_07 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
+#define outlnvsh_0c SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
+#define outlnvsh_12 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
+#define outlnvsh_17 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
+#define outlnvsh_1b SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
+#define outlnvsh_1f SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
+#define outlnvsh_20 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
+#define sdobjfac_02 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
+#define drawdoc2_01 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
+#define drawdoc2_02 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
+#define drawdoc2_08 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
+#define drawdoc2_0a SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
+#define sdattr_09 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
+#define sdattr_0a SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
+#define sdattr_0b SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
+#define sdattr_0c SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
+#define sdattr_0d SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
+#define sdattr_0e SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
+#define sdattr_0f SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
+#define sdattr_10 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
+#define sdattr_11 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
+#define sdattr_12 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
+#define sdattr_13 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
+#define sdattr_14 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
+#define sdattr_15 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
+#define sdattr_16 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
+#define anminfo_01 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
+#define anminfo_02 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
+#define anminfo_03 SEG_SEGCLASS(UNUSED_SEG000,UNUSED_CODE)
+#define anminfo_04 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
+#define anminfo_05 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
+#define anminfo_06 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
+#define anminfo_07 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
+#define anminfo_08 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
+#define anminfo_09 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
+#define app3_03 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
+#define app4_03 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
+#define app1_01 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
+#define docshel3_02 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
+#define drviews3_05 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
+#define drviews3_07 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
+#define drviews3_09 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
+#define drviews9_01 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
+#define drviews9_02 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
+#define drviews9_03 SEG_SEGCLASS(UNUSED_SEG001,UNUSED_CODE)
+#define drviews9_04 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
+#define drviews4_03 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
+#define drviews4_04 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
+#define drviews6_01 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
+#define drviews6_02 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
+#define drviews6_05 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
+#define drviews6_06 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
+#define drviews7_04 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
+#define drviews7_05 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
+#define drviews7_06 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
+#define drviewsa_04 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
+#define drviewsa_08 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
+#define drviewsa_09 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
+#define fuslsel_02 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
+#define fuslsel_03 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
+#define fuslsel_04 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
+#define fuslsel_05 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
+#define fuslsel_06 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
+#define fuslsel_07 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
+#define fuslsel_09 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
+#define fuslsel_0a SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
+#define fuslsel_0c SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
+#define fuslsel_0d SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
+#define fuslsel_0e SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
+#define fuslsel_0f SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
+#define fuslsel_10 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
+#define fuslsel_11 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
+#define fuslsel_12 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
+#define viewshe2_02 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
+#define viewshe2_03 SEG_SEGCLASS(UNUSED_SEG002,UNUSED_CODE)
+#define viewshe2_06 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE)
+#define viewshe2_0f SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE)
+#define viewshe2_14 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE)
+#define viewshe2_17 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE)
+#define viewshe2_18 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE)
+#define viewshe2_19 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE)
+#define viewshe2_1a SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE)
+#define slidview_02 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE)
+#define slidview_03 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE)
+#define slidview_07 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE)
+#define slidview_08 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE)
+#define slidview_0c SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE)
+#define slidview_0d SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE)
+#define slidview_0e SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE)
+#define slidview_0f SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE)
+#define slidview_10 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE)
+#define fuslhide_01 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE)
+#define fuslhide_02 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE)
+#define fuslprms_01 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE)
+#define fuslprms_02 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE)
+#define fuslprms_03 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE)
+#define fuslprms_04 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE)
+#define fuslshow_05 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE)
+#define fuslshow_06 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE)
+#define fuslshow_15 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE)
+#define fuslshow_16 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE)
+#define viewshel_03 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE)
+#define viewshel_0e SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE)
+#define viewshel_11 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE)
+#define viewshel_14 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE)
+#define fuzoom_06 SEG_SEGCLASS(UNUSED_SEG003,UNUSED_CODE)
+#define fuscale_01 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
+#define fuscale_02 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
+#define fuscale_03 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
+#define fuscale_04 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
+#define fuslshw3_03 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
+#define fuslshw3_04 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
+#define fuslshw3_05 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
+#define fuslshw3_06 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
+#define fuslshw3_07 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
+#define fuslshw3_0a SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
+#define fuslshw3_0d SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
+#define fuslshw3_0e SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
+#define fuslshw3_0f SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
+#define fuslshw3_10 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
+#define fuslshw3_11 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
+#define fuslshw3_13 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
+#define fuoltext_0a SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
+#define outlview_04 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
+#define outlview_05 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
+#define outlview_06 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
+#define outlview_17 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
+#define futhes_01 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
+#define futhes_02 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
+#define fuinsfil_03 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
+#define fuinsfil_05 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
+#define fuinsfil_06 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
+#define fuinsfil_08 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
+#define fuprobjs_01 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
+#define fuprobjs_02 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
+#define fuolbull_03 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
+#define docshel4_12 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
+#define docshel4_1f SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
+#define app7_01 SEG_SEGCLASS(UNUSED_SEG004,UNUSED_CODE)
+#define dlgass_01 SEG_SEGCLASS(UNUSED_SEG005,UNUSED_CODE)
+#define dlgass_02 SEG_SEGCLASS(UNUSED_SEG005,UNUSED_CODE)
+#define dlgass_03 SEG_SEGCLASS(UNUSED_SEG005,UNUSED_CODE)
+#define dlgass_04 SEG_SEGCLASS(UNUSED_SEG005,UNUSED_CODE)
+#define dlgass_05 SEG_SEGCLASS(UNUSED_SEG005,UNUSED_CODE)
+#define dlgass_06 SEG_SEGCLASS(UNUSED_SEG005,UNUSED_CODE)
+#define dlgass_07 SEG_SEGCLASS(UNUSED_SEG005,UNUSED_CODE)
+#define dlgass_08 SEG_SEGCLASS(UNUSED_SEG005,UNUSED_CODE)
+#define dlgass_09 SEG_SEGCLASS(UNUSED_SEG005,UNUSED_CODE)
+#define dlgass_0a SEG_SEGCLASS(UNUSED_SEG005,UNUSED_CODE)
+#define dlgass_0b SEG_SEGCLASS(UNUSED_SEG005,UNUSED_CODE)
+#define dlgass_0c SEG_SEGCLASS(UNUSED_SEG005,UNUSED_CODE)
+#define dlgass_0d SEG_SEGCLASS(UNUSED_SEG005,UNUSED_CODE)
+#define dlgass_0e SEG_SEGCLASS(UNUSED_SEG005,UNUSED_CODE)
+#define dlgass_0f SEG_SEGCLASS(UNUSED_SEG005,UNUSED_CODE)
+#define dlgass_10 SEG_SEGCLASS(UNUSED_SEG005,UNUSED_CODE)
+#define dlgass_11 SEG_SEGCLASS(UNUSED_SEG005,UNUSED_CODE)
+#define dlgass_12 SEG_SEGCLASS(UNUSED_SEG005,UNUSED_CODE)
+#define dlgass_13 SEG_SEGCLASS(UNUSED_SEG005,UNUSED_CODE)
+#define splcfg_02 SEG_SEGCLASS(UNUSED_SEG005,UNUSED_CODE)
+#define splcfg_03 SEG_SEGCLASS(UNUSED_SEG005,UNUSED_CODE)
+#define optsitem_05 SEG_SEGCLASS(UNUSED_SEG005,UNUSED_CODE)
+#define optsitem_08 SEG_SEGCLASS(UNUSED_SEG005,UNUSED_CODE)
+#define optsitem_09 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
+#define optsitem_0a SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
+#define optsitem_0b SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
+#define optsitem_0c SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
+#define optsitem_0d SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
+#define optsitem_0e SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
+#define optsitem_0f SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
+#define optsitem_10 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
+#define optsitem_11 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
+#define optsitem_12 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
+#define optsitem_13 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
+#define optsitem_15 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
+#define optsitem_18 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
+#define optsitem_19 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
+#define animobjs_01 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
+#define animobjs_03 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
+#define animobjs_04 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
+#define animobjs_05 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
+#define animobjs_06 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
+#define animobjs_07 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
+#define animobjs_08 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
+#define animobjs_0a SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
+#define animobjs_0b SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
+#define animobjs_0c SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
+#define animobjs_0d SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
+#define animobjs_0e SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
+#define animobjs_0f SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
+#define animobjs_10 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
+#define animobjs_11 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
+#define animobjs_12 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
+#define animobjs_13 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
+#define animobjs_14 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
+#define animobjs_15 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
+#define animobjs_16 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
+#define animobjs_17 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
+#define animobjs_18 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
+#define animobjs_19 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
+#define animobjs_1a SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
+#define diactrl_01 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
+#define diactrl_02 SEG_SEGCLASS(UNUSED_SEG006,UNUSED_CODE)
+#define diactrl_03 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
+#define diactrl_04 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
+#define diactrl_05 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
+#define diactrl_06 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
+#define diactrl_07 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
+#define diactrl_08 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
+#define diactrl_09 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
+#define diactrl_0a SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
+#define diactrl_0b SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
+#define diactrl_0c SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
+#define diactrl_0d SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
+#define diactrl_0e SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
+#define diactrl_0f SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
+#define diactrl_10 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
+#define diactrl_11 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
+#define diactrl_12 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
+#define diactrl_13 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
+#define diactrl_14 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
+#define diactrl_15 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
+#define diactrl_16 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
+#define diactrl_17 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
+#define diactrl_18 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
+#define diactrl_19 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
+#define diactrl_1a SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
+#define diactrl_1b SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
+#define diactrl_1c SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
+#define diactrl_1d SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
+#define diactrl_1e SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
+#define diactrl_1f SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
+#define diactrl_20 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
+#define diactrl_21 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
+#define sdobjpal_05 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
+#define sdobjpal_07 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
+#define sdobjpal_0a SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
+#define sdobjpal_15 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
+#define sdobjpal_16 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
+#define sdobjpal_20 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
+#define sdview_05 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
+#define sdview_0d SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
+#define sdview_15 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
+#define sdview_16 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
+#define sdview_17 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
+#define fuexhtml_01 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
+#define fuexhtml_02 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
+#define fuexhtml_03 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
+#define fuexhtml_04 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
+#define sdundogr_01 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
+#define sdundogr_02 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
+#define sdundogr_03 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
+#define sdundogr_04 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
+#define drviews1_0e SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
+#define drviews1_17 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
+#define drviews1_18 SEG_SEGCLASS(UNUSED_SEG007,UNUSED_CODE)
+#define drviews1_1a SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
+#define drviews1_1b SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
+#define undopage_01 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
+#define undopage_02 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
+#define undopage_03 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
+#define undopage_04 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
+#define undopage_05 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
+#define undopage_06 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
+#define undopage_07 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
+#define undopage_08 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
+#define undopage_09 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
+#define undopage_0a SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
+#define undopage_0b SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
+#define undopage_0c SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
+#define fuconarc_06 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
+#define fuedibez_09 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
+#define fuconctl_01 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
+#define fuconctl_02 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
+#define fuconctl_03 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
+#define fuconctl_04 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
+#define fuconctl_05 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
+#define fuconctl_06 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
+#define fuconctl_07 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
+#define fuconctl_08 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
+#define fuedipo_01 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
+#define fuedipo_02 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
+#define fuedipo_03 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
+#define fuedipo_04 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
+#define fuedipo_05 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
+#define fuedipo_06 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
+#define fuedipo_07 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
+#define fuedipo_08 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
+#define drviews8_02 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
+#define unmodpg_02 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
+#define unmodpg_03 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
+#define unmodpg_04 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
+#define unmodpg_05 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
+#define fuslid_02 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
+#define fuslid_03 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
+#define fuslid_04 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
+#define fuslid_05 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
+#define fuslid_07 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
+#define fader_05 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
+#define fader_10 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
+#define fader_12 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
+#define fader_14 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
+#define fader_17 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
+#define fader_18 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
+#define fader_19 SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
+#define fader_1c SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
+#define fader_1d SEG_SEGCLASS(UNUSED_SEG008,UNUSED_CODE)
+#define fader_1e SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE)
+#define fader_1f SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE)
+#define fader_20 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE)
+#define fader_23 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE)
+#define fader_24 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE)
+#define fader_25 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE)
+#define fader_26 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE)
+#define fader_27 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE)
+#define fader_28 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE)
+#define fader_29 SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE)
+#define fader_2a SEG_SEGCLASS(UNUSED_SEG009,UNUSED_CODE)
+#define fader_2b SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
+#define fader_2c SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
+#define showview_05 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
+#define showview_07 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
+#define showview_08 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
+#define fupoor_06 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
+#define fupoor_0a SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
+#define fupoor_11 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
+#define sdwindow_03 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
+#define bmcache_01 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
+#define bmcache_02 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
+#define bmcache_03 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
+#define diadlg_01 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
+#define diadlg_02 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
+#define diadlg_03 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
+#define diadlg_04 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
+#define diadlg_05 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
+#define diadlg_06 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
+#define diadlg_07 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
+#define diadlg_08 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
+#define diadlg_09 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
+#define diadlg_0a SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
+#define diadlg_0b SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
+#define diadlg_0c SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
+#define unslprms_01 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
+#define unslprms_02 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
+#define unslprms_03 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
+#define unslprms_04 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
+#define mover_03 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
+#define mover_05 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
+#define mover_06 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
+#define mover_07 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
+#define mover_08 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
+#define mover_09 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
+#define fuslshw2_03 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
+#define fuslshw2_04 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
+#define fuslshw2_05 SEG_SEGCLASS(UNUSED_SEG010,UNUSED_CODE)
+#define fuslshw2_06 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
+#define fuslshw2_08 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
+#define fuslshw2_09 SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
+#define fuslshw2_0a SEG_SEGCLASS(UNUSED_SEG011,UNUSED_CODE)
+#define fuslshw2_0d SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
+#define fuslshw2_1a SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
+#define inspagob_01 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
+#define inspagob_02 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
+#define inspagob_03 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
+#define inspagob_04 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
+#define inspagob_05 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
+#define unchss_02 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
+#define unchss_03 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
+#define unchss_04 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
+#define unchss_05 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
+#define unchss_06 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
+#define prlayout_06 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
+#define docshel2_01 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
+#define docshel2_06 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
+#define docshel2_07 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
+#define docshel2_08 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
+#define docshel2_09 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
+#define docshel2_0a SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
+#define docshel2_0b SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
+#define docshel2_0c SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
+#define docshel2_0d SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
+#define docshel2_0e SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
+#define docshel2_0f SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
+#define docshel2_10 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
+#define docshel2_11 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
+#define optdlg_01 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
+#define optdlg_02 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
+#define optdlg_04 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
+#define assclass_01 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
+#define assclass_02 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
+#define assclass_03 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
+#define assclass_04 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
+#define assclass_05 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
+#define assclass_06 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
+#define assclass_07 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
+#define assclass_08 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
+#define assclass_09 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
+#define drtxtob_05 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
+#define docshel5_01 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
+#define docshel5_02 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
+#define docshel5_03 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
+#define sdclient_01 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
+#define sdclient_02 SEG_SEGCLASS(UNUSED_SEG012,UNUSED_CODE)
+#define sdclient_03 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
+#define sdclient_04 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
+#define sdclient_05 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
+#define sdview2_02 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
+#define sdview2_04 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
+#define sdview2_08 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
+#define sdview2_09 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
+#define tabcontr_05 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
+#define tabcontr_06 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
+#define tabcontr_07 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
+#define tabcontr_09 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
+#define tabcontr_0a SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
+#define tabcontr_0b SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
+#define drviews5_03 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
+#define drviews5_09 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
+#define drviews5_0a SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
+#define drviews5_0b SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
+#define drviews5_0d SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
+#define layertab_03 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
+#define layertab_05 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
+#define layertab_06 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
+#define layertab_07 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
+#define layertab_09 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
+#define layertab_0a SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
+#define layertab_0b SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
+#define dlgctrls_01 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
+#define sdoutl_06 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
+#define sdoutl_08 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
+#define pubdlg_01 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
+#define pubdlg_02 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
+#define sdruler_09 SEG_SEGCLASS(UNUSED_SEG013,UNUSED_CODE)
+#define prntopts_01 SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE)
+#define prntopts_02 SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE)
+#define prntopts_03 SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE)
+#define prntopts_04 SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE)
+#define prntopts_05 SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE)
+#define prntopts_07 SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE)
+#define fudraw_07 SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE)
+#define fudraw_08 SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE)
+#define fulink_01 SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE)
+#define futransf_01 SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE)
+#define futransf_02 SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE)
+#define futransf_03 SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE)
+#define fuoaprms_01 SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE)
+#define fuoaprms_02 SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE)
+#define fuoaprms_03 SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE)
+#define fuoaprms_04 SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE)
+#define fuinsert_05 SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE)
+#define fuinsert_06 SEG_SEGCLASS(UNUSED_SEG014,UNUSED_CODE)
+#define fuinsert_09 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
+#define fuinsert_0a SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
+#define fuinsert_0b SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
+#define fulinend_01 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
+#define fuconpol_03 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
+#define fuconpol_06 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
+#define fucopy_03 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
+#define fuparagr_01 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
+#define sdtreelb_02 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
+#define sdtreelb_03 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
+#define sdtreelb_04 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
+#define sdtreelb_05 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
+#define sdtreelb_06 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
+#define sdtreelb_07 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
+#define sdtreelb_08 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
+#define enumdlg_08 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
+#define clview_01 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
+#define clview_02 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
+#define clview_03 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
+#define clview_04 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
+#define clview_05 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
+#define dragserv_01 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
+#define dragserv_07 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
+#define tpoption_01 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
+#define tpoption_02 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
+#define tpoption_03 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
+#define tpoption_04 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
+#define tpoption_05 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
+#define tpoption_07 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
+#define tpoption_08 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
+#define tpoption_09 SEG_SEGCLASS(UNUSED_SEG015,UNUSED_CODE)
+#define tpoption_0a SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
+#define tpoption_0b SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
+#define tpoption_0c SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
+#define tpoption_0d SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
+#define tpoption_0e SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
+#define tpoption_0f SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
+#define tpoption_10 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
+#define tpscale_01 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
+#define tpscale_02 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
+#define tpscale_03 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
+#define tpscale_04 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
+#define tpscale_05 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
+#define tpscale_06 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
+#define tpscale_07 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
+#define tpscale_08 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
+#define tpscale_0b SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
+#define tpscale_0c SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
+#define tpscale_0d SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
+#define tpeffect_01 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
+#define tpeffect_02 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
+#define tpeffect_03 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
+#define tpeffect_04 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
+#define tpeffect_05 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
+#define tpeffect_06 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
+#define tpeffect_07 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
+#define tpeffect_08 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
+#define tpeffect_09 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
+#define tpeffect_0a SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
+#define tpeffect_0b SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
+#define tpeffect_0c SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
+#define tpeffect_0d SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
+#define tpeffect_0e SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
+#define tpeffect_0f SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
+#define tpeffect_10 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
+#define tpeffect_11 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
+#define tpeffect_12 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
+#define tpeffect_13 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
+#define tpeffect_14 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
+#define tpeffect_15 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
+#define tpeffect_16 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
+#define tpeffect_17 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
+#define tpeffect_18 SEG_SEGCLASS(UNUSED_SEG016,UNUSED_CODE)
+#define tpeffect_19 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
+#define tpeffect_1a SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
+#define tpeffect_1b SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
+#define tpeffect_1c SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
+#define tpeffect_1d SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
+#define tpeffect_1e SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
+#define tpeffect_1f SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
+#define tpeffect_20 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
+#define tpeffect_21 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
+#define tpeffect_22 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
+#define tpeffect_23 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
+#define tpeffect_24 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
+#define tpeffect_25 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
+#define tpeffect_26 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
+#define tpeffect_27 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
+#define tpeffect_28 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
+#define tpeffect_29 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
+#define tpeffect_2a SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
+#define tpeffect_2b SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
+#define tpeffect_2c SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
+#define tpeffect_2d SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
+#define tpeffect_2e SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
+#define unoaprms_01 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
+#define unoaprms_02 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
+#define unoaprms_03 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
+#define unoaprms_04 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
+#define unprlout_02 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
+#define unprlout_03 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
+#define unprlout_04 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
+#define unprlout_05 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
+#define unprlout_06 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
+#define unmovss_02 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
+#define unmovss_03 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
+#define unmovss_04 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
+#define unmovss_05 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
+#define unmovss_06 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
+#define tabtempl_04 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
+#define copydlg_05 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
+#define paragr_01 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
+#define inspage_07 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
+#define dlgsnap_02 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
+#define dlgsnap_04 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
+#define dlgsnap_05 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
+#define sdpage_06 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
+#define sdpage_08 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
+#define sdpage_0b SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
+#define sdpage_0c SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
+#define sdpage_14 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
+#define sdpage_15 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
+#define sdpage_16 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
+#define sdpage_17 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
+#define sdpage_1c SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
+#define sdpage_1e SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
+#define drawdoc3_01 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
+#define drawdoc3_02 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
+#define drawdoc3_03 SEG_SEGCLASS(UNUSED_SEG017,UNUSED_CODE)
+#define drawdoc3_04 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
+#define drawdoc3_05 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
+#define drawdoc3_07 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
+#define drawitem_01 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
+#define drawitem_04 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
+#define drawitem_05 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
+#define drawitem_07 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
+#define drawitem_0a SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
+#define drawitem_0b SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
+#define drawitem_0d SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
+#define drawitem_10 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
+#define drawitem_11 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
+#define drawitem_13 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
+#define drawitem_16 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
+#define drawitem_17 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
+#define drawitem_19 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
+#define drawitem_1c SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
+#define drawitem_1d SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
+#define drawitem_1f SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
+#define drawitem_22 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
+#define drawitem_23 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
+#define stlpool_04 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
+#define stlpool_0b SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
+#define pglink_01 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
+#define pglink_02 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
+#define pglink_03 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
+#define pglink_04 SEG_SEGCLASS(UNUSED_SEG018,UNUSED_CODE)
diff --git a/sd/inc/stlpool.hxx b/sd/inc/stlpool.hxx
new file mode 100644
index 000000000000..fb6e0f62f27c
--- /dev/null
+++ b/sd/inc/stlpool.hxx
@@ -0,0 +1,120 @@
+/*************************************************************************
+ *
+ * $RCSfile: stlpool.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:28 $
+ *
+ * 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 _SD_STLPOOL_HXX
+#define _SD_STLPOOL_HXX
+
+
+#ifndef _SFXSTYLE_HXX //autogen
+#include
+#endif
+
+class SdStyleSheet;
+class SdDrawDocument;
+
+
+class SdStyleSheetPool : public SfxStyleSheetPool
+{
+private:
+ SfxStyleSheetBase* pActualStyleSheet;
+ SdDrawDocument* pDoc;
+
+protected:
+ virtual SfxStyleSheetBase* Create(const String& rName,
+ SfxStyleFamily eFamily,
+ USHORT nMask);
+ virtual SfxStyleSheetBase* Create(const SdStyleSheet& rStyle);
+
+public:
+ SdStyleSheetPool(SfxItemPool& rPool, SdDrawDocument* pDocument);
+ virtual ~SdStyleSheetPool();
+
+ void SetActualStyleSheet(SfxStyleSheetBase* pActStyleSheet)
+ { pActualStyleSheet = pActStyleSheet; }
+ SfxStyleSheetBase* GetActualStyleSheet() { return pActualStyleSheet; }
+
+ SfxStyleSheetBase* GetTitleSheet(const String& rLayoutName);
+ String GetLayoutName() const;
+
+ // Caller muss Liste loeschen
+ List* CreateOutlineSheetList(const String& rLayoutName);
+ void CreateLayoutStyleSheets(const String& rLayoutName);
+ void EraseLayoutStyleSheets(const String& rLayoutName);
+ List* CreateLayoutSheetNames(const String& rLayoutName) const;
+ List* CreateLayoutSheetList(const String& rLayoutName);
+ void CopyLayoutSheets(const String& rLayoutName,
+ SdStyleSheetPool& rSourcePool,
+ List* pCreatedSheets = NULL);
+ void CopyGraphicSheets(SdStyleSheetPool& rSourcePool);
+
+ void CreatePseudosIfNecessary();
+ void UpdateStdNames();
+ void AdjustLRSpaceItems();
+ void PutNumBulletItem( SfxStyleSheetBase* pSheet, Font& rBulletFont ) const;
+ Font GetBulletFont() const;
+
+ SdDrawDocument* GetDoc() const { return pDoc; }
+};
+
+#endif // _SD_STLPOOL_HXX
+
+
+
diff --git a/sd/inc/stlsheet.hxx b/sd/inc/stlsheet.hxx
new file mode 100644
index 000000000000..b4c598e79a63
--- /dev/null
+++ b/sd/inc/stlsheet.hxx
@@ -0,0 +1,103 @@
+/*************************************************************************
+ *
+ * $RCSfile: stlsheet.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:28 $
+ *
+ * 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 _SD_STLSHEET_HXX
+#define _SD_STLSHEET_HXX
+
+
+#ifndef _SFXSTYLE_HXX //autogen
+#include
+#endif
+class SdStyleSheet : public SfxStyleSheet
+{
+protected:
+ virtual void Load (SvStream& rIn, USHORT nVersion);
+ virtual void Store(SvStream& rOut);
+
+ virtual void SFX_NOTIFY(SfxBroadcaster& rBC, const TypeId& rBCType,
+ const SfxHint& rHint, const TypeId& rHintType);
+
+public:
+ TYPEINFO();
+ SdStyleSheet(const String& rName,
+ SfxStyleSheetBasePool& rPool,
+ SfxStyleFamily eFamily,
+ USHORT nMask);
+ virtual ~SdStyleSheet();
+
+ virtual BOOL SetParent (const String& rParentName);
+ virtual SfxItemSet& GetItemSet();
+ virtual BOOL IsUsed() const;
+ virtual BOOL HasFollowSupport() const { return FALSE; }
+ virtual BOOL HasParentSupport() const { return TRUE; }
+ List* CreateChildList() const;
+
+ void AdjustToFontHeight(SfxItemSet& rSet,
+ BOOL bOnlyMissingItems = TRUE);
+
+ SdStyleSheet* GetRealStyleSheet() const;
+ SdStyleSheet* GetPseudoStyleSheet() const;
+};
+
+#endif // _SD_STLSHEET_HXX
+
+
+
diff --git a/sd/inc/strmname.h b/sd/inc/strmname.h
new file mode 100644
index 000000000000..598c40665056
--- /dev/null
+++ b/sd/inc/strmname.h
@@ -0,0 +1,81 @@
+/*************************************************************************
+ *
+ * $RCSfile: strmname.h,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:28 $
+ *
+ * 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 _SD_STRMNAME_H
+#define _SD_STRMNAME_H
+
+// Alter Name des Dokument-Streams
+static const String pStarDrawDoc( RTL_CONSTASCII_USTRINGPARAM( "StarDrawDocument" ));
+
+// Name des Dokument-Streams
+static const String pStarDrawDoc3( RTL_CONSTASCII_USTRINGPARAM( "StarDrawDocument3" ));
+
+// Sonstige
+static const String pSfxStyleSheets( RTL_CONSTASCII_USTRINGPARAM( "SfxStyleSheets" ));
+static const String pVCItemPoolName( RTL_CONSTASCII_USTRINGPARAM( "VCPool" ));
+static const String pPreviewName( RTL_CONSTASCII_USTRINGPARAM( "StarDrawTemplatePreview" ));
+
+// PowerPoint-Filter
+static const String pFilterPowerPoint97( RTL_CONSTASCII_USTRINGPARAM( "MS PowerPoint 97" ));
+static const String pFilterPowerPoint97Template( RTL_CONSTASCII_USTRINGPARAM( "MS PowerPoint 97 Vorlage" ));
+
+#endif // _SD_STRMNAME_H
+
diff --git a/sd/prj/d.lst b/sd/prj/d.lst
new file mode 100644
index 000000000000..8a04bed2d779
--- /dev/null
+++ b/sd/prj/d.lst
@@ -0,0 +1,78 @@
+..\%__SRC%\inc\sdinter.h %_DEST%\ODK\inc%_EXT%\sdinter.h
+..\%__SRC%\lib\sdinter.lib %_DEST%\ODK\lib%_EXT%\sdinter.lib
+..\%__SRC%\misc\sdinter.c %_DEST%\ODK\src%_EXT%\sdinter.c
+..\%__SRC%\misc\*.map %_DEST%\bin%_EXT%\*.map
+touch: ..\%__SRC%\misc\sd.hid %_DEST%\bin%_EXT%\sd.hid
+..\inc\sd.lst %_DEST%\inc%_EXT%\sd.lst
+..\inc\sddll.hxx %_DEST%\inc%_EXT%\sddll.hxx
+..\%__SRC%\misc\sd.csv %_DEST%\inc%_EXT%\sd.csv
+..\%__SRC%\lib\sdi.lib %_DEST%\lib%_EXT%\sdi.lib
+..\%__SRC%\lib\sdlib.lib %_DEST%\lib%_EXT%\sdlib.lib
+..\%__SRC%\slb\lib*.* %_DEST%\lib%_EXT%\lib*.*
+..\%__SRC%\lib\lib*.* %_DEST%\lib%_EXT%\lib*.*
+..\%__SRC%\bin\sdraw3.exe %_DEST%\bin%_EXT%\sdraw3.exe
+..\%__SRC%\bin\sdraw3.sym %_DEST%\bin%_EXT%\sdraw3.sym
+..\%__SRC%\bin\sdslots.tlb %_DEST%\bin%_EXT%\sdslots.tlb
+..\%__SRC%\bin\sd%upd%*.dll %_DEST%\bin%_EXT%\sd%upd%*.dll
+..\%__SRC%\bin\sd%upd%*.res %_DEST%\bin%_EXT%\sd%upd%*.res
+..\%__SRC%\bin\emp%upd%*.* %_DEST%\bin%_EXT%\emp%upd%*.*
+..\%__SRC%\bin\sdslots.tlb %_DEST%\bin%_EXT%\sdslots.tlb
+..\%__SRC%\bin\sdgslots.tlb %_DEST%\bin%_EXT%\sdgslots.tlb
+..\%__SRC%\lib\sdl.lib %_DEST%\lib%_EXT%\sdl.lib
+..\%__SRC%\lib\libsdl.a %_DEST%\lib%_EXT%\libsdl.a
+..\%__SRC%\srs\core.srs %_DEST%\res%_EXT%\sdcore.srs
+
+dos: mkdir %_DEST%\pck%_EXT%
+..\res\webview\common.inc %_DEST%\pck%_EXT%\common.inc
+..\res\webview\common.pl %_DEST%\pck%_EXT%\common.pl
+..\res\webview\edit.asp %_DEST%\pck%_EXT%\edit.asp
+..\res\webview\edit.pl %_DEST%\pck%_EXT%\edit.pl
+..\res\webview\editpic.asp %_DEST%\pck%_EXT%\editpic.asp
+..\res\webview\editpic.pl %_DEST%\pck%_EXT%\editpic.pl
+..\res\webview\index.pl %_DEST%\pck%_EXT%\index.pl
+..\res\webview\poll.asp %_DEST%\pck%_EXT%\poll.asp
+..\res\webview\poll.pl %_DEST%\pck%_EXT%\poll.pl
+..\res\webview\savepic.asp %_DEST%\pck%_EXT%\savepic.asp
+..\res\webview\savepic.pl %_DEST%\pck%_EXT%\savepic.pl
+..\res\webview\show.asp %_DEST%\pck%_EXT%\show.asp
+..\res\webview\show.pl %_DEST%\pck%_EXT%\show.pl
+..\res\webview\webview.asp %_DEST%\pck%_EXT%\webcast.asp
+..\res\webview\webview.pl %_DEST%\pck%_EXT%\webcast.pl
+
+dos: mkdir %_DEST%\inc%_EXT%\sd
+hedabu: ..\inc\sddll.hxx %_DEST%\inc%_EXT%\sd\sddll.hxx
+hedabu: ..\inc\fadedef.h %_DEST%\inc%_EXT%\sd\fadedef.h
+hedabu: ..\inc\pres.hxx %_DEST%\inc%_EXT%\sd\pres.hxx
+hedabu: ..\inc\drawdoc.hxx %_DEST%\inc%_EXT%\sd\drawdoc.hxx
+hedabu: ..\inc\sdpage.hxx %_DEST%\inc%_EXT%\sd\sdpage.hxx
+hedabu: ..\inc\fadedef.hxx %_DEST%\inc%_EXT%\sd\fadedef.hxx
+hedabu: ..\inc\diadef.h %_DEST%\inc%_EXT%\sd\diadef.h
+hedabu: ..\inc\anmdef.hxx %_DEST%\inc%_EXT%\sd\anmdef.hxx
+hedabu: ..\inc\anminfo.hxx %_DEST%\inc%_EXT%\sd\anminfo.hxx
+hedabu: ..\inc\fadedef.h %_DEST%\inc%_EXT%\sd\fadedef.h
+hedabu: ..\inc\strmname.h %_DEST%\inc%_EXT%\sd\strmname.h
+hedabu: ..\inc\movedef.hxx %_DEST%\inc%_EXT%\sd\movedef.hxx
+hedabu: ..\inc\sdattr.hxx %_DEST%\inc%_EXT%\sd\sdattr.hxx
+hedabu: ..\inc\cusshow.hxx %_DEST%\inc%_EXT%\sd\cusshow.hxx
+hedabu: ..\inc\glob.hxx %_DEST%\inc%_EXT%\sd\glob.hxx
+hedabu: ..\inc\glob.hrc %_DEST%\inc%_EXT%\sd\glob.hrc
+hedabu: ..\inc\eetext.hxx %_DEST%\inc%_EXT%\sd\eetext.hxx
+hedabu: ..\inc\sdiocmpt.hxx %_DEST%\inc%_EXT%\sd\sdiocmpt.hxx
+hedabu: ..\inc\app.hrc %_DEST%\inc%_EXT%\sd\app.hrc
+hedabu: ..\inc\sdobjfac.hxx %_DEST%\inc%_EXT%\sd\sdobjfac.hxx
+
+..\xml\SdDocLinkTargets.xml %_DEST%\xml%_EXT%\SdDocLinkTargets.xml
+..\xml\SdDrawPage.xml %_DEST%\xml%_EXT%\SdDrawPage.xml
+..\xml\SdDrawPagesAccess.xml %_DEST%\xml%_EXT%\SdDrawPagesAccess.xml
+..\xml\SdGenericDrawPage.xml %_DEST%\xml%_EXT%\SdGenericDrawPage.xml
+..\xml\SdLayer.xml %_DEST%\xml%_EXT%\SdLayer.xml
+..\xml\SdLayerManager.xml %_DEST%\xml%_EXT%\SdLayerManager.xml
+..\xml\SdMasterPage.xml %_DEST%\xml%_EXT%\SdMasterPage.xml
+..\xml\SdMasterPagesAccess.xml %_DEST%\xml%_EXT%\SdMasterPagesAccess.xml
+..\xml\SdPageLinkTargets.xml %_DEST%\xml%_EXT%\SdPageLinkTargets.xml
+..\xml\SdXCustomPresentation.xml %_DEST%\xml%_EXT%\SdXCustomPresentation.xml
+..\xml\SdXCustomPresentationAccess.xml %_DEST%\xml%_EXT%\SdXCustomPresentationAccess.xml
+..\xml\SdXImpressDocument.xml %_DEST%\xml%_EXT%\SdXImpressDocument.xml
+..\xml\SdXImpressView.xml %_DEST%\xml%_EXT%\SdXImpressView.xml
+..\xml\SdXPresentation.xml %_DEST%\xml%_EXT%\SdXPresentation.xml
+..\xml\SdXShape.xml %_DEST%\xml%_EXT%\SdXShape.xml
diff --git a/sd/prj/make.bat b/sd/prj/make.bat
new file mode 100644
index 000000000000..7525d0a51632
--- /dev/null
+++ b/sd/prj/make.bat
@@ -0,0 +1,92 @@
+@echo off
+REM *****************************************************************
+REM * MAKE
+REM * (c) Copyright 1992-1994 STAR DIVISION
+REM * Beschreibung: Uebersetzt aktuelle Version
+REM * Aufruf: MAKE [Option1 .. OptionN]
+REM * Optionen: PRODUCT - Product-Version (FULL)
+REM * DEMO - Product-Version (DEMO)
+REM * DEPEND - Depend-Listen erzeugen
+REM * OPTIMIZE - Version mit Optimierung
+REM * DEBUG - Version mit Debuginformationen
+REM * PROFILE - Version fuer Profiling
+REM * DBGUITL - Version mit Assertions
+REM * ESO: PCH - Precompiled Header verwenden
+REM *****************************************************************
+
+IF "%1" == "" goto Next
+
+set STEMPFILE=%temp%\temp.mak
+echo. >%STEMPFILE%
+set MAKECMD=@%STEMPFILE%
+
+REM *** Parameter parsen ***
+:Loop
+
+IF "%1" == "" goto Next
+
+IF "%1" == "product" echo product=full >>%STEMPFILE%
+IF "%1" == "Product" echo product=full >>%STEMPFILE%
+IF "%1" == "PRODUCT" echo product=full >>%STEMPFILE%
+
+IF "%1" == "demo" echo product=demo >>%STEMPFILE%
+IF "%1" == "Demo" echo product=demo >>%STEMPFILE%
+IF "%1" == "DEMO" echo product=demo >>%STEMPFILE%
+
+IF "%1" == "depend" echo depend=true >>%STEMPFILE%
+IF "%1" == "Depend" echo depend=true >>%STEMPFILE%
+IF "%1" == "DEPEND" echo depend=true >>%STEMPFILE%
+
+IF "%1" == "optimize" echo optimize=true >>%STEMPFILE%
+IF "%1" == "Optimize" echo optimize=true >>%STEMPFILE%
+IF "%1" == "OPTIMIZE" echo optimize=true >>%STEMPFILE%
+
+IF "%1" == "debug" echo debug=true >>%STEMPFILE%
+IF "%1" == "Debug" echo debug=true >>%STEMPFILE%
+IF "%1" == "DEBUG" echo debug=true >>%STEMPFILE%
+
+IF "%1" == "profile" echo product=full profile=true >>%STEMPFILE%
+IF "%1" == "Profile" echo product=full profile=true >>%STEMPFILE%
+IF "%1" == "PROFILE" echo product=full profile=true >>%STEMPFILE%
+
+IF "%1" == "dbgutil" echo dbgutil=true >>%STEMPFILE%
+IF "%1" == "Dbgutil" echo dbgutil=true >>%STEMPFILE%
+IF "%1" == "DBGUTIL" echo dbgutil=true >>%STEMPFILE%
+
+IF "%1" == "seg" echo product=full seg=true >>%STEMPFILE%
+IF "%1" == "Seg" echo product=full seg=true >>%STEMPFILE%
+IF "%1" == "SEG" echo product=full seg=true >>%STEMPFILE%
+
+IF "%1" == "tcv" echo product=full tcv=-2000 >>%STEMPFILE%
+IF "%1" == "tcv" echo product=full tcv=-2000 >>%STEMPFILE%
+IF "%1" == "TCV" echo product=full tcv=-2000 >>%STEMPFILE%
+
+IF "%1" == "siz" echo product=full siz=true >>%STEMPFILE%
+IF "%1" == "Siz" echo product=full siz=true >>%STEMPFILE%
+IF "%1" == "SIZ" echo product=full siz=true >>%STEMPFILE%
+
+IF "%1" == "pch" echo prjpch=true >>%STEMPFILE%
+IF "%1" == "Pch" echo prjpch=true >>%STEMPFILE%
+IF "%1" == "PCH" echo prjpch=true >>%STEMPFILE%
+
+IF "%1" == "-i" echo -i >>%STEMPFILE%
+IF "%1" == "-I" echo -i >>%STEMPFILE%
+
+shift
+goto Loop
+
+:Next
+REM *** Kommando setzen ***
+SET STREECMD=nmake %MAKECMD%
+
+REM *** Kommando ausfuehren ***
+echo ******************************************************
+echo MAKE - (c) 1992-1994 STAR DIVISION
+call stree MAKE
+
+REM *** Aufraeumen ***
+IF NOT "%STEMPFILE%" == "" del %STEMPFILE%
+SET STREECMD=
+set STEMPFILE=
+set MAKECMD=
+echo on
diff --git a/sd/prj/postdlv.btm b/sd/prj/postdlv.btm
new file mode 100644
index 000000000000..3db49b3ad126
--- /dev/null
+++ b/sd/prj/postdlv.btm
@@ -0,0 +1,2 @@
+quit
+
diff --git a/sd/prj/stree.bat b/sd/prj/stree.bat
new file mode 100644
index 000000000000..3903ca0043fc
--- /dev/null
+++ b/sd/prj/stree.bat
@@ -0,0 +1,151 @@
+REM *****************************************************************
+REM * STREE
+REM * (c) Copyright 1992-1994 STAR DIVISION
+REM * Beschreibung: Arbeitet Source-Verzeichnis-Baum von TOOLS ab
+REM * Aufruf: STREE DIR
+REM * DIR: ALL - Alle Verzeichnisse
+REM * MAKE - Alle Verzeichnisse mit MAKEFILE
+REM * Umgebung: GUI - Systemversion
+REM * COM - Systemversion
+REM * GUIBASE - Abhaengiges Source-Verzeichnis
+REM * STREECMD - Auszufuehrendes Kommando (z.B. nmake)
+REM *****************************************************************
+
+REM *** Parameter parsen und Variablen ueberpruefen ***
+IF "%GUI%" == "" GOTO Error1
+IF "%COM%" == "" GOTO Error1
+IF "%GUIBASE%" == "" GOTO Error1
+
+IF "%1" == "" GOTO Error3
+IF "%STREECMD%" == "" GOTO Error3
+
+
+REM *** Kommando ausgeben ***
+echo Kommando: %STREECMD%
+
+REM *** In die Root wechseln
+cd ..
+
+
+REM *** Include - Verzeichnisse ***
+IF NOT "%1" == "ALL" goto NotAll
+cd inc
+echo ------------------------------------------------------
+cd
+%STREECMD%
+IF ERRORLEVEL 1 goto Error2
+cd ..
+
+cd res
+echo ------------------------------------------------------
+cd
+%STREECMD%
+IF ERRORLEVEL 1 goto Error2
+cd ..
+
+cd source\ui\inc
+echo ------------------------------------------------------
+cd
+%STREECMD%
+IF ERRORLEVEL 1 goto Error2
+cd ..\..\..
+
+REM *** Verzeichnisse mit Makefile ***
+:NotAll
+
+cd sdi
+echo ------------------------------------------------------
+cd
+%STREECMD%
+IF ERRORLEVEL 1 goto Error2
+cd ..
+
+REM stardiv/sd -> ONE
+
+cd source\ui
+cd app
+echo ------------------------------------------------------
+cd
+%STREECMD%
+IF ERRORLEVEL 1 goto Error2
+cd ..
+
+cd dlg
+echo ------------------------------------------------------
+cd
+%STREECMD%
+IF ERRORLEVEL 1 goto Error2
+cd ..
+
+cd docshell
+echo ------------------------------------------------------
+cd
+%STREECMD%
+IF ERRORLEVEL 1 goto Error2
+cd ..
+
+cd view
+echo ------------------------------------------------------
+cd
+%STREECMD%
+IF ERRORLEVEL 1 goto Error2
+cd ..
+
+cd func
+echo ------------------------------------------------------
+cd
+%STREECMD%
+IF ERRORLEVEL 1 goto Error2
+cd ..
+
+cd unoidl
+echo ------------------------------------------------------
+cd
+%STREECMD%
+IF ERRORLEVEL 1 goto Error2
+cd ..\..
+
+cd core
+echo ------------------------------------------------------
+cd
+%STREECMD%
+IF ERRORLEVEL 1 goto Error2
+cd ..
+
+cd filter
+echo ------------------------------------------------------
+cd
+%STREECMD%
+IF ERRORLEVEL 1 goto Error2
+cd ..
+
+echo ------------------------------------------------------
+cd
+%STREECMD%
+IF ERRORLEVEL 1 goto Error2
+cd ..
+
+echo ------------------------------------------------------
+cd util
+%STREECMD%
+IF ERRORLEVEL 1 goto Error2
+cd ..
+
+echo ------------------------------------------------------
+cd prj
+goto End
+
+REM *** Fehler ausgeben ***
+:Error1
+echo Error: Keine Systemversion oder nicht vollstaendig gesetzt !
+goto End
+:Error2
+echo Error: Fehler bei Ausfhrung eines Kommandos !
+goto End
+:Error3
+echo Error: Falsche Parameter wurden an STREE uebergeben !
+goto End
+
+REM *** Aufraeumen ***
+:End
+
diff --git a/sd/prj/struct.txt b/sd/prj/struct.txt
new file mode 100644
index 000000000000..5e13a0ec2538
--- /dev/null
+++ b/sd/prj/struct.txt
@@ -0,0 +1,54 @@
+
+sd-
+ |-idl
+ |-inc ----
+ | |-usr -----
+ | |-IFACEID.hxx (IDs fuer Interfaces)
+ |-jobs
+ |-prj
+ |-res
+ |-source -
+ | |-ui ------
+ | |-inc ---- (Deklaration der Klassen)
+ | | |-UNOMODEL.hxx
+ | | |-UNOPAGE.hxx
+ | |
+ | |-unoidl - (Implementation der Klassen)
+ | |-UNOMODEL.cxx
+ | |-UNOPAGE.cxx
+ |-unoidl -
+ | |-sd ------
+ | | |-XIMODEL.idl
+ | | |-XIPAGE.idl (der eigentliche IDL-Code)
+ | |-smart ---
+ | |-XIMODEL.idl
+ | |-XIPAGE.idl (import/mapping des IDL-Codes)
+ |-util
+ |-wntmsci-
+ | |-idl------
+ | | |-usr --
+ | | |-MAP.idl
+ | | |-SDMAP.idl
+ | |-inc------
+ | | |-sd --- (Deklaration der Interfaces)
+ | | |-XIMODEL.hxx
+ | | |-XIPAGE.hxx ...
+ | |-misc ----
+ | |-XIMODEL.cxx
+ | (Impl., fast ausschliesslich pure virtual functions)
+ |-workben
+
+
+
+usr-
+ |-idl ----
+ | |-cponent -
+ | |-smart -
+ | | |-MAP.idl
+ | |-usr ---
+ | |-SFXMAP.idl
+ |
+ |-inc ----
+ |-usr -----
+ |-IFACEID.hxx
+
diff --git a/sd/res/webview/common.inc b/sd/res/webview/common.inc
new file mode 100644
index 000000000000..f0dd463821d2
--- /dev/null
+++ b/sd/res/webview/common.inc
@@ -0,0 +1,110 @@
+<%
+
+public const cnRefreshTime = 5 ' refresh time in seconds
+
+' filename for file with all pictures and file containing the name of the current picture
+public const csFilePicture= "picture.txt"
+public const csFileCurrent= "currpic.txt"
+
+' constants for file-access
+const ForReading = 1
+const ForWriting = 2
+
+' new-line delimiter
+Dim FILE_LINE_DELIMITER
+FILE_LINE_DELIMITER = vbCRLF
+
+'/**
+' * Get data from file using a given separator.
+' */
+function File_getDataVirtual( sFilename, sServerPath, sSeperator )
+ call Err.Clear()
+
+ Dim aFSObject, sServerFileName
+
+ Set aFSObject = CreateObject("Scripting.FileSystemObject")
+ sServerFileName = aFSObject.BuildPath( Server.MapPath( sServerPath ), sFileName )
+
+ File_getDataVirtual = ""
+ if Err.Number = 0 then
+ File_getDataVirtual = File_read( sServerFileName )
+ If Not IsNull(File_getDataVirtual) Then
+ File_getDataVirtual = Replace( File_getDataVirtual, FILE_LINE_DELIMITER, sSeperator)
+ File_getDataVirtual = Split( File_getDataVirtual, sSeperator)
+ End If
+ end if
+end function
+
+'/**
+' * Get data from a file
+' */
+function File_read( sFilename )
+ call Err.Clear()
+
+ Dim aFSObject, aStream
+
+ Set aFSObject = CreateObject( "Scripting.FileSystemObject" )
+ Set aStream = aFSObject.OpenTextFile( sFilename, ForReading )
+
+ while not aStream.AtEndOfStream
+ File_read = File_read + aStream.ReadLine + FILE_LINE_DELIMITER
+ wend
+
+ aStream.Close
+end function
+
+'/**
+' * Get data from a file given by filename and virtual pathname
+' */
+Function File_readVirtual(sFileName, sServerPath)
+ call Err.Clear()
+
+ Dim aFSObject, sServerFileName
+
+ Set aFSObject = CreateObject("Scripting.FileSystemObject")
+ sServerFileName = aFSObject.BuildPath( Server.MapPath( sServerPath ), sFileName )
+
+ File_readVirtual = ""
+ if Err.Number = 0 then
+ File_readVirtual = File_read( sServerFileName )
+ end if
+End Function
+
+'/**
+' * Write data to a file
+' */
+function File_write( sFileName, sText )
+ call Err.Clear()
+
+ Dim aFSObject, aFile
+
+ Set aFSObject = CreateObject( "Scripting.FileSystemObject" )
+ if Err.Number = 0 then
+ Set aFile = aFSObject.CreateTextFile( sFileName, TRUE )
+ if Err.Number = 0 then
+ aFile.Write( sText )
+ aFile.Close
+ end if
+ end if
+
+ File_write = ( Err.Number = 0 )
+end function
+
+'/**
+' * Write data to a file given by filename and virtual pathname
+' */
+function File_writeVirtual( sFileName, sServerPath, sText )
+ call Err.Clear()
+
+ Dim aFSObject, aServerFile
+
+ Set aFSObject = CreateObject( "Scripting.FileSystemObject" )
+ aServerFile = aFSObject.BuildPath( Server.MapPath( sServerPath ), sFileName )
+
+ If Err.Number = 0 Then
+ File_writeVirtual = File_write( aServerFile, sText )
+ else
+ File_writeVirtual = false
+ End If
+end function
+%>
\ No newline at end of file
diff --git a/sd/res/webview/edit.asp b/sd/res/webview/edit.asp
new file mode 100644
index 000000000000..654a441fe357
--- /dev/null
+++ b/sd/res/webview/edit.asp
@@ -0,0 +1,9 @@
+
+
+ $$1
+
+
+
\ No newline at end of file
diff --git a/sd/res/webview/editpic.asp b/sd/res/webview/editpic.asp
new file mode 100644
index 000000000000..34a4a51e4473
--- /dev/null
+++ b/sd/res/webview/editpic.asp
@@ -0,0 +1,58 @@
+<%
+ Option Explicit
+ Response.Expires = 0
+ Response.Buffer = True
+%>
+
+
+
+
+<%
+ Dim aPictureArray, nPic, nUpper
+
+ aPictureArray = File_getDataVirtual( csFilePicture, ".", ";" )
+ nPic = File_readVirtual( "currpic.txt", "." )
+ nUpper = CInt( (UBound(aPictureArray) - 1 ) / 2)
+%>
+
+
+
+
+
+
+
+
diff --git a/sd/res/webview/poll.asp b/sd/res/webview/poll.asp
new file mode 100644
index 000000000000..dd1a9bfe0022
--- /dev/null
+++ b/sd/res/webview/poll.asp
@@ -0,0 +1,36 @@
+<%
+ Option Explicit
+ Response.Expires = 0
+%>
+
+
+
+
+
+
+
+
+
+<%
+ ' get current picture id
+ Dim nGIFID
+
+ nGifID = File_getDataVirtual( csFileCurrent, ".", ";" )( 0 )
+
+ ' a new picture was chosen ?
+ if nGIFID <> Session( "GIFID" ) then
+ ' then store the id of the new picture and show it
+ Session( "GIFID" ) = nGIFID
+ %>
+
+ <%
+ else
+ %>
+
+ <%
+ end if
+%>
+
+
+
+
\ No newline at end of file
diff --git a/sd/res/webview/savepic.asp b/sd/res/webview/savepic.asp
new file mode 100644
index 000000000000..71adefc4f391
--- /dev/null
+++ b/sd/res/webview/savepic.asp
@@ -0,0 +1,39 @@
+<%
+ Option Explicit
+ Response.Expires = 0
+ Response.Buffer = True
+%>
+
+
+
+<%
+ ' get new picture
+ Dim sCurrPic,aPictureArray, nUpper, nCurrPic
+
+ aPictureArray = File_getDataVirtual( csFilePicture, ".", ";" )
+ nUpper = CInt( (UBound(aPictureArray) - 1 ) / 2)
+
+ sCurrPic = Request( "CurrPic" )
+
+ ' check if + or - was pressed
+ select case Request( "Auswahl" )
+ case "+"
+ if isNumeric( sCurrPic ) then
+ sCurrPic = CStr( CLng( sCurrPic ) + 1 )
+ end if
+ case "-"
+ if isNumeric( sCurrPic ) then
+ sCurrPic = CStr( CLng( sCurrPic ) - 1 )
+ end if
+ end select
+
+ ' save picture name
+ if isNumeric( sCurrPic ) then
+ if (CInt( sCurrPic ) > 0) and ( CInt( sCurrPic ) <= nUpper ) then
+ call File_writeVirtual( "currpic.txt", ".", sCurrPic )
+ end if
+ end if
+
+ ' return to edit page
+ Response.Redirect( "./editpic.asp" )
+%>
diff --git a/sd/res/webview/show.asp b/sd/res/webview/show.asp
new file mode 100644
index 000000000000..b66103cc6edf
--- /dev/null
+++ b/sd/res/webview/show.asp
@@ -0,0 +1,42 @@
+<%
+ Option Explicit
+ Response.Expires = 0
+%>
+
+
+
+<%
+ Dim sGifName1, sGifName2, nGifID, aPictureArray
+
+ nGifID = Session( "GIFID" )
+
+ ' get current and next picture
+ aPictureArray = File_getDataVirtual( csFilePicture, ".", ";" )
+
+ ' not last picture or wrong input ?
+ If CInt( nGifID ) < UBound( aPictureArray ) / 2 Then
+ sGifName1 = aPictureArray( ( nGifID - 1 ) * 2 + 1 )
+ sGifName2 = aPictureArray( ( nGifID ) * 2 + 1 )
+ Else
+ nGifID = CInt( UBound( aPictureArray ) / 2 )
+ sGifName1 = aPictureArray( ( nGifID - 1 ) * 2 + 1 )
+ sGifName2 = sGifName1
+ End If
+%>
+
+
+
+
+ $$1
+
+
+
+
+
+
+
+ |
+
+
+
+
\ No newline at end of file
diff --git a/sd/res/webview/webview.asp b/sd/res/webview/webview.asp
new file mode 100644
index 000000000000..f3c3af760eda
--- /dev/null
+++ b/sd/res/webview/webview.asp
@@ -0,0 +1,28 @@
+<%
+ Option Explicit
+ Response.Expires = 0
+%>
+
+
+
+<%
+ Session( "GIFID" ) = File_getDataVirtual( csFileCurrent, ".", ";" )( 0 )
+%>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/sd/sdi/_docsh.sdi b/sd/sdi/_docsh.sdi
new file mode 100644
index 000000000000..3d1d0b5b78bb
--- /dev/null
+++ b/sd/sdi/_docsh.sdi
@@ -0,0 +1,133 @@
+/*************************************************************************
+#*
+#* $Workfile: _docsh.sdi $
+#*
+#* Beschreibung Basis fuer DocShell-IDL
+#*
+#* Ersterstellung SOH 04.04.97
+#* Letzte Aenderung $Author: hr $ $Date: 2000-09-18 16:48:29 $
+#* $Revision: 1.1.1.1 $
+#*
+#* $Logfile: T:/sd/sdi/_docsh.sdv $
+#*
+#* Copyright (c) 1989 - 1999, STAR DIVISION
+#*
+#*************************************************************************
+
+ Source Code Control System - Header
+
+ $Header: /zpool/svn/migration/cvs_rep_09_09_08/code/sd/sdi/_docsh.sdi,v 1.1.1.1 2000-09-18 16:48:29 hr Exp $
+
+*************************************************************************/
+
+
+interface DrawDocument : OfficeDocument
+{
+ SID_PACKNGO // ole : ?, status : ?
+ [
+ ExecMethod = Execute ;
+ StateMethod = GetState ;
+ ]
+ SID_PUBLISH // ole : ?, status : ?
+ [
+ ExecMethod = Execute ;
+ StateMethod = GetState ;
+ ]
+ SID_CLOSEDOC // ole : ?, status : ?
+ [
+ ExecMethod = Execute ;
+ StateMethod = GetState ;
+ ]
+ SID_SPELLING // ole : ?, status : ?
+ [
+ ExecMethod = Execute ;
+ StateMethod = GetState ;
+ ]
+ // ?
+ SfxVoidItem DoSearchAndReplace FID_SEARCH_NOW // ole : ?, status : ?
+ (
+ )
+ [
+ ExecMethod = Execute ;
+ StateMethod = GetState ;
+ GroupId = GID_DOCUMENT ;
+ Cachable ;
+ ]
+ // ?
+ SfxVoidItem SearchOn FID_SEARCH_ON // ole : ?, status : ?
+ (
+ )
+ [
+ ExecMethod = Execute ;
+ StateMethod = GetState ;
+ GroupId = GID_DOCUMENT ;
+ Cachable ;
+ ]
+ // ?
+ SfxVoidItem SearchOff FID_SEARCH_OFF // ole : ?, status : ?
+ (
+ )
+ [
+ ExecMethod = Execute ;
+ StateMethod = GetState ;
+ GroupId = GID_DOCUMENT ;
+ Cachable ;
+ ]
+ // ?
+ SfxVoidItem SearchOptions SID_SEARCH_OPTIONS // ole : ?, status : ?
+ (
+ )
+ [
+ ExecMethod = Execute ;
+ StateMethod = GetState ;
+ GroupId = GID_DOCUMENT ;
+ Cachable ;
+ ]
+ SID_SEARCH_ITEM // ole : ?, status : ?
+ [
+ ExecMethod = Execute ;
+ StateMethod = GetState ;
+ ]
+
+ SID_GET_COLORTABLE
+ [
+ ExecMethod = Execute;
+ ]
+}
+
+/*************************************************************************
+
+ Source Code Control System - History
+
+ $Log: not supported by cvs2svn $
+ Revision 1.8 1999/09/01 15:41:55 pw
+ Pack & Go
+
+ Revision 1.7 1999/03/25 16:40:12 CL
+ #63859# ConfigName und HelpText entfernt
+
+
+ Rev 1.6 25 Mar 1999 17:40:12 CL
+ #63859# ConfigName und HelpText entfernt
+
+ Rev 1.5 11 Mar 1998 17:07:00 DL
+ #47845# Preview im Diamodus offen -> Dok. schliessen -> GPF
+
+ Rev 1.4 22 Oct 1997 16:07:32 SOH
+ #44618#: + SID_GET_COLORTABLE gemaess BugBeschr.
+
+ Rev 1.3 04 Sep 1997 13:36:18 MBA
+ Document von OfficeDocument abgeleitet
+
+ Rev 1.2 28 Aug 1997 12:33:30 MBA
+ Neue Interface-Namen
+
+ Rev 1.1 17 Jul 1997 16:46:34 SOH
+ #41635#: SID_MODIFIED entfernt
+
+ Rev 1.0 09 Apr 1997 13:18:52 SOH
+ Initial revision.
+
+*************************************************************************/
+
+
diff --git a/sd/sdi/_drvwsh.sdi b/sd/sdi/_drvwsh.sdi
new file mode 100644
index 000000000000..c9f87ec1a3c9
--- /dev/null
+++ b/sd/sdi/_drvwsh.sdi
@@ -0,0 +1,2299 @@
+/*************************************************************************
+#*
+#* $Workfile: _drvwsh.sdi $
+#*
+#* Beschreibung Basis fuer ViewShell-IDL
+#*
+#* Ersterstellung SOH 04.04.97
+#* Letzte Aenderung $Author: hr $ $Date: 2000-09-18 16:48:29 $
+#* $Revision: 1.1.1.1 $
+#*
+#* $Logfile: T:/sd/sdi/_drvwsh.sdv $
+#*
+#* Copyright (c) 1989 - 1999, STAR DIVISION
+#*
+#*************************************************************************
+
+ Source Code Control System - Header
+
+ $Header: /zpool/svn/migration/cvs_rep_09_09_08/code/sd/sdi/_drvwsh.sdi,v 1.1.1.1 2000-09-18 16:48:29 hr Exp $
+
+*************************************************************************/
+ // solange Nicht in svxslots.ilb
+enum SdrFitToSizeType
+{
+ SDRTEXTFIT_NONE ,
+ SDRTEXTFIT_PROPORTIONAL ,
+ SDRTEXTFIT_ALLLINES ,
+ SDRTEXTFIT_RESIZEATTR
+}
+item UINT32 SvxObjectItem ;
+item BOOL SdrShadowItem ;
+item SdrFitToSizeType SdrTextFitToSizeTypeItem ;
+
+
+interface DrawView : View
+{
+ SID_JUMPTOMARK // ole : no, status : ?
+ [
+ ExecMethod = ExecCtrl ;
+ StateMethod = GetCtrlState ;
+ ]
+ SID_SWITCHPAGE // ole : no, status : play rec
+ [
+ ExecMethod = ExecCtrl ;
+ StateMethod = GetCtrlState ;
+ ]
+ SID_SWITCHLAYER // ole : no, status : play rec
+ [
+ ExecMethod = ExecCtrl ;
+ StateMethod = GetCtrlState ;
+ ]
+ SfxVoidItem RevertToSaved SID_RELOAD ( ) // ole : no, status : ?
+ [
+ GroupId = GID_DOCUMENT ;
+ ExecMethod = ExecCtrl ;
+ StateMethod = GetCtrlState ;
+ Asynchron , Volatile , AutoUpdate ,
+ MenuConfig , AccelConfig , ToolBoxConfig ;
+ ]
+ SID_PAGEMODE // ole : no, status : play rec
+ [
+ ExecMethod = ExecCtrl ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_LAYERMODE // ole : no, status : play rec
+ [
+ ExecMethod = ExecCtrl ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_OBJECTRESIZE // ole : no, status : ?
+ [
+ ExecMethod = ExecCtrl ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_ORIGINAL_SIZE // ole : yes, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_CUT // ole : no, status : ?
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_COPY // ole : no, status : ?
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_PASTE // ole : no, status : ?
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_PIXELMODE // ole : no, status : play rec
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_DRAWINGMODE // ole : no, status : play rec
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_MASTERPAGE // ole : no, status : play rec
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ // Menue-Messages fuer temporaere Funktionen mit Dialog
+ SID_ATTR_ZOOM // ole : no, status : no
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetStatusBarState ;
+ ]
+ SID_ATTRIBUTES_LINE // ole : no, status : no
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_ATTRIBUTES_AREA // ole : no, status : no
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_INSERTPAGE // ole : no, status : play rec
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_INSERTPAGE_QUICK // ole : no, status : play rec
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_HYPERLINK_SETLINK // ole : no, status : no
+ [
+ ExecMethod = FuTemporary ;
+ ]
+ SID_HYPERLINK_GETLINK // ole : no, status : no
+ [
+ StateMethod = GetCtrlState ;
+ ]
+ SID_RENAMEPAGE // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_INSERTLAYER // ole : no, status : play rec
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_MODIFYLAYER // ole : no, status : play rec
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_RENAMELAYER // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_NAVIGATOR // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_PREVIEW_WIN // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_3D_WIN // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_3D_INIT // ole : no, status : ?
+ [
+ ExecMethod = ExecEffectWin ;
+ StateMethod = GetEffectWinState ;
+ ]
+ SID_3D_STATE // ole : no, status : ?
+ [
+ ExecMethod = ExecEffectWin ;
+ StateMethod = GetEffectWinState ;
+ ]
+ SID_3D_ASSIGN // ole : no, status : ?
+ [
+ ExecMethod = ExecEffectWin ;
+ StateMethod = GetEffectWinState ;
+ ]
+ SID_ATTR_TRANSFORM // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ /// !?
+ SID_CHAR_DLG // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ /* -> SVX
+ SID_PARA_DLG // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+*/
+
+ SfxVoidItem Paragraph SID_PARA_DLG // ole : no, status : ?
+ (
+ )
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ GroupId = GID_DOCUMENT ;
+ Cachable , HasDialog , Export ,
+ MenuConfig , AccelConfig , ToolBoxConfig ;
+ ]
+ SID_BULLET // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_PASTE2 // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SfxVoidItem InsertGraphic SID_INSERT_GRAPHIC // ole : no, status : todo
+ (
+ SfxStringItem GraficName ID_VAL_DUMMY1;
+ )
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ GroupId = GID_DOCUMENT ;
+ Cachable , HasDialog , Export , Asynchron ,
+ MenuConfig , AccelConfig , ToolBoxConfig ;
+ ]
+ SID_MANAGE_LINKS // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_THESAURUS // ole : no, status : no
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_ATTR_TABLE // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SfxVoidItem InsertChart SID_INSERT_DIAGRAM // ole : yes, status : ?
+ (
+ )
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ GroupId = GID_DOCUMENT ;
+ Cachable , HasDialog , Export , Asynchron ,
+ MenuConfig , AccelConfig , ToolBoxConfig ;
+ ]
+ SID_BMPMASK // ole : yes, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_BMPMASK_PIPETTE // ole : no, status : ?
+ [
+ ExecMethod = ExecBmpMask ;
+ StateMethod = GetBmpMaskState ;
+ ]
+ SID_BMPMASK_EXEC // ole : no, status : ?
+ [
+ ExecMethod = ExecBmpMask ;
+ StateMethod = GetBmpMaskState ;
+ ]
+ SID_INSERT_OBJECT // ole : yes, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_INSERT_APPLET // ole : yes, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_INSERT_PLUGIN // ole : yes, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_INSERT_SOUND // ole : yes, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_INSERT_VIDEO // ole : yes, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_INSERT_FLOATINGFRAME // ole : yes, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_INSERT_IMAGE // ole : yes, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_INSERT_MATH // ole : yes, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_COPYOBJECTS // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_PAGESETUP // ole : no, status : no
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_PAGESIZE // ole : no, status : rec play
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_PAGEMARGIN // ole : no, status : rec play
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_SELECTAT // ole : no, status : play rec
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_PRESENTATION_LAYOUT // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_GROUP // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ FastCall = FALSE ;
+ ]
+ SID_ENTER_GROUP // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_LEAVE_GROUP // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_LEAVE_ALL_GROUPS // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_UNGROUP // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ FastCall = FALSE ;
+ ]
+ SID_COMBINE // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_DISTRIBUTE_DLG // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_POLY_MERGE // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_POLY_SUBSTRACT // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_POLY_INTERSECT // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_CONNECT // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_DISMANTLE // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_BREAK // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_CONVERT_TO_3D // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_CONVERT_TO_3D_LATHE // ole : no, status : ?
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_CONVERT_TO_BITMAP // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_CONVERT_TO_METAFILE // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_FRAME_TO_TOP // ole : no, status : play rec
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_MOREFRONT // ole : no, status : play rec
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_BEFORE_OBJ // ole : no, status : no
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_BEHIND_OBJ // ole : no, status : no
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_REVERSE_ORDER // ole : no, status : play rec
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_MOREBACK // ole : no, status : play rec
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_FRAME_TO_BOTTOM // ole : no, status : play rec
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_OBJECT_ALIGN_LEFT // ole : no, status : play rec
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_OBJECT_ALIGN_CENTER // ole : no, status : play rec
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_OBJECT_ALIGN_RIGHT // ole : no, status : play rec
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_OBJECT_ALIGN_UP // ole : no, status : play rec
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_OBJECT_ALIGN_MIDDLE // ole : no, status : play rec
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_OBJECT_ALIGN_DOWN // ole : no, status : play rec
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_SELECTALL // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_ZOOM_NEXT // ole : no, status : play rec
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_ZOOM_PREV // ole : no, status : play rec
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_ZOOM_OUT // ole : no, status : play rec
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_ZOOM_PANNING // ole : no, status : play rec
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_ZOOM_IN // ole : no, status : play rec
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_SIZE_REAL // ole : no, status : play rec
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_SIZE_PAGE // ole : no, status : play rec
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_SIZE_VISAREA // ole : no, status : no
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_SIZE_PAGE_WIDTH // ole : no, status : play rec
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_SIZE_OPTIMAL // ole : no, status : play rec
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_SIZE_ALL // ole : no, status : ?
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_ZOOM // ole : no, status : play rec
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ SfxVoidItem Delete SID_DELETE // ole : no, status : ?
+ (
+ )
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ GroupId = GID_DOCUMENT ;
+ Cachable , Asynchron ,
+ MenuConfig , AccelConfig , ToolBoxConfig ;
+ ]
+ SID_CHANGEBEZIER // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_CHANGEPOLYGON // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ReadOnlyDoc = FALSE ;
+ ]
+ SID_CONVERT_TO_CONTOUR // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ReadOnlyDoc = FALSE ;
+ ]
+ SID_CHOOSE_POLYGON // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_OUTLINE_BULLET // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ MenuConfig = TRUE;
+ ]
+ SID_ATTR_CHAR // ole : no, status : ?
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_TEXTEDIT // ole : no, status : ?
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_TEXT_FITTOSIZE // ole : no, status : ?
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ /* -> SVX
+ SID_OBJECT_ROTATE // ole : no, status : ?
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+*/
+
+ SfxBoolItem Rotate SID_OBJECT_ROTATE // ole : no, status : ?
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ GroupId = GID_DOCUMENT ;
+ Cachable , AutoUpdate ,
+ MenuConfig , AccelConfig , ToolBoxConfig ;
+ ]
+ SID_OBJECT_SHEAR // ole : no, status : ?
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ /* -> DB
+ SID_OBJECT_MIRROR // ole : no, status : play rec
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+*/
+
+ SfxVoidItem Mirror SID_OBJECT_MIRROR // ole : no, status : play rec
+ (
+ SfxBoolItem MirrorVert ID_VAL_MIRRORVERT;
+ )
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ SlotType = SfxBoolItem ;
+ GroupId = GID_DOCUMENT ;
+ Cachable , AutoUpdate ,
+ MenuConfig , AccelConfig , ToolBoxConfig ;
+ ]
+
+ SID_OBJECT_TRANSPARENCE // ole : no, status : ?
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_OBJECT_GRADIENT // ole : no, status : ?
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+
+ SID_OBJECT_CROOK_ROTATE // ole : no, status : ?
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_OBJECT_CROOK_SLANT // ole : no, status : play rec
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_OBJECT_CROOK_STRETCH // ole : no, status : play rec
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_DRAW_RECT // ole : no, status : play rec
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_DRAW_RECT_NOFILL // ole : no, status : play rec
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_DRAW_RECT_ROUND // ole : no, status : play rec
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_DRAW_RECT_ROUND_NOFILL // ole : no, status : play rec
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_DRAW_SQUARE // ole : no, status : play rec
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_DRAW_SQUARE_NOFILL // ole : no, status : play rec
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_DRAW_SQUARE_ROUND // ole : no, status : play rec
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_DRAW_SQUARE_ROUND_NOFILL // ole : no, status : play rec
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_TOOL_CONNECTOR // ole : no, status : no
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_CONNECTOR_ARROW_START // ole : no, status : no
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_CONNECTOR_ARROW_END // ole : no, status : no
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_CONNECTOR_ARROWS // ole : no, status : no
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_CONNECTOR_CIRCLE_START // ole : no, status : no
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_CONNECTOR_CIRCLE_END // ole : no, status : no
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_CONNECTOR_CIRCLES // ole : no, status : no
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_CONNECTOR_LINE // ole : no, status : no
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_CONNECTOR_LINE_ARROW_START // ole : no, status : no
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_CONNECTOR_LINE_ARROW_END // ole : no, status : no
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_CONNECTOR_LINE_ARROWS // ole : no, status : no
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_CONNECTOR_LINE_CIRCLE_START // ole : no, status : no
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_CONNECTOR_LINE_CIRCLE_END // ole : no, status : no
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_CONNECTOR_LINE_CIRCLES // ole : no, status : no
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_CONNECTOR_CURVE // ole : no, status : no
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_CONNECTOR_CURVE_ARROW_START // ole : no, status : no
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_CONNECTOR_CURVE_ARROW_END // ole : no, status : no
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_CONNECTOR_CURVE_ARROWS // ole : no, status : no
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_CONNECTOR_CURVE_CIRCLE_START // ole : no, status : no
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_CONNECTOR_CURVE_CIRCLE_END // ole : no, status : no
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_CONNECTOR_CURVE_CIRCLES // ole : no, status : no
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_CONNECTOR_LINES // ole : no, status : no
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_CONNECTOR_LINES_ARROW_START // ole : no, status : no
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_CONNECTOR_LINES_ARROW_END // ole : no, status : no
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_CONNECTOR_LINES_ARROWS // ole : no, status : no
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_CONNECTOR_LINES_CIRCLE_START // ole : no, status : no
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_CONNECTOR_LINES_CIRCLE_END // ole : no, status : no
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_CONNECTOR_LINES_CIRCLES // ole : no, status : no
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_LINE_ARROW_START // ole : no, status : no
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_LINE_ARROW_END // ole : no, status : no
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_LINE_ARROWS // ole : no, status : no
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_LINE_ARROW_CIRCLE // ole : no, status : no
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_LINE_CIRCLE_ARROW // ole : no, status : no
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_LINE_ARROW_SQUARE // ole : no, status : no
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_LINE_SQUARE_ARROW // ole : no, status : no
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_DRAW_CAPTION // ole : no, status : no
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_DRAW_CIRCLE // ole : no, status : play rec
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_DRAW_CIRCLE_NOFILL // ole : no, status : play rec
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_DRAW_ELLIPSE // ole : no, status : play rec
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_DRAW_ELLIPSE_NOFILL // ole : no, status : play rec
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_DRAW_ARC // ole : no, status : play rec
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_DRAW_CIRCLEARC // ole : no, status : play rec
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_DRAW_PIE // ole : no, status : play rec
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_DRAW_PIE_NOFILL // ole : no, status : play rec
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_DRAW_CIRCLEPIE // ole : no, status : play rec
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_DRAW_CIRCLEPIE_NOFILL // ole : no, status : play rec
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_DRAW_CIRCLECUT // ole : no, status : play rec
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_DRAW_CIRCLECUT_NOFILL // ole : no, status : play rec
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_DRAW_ELLIPSECUT // ole : no, status : play rec
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_DRAW_ELLIPSECUT_NOFILL // ole : no, status : play rec
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_DRAW_LINE // ole : no, status : no
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_DRAW_MEASURELINE // ole : no, status : no
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_DRAW_XLINE // ole : no, status : no
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_MOVETO // ole : no, status : play rec
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_LINETO // ole : no, status : play rec
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_BEZIERTO // ole : no, status : play rec
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_DRAW_XPOLYGON // ole : no, status : no
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_DRAW_XPOLYGON_NOFILL // ole : no, status : no
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_DRAW_POLYGON // ole : no, status : no
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_DRAW_POLYGON_NOFILL // ole : no, status : no
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_DRAW_BEZIER_FILL // ole : no, status : ?
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_DRAW_BEZIER_NOFILL // ole : no, status : ?
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_DRAW_FREELINE // ole : no, status : ?
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_DRAW_FREELINE_NOFILL // ole : no, status : ?
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_3D_CUBE // ole : no, status : ?
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_3D_SPHERE // ole : no, status : ?
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_3D_CYLINDER // ole : no, status : ?
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_3D_CONE // ole : no, status : ?
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_3D_PYRAMID // ole : no, status : ?
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_3D_SHELL // ole : no, status : ?
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_3D_TORUS // ole : no, status : ?
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_3D_HALF_SPHERE // ole : no, status : ?
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ TbxImageItem Alignment SID_OBJECT_ALIGN // ole : no, status : ?
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ GroupId = GID_DOCUMENT ;
+ Cachable , Export ;
+ PseudoSlots = FALSE ;
+ ToolBoxConfig ;
+ MenuConfig = TRUE;
+ ]
+ SID_ZOOM_TOOLBOX // ole : no, status : ?
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_OBJECT_CHOOSE_MODE // ole : no, status : ?
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_POSITION // ole : no, status : ?
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_DRAWTBX_TEXT // ole : no, status : ?
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_DRAWTBX_CONNECTORS // ole : no, status : ?
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_DRAWTBX_RECTANGLES // ole : no, status : ?
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_DRAWTBX_ELLIPSES // ole : no, status : ?
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_DRAWTBX_LINES // ole : no, status : ?
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_DRAWTBX_ARROWS // ole : no, status : ?
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_DRAWTBX_3D_OBJECTS // ole : no, status : ?
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_DRAWTBX_INSERT // ole : no, status : ?
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_OBJECT_SELECT // ole : no, status : ?
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ Export = FALSE ;
+ ]
+ //////////////////////////////////////////////////////////////////////
+ // Beginn FormSlots
+ SID_FM_CREATE_CONTROL
+ [
+ ExecMethod = FuPermanent ;
+ ]
+ SID_ATTR_YEAR2000
+ [
+ ExecMethod = ExecCtrl ;
+ StateMethod = GetCtrlState ;
+ ]
+ // Ende FormSlots
+ //////////////////////////////////////////////////////////////////////
+ SID_SHOW_HIDDEN // status()
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_SHOW_FORMS // status()
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_ATTR_FILL_STYLE // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetAttrState ;
+ ]
+ SID_ATTR_FILL_COLOR // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetAttrState ;
+ ]
+ SID_ATTR_FILL_GRADIENT // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetAttrState ;
+ ]
+ SID_ATTR_FILL_HATCH // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetAttrState ;
+ ]
+ SID_ATTR_FILL_BITMAP // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetAttrState ;
+ ]
+ SID_ATTR_LINE_STYLE // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetAttrState ;
+ ]
+ SID_ATTR_LINE_DASH // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetAttrState ;
+ ]
+ SID_ATTR_LINE_WIDTH // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetAttrState ;
+ ]
+ SID_ATTR_LINE_COLOR // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetAttrState ;
+ ]
+ SID_ATTR_LINEEND_STYLE // ole : no, status : play rec
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetAttrState ;
+ ]
+ SID_DELETE_PAGE // ole : no, status : play rec
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_DELETE_LAYER // ole : no, status : play rec
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_INSERTFILE // ole : no, status : todo
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SfxTemplateItem TemplateFamily2 SID_STYLE_FAMILY2 // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetAttrState ;
+ Export = FALSE ;
+ ]
+ SfxVoidItem NewTemplate SID_STYLE_NEW // ole : no, status : ?
+ (
+ )
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetAttrState ;
+ GroupId = GID_DOCUMENT ;
+ Cachable ;
+ ]
+ SID_STYLE_DRAGHIERARCHIE // ole : no, status : ?
+ [
+ StateMethod = GetAttrState ;
+ ]
+ SfxVoidItem EditTemplate SID_STYLE_EDIT // ole : no, status : ?
+ (
+ )
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetAttrState ;
+ GroupId = GID_DOCUMENT ;
+ Cachable ;
+ ]
+ SfxVoidItem DeleteTemplate SID_STYLE_DELETE // ole : no, status : ?
+ (
+ )
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetAttrState ;
+ GroupId = GID_DOCUMENT ;
+ Cachable ;
+ ]
+ SfxTemplateItem ApplyTemplate SID_STYLE_APPLY // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetAttrState ;
+ GroupId = GID_DOCUMENT ;
+ Cachable ;
+ ]
+ SfxBoolItem TemplateWatercan SID_STYLE_WATERCAN // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetAttrState ;
+ GroupId = GID_DOCUMENT ;
+ Cachable ;
+ ]
+ SfxVoidItem TemplateNewByExample SID_STYLE_NEW_BY_EXAMPLE // ole : no, status : ?
+ (
+ )
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetAttrState ;
+ GroupId = GID_DOCUMENT ;
+ Cachable ;
+ ]
+ SfxVoidItem TemplateUpdateByExample SID_STYLE_UPDATE_BY_EXAMPLE // ole : no, status : ?
+ (
+ )
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetAttrState ;
+ GroupId = GID_DOCUMENT ;
+ Cachable ;
+ ]
+ SID_SET_DEFAULT // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetAttrState ;
+ ]
+ SID_RULER_PAGE_POS // ole : no, status : ?
+ [
+ ExecMethod = ExecRuler ;
+ StateMethod = GetRulerState ;
+ ]
+/*
+ SID_RULER_OBJECT // ole : no, status : ?
+ [
+ ExecMethod = ExecRuler ;
+ StateMethod = GetRulerState ;
+ ]
+*/
+ SID_RULER_NULL_OFFSET // ole : no, status : ?
+ [
+ ExecMethod = ExecRuler ;
+ StateMethod = GetRulerState ;
+ ]
+ SvxLongLRSpaceItem RulerLRSpace SID_ATTR_LONG_LRSPACE // ole : no, status : ?
+ [
+ ExecMethod = ExecRuler ;
+ StateMethod = GetRulerState ;
+ Cachable ;
+ ]
+ SvxLongULSpaceItem RulerULSpace SID_ATTR_LONG_ULSPACE // ole : no, status : ?
+ [
+ ExecMethod = ExecRuler ;
+ StateMethod = GetRulerState ;
+ Cachable ;
+ ]
+ SID_RULER_LR_MIN_MAX // ole : no, status : ?
+ [
+ ExecMethod = ExecRuler ;
+ StateMethod = GetRulerState ;
+ ]
+/*
+ SID_ATTR_TABSTOP // ole : no, status : ?
+ [
+ ExecMethod = ExecRuler ;
+ StateMethod = GetRulerState ;
+ ]
+*/
+ SID_ATTR_PARA_LRSPACE // ole : no, status : ?
+ [
+ ExecMethod = ExecRuler ;
+ StateMethod = GetRulerState ;
+ ]
+ SID_ATTR_POSITION // ole : no, status : ?
+ [
+ ExecMethod = ExecStatusBar ;
+ StateMethod = GetStatusBarState ;
+ ]
+ SID_ATTR_SIZE // ole : no, status : ?
+ [
+ ExecMethod = ExecStatusBar ;
+ StateMethod = GetStatusBarState ;
+ Export ;
+ ]
+ SID_STATUS_PAGE // ole : no, status : ?
+ [
+ ExecMethod = ExecStatusBar ;
+ StateMethod = GetStatusBarState ;
+ ]
+ SID_STATUS_LAYOUT // ole : no, status : ?
+ [
+ ExecMethod = ExecStatusBar ;
+ StateMethod = GetStatusBarState ;
+ ]
+ SID_LINEEND_POLYGON // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_GRAPHIC_EXPORT // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_NAME_GROUP // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_CONTEXT // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_SET_SNAPITEM // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetSnapItemState ;
+ ]
+ SID_DELETE_SNAPITEM // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetSnapItemState ;
+ ]
+ SID_CAPTUREPOINT // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ GroupId = GID_DOCUMENT ;
+ ]
+ SID_SWITCH_POINTEDIT // ole : no, status : ?
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SfxVoidItem ShowRuler SID_RULER // ole : no, status : play rec
+ (
+ SfxBoolItem IsActive ID_VAL_ISACTIVE;
+ )
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ GroupId = GID_DOCUMENT ;
+ SlotType = SfxBoolItem ;
+ Cachable ;
+ MenuConfig = TRUE ;
+ ]
+ SID_TEXTALIGNMENT // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_COLOR_CONTROL // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_FONTWORK // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_FORMTEXT_STYLE // ole : no, status : ?
+ [
+ ExecMethod = ExecFormText ;
+ StateMethod = GetFormTextState ;
+ ]
+ SID_FORMTEXT_ADJUST // ole : no, status : ?
+ [
+ ExecMethod = ExecFormText ;
+ StateMethod = GetFormTextState ;
+ ]
+ SID_FORMTEXT_DISTANCE // ole : no, status : ?
+ [
+ ExecMethod = ExecFormText ;
+ StateMethod = GetFormTextState ;
+ ]
+ SID_FORMTEXT_START // ole : no, status : ?
+ [
+ ExecMethod = ExecFormText ;
+ StateMethod = GetFormTextState ;
+ ]
+ SID_FORMTEXT_MIRROR // ole : no, status : ?
+ [
+ ExecMethod = ExecFormText ;
+ StateMethod = GetFormTextState ;
+ ]
+ SID_FORMTEXT_HIDEFORM // ole : no, status : ?
+ [
+ ExecMethod = ExecFormText ;
+ StateMethod = GetFormTextState ;
+ ]
+ SID_FORMTEXT_OUTLINE // ole : no, status : ?
+ [
+ ExecMethod = ExecFormText ;
+ StateMethod = GetFormTextState ;
+ ]
+ SID_FORMTEXT_SHADOW // ole : no, status : ?
+ [
+ ExecMethod = ExecFormText ;
+ StateMethod = GetFormTextState ;
+ ]
+ SID_FORMTEXT_SHDWCOLOR // ole : no, status : ?
+ [
+ ExecMethod = ExecFormText ;
+ StateMethod = GetFormTextState ;
+ ]
+ SID_FORMTEXT_SHDWXVAL // ole : no, status : ?
+ [
+ ExecMethod = ExecFormText ;
+ StateMethod = GetFormTextState ;
+ ]
+ SID_FORMTEXT_SHDWYVAL // ole : no, status : ?
+ [
+ ExecMethod = ExecFormText ;
+ StateMethod = GetFormTextState ;
+ ]
+ SID_FORMTEXT_STDFORM // ole : no, status : ?
+ [
+ ExecMethod = ExecFormText ;
+ StateMethod = GetFormTextState ;
+ ]
+ SID_GALLERY // ole : yes, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SfxUInt32Item GalleryFormats SID_GALLERY_FORMATS // ole : no, status : ?
+ [
+ ExecMethod = ExecGallery ;
+ StateMethod = GetGalleryState ;
+ GroupId = GID_DOCUMENT ;
+ Cachable ;
+ ]
+ SID_NAVIGATOR_INIT // ole : no, status : ?
+ [
+ ExecMethod = ExecNavigatorWin ;
+ StateMethod = GetNavigatorWinState ;
+ ]
+ SID_NAVIGATOR_PAGE // ole : no, status : ?
+ [
+ ExecMethod = ExecNavigatorWin ;
+ StateMethod = GetNavigatorWinState ;
+ ]
+ SID_NAVIGATOR_OBJECT // ole : no, status : ?
+ [
+ ExecMethod = ExecNavigatorWin ;
+ StateMethod = GetNavigatorWinState ;
+ ]
+ SID_NAVIGATOR_STATE // ole : no, status : ?
+ [
+ ExecMethod = ExecNavigatorWin ;
+ StateMethod = GetNavigatorWinState ;
+ ]
+ SID_NAVIGATOR_PAGENAME // ole : no, status : ?
+ [
+ ExecMethod = ExecNavigatorWin ;
+ StateMethod = GetNavigatorWinState ;
+ ]
+ SID_HORIZONTAL // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_VERTICAL // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_ATTR_FILL_SHADOW // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetAttrState ;
+ ]
+ SID_ATTR_TEXT_FITTOSIZE // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetAttrState ;
+ ]
+ SID_OBJECT_CLOSE // ole : no, status : ?
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ // Problem mit SID_ATTR_FILL_STYLE:
+ // frueher XFillStyle, jetzt Property FillStyle (Get/Set)
+ // deswegen Export = FALSE !
+ SID_SETFILLSTYLE // ole : no, status : play rec
+ [
+ ExecMethod = AttrExec ;
+ StateMethod = AttrState ;
+ Export = FALSE ;
+ ]
+ SID_GETFILLSTYLE // ole : no, status : play rec
+ [
+ ExecMethod = AttrExec ;
+ StateMethod = AttrState ;
+ ]
+ SID_SETLINESTYLE // ole : no, status : play rec
+ [
+ ExecMethod = AttrExec ;
+ StateMethod = AttrState ;
+ ]
+ SID_GETLINESTYLE // ole : no, status : play rec
+ [
+ ExecMethod = AttrExec ;
+ StateMethod = AttrState ;
+ ]
+ // Problem mit SID_ATTR_LINE_WIDTH:
+ // frueher XLineWidth, jetzt Property LineWidth (Get/Set)
+ // deswegen Export = FALSE !
+ SID_SETLINEWIDTH // ole : no, status : play rec
+ [
+ ExecMethod = AttrExec ;
+ StateMethod = AttrState ;
+ Export = FALSE ;
+ ]
+ SID_GETLINEWIDTH // ole : no, status : play rec
+ [
+ ExecMethod = AttrExec ;
+ StateMethod = AttrState ;
+ ]
+ //DB: FillColor -> SetFillColor
+ // Problem mit SID_ATTR_FILL_COLOR:
+ // frueher XFillColor, jetzt Property FillColor (Get/Set)
+ // deswegen Export = FALSE !
+ SfxVoidItem SetFillColor SID_SETFILLCOLOR // ole : no, status : play rec
+ (
+ SfxUInt32Item Red ID_VAL_RED;
+ SfxUInt32Item Green ID_VAL_GREEN;
+ SfxUInt32Item Blue ID_VAL_BLUE;
+ )
+ [
+ ExecMethod = AttrExec ;
+ StateMethod = AttrState ;
+ Export = FALSE ;
+ ]
+ SID_SETLINECOLOR // ole : no, status : play rec
+ [
+ ExecMethod = AttrExec ;
+ StateMethod = AttrState ;
+ ]
+ SID_SETHATCHCOLOR // ole : no, status : play rec
+ [
+ ExecMethod = AttrExec ;
+ StateMethod = AttrState ;
+ ]
+ SID_SETGRADSTARTCOLOR // ole : no, status : play rec
+ [
+ ExecMethod = AttrExec ;
+ StateMethod = AttrState ;
+ ]
+ SID_SETGRADENDCOLOR // ole : no, status : play rec
+ [
+ ExecMethod = AttrExec ;
+ StateMethod = AttrState ;
+ ]
+ SID_GETRED // ole : no, status : play rec
+ [
+ ExecMethod = AttrExec ;
+ StateMethod = AttrState ;
+ ]
+ SID_GETBLUE // ole : no, status : play rec
+ [
+ ExecMethod = AttrExec ;
+ StateMethod = AttrState ;
+ ]
+ SID_GETGREEN // ole : no, status : play rec
+ [
+ ExecMethod = AttrExec ;
+ StateMethod = AttrState ;
+ ]
+ SID_DASH // ole : no, status : play rec
+ [
+ ExecMethod = AttrExec ;
+ StateMethod = AttrState ;
+ ]
+ SID_HATCH // ole : no, status : play rec
+ [
+ ExecMethod = AttrExec ;
+ StateMethod = AttrState ;
+ ]
+ SID_GRADIENT // ole : no, status : play rec
+ [
+ ExecMethod = AttrExec ;
+ StateMethod = AttrState ;
+ ]
+ SID_SELECTGRADIENT // ole : no, status : play rec
+ [
+ ExecMethod = AttrExec ;
+ StateMethod = AttrState ;
+ ]
+ SID_SELECTHATCH // ole : no, status : play rec
+ [
+ ExecMethod = AttrExec ;
+ StateMethod = AttrState ;
+ ]
+ SID_UNSELECT // ole : no, status : play rec
+ [
+ ExecMethod = AttrExec ;
+ StateMethod = AttrState ;
+ ]
+ SID_TEXTATTR_DLG // ole : no, status : play rec
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_MEASURE_DLG // ole : no, status : play rec
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_CONNECTION_DLG // ole : no, status : play rec
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_CONNECTION_NEW_ROUTING // ole : no, status : play rec
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_SCAN // ole : no, status : todo
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_TWAIN_SELECT // ole : no, status : todo
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_TWAIN_TRANSFER // ole : no, status : todo
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_IMAP // ole : yes, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_IMAP_EXEC // ole : no, status : ?
+ [
+ ExecMethod = ExecIMap ;
+ StateMethod = GetIMapState ;
+ ]
+ SID_GLUE_EDITMODE // ole : no, status : ?
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_GLUE_INSERT_POINT // ole : no, status : ?
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_GLUE_PERCENT // ole : no, status : ?
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_GLUE_ESCDIR // ole : no, status : ?
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_GLUE_ESCDIR_LEFT // ole : no, status : ?
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_GLUE_ESCDIR_RIGHT // ole : no, status : ?
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_GLUE_ESCDIR_TOP // ole : no, status : ?
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_GLUE_ESCDIR_BOTTOM // ole : no, status : ?
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_GLUE_HORZALIGN_CENTER // ole : no, status : ?
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_GLUE_HORZALIGN_LEFT // ole : no, status : ?
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_GLUE_HORZALIGN_RIGHT // ole : no, status : ?
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_GLUE_VERTALIGN_CENTER // ole : no, status : ?
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_GLUE_VERTALIGN_TOP // ole : no, status : ?
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_GLUE_VERTALIGN_BOTTOM // ole : no, status : ?
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_POLYGON_MORPHING // ole : no, status : no
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_GRID_FRONT // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_HELPLINES_FRONT // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_SHOW_ITEMBROWSER // ole : no, status : play rec
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_AUTOSPELL_CHECK // ole : no, status : play rec
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_CONVERT_TO_3D_LATHE_FAST // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ // Slots in der Optionsleiste
+ SID_BEZIER_EDIT // ole : no, status : ?
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_GLUE_EDITMODE // ole : no, status : ?
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_GRID_VISIBLE // ole : no, status : ?
+ [
+ ExecMethod = ExecOptionsBar ;
+ StateMethod = GetOptionsBarState ;
+ //ExecMethod = FuTemporary ;
+ //StateMethod = GetMenuState ;
+ ]
+ SID_HELPLINES_VISIBLE // ole : no, status : ?
+ [
+ ExecMethod = ExecOptionsBar ;
+ StateMethod = GetOptionsBarState ;
+ //ExecMethod = FuTemporary ;
+ //StateMethod = GetMenuState ;
+ ]
+ // Neue Slots fuer Optionsleiste
+ SID_GRAPHIC_DRAFT // ole : ?, status : ?
+ [
+ ExecMethod = ExecOptionsBar ;
+ StateMethod = GetOptionsBarState ;
+ ]
+ SID_FILL_DRAFT // ole : ?, status : ?
+ [
+ ExecMethod = ExecOptionsBar ;
+ StateMethod = GetOptionsBarState ;
+ ]
+ SID_TEXT_DRAFT // ole : ?, status : ?
+ [
+ ExecMethod = ExecOptionsBar ;
+ StateMethod = GetOptionsBarState ;
+ ]
+ SID_LINE_DRAFT // ole : ?, status : ?
+ [
+ ExecMethod = ExecOptionsBar ;
+ StateMethod = GetOptionsBarState ;
+ ]
+ SID_HANDLES_DRAFT // ole : ?, status : ?
+ [
+ ExecMethod = ExecOptionsBar ;
+ StateMethod = GetOptionsBarState ;
+ ]
+ SID_SOLID_CREATE // ole : ?, status : ?
+ [
+ ExecMethod = ExecOptionsBar ;
+ StateMethod = GetOptionsBarState ;
+ ]
+ SID_HELPLINES_USE // ole : ?, status : ?
+ [
+ ExecMethod = ExecOptionsBar ;
+ StateMethod = GetOptionsBarState ;
+ ]
+ SID_HELPLINES_MOVE // ole : ?, status : ?
+ [
+ ExecMethod = ExecOptionsBar ;
+ StateMethod = GetOptionsBarState ;
+ ]
+ SID_GRID_USE // ole : ?, status : ?
+ [
+ ExecMethod = ExecOptionsBar ;
+ StateMethod = GetOptionsBarState ;
+ ]
+ SID_SNAP_BORDER // ole : ?, status : ?
+ [
+ ExecMethod = ExecOptionsBar ;
+ StateMethod = GetOptionsBarState ;
+ ]
+ SID_SNAP_FRAME // ole : ?, status : ?
+ [
+ ExecMethod = ExecOptionsBar ;
+ StateMethod = GetOptionsBarState ;
+ ]
+ SID_SNAP_POINTS // ole : ?, status : ?
+ [
+ ExecMethod = ExecOptionsBar ;
+ StateMethod = GetOptionsBarState ;
+ ]
+ SID_QUICKEDIT // ole : ?, status : ?
+ [
+ ExecMethod = ExecOptionsBar ;
+ StateMethod = GetOptionsBarState ;
+ ]
+ SID_PICK_THROUGH // ole : ?, status : ?
+ [
+ ExecMethod = ExecOptionsBar ;
+ StateMethod = GetOptionsBarState ;
+ ]
+ SID_BIG_HANDLES // ole : ?, status : ?
+ [
+ ExecMethod = ExecOptionsBar ;
+ StateMethod = GetOptionsBarState ;
+ ]
+ SID_DOUBLECLICK_TEXTEDIT // ole : ?, status : ?
+ [
+ ExecMethod = ExecOptionsBar ;
+ StateMethod = GetOptionsBarState ;
+ ]
+ SID_CLICK_CHANGE_ROTATION // ole : ?, status : ?
+ [
+ ExecMethod = ExecOptionsBar ;
+ StateMethod = GetOptionsBarState ;
+ ]
+ SID_CONVERT_TO_1BIT_THRESHOLD // ole : no, status : ?
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_CONVERT_TO_1BIT_MATRIX // ole : no, status : ?
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_CONVERT_TO_4BIT_GRAYS // ole : no, status : ?
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_CONVERT_TO_4BIT_COLORS // ole : no, status : ?
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_CONVERT_TO_8BIT_GRAYS // ole : no, status : ?
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_CONVERT_TO_8BIT_COLORS // ole : no, status : ?
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_CONVERT_TO_24BIT // ole : no, status : ?
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_HYPHENATION // ole : no, status : play rec
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetAttrState ;
+ ]
+ SID_DUPLICATE_PAGE // ole : no, status : play rec
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_INSERT_FLD_DATE_FIX // ole : no, status : play rec
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_INSERT_FLD_DATE_VAR // ole : no, status : play rec
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_INSERT_FLD_TIME_FIX // ole : no, status : play rec
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_INSERT_FLD_TIME_VAR // ole : no, status : play rec
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_INSERT_FLD_PAGE // ole : no, status : play rec
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_INSERT_FLD_FILE // ole : no, status : play rec
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_INSERT_FLD_AUTHOR // ole : no, status : play rec
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_MODIFY_FIELD // ole : no, status : play rec
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_OUTPUT_QUALITY_COLOR // ole : no, status : play rec
+ [
+ ExecMethod = ExecCtrl ;
+ StateMethod = GetCtrlState ;
+ ]
+ SID_OUTPUT_QUALITY_GRAYSCALE // ole : no, status : play rec
+ [
+ ExecMethod = ExecCtrl ;
+ StateMethod = GetCtrlState ;
+ ]
+ SID_OUTPUT_QUALITY_BLACKWHITE // ole : no, status : play rec
+ [
+ ExecMethod = ExecCtrl ;
+ StateMethod = GetCtrlState ;
+ ]
+ SID_PREVIEW_QUALITY_COLOR // ole : no, status : play rec
+ [
+ ExecMethod = ExecCtrl ;
+ StateMethod = GetCtrlState ;
+ ]
+ SID_PREVIEW_QUALITY_GRAYSCALE // ole : no, status : play rec
+ [
+ ExecMethod = ExecCtrl ;
+ StateMethod = GetCtrlState ;
+ ]
+ SID_PREVIEW_QUALITY_BLACKWHITE // ole : no, status : play rec
+ [
+ ExecMethod = ExecCtrl ;
+ StateMethod = GetCtrlState ;
+ ]
+ SID_MAIL_SCROLLBODY_PAGEDOWN // ole : no, status : ?
+ [
+ ExecMethod = ExecCtrl ;
+ StateMethod = GetCtrlState ;
+ ]
+ SID_EDIT_HYPERLINK // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+}
+
+/*************************************************************************
+
+ Source Code Control System - History
+
+ $Log: not supported by cvs2svn $
+ Revision 1.62 2000/08/11 12:44:21 ka
+ #77537# Gallery reanimation
+
+ Revision 1.61 2000/05/12 11:45:28 cl
+ unicode
+
+ Revision 1.60 2000/02/11 16:07:06 pw
+ #72717# New slot SID_EDIT_HYPERLINK
+
+ Revision 1.59 2000/01/17 13:48:46 aw
+ #71992# new distribute dialog and implementation
+
+ Revision 1.58 1999/12/15 12:16:17 pw
+ #70510# Add SID_JUMPTOMARK
+
+ Revision 1.57 1999/11/22 16:22:12 aw
+ changes due to Merge() - functionality
+
+ Revision 1.56 1999/11/08 15:58:36 pw
+ add slots SID_POLY_ ...
+
+ Revision 1.55 1999/11/01 15:12:07 pw
+ removed SID_INSERT_HYPERLINK
+
+ Revision 1.54 1999/10/18 15:52:28 pw
+ new slot SID_INSERT_HYPERLINK
+
+ Revision 1.53 1999/09/14 15:59:54 pw
+ #68378# Set Flag MenuCOnfig of SID_OUTLINE_BULLET, SID_OBJECT_ALIGN
+
+ Revision 1.52 1999/09/02 11:22:05 pw
+ #68378# set MenuConfig=TRUE of SID_RULER
+
+ Revision 1.51 1999/08/13 14:20:17 aw
+ support for new transparence and gradient IAOs (InterActiveObjects)
+
+
+ Rev 1.49 02 Aug 1999 12:24:14 PW
+ new slots SID_CONVERT_TO_METAFILE,SID_CONVERT_TO_BITMAP
+
+ Rev 1.48 14 Jul 1999 11:11:24 KA
+ Graphicfilters now in drgrfobj.sdi
+
+ Rev 1.47 12 Jul 1999 09:26:58 KA
+ #67438: Filter effects for graphics
+
+ Rev 1.46 09 Jul 1999 17:46:40 PW
+ #58419# :new slots: SID_INSERT_SOUND,SID_INSERT_VIDEO
+
+ Rev 1.45 25 Mar 1999 17:37:28 CL
+ #63859# ConfigName und HelpText entfernt
+
+ Rev 1.44 15 Mar 1999 20:10:44 HJS
+ Merge SRC515: 15.03.99 - 20.10.28 (NoBranch)
+
+ Rev 1.43 12 Mar 1999 20:37:14 MH
+ Merge SRC515: 12.03.99 - 20.36.55 (NoBranch)
+
+ Rev 1.42 10 Mar 1999 22:44:12 HJS
+ Merge SRC515: 10.03.99 - 22.43.54 (NoBranch)
+
+ Rev 1.41 09 Mar 1999 14:07:46 DL
+ #62286# +SID_ATTR_YEAR2000
+
+ Rev 1.40 23 Feb 1999 00:50:30 HJS
+ Merge SRC514: 23.02.99 - 00.50.03 (NoBranch)
+
+ Rev 1.39 10 Feb 1999 22:05:38 HJS
+ Merge SRC513: 10.02.99 - 22.04.53 (NoBranch)
+
+ Rev 1.38 10 Feb 1999 03:39:36 HJS
+ Merge SRC513: 10.02.99 - 03.39.06 (NoBranch)
+
+ Rev 1.37 29 Oct 1998 17:24:58 CL
+ #58507# SID_CHOOSE_CONTROLS ersetzt durch SID_OBJECT_SELECT
+
+ Rev 1.36 27 Oct 1998 16:01:26 HJS
+ merge int505 new 27.10.98
+
+ Rev 1.35 21 Oct 1998 18:50:02 HJS
+ merge int505 new 21.10.98
+
+ Rev 1.34 30 Sep 1998 18:24:10 HJS
+ merge prt505 new 30.09.98
+
+ Rev 1.33 29 Sep 1998 21:46:50 HJS
+ merge prt505 new 29.09.98
+
+ Rev 1.32 10 Sep 1998 14:28:52 HJS
+ merge prt504 new 10.09.98
+
+ Rev 1.31 08 Sep 1998 20:09:44 HJS
+ merge prt504 new 08.09.98
+
+ Rev 1.30 31 Aug 1998 19:25:24 HJS
+ merge prt503 old 31.08.98
+
+ Rev 1.29 12 Aug 1998 17:15:50 HJS
+ merge prt503 old 12.08.98
+
+ Rev 1.28 03 Jul 1998 14:02:24 DL
+ Neu: SID_MAIL_SCROLLBODY_PAGEDOWN
+
+ Rev 1.27 02 Apr 1998 16:32:36 SOH
+ 3D-Dialog (Slot) entfernt
+
+ Rev 1.26 05 Mar 1998 08:58:44 AWO
+ Richtige Execute-Methode fuer SID_FM_CREATE_CONTROL
+
+ Rev 1.25 27 Feb 1998 10:09:26 AWO
+ FmControlSlots wieder entfernt
+
+ Rev 1.24 25 Feb 1998 15:05:06 SOH
+ #47223#: Tabulatoren (und Einzuege) auch ueber Lineal einstellbar
+
+ Rev 1.23 18 Feb 1998 17:47:56 SOH
+ + Slots fuer Ausgabe-Modi (SW, etc.)
+
+ Rev 1.22 17 Feb 1998 15:48:32 AWO
+ SID_FM_ADD_TABLE
+
+ Rev 1.21 16 Feb 1998 11:32:50 AWO
+ Neue FormSlots
+
+ Rev 1.20 13 Feb 1998 15:56:30 DG
+ erw.
+
+ Rev 1.19 10 Feb 1998 09:53:48 DG
+ Intergration von FormProperties
+
+ Rev 1.18 09 Feb 1998 10:39:08 AWO
+ Neu: SID_FM_CONFIG
+
+ Rev 1.17 10 Dec 1997 20:32:04 HJS
+ merge vcl364 10.12.97
+
+ Rev 1.16 01 Dec 1997 19:23:18 HJS
+ merge vcl364 01.12.97
+
+ Rev 1.15 04 Nov 1997 12:04:16 HJS
+ merge vcl364 04.11.97
+
+ Rev 1.14 07 Oct 1997 11:40:04 HJS
+ merge vcl364 07.10.97
+
+ Rev 1.13 28 Aug 1997 12:33:20 MBA
+ Neue Interface-Namen
+
+ Rev 1.12 15 Aug 1997 12:26:14 OM
+ Draw- und Controlslots Bereichsumstellung
+
+ Rev 1.11 07 Aug 1997 20:05:18 HJS
+ merge sp2364 07.08.97
+
+ Rev 1.10 31 Jul 1997 17:47:02 HJS
+ merge sp2364 31.07.97
+
+ Rev 1.9 29 Jul 1997 10:04:50 OM
+ Hyperlink Statusmethode
+
+ Rev 1.8 24 Jul 1997 14:02:54 HJS
+ merge sp2364 24.07.97
+
+ Rev 1.7 22 Jul 1997 14:23:04 HJS
+ merge sp2364 22.07.97
+
+ Rev 1.6 15 Jul 1997 16:15:58 SOH
+ + Slots fuer Feldbefehle (Dateiname und Autor)
+
+ Rev 1.5 04 Jul 1997 15:26:24 SOH
+ +/* Slots fuer fixe/variable Zeit-/Datumsfelder; + SID_MODIFY_FIELD
+
+ Rev 1.4 03 Jul 1997 12:54:22 HJS
+ merge sp2364 03.07.97
+
+ Rev 1.3 01 Jul 1997 16:37:30 SOH
+ + Slots fuer Feldbefehle (SID_INSERT_FLD_*)
+
+ Rev 1.2 20 Jun 1997 13:58:28 HJS
+ merge 364 20.06.97
+
+ Rev 1.1 30 May 1997 15:55:00 SOH
+ Neue Slots fuer 3D-Controller
+
+ Rev 1.0 09 Apr 1997 13:20:16 SOH
+ Initial revision.
+
+*************************************************************************/
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sd/sdi/app.sdi b/sd/sdi/app.sdi
new file mode 100644
index 000000000000..dbbb70f73a04
--- /dev/null
+++ b/sd/sdi/app.sdi
@@ -0,0 +1,68 @@
+
+interface StarImpress : Module
+[
+ uuid ( "A1814AE0-07D4-11CF-89CA-008029E4B0B1" )
+]
+{
+ SfxVoidItem NewDoc SID_NEWDOC // ole : ?, status : ?
+ (
+ )
+ [
+ ExecMethod = Execute ;
+ StateMethod = GetState ;
+ GroupId = GID_APPLICATION ;
+ Cachable , Container ;
+ ]
+
+ SID_ATTR_METRIC
+ [
+ ExecMethod = Execute;
+ StateMethod = GetState;
+ ]
+
+ SID_AUTOPILOT // ole : ?, status : ?
+ [
+ ExecMethod = Execute ;
+ StateMethod = GetState ;
+ ]
+
+ SID_OPENDOC // ole() api()
+ [
+
+ ExecMethod = Execute ;
+ StateMethod = GetState ;
+ ]
+
+ SID_AUTOSPELL_MARKOFF // ole() api()
+ [
+
+ ExecMethod = Execute ;
+ StateMethod = GetState ;
+ ]
+
+ SID_AUTOSPELL_CHECK // ole() api()
+ [
+
+ ExecMethod = Execute ;
+ StateMethod = GetState ;
+ ]
+
+ SID_ATTR_LANGUAGE // ole() api()
+ [
+
+ ExecMethod = Execute ;
+ StateMethod = GetState ;
+ ]
+
+ SID_OUTLINE_TO_IMPRESS // ole() api()
+ [
+ ExecMethod = Execute ;
+ StateMethod = GetState ;
+ ]
+}
+
+shell SdModule
+{
+ import StarImpress[Automation];
+}
+
diff --git a/sd/sdi/docshell.sdi b/sd/sdi/docshell.sdi
new file mode 100644
index 000000000000..f11fa3796c56
--- /dev/null
+++ b/sd/sdi/docshell.sdi
@@ -0,0 +1,52 @@
+/*************************************************************************
+#*
+#* $Workfile: DOCSHELL.IDL $
+#*
+#* Beschreibung Impress-DocShell-IDL
+#*
+#* Ersterstellung SOH (04.04.97)
+#* Letzte Aenderung $Author: hr $ $Date: 2000-09-18 16:48:29 $
+#* $Revision: 1.1.1.1 $
+#*
+#* $Logfile: T:/sd/idl/docshell.idv $
+#*
+#* Copyright (c) 1989 - 1999, STAR DIVISION
+#*
+#*************************************************************************
+
+ Source Code Control System - Header
+
+ $Header: /zpool/svn/migration/cvs_rep_09_09_08/code/sd/sdi/docshell.sdi,v 1.1.1.1 2000-09-18 16:48:29 hr Exp $
+
+*************************************************************************/
+
+
+interface ImpressDocument : DrawDocument
+[
+ uuid ( "D8E15AE0-2FB4-11CF-89CA-008029E4B0B1" ) ;
+]
+{
+}
+
+shell SdDrawDocShell : SfxObjectShell
+{
+ import ImpressDocument[Automation];
+}
+
+/*************************************************************************
+
+ Source Code Control System - History
+
+ $Log: not supported by cvs2svn $
+ Revision 1.36 1997/08/28 10:32:32 MBA
+ Neue Interface-Namen
+
+
+ Rev 1.35 28 Aug 1997 12:32:32 MBA
+ Neue Interface-Namen
+
+ Rev 1.34 09 Apr 1997 13:18:44 SOH
+ Umstellung/Aufsplittung: Impress/Draw
+
+*************************************************************************/
+
diff --git a/sd/sdi/drbezob.sdi b/sd/sdi/drbezob.sdi
new file mode 100644
index 000000000000..9445800acf03
--- /dev/null
+++ b/sd/sdi/drbezob.sdi
@@ -0,0 +1,64 @@
+
+shell SdDrawBezierObjectBar
+{
+ SID_BEZIER_MOVE // ole : no, status : ?
+ [
+ ExecMethod = Execute;
+ StateMethod = GetAttrState;
+ ]
+
+ SID_BEZIER_INSERT // ole : no, status : ?
+ [
+ ExecMethod = Execute;
+ StateMethod = GetAttrState;
+ ]
+
+ SID_BEZIER_DELETE // ole : no, status : ?
+ [
+ ExecMethod = Execute;
+ StateMethod = GetAttrState;
+ ]
+
+ SID_BEZIER_CUTLINE // ole : no, status : ?
+ [
+ ExecMethod = Execute;
+ StateMethod = GetAttrState;
+ ]
+
+ SID_BEZIER_CONVERT // ole : no, status : ?
+ [
+ ExecMethod = Execute;
+ StateMethod = GetAttrState;
+ ]
+
+ SID_BEZIER_EDGE // ole : no, status : ?
+ [
+ ExecMethod = Execute;
+ StateMethod = GetAttrState;
+ ]
+
+ SID_BEZIER_SMOOTH // ole : no, status : ?
+ [
+ ExecMethod = Execute;
+ StateMethod = GetAttrState;
+ ]
+
+ SID_BEZIER_SYMMTR // ole : no, status : ?
+ [
+ ExecMethod = Execute;
+ StateMethod = GetAttrState;
+ ]
+
+ SID_BEZIER_ELIMINATE_POINTS // ole : no, status : ?
+ [
+ ExecMethod = Execute;
+ StateMethod = GetAttrState;
+ ]
+
+ SID_BEZIER_CLOSE // ole : no, status : ?
+ [
+ ExecMethod = Execute;
+ StateMethod = GetAttrState;
+ ]
+}
+
diff --git a/sd/sdi/drgrfob.sdi b/sd/sdi/drgrfob.sdi
new file mode 100644
index 000000000000..c74645432179
--- /dev/null
+++ b/sd/sdi/drgrfob.sdi
@@ -0,0 +1,111 @@
+shell SdDrawGrafObjectBar
+{
+ SID_GRAFTBX_FILTERS // ole : no, status : ?
+ [
+ ExecMethod = ExecuteFilter;
+ StateMethod = GetFilterState ;
+ ]
+ SID_GRAFFILTER_INVERT // ole : no, status : no
+ [
+ ExecMethod = ExecuteFilter;
+ StateMethod = GetFilterState ;
+ ]
+ SID_GRAFFILTER_SMOOTH // ole : no, status : no
+ [
+ ExecMethod = ExecuteFilter;
+ StateMethod = GetFilterState ;
+ ]
+ SID_GRAFFILTER_SHARPEN // ole : no, status : no
+ [
+ ExecMethod = ExecuteFilter;
+ StateMethod = GetFilterState ;
+ ]
+ SID_GRAFFILTER_REMOVENOISE // ole : no, status : no
+ [
+ ExecMethod = ExecuteFilter;
+ StateMethod = GetFilterState ;
+ ]
+ SID_GRAFFILTER_SOBEL // ole : no, status : no
+ [
+ ExecMethod = ExecuteFilter;
+ StateMethod = GetFilterState;
+ ]
+ SID_GRAFFILTER_MOSAIC // ole : no, status : no
+ [
+ ExecMethod = ExecuteFilter;
+ StateMethod = GetFilterState;
+ ]
+ SID_GRAFFILTER_EMBOSS // ole : no, status : no
+ [
+ ExecMethod = ExecuteFilter;
+ StateMethod = GetFilterState;
+ ]
+ SID_GRAFFILTER_POSTER // ole : no, status : no
+ [
+ ExecMethod = ExecuteFilter;
+ StateMethod = GetFilterState;
+ ]
+ SID_GRAFFILTER_POPART // ole : no, status : no
+ [
+ ExecMethod = ExecuteFilter;
+ StateMethod = GetFilterState;
+ ]
+ SID_GRAFFILTER_SEPIA // ole : no, status : no
+ [
+ ExecMethod = ExecuteFilter;
+ StateMethod = GetFilterState;
+ ]
+ SID_GRAFFILTER_SOLARIZE // ole : no, status : no
+ [
+ ExecMethod = ExecuteFilter;
+ StateMethod = GetFilterState;
+ ]
+
+//------------------------------------------------------------------------------
+
+ SID_ATTR_GRAF_MODE
+ [
+ ExecMethod = Execute;
+ StateMethod = GetAttrState;
+ ]
+ SID_ATTR_GRAF_RED
+ [
+ ExecMethod = Execute;
+ StateMethod = GetAttrState;
+ ]
+ SID_ATTR_GRAF_GREEN
+ [
+ ExecMethod = Execute;
+ StateMethod = GetAttrState;
+ ]
+ SID_ATTR_GRAF_BLUE
+ [
+ ExecMethod = Execute;
+ StateMethod = GetAttrState;
+ ]
+ SID_ATTR_GRAF_LUMINANCE
+ [
+ ExecMethod = Execute;
+ StateMethod = GetAttrState;
+ ]
+ SID_ATTR_GRAF_CONTRAST
+ [
+ ExecMethod = Execute;
+ StateMethod = GetAttrState;
+ ]
+ SID_ATTR_GRAF_GAMMA
+ [
+ ExecMethod = Execute;
+ StateMethod = GetAttrState;
+ ]
+ SID_ATTR_GRAF_TRANSPARENCE
+ [
+ ExecMethod = Execute;
+ StateMethod = GetAttrState;
+ ]
+ SID_ATTR_GRAF_INVERT
+ [
+ ExecMethod = Execute;
+ StateMethod = GetAttrState;
+ ]
+}
diff --git a/sd/sdi/drtxtob.sdi b/sd/sdi/drtxtob.sdi
new file mode 100644
index 000000000000..891dac4a2227
--- /dev/null
+++ b/sd/sdi/drtxtob.sdi
@@ -0,0 +1,165 @@
+
+
+shell SdDrawTextObjectBar
+{
+ SfxTemplateItem ApplyTemplate SID_STYLE_APPLY // ole : ?, status : ?
+ [
+ ExecMethod = Execute;
+ StateMethod = GetAttrState;
+ GroupId = GID_DOCUMENT;
+ Cachable, AutoUpdate;
+ ]
+
+ SID_ATTR_CHAR_FONT // ole : ?, status : ?
+ [
+ ExecMethod = Execute;
+ StateMethod = GetAttrState;
+ ]
+
+ SID_ATTR_CHAR_FONTHEIGHT // ole : ?, status : ?
+ [
+ ExecMethod = Execute;
+ StateMethod = GetAttrState;
+ ]
+
+ SID_ATTR_CHAR_COLOR // ole : ?, status : ?
+ [
+ ExecMethod = Execute;
+ StateMethod = GetAttrState;
+ ]
+
+ SID_ATTR_CHAR_WEIGHT // ole : ?, status : ?
+ [
+ ExecMethod = Execute;
+ StateMethod = GetAttrState;
+ ]
+
+ SID_ATTR_CHAR_POSTURE // ole : ?, status : ?
+ [
+ ExecMethod = Execute;
+ StateMethod = GetAttrState;
+ ]
+
+ SID_ATTR_CHAR_UNDERLINE // ole : ?, status : ?
+ [
+ ExecMethod = Execute;
+ StateMethod = GetAttrState;
+ ]
+
+ SID_ATTR_CHAR_CONTOUR // ole : ?, status : ?
+ [
+ ExecMethod = Execute;
+ StateMethod = GetAttrState;
+ ]
+
+ SID_ATTR_CHAR_STRIKEOUT // ole : ?, status : ?
+ [
+ ExecMethod = Execute;
+ StateMethod = GetAttrState;
+ ]
+
+ SID_ATTR_CHAR_SHADOWED // ole : ?, status : ?
+ [
+ ExecMethod = Execute;
+ StateMethod = GetAttrState;
+ ]
+
+ SfxBoolItem AdjustLeft SID_ATTR_PARA_ADJUST_LEFT // ole : ?, status : ?
+ [
+ ExecMethod = Execute;
+ StateMethod = GetAttrState;
+// Cachable, AutoUpdate;
+ ]
+
+ SfxBoolItem AdjustCenter SID_ATTR_PARA_ADJUST_CENTER // ole : ?, status : ?
+ [
+ ExecMethod = Execute;
+ StateMethod = GetAttrState;
+// Cachable, AutoUpdate;
+ ]
+
+ SfxBoolItem AdjustRight SID_ATTR_PARA_ADJUST_RIGHT // ole : ?, status : ?
+ [
+ ExecMethod = Execute;
+ StateMethod = GetAttrState;
+// Cachable, AutoUpdate;
+ ]
+
+ SfxBoolItem AdjustBlock SID_ATTR_PARA_ADJUST_BLOCK // ole : ?, status : ?
+ [
+ ExecMethod = Execute;
+ StateMethod = GetAttrState;
+// Cachable, AutoUpdate;
+ ]
+
+ SfxBoolItem LineSpacing100 SID_ATTR_PARA_LINESPACE_10 // ole : ?, status : ?
+ [
+ ExecMethod = Execute;
+ StateMethod = GetAttrState;
+// Cachable, AutoUpdate;
+ ]
+
+ SfxBoolItem LineSpacing150 SID_ATTR_PARA_LINESPACE_15 // ole : ?, status : ?
+ [
+ ExecMethod = Execute;
+ StateMethod = GetAttrState;
+// Cachable, AutoUpdate;
+ ]
+
+ SfxBoolItem LineSpacing200 SID_ATTR_PARA_LINESPACE_20 // ole : ?, status : ?
+ [
+ ExecMethod = Execute;
+ StateMethod = GetAttrState;
+// Cachable, AutoUpdate;
+ ]
+
+ SID_SET_SUPER_SCRIPT // ole : ?, status : ?
+ [
+ ExecMethod = Execute;
+ StateMethod = GetAttrState;
+ ]
+
+ SID_SET_SUB_SCRIPT // ole : ?, status : ?
+ [
+ ExecMethod = Execute;
+ StateMethod = GetAttrState;
+ ]
+
+ SID_PARASPACE_INCREASE // ole : ?, status : ?
+ [
+ ExecMethod = Execute;
+ StateMethod = GetAttrState;
+ ]
+
+ SID_PARASPACE_DECREASE // ole : ?, status : ?
+ [
+ ExecMethod = Execute;
+ StateMethod = GetAttrState;
+ ]
+
+ SID_OUTLINE_LEFT // ole : no, status : ?
+ [
+ ExecMethod = Execute ;
+ StateMethod = GetAttrState ;
+ ]
+ SID_OUTLINE_RIGHT // ole : no, status : ?
+ [
+ ExecMethod = Execute ;
+ StateMethod = GetAttrState ;
+ ]
+ SID_OUTLINE_UP // ole : no, status : ?
+ [
+ ExecMethod = Execute ;
+ StateMethod = GetAttrState ;
+ ]
+ SID_OUTLINE_DOWN // ole : no, status : ?
+ [
+ ExecMethod = Execute ;
+ StateMethod = GetAttrState ;
+ ]
+ FN_NUM_BULLET_ON // ole : ?, status : ?
+ [
+ ExecMethod = Execute;
+ StateMethod = GetAttrState;
+ ]
+}
diff --git a/sd/sdi/drviewsh.sdi b/sd/sdi/drviewsh.sdi
new file mode 100644
index 000000000000..340f8dde64cb
--- /dev/null
+++ b/sd/sdi/drviewsh.sdi
@@ -0,0 +1,245 @@
+/*************************************************************************
+#*
+#* $Workfile: drviewsh.sdi $
+#*
+#* Beschreibung ImpressViewShell-IDL
+#*
+#* Ersterstellung SOH (04.04.97)
+#* Letzte Aenderung $Author: hr $ $Date: 2000-09-18 16:48:29 $
+#* $Revision: 1.1.1.1 $
+#*
+#* $Logfile: T:/sd/sdi/drviewsh.sdv $
+#*
+#* Copyright (c) 1989 - 1999, STAR DIVISION
+#*
+#*************************************************************************
+
+ Source Code Control System - Header
+
+ $Header: /zpool/svn/migration/cvs_rep_09_09_08/code/sd/sdi/drviewsh.sdi,v 1.1.1.1 2000-09-18 16:48:29 hr Exp $
+
+*************************************************************************/
+
+interface ImpressEditView : DrawView
+[
+ uuid ( "661B07E0-2FB4-11CF-89CA-008029E4B0B1" ) ;
+]
+{
+ SID_DIAMODE // ole : no, status : play rec
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_OUTLINEMODE // ole : no, status : play rec
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_NOTESMODE // ole : no, status : play rec
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_HANDOUTMODE // ole : no, status : play rec
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_DIA // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_MODIFYPAGE // ole : no, status : play rec
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_ANIMATION_OBJECTS // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_ANIMATION_EFFECTS // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_EFFECT_WIN // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_EFFECT_INIT // ole : no, status : ?
+ [
+ ExecMethod = ExecEffectWin ;
+ StateMethod = GetEffectWinState ;
+ ]
+ SID_EFFECT_STATE // ole : no, status : ?
+ [
+ ExecMethod = ExecEffectWin ;
+ StateMethod = GetEffectWinState ;
+ ]
+ SID_EFFECT_ASSIGN // ole : no, status : ?
+ [
+ ExecMethod = ExecEffectWin ;
+ StateMethod = GetEffectWinState ;
+ ]
+ SID_SLIDE_CHANGE_WIN // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_SLIDE_CHANGE_STATE // ole : no, status : ?
+ [
+ ExecMethod = ExecEffectWin ;
+ StateMethod = GetEffectWinState ;
+ ]
+ SID_SLIDE_CHANGE_ASSIGN // ole : no, status : ?
+ [
+ ExecMethod = ExecEffectWin ;
+ StateMethod = GetEffectWinState ;
+ ]
+ SID_REHEARSE_TIMINGS // ole : no, status : ?
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_PRESENTATION // ole : no, status : ?
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_PRESENTATION_END // ole : no, status : ?
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ SfxTemplateItem TemplateFamily5 SID_STYLE_FAMILY5 // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetAttrState ;
+ Export = FALSE ;
+ ]
+ SID_ANIMATOR_INIT // ole : no, status : ?
+ [
+ ExecMethod = ExecAnimationWin ;
+ StateMethod = GetAnimationWinState ;
+ ]
+ SID_ANIMATOR_ADD // ole : no, status : ?
+ [
+ ExecMethod = ExecAnimationWin ;
+ StateMethod = GetAnimationWinState ;
+ ]
+ SID_ANIMATOR_CREATE // ole : no, status : ?
+ [
+ ExecMethod = ExecAnimationWin ;
+ StateMethod = GetAnimationWinState ;
+ ]
+ SID_ANIMATOR_STATE // ole : no, status : ?
+ [
+ ExecMethod = ExecAnimationWin ;
+ StateMethod = GetAnimationWinState ;
+ ]
+ SID_NAVIGATOR_LIVE // ole : no, status : ?
+ [
+ ExecMethod = ExecNavigatorWin ;
+ StateMethod = GetNavigatorWinState ;
+ ]
+ SID_NAVIGATOR_PEN // ole : no, status : ?
+ [
+ ExecMethod = ExecNavigatorWin ;
+ StateMethod = GetNavigatorWinState ;
+ ]
+ SID_LIVE_PRESENTATION // ole : no, status : ?
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_ANIMATIONMODE // ole : no, status : play rec
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_ACTIONMODE // ole : no, status : play rec
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_PRESENTATION_DLG
+ [
+ ExecMethod = FuTemporary ;
+ ]
+ SID_CUSTOMSHOW_DLG
+ [
+ ExecMethod = FuTemporary ;
+ ]
+ SID_EXPAND_PAGE // ole : no, status : play rec
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ReadOnlyDoc = FALSE;
+ ]
+ SID_SUMMARY_PAGE // ole : no, status : play rec
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_SLIDE_MASTERPAGE // ole : no, status : play rec
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_NOTES_MASTERPAGE // ole : no, status : play rec
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_HANDOUT_MASTERPAGE // ole : no, status : play rec
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_TITLE_MASTERPAGE // ole : no, status : play rec
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_STYLE_FAMILY
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+}
+
+shell SdDrawViewShell : SfxViewShell
+{
+ import ImpressEditView[Automation];
+}
+
+/*************************************************************************
+
+ Source Code Control System - History
+
+ $Log: not supported by cvs2svn $
+ Revision 1.264 1999/12/15 12:15:40 pw
+ #70510# Removed SID_JUMPTOMARK
+
+ Revision 1.263 1998/11/04 14:08:16 CL
+ #58128# +SID_STYLE_FAMILY
+
+
+ Rev 1.262 04 Nov 1998 15:08:16 CL
+ #58128# +SID_STYLE_FAMILY
+
+ Rev 1.261 12 Nov 1997 12:11:00 SOH
+ + SID_CUSTOMSHOW_DLG
+
+ Rev 1.260 28 Aug 1997 12:33:46 MBA
+ Neue Interface-Namen
+
+ Rev 1.259 09 Apr 1997 13:20:02 SOH
+ Umstellung/Aufsplittung: Impress/Draw
+
+*************************************************************************/
+
diff --git a/sd/sdi/grdocsh.sdi b/sd/sdi/grdocsh.sdi
new file mode 100644
index 000000000000..99254756268f
--- /dev/null
+++ b/sd/sdi/grdocsh.sdi
@@ -0,0 +1,52 @@
+/*************************************************************************
+#*
+#* $Workfile: GRDOCSH.IDL $
+#*
+#* Beschreibung Draw (Graphic) -DocShell-IDL
+#*
+#* Ersterstellung SOH 04.04.97
+#* Letzte Aenderung $Author: hr $ $Date: 2000-09-18 16:48:29 $
+#* $Revision: 1.1.1.1 $
+#*
+#* $Logfile: T:/sd/idl/grdocsh.idv $
+#*
+#* Copyright (c) 1989 - 1999, STAR DIVISION
+#*
+#*************************************************************************
+
+ Source Code Control System - Header
+
+ $Header: /zpool/svn/migration/cvs_rep_09_09_08/code/sd/sdi/grdocsh.sdi,v 1.1.1.1 2000-09-18 16:48:29 hr Exp $
+
+*************************************************************************/
+
+
+interface GraphicDocument : DrawDocument
+[
+ uuid ( "D7474100-ACDF-11D0-89CB-008029E4B0B1" ) ; // erzeug am 04.04.97
+]
+{
+}
+
+shell SdGraphicDocShell : SfxObjectShell
+{
+ import GraphicDocument[Automation];
+}
+
+/*************************************************************************
+
+ Source Code Control System - History
+
+ $Log: not supported by cvs2svn $
+ Revision 1.2 1997/08/28 10:33:08 MBA
+ Neue Interface-Namen
+
+
+ Rev 1.1 28 Aug 1997 12:33:08 MBA
+ Neue Interface-Namen
+
+ Rev 1.0 09 Apr 1997 13:19:06 SOH
+ Initial revision.
+
+*************************************************************************/
+
diff --git a/sd/sdi/grviewsh.sdi b/sd/sdi/grviewsh.sdi
new file mode 100644
index 000000000000..95de92d9c6de
--- /dev/null
+++ b/sd/sdi/grviewsh.sdi
@@ -0,0 +1,52 @@
+/*************************************************************************
+#*
+#* $Workfile: GRVIEWSH.IDL $
+#*
+#* Beschreibung Draw (Graphic) ViewShell-IDL
+#*
+#* Ersterstellung SOH 04.04.97
+#* Letzte Aenderung $Author: hr $ $Date: 2000-09-18 16:48:29 $
+#* $Revision: 1.1.1.1 $
+#*
+#* $Logfile: T:/sd/idl/grviewsh.idv $
+#*
+#* Copyright (c) 1989 - 1999, STAR DIVISION
+#*
+#*************************************************************************
+
+ Source Code Control System - Header
+
+ $Header: /zpool/svn/migration/cvs_rep_09_09_08/code/sd/sdi/grviewsh.sdi,v 1.1.1.1 2000-09-18 16:48:29 hr Exp $
+
+*************************************************************************/
+
+
+interface GraphicEditView : DrawView
+[
+ uuid ( "95F11180-ACE0-11D0-89CA-008029E4B0B1" ) ;
+]
+{
+}
+
+shell SdGraphicViewShell : SfxViewShell
+{
+ import GraphicEditView[Automation];
+}
+
+/*************************************************************************
+
+ Source Code Control System - History
+
+ $Log: not supported by cvs2svn $
+ Revision 1.2 1997/08/28 10:33:00 MBA
+ Neue Interface-Namen
+
+
+ Rev 1.1 28 Aug 1997 12:33:00 MBA
+ Neue Interface-Namen
+
+ Rev 1.0 09 Apr 1997 13:20:22 SOH
+ Initial revision.
+
+*************************************************************************/
+
diff --git a/sd/sdi/makefile.mk b/sd/sdi/makefile.mk
new file mode 100644
index 000000000000..56665e2a31dd
--- /dev/null
+++ b/sd/sdi/makefile.mk
@@ -0,0 +1,124 @@
+#*************************************************************************
+#
+# $RCSfile: makefile.mk,v $
+#
+# $Revision: 1.1.1.1 $
+#
+# last change: $Author: hr $ $Date: 2000-09-18 16:48:29 $
+#
+# 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): _______________________________________
+#
+#
+#
+#*************************************************************************
+
+PRJ=..
+
+PRJNAME=sd
+TARGET=sdslots
+TARGET2=sdgslots
+SDI1EXPORT=sdnew
+SDI2EXPORT=sdnew
+SVSDIINC=$(PRJ)$/source$/ui$/inc
+
+# --- Settings -----------------------------------------------------
+
+.INCLUDE : svpre.mk
+.INCLUDE : settings.mk
+.INCLUDE : sv.mk
+
+# --- Files --------------------------------------------------------
+
+
+SDI1NAME=$(TARGET)
+SDI2NAME=$(TARGET2)
+SIDHRCNAME=SDSLOTS.HRC
+
+SVSDI1DEPEND= \
+ $(SOLARINCXDIR)$/ofa.ilb \
+ sdraw.sdi \
+ sdnew.sdi \
+ app.sdi \
+ _docsh.sdi \
+ docshell.sdi \
+ drtxtob.sdi \
+ drbezob.sdi \
+ drgrfob.sdi \
+ _drvwsh.sdi \
+ drviewsh.sdi \
+ outlnvsh.sdi \
+ slidvish.sdi \
+ sdslots.hrc \
+ $(PRJ)$/inc$/app.hrc
+
+SVSDI2DEPEND= \
+ $(SOLARINCXDIR)$/ofa.ilb \
+ sdraw.sdi \
+ sdnew.sdi \
+ app.sdi \
+ _docsh.sdi \
+ grdocsh.sdi \
+ drtxtob.sdi \
+ drbezob.sdi \
+ drgrfob.sdi \
+ _drvwsh.sdi \
+ grviewsh.sdi \
+ outlnvsh.sdi \
+ slidvish.sdi \
+ sdslots.hrc \
+ $(PRJ)$/inc$/app.hrc
+
+SRCFILES= \
+ sdslots.src
+
+# --- Targets -------------------------------------------------------
+
+.INCLUDE : target.mk
diff --git a/sd/sdi/outlnvsh.sdi b/sd/sdi/outlnvsh.sdi
new file mode 100644
index 000000000000..669534f1b31a
--- /dev/null
+++ b/sd/sdi/outlnvsh.sdi
@@ -0,0 +1,419 @@
+
+interface OutlineView : View
+[
+ uuid ( "92E2F580-2FB4-11CF-89CA-008029E4B0B1" ) ;
+]
+{
+ SID_CUT // ole : no, status : ?
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_COPY // ole : no, status : ?
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_PASTE // ole : no, status : ?
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_DELETE // ole : no, status : ?
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ Cachable , Asynchron ;
+ ]
+ SID_DRAWINGMODE // ole : no, status : play rec
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_DIAMODE // ole : no, status : play rec
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_OUTLINEMODE // ole : no, status : play rec
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_NOTESMODE // ole : no, status : play rec
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_HANDOUTMODE // ole : no, status : play rec
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_ZOOM_NEXT // ole : no, status : play rec
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_ZOOM_PREV // ole : no, status : play rec
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_ZOOM_TOOLBOX // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetStatusBarState ;
+ ]
+ SID_ATTR_ZOOM // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetStatusBarState ;
+ ]
+ SID_ZOOM_OUT // ole : no, status : play rec
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_ZOOM_IN // ole : no, status : play rec
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_SIZE_REAL // ole : no, status : play rec
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_SIZE_VISAREA // ole : no, status : no
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_HYPERLINK_SETLINK // ole : no, status : no
+ [
+ ExecMethod = FuTemporary ;
+ ]
+ SID_HYPERLINK_GETLINK // ole : no, status : no
+ [
+ StateMethod = GetCtrlState ;
+ ]
+ SID_OUTLINE_FORMAT // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_OUTLINE_COLLAPSE_ALL // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_OUTLINE_COLLAPSE // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_OUTLINE_EXPAND_ALL // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_OUTLINE_EXPAND // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_BULLET // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_OUTLINE_BULLET // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ Cachable , HasDialog , Export ;
+ ]
+ SID_CHAR_DLG // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ // Cachable , HasDialog , Export ;
+ ]
+ SID_SELECTALL // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ GroupId = GID_DOCUMENT ;
+ Cachable ;
+ ]
+ SID_INSERTFILE // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_PRESENTATION // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_EDIT_OUTLINER // ole : no, status : ?
+ [
+ ExecMethod = FuPermanent ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_SAVEDOC // ole : no, status : ?
+ [
+ ExecMethod = Execute ;
+ StateMethod = GetMenuState ;
+ GroupId = GID_DOCUMENT ;
+ ]
+ SID_SAVEASDOC // ole : no, status : ?
+ [
+ ExecMethod = Execute ;
+ GroupId = GID_DOCUMENT ;
+ ]
+ SID_RULER // ole : no, status : ?
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_STATUS_PAGE // ole : no, status : ?
+ [
+ ExecMethod = ExecStatusBar ;
+ StateMethod = GetStatusBarState ;
+ ]
+ SID_STATUS_LAYOUT // ole : no, status : ?
+ [
+ ExecMethod = ExecStatusBar ;
+ StateMethod = GetStatusBarState ;
+ ]
+ SfxVoidItem RevertToSaved SID_RELOAD // ole : no, status : ?
+ (
+ )
+ [
+ GroupId = GID_DOCUMENT ;
+ ExecMethod = ExecCtrl ;
+ StateMethod = GetCtrlState ;
+ Asynchron , Volatile , AutoUpdate ,
+ MenuConfig , AccelConfig , ToolBoxConfig ;
+ ]
+ SID_THESAURUS // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_COLORVIEW // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_SET_DEFAULT // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_PRESENTATIONOBJECT
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_STYLE_CATALOG // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ // Vorlagen
+ // kein Menueeintrag
+ SfxTemplateItem TemplateFamily2 SID_STYLE_FAMILY2 // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetAttrState ;
+ GroupId = GID_DOCUMENT ;
+ Cachable ;
+ ]
+ // Vorlagen
+ // kein Menueeintrag
+ SID_STYLE_FAMILY5 // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetAttrState ;
+ ]
+ // kein Menueeintrag
+ SfxVoidItem EditTemplate SID_STYLE_EDIT // ole : no, status : ?
+ (
+ )
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetAttrState ;
+ GroupId = GID_DOCUMENT ;
+ Cachable ;
+ ]
+ // kein Menueeintrag
+ SfxVoidItem TemplateUpdateByExample SID_STYLE_UPDATE_BY_EXAMPLE // ole : no, status : ?
+ (
+ )
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetAttrState ;
+ GroupId = GID_DOCUMENT ;
+ Cachable ;
+ ]
+ // kein Menueeintrag
+ SfxBoolItem TemplateWatercan SID_STYLE_WATERCAN // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetAttrState ;
+ GroupId = GID_DOCUMENT ;
+ Cachable ;
+ ]
+ // kein Menueeintrag
+ SfxVoidItem TemplateNewByExample SID_STYLE_NEW_BY_EXAMPLE // ole : no, status : ?
+ (
+ )
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetAttrState ;
+ GroupId = GID_DOCUMENT ;
+ Cachable ;
+ ]
+ // kein Menueeintrag
+ SfxVoidItem NewTemplate SID_STYLE_NEW // ole : no, status : ?
+ (
+ )
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetAttrState ;
+ GroupId = GID_DOCUMENT ;
+ Cachable ;
+ ]
+ // kein Menueeintrag
+ SfxVoidItem DeleteTemplate SID_STYLE_DELETE // ole : no, status : ?
+ (
+ )
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetAttrState ;
+ GroupId = GID_DOCUMENT ;
+ Cachable ;
+ ]
+ SID_AUTOSPELL_CHECK // ole : no, status : play rec
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_PREVIEW_WIN // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_PREVIEW_STATE // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_PRESENTATION_DLG
+ [
+ ExecMethod = FuTemporary ;
+ ]
+ SID_CUSTOMSHOW_DLG
+ [
+ ExecMethod = FuTemporary ;
+ ]
+ SID_EXPAND_PAGE // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_SUMMARY_PAGE // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_INSERT_FLD_DATE_FIX // ole : no, status : play rec
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_INSERT_FLD_DATE_VAR // ole : no, status : play rec
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_INSERT_FLD_TIME_FIX // ole : no, status : play rec
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_INSERT_FLD_TIME_VAR // ole : no, status : play rec
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_INSERT_FLD_PAGE // ole : no, status : play rec
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_INSERT_FLD_FILE // ole : no, status : play rec
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_INSERT_FLD_AUTHOR // ole : no, status : play rec
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ SID_MODIFY_FIELD // ole : no, status : play rec
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
+ /*
+ SID_PRINTDOC // ole : no, status : ?
+ [
+ StateMethod = GetMenuState ;
+ ]
+ SID_PRINTDOCDIRECT // ole : no, status : ?
+ [
+ StateMethod = GetMenuState ;
+ ]
+ SID_SETUPPRINTER // ole : no, status : ?
+ [
+ StateMethod = GetMenuState ;
+ ]
+*/
+
+ SID_PREVIEW_QUALITY_COLOR // ole : no, status : play rec
+ [
+ ExecMethod = ExecCtrl ;
+ StateMethod = GetCtrlState ;
+ ]
+ SID_PREVIEW_QUALITY_GRAYSCALE // ole : no, status : play rec
+ [
+ ExecMethod = ExecCtrl ;
+ StateMethod = GetCtrlState ;
+ ]
+ SID_PREVIEW_QUALITY_BLACKWHITE // ole : no, status : play rec
+ [
+ ExecMethod = ExecCtrl ;
+ StateMethod = GetCtrlState ;
+ ]
+ SID_MAIL_SCROLLBODY_PAGEDOWN // ole : no, status : ?
+ [
+ ExecMethod = ExecCtrl ;
+ StateMethod = GetCtrlState ;
+ ]
+ SID_STYLE_FAMILY
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
+}
+
+shell SdOutlineViewShell : SfxViewShell
+{
+ import OutlineView[Automation];
+}
+
diff --git a/sd/sdi/sdgslots.sdi b/sd/sdi/sdgslots.sdi
new file mode 100644
index 000000000000..b9695e3a9b7e
--- /dev/null
+++ b/sd/sdi/sdgslots.sdi
@@ -0,0 +1,124 @@
+/*************************************************************************
+#*
+#* $Workfile: sdgslots.sdi $
+#*
+#* Beschreibung IDL-Modul
+#*
+#* Ersterstellung SOH (04.04.97)
+#* Letzte Aenderung $Author: hr $ $Date: 2000-09-18 16:48:29 $
+#* $Revision: 1.1.1.1 $
+#*
+#* $Logfile: T:/sd/sdi/sdgslots.sdv $
+#*
+#* Copyright (c) 1989 - 1999, STAR DIVISION
+#*
+#*************************************************************************
+
+ Source Code Control System - Header
+
+ $Header: /zpool/svn/migration/cvs_rep_09_09_08/code/sd/sdi/sdgslots.sdi,v 1.1.1.1 2000-09-18 16:48:29 hr Exp $
+
+*************************************************************************/
+
+import "ofa.ilb"
+
+module
+"2DADF501-1F00-101C-A2E4-00001B4C5CE7"
+"33A1C840-1F00-101C-A2E4-00001B4C5CE7"
+StarDraw
+[
+HelpText( "StarDraw Application" )
+SlotIdFile( "sdslots.hrc" )
+TypeLibFile( "sdgslots.tlb" )
+ModulePrefix( "Sd" )
+]
+{
+ item UINT16 TbxImageItem;
+
+ enum FadeEffect
+ {
+ FADE_EFFECT_NONE ,
+ FADE_EFFECT_FADE_FROM_LEFT ,
+ FADE_EFFECT_FADE_FROM_TOP ,
+ FADE_EFFECT_FADE_FROM_RIGHT ,
+ FADE_EFFECT_FADE_FROM_BOTTOM ,
+ FADE_EFFECT_FADE_TO_CENTER ,
+ FADE_EFFECT_FADE_FROM_CENTER ,
+ FADE_EFFECT_MOVE_FROM_LEFT ,
+ FADE_EFFECT_MOVE_FROM_TOP ,
+ FADE_EFFECT_MOVE_FROM_RIGHT ,
+ FADE_EFFECT_MOVE_FROM_BOTTOM ,
+ FADE_EFFECT_ROLL_FROM_LEFT ,
+ FADE_EFFECT_ROLL_FROM_TOP ,
+ FADE_EFFECT_ROLL_FROM_RIGHT ,
+ FADE_EFFECT_ROLL_FROM_BOTTOM ,
+ FADE_EFFECT_VERTICAL_STRIPES ,
+ FADE_EFFECT_HORIZONTAL_STRIPES ,
+ FADE_EFFECT_OPEN_VERTICAL ,
+ FADE_EFFECT_CLOSE_VERTICAL ,
+ FADE_EFFECT_OPEN_HORIZONTAL ,
+ FADE_EFFECT_CLOSE_HORIZONTAL ,
+ FADE_EFFECT_CLEAR_AWAY ,
+ FADE_EFFECT_OVERLAY
+ }
+
+ enum FadeSpeed
+ {
+ FADE_SPEED_SLOW ,
+ FADE_SPEED_MEDIUM ,
+ FADE_SPEED_FAST
+ }
+
+ enum PresChange
+ {
+ PRESCHANGE_MANUAL,
+ PRESCHANGE_AUTO,
+ PRESCHANGE_SEMIAUTO
+ };
+
+ // Items
+ item UINT32 DiaTimeItem ;
+ item PresChange DiaAutoItem ;
+ item FadeEffect DiaEffectItem ;
+ item FadeSpeed DiaSpeedItem ;
+
+ include "sdnew.sdi"
+ include "sdraw.sdi"
+ include "app.sdi"
+ include "_drvwsh.sdi"
+ include "grviewsh.sdi"
+ include "slidvish.sdi"
+ include "outlnvsh.sdi"
+ include "drtxtob.sdi"
+ include "drbezob.sdi"
+ include "_docsh.sdi"
+ include "grdocsh.sdi"
+ include "drgrfob.sdi"
+}
+
+/*************************************************************************
+
+ Source Code Control System - History
+
+ $Log: not supported by cvs2svn $
+ Revision 1.5 1999/06/18 07:01:00 KA
+ new: Graphics objectbar
+
+
+ Rev 1.4 18 Jun 1999 09:01:00 KA
+ new: Graphics objectbar
+
+ Rev 1.3 21 Jun 1998 18:09:58 KA
+ neues Feature: Diawechsel halbautomatisch
+
+ Rev 1.2 09 Mar 1998 22:36:04 HJS
+ idl -> sdi
+
+ Rev 1.1 07 Jul 1997 15:19:38 SOH
+ #41363#: * Typelib: sdslots.tlb -> sdgslots.tlb
+
+ Rev 1.0 09 Apr 1997 13:20:46 SOH
+ Initial revision.
+
+*************************************************************************/
+
diff --git a/sd/sdi/sdnew.sdi b/sd/sdi/sdnew.sdi
new file mode 100644
index 000000000000..9d94c01f6778
--- /dev/null
+++ b/sd/sdi/sdnew.sdi
@@ -0,0 +1,188 @@
+SfxVoidItem GrafFilterCharcoal SID_GRAFFILTER_SOBEL
+()
+[
+ AutoUpdate = FALSE ,
+ Cachable = Cachable ,
+ FastCall = FALSE ,
+ HasCoreId = FALSE ,
+ HasDialog = FALSE ,
+ ReadOnlyDoc = FALSE ,
+ Toggle = FALSE ,
+ Synchron ;
+
+ Container = FALSE ,
+ PlugComm = FALSE ,
+
+ Export = TRUE ,
+ IsCollection = FALSE ,
+ RecordAbsolute = FALSE ,
+ RecordPerSet ;
+
+ AccelConfig = TRUE ,
+ MenuConfig = TRUE ,
+ StatusBarConfig = FALSE ,
+ ToolBoxConfig = TRUE ,
+ GroupId = GID_MODIFY ;
+]
+
+SfxVoidItem GrafFilterMosaic SID_GRAFFILTER_MOSAIC
+()
+[
+ AutoUpdate = FALSE ,
+ Cachable = Cachable ,
+ FastCall = FALSE ,
+ HasCoreId = FALSE ,
+ HasDialog = FALSE ,
+ ReadOnlyDoc = FALSE ,
+ Toggle = FALSE ,
+ Synchron ;
+
+ Container = FALSE ,
+ PlugComm = FALSE ,
+
+ Export = TRUE ,
+ IsCollection = FALSE ,
+ RecordAbsolute = FALSE ,
+ RecordPerSet ;
+
+ AccelConfig = TRUE ,
+ MenuConfig = TRUE ,
+ StatusBarConfig = FALSE ,
+ ToolBoxConfig = TRUE ,
+ GroupId = GID_MODIFY ;
+]
+
+SfxVoidItem GrafFilterRelief SID_GRAFFILTER_EMBOSS
+()
+[
+ AutoUpdate = FALSE ,
+ Cachable = Cachable ,
+ FastCall = FALSE ,
+ HasCoreId = FALSE ,
+ HasDialog = FALSE ,
+ ReadOnlyDoc = FALSE ,
+ Toggle = FALSE ,
+ Synchron ;
+
+ Container = FALSE ,
+ PlugComm = FALSE ,
+
+ Export = TRUE ,
+ IsCollection = FALSE ,
+ RecordAbsolute = FALSE ,
+ RecordPerSet ;
+
+ AccelConfig = TRUE ,
+ MenuConfig = TRUE ,
+ StatusBarConfig = FALSE ,
+ ToolBoxConfig = TRUE ,
+ GroupId = GID_MODIFY ;
+]
+
+SfxVoidItem GrafFilterPoster SID_GRAFFILTER_POSTER
+()
+[
+ AutoUpdate = FALSE ,
+ Cachable = Cachable ,
+ FastCall = FALSE ,
+ HasCoreId = FALSE ,
+ HasDialog = FALSE ,
+ ReadOnlyDoc = FALSE ,
+ Toggle = FALSE ,
+ Synchron ;
+
+ Container = FALSE ,
+ PlugComm = FALSE ,
+
+ Export = TRUE ,
+ IsCollection = FALSE ,
+ RecordAbsolute = FALSE ,
+ RecordPerSet ;
+
+ AccelConfig = TRUE ,
+ MenuConfig = TRUE ,
+ StatusBarConfig = FALSE ,
+ ToolBoxConfig = TRUE ,
+ GroupId = GID_MODIFY ;
+]
+
+SfxVoidItem GrafFilterPopart SID_GRAFFILTER_POPART
+()
+[
+ AutoUpdate = FALSE ,
+ Cachable = Cachable ,
+ FastCall = FALSE ,
+ HasCoreId = FALSE ,
+ HasDialog = FALSE ,
+ ReadOnlyDoc = FALSE ,
+ Toggle = FALSE ,
+ Synchron ;
+
+ Container = FALSE ,
+ PlugComm = FALSE ,
+
+ Export = TRUE ,
+ IsCollection = FALSE ,
+ RecordAbsolute = FALSE ,
+ RecordPerSet ;
+
+ AccelConfig = TRUE ,
+ MenuConfig = TRUE ,
+ StatusBarConfig = FALSE ,
+ ToolBoxConfig = TRUE ,
+ GroupId = GID_MODIFY ;
+]
+
+SfxVoidItem GrafFilterSepia SID_GRAFFILTER_SEPIA
+()
+[
+ AutoUpdate = FALSE ,
+ Cachable = Cachable ,
+ FastCall = FALSE ,
+ HasCoreId = FALSE ,
+ HasDialog = FALSE ,
+ ReadOnlyDoc = FALSE ,
+ Toggle = FALSE ,
+ Synchron ;
+
+ Container = FALSE ,
+ PlugComm = FALSE ,
+
+ Export = TRUE ,
+ IsCollection = FALSE ,
+ RecordAbsolute = FALSE ,
+ RecordPerSet ;
+
+ AccelConfig = TRUE ,
+ MenuConfig = TRUE ,
+ StatusBarConfig = FALSE ,
+ ToolBoxConfig = TRUE ,
+ GroupId = GID_MODIFY ;
+]
+
+SfxVoidItem GrafFilterSolarize SID_GRAFFILTER_SOLARIZE
+()
+[
+ AutoUpdate = FALSE ,
+ Cachable = Cachable ,
+ FastCall = FALSE ,
+ HasCoreId = FALSE ,
+ HasDialog = FALSE ,
+ ReadOnlyDoc = FALSE ,
+ Toggle = FALSE ,
+ Synchron ;
+
+ Container = FALSE ,
+ PlugComm = FALSE ,
+
+ Export = TRUE ,
+ IsCollection = FALSE ,
+ RecordAbsolute = FALSE ,
+ RecordPerSet ;
+
+ AccelConfig = TRUE ,
+ MenuConfig = TRUE ,
+ StatusBarConfig = FALSE ,
+ ToolBoxConfig = TRUE ,
+ GroupId = GID_MODIFY ;
+]
diff --git a/sd/sdi/sdraw.sdi b/sd/sdi/sdraw.sdi
new file mode 100644
index 000000000000..43234881f844
--- /dev/null
+++ b/sd/sdi/sdraw.sdi
@@ -0,0 +1,6241 @@
+//--------------------------------------------------------------------------
+SfxVoidItem PresentationEnd SID_PRESENTATION_END
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = TRUE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_VIEW;
+]
+
+//--------------------------------------------------------------------------
+SfxStringItem PageStatus SID_STATUS_PAGE
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = TRUE,
+ ToolBoxConfig = FALSE,
+ GroupId = GID_VIEW;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem TextFitToSizeTool SID_TEXT_FITTOSIZE
+
+[
+ /* flags: */
+ AutoUpdate = TRUE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_FORMAT;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem PixelMode SID_PIXELMODE
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_VIEW;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem StartApplication SID_STARTAPP
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = FALSE,
+ GroupId = GID_APPLICATION;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem Morphing SID_POLYGON_MORPHING
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = TRUE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_MODIFY;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem SwitchPage SID_SWITCHPAGE
+(SfxUInt32Item WhatPage ID_VAL_WHATPAGE,SfxUInt32Item WhatKind ID_VAL_WHATKIND)
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_VIEW;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem GrafFilterRemoveNoise SID_GRAFFILTER_REMOVENOISE
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_MODIFY;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem Presentation SID_PRESENTATION
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = TRUE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Asynchron;
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_VIEW;
+]
+
+//--------------------------------------------------------------------------
+SfxStringItem LayoutStatus SID_STATUS_LAYOUT
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = TRUE,
+ ToolBoxConfig = FALSE,
+ GroupId = GID_VIEW;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem PresentationDialog SID_PRESENTATION_DLG
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = TRUE,
+ HasCoreId = FALSE,
+ HasDialog = TRUE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_OPTIONS;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem SwitchLayer SID_SWITCHLAYER
+(SfxUInt32Item WhatLayer ID_VAL_WHATLAYER)
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_VIEW;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem SetFillStyle SID_SETFILLSTYLE
+(SfxUInt32Item Style ID_VAL_STYLE)
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = FALSE,
+ GroupId = GID_FORMAT;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem SelectHatch SID_SELECTHATCH
+(SfxStringItem Name ID_VAL_INDEX)
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = FALSE,
+ GroupId = GID_EDIT;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem PreviewWindow SID_PREVIEW_WIN
+
+[
+ /* flags: */
+ AutoUpdate = TRUE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = TRUE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_VIEW;
+]
+
+//--------------------------------------------------------------------------
+SfxUInt32Item PreviewState SID_PREVIEW_STATE
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = FALSE,
+ GroupId = GID_VIEW;
+]
+
+//--------------------------------------------------------------------------
+TbxImageItem GrafFilterToolbox SID_GRAFTBX_FILTERS
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_MODIFY;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem Publish SID_PUBLISH
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = FALSE,
+ GroupId = GID_APPLICATION;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem SelectGradient SID_SELECTGRADIENT
+(SfxStringItem Name ID_VAL_INDEX)
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = FALSE,
+ GroupId = GID_EDIT;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem SelectAt SID_SELECTAT
+(SfxUInt32Item AnchorX ID_VAL_ANCHOR_X,SfxUInt32Item AnchorY ID_VAL_ANCHOR_Y,SfxUInt32Item Left ID_VAL_MOUSESTART_X,SfxUInt32Item Top ID_VAL_MOUSESTART_Y,SfxUInt32Item Right ID_VAL_LENGTH_X,SfxUInt32Item Bottom ID_VAL_LENGTH_Y)
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = FALSE,
+ GroupId = GID_EDIT;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem RehearseTimings SID_REHEARSE_TIMINGS
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_MODIFY;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem RenamePage SID_RENAMEPAGE
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = TRUE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_FORMAT;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem SnapPoints SID_SNAP_POINTS
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_VIEW;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem ModifyPresentationObject SID_PRESENTATIONOBJECT
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = FALSE,
+ GroupId = GID_MODIFY;
+]
+
+//--------------------------------------------------------------------------
+SfxUInt32Item SlideChangeState SID_SLIDE_CHANGE_STATE
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = FALSE,
+ GroupId = GID_MODIFY;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem SnapBorder SID_SNAP_BORDER
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_VIEW;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem InsertPage SID_INSERTPAGE
+(SfxStringItem PageName ID_VAL_PAGENAME,SfxUInt32Item WhatLayout ID_VAL_WHATLAYOUT,SfxBoolItem IsPageBack ID_VAL_ISPAGEBACK,SfxBoolItem IsPageObj ID_VAL_ISPAGEOBJ)
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = TRUE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_INSERT;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem SetLineStyle SID_SETLINESTYLE
+(SfxUInt32Item Style ID_VAL_STYLE)
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = FALSE,
+ GroupId = GID_FORMAT;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem PreviewQualityColor SID_PREVIEW_QUALITY_COLOR
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Asynchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_VIEW;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem GradientEndColor SID_SETGRADENDCOLOR
+(SfxStringItem Name ID_VAL_INDEX,SfxUInt32Item Red ID_VAL_RED,SfxUInt32Item Green ID_VAL_GREEN,SfxUInt32Item Blue ID_VAL_BLUE)
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = FALSE,
+ GroupId = GID_FORMAT;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem LineColor SID_SETLINECOLOR
+(SfxUInt32Item Red ID_VAL_RED,SfxUInt32Item Green ID_VAL_GREEN,SfxUInt32Item Blue ID_VAL_BLUE)
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = FALSE,
+ GroupId = GID_FORMAT;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem HatchColor SID_SETHATCHCOLOR
+(SfxStringItem Name ID_VAL_INDEX,SfxUInt32Item Red ID_VAL_RED,SfxUInt32Item Green ID_VAL_GREEN,SfxUInt32Item Blue ID_VAL_BLUE)
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = FALSE,
+ GroupId = GID_FORMAT;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem ConnectorCurveCircles SID_CONNECTOR_CURVE_CIRCLES
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_CONNECTOR;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem InsertTimeFieldFix SID_INSERT_FLD_TIME_FIX
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_INSERT;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem LineArrowCircle SID_LINE_ARROW_CIRCLE
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_DRAWING;
+]
+
+//--------------------------------------------------------------------------
+TbxImageItem ArrowsToolbox SID_DRAWTBX_ARROWS
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_DRAWING;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem NotesMasterPage SID_NOTES_MASTERPAGE
+(SfxBoolItem Isactive ID_VAL_ISACTIVE)
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* status: */
+ SlotType = SfxBoolItem
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_VIEW;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem QuickEdit SID_QUICKEDIT
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_OPTIONS;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem ZoomPanning SID_ZOOM_PANNING
+()
+[
+ /* flags: */
+ AutoUpdate = TRUE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_VIEW;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem ConnectorAttributes SID_CONNECTION_DLG
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = TRUE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_FORMAT;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem SolidCreate SID_SOLID_CREATE
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_VIEW;
+]
+
+//--------------------------------------------------------------------------
+SfxStringItem NavigatorObject SID_NAVIGATOR_OBJECT
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = FALSE,
+ GroupId = GID_EDIT;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem AnimatorCreateObject SID_ANIMATOR_CREATE
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = FALSE,
+ GroupId = GID_OPTIONS;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem PreviewQualityBlackWhite SID_PREVIEW_QUALITY_BLACKWHITE
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Asynchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_VIEW;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem Options SID_WORKINGAREA
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = FALSE,
+ GroupId = GID_OPTIONS;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem DiaMode SID_DIAMODE
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_VIEW;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem ParaspaceIncrease SID_PARASPACE_INCREASE
+
+[
+ /* flags: */
+ AutoUpdate = TRUE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_FORMAT;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem PresentationLayout SID_PRESENTATION_LAYOUT
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = TRUE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_FORMAT;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem GradientStartColor SID_SETGRADSTARTCOLOR
+(SfxStringItem Name ID_VAL_INDEX,SfxUInt32Item Red ID_VAL_RED,SfxUInt32Item Green ID_VAL_GREEN,SfxUInt32Item Blue ID_VAL_BLUE)
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = FALSE,
+ GroupId = GID_FORMAT;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem NameGroup SID_NAME_GROUP
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = TRUE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_MODIFY;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem InsertFileField SID_INSERT_FLD_FILE
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_INSERT;
+]
+
+//--------------------------------------------------------------------------
+SfxUInt16Item GlueEscapeDirection SID_GLUE_ESCDIR
+
+[
+ /* flags: */
+ AutoUpdate = TRUE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_DRAWING;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem GlueInsertPoint SID_GLUE_INSERT_POINT
+
+[
+ /* flags: */
+ AutoUpdate = TRUE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_DRAWING;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem ConvertTo8BitGrays SID_CONVERT_TO_8BIT_GRAYS
+()
+[
+ /* flags: */
+ AutoUpdate = TRUE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Asynchron;
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_MODIFY;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem PageSetup SID_PAGESETUP
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = TRUE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_OPTIONS;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem GlueEscapeDirectionBottom SID_GLUE_ESCDIR_BOTTOM
+
+[
+ /* flags: */
+ AutoUpdate = TRUE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_DRAWING;
+]
+
+//--------------------------------------------------------------------------
+SfxStringItem NavigatorPageName SID_NAVIGATOR_PAGENAME
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = FALSE,
+ GroupId = GID_EDIT;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem HandoutMasterPage SID_HANDOUT_MASTERPAGE
+(SfxBoolItem Isactive ID_VAL_ISACTIVE)
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* status: */
+ SlotType = SfxBoolItem
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_VIEW;
+]
+
+//--------------------------------------------------------------------------
+TbxImageItem EllipseToolbox SID_DRAWTBX_ELLIPSES
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_DRAWING;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem ConvertTo8BitColors SID_CONVERT_TO_8BIT_COLORS
+()
+[
+ /* flags: */
+ AutoUpdate = TRUE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Asynchron;
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_MODIFY;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem EditHyperlink SID_EDIT_HYPERLINK
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = TRUE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = FALSE,
+ GroupId = GID_EDIT;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem PackAndGo SID_PACKNGO
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = TRUE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = FALSE,
+ GroupId = GID_APPLICATION;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem GrafFilterInvert SID_GRAFFILTER_INVERT
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_MODIFY;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem DrawingMode SID_DRAWINGMODE
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_DRAWING;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem GlueEscapeDirectionTop SID_GLUE_ESCDIR_TOP
+
+[
+ /* flags: */
+ AutoUpdate = TRUE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_DRAWING;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem Connector SID_TOOL_CONNECTOR
+
+[
+ /* flags: */
+ AutoUpdate = TRUE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_CONNECTOR;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem TextAttributes SID_TEXTATTR_DLG
+(SfxBoolItem IsAutoGrow ID_VAL_DUMMY0,SfxBoolItem IsCenter ID_VAL_DUMMY1,SfxBoolItem IsFitToSize ID_VAL_DUMMY2,SfxUInt32Item LeftBorder ID_VAL_DUMMY3,SfxUInt32Item RightBorder ID_VAL_DUMMY4,SfxUInt32Item TopBorder ID_VAL_DUMMY5,SfxUInt32Item BottomBorder ID_VAL_DUMMY6)
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = TRUE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_FORMAT;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem TextAlignment SID_TEXTALIGNMENT
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = FALSE,
+ GroupId = GID_FORMAT;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem MirrorVert SID_VERTICAL
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = FALSE,
+ GroupId = GID_MODIFY;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem DeSelect SID_UNSELECT
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = FALSE,
+ GroupId = GID_EDIT;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem PageMargin SID_PAGEMARGIN
+(SfxUInt32Item PageLeft ID_VAL_PAGELEFT,SfxUInt32Item PageRight ID_VAL_PAGERIGHT,SfxUInt32Item PageTop ID_VAL_PAGETOP,SfxUInt32Item PageBottom ID_VAL_PAGEBOTTOM,SfxBoolItem ScaleObjects ID_VAL_SCALEOBJECTS)
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = FALSE,
+ GroupId = GID_MODIFY;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem MasterPage SID_MASTERPAGE
+(SfxBoolItem Isactive ID_VAL_ISACTIVE)
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* status: */
+ SlotType = SfxBoolItem
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_VIEW;
+]
+
+//--------------------------------------------------------------------------
+TbxImageItem TextToolbox SID_DRAWTBX_TEXT
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_DRAWING;
+]
+
+//--------------------------------------------------------------------------
+DiaEffectItem DiaEffect SID_DIA_EFFECT
+
+[
+ /* flags: */
+ AutoUpdate = TRUE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_MODIFY;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem ConvertIntoMetaFile SID_CONVERT_TO_METAFILE
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_MODIFY;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem LineArrows SID_LINE_ARROWS
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_DRAWING;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem ConnectorLineCircleStart SID_CONNECTOR_LINE_CIRCLE_START
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_CONNECTOR;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem SummaryPage SID_SUMMARY_PAGE
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = TRUE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_INSERT;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem ModifyPage SID_MODIFYPAGE
+(SfxStringItem PageName ID_VAL_PAGENAME,SfxUInt32Item WhatLayout ID_VAL_WHATLAYOUT,SfxBoolItem IsPageBack ID_VAL_ISPAGEBACK,SfxBoolItem IsPageObj ID_VAL_ISPAGEOBJ)
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = TRUE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_MODIFY;
+]
+
+//--------------------------------------------------------------------------
+TbxImageItem ObjectPosition SID_POSITION
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_MODIFY;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem SlideChangeAssign SID_SLIDE_CHANGE_ASSIGN
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = FALSE,
+ GroupId = GID_MODIFY;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem HandoutMode SID_HANDOUTMODE
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = FALSE,
+ GroupId = GID_DOCUMENT;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem GlueVertAlignTop SID_GLUE_VERTALIGN_TOP
+
+[
+ /* flags: */
+ AutoUpdate = TRUE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_DRAWING;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem FillDraft SID_FILL_DRAFT
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_VIEW;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem ConnectorCircles SID_CONNECTOR_CIRCLES
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_CONNECTOR;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem ConnectorLinesArrows SID_CONNECTOR_LINES_ARROWS
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_CONNECTOR;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem ConnectorLinesCircleEnd SID_CONNECTOR_LINES_CIRCLE_END
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_CONNECTOR;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem ConnectorLines SID_CONNECTOR_LINES
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_CONNECTOR;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem ConnectorLinesArrowEnd SID_CONNECTOR_LINES_ARROW_END
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_CONNECTOR;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem ConvertTo1BitMatrix SID_CONVERT_TO_1BIT_MATRIX
+()
+[
+ /* flags: */
+ AutoUpdate = TRUE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Asynchron;
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_MODIFY;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem ConvertInto3DLathe SID_CONVERT_TO_3D_LATHE
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_MODIFY;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem ConnectorLinesArrowStart SID_CONNECTOR_LINES_ARROW_START
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_CONNECTOR;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem ConvertTo1BitThreshold SID_CONVERT_TO_1BIT_THRESHOLD
+()
+[
+ /* flags: */
+ AutoUpdate = TRUE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Asynchron;
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_MODIFY;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem ConvertToTrueColor SID_CONVERT_TO_24BIT
+()
+[
+ /* flags: */
+ AutoUpdate = TRUE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Asynchron;
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_MODIFY;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem ConnectorCurveArrowStart SID_CONNECTOR_CURVE_ARROW_START
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_CONNECTOR;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem HideSlide SID_HIDE_SLIDE
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_MODIFY;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem SlideMasterPage SID_SLIDE_MASTERPAGE
+(SfxBoolItem Isactive ID_VAL_ISACTIVE)
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* status: */
+ SlotType = SfxBoolItem
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_VIEW;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem ConnectorCurveArrowEnd SID_CONNECTOR_CURVE_ARROW_END
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_CONNECTOR;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem ConnectorCurveCircleStart SID_CONNECTOR_CURVE_CIRCLE_START
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_CONNECTOR;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem ConnectorLineArrows SID_CONNECTOR_LINE_ARROWS
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_CONNECTOR;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem ConnectorLineCircles SID_CONNECTOR_LINE_CIRCLES
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_CONNECTOR;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem ConnectorLine SID_CONNECTOR_LINE
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_CONNECTOR;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem ConnectorLineArrowStart SID_CONNECTOR_LINE_ARROW_START
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_CONNECTOR;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem MeasureLine SID_DRAW_MEASURELINE
+
+[
+ /* flags: */
+ AutoUpdate = TRUE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_DRAWING;
+]
+
+//--------------------------------------------------------------------------
+TbxImageItem LineToolbox SID_DRAWTBX_LINES
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_DRAWING;
+]
+
+//--------------------------------------------------------------------------
+DiaTimeItem DiaTime SID_DIA_TIME
+
+[
+ /* flags: */
+ AutoUpdate = TRUE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_MODIFY;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem DoubleClickTextEdit SID_DOUBLECLICK_TEXTEDIT
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_OPTIONS;
+]
+
+//--------------------------------------------------------------------------
+TbxImageItem RectangleToolbox SID_DRAWTBX_RECTANGLES
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_DRAWING;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem EditOutline SID_EDIT_OUTLINER
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = FALSE,
+ GroupId = GID_EDIT;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem Polygon SID_DRAW_POLYGON
+
+[
+ /* flags: */
+ AutoUpdate = TRUE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_DRAWING;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem OutputQualityGrayscale SID_OUTPUT_QUALITY_GRAYSCALE
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Asynchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_VIEW;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem DuplicatePage SID_DUPLICATE_PAGE
+(SfxStringItem PageName ID_VAL_PAGENAME,SfxUInt32Item WhatLayout ID_VAL_WHATLAYOUT,SfxBoolItem IsPageBack ID_VAL_ISPAGEBACK,SfxBoolItem IsPageObj ID_VAL_ISPAGEOBJ)
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = TRUE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_INSERT;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem ConvertTo4BitColors SID_CONVERT_TO_4BIT_COLORS
+()
+[
+ /* flags: */
+ AutoUpdate = TRUE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Asynchron;
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_MODIFY;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem ConvertTo4BitGrays SID_CONVERT_TO_4BIT_GRAYS
+()
+[
+ /* flags: */
+ AutoUpdate = TRUE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Asynchron;
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_MODIFY;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem ConvertInto3DLatheFast SID_CONVERT_TO_3D_LATHE_FAST
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_MODIFY;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem ConvertIntoBitmap SID_CONVERT_TO_BITMAP
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_MODIFY;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem CustomShowDialog SID_CUSTOMSHOW_DLG
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = TRUE,
+ HasCoreId = FALSE,
+ HasDialog = TRUE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_OPTIONS;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem PreviewQualityGrayscale SID_PREVIEW_QUALITY_GRAYSCALE
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Asynchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_VIEW;
+]
+
+//--------------------------------------------------------------------------
+DiaSpeedItem DiaSpeed SID_DIA_SPEED
+
+[
+ /* flags: */
+ AutoUpdate = TRUE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_MODIFY;
+]
+
+//--------------------------------------------------------------------------
+SfxStringItem DeleteSnapItem SID_DELETE_SNAPITEM
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = FALSE,
+ GroupId = GID_EDIT;
+]
+
+//--------------------------------------------------------------------------
+DiaAutoItem DiaAuto SID_DIA_AUTO
+
+[
+ /* flags: */
+ AutoUpdate = TRUE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_MODIFY;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem Torus SID_3D_TORUS
+
+[
+ /* flags: */
+ AutoUpdate = TRUE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_DRAWING;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem AnimationMode SID_ANIMATIONMODE
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_OPTIONS;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem ConnectorLinesCircles SID_CONNECTOR_LINES_CIRCLES
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_CONNECTOR;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem AnimationObjects SID_ANIMATION_OBJECTS
+
+[
+ /* flags: */
+ AutoUpdate = TRUE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = TRUE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_OPTIONS;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem Hatch SID_HATCH
+(SfxStringItem Name ID_VAL_INDEX,SfxUInt32Item Style ID_VAL_STYLE,SfxUInt32Item Distance ID_VAL_DISTANCE,SfxUInt32Item Angle ID_VAL_ANGLE)
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = FALSE,
+ GroupId = GID_DRAWING;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem AnimatorAddObject SID_ANIMATOR_ADD
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = FALSE,
+ GroupId = GID_OPTIONS;
+]
+
+//--------------------------------------------------------------------------
+TbxImageItem AdvancedMode SID_OBJECT_CHOOSE_MODE
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_MODIFY;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem ConnectorArrows SID_CONNECTOR_ARROWS
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_CONNECTOR;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem AnimatorInit SID_ANIMATOR_INIT
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = FALSE,
+ GroupId = GID_OPTIONS;
+]
+
+//--------------------------------------------------------------------------
+SfxUInt16Item AnimatorState SID_ANIMATOR_STATE
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = FALSE,
+ GroupId = GID_OPTIONS;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem Cylinder SID_3D_CYLINDER
+
+[
+ /* flags: */
+ AutoUpdate = TRUE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_DRAWING;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem Cone SID_3D_CONE
+
+[
+ /* flags: */
+ AutoUpdate = TRUE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_DRAWING;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem Sphere SID_3D_SPHERE
+
+[
+ /* flags: */
+ AutoUpdate = TRUE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_DRAWING;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem Cyramid SID_3D_PYRAMID
+
+[
+ /* flags: */
+ AutoUpdate = TRUE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_DRAWING;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem InteractiveGradient SID_OBJECT_GRADIENT
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_MODIFY;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem GrafFilterSmooth SID_GRAFFILTER_SMOOTH
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_MODIFY;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem ActionMode SID_ACTIONMODE
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_OPTIONS;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem InteractiveTransparence SID_OBJECT_TRANSPARENCE
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_MODIFY;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem GrafFilterSharpen SID_GRAFFILTER_SHARPEN
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_MODIFY;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem Connect SID_CONNECT
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_MODIFY;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem ConnectorLineCircleEnd SID_CONNECTOR_LINE_CIRCLE_END
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_CONNECTOR;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem ColorView SID_COLORVIEW
+
+[
+ /* flags: */
+ AutoUpdate = TRUE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_VIEW;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem Combine SID_COMBINE
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_MODIFY;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem NewRouting SID_CONNECTION_NEW_ROUTING
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_DRAWING;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem ConnectorCircleEnd SID_CONNECTOR_CIRCLE_END
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_CONNECTOR;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem ConnectorCircleStart SID_CONNECTOR_CIRCLE_START
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_CONNECTOR;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem ConnectorArrowEnd SID_CONNECTOR_ARROW_END
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_CONNECTOR;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem ConnectorArrowStart SID_CONNECTOR_ARROW_START
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_CONNECTOR;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem BigHandles SID_BIG_HANDLES
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_OPTIONS;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem Break SID_BREAK
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_MODIFY;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem ConnectorCurve SID_CONNECTOR_CURVE
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_CONNECTOR;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem BeforeObject SID_BEFORE_OBJ
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_MODIFY;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem Bullet SID_BULLET
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = TRUE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_INSERT;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem GridFront SID_GRID_FRONT
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_VIEW;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem convert_to_contour SID_CONVERT_TO_CONTOUR
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_DRAWING;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem PasteClipboard SID_PASTE2
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Volatile,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = TRUE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_EDIT;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem ChangeBezier SID_CHANGEBEZIER
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_DRAWING;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem ManageLinks SID_MANAGE_LINKS
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = TRUE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_EDIT;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem MeasureAttributes SID_MEASURE_DLG
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = TRUE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_FORMAT;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem LineTo SID_LINETO
+(SfxUInt32Item MouseEndX ID_VAL_MOUSEEND_X,SfxUInt32Item MouseEndY ID_VAL_MOUSEEND_Y)
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = FALSE,
+ GroupId = GID_DRAWING;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem LivePresentation SID_LIVE_PRESENTATION
+
+[
+ /* flags: */
+ AutoUpdate = TRUE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = FALSE,
+ GroupId = GID_VIEW;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem ModifyField SID_MODIFY_FIELD
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = TRUE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_EDIT;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem Forward SID_MOREFRONT
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_MODIFY;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem MoveTo SID_MOVETO
+(SfxUInt32Item MouseStartX ID_VAL_MOUSESTART_X,SfxUInt32Item MouseStartY ID_VAL_MOUSESTART_Y)
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = FALSE,
+ GroupId = GID_DRAWING;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem ModifyLayer SID_MODIFYLAYER
+(SfxStringItem LayerName ID_VAL_LAYERNAME,SfxBoolItem IsVisible ID_VAL_ISVISIBLE,SfxBoolItem IsLocked ID_VAL_ISLOCKED,SfxBoolItem IsPrintable ID_VAL_ISPRINTABLE)
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = TRUE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_MODIFY;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem Backward SID_MOREBACK
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_MODIFY;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem ConnectorCurveCircleEnd SID_CONNECTOR_CURVE_CIRCLE_END
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_CONNECTOR;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem LineArrowEnd SID_LINE_ARROW_END
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_DRAWING;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem InsertPageQuick SID_INSERTPAGE_QUICK
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_INSERT;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem LayerMode SID_LAYERMODE
+(SfxBoolItem IsActive ID_VAL_ISACTIVE,SfxUInt32Item WhatLayer ID_VAL_WHATLAYER)
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* status: */
+ SlotType = SfxBoolItem
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_VIEW;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem LineArrowSquare SID_LINE_ARROW_SQUARE
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_DRAWING;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem LineDraft SID_LINE_DRAFT
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_VIEW;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem LineSquareArrow SID_LINE_SQUARE_ARROW
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_DRAWING;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem LineArrowStart SID_LINE_ARROW_START
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_DRAWING;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem LineCircleArrow SID_LINE_CIRCLE_ARROW
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_DRAWING;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem OutputQualityColor SID_OUTPUT_QUALITY_COLOR
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Asynchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_VIEW;
+]
+
+//--------------------------------------------------------------------------
+TbxImageItem InsertToolbox SID_DRAWTBX_INSERT
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_DRAWING;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem OutlineMode SID_OUTLINEMODE
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_VIEW;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem OutputQualityBlackWhite SID_OUTPUT_QUALITY_BLACKWHITE
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Asynchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_VIEW;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem PageSize SID_PAGESIZE
+(SfxUInt32Item PageWidth ID_VAL_PAGEWIDTH,SfxUInt32Item PageHeight ID_VAL_PAGEHEIGHT,SfxBoolItem ScaleObjects ID_VAL_SCALEOBJECTS)
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = FALSE,
+ GroupId = GID_APPLICATION;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem TextDraft SID_TEXT_DRAFT
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_VIEW;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem PickThrough SID_PICK_THROUGH
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_MODIFY;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem ParaspaceDecrease SID_PARASPACE_DECREASE
+
+[
+ /* flags: */
+ AutoUpdate = TRUE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_FORMAT;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem SnapFrame SID_SNAP_FRAME
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_VIEW;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem NavigatorPen SID_NAVIGATOR_PEN
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = FALSE,
+ GroupId = GID_EDIT;
+]
+
+//--------------------------------------------------------------------------
+SfxUInt32Item NavigatorState SID_NAVIGATOR_STATE
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = FALSE,
+ GroupId = GID_EDIT;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem NavigatorInit SID_NAVIGATOR_INIT
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = FALSE,
+ GroupId = GID_EDIT;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem NavigatorLive SID_NAVIGATOR_LIVE
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = FALSE,
+ GroupId = GID_EDIT;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem NotesMode SID_NOTESMODE
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_VIEW;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem CrookStretch SID_OBJECT_CROOK_STRETCH
+
+[
+ /* flags: */
+ AutoUpdate = TRUE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Asynchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_DRAWING;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem Shear SID_OBJECT_SHEAR
+
+[
+ /* flags: */
+ AutoUpdate = TRUE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Asynchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_MODIFY;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem CloseObject SID_OBJECT_CLOSE
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = FALSE,
+ GroupId = GID_DRAWING;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem CrookSlant SID_OBJECT_CROOK_SLANT
+
+[
+ /* flags: */
+ AutoUpdate = TRUE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Asynchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_DRAWING;
+]
+
+//--------------------------------------------------------------------------
+SfxUInt32Item EffectState SID_EFFECT_STATE
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = FALSE,
+ GroupId = GID_OPTIONS;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem GlueHorzAlignRight SID_GLUE_HORZALIGN_RIGHT
+
+[
+ /* flags: */
+ AutoUpdate = TRUE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_DRAWING;
+]
+
+//--------------------------------------------------------------------------
+SfxUInt16Item PagesPerRow SID_PAGES_PER_ROW
+
+[
+ /* flags: */
+ AutoUpdate = TRUE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Asynchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_MODIFY;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem GlueHorzAlignCenter SID_GLUE_HORZALIGN_CENTER
+
+[
+ /* flags: */
+ AutoUpdate = TRUE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_DRAWING;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem GlueHorzAlignLeft SID_GLUE_HORZALIGN_LEFT
+
+[
+ /* flags: */
+ AutoUpdate = TRUE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_DRAWING;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem GluePercent SID_GLUE_PERCENT
+
+[
+ /* flags: */
+ AutoUpdate = TRUE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = TRUE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_DRAWING;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem Dismantle SID_DISMANTLE
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_MODIFY;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem GlueEscapeDirectionLeft SID_GLUE_ESCDIR_LEFT
+
+[
+ /* flags: */
+ AutoUpdate = TRUE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_DRAWING;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem GlueVertAlignBottom SID_GLUE_VERTALIGN_BOTTOM
+
+[
+ /* flags: */
+ AutoUpdate = TRUE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_DRAWING;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem GlueVertAlignCenter SID_GLUE_VERTALIGN_CENTER
+
+[
+ /* flags: */
+ AutoUpdate = TRUE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_DRAWING;
+]
+
+//--------------------------------------------------------------------------
+SfxUInt32Item GetFillStyle SID_GETFILLSTYLE
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = FALSE,
+ GroupId = GID_DRAWING;
+]
+
+//--------------------------------------------------------------------------
+SfxUInt32Item GetGreen SID_GETGREEN
+(SfxUInt32Item WhatKind ID_VAL_WHATKIND)
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = FALSE,
+ GroupId = GID_DRAWING;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem EffectWindow SID_EFFECT_WIN
+
+[
+ /* flags: */
+ AutoUpdate = TRUE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = TRUE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_OPTIONS;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem ExpandPage SID_EXPAND_PAGE
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = TRUE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_EDIT;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem PageMode SID_PAGEMODE
+(SfxBoolItem IsActive ID_VAL_ISACTIVE,SfxUInt32Item WhatKind ID_VAL_WHATKIND)
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* status: */
+ SlotType = SfxBoolItem
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_VIEW;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem GlueEditMode SID_GLUE_EDITMODE
+
+[
+ /* flags: */
+ AutoUpdate = TRUE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_DRAWING;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem GlueEscapeDirectionRight SID_GLUE_ESCDIR_RIGHT
+
+[
+ /* flags: */
+ AutoUpdate = TRUE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_DRAWING;
+]
+
+//--------------------------------------------------------------------------
+SfxUInt32Item GetLineWidth SID_GETLINEWIDTH
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = FALSE,
+ GroupId = GID_DRAWING;
+]
+
+//--------------------------------------------------------------------------
+SfxUInt32Item GetRed SID_GETRED
+(SfxUInt32Item WhatKind ID_VAL_WHATKIND)
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = FALSE,
+ GroupId = GID_DRAWING;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem InsertAuthorField SID_INSERT_FLD_AUTHOR
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_INSERT;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem InsertDateFieldVar SID_INSERT_FLD_DATE_VAR
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_INSERT;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem MirrorHorz SID_HORIZONTAL
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = FALSE,
+ GroupId = GID_MODIFY;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem Hyphenation SID_HYPHENATION
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = TRUE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_OPTIONS;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem InsertPageField SID_INSERT_FLD_PAGE
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_INSERT;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem InsertLayer SID_INSERTLAYER
+(SfxStringItem LayerName ID_VAL_LAYERNAME,SfxBoolItem IsVisible ID_VAL_ISVISIBLE,SfxBoolItem IsLocked ID_VAL_ISLOCKED,SfxBoolItem IsPrintable ID_VAL_ISPRINTABLE)
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = TRUE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_INSERT;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem DeletePage SID_DELETE_PAGE
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Volatile,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = TRUE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_EDIT;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem InsertTimeFieldVar SID_INSERT_FLD_TIME_VAR
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_INSERT;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem ImportFromFile SID_INSERTFILE
+(SfxStringItem FileName ID_VAL_DUMMY1,SfxStringItem FilterName ID_VAL_DUMMY2)
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = TRUE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_INSERT;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem GraphicExport SID_GRAPHIC_EXPORT
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = TRUE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = FALSE,
+ GroupId = GID_APPLICATION;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem BehindObject SID_BEHIND_OBJ
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_MODIFY;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem Gradient SID_GRADIENT
+(SfxStringItem Name ID_VAL_INDEX,SfxUInt32Item Style ID_VAL_STYLE,SfxUInt32Item Angle ID_VAL_ANGLE,SfxUInt32Item Border ID_VAL_BORDER,SfxUInt32Item XOffset ID_VAL_CENTER_X,SfxUInt32Item YOffset ID_VAL_CENTER_Y,SfxUInt32Item StartIntens ID_VAL_STARTINTENS,SfxUInt32Item EndIntens ID_VAL_ENDINTENS)
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = FALSE,
+ GroupId = GID_DRAWING;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem GraphicDraft SID_GRAPHIC_DRAFT
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_VIEW;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem ChangePolygon SID_CHANGEPOLYGON
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_DRAWING;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem HelplinesUse SID_HELPLINES_USE
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_VIEW;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem HelplinesVisible SID_HELPLINES_VISIBLE
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_VIEW;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem HandlesDraft SID_HANDLES_DRAFT
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_VIEW;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem HelplinesFront SID_HELPLINES_FRONT
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_VIEW;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem CrookRotate SID_OBJECT_CROOK_ROTATE
+
+[
+ /* flags: */
+ AutoUpdate = TRUE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Asynchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_DRAWING;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem Shell3D SID_3D_SHELL
+
+[
+ /* flags: */
+ AutoUpdate = TRUE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_DRAWING;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem ConnectorLinesCircleStart SID_CONNECTOR_LINES_CIRCLE_START
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_CONNECTOR;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem DeleteLayer SID_DELETE_LAYER
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Volatile,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = TRUE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_EDIT;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem HalfSphere SID_3D_HALF_SPHERE
+
+[
+ /* flags: */
+ AutoUpdate = TRUE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_DRAWING;
+]
+
+//--------------------------------------------------------------------------
+SfxUInt16Item NavigatorPage SID_NAVIGATOR_PAGE
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = FALSE,
+ GroupId = GID_EDIT;
+]
+
+//--------------------------------------------------------------------------
+SfxStringItem SetSnapItem SID_SET_SNAPITEM
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = FALSE,
+ GroupId = GID_MODIFY;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem OriginalSize SID_ORIGINAL_SIZE
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = FALSE,
+ GroupId = GID_MODIFY;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem ConvertInto3D SID_CONVERT_TO_3D
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_MODIFY;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem AnimationEffects SID_ANIMATION_EFFECTS
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = TRUE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_OPTIONS;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem ConnectorCurveArrows SID_CONNECTOR_CURVE_ARROWS
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_CONNECTOR;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem SlideChangeWindow SID_SLIDE_CHANGE_WIN
+
+[
+ /* flags: */
+ AutoUpdate = TRUE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = TRUE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_MODIFY;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem LeaveAllGroups SID_LEAVE_ALL_GROUPS
+
+[
+ /* flags: */
+ AutoUpdate = TRUE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_MODIFY;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem SwitchPointEdit SID_SWITCH_POINTEDIT
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = FALSE,
+ GroupId = GID_VIEW;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem SetLineWidth SID_SETLINEWIDTH
+(SfxUInt32Item Width ID_VAL_WIDTH)
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = FALSE,
+ GroupId = GID_FORMAT;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem Cube SID_3D_CUBE
+
+[
+ /* flags: */
+ AutoUpdate = TRUE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_DRAWING;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem EffectAssign SID_EFFECT_ASSIGN
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = FALSE,
+ GroupId = GID_OPTIONS;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem CapturePoint SID_CAPTUREPOINT
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = FALSE,
+ GroupId = GID_DRAWING;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem CopyObjects SID_COPYOBJECTS
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = TRUE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_EDIT;
+]
+
+//--------------------------------------------------------------------------
+TbxImageItem Objects3DToolbox SID_DRAWTBX_3D_OBJECTS
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_DRAWING;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem LineEndPolygon SID_LINEEND_POLYGON
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = FALSE,
+ GroupId = GID_DRAWING;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem ConnectorLineArrowEnd SID_CONNECTOR_LINE_ARROW_END
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_CONNECTOR;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem Dia SID_DIA
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = TRUE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_MODIFY;
+]
+
+//--------------------------------------------------------------------------
+SfxUInt32Item GetBlue SID_GETBLUE
+(SfxUInt32Item WhatKind ID_VAL_WHATKIND)
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = FALSE,
+ GroupId = GID_DRAWING;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem ClickChangeRotation SID_CLICK_CHANGE_ROTATION
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_OPTIONS;
+]
+
+//--------------------------------------------------------------------------
+SfxUInt32Item GetLineStyle SID_GETLINESTYLE
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = FALSE,
+ GroupId = GID_DRAWING;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem InsertDateFieldFix SID_INSERT_FLD_DATE_FIX
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_INSERT;
+]
+
+//--------------------------------------------------------------------------
+SfxBoolItem EffectInit SID_EFFECT_INIT
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = FALSE,
+ GroupId = GID_OPTIONS;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem ReverseOrder SID_REVERSE_ORDER
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_MODIFY;
+]
+
+//--------------------------------------------------------------------------
+TbxImageItem ConnectorToolbox SID_DRAWTBX_CONNECTORS
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = FALSE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ Readonly = FALSE,
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_DRAWING;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem RenameLayer SID_RENAMELAYER
+()
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = TRUE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_FORMAT;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem TitleMasterPage SID_TITLE_MASTERPAGE
+(SfxBoolItem Isactive ID_VAL_ISACTIVE)
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* status: */
+ SlotType = SfxBoolItem
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_VIEW;
+]
+
+//--------------------------------------------------------------------------
+SfxVoidItem FillColor SID_SETFILLCOLOR
+(SfxUInt32Item Red ID_VAL_RED,SfxUInt32Item Green ID_VAL_GREEN,SfxUInt32Item Blue ID_VAL_BLUE)
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ Synchron;
+
+ /* config: */
+ AccelConfig = FALSE,
+ MenuConfig = FALSE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = FALSE,
+ GroupId = GID_FORMAT;
+]
+
diff --git a/sd/sdi/sdslots.hrc b/sd/sdi/sdslots.hrc
new file mode 100644
index 000000000000..c6fea1ca1c46
--- /dev/null
+++ b/sd/sdi/sdslots.hrc
@@ -0,0 +1,65 @@
+/*************************************************************************
+ *
+ * $RCSfile: sdslots.hrc,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:30 $
+ *
+ * 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): _______________________________________
+ *
+ *
+ ************************************************************************/
+#include
+#include
+#include
+#include
+#include
diff --git a/sd/sdi/sdslots.sdi b/sd/sdi/sdslots.sdi
new file mode 100644
index 000000000000..5fbd312689e9
--- /dev/null
+++ b/sd/sdi/sdslots.sdi
@@ -0,0 +1,124 @@
+/*************************************************************************
+#*
+#* $Workfile: sdslots.sdi $
+#*
+#* Beschreibung IDL-Modul
+#*
+#* Ersterstellung SOH (04.04.97)
+#* Letzte Aenderung $Author: hr $ $Date: 2000-09-18 16:48:30 $
+#* $Revision: 1.1.1.1 $
+#*
+#* $Logfile: T:/sd/sdi/sdslots.sdv $
+#*
+#* Copyright (c) 1989 - 1999, STAR DIVISION
+#*
+#*************************************************************************
+
+ Source Code Control System - Header
+
+ $Header: /zpool/svn/migration/cvs_rep_09_09_08/code/sd/sdi/sdslots.sdi,v 1.1.1.1 2000-09-18 16:48:30 hr Exp $
+
+*************************************************************************/
+
+import "ofa.ilb"
+
+module
+"2DADF501-1F00-101C-A2E4-00001B4C5CE7"
+"33A1C840-1F00-101C-A2E4-00001B4C5CE7"
+StarDraw
+[
+HelpText( "StarDraw Application" )
+SlotIdFile( "sdslots.hrc" )
+TypeLibFile( "sdslots.tlb" )
+ModulePrefix( "Sd" )
+]
+{
+ item UINT16 TbxImageItem;
+
+ enum FadeEffect
+ {
+ FADE_EFFECT_NONE ,
+ FADE_EFFECT_FADE_FROM_LEFT ,
+ FADE_EFFECT_FADE_FROM_TOP ,
+ FADE_EFFECT_FADE_FROM_RIGHT ,
+ FADE_EFFECT_FADE_FROM_BOTTOM ,
+ FADE_EFFECT_FADE_TO_CENTER ,
+ FADE_EFFECT_FADE_FROM_CENTER ,
+ FADE_EFFECT_MOVE_FROM_LEFT ,
+ FADE_EFFECT_MOVE_FROM_TOP ,
+ FADE_EFFECT_MOVE_FROM_RIGHT ,
+ FADE_EFFECT_MOVE_FROM_BOTTOM ,
+ FADE_EFFECT_ROLL_FROM_LEFT ,
+ FADE_EFFECT_ROLL_FROM_TOP ,
+ FADE_EFFECT_ROLL_FROM_RIGHT ,
+ FADE_EFFECT_ROLL_FROM_BOTTOM ,
+ FADE_EFFECT_VERTICAL_STRIPES ,
+ FADE_EFFECT_HORIZONTAL_STRIPES ,
+ FADE_EFFECT_OPEN_VERTICAL ,
+ FADE_EFFECT_CLOSE_VERTICAL ,
+ FADE_EFFECT_OPEN_HORIZONTAL ,
+ FADE_EFFECT_CLOSE_HORIZONTAL ,
+ FADE_EFFECT_CLEAR_AWAY ,
+ FADE_EFFECT_OVERLAY
+ }
+
+ enum FadeSpeed
+ {
+ FADE_SPEED_SLOW ,
+ FADE_SPEED_MEDIUM ,
+ FADE_SPEED_FAST
+ }
+
+ enum PresChange
+ {
+ PRESCHANGE_MANUAL,
+ PRESCHANGE_AUTO,
+ PRESCHANGE_SEMIAUTO
+ };
+
+ // Items
+ item UINT32 DiaTimeItem ;
+ item PresChange DiaAutoItem ;
+ item FadeEffect DiaEffectItem ;
+ item FadeSpeed DiaSpeedItem ;
+
+ include "sdnew.sdi"
+ include "sdraw.sdi"
+ include "app.sdi"
+ include "_drvwsh.sdi"
+ include "drviewsh.sdi"
+ include "slidvish.sdi"
+ include "outlnvsh.sdi"
+ include "drtxtob.sdi"
+ include "drbezob.sdi"
+ include "_docsh.sdi"
+ include "docshell.sdi"
+ include "drgrfob.sdi"
+}
+
+/*************************************************************************
+
+ Source Code Control System - History
+
+ $Log: not supported by cvs2svn $
+ Revision 1.22 1999/06/18 07:01:16 KA
+ new: Graphics objectbar
+
+
+ Rev 1.21 18 Jun 1999 09:01:16 KA
+ new: Graphics objectbar
+
+ Rev 1.20 21 Jun 1998 18:09:58 KA
+ neues Feature: Diawechsel halbautomatisch
+
+ Rev 1.19 09 Mar 1998 22:36:04 HJS
+ idl -> sdi
+
+ Rev 1.18 07 Jul 1997 15:19:16 SOH
+ #41363#: * Typelib: sdgslots.tlb sdslots.tlb
+
+ Rev 1.17 09 Apr 1997 13:20:36 SOH
+ Umstellung/Aufsplittung: Impress/Draw
+
+*************************************************************************/
+
diff --git a/sd/sdi/svxitems.sdi b/sd/sdi/svxitems.sdi
new file mode 100644
index 000000000000..1db912eea15b
--- /dev/null
+++ b/sd/sdi/svxitems.sdi
@@ -0,0 +1,92 @@
+enum SvxAdjust
+{
+ SVX_ADJUST_LEFT,
+ SVX_ADJUST_RIGHT,
+ SVX_ADJUST_BLOCK,
+ SVX_ADJUST_CENTER,
+ SVX_ADJUST_BLOCKLINE,
+ SVX_ADJUST_END
+}
+
+item
+{
+ INT16 Red;
+ INT16 Green;
+ INT16 Blue;
+} SvxColorItem
+
+item SvxAdjust SvxAdjustItem;
+
+item String SvxBoxInfoItem;
+
+item String SvxBoxItem;
+item String SvxBrushItem;
+item String SvxCaseMapItem;
+item String SvxCharSetColorItem;
+item String SvxColumnItem;
+item String SvxContourItem;
+item String SvxCrossedOutItem;
+item String SvxDBDescMgr;
+item String SvxDbTypeItem;
+item String SvxEscapementItem;
+item String SvxFmtBreakItem;
+item String SvxFmtSplitItem;
+item String SvxFontHeightItem;
+item String SvxFontItem;
+item String SvxFontListItem;
+item String SvxHyphenZoneItem;
+item String SvxInFrameItem;
+item String SvxKerningItem;
+item String SvxLRSpaceItem;
+item String SvxLanguageItem;
+item String SvxLineSpacingItem;
+item String SvxMacroItem;
+item String SvxNoHyphenItem;
+item String SvxNoLinebreakItem;
+item String SvxNumberInfoItem;
+item String SvxOpaqueItem;
+item String SvxOrphansItem;
+item String SvxPageItem;
+item String SvxPageModelItem;
+item String SvxPagePosSizeItem;
+item String SvxPaperBinItem;
+item String SvxParaDlgLimitsItem;
+item String SvxPostItAuthorItem;
+item String SvxPostItDateItem;
+item String SvxPostItTextItem;
+item String SvxPostureItem;
+item String SvxPrintItem;
+item String SvxPropSizeItem;
+item String SvxProtectItem;
+item String SvxPtrItem;
+item String SvxRulerItem;
+item String SvxSearchItem;
+item String SvxSearchControllerItem;
+item String SvxSearchItem;
+item String SvxSetItem;
+item String SvxShadowedItem;
+item String SvxShadowItem;
+item String SvxSizeItem;
+item String SvxTabStopItem;
+item String SvxULSpaceItem;
+item String SvxUnderlineItem;
+item String SvxWeightItem;
+item String SvxWidowsItem;
+item String SvxWordLineModeItem;
+item String XFillAttrSetItem;
+item String XFillBitmapItem;
+item String XFillColorItem;
+item String XFillGradientItem;
+item String XFillHatchItem;
+item String XFillStyleItem;
+item String XLineAttrSetItem;
+item String XLineColorItem;
+item String XLineDashItem;
+item String XLineEndItem;
+item String XLineEndWidthItem;
+item String XLineEndCenterItem;
+item String XLineStartItem;
+item String XLineStartWidthItem;
+item String XLineStartCenterItem;
+item String XLineStyleItem;
+item String XLineWidthItem;
diff --git a/sd/source/filter/eppt/eppt.cxx b/sd/source/filter/eppt/eppt.cxx
new file mode 100644
index 000000000000..eafc4407e711
--- /dev/null
+++ b/sd/source/filter/eppt/eppt.cxx
@@ -0,0 +1,2354 @@
+/*************************************************************************
+ *
+ * $RCSfile: eppt.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:45 $
+ *
+ * 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 _EPPT_HXX_
+#include
+#endif
+#ifndef _EPPT_DEF_HXX
+#include "epptdef.hxx"
+#endif
+#ifndef __EscherEX_HXX
+#include "escherex.hxx"
+#endif
+#ifndef _GLOBNAME_HXX
+#include
+#endif
+#ifndef _DATETIME_HXX
+#include
+#endif
+#ifndef _SV_POLY_HXX
+#include
+#endif
+#ifndef _SV_GRAPH_HXX
+#include
+#endif
+#ifndef _SV_BMPACC_HXX
+#include
+#endif
+#ifndef _SV_GRADIENT_HXX
+#include
+#endif
+#ifndef _RTL_USTRING_HXX_
+#include
+#endif
+#ifndef _STREAM_HXX
+#include
+#endif
+#ifndef _FLTCALL_HXX
+#include
+#endif
+#ifndef _SFXDOCFILE_HXX
+#include
+#endif
+#ifndef _SVDOBJ_HXX
+#include
+#endif
+#ifndef _SVDMODEL_HXX
+#include
+#endif
+#ifndef _SVDPAGE_HXX
+#include
+#endif
+#ifndef _DINFOS2_HXX_
+#include
+#endif
+#ifndef _COM_SUN_STAR_VIEW_PAPERORIENTATION_HPP_
+#include
+#endif
+#ifndef _COM_SUN_STAR_VIEW_PAPERFORMAT_HPP_
+#include
+#endif
+#ifndef _COM_SUN_STAR_DOCUMENT_XDOCUMENTINFOSUPPLIER_HPP_
+#include
+#endif
+#ifndef _ZCODEC_HXX
+#include
+#endif
+#ifndef _IPOBJ_HXX
+#include
+#endif
+#ifndef _SVX_SVXENUM_HXX
+#include
+#endif
+#ifndef _SOT_STORINFO_HXX
+#include
+#endif
+
+#ifndef _SV_VIRDEV_HXX
+#include
+#endif
+#include
+
+#define PPT_TRANSITION_TYPE_NONE 0
+#define PPT_TRANSITION_TYPE_RANDOM 1
+#define PPT_TRANSITION_TYPE_BLINDS 2
+#define PPT_TRANSITION_TYPE_CHECKER 3
+#define PPT_TRANSITION_TYPE_COVER 4
+#define PPT_TRANSITION_TYPE_DISSOLVE 5
+#define PPT_TRANSITION_TYPE_FADE 6
+#define PPT_TRANSITION_TYPE_PULL 7
+#define PPT_TRANSITION_TYPE_RANDOM_BARS 8
+#define PPT_TRANSITION_TYPE_STRIPS 9
+#define PPT_TRANSITION_TYPE_WIPE 10
+#define PPT_TRANSITION_TYPE_ZOOM 11
+#define PPT_TRANSITION_TYPE_SPLIT 13
+
+
+//============================ PPTWriter ==================================
+
+PPTWriter::PPTWriter( SvStorageRef& rSvStorage, SvStorageRef& xOleSource,
+ ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel > & rXModel,
+ ::com::sun::star::uno::Reference< ::com::sun::star::task::XStatusIndicator > & rXStatInd,
+ SvMemoryStream* pVBA, sal_uInt32 nFilterOptions ) :
+ mbStatus ( FALSE ),
+ mXModel ( rXModel ),
+ mXStatusIndicator ( rXStatInd ),
+ mnLatestStatValue ( 0 ),
+ mbStatusIndicator ( FALSE ),
+ mpCurUserStrm ( NULL ),
+ mpStrm ( NULL ),
+ mp_EscherEx ( NULL ),
+ maFraction ( 1, 576 ),
+ maMapModeSrc ( MAP_100TH_MM ),
+ maMapModeDest ( MAP_INCH, Point(), maFraction, maFraction ),
+ meLatestPageType ( NORMAL ),
+ mnTxId ( 0x7a2f64 ),
+ mnFillColor ( 0xffffff ),
+ mnFillBackColor ( 0x000000 ),
+ mpPicStrm ( NULL ),
+ mnPagesWritten ( 0 ),
+ mnMasterTitleIndex ( 0xffffffff ),
+ mnMasterBodyIndex ( 0xffffffff ),
+ mpStyleSheet ( NULL ),
+ mnVBAOleOfs ( 0 ),
+ mnExEmbed ( 0 ),
+ mpVBA ( pVBA ),
+ mpExEmbed ( new SvMemoryStream )
+{
+ int i;
+
+ if ( !ImplInitSOIface() )
+ return;
+
+ maFontCollection.GetId( "Times New Roman" ); // default: immer ein times new roman
+
+ if ( !ImplGetPageByIndex( 0, NOTICE ) )
+ return;
+ INT32 nWidth = 21000;
+ if ( ImplGetPropertyValue( mXPagePropSet, String( RTL_CONSTASCII_USTRINGPARAM( "Width" ) ) ) )
+ mAny >>= nWidth;
+ INT32 nHeight = 29700;
+ if ( ImplGetPropertyValue( mXPagePropSet, String( RTL_CONSTASCII_USTRINGPARAM( "Height" ) ) ) )
+ mAny >>= nHeight;
+
+ maNotesPageSize = ImplMapSize( ::com::sun::star::awt::Size( nWidth, nHeight ) );
+
+ if ( !ImplGetPageByIndex( 0, MASTER ) )
+ return;
+ nWidth = 28000;
+ if ( ImplGetPropertyValue( mXPagePropSet, String( RTL_CONSTASCII_USTRINGPARAM( "Width" ) ) ) )
+ mAny >>= nWidth;
+ nHeight = 21000;
+ if ( ImplGetPropertyValue( mXPagePropSet, String( RTL_CONSTASCII_USTRINGPARAM( "Height" ) ) ) )
+ mAny >>= nHeight;
+ maDestPageSize = ImplMapSize( ::com::sun::star::awt::Size( nWidth, nHeight ) );
+
+ mrStg = rSvStorage;
+ if ( !mrStg.Is() )
+ return;
+
+ mXSource = xOleSource;
+ if ( !mXSource.Is() )
+ return;
+
+ // MasterPages + Slides und Notizen + NotesMasterPage
+ mnDrawings = mnMasterPages + ( mnPages << 1 ) + 1;
+
+ if ( mXStatusIndicator.is() )
+ {
+ mbStatusIndicator = TRUE;
+ mnStatMaxValue = ( mnPages + mnMasterPages ) * 5;
+ mXStatusIndicator->start( String( RTL_CONSTASCII_USTRINGPARAM( "PowerPoint Export" ) ),
+ mnStatMaxValue + ( mnStatMaxValue >> 3 ) );
+ }
+
+ SvGlobalName aGName( 0x64818d10L, 0x4f9b, 0x11cf, 0x86, 0xea, 0x00, 0xaa, 0x00, 0xb9, 0x29, 0xe8 );
+ mrStg->SetClass( aGName, 0, String( RTL_CONSTASCII_USTRINGPARAM( "MS PowerPoint 97" ) ) );
+
+ if ( !ImplCreateCurrentUserStream() )
+ return;
+
+ if ( !ImplCreateSummaryInformation() )
+ return;
+
+ mpStrm = mrStg->OpenStream( String( RTL_CONSTASCII_USTRINGPARAM( "PowerPoint Document" ) ) );
+ if ( !mpStrm )
+ return;
+
+ mp_EscherEx = new _EscherEx( *mpStrm, mnDrawings );
+
+ ImplGetMasterTitleAndBody();
+ if ( !ImplGetStyleSheets() )
+ return;
+
+ if ( !ImplCreateDocument() )
+ return;
+
+ if ( !ImplCreateMainMaster() )
+ return;
+
+ if ( !ImplCreateMainNotes() )
+ return;
+
+ for ( i = 1; i < mnMasterPages; i++ )
+ {
+ if ( !ImplCreateTitleMasterPage( i ) )
+ return;
+ }
+ maTextRuleList.First(); // rewind list, so we can get the current or next entry without
+ // searching, all entrys are sorted
+ for ( i = 0; i < mnPages; i++ )
+ {
+ if ( !ImplCreateSlide( i ) )
+ return;
+ }
+ for ( i = 0; i < mnPages; i++ )
+ {
+ if ( !ImplCreateNotes( i ) )
+ return;
+ }
+ if ( !ImplCloseDocument() )
+ return;
+
+ if ( mbStatusIndicator )
+ {
+ mXStatusIndicator->setText( String( RTL_CONSTASCII_USTRINGPARAM( "PowerPoint Export" ) ) );
+ sal_uInt32 nValue = mnStatMaxValue + ( mnStatMaxValue >> 3 );
+ if ( nValue > mnLatestStatValue )
+ {
+ mXStatusIndicator->setValue( nValue );
+ mnLatestStatValue = nValue;
+ }
+ }
+
+// mp_EscherEx->Flush(); // interne _Escher Daten jetzt einfuegen, damit die PersistTable rausgeschrieben werden kann
+
+ ImplWriteOLE();
+
+ ImplWriteVBA( pVBA );
+
+ if ( !ImplWriteAtomEnding() )
+ return;
+
+ if ( !ImplCreateDocumentSummaryInformation() )
+ return;
+
+ mbStatus = TRUE;
+};
+
+
+// ---------------------------------------------------------------------------------------------
+
+PPTWriter::~PPTWriter()
+{
+ void* pPtr;
+ delete mpExEmbed;
+ delete mp_EscherEx;
+ delete mpStyleSheet;
+
+ for ( pPtr = maTextRuleList.First(); pPtr; pPtr = maTextRuleList.Next() )
+ delete (TextRuleEntry*)pPtr;
+ for ( pPtr = maSlideNameList.First(); pPtr; pPtr = maSlideNameList.Next() )
+ delete (::rtl::OUString*)pPtr;
+ for ( pPtr = maHyperlink.First(); pPtr; pPtr = maHyperlink.Next() )
+ delete (EPPTHyperlink*)pPtr;
+ for ( pPtr = maExOleObj.First(); pPtr; pPtr = maExOleObj.Next() )
+ delete (PPTExOleObjEntry*)pPtr;
+
+ if ( mbStatusIndicator )
+ mXStatusIndicator->end();
+}
+
+// ---------------------------------------------------------------------------------------------
+
+static inline sal_uInt32 PPTtoEMU( INT32 nPPT )
+{
+ return (double)nPPT * 1587.5;
+}
+
+// ---------------------------------------------------------------------------------------------
+
+sal_Bool PPTWriter::ImplCreateCurrentUserStream()
+{
+ mpCurUserStrm = mrStg->OpenStream( String( RTL_CONSTASCII_USTRINGPARAM( "Current User" ) ) );
+ if ( !mpCurUserStrm )
+ return FALSE;
+ char pUserName[] = "Current User";
+ sal_uInt32 nLenOfUserName = strlen( pUserName );
+ sal_uInt32 nSizeOfRecord = 0x14 + ( ( nLenOfUserName + 4 ) & ~ 3 );
+
+ *mpCurUserStrm << (sal_uInt16)0 << (sal_uInt16)EPP_CurrentUserAtom << nSizeOfRecord;
+ *mpCurUserStrm << (sal_uInt32)0x14 // Len
+ << (sal_uInt32)0xe391c05f; // Magic
+
+ sal_uInt32 nEditPos = mpCurUserStrm->Tell();
+ *mpCurUserStrm << (sal_uInt32)0x0 // OffsetToCurrentEdit;
+ << (sal_uInt16)nLenOfUserName //
+ << (sal_uInt16)0x3f4 // DocFileVersion
+ << (sal_uInt8)3 // MajorVersion
+ << (sal_uInt8)0 // MinorVersion
+ << (sal_uInt16)0; // Pad Word
+ pUserName[ nLenOfUserName ] = 8;
+ mpCurUserStrm->Write( pUserName, nLenOfUserName + 1 );
+ for ( sal_uInt32 i = 0x15 + nLenOfUserName; i < nSizeOfRecord; i++ )
+ {
+ *mpCurUserStrm << (sal_uInt8)0; // pad bytes
+ };
+ mpCurUserStrm->Seek( nEditPos );
+ return TRUE;
+};
+
+// ---------------------------------------------------------------------------------------------
+
+sal_Bool PPTWriter::ImplCreateSummaryInformation()
+{
+ ::com::sun::star::uno::Reference< ::com::sun::star::document::XDocumentInfoSupplier >
+ aXDocumentInfoSupplier( mXModel, ::com::sun::star::uno::UNO_QUERY );
+ if ( aXDocumentInfoSupplier.is() )
+ {
+ ::com::sun::star::uno::Reference< ::com::sun::star::document::XDocumentInfo >
+ aXDocumentInfo( aXDocumentInfoSupplier->getDocumentInfo() );
+ if ( aXDocumentInfo.is() )
+ {
+ DInfo aDInfo( *mrStg, String( RTL_CONSTASCII_USTRINGPARAM( "\005SummaryInformation" ) ) );
+
+ if ( aDInfo.IsValid() )
+ {
+ sal_uInt8 aPropSetGUID[ 16 ] =
+ {
+ 0xe0, 0x85, 0x9f, 0xf2, 0xf9, 0x4f, 0x68, 0x10, 0xab, 0x91, 0x08, 0x00, 0x2b, 0x27, 0xb3, 0xd9
+ };
+ Section aPropSet( aPropSetGUID );
+
+ PropItem aPropItem;
+
+ ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >
+ aXDocInfoPropSet( aXDocumentInfo, ::com::sun::star::uno::UNO_QUERY ); ;
+ if ( aXDocInfoPropSet.is() )
+ {
+ if ( ImplGetPropertyValue( aXDocInfoPropSet, String( RTL_CONSTASCII_USTRINGPARAM( "Author" ) ) ) )
+ {
+ if ( (*(::rtl::OUString*)mAny.getValue() ).len() )
+ {
+ aPropItem.Clear();
+ aPropItem.Write( String( *(::rtl::OUString*)mAny.getValue() ) );
+ aPropSet.AddProperty( PID_AUTHOR, aPropItem );
+ }
+ }
+ if ( ImplGetPropertyValue( aXDocInfoPropSet, String( RTL_CONSTASCII_USTRINGPARAM( "ModifiedBy" ) ) ) )
+ {
+ if ( (*(::rtl::OUString*)mAny.getValue() ).len() )
+ {
+ aPropItem.Clear();
+ aPropItem.Write( String( *(::rtl::OUString*)mAny.getValue() ) );
+ aPropSet.AddProperty( PID_LASTAUTHOR, aPropItem );
+ }
+ }
+ if ( ImplGetPropertyValue( aXDocInfoPropSet, String( RTL_CONSTASCII_USTRINGPARAM( "Theme" ) ) ) )
+ {
+ if ( (*(::rtl::OUString*)mAny.getValue() ).len() )
+ {
+ aPropItem.Clear();
+ aPropItem.Write( String( *(::rtl::OUString*)mAny.getValue() ) );
+ aPropSet.AddProperty( PID_SUBJECT, aPropItem );
+ }
+ }
+ if ( ImplGetPropertyValue( aXDocInfoPropSet, String( RTL_CONSTASCII_USTRINGPARAM( "Title" ) ) ) )
+ {
+ if ( (*(::rtl::OUString*)mAny.getValue() ).len() )
+ {
+ aPropItem.Clear();
+ aPropItem.Write( String( *(::rtl::OUString*)mAny.getValue() ) );
+ aPropSet.AddProperty( PID_TITLE, aPropItem );
+ }
+ }
+ if ( ImplGetPropertyValue( aXDocInfoPropSet, String( RTL_CONSTASCII_USTRINGPARAM( "Keywords" ) ) ) )
+ {
+ if ( (*(::rtl::OUString*)mAny.getValue() ).len() )
+ {
+ aPropItem.Clear();
+ aPropItem.Write( String( *(::rtl::OUString*)mAny.getValue() ) );
+ aPropSet.AddProperty( PID_KEYWORDS, aPropItem );
+ }
+ }
+ if ( ImplGetPropertyValue( aXDocInfoPropSet, String( RTL_CONSTASCII_USTRINGPARAM( "Description" ) ) ) )
+ {
+ if ( (*(::rtl::OUString*)mAny.getValue() ).len() )
+ {
+ aPropItem.Clear();
+ aPropItem.Write( String( *(::rtl::OUString*)mAny.getValue() ) );
+ aPropSet.AddProperty( PID_COMMENTS, aPropItem );
+ }
+ }
+ if ( ImplGetPropertyValue( aXDocInfoPropSet, String( RTL_CONSTASCII_USTRINGPARAM( "CreationDate" ) ) ) )
+ {
+ DateTime aDateTime( *(DateTime*)mAny.getValue() );
+ if ( aDateTime.IsValid() )
+ {
+ aPropItem.Clear();
+ aPropItem.Write( aDateTime );
+ aPropSet.AddProperty( PID_CREATE_DTM, aPropItem );
+ }
+ }
+ if ( ImplGetPropertyValue( aXDocInfoPropSet, String( RTL_CONSTASCII_USTRINGPARAM( "PrintDate" ) ) ) )
+ {
+ DateTime aDateTime( *(DateTime*)mAny.getValue() );
+ if ( aDateTime.IsValid() )
+ {
+ aPropItem.Clear();
+ aPropItem.Write( aDateTime );
+ aPropSet.AddProperty( PID_LASTPRINTED_DTM, aPropItem );
+ }
+ }
+ }
+
+ if ( ImplGetPageByIndex( 0, NORMAL ) && ImplGetPropertyValue( mXPagePropSet, String( RTL_CONSTASCII_USTRINGPARAM( "Preview" ) ) ) )
+ {
+ sal_uInt16 nWidth = 4233;
+ sal_uInt16 nHeight = ( (double)4233.0 /
+ (double)maDestPageSize.Width *
+ (double)maDestPageSize.Height );
+ aPropItem.Clear();
+ aPropItem << (UINT32)VT_CF
+ << (UINT32)0;
+
+ aPropItem << (sal_uInt32)0xfffffff
+ << (sal_uInt32)3
+ << (sal_uInt16)8
+ << nWidth
+ << nHeight
+ << (sal_uInt16)0;
+
+ ::com::sun::star::uno::Sequence aSeq;
+ aSeq = *(::com::sun::star::uno::Sequence*)mAny.getValue();
+
+ const sal_uInt8* pAry = aSeq.getArray();
+ sal_uInt32 nAryLen = aSeq.getLength();
+
+ if ( pAry && nAryLen )
+ {
+ aPropItem.Write( pAry, nAryLen );
+ sal_uInt32 nSize = aPropItem.Tell() - 8;
+ aPropItem.Seek( 4 );
+ aPropItem << nSize;
+ aPropSet.AddProperty( PID_PREVIEW, aPropItem );
+ aDInfo.AddSection( aPropSet );
+ }
+ }
+ aDInfo.Write();
+ }
+ }
+ }
+ return TRUE;
+}
+
+// ---------------------------------------------------------------------------------------------
+
+sal_Bool PPTWriter::ImplCreateDocumentSummaryInformation()
+{
+ DInfo aDInfo( *mrStg, String( RTL_CONSTASCII_USTRINGPARAM( "\005DocumentSummaryInformation" ) ) );
+
+ if ( aDInfo.IsValid() )
+ {
+ // first section
+
+ sal_uInt8 aPropSetGUID[ 16 ] =
+ {
+ 0x02, 0xd5, 0xcd, 0xd5, 0x9c, 0x2e, 0x1b, 0x10, 0x93, 0x97, 0x08, 0x00, 0x2b, 0x2c, 0xf9, 0xae
+ };
+ Section aPropSet( aPropSetGUID );
+ aDInfo.AddSection( aPropSet );
+
+ // second section
+
+ sal_uInt32 nNextId = 2;
+ sal_uInt8 aUserPropSetGUID[ 16 ] =
+ {
+ 0x05, 0xd5, 0xcd, 0xd5, 0x9c, 0x2e, 0x1b, 0x10, 0x93, 0x97, 0x08, 0x00, 0x2b, 0x2c, 0xf9, 0xae
+ };
+ Section aUserPropSet( aUserPropSetGUID );
+
+ Dictionary aDict;
+
+ // code page indicator
+
+ sal_uInt8 aCodePageIndicator[ 8 ] =
+ {
+ 0x02, 0x00, 0x00, 0x00, 0xe4, 0x04, 0x00, 0x00
+ };
+ aUserPropSet.AddProperty( 1, aCodePageIndicator, 8 ); // 1 is always the code page indicator
+
+ // guid
+
+ sal_uInt8 aGuid[ 0x56 ] =
+ {
+ 0x41, 0x00, 0x00, 0x00,
+ 0x4e, 0x00, 0x00, 0x00,
+ '{',0,'D',0,'B',0,'1',0,'A',0,'C',0,'9',0,'6',0,'4',0,'-',0,
+ 'E',0,'3',0,'9',0,'C',0,'-',0,'1',0,'1',0,'D',0,'2',0,'-',0,
+ 'A',0,'1',0,'E',0,'F',0,'-',0,'0',0,'0',0,'6',0,'0',0,'9',0,
+ '7',0,'D',0,'A',0,'5',0,'6',0,'8',0,'9',0,'}',0
+ };
+ aDict.AddProperty( nNextId, String( RTL_CONSTASCII_USTRINGPARAM( "_PID_GUID" ) ) );
+ aUserPropSet.AddProperty( nNextId++, aGuid, 0x56 );
+
+ // hyperlinks
+
+ if ( maHyperlink.Count() )
+ {
+ SvMemoryStream aHyperBlob;
+ ImplCreateHyperBlob( aHyperBlob );
+ aDict.AddProperty( nNextId, String( RTL_CONSTASCII_USTRINGPARAM( "_PID_HLINKS" ) ) );
+ aUserPropSet.AddProperty( nNextId++, aHyperBlob );
+ }
+
+ // special propertys
+
+ ::com::sun::star::uno::Reference< ::com::sun::star::document::XDocumentInfoSupplier >
+ aXDocumentInfoSupplier( mXModel, ::com::sun::star::uno::UNO_QUERY );
+
+ if ( aXDocumentInfoSupplier.is() )
+ {
+
+ ::com::sun::star::uno::Reference< ::com::sun::star::document::XDocumentInfo >
+ aXDocumentInfo( aXDocumentInfoSupplier->getDocumentInfo() );
+ if ( aXDocumentInfo.is() )
+ {
+ INT32 nUserFieldCount = aXDocumentInfo->getUserFieldCount();
+ PropItem aPropItem;
+ for ( int i = 0; i < nUserFieldCount; i++ )
+ {
+ aPropItem.Clear();
+ ::rtl::OUString aUValue( aXDocumentInfo->getUserFieldValue( i ) );
+ if ( aUValue.len() )
+ {
+ aPropItem.Write( String( aUValue ) );
+ aDict.AddProperty( nNextId, aXDocumentInfo->getUserFieldName( i ) );
+ aUserPropSet.AddProperty( nNextId++, aPropItem );
+ }
+ }
+ }
+ }
+
+ aUserPropSet.AddDictionary( aDict );
+ aDInfo.AddSection( aUserPropSet );
+ aDInfo.Write();
+ }
+ return TRUE;
+}
+
+// ---------------------------------------------------------------------------------------------
+
+void PPTWriter::ImplWriteExtParaHeader( SvMemoryStream& rSt, sal_uInt32 nRef, sal_uInt32 nInstance, sal_uInt32 nSlideId )
+{
+ if ( rSt.Tell() )
+ {
+ aBuExOutlineStream << (sal_uInt32)( ( EPP_PST_ExtendedParagraphHeaderAtom << 16 )
+ | ( nRef << 4 ) )
+ << (sal_uInt32)8
+ << (sal_uInt32)nSlideId
+ << (sal_uInt32)nInstance;
+ aBuExOutlineStream.Write( rSt.GetData(), rSt.Tell() );
+ }
+}
+
+// ---------------------------------------------------------------------------------------------
+
+sal_Bool PPTWriter::ImplCreateDocument()
+{
+ sal_uInt32 i;
+ sal_uInt16 nSlideType = EPP_SLIDESIZE_TYPECUSTOM;
+
+ sal_uInt32 nWidth = maDestPageSize.Width;
+ sal_uInt32 nHeight = maDestPageSize.Height;
+
+ if ( ( nWidth == 0x1680 ) && ( nHeight == 0x10e0 ) )
+ nSlideType = EPP_SLIDESIZE_TYPEONSCREEN;
+ else if ( ( nWidth == 0x1200 ) && ( nHeight == 0x240 ) )
+ nSlideType = EPP_SLIDESIZE_TYPEBANNER;
+ else if ( ( nWidth == 0x1950 ) && ( nHeight == 0x10e0 ) )
+ nSlideType = EPP_SLIDESIZE_TYPE35MM;
+ else if ( ( nWidth == 0x1860 ) && ( nHeight == 0x10e0 ) )
+ nSlideType = EPP_SLIDESIZE_TYPEA4PAPER;
+
+ mp_EscherEx->OpenContainer( EPP_Document );
+ // CREATE DOCUMENT ATOM
+ mp_EscherEx->AddAtom( 40, EPP_DocumentAtom, 1 );
+ *mpStrm << nWidth // Slide Size in Master coordinates X
+ << nHeight // " " " " " Y
+ << (INT32)maNotesPageSize.Width // Notes Page Size X
+ << (INT32)maNotesPageSize.Height // " " " Y
+ << (INT32)1 << (INT32)2; // the scale used when the Powerpoint document is embedded. the default is 1:2
+ mp_EscherEx->InsertPersistOffset( EPP_MAINNOTESMASTER_PERSIST_KEY, mpStrm->Tell() );
+ *mpStrm << (sal_uInt32)0 // Reference to NotesMaster ( 0 if none );
+ << (sal_uInt32)0 // Reference to HandoutMaster ( 0 if none );
+ << (sal_Int16)1 // Number of the first slide;
+ << nSlideType // Size of the document slides ( default: EPP_SLIDESIZETYPEONSCREEN )
+ << (sal_uInt8)0 // bool1 indicates if document was saved with embedded true type fonts
+ << (sal_uInt8)0 // bool1 indicates if the placeholders on the title slide are omitted
+ << (sal_uInt8)0 // bool1 right to left ( flag for Bidi version )
+ << (sal_uInt8)1; // bool1 visibility of comments shapes
+
+ mp_EscherEx->PtInsert( EPP_Persist_Document, mpStrm->Tell() );
+
+ mp_EscherEx->OpenContainer( EPP_SlideListWithText ); // Animation info fuer die Slides
+
+ sal_uInt32 nShapes;
+ sal_Bool bOtherThanPlaceHolders;
+
+ for ( i = 0; i < mnPages; i++ )
+ {
+ sal_uInt32 nPOffset, nPObjects;
+ sal_Bool bOutliner, bTitle;
+
+ bOtherThanPlaceHolders = bOutliner = bTitle = FALSE;
+ nPObjects = 0;
+
+ mp_EscherEx->AddAtom( 20, EPP_SlidePersistAtom );
+ mp_EscherEx->InsertPersistOffset( EPP_MAINSLIDE_PERSIST_KEY | i, mpStrm->Tell() );
+ *mpStrm << (sal_uInt32)0; // psrReference - logical reference to the slide persist object ( EPP_MAINSLIDE_PERSIST_KEY )
+ nPOffset = mpStrm->Tell();
+ *mpStrm << (sal_uInt32)0 // flags - only bit 3 used, if set then slide contains shapes other than placeholders
+ << (INT32)0 // numberTexts - number of placeholder texts stored with the persist object. Allows to display outline view without loading the slide persist objects
+ << (INT32)i + 0x100 // slideId - Unique slide identifier, used for OLE link monikers for example
+ << (sal_uInt32)0; // reserved, usualy 0
+
+ if ( !ImplGetPageByIndex( i, NORMAL ) ) // sehr aufregend: noch einmal ueber alle seiten
+ return FALSE;
+
+ sal_Int32 nLayout = 20; // Default: blank Slide
+ if ( ImplGetPropertyValue( mXPagePropSet, String( RTL_CONSTASCII_USTRINGPARAM( "Layout" ) ) ) )
+ {
+ nLayout = *( (sal_uInt16*)mAny.getValue() );
+ if ( nLayout > 20 )
+ nLayout = 20;
+ }
+ const PHLayout& rLayout = pPHLayout[ nLayout ];
+
+ ::com::sun::star::uno::Reference< ::com::sun::star::container::XNamed >
+ aXName( mXModel, ::com::sun::star::uno::UNO_QUERY );
+
+ if ( aXName.is() )
+ {
+ ::rtl::OUString aStr = aXName->getName();
+ ::rtl::OUString *pUStr = new ::rtl::OUString( aStr );
+ maSlideNameList.Insert( pUStr, LIST_APPEND );
+ }
+ else
+ maSlideNameList.Insert( new ::rtl::OUString(), LIST_APPEND );
+
+ nShapes = mXShapes->getCount();
+
+ sal_Bool bSecOutl = FALSE;
+ if ( nShapes && ( rLayout.bTitlePossible || rLayout.bOutlinerPossible ) )
+ {
+ for ( sal_uInt32 nIndex = 0; nIndex < nShapes; nIndex++ )
+ {
+ if ( !ImplGetShapeByIndex( nIndex ) )
+ continue;
+
+ if ( mbPresObj && ( mType == "presentation.Outliner" ) )
+ {
+ if ( bOutliner == FALSE )
+ {
+ if ( ImplGetText() )
+ {
+ bOutliner = TRUE;
+ mnTextStyle = EPP_TEXTSTYLE_BODY;
+ sal_uInt32 nTextType = ( bSecOutl ) ? EPP_TEXTTYPE_HalfBody : EPP_TEXTTYPE_Body;
+ TextRuleEntry* pRule = new TextRuleEntry( i );
+ SvMemoryStream aExtBu( 0x200, 0x200 );
+ ImplWriteTextStyleAtom( *mpStrm, nTextType, nPObjects, pRule, aExtBu );
+ ImplWriteExtParaHeader( aExtBu, nPObjects++, nTextType, i + 0x100 );
+ maTextRuleList.Insert( (void*)pRule );
+ if ( rLayout.bSecOutlinerPossible )
+ {
+ if ( ( nIndex + 1 ) < nShapes )
+ {
+ if ( ImplGetShapeByIndex( nIndex + 1 ) && mType == "presentation.Outliner" && ImplGetText() )
+ {
+ bSecOutl = TRUE;
+ TextRuleEntry* pRule = new TextRuleEntry( i );
+ SvMemoryStream aExtBu( 0x200, 0x200 );
+ ImplWriteTextStyleAtom( *mpStrm, nTextType, nPObjects, pRule, aExtBu );
+ ImplWriteExtParaHeader( aExtBu, nPObjects++, nTextType, i + 0x100 );
+ maTextRuleList.Insert( (void*)pRule );
+ }
+ }
+ }
+ }
+ }
+ }
+ else if ( rLayout.bTitlePossible && ( mType == "presentation.TitleText" ) )
+ {
+ if ( bTitle == FALSE )
+ {
+ if ( ImplGetText() )
+ {
+ bTitle = TRUE;
+ mnTextStyle = EPP_TEXTSTYLE_TITLE;
+ TextRuleEntry* pRule = new TextRuleEntry( i );
+ SvMemoryStream aExtBu( 0x200, 0x200 );
+ ImplWriteTextStyleAtom( *mpStrm, EPP_TEXTTYPE_Title, nPObjects, pRule, aExtBu );
+ ImplWriteExtParaHeader( aExtBu, nPObjects++, EPP_TEXTTYPE_Title, i + 0x100 );
+ maTextRuleList.Insert( (void*)pRule );
+ }
+ }
+ }
+ else
+ {
+ if ( mbEmptyPresObj )
+ nPObjects++;
+ else
+ bOtherThanPlaceHolders = TRUE; // muss noch auf background und leeren Title/outliner geprueft werden !!!
+ }
+ if ( bOutliner && bTitle && bOtherThanPlaceHolders )
+ break;
+ }
+ }
+ if ( nPObjects )
+ {
+ sal_uInt32 nOldPos = mpStrm->Tell();
+ mpStrm->Seek( nPOffset );
+ *mpStrm << (sal_uInt32)( ( bOtherThanPlaceHolders ) ? 4 : 0 );
+ *mpStrm << nPObjects;
+ mpStrm->Seek( nOldPos );
+ }
+ }
+ mp_EscherEx->CloseContainer(); // EPP_SlideListWithText
+
+ mp_EscherEx->OpenContainer( EPP_SlideListWithText, 2 ); // Animation info fuer die notes
+ for( i = 0; i < mnPages; i++ )
+ {
+ if ( !ImplGetPageByIndex( i, NOTICE ) )
+ return FALSE;
+
+ nShapes = mXShapes->getCount();
+
+ bOtherThanPlaceHolders = FALSE;
+ if ( nShapes )
+ {
+ for ( sal_uInt32 nIndex = 0; ( nIndex < nShapes ) && ( bOtherThanPlaceHolders == FALSE ); nIndex++ )
+ {
+ if ( ImplGetShapeByIndex( nIndex ) && ( mType != "drawing.Page" ) )
+ bOtherThanPlaceHolders = TRUE;
+ }
+ }
+ mp_EscherEx->AddAtom( 20, EPP_SlidePersistAtom );
+ mp_EscherEx->InsertPersistOffset( EPP_MAINNOTES_PERSIST_KEY | i, mpStrm->Tell() );
+ *mpStrm << (sal_uInt32)0
+ << (sal_uInt32)( ( bOtherThanPlaceHolders ) ? 4 : 0 )
+ << (INT32)0
+ << (INT32)i + 0x100
+ << (sal_uInt32)0;
+ }
+ mp_EscherEx->CloseContainer(); // EPP_SlideListWithText
+
+ ::com::sun::star::uno::Reference< ::com::sun::star::presentation::XPresentationSupplier >
+ aXPresSupplier( mXModel, ::com::sun::star::uno::UNO_QUERY ); ;
+ if ( aXPresSupplier.is() )
+ {
+ ::com::sun::star::uno::Reference< ::com::sun::star::presentation::XPresentation >
+ aXPresentation( aXPresSupplier->getPresentation() );
+ if ( aXPresentation.is() )
+ {
+ mXPropSet = ::com::sun::star::uno::Reference<
+ ::com::sun::star::beans::XPropertySet >
+ ( aXPresentation, ::com::sun::star::uno::UNO_QUERY );
+ if ( mXPropSet.is() )
+ {
+ ::rtl::OUString aCustomShow;
+ sal_uInt32 nPenColor = 0x1000000;
+ INT32 nRestartTime = 0x7fffffff;
+ sal_Int16 nStartSlide = 0;
+ sal_Int16 nEndSlide = 0;
+ sal_uInt32 nFlags = 0; // Bit 0: Auto advance
+ // Bit 1 Skip builds
+ // Bit 2 Use slide range
+ // Bit 3 Use named show
+ // Bit 4 Browse mode on
+ // Bit 5 Kiosk mode on
+ // Bit 7 loop continously
+ // Bit ? show scrollbar
+
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "AllowAnimations" ) ) ) )
+ {
+ sal_Bool bBool;
+ mAny >>= bBool;
+ if ( !bBool )
+ nFlags |= 2;
+ }
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "CustomShow" ) ) ) )
+ {
+ aCustomShow = ( *(::rtl::OUString*)mAny.getValue() );
+ if ( aCustomShow.len() )
+ {
+ nFlags |= 8;
+ }
+ }
+ else if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "FirstPage" ) ) ) )
+ {
+ ::rtl::OUString aSlideName( *(::rtl::OUString*)mAny.getValue() );
+ for ( ::rtl::OUString* pStr = (::rtl::OUString*)maSlideNameList.First(); pStr;
+ pStr = (::rtl::OUString*)maSlideNameList.Next(), nStartSlide++ )
+ {
+ if ( *pStr == aSlideName )
+ {
+ nStartSlide++;
+ nFlags |= 4;
+ nEndSlide = mnPages;
+ break;
+ }
+ }
+ if ( !pStr )
+ nStartSlide = 0;
+ }
+
+// if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "DiaName" ) ) ) )
+// {
+// }
+// if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "IsAlwaysOnTop" ) ) ) )
+// {
+// }
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "IsAutomatic" ) ) ) )
+ {
+ sal_Bool bBool;
+ mAny >>= bBool;
+ if ( !bBool )
+ nFlags |= 1;
+ }
+
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "IsEndless" ) ) ) ) // muesste eigendlich heissen IsNotEndless !=)"§()&
+ {
+ sal_Bool bBool;
+ mAny >>= bBool;
+ if ( bBool )
+ nFlags |= 0x80;
+ }
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "IsFullScreen" ) ) ) )
+ {
+ sal_Bool bBool;
+ mAny >>= bBool;
+ if ( !bBool )
+ nFlags |= 0x11;
+ }
+// if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "IsLivePresentation" ) ) ) )
+// {
+// }
+// if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "IsMouseVisible" ) ) ) )
+// {
+// }
+// if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "PageRange" ) ) ) )
+// {
+// }
+// if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "StartWithNavigator" ) ) ) )
+// {
+// }
+// if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "UsePen" ) ) ) )
+// {
+// }
+ mp_EscherEx->AddAtom( 80, EPP_SSDocInfoAtom, 1 );
+ *mpStrm << nPenColor << nRestartTime << nStartSlide << nEndSlide;
+
+ sal_uInt32 nCustomShowNameLen = aCustomShow.len();
+ if ( nCustomShowNameLen > 31 )
+ nCustomShowNameLen = 31;
+ if ( nCustomShowNameLen ) // named show identifier
+ {
+ const sal_Unicode* pCustomShow = aCustomShow.getStr();
+ for ( i = 0; i < nCustomShowNameLen; i++ )
+ {
+ *mpStrm << (sal_uInt16)( pCustomShow[ i ] );
+ }
+ }
+ for ( i = nCustomShowNameLen; i < 32; i++, *mpStrm << (sal_uInt16)0 );
+
+ *mpStrm << nFlags;
+ ::com::sun::star::uno::Reference< ::com::sun::star::presentation::XCustomPresentationSupplier >
+ aXCPSup( mXModel, ::com::sun::star::uno::UNO_QUERY );
+ if ( aXCPSup.is() )
+ {
+ ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >
+ aXCont( aXCPSup->getCustomPresentations() );
+ if ( aXCont.is() )
+ {
+ ::com::sun::star::uno::Sequence< ::rtl::OUString> aNameSeq( aXCont->getElementNames() );
+ const ::rtl::OUString* pUString = aNameSeq.getArray();
+ sal_Int16 nCount = aNameSeq.getLength();
+ if ( nCount )
+ {
+ mp_EscherEx->OpenContainer( EPP_NamedShows );
+ sal_uInt32 nCustomShowIndex = 0;
+ for ( sal_Int16 i = 0; i < nCount; i++ ) // Anzahl der Custom Shows
+ {
+ if ( pUString[ i ].len() )
+ {
+ mp_EscherEx->OpenContainer( EPP_NamedShow, nCustomShowIndex++ );
+
+ sal_uInt32 nNamedShowLen = pUString[ i ].len();
+ if ( nNamedShowLen > 31 )
+ nNamedShowLen = 31;
+ mp_EscherEx->AddAtom( nNamedShowLen << 1, EPP_CString );
+ const sal_Unicode* pCustomShowName = pUString[ i ].getStr();
+ for ( sal_uInt32 k = 0; k < nNamedShowLen; *mpStrm << (sal_uInt16)( pCustomShowName[ k++ ] ) );
+ mAny = aXCont->getByName( pUString[ i ] );
+ if ( mAny.getValue() )
+ {
+
+ ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexContainer > aXIC;
+ if ( mAny >>= aXIC )
+ {
+ mp_EscherEx->BeginAtom();
+
+ INT32 nSlideCount = aXIC->getCount();
+ for ( INT32 j = 0; j < nSlideCount; j++ ) // Anzahl der Slides
+ {
+ mAny = aXIC->getByIndex( j );
+ if ( mAny.getValue() )
+ {
+ ::com::sun::star::uno::Reference<
+ ::com::sun::star::drawing::XDrawPage > aXDrawPage;
+ if ( mAny >>= aXDrawPage )
+ {
+ ::com::sun::star::uno::Reference<
+ ::com::sun::star::container::XNamed >
+ aXName( aXDrawPage, ::com::sun::star::uno::UNO_QUERY );
+ if ( aXName.is() )
+ {
+ ::rtl::OUString aSlideName( aXName->getName() );
+ sal_uInt32 nPageNumber = 0;
+ for ( ::rtl::OUString* pSlideName = (::rtl::OUString*)maSlideNameList.First();
+ pSlideName;
+ pSlideName = (::rtl::OUString*)maSlideNameList.Next(), nPageNumber++ )
+ {
+ if ( *pSlideName == aSlideName )
+ {
+ *mpStrm << (sal_uInt32)( nPageNumber + 0x100 ); // unique slide id
+ break;
+ }
+ }
+ }
+ }
+ }
+ }
+ mp_EscherEx->EndAtom( EPP_NamedShowSlides );
+ }
+ }
+ mp_EscherEx->CloseContainer(); // EPP_NamedShow
+ }
+ }
+ mp_EscherEx->CloseContainer(); // EPP_NamedShows
+ }
+ }
+ }
+ }
+ }
+ }
+ mp_EscherEx->AddAtom( 0, EPP_EndDocument );
+ mp_EscherEx->CloseContainer(); // EPP_Document
+ return TRUE;
+};
+
+// ---------------------------------------------------------------------------------------------
+
+sal_Bool PPTWriter::ImplCreateHyperBlob( SvMemoryStream& rStrm )
+{
+ sal_uInt32 nCurrentOfs, nParaOfs, nParaCount = 0;
+ rStrm << (sal_uInt32)0x41; // property type VT_BLOB
+ nParaOfs = rStrm.Tell();
+ rStrm << (sal_uInt32)0; // property size
+ rStrm << (sal_uInt32)0; // property count
+
+ for ( EPPTHyperlink* pLink = (EPPTHyperlink*)maHyperlink.First(); pLink; pLink = (EPPTHyperlink*)maHyperlink.Next() )
+ {
+ nParaCount += 6;
+ rStrm << (sal_uInt32)3 // Type VT_I4
+ << (sal_uInt32)7 // (VTI4 - Private1)
+ << (sal_uInt32)3 // Type VT_I4
+ << (sal_uInt32)6 // (VTI4 - Private2)
+ << (sal_uInt32)3 // Type VT_I4
+ << (sal_uInt32)0; // (VTI4 - Private3)
+
+ // INFO
+ // HIWORD: = 0 : do not change anything
+ // = 1 : replace the hyperlink with the target and subadress in the following two VTLPWSTR
+ // = 2 : delete the hyperlink
+ // LOWORD: = 0 : graphic shown as background (link)
+ // = 1 : graphic shown as shape (link)
+ // = 2 : graphic is used to fill a shape
+ // = 3 : graphic used to fill a shape outline (future use)
+ // = 4 : hyperlink attached to a shape
+ // = 5 : " " " " (Word) field
+ // = 6 : " " " " (Excel) range
+ // = 7 : " " " " (PPT) text range
+ // = 8 : " " " " (Project) task
+
+ sal_uInt32 nUrlLen = pLink->aURL.Len();
+ const sal_Unicode* pUrl = pLink->aURL.GetBuffer();
+
+ sal_uInt32 nInfo = 7;
+
+ rStrm << (sal_uInt32)3 // Type VT_I4
+ << nInfo; // Info
+
+ switch( pLink->nType & 0xff )
+ {
+ case 1 : // click action to slidenumber
+ {
+ rStrm << (sal_uInt32)0x1f << (sal_uInt32)1 << (sal_uInt32)0; // path
+ rStrm << (sal_uInt32)0x1f << (sal_uInt32)( nUrlLen + 1 );
+ for ( sal_uInt32 i = 0; i < nUrlLen; i++ )
+ {
+ rStrm << pUrl[ i ];
+ }
+ rStrm << (sal_uInt16)0;
+ }
+ break;
+ case 2 :
+ {
+ rStrm << (sal_uInt32)0x1f
+ << (sal_uInt32)( nUrlLen + 1 );
+ for ( sal_uInt32 i = 0; i < nUrlLen; i++ )
+ {
+ rStrm << pUrl[ i ];
+ }
+ if ( ! ( i & 1 ) )
+ rStrm << (sal_uInt16)0;
+ rStrm << (sal_uInt16)0
+ << (sal_uInt32)0x1f
+ << (sal_uInt32)1
+ << (sal_uInt32)0;
+ }
+ break;
+ }
+ }
+ nCurrentOfs = rStrm.Tell();
+ rStrm.Seek( nParaOfs );
+ rStrm << (sal_uInt32)( nCurrentOfs - ( nParaOfs + 4 ) );
+ rStrm << nParaCount;
+ rStrm.Seek( nCurrentOfs );
+ return TRUE;
+}
+
+// ---------------------------------------------------------------------------------------------
+
+sal_Bool PPTWriter::ImplCreateMainMaster()
+{
+ if ( !ImplGetPageByIndex( 0, MASTER ) )
+ return FALSE;
+
+ if ( !ImplGetPropertyValue( mXPagePropSet, String( RTL_CONSTASCII_USTRINGPARAM( "Background" ) ) ) ) // Backgroundshape laden
+ return FALSE;
+ ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > aXBackgroundPropSet;
+ if ( !( mAny >>= aXBackgroundPropSet ) )
+ return FALSE;
+
+ mnFillColor = 0xffffff;
+ mnFillBackColor = 0x000000;
+
+ ::com::sun::star::drawing::FillStyle aFS = ::com::sun::star::drawing::FillStyle_NONE;
+ if ( ImplGetPropertyValue( aXBackgroundPropSet, String( RTL_CONSTASCII_USTRINGPARAM( "FillStyle" ) ) ) )
+ mAny >>= aFS;
+ switch ( aFS )
+ {
+ case ::com::sun::star::drawing::FillStyle_GRADIENT :
+ {
+ if ( ImplGetPropertyValue( aXBackgroundPropSet, String( RTL_CONSTASCII_USTRINGPARAM( "FillGradient" ) ) ) )
+ {
+ mnFillColor = mp_EscherEx->GetGradientColor( (::com::sun::star::awt::Gradient*)mAny.getValue(), 0 );
+ mnFillBackColor = mp_EscherEx->GetGradientColor( (::com::sun::star::awt::Gradient*)mAny.getValue(), 1 );
+ }
+ }
+ break;
+
+ case ::com::sun::star::drawing::FillStyle_SOLID :
+ {
+ if ( ImplGetPropertyValue( aXBackgroundPropSet, String( RTL_CONSTASCII_USTRINGPARAM( "FillColor" ) ) ) )
+ {
+ mnFillColor = mp_EscherEx->GetColor( *((sal_uInt32*)mAny.getValue()) );
+ mnFillBackColor = mnFillColor ^ 0xffffff;
+ }
+ }
+
+ }
+
+ mp_EscherEx->PtReplaceOrInsert( EPP_Persist_MainMaster, mpStrm->Tell() );
+ mp_EscherEx->OpenContainer( EPP_MainMaster );
+ mp_EscherEx->AddAtom( 24, EPP_SlideAtom, 2 );
+ *mpStrm << (INT32)EPP_LAYOUT_TITLEANDBODYSLIDE // slide layout -> title and body slide
+ << (sal_uInt8)1 << (sal_uInt8)2 << (sal_uInt8)0 << (sal_uInt8)0 << (sal_uInt8)0 << (sal_uInt8)0 << (sal_uInt8)0 << (sal_uInt8)0 // placeholderID
+ << (sal_uInt32)0 // master ID ( ist gleich null bei einer masterpage )
+ << (sal_uInt32)0 // notes ID ( ist gleich null wenn keine notizen vorhanden )
+ << (sal_uInt16)0 // Bit 1: Follow master objects, Bit 2: Follow master scheme, Bit 3: Follow master background
+ << (sal_uInt16)0; // padword
+
+ mp_EscherEx->AddAtom( 32, EPP_ColorSchemeAtom, 0, 6 );
+ *mpStrm << (sal_uInt32)0xffffff << (sal_uInt32)0x000000 << (sal_uInt32)0x808080 << (sal_uInt32)0x000000 << (sal_uInt32)0x99cc00 << (sal_uInt32)0xcc3333 << (sal_uInt32)0xffcccc << (sal_uInt32)0xb2b2b2;
+ mp_EscherEx->AddAtom( 32, EPP_ColorSchemeAtom, 0, 6 );
+ *mpStrm << (sal_uInt32)0xff0000 << (sal_uInt32)0xffffff << (sal_uInt32)0x000000 << (sal_uInt32)0x00ffff << (sal_uInt32)0x0099ff << (sal_uInt32)0xffff00 << (sal_uInt32)0x0000ff << (sal_uInt32)0x969696;
+ mp_EscherEx->AddAtom( 32, EPP_ColorSchemeAtom, 0, 6 );
+ *mpStrm << (sal_uInt32)0xccffff << (sal_uInt32)0x000000 << (sal_uInt32)0x336666 << (sal_uInt32)0x008080 << (sal_uInt32)0x339933 << (sal_uInt32)0x000080 << (sal_uInt32)0xcc3300 << (sal_uInt32)0x66ccff;
+ mp_EscherEx->AddAtom( 32, EPP_ColorSchemeAtom, 0, 6 );
+ *mpStrm << (sal_uInt32)0xffffff << (sal_uInt32)0x000000 << (sal_uInt32)0x333333 << (sal_uInt32)0x000000 << (sal_uInt32)0xdddddd << (sal_uInt32)0x808080 << (sal_uInt32)0x4d4d4d << (sal_uInt32)0xeaeaea;
+ mp_EscherEx->AddAtom( 32, EPP_ColorSchemeAtom, 0, 6 );
+ *mpStrm << (sal_uInt32)0xffffff << (sal_uInt32)0x000000 << (sal_uInt32)0x808080 << (sal_uInt32)0x000000 << (sal_uInt32)0x66ccff << (sal_uInt32)0xff0000 << (sal_uInt32)0xcc00cc << (sal_uInt32)0xc0c0c0;
+ mp_EscherEx->AddAtom( 32, EPP_ColorSchemeAtom, 0, 6 );
+ *mpStrm << (sal_uInt32)0xffffff << (sal_uInt32)0x000000 << (sal_uInt32)0x808080 << (sal_uInt32)0x000000 << (sal_uInt32)0xc0c0c0 << (sal_uInt32)0xff6600 << (sal_uInt32)0x0000ff << (sal_uInt32)0x009900;
+ mp_EscherEx->AddAtom( 32, EPP_ColorSchemeAtom, 0, 6 );
+ *mpStrm << (sal_uInt32)0xffffff << (sal_uInt32)0x000000 << (sal_uInt32)0x808080 << (sal_uInt32)0x000000 << (sal_uInt32)0xff9933 << (sal_uInt32)0xccff99 << (sal_uInt32)0xcc00cc << (sal_uInt32)0xb2b2b2;
+
+ mpStyleSheet->Write( *mpStrm ,mp_EscherEx );
+
+ SolverContainer aSolverContainer;
+
+ mp_EscherEx->OpenContainer( EPP_PPDrawing );
+ mp_EscherEx->OpenContainer( _Escher_DgContainer );
+ mp_EscherEx->EnterGroup();
+
+ ImplWritePage( aSolverContainer, MASTER, TRUE ); // Die Shapes der Seite werden im PPT Dok. erzeugt
+
+//*******************************
+//** DEFAULT MASTER TITLE AREA **
+//*******************************
+
+ if ( mnMasterTitleIndex + 1 )
+ {
+ if ( !ImplGetShapeByIndex( mnMasterTitleIndex ) )
+ return FALSE;
+
+ if ( ImplGetText() )
+ {
+ ::rtl::OUString aUString( mXText->getString() );
+ sal_uInt16 nChar;
+
+ mp_EscherEx->OpenContainer( _Escher_SpContainer );
+ mnShapeMasterTitle = mp_EscherEx->GetShapeID();
+ mp_EscherEx->AddShape( _Escher_ShpInst_Rectangle, 0xa00, mnShapeMasterTitle );// Flags: HaveAnchor | HasSpt
+ mp_EscherEx->BeginCount();
+ mp_EscherEx->AddOpt( _Escher_Prop_LockAgainstGrouping, 0x10001 );
+ mp_EscherEx->AddOpt( _Escher_Prop_lTxid, mnTxId += 0x60 );
+ mp_EscherEx->AddOpt( _Escher_Prop_AnchorText, _Escher_AnchorMiddle );
+ mp_EscherEx->AddOpt( _Escher_Prop_fillColor, mnFillColor );
+ mp_EscherEx->AddOpt( _Escher_Prop_fillBackColor, mnFillBackColor );
+ mp_EscherEx->AddOpt( _Escher_Prop_fNoFillHitTest, 0x110001 );
+ mp_EscherEx->AddOpt( _Escher_Prop_lineColor, 0x8000001 );
+ mp_EscherEx->AddOpt( _Escher_Prop_fNoLineDrawDash, 0x90001 );
+ mp_EscherEx->AddOpt( _Escher_Prop_shadowColor, 0x8000002 );
+ ImplWriteFillBundle( TRUE );
+ ImplWriteTextBundle();
+ mp_EscherEx->EndCount( _Escher_OPT, 3 );
+ mp_EscherEx->AddAtom( 8, _Escher_ClientAnchor );
+ *mpStrm << (sal_Int16)maRect.Top() << (sal_Int16)maRect.Left() << (sal_Int16)maRect.Right() << (sal_Int16)maRect.Bottom(); // oben, links, rechts, unten ????
+ mp_EscherEx->OpenContainer( _Escher_ClientData );
+ mp_EscherEx->AddAtom( 8, EPP_OEPlaceholderAtom );
+ *mpStrm << (sal_uInt32)0 // PlacementID
+ << (sal_uInt8)EPP_PLACEHOLDER_MASTERTITLE // PlaceHolderID
+ << (sal_uInt8)0 // Size of PlaceHolder ( 0 = FULL, 1 = HALF, 2 = QUARTER )
+ << (sal_uInt16)0; // padword
+ mp_EscherEx->CloseContainer(); // _Escher_ClientData
+ mp_EscherEx->OpenContainer( _Escher_ClientTextbox );
+ mp_EscherEx->AddAtom( 4, EPP_TextHeaderAtom );
+ *mpStrm << (sal_uInt32)EPP_TEXTTYPE_Title;
+ mp_EscherEx->AddAtom( mnTextSize << 1, EPP_TextCharsAtom );
+ const sal_Unicode* pString = aUString;
+ for ( int i = 0; i < mnTextSize; i++ )
+ {
+ nChar = pString[ i ]; // 0xa -> 0xb weicher Zeilenumbruch
+ if ( nChar == 0xa )
+ nChar++; // 0xd -> 0xd harter Zeilenumbruch
+ *mpStrm << nChar;
+ }
+ mp_EscherEx->AddAtom( 6, EPP_BaseTextPropAtom );
+ *mpStrm << (sal_uInt32)( mnTextSize + 1 ) << (sal_uInt16)0;
+ mp_EscherEx->AddAtom( 10, EPP_TextSpecInfoAtom );
+ *mpStrm << (sal_uInt32)( mnTextSize + 1 ) << (sal_uInt32)1 << (sal_uInt16)0;
+ mp_EscherEx->CloseContainer(); // _Escher_ClientTextBox
+ mp_EscherEx->CloseContainer(); // _Escher_SpContainer
+ }
+ }
+
+//********************************
+//** DEFAULT MASTER OBJECT AREA **
+//********************************
+
+ if ( mnMasterBodyIndex + 1 )
+ {
+ if ( !ImplGetShapeByIndex( mnMasterBodyIndex ) )
+ return FALSE;
+
+ if ( ImplGetText() )
+ {
+ mp_EscherEx->OpenContainer( _Escher_SpContainer );
+ mnShapeMasterBody = mp_EscherEx->GetShapeID();
+ mp_EscherEx->AddShape( _Escher_ShpInst_Rectangle, 0xa00, mnShapeMasterBody ); // Flags: HaveAnchor | HasSpt
+ mp_EscherEx->BeginCount();
+ mp_EscherEx->AddOpt( _Escher_Prop_LockAgainstGrouping, 0x10001 );
+ mp_EscherEx->AddOpt( _Escher_Prop_lTxid, mnTxId += 0x60 );
+ mp_EscherEx->AddOpt( _Escher_Prop_fillColor, mnFillColor );
+ mp_EscherEx->AddOpt( _Escher_Prop_fillBackColor, mnFillBackColor );
+ mp_EscherEx->AddOpt( _Escher_Prop_fNoFillHitTest, 0x110001 );
+ mp_EscherEx->AddOpt( _Escher_Prop_lineColor, 0x8000001 );
+ mp_EscherEx->AddOpt( _Escher_Prop_fNoLineDrawDash, 0x90001 );
+ mp_EscherEx->AddOpt( _Escher_Prop_shadowColor, 0x8000002 );
+ ImplWriteFillBundle( TRUE );
+ ImplWriteTextBundle();
+ mp_EscherEx->EndCount( _Escher_OPT, 3 );
+ mp_EscherEx->AddAtom( 8, _Escher_ClientAnchor );
+ *mpStrm << (sal_Int16)maRect.Top() << (sal_Int16)maRect.Left() << (sal_Int16)maRect.Right() << (sal_Int16)maRect.Bottom(); // oben, links, rechts, unten ????
+ mp_EscherEx->OpenContainer( _Escher_ClientData );
+ mp_EscherEx->AddAtom( 8, EPP_OEPlaceholderAtom );
+ *mpStrm << (sal_uInt32)1 // PlacementID
+ << (sal_uInt8)EPP_PLACEHOLDER_MASTERBODY // PlaceHolderID
+ << (sal_uInt8)0 // Size of PlaceHolder ( 0 = FULL, 1 = HALF, 2 = QUARTER )
+ << (sal_uInt16)0; // padword
+ mp_EscherEx->CloseContainer(); // _Escher_ClientData
+ mp_EscherEx->OpenContainer( _Escher_ClientTextbox ); // printf
+ mp_EscherEx->AddAtom( 4, EPP_TextHeaderAtom );
+ *mpStrm << (sal_uInt32)EPP_TEXTTYPE_Body;
+
+ TextObj aTextObj( mXText, EPP_TEXTTYPE_Body, maFontCollection, (PPTExBulletProvider&)*this );
+ mnTextSize = aTextObj.Count();
+ aTextObj.Write( mpStrm );
+ mp_EscherEx->BeginAtom();
+ for ( ParagraphObj* pPara = aTextObj.First() ; pPara; pPara = aTextObj.Next() )
+ {
+ sal_uInt32 nCharCount = pPara->Count();
+ sal_uInt16 nDepth = pPara->nDepth;
+ if ( nDepth > 4)
+ nDepth = 4;
+
+ *mpStrm << nCharCount
+ << nDepth;
+ }
+ mp_EscherEx->EndAtom( EPP_BaseTextPropAtom );
+ mp_EscherEx->AddAtom( 10, EPP_TextSpecInfoAtom );
+ *mpStrm << (sal_uInt32)( mnTextSize ) << (sal_uInt32)1 << (sal_uInt16)0;
+
+ mp_EscherEx->CloseContainer(); // _Escher_ClientTextBox
+ mp_EscherEx->CloseContainer(); // _Escher_SpContainer
+ }
+ }
+ mp_EscherEx->LeaveGroup();
+
+ ImplWriteBackground( aXBackgroundPropSet );
+
+ aSolverContainer.WriteSolver( mpStrm, mp_EscherEx );
+
+ mp_EscherEx->CloseContainer(); // _Escher_DgContainer
+ mp_EscherEx->CloseContainer(); // EPP_Drawing
+ mp_EscherEx->AddAtom( 32, EPP_ColorSchemeAtom, 0, 1 );
+ *mpStrm << (sal_uInt32)0xffffff << (sal_uInt32)0x000000 << (sal_uInt32)0x808080 << (sal_uInt32)0x000000 << (sal_uInt32)0x99cc00 << (sal_uInt32)0xcc3333 << (sal_uInt32)0xffcccc << (sal_uInt32)0xb2b2b2;
+
+ if ( aBuExMasterStream.Tell() )
+ {
+ ImplProgTagContainer( mpStrm, &aBuExMasterStream );
+ }
+
+ mp_EscherEx->CloseContainer(); // EPP_MainMaster
+ return TRUE;
+};
+
+// ---------------------------------------------------------------------------------------------
+
+sal_Bool PPTWriter::ImplCreateMainNotes()
+{
+ if ( !ImplGetPageByIndex( 0, NOTICE ) )
+ return FALSE;
+
+ ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XMasterPageTarget >
+ aXMasterPageTarget( mXDrawPage, ::com::sun::star::uno::UNO_QUERY );
+
+ if ( !aXMasterPageTarget.is() )
+ return FALSE;
+
+ mXDrawPage = aXMasterPageTarget->getMasterPage();
+ if ( !mXDrawPage.is() )
+ return FALSE;
+
+ mXPropSet = ::com::sun::star::uno::Reference<
+ ::com::sun::star::beans::XPropertySet >
+ ( mXDrawPage, ::com::sun::star::uno::UNO_QUERY );
+ if ( !mXPropSet.is() )
+ return FALSE;
+
+ mXShapes = ::com::sun::star::uno::Reference<
+ ::com::sun::star::drawing::XShapes >
+ ( mXDrawPage, ::com::sun::star::uno::UNO_QUERY );
+ if ( !mXShapes.is() )
+ return FALSE;
+
+ SolverContainer aSolverContainer;
+
+ mp_EscherEx->PtReplaceOrInsert( EPP_Persist_MainNotes, mpStrm->Tell() );
+ mp_EscherEx->OpenContainer( EPP_Notes );
+ mp_EscherEx->AddAtom( 8, EPP_NotesAtom, 1 );
+ *mpStrm << (sal_uInt32)0x80000000 // Number that identifies this slide
+ << (sal_uInt32)0; // follow nothing
+ mp_EscherEx->OpenContainer( EPP_PPDrawing );
+ mp_EscherEx->OpenContainer( _Escher_DgContainer );
+ mp_EscherEx->EnterGroup();
+
+ ImplWritePage( aSolverContainer, NOTICE, TRUE );
+
+ mp_EscherEx->LeaveGroup();
+ mp_EscherEx->OpenContainer( _Escher_SpContainer );
+ mp_EscherEx->AddShape( _Escher_ShpInst_Rectangle, 0xc00 );
+ mp_EscherEx->BeginCount();
+ mp_EscherEx->AddOpt( _Escher_Prop_fillColor, 0xffffff ); // stock valued fill color
+ mp_EscherEx->AddOpt( _Escher_Prop_fillBackColor, 0 );
+ mp_EscherEx->AddOpt( _Escher_Prop_fillRectRight, 0x68bdde );
+ mp_EscherEx->AddOpt( _Escher_Prop_fillRectBottom, 0x8b9f8e );
+ mp_EscherEx->AddOpt( _Escher_Prop_fNoFillHitTest, 0x120012 );
+ mp_EscherEx->AddOpt( _Escher_Prop_fNoLineDrawDash, 0 );
+ mp_EscherEx->AddOpt( _Escher_Prop_bWMode, _Escher_wDontShow );
+ mp_EscherEx->AddOpt( _Escher_Prop_fBackground, 0x10001 ); // if true, this is the background shape
+ mp_EscherEx->EndCount( _Escher_OPT, 3 );
+ mp_EscherEx->CloseContainer(); // _Escher_SpContainer
+
+ aSolverContainer.WriteSolver( mpStrm, mp_EscherEx );
+
+ mp_EscherEx->CloseContainer(); // _Escher_DgContainer
+ mp_EscherEx->CloseContainer(); // EPP_Drawing
+ mp_EscherEx->AddAtom( 32, EPP_ColorSchemeAtom, 0, 1 );
+ *mpStrm << (sal_uInt32)0xffffff << (sal_uInt32)0x000000 << (sal_uInt32)0x808080 << (sal_uInt32)0x000000 << (sal_uInt32)0x99cc00 << (sal_uInt32)0xcc3333 << (sal_uInt32)0xffcccc << (sal_uInt32)0xb2b2b2;
+ mp_EscherEx->CloseContainer(); // EPP_Notes
+ return TRUE;
+}
+
+// ---------------------------------------------------------------------------------------------
+
+sal_Bool PPTWriter::ImplCreateTitleMasterPage( int nPageNum )
+{
+ if ( !ImplGetPageByIndex( nPageNum, MASTER ) )
+ return FALSE;
+
+ if ( !ImplGetPropertyValue( mXPagePropSet, String( RTL_CONSTASCII_USTRINGPARAM( "Background" ) ) ) ) // Backgroundshape laden
+ return FALSE;
+ ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > aXBackgroundPropSet;
+ if ( ! ( mAny >>= aXBackgroundPropSet ) )
+ return FALSE;
+
+ mp_EscherEx->PtReplaceOrInsert( EPP_Persist_MainMaster | nPageNum, mpStrm->Tell() );
+ mp_EscherEx->OpenContainer( EPP_Slide );
+ mp_EscherEx->AddAtom( 24, EPP_SlideAtom, 2 );
+ *mpStrm << (INT32)EPP_LAYOUT_TITLEMASTERSLIDE
+ << (sal_uInt8)0 << (sal_uInt8)0 << (sal_uInt8)0 << (sal_uInt8)0 << (sal_uInt8)0 << (sal_uInt8)0 << (sal_uInt8)0 << (sal_uInt8)0 // placeholderID
+ << (sal_uInt32)0x80000000 // master ID ( ist gleich null bei einer masterpage )
+ << (sal_uInt32)0 // notes ID ( ist gleich null wenn keine notizen vorhanden )
+ << (sal_uInt16)0 // Bit 1: Follow master objects, Bit 2: Follow master scheme, Bit 3: Follow master background
+ << (sal_uInt16)0; // padword
+
+ SolverContainer aSolverContainer;
+
+ mp_EscherEx->OpenContainer( EPP_PPDrawing );
+ mp_EscherEx->OpenContainer( _Escher_DgContainer );
+ mp_EscherEx->EnterGroup();
+
+ ImplWritePage( aSolverContainer, MASTER, TRUE ); // Die Shapes der Seite werden im PPT Dok. erzeugt
+
+ mp_EscherEx->LeaveGroup();
+
+ ImplWriteBackground( aXBackgroundPropSet );
+
+ aSolverContainer.WriteSolver( mpStrm, mp_EscherEx );
+
+ mp_EscherEx->CloseContainer(); // _Escher_DgContainer
+ mp_EscherEx->CloseContainer(); // EPP_Drawing
+ mp_EscherEx->AddAtom( 32, EPP_ColorSchemeAtom, 0, 1 );
+ *mpStrm << (sal_uInt32)0xffffff << (sal_uInt32)0x000000 << (sal_uInt32)0x808080 << (sal_uInt32)0x000000 << (sal_uInt32)0x99cc00 << (sal_uInt32)0xcc3333 << (sal_uInt32)0xffcccc << (sal_uInt32)0xb2b2b2;
+ mp_EscherEx->CloseContainer(); // EPP_MasterSlide
+ return TRUE;
+};
+
+// ---------------------------------------------------------------------------------------------
+
+sal_Bool PPTWriter::ImplCreateSlide( int nPageNum )
+{
+ if ( !ImplGetPageByIndex( nPageNum, NORMAL ) )
+ return FALSE;
+
+ sal_uInt32 nMasterID = 0x80000000;
+
+ nMasterID |= ImplGetMasterIndex( NORMAL );
+
+ ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > aXBackgroundPropSet;
+ sal_Bool bHasBackground = ImplGetPropertyValue( mXPagePropSet, String( RTL_CONSTASCII_USTRINGPARAM( "Background" ) ) );
+ if ( bHasBackground )
+ bHasBackground = ( mAny >>= aXBackgroundPropSet );
+ sal_uInt16 nMode = 3; // Bit 1: Follow master objects, Bit 2: Follow master scheme, Bit 3: Follow master background
+ if ( !bHasBackground )
+ nMode |= 4;
+
+ mnLayout = 20; // Default: blank Slide
+ if ( ImplGetPropertyValue( mXPagePropSet, String( RTL_CONSTASCII_USTRINGPARAM( "Layout" ) ) ) )
+ {
+ mnLayout = *( (sal_uInt16*)mAny.getValue() );
+ if ( mnLayout > 20 )
+ mnLayout = 20;
+ }
+ mp_EscherEx->PtReplaceOrInsert( EPP_Persist_Slide | nPageNum, mpStrm->Tell() );
+ mp_EscherEx->OpenContainer( EPP_Slide );
+ mp_EscherEx->AddAtom( 24, EPP_SlideAtom, 2 );
+ *mpStrm << pPHLayout[ mnLayout ].nLayout;
+ mpStrm->Write( pPHLayout[ mnLayout ].nPlaceHolder, 8 ); // placeholderIDs ( 8Stueck )
+ *mpStrm << (sal_uInt32)nMasterID // master ID ( ist gleich 0x80000000 bei einer masterpage )
+ << (sal_uInt32)nPageNum + 0x100 // notes ID ( ist gleich null wenn keine notizen vorhanden )
+ << nMode
+ << (sal_uInt16)0; // padword
+
+ mnDiaMode = 0;
+ if ( ImplGetPropertyValue( mXPagePropSet, String( RTL_CONSTASCII_USTRINGPARAM( "Change" ) ) ) )
+ {
+ switch ( *(INT32*)mAny.getValue() )
+ {
+ case 1 : // automatisch
+ mnDiaMode++;
+ case 2 : // halbautomatisch
+ mnDiaMode++;
+ default :
+ case 0 : // manuell
+ break;
+ }
+ }
+ if ( ImplGetPropertyValue( mXPagePropSet, String( RTL_CONSTASCII_USTRINGPARAM( "Effect" ) ) ) )
+ {
+ ::com::sun::star::presentation::FadeEffect aFe;
+ mAny >>= aFe;
+
+ if ( ( aFe != ::com::sun::star::presentation::FadeEffect_NONE ) || ( mnDiaMode == 2 ) )
+ {
+ sal_uInt8 nDirection = 0;
+ sal_uInt8 nTransitionType = 0;
+ sal_uInt16 nBuildFlags = 1; // advange by mouseclick
+ sal_uInt8 nSoundRef = 0;
+ INT32 nSlideTime = 0; // muss noch !!!
+
+ sal_uInt8 nSpeed = 1;
+ if ( ImplGetPropertyValue( mXPagePropSet, String( RTL_CONSTASCII_USTRINGPARAM( "Speed" ) ) ) )
+ {
+ ::com::sun::star::presentation::AnimationSpeed aAs;
+ mAny >>= aAs;
+ nSpeed = (sal_uInt8)aAs;
+ }
+ switch ( aFe )
+ {
+ default :
+ case ::com::sun::star::presentation::FadeEffect_RANDOM :
+ nTransitionType = PPT_TRANSITION_TYPE_RANDOM;
+ break;
+
+ case ::com::sun::star::presentation::FadeEffect_HORIZONTAL_STRIPES :
+ nDirection++;
+ case ::com::sun::star::presentation::FadeEffect_VERTICAL_STRIPES :
+ nTransitionType = PPT_TRANSITION_TYPE_BLINDS;
+ break;
+
+ case ::com::sun::star::presentation::FadeEffect_MOVE_FROM_TOP :
+ nDirection++;
+ case ::com::sun::star::presentation::FadeEffect_MOVE_FROM_LEFT :
+ nDirection++;
+ case ::com::sun::star::presentation::FadeEffect_MOVE_FROM_BOTTOM :
+ nDirection++;
+ case ::com::sun::star::presentation::FadeEffect_MOVE_FROM_RIGHT :
+ nTransitionType = PPT_TRANSITION_TYPE_COVER;
+ break;
+
+ case ::com::sun::star::presentation::FadeEffect_DISSOLVE :
+ nTransitionType = PPT_TRANSITION_TYPE_DISSOLVE;
+ break;
+
+ case ::com::sun::star::presentation::FadeEffect_FADE_FROM_TOP :
+ nDirection++;
+ case ::com::sun::star::presentation::FadeEffect_FADE_FROM_LEFT :
+ nDirection++;
+ case ::com::sun::star::presentation::FadeEffect_FADE_FROM_BOTTOM :
+ nDirection++;
+ case ::com::sun::star::presentation::FadeEffect_FADE_FROM_RIGHT :
+ nTransitionType = PPT_TRANSITION_TYPE_WIPE;
+ break;
+
+ case ::com::sun::star::presentation::FadeEffect_VERTICAL_LINES :
+ nDirection++;
+ case ::com::sun::star::presentation::FadeEffect_HORIZONTAL_LINES :
+ nTransitionType = PPT_TRANSITION_TYPE_RANDOM_BARS;
+ break;
+
+ case ::com::sun::star::presentation::FadeEffect_FADE_FROM_UPPERLEFT :
+ nDirection++;
+ case ::com::sun::star::presentation::FadeEffect_FADE_FROM_UPPERRIGHT :
+ nDirection++;
+ case ::com::sun::star::presentation::FadeEffect_FADE_FROM_LOWERLEFT :
+ nDirection++;
+ case ::com::sun::star::presentation::FadeEffect_FADE_FROM_LOWERRIGHT :
+ nDirection += 4;
+ nTransitionType = PPT_TRANSITION_TYPE_STRIPS;
+ break;
+
+ case ::com::sun::star::presentation::FadeEffect_ROLL_FROM_TOP :
+ nDirection++;
+ case ::com::sun::star::presentation::FadeEffect_ROLL_FROM_LEFT :
+ nDirection++;
+ case ::com::sun::star::presentation::FadeEffect_ROLL_FROM_BOTTOM :
+ nDirection++;
+ case ::com::sun::star::presentation::FadeEffect_ROLL_FROM_RIGHT :
+ nTransitionType = PPT_TRANSITION_TYPE_PULL;
+ break;
+
+ case ::com::sun::star::presentation::FadeEffect_FADE_TO_CENTER :
+ nDirection++;
+ case ::com::sun::star::presentation::FadeEffect_FADE_FROM_CENTER :
+ nTransitionType = PPT_TRANSITION_TYPE_ZOOM;
+ break;
+
+ case ::com::sun::star::presentation::FadeEffect_CLOSE_HORIZONTAL :
+ nDirection++;
+ case ::com::sun::star::presentation::FadeEffect_OPEN_HORIZONTAL :
+ nDirection++;
+ case ::com::sun::star::presentation::FadeEffect_CLOSE_VERTICAL :
+ nDirection++;
+ case ::com::sun::star::presentation::FadeEffect_OPEN_VERTICAL :
+ nTransitionType = PPT_TRANSITION_TYPE_SPLIT;
+ break;
+ case ::com::sun::star::presentation::FadeEffect_NONE :
+ nDirection = 2;
+ break;
+ }
+ if ( mnDiaMode == 2 ) // automatic ?
+ nBuildFlags |= 0x400;
+
+ if ( ImplGetPropertyValue( mXPagePropSet, String( RTL_CONSTASCII_USTRINGPARAM( "Duration" ) ) ) )// duration of this slide
+ {
+ nSlideTime = *(INT32*)mAny.getValue() << 10; // in ticks
+ }
+ mp_EscherEx->AddAtom( 16, EPP_SSSlideInfoAtom );
+ *mpStrm << (sal_uInt32)nSlideTime // standtime in ticks
+ << (sal_uInt32)0
+ << (sal_uInt8)nDirection
+ << (sal_uInt8)nTransitionType
+ << (sal_uInt16)nBuildFlags
+ << (sal_uInt8)nSpeed
+ << (sal_uInt8)nSoundRef << (sal_uInt8)0 << (sal_uInt8)0;
+ }
+ }
+
+ SolverContainer aSolverContainer;
+
+ mp_EscherEx->OpenContainer( EPP_PPDrawing );
+ mp_EscherEx->OpenContainer( _Escher_DgContainer );
+ mp_EscherEx->EnterGroup();
+ ImplWritePage( aSolverContainer, NORMAL, FALSE, nPageNum ); // Die Shapes der Seite werden im PPT Dok. erzeugt
+ mp_EscherEx->LeaveGroup();
+
+ if ( bHasBackground )
+ ImplWriteBackground( aXBackgroundPropSet );
+ else
+ {
+ mp_EscherEx->OpenContainer( _Escher_SpContainer );
+ mp_EscherEx->AddShape( _Escher_ShpInst_Rectangle, 0xc00 ); // Flags: Connector | Background | HasSpt
+ mp_EscherEx->BeginCount();
+ mp_EscherEx->AddOpt( _Escher_Prop_fillColor, mnFillColor ); // stock valued fill color
+ mp_EscherEx->AddOpt( _Escher_Prop_fillBackColor, mnFillBackColor );
+ mp_EscherEx->AddOpt( _Escher_Prop_fillRectRight, PPTtoEMU( maDestPageSize.Width ) );
+ mp_EscherEx->AddOpt( _Escher_Prop_fillRectBottom, PPTtoEMU( maDestPageSize.Width ) );
+ mp_EscherEx->AddOpt( _Escher_Prop_fNoFillHitTest, 0x120012 );
+ mp_EscherEx->AddOpt( _Escher_Prop_fNoLineDrawDash, 0x80000 );
+ mp_EscherEx->AddOpt( _Escher_Prop_bWMode, _Escher_wDontShow );
+ mp_EscherEx->AddOpt( _Escher_Prop_fBackground, 0x10001 ); // if true, this is the background shape
+ mp_EscherEx->EndCount( _Escher_OPT, 3 );
+ mp_EscherEx->CloseContainer(); // _Escher_SpContainer
+ }
+
+ aSolverContainer.WriteSolver( mpStrm, mp_EscherEx );
+
+ mp_EscherEx->CloseContainer(); // _Escher_DgContainer
+ mp_EscherEx->CloseContainer(); // EPP_Drawing
+ mp_EscherEx->AddAtom( 32, EPP_ColorSchemeAtom, 0, 1 );
+ *mpStrm << (sal_uInt32)0xffffff << (sal_uInt32)0x000000 << (sal_uInt32)0x808080 << (sal_uInt32)0x000000 << (sal_uInt32)0x99cc00 << (sal_uInt32)0xcc3333 << (sal_uInt32)0xffcccc << (sal_uInt32)0xb2b2b2;
+ mp_EscherEx->CloseContainer(); // EPP_Slide
+ return TRUE;
+};
+
+// ---------------------------------------------------------------------------------------------
+
+sal_Bool PPTWriter::ImplCreateNotes( int nPageNum )
+{
+ if ( !ImplGetPageByIndex( nPageNum, NOTICE ) )
+ return FALSE;
+
+ mp_EscherEx->PtReplaceOrInsert( EPP_Persist_Notes | nPageNum, mpStrm->Tell() );
+ mp_EscherEx->OpenContainer( EPP_Notes );
+ mp_EscherEx->AddAtom( 8, EPP_NotesAtom, 1 );
+ *mpStrm << (sal_uInt32)nPageNum + 0x100
+ << (sal_uInt16)3 // follow master ....
+ << (sal_uInt16)0;
+
+ SolverContainer aSolverContainer;
+
+ mp_EscherEx->OpenContainer( EPP_PPDrawing );
+ mp_EscherEx->OpenContainer( _Escher_DgContainer );
+ mp_EscherEx->EnterGroup();
+
+ ImplWritePage( aSolverContainer, NOTICE, FALSE ); // Die Shapes der Seite werden im PPT Dok. erzeugt
+
+ mp_EscherEx->LeaveGroup();
+ mp_EscherEx->OpenContainer( _Escher_SpContainer );
+ mp_EscherEx->AddShape( _Escher_ShpInst_Rectangle, 0xc00 ); // Flags: Connector | Background | HasSpt
+ mp_EscherEx->BeginCount();
+ mp_EscherEx->AddOpt( _Escher_Prop_fillColor, 0xffffff ); // stock valued fill color
+ mp_EscherEx->AddOpt( _Escher_Prop_fillBackColor, 0 );
+ mp_EscherEx->AddOpt( _Escher_Prop_fillRectRight, 0x8b9f8e );
+ mp_EscherEx->AddOpt( _Escher_Prop_fillRectBottom, 0x68bdde );
+ mp_EscherEx->AddOpt( _Escher_Prop_fNoFillHitTest, 0x120012 );
+ mp_EscherEx->AddOpt( _Escher_Prop_fNoLineDrawDash, 0x80000 );
+ mp_EscherEx->AddOpt( _Escher_Prop_bWMode, _Escher_wDontShow );
+ mp_EscherEx->AddOpt( _Escher_Prop_fBackground, 0x10001 );
+ mp_EscherEx->EndCount( _Escher_OPT, 3 );
+ mp_EscherEx->CloseContainer(); // _Escher_SpContainer
+
+ aSolverContainer.WriteSolver( mpStrm, mp_EscherEx );
+
+ mp_EscherEx->CloseContainer(); // _Escher_DgContainer
+ mp_EscherEx->CloseContainer(); // EPP_Drawing
+ mp_EscherEx->AddAtom( 32, EPP_ColorSchemeAtom, 0, 1 );
+ *mpStrm << (sal_uInt32)0xffffff << (sal_uInt32)0x000000 << (sal_uInt32)0x808080 << (sal_uInt32)0x000000 << (sal_uInt32)0x99cc00 << (sal_uInt32)0xcc3333 << (sal_uInt32)0xffcccc << (sal_uInt32)0xb2b2b2;
+ mp_EscherEx->CloseContainer(); // EPP_Notes
+ return TRUE;
+};
+
+void PPTWriter::ImplWriteBackground( ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > & rXPropSet )
+{
+ //************************ ******
+ //** DEFAULT BACKGROUND SHAPE **
+ //******************************
+
+ sal_uInt32 nFillColor = 0xffffff;
+ sal_uInt32 nFillBackColor = 0;
+
+ mp_EscherEx->OpenContainer( _Escher_SpContainer );
+ mp_EscherEx->AddShape( _Escher_ShpInst_Rectangle, 0xc00 ); // Flags: Connector | Background | HasSpt
+ mp_EscherEx->BeginCount();
+ mp_EscherEx->AddOpt( _Escher_Prop_fillType, _Escher_FillSolid );
+
+ ::com::sun::star::drawing::FillStyle aFS( ::com::sun::star::drawing::FillStyle_NONE );
+ if ( ImplGetPropertyValue( rXPropSet, String( RTL_CONSTASCII_USTRINGPARAM( "FillStyle" ) ) ) )
+ mAny >>= aFS;
+
+ switch( aFS )
+ {
+ case ::com::sun::star::drawing::FillStyle_GRADIENT :
+ {
+ if ( ImplGetPropertyValue( rXPropSet, String( RTL_CONSTASCII_USTRINGPARAM( "FillGradient" ) ) ) )
+ {
+ mp_EscherEx->WriteGradient( (::com::sun::star::awt::Gradient*)mAny.getValue() );
+ mp_EscherEx->AddOpt( _Escher_Prop_fNoFillHitTest, 0x1f001e );
+ nFillColor = mp_EscherEx->GetGradientColor( (::com::sun::star::awt::Gradient*)mAny.getValue(), 0 );
+ nFillBackColor = mp_EscherEx->GetGradientColor( (::com::sun::star::awt::Gradient*)mAny.getValue(), 1 );
+ }
+ }
+ break;
+
+ case ::com::sun::star::drawing::FillStyle_BITMAP :
+ {
+ if ( ImplGetGraphic( rXPropSet, String( RTL_CONSTASCII_USTRINGPARAM( "FillBitmap" ) ), TRUE ) )
+ {
+ mp_EscherEx->AddOpt( _Escher_Prop_shadowColor, 0x8000001 ); // stock valued fill color
+ mp_EscherEx->AddOpt( _Escher_Prop_fNoFillHitTest, 0x140014 );
+ mp_EscherEx->AddOpt( _Escher_Prop_fillType, _Escher_FillPicture );
+ }
+ }
+ break;
+
+ case ::com::sun::star::drawing::FillStyle_HATCH :
+ case ::com::sun::star::drawing::FillStyle_SOLID :
+ {
+ if ( ImplGetPropertyValue( rXPropSet, String( RTL_CONSTASCII_USTRINGPARAM( "FillColor" ) ) ) )
+ {
+ nFillColor = mp_EscherEx->GetColor( *((sal_uInt32*)mAny.getValue()) );
+ nFillBackColor = nFillColor ^ 0xffffff;
+ }
+ }
+ case ::com::sun::star::drawing::FillStyle_NONE :
+ default:
+ mp_EscherEx->AddOpt( _Escher_Prop_fNoFillHitTest, 0x120012 );
+ break;
+ }
+ mp_EscherEx->AddOpt( _Escher_Prop_fillColor, nFillColor );
+ mp_EscherEx->AddOpt( _Escher_Prop_fillBackColor, nFillBackColor );
+ mp_EscherEx->AddOpt( _Escher_Prop_fillRectRight, PPTtoEMU( maDestPageSize.Width ) );
+ mp_EscherEx->AddOpt( _Escher_Prop_fillRectBottom, PPTtoEMU( maDestPageSize.Height ) );
+ mp_EscherEx->AddOpt( _Escher_Prop_fNoLineDrawDash, 0x80000 );
+ mp_EscherEx->AddOpt( _Escher_Prop_bWMode, _Escher_bwWhite );
+ mp_EscherEx->AddOpt( _Escher_Prop_fBackground, 0x10001 );
+ mp_EscherEx->EndCount( _Escher_OPT, 3 );
+ mp_EscherEx->CloseContainer(); // _Escher_SpContainer
+}
+
+void PPTWriter::ImplWriteCString( SvStream& rSt, const String& rString, sal_uInt32 nInstance )
+{
+ sal_uInt32 i, nLen = rString.Len();
+ if ( nLen )
+ {
+ rSt << (sal_uInt32)( ( nInstance << 4 ) | ( EPP_CString << 16 ) )
+ << (sal_uInt32)( nLen << 1 );
+ for ( i = 0; i < nLen; i++ )
+ rSt << rString.GetChar( i );
+ }
+}
+
+void PPTWriter::ImplWriteVBA( SvMemoryStream* pVBA )
+{
+ if ( pVBA )
+ {
+ pVBA->Seek( STREAM_SEEK_TO_END );
+ sal_uInt32 nLen = pVBA->Tell();
+ if ( nLen > 8 )
+ {
+ nLen -= 8;
+ mnVBAOleOfs = mpStrm->Tell();
+ mp_EscherEx->BeginAtom();
+ mpStrm->Write( (sal_Int8*)pVBA->GetData() + 8, nLen );
+ mp_EscherEx->EndAtom( EPP_ExOleObjStg, 0, 1 );
+ }
+ }
+}
+
+// ---------------------------------------------------------------------------------------------
+
+void PPTWriter::ImplWriteOLE()
+{
+ PPTExOleObjEntry* pPtr;
+ for ( pPtr = (PPTExOleObjEntry*)maExOleObj.First(); pPtr;
+ pPtr = (PPTExOleObjEntry*)maExOleObj.Next() )
+ {
+ pPtr->nOfsB = mpStrm->Tell();
+ mp_EscherEx->BeginAtom();
+ *mpStrm << (sal_uInt32)0xa60000; // 0x0004b600; // Id ????
+ SvStorageRef xSrcStor = mXSource->OpenStorage( pPtr->aObject, STREAM_READWRITE | STREAM_SHARE_DENYALL );
+ if ( xSrcStor.Is() )
+ {
+ SvInPlaceObjectRef xInplaceObj( ((SvFactory*)SvInPlaceObject::
+ ClassFactory())->CreateAndLoad( xSrcStor ) );
+
+ if( xInplaceObj.Is() )
+ {
+ SvStorageRef xTempStorage( new SvStorage( new SvMemoryStream(), TRUE ) );
+ xTempStorage->SetVersion( SOFFICE_FILEFORMAT_31 );
+ xInplaceObj->DoSaveAs( &xTempStorage );
+ xInplaceObj->DoSaveCompleted();
+ SvMemoryStream* pStrm = xTempStorage->CreateMemoryStream();
+ xInplaceObj.Clear();
+ if ( pStrm )
+ {
+ pStrm->Seek( 0 );
+ ZCodec aZCodec( 0x8000, 0x8000 );
+ aZCodec.BeginCompression();
+ aZCodec.Compress( *pStrm, *mpStrm );
+ aZCodec.EndCompression();
+ delete pStrm;
+ }
+ }
+ }
+ mp_EscherEx->EndAtom( EPP_ExOleObjStg, 0, 1 );
+ }
+}
+
+// ---------------------------------------------------------------------------------------------
+// PersistantTable und UserEditAtom schreiben
+
+sal_Bool PPTWriter::ImplWriteAtomEnding()
+{
+
+#define EPP_LastViewTypeNone 0
+#define EPP_LastViewTypeSlideView 1
+#define EPP_LastViewTypeOutlineView 2
+#define EPP_LastViewTypeNotes 3
+
+
+ sal_uInt32 i, nPos, nOfs, nPersistOfs = mpStrm->Tell();
+ sal_uInt32 nPersistEntrys = 0;
+ *mpStrm << (sal_uInt32)0 << (sal_uInt32)0 << (sal_uInt32)0; // Record Header und ersten Eintrag ueberspringen
+
+ // Document pesist schreiben
+ nPersistEntrys++;
+ *mpStrm << (sal_uInt32)0;
+ // MasterPages persists schreiben
+ for ( i = 0; i < mnMasterPages; i++ )
+ {
+ nOfs = mp_EscherEx->PtGetOffsetByID( EPP_Persist_MainMaster | i );
+ if ( nOfs )
+ {
+ *mpStrm << nOfs;
+ mp_EscherEx->InsertAtPersistOffset( EPP_MAINMASTER_PERSIST_KEY | i, ++nPersistEntrys );
+ }
+ }
+ // MainNotesMaster persist schreiben
+ nOfs = mp_EscherEx->PtGetOffsetByID( EPP_Persist_MainNotes );
+ if ( nOfs )
+ {
+ *mpStrm << nOfs;
+ mp_EscherEx->InsertAtPersistOffset( EPP_MAINNOTESMASTER_PERSIST_KEY, ++nPersistEntrys );
+ }
+ // Slide persists schreiben -> es gilt hier auch den EPP_SlidePersistAtome mit einem gueltigen wert zu beschreiben
+ for ( i = 0; i < mnPages; i++ )
+ {
+ nOfs = mp_EscherEx->PtGetOffsetByID( EPP_Persist_Slide | i );
+ if ( nOfs )
+ {
+ *mpStrm << nOfs;
+ mp_EscherEx->InsertAtPersistOffset( EPP_MAINSLIDE_PERSIST_KEY | i, ++nPersistEntrys );
+ }
+ }
+ // Notes persists schreiben
+ for ( i = 0; i < mnPages; i++ )
+ {
+ nOfs = mp_EscherEx->PtGetOffsetByID( EPP_Persist_Notes | i );
+ if ( nOfs )
+ {
+ *mpStrm << nOfs;
+ mp_EscherEx->InsertAtPersistOffset( EPP_MAINNOTES_PERSIST_KEY | i, ++nPersistEntrys );
+ }
+ }
+ // Ole persists
+ PPTExOleObjEntry* pPtr;
+ for ( pPtr = (PPTExOleObjEntry*)maExOleObj.First(); pPtr; pPtr = (PPTExOleObjEntry*)maExOleObj.Next() )
+ {
+ nOfs = mp_EscherEx->PtGetOffsetByID( EPP_Persist_ExObj );
+ if ( nOfs )
+ {
+ nPersistEntrys++;
+ *mpStrm << pPtr->nOfsB;
+ sal_uInt32 nOldPos, nPersOfs = nOfs + pPtr->nOfsA + 16 + 8; // 8 bytes atom header, +16 to the persist entry
+ nOldPos = mpStrm->Tell();
+ mpStrm->Seek( nPersOfs );
+ *mpStrm << nPersistEntrys;
+ mpStrm->Seek( nOldPos );
+ }
+ }
+ // VB persist
+ if ( mnVBAOleOfs && mpVBA )
+ {
+ nOfs = mp_EscherEx->PtGetOffsetByID( EPP_Persist_VBAInfoAtom );
+ if ( nOfs )
+ {
+ nPersistEntrys++;
+ sal_uInt32 n1, n2;
+
+ mpVBA->Seek( 0 );
+ *mpVBA >> n1
+ >> n2;
+
+ *mpStrm << mnVBAOleOfs;
+ sal_uInt32 nOldPos = mpStrm->Tell();
+ mpStrm->Seek( nOfs ); // Fill the VBAInfoAtom with the correct index to the persisttable
+ *mpStrm << nPersistEntrys
+ << n1
+ << 2;
+ mpStrm->Seek( nOldPos );
+
+ }
+ }
+ nPos = mpStrm->Tell();
+ mpStrm->Seek( nPersistOfs );
+ mp_EscherEx->AddAtom( ( nPersistEntrys + 1 ) << 2, EPP_PersistPtrIncrementalBlock ); // Record Header eintragen
+ *mpStrm << (sal_uInt32)( ( nPersistEntrys << 20 ) | 1 );
+ mpStrm->Seek( nPos );
+
+ *mpCurUserStrm << (sal_uInt32)nPos; // offset to current edit setzen
+ mp_EscherEx->AddAtom( 28, EPP_UserEditAtom );
+ *mpStrm << (INT32)0x100 // last slide ID
+ << (sal_uInt32)0x03000dbc // minor and major app version that did the save
+ << (sal_uInt32)0 // offset last save, 0 after a full save
+ << nPersistOfs // File offset to persist pointers for this save operation
+ << (sal_uInt32)1 // Persist reference to the document persist object
+ << (sal_uInt32)nPersistEntrys // max persists written, Seed value for persist object id management
+ << (sal_Int16)EPP_LastViewTypeSlideView // last view type
+ << (sal_Int16)0x12; // padword
+
+ return TRUE;
+}
+
+// ---------------------------------------------------------------------------------------------
+
+PPTExCharSheet::PPTExCharSheet( int nInstance )
+{
+ sal_uInt16 nFontHeight;
+
+ for ( int nDepth = 0; nDepth < 5; nDepth++ )
+ {
+ PPTExCharLevel& rLev = maCharLevel[ nDepth ];
+ switch ( nInstance )
+ {
+ case EPP_TEXTTYPE_Title :
+ case EPP_TEXTTYPE_CenterTitle :
+ nFontHeight = 44;
+ break;
+ case EPP_TEXTTYPE_Body :
+ case EPP_TEXTTYPE_CenterBody :
+ case EPP_TEXTTYPE_HalfBody :
+ case EPP_TEXTTYPE_QuarterBody :
+ {
+ switch ( nDepth )
+ {
+ case 0 : nFontHeight = 32; break;
+ case 1 : nFontHeight = 28; break;
+ case 2 : nFontHeight = 24; break;
+ default :nFontHeight = 20; break;
+ }
+ }
+ break;
+ case EPP_TEXTTYPE_Notes :
+ nFontHeight = 12;
+ break;
+ case EPP_TEXTTYPE_notUsed :
+ case EPP_TEXTTYPE_Other :
+ nFontHeight = 24;
+ break;
+ }
+ rLev.mnFlags = 0;
+ rLev.mnFont = 0;
+ rLev.mnFontHeight = nFontHeight;
+ rLev.mnFontColor = 0xfe000000;
+ rLev.mnEscapement = 0;
+ }
+}
+
+
+void PPTExCharSheet::SetStyleSheet( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > & rXPropSet, Collection& rFontCollection, int nLevel )
+{
+ PortionObj aPortionObj( rXPropSet, rFontCollection );
+
+ PPTExCharLevel& rLev = maCharLevel[ nLevel ];
+
+ if ( aPortionObj.meCharColor == ::com::sun::star::beans::PropertyState_DIRECT_VALUE )
+ rLev.mnFontColor = aPortionObj.mnCharColor;
+ if ( aPortionObj.meCharEscapement == ::com::sun::star::beans::PropertyState_DIRECT_VALUE )
+ rLev.mnEscapement = aPortionObj.mnCharEscapement;
+ if ( aPortionObj.meCharHeight == ::com::sun::star::beans::PropertyState_DIRECT_VALUE )
+ rLev.mnFontHeight = aPortionObj.mnCharHeight;
+ if ( aPortionObj.meFontName == ::com::sun::star::beans::PropertyState_DIRECT_VALUE )
+ rLev.mnFont = aPortionObj.mnFont;
+ rLev.mnFlags = aPortionObj.mnCharAttr;
+}
+
+void PPTExCharSheet::Write( SvStream& rSt, _EscherEx* pEx, sal_uInt16 nLev, sal_Bool bFirst, sal_Bool bSimpleText )
+{
+ const PPTExCharLevel& rLev = maCharLevel[ nLev ];
+
+ sal_uInt32 nCharFlags = 0xefffff;
+ if ( bSimpleText )
+ nCharFlags = 0x7ffff;
+
+ rSt << nCharFlags
+ << rLev.mnFlags
+ << rLev.mnFont;
+
+ if ( bSimpleText )
+ {
+ rSt << rLev.mnFontHeight
+ << rLev.mnFontColor;
+ }
+ else
+ {
+ rSt << (sal_uInt16)0xffff // unbekannt
+ << (sal_uInt16)0xffff // unbekannt
+ << (sal_uInt16)0xffff // unbekannt
+ << rLev.mnFontHeight
+ << rLev.mnFontColor
+ << rLev.mnEscapement;
+ }
+}
+
+PPTExParaSheet::PPTExParaSheet( int nInstance, sal_uInt16 nDefaultTab, PPTExBulletProvider& rProv ) :
+ rBuProv ( rProv ),
+ mnInstance ( nInstance )
+{
+ sal_Bool bHasBullet = FALSE;
+
+ sal_uInt16 nUpperDist = 0;
+ sal_uInt16 nBulletChar;
+ sal_uInt16 nBulletOfs;
+ sal_uInt16 nTextOfs;
+
+ for ( int nDepth = 0; nDepth < 5; nDepth++ )
+ {
+ PPTExParaLevel& rLev = maParaLevel[ nDepth ];
+ switch ( nInstance )
+ {
+ case EPP_TEXTTYPE_Title :
+ case EPP_TEXTTYPE_CenterTitle :
+ break;
+ case EPP_TEXTTYPE_Body :
+ case EPP_TEXTTYPE_CenterBody :
+ case EPP_TEXTTYPE_HalfBody :
+ case EPP_TEXTTYPE_QuarterBody :
+ {
+ bHasBullet = TRUE;
+ nUpperDist = 0x14;
+ }
+ break;
+ case EPP_TEXTTYPE_Notes :
+ nUpperDist = 0x1e;
+ break;
+
+// default :
+// case EPP_TEXTTYPE_notUsed :
+// case EPP_TEXTTYPE_Other :
+// break;
+ }
+ switch ( nDepth )
+ {
+ case 0 :
+ {
+ nBulletChar = 0x2022;
+ nBulletOfs = 0;
+ nTextOfs = ( bHasBullet ) ? 0xd8 : 0;
+ }
+ break;
+ case 1 :
+ {
+ nBulletChar = 0x2013;
+ nBulletOfs = 0x120;
+ nTextOfs = 0x1d4;
+ }
+ break;
+ case 2 :
+ {
+ nBulletChar = 0x2022;
+ nBulletOfs = 0x240;
+ nTextOfs = 0x2d0;
+ }
+ break;
+ case 3 :
+ {
+ nBulletChar = 0x2013;
+ nBulletOfs = 0x360;
+ nTextOfs = 0x3f0;
+ }
+ break;
+ case 4 :
+ {
+ nBulletChar = 0xbb;
+ nBulletOfs = 0x480;
+ nTextOfs = 0x510;
+ }
+ break;
+ }
+ rLev.mbIsBullet = bHasBullet;
+ rLev.mnBulletChar = nBulletChar;
+ rLev.mnBulletFont = 0;
+ rLev.mnBulletHeight = 100;
+ rLev.mnBulletColor = 0xfe000000;
+ rLev.mnAdjust = 0;
+ rLev.mnLineFeed = 100;
+ rLev.mnLowerDist = 0;
+ rLev.mnUpperDist = nUpperDist;
+ rLev.mnTextOfs = nTextOfs;
+ rLev.mnBulletOfs = nBulletOfs;
+ rLev.mnDefaultTab = nDefaultTab;
+
+ rLev.mbExtendedBulletsUsed = FALSE;
+ rLev.mnBulletId = 0xffff;
+ rLev.mnBulletStart = 0;
+ rLev.mnMappedNumType = 0;
+ rLev.mnNumberingType = 0;
+ }
+}
+
+void PPTExParaSheet::SetStyleSheet( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > & rXPropSet, Collection& rFontCollection, int nLevel )
+{
+ ParagraphObj aParagraphObj( rXPropSet, rBuProv );
+
+ PPTExParaLevel& rLev = maParaLevel[ nLevel ];
+
+ if ( aParagraphObj.meTextAdjust == ::com::sun::star::beans::PropertyState_DIRECT_VALUE )
+ rLev.mnAdjust = aParagraphObj.mnTextAdjust;
+ if ( aParagraphObj.meLineSpacing == ::com::sun::star::beans::PropertyState_DIRECT_VALUE )
+ rLev.mnLineFeed = aParagraphObj.mnLineSpacing;
+ if ( aParagraphObj.meLineSpacingBottom == ::com::sun::star::beans::PropertyState_DIRECT_VALUE )
+ rLev.mnLowerDist = aParagraphObj.mnLineSpacingBottom;
+ if ( aParagraphObj.meLineSpacingTop == ::com::sun::star::beans::PropertyState_DIRECT_VALUE )
+ rLev.mnUpperDist = aParagraphObj.mnLineSpacingTop;
+
+ rLev.mbIsBullet = aParagraphObj.mbIsBullet; //( ( aParagraphObj.nBulletFlags & 1 ) != 0 );
+
+ if ( !nLevel )
+ {
+ if ( ( aParagraphObj.meBullet == ::com::sun::star::beans::PropertyState_DIRECT_VALUE )
+ && aParagraphObj.bExtendedParameters )
+ {
+ for ( int i = 0; i < 5; i++ )
+ {
+ PPTExParaLevel& rLev = maParaLevel[ i ];
+ if ( i )
+ aParagraphObj.ImplGetNumberingLevel( rBuProv, i, FALSE );
+// rLev.mbIsBullet = ( ( aParagraphObj.nBulletFlags & 1 ) != 0 );
+ rLev.mnTextOfs = aParagraphObj.nTextOfs;
+ rLev.mnBulletOfs = aParagraphObj.nBulletOfs;
+ rLev.mnBulletChar = aParagraphObj.cBulletId;
+ rLev.mnBulletFont = rFontCollection.GetId( ByteString( String( aParagraphObj.aFontDesc.Name ), RTL_TEXTENCODING_UTF8 ) );
+ rLev.mnBulletHeight = aParagraphObj.nBulletRealSize;
+ rLev.mnBulletColor = aParagraphObj.nBulletColor;
+
+ rLev.mbExtendedBulletsUsed = aParagraphObj.bExtendedBulletsUsed;
+ rLev.mnBulletId = aParagraphObj.nBulletId;
+ rLev.mnNumberingType = aParagraphObj.nNumberingType;
+ rLev.mnBulletStart = aParagraphObj.nStartWith;
+ rLev.mnMappedNumType = aParagraphObj.nMappedNumType;
+ }
+ }
+ }
+}
+
+void PPTExParaSheet::Write( SvStream& rSt, _EscherEx* pEx, sal_uInt16 nLev, sal_Bool bFirst, sal_Bool bSimpleText )
+{
+ const PPTExParaLevel& rLev = maParaLevel[ nLev ];
+
+ if ( maParaLevel[ 0 ].mbExtendedBulletsUsed || maParaLevel[ 1 ].mbExtendedBulletsUsed ||
+ maParaLevel[ 2 ].mbExtendedBulletsUsed || maParaLevel[ 3 ].mbExtendedBulletsUsed ||
+ maParaLevel[ 4 ].mbExtendedBulletsUsed )
+ {
+ SvStream& rOut = rBuProv.aBuExMasterStream;
+ if ( !nLev )
+ {
+ rOut << (sal_uInt32)( ( EPP_PST_ExtendedParagraphMasterAtom << 16 ) | ( mnInstance << 4 ) )
+ << (sal_uInt32)( 5 * 16 + 2 )
+ << (sal_uInt16)5; // depth
+ }
+ sal_uInt16 nBulletId = rLev.mnBulletId;
+ if ( rLev.mnNumberingType != SVX_NUM_BITMAP )
+ nBulletId = 0xffff;
+ rOut << (sal_uInt32)0x03800000
+ << (sal_uInt16)nBulletId
+ << (sal_uInt32)rLev.mnMappedNumType
+ << (sal_uInt16)rLev.mnBulletStart
+ << (sal_uInt32)0;
+ }
+
+ sal_uInt32 nParaFlags = 0x3ffdff;
+ sal_uInt16 nBulletFlags = ( rLev.mbIsBullet ) ? 0xf : 0xe;
+
+ if ( nLev || bSimpleText )
+ nParaFlags &= 0x7fff;
+
+ rSt << nParaFlags
+ << nBulletFlags
+ << rLev.mnBulletChar
+ << rLev.mnBulletFont
+ << rLev.mnBulletHeight
+ << rLev.mnBulletColor
+ << rLev.mnAdjust
+ << rLev.mnLineFeed
+ << rLev.mnUpperDist
+ << rLev.mnLowerDist
+ << rLev.mnTextOfs
+ << rLev.mnBulletOfs;
+
+ if ( bSimpleText || nLev )
+ return;
+
+ rSt << rLev.mnDefaultTab
+ << (sal_uInt16)0
+ << (sal_uInt16)0
+ << (sal_uInt16)2
+ << (sal_uInt16)0;
+}
+
+
+PPTExStyleSheet::PPTExStyleSheet( sal_uInt16 nDefaultTab, PPTExBulletProvider& rBuProv )
+{
+ for ( int nInstance = EPP_TEXTTYPE_Title; nInstance <= EPP_TEXTTYPE_QuarterBody; nInstance++ )
+ {
+ mpParaSheet[ nInstance ] = ( nInstance == EPP_TEXTTYPE_notUsed ) ? NULL : new PPTExParaSheet( nInstance, nDefaultTab, rBuProv );
+ mpCharSheet[ nInstance ] = ( nInstance == EPP_TEXTTYPE_notUsed ) ? NULL : new PPTExCharSheet( nInstance );
+ }
+}
+
+PPTExStyleSheet::~PPTExStyleSheet()
+{
+ for ( int nInstance = EPP_TEXTTYPE_Title; nInstance <= EPP_TEXTTYPE_QuarterBody; nInstance++ )
+ {
+ if ( nInstance == EPP_TEXTTYPE_notUsed )
+ continue;
+
+ delete mpParaSheet[ nInstance ];
+ delete mpCharSheet[ nInstance ];
+ }
+}
+
+void PPTExStyleSheet::SetStyleSheet( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > & rXPropSet, Collection& rFontCollection, int nInstance, int nLevel )
+{
+ if ( nInstance == EPP_TEXTTYPE_notUsed )
+ return;
+
+ mpParaSheet[ nInstance ]->SetStyleSheet( rXPropSet, rFontCollection, nLevel );
+ mpCharSheet[ nInstance ]->SetStyleSheet( rXPropSet, rFontCollection, nLevel );
+}
+
+sal_Bool PPTExStyleSheet::IsHardAttribute( sal_uInt32 nInstance, sal_uInt32 nLevel, PPTExTextAttr eAttr, sal_uInt32 nValue )
+{
+ const PPTExParaLevel& rPara = mpParaSheet[ nInstance ]->maParaLevel[ nLevel ];
+ const PPTExCharLevel& rChar = mpCharSheet[ nInstance ]->maCharLevel[ nLevel ];
+
+ sal_uInt32 nFlag = 0;
+
+ switch ( eAttr )
+ {
+ case ParaAttr_BulletOn : return ( rPara.mbIsBullet ) ? ( nValue ) ? FALSE : TRUE : ( nValue ) ? TRUE : FALSE;
+ case ParaAttr_BuHardFont :
+ case ParaAttr_BulletFont : return ( rPara.mnBulletFont != nValue );
+ case ParaAttr_BuHardColor :
+ case ParaAttr_BulletColor : return ( rPara.mnBulletColor != nValue );
+ case ParaAttr_BuHardHeight :
+ case ParaAttr_BulletHeight : return ( rPara.mnBulletHeight != nValue );
+ case ParaAttr_BulletChar : return ( rPara.mnBulletChar != nValue );
+ case ParaAttr_Adjust : return ( rPara.mnAdjust != nValue );
+ case ParaAttr_LineFeed : return ( rPara.mnLineFeed != nValue );
+ case ParaAttr_UpperDist : return ( rPara.mnUpperDist != nValue );
+ case ParaAttr_LowerDist : return ( rPara.mnLowerDist != nValue );
+ case ParaAttr_TextOfs : return ( rPara.mnTextOfs != nValue );
+ case ParaAttr_BulletOfs : return ( rPara.mnBulletOfs != nValue );
+ case ParaAttr_DefaultTab : return ( rPara.mnDefaultTab != nValue );
+ case CharAttr_Bold : nFlag = 1; break;
+ case CharAttr_Italic : nFlag = 2; break;
+ case CharAttr_Underline : nFlag = 4; break;
+ case CharAttr_Shadow : nFlag = 16; break;
+ case CharAttr_Strikeout : nFlag = 256; break;
+ case CharAttr_Embossed : nFlag = 512; break;
+ case CharAttr_Font : return ( rChar.mnFont != nValue );
+ case CharAttr_Symbol : return TRUE;
+ case CharAttr_FontHeight : return ( rChar.mnFontHeight != nValue );
+ case CharAttr_FontColor : return ( rChar.mnFontColor != nValue );
+ case CharAttr_Escapement : return ( rChar.mnEscapement != nValue );
+ };
+ if ( nFlag )
+ {
+ if ( rChar.mnFlags & nFlag )
+ return ( ( nValue & nFlag ) == 0 );
+ else
+ return ( ( nValue & nFlag ) != 0 );
+ }
+ return TRUE;
+}
+
+void PPTExStyleSheet::Write( SvStream& rSt, _EscherEx* pEx )
+{
+ for ( int nInstance = EPP_TEXTTYPE_Title; nInstance <= EPP_TEXTTYPE_QuarterBody; nInstance++ )
+ {
+ if ( nInstance == EPP_TEXTTYPE_notUsed )
+ continue;
+
+ pEx->BeginAtom();
+
+ sal_Bool bFirst = TRUE;
+ sal_Bool bSimpleText = FALSE;
+
+ rSt << (sal_uInt16)5; // paragraph count
+
+ for ( sal_uInt16 nLev = 0; nLev < 5; nLev++ )
+ {
+ if ( nInstance >= EPP_TEXTTYPE_CenterBody )
+ {
+ bFirst = FALSE;
+ bSimpleText = TRUE;
+ rSt << nLev;
+ }
+ mpParaSheet[ nInstance ]->Write( rSt, pEx, nLev, bFirst, bSimpleText );
+ mpCharSheet[ nInstance ]->Write( rSt, pEx, nLev, bFirst, bSimpleText );
+ bFirst = FALSE;
+ }
+ pEx->EndAtom( EPP_TxMasterStyleAtom, 0, nInstance );
+ }
+}
+
+// ---------------------------------------------------------------------------------------------
+
+// ---------------------
+// - exported function -
+// ---------------------
+
+extern "C" BOOL __LOADONCALLAPI ExportPPT( SvStorageRef& rSvStorage, SvStorageRef& xOleSource,
+ ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel > & rXModel,
+ ::com::sun::star::uno::Reference< ::com::sun::star::task::XStatusIndicator > & rXStatInd,
+ SvMemoryStream* pVBA, sal_uInt32 nFlagOptions )
+{
+ PPTWriter* pPPTWriter;
+ BOOL bStatus = FALSE;
+
+ pPPTWriter = new PPTWriter( rSvStorage, xOleSource, rXModel, rXStatInd, pVBA, nFlagOptions );
+ if ( pPPTWriter )
+ {
+ bStatus = ( pPPTWriter->IsValid() == TRUE );
+ delete pPPTWriter;
+ }
+
+ return bStatus;
+}
+
diff --git a/sd/source/filter/eppt/eppt.hxx b/sd/source/filter/eppt/eppt.hxx
new file mode 100644
index 000000000000..e869e8e69b5f
--- /dev/null
+++ b/sd/source/filter/eppt/eppt.hxx
@@ -0,0 +1,964 @@
+/*************************************************************************
+ *
+ * $RCSfile: eppt.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:45 $
+ *
+ * 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 _EPPT_HXX_
+#define _EPPT_HXX_
+
+#ifndef _SOLAR_H
+#include
+#endif
+#ifndef _SVSTOR_HXX
+#include
+#endif
+#ifndef _SV_GEN_HXX
+#include
+#endif
+#ifndef _SV_GRAPH_HXX
+#include
+#endif
+#include
+
+// ------------------------------------------------------------------------
+
+#include
+#ifndef _COM_SUN_STAR_UNO_ANY_HXX_
+#include
+#endif
+#ifndef _COM_SUN_STAR_FRAME_XMODEL_HPP_
+#include
+#endif
+#ifndef _COM_SUN_STAR_DRAWING_FILLSTYLE_HPP_
+#include
+#endif
+#ifndef _COM_SUN_STAR_DRAWING_LINESTYLE_HPP_
+#include
+#endif
+#ifndef _COM_SUN_STAR_DRAWING_DASHSTYLE_HPP_
+#include
+#endif
+#ifndef _COM_SUN_STAR_DRAWING_HATCHSTYLE_HPP_
+#include
+#endif
+#ifndef _COM_SUN_STAR_DRAWING_CONNECTORTYPE_HPP_
+#include
+#endif
+#ifndef _COM_SUN_STAR_DRAWING_CONNECTIONTYPE_HPP_
+#include
+#endif
+#ifndef _COM_SUN_STAR_DRAWING_LINEENDTYPE_HPP_
+#include
+#endif
+#ifndef _COM_SUN_STAR_DRAWING_ALIGNMENT_HPP_
+#include
+#endif
+#ifndef _COM_SUN_STAR_DRAWING_TEXTADJUST_HPP_
+#include
+#endif
+#ifndef _COM_SUN_STAR_DRAWING_CIRCLEKIND_HPP_
+#include
+#endif
+#ifndef _COM_SUN_STAR_DRAWING_POLYGONKIND_HPP_
+#include
+#endif
+#ifndef _COM_SUN_STAR_DRAWING_POLYGONFLAGS_HPP_
+#include
+#endif
+
+#ifndef _COM_SUN_STAR_DRAWING_XUNIVERSALSHAPEDESCRIPTOR_HPP_
+#include
+#endif
+#ifndef _COM_SUN_STAR_DRAWING_XSHAPEGROUPER_HPP_
+#include
+#endif
+
+#ifndef _COM_SUN_STAR_TEXT_XSIMPLETEXT_HPP_
+#include
+#endif
+#ifndef _COM_SUN_STAR_DRAWING_XCONNECTORSHAPE_HPP_
+#include
+#endif
+
+#ifndef _COM_SUN_STAR_DRAWING_BEZIERPOINT_HPP_
+#include
+#endif
+#ifndef _COM_SUN_STAR_DRAWING_HATCH_HPP_
+#include
+#endif
+#ifndef _COM_SUN_STAR_DRAWING_LINEDASH_HPP_
+#include
+#endif
+#ifndef _COM_SUN_STAR_DRAWING_POLYPOLYGONBEZIERCOORDS_HPP_
+#include
+#endif
+
+#ifndef _COM_SUN_STAR_PRESENTATION_XPRESENTATIONSUPPLIER_HPP_
+#include
+#endif
+#ifndef _COM_SUN_STAR_PRESENTATION_XCUSTOMPRESENTATIONSUPPLIER_HPP_
+#include
+#endif
+#ifndef _COM_SUN_STAR_DRAWING_XMASTERPAGETARGET_HPP_
+#include
+#endif
+#ifndef _COM_SUN_STAR_DRAWING_XDRAWPAGESSUPPLIER_HPP_
+#include
+#endif
+#ifndef _COM_SUN_STAR_DRAWING_XMASTERPAGESSUPPLIER_HPP_
+#include
+#endif
+
+#ifndef _COM_SUN_STAR_AWT_XGRAPHICS_HPP_
+#include
+#endif
+
+#ifndef _COM_SUN_STAR_TASK_XSTATUSINDICATORSUPPLIER_HPP_
+#include
+#endif
+
+#ifndef _COM_SUN_STAR_PRESENTATION_ANIMATIONEFFECT_HPP_
+#include
+#endif
+#ifndef _COM_SUN_STAR_PRESENTATION_FADEEFFECT_HPP_
+#include
+#endif
+#ifndef _COM_SUN_STAR_PRESENTATION_CLICKACTION_HPP_
+#include
+#endif
+#ifndef _COM_SUN_STAR_PRESENTATION_ANIMATIONSPEED_HPP_
+#include
+#endif
+#ifndef _COM_SUN_STAR_PRESENTATION_PRESENTATIONRANGE_HPP_
+#include
+#endif
+#ifndef _COM_SUN_STAR_TEXT_XTEXTFIELDSSUPPLIER_HPP_
+#include
+#endif
+#ifndef _COM_SUN_STAR_TEXT_XTEXTFIELD_HPP_
+#include
+#endif
+#ifndef _COM_SUN_STAR_CONTAINER_XNAMED_HPP_
+#include
+#endif
+#ifndef _COM_SUN_STAR_AWT_FONTDESCRIPTOR_HPP_
+#include
+#endif
+#ifndef _COM_SUN_STAR_CONTAINER_XINDEXCONTAINER_HPP_
+#include
+#endif
+
+#include
+#include
+
+enum PageType { NORMAL = 0, MASTER = 1, NOTICE = 2, UNDEFINED = 3 };
+
+#define EPP_MAINMASTER_PERSIST_KEY 0x80010000
+#define EPP_MAINNOTESMASTER_PERSIST_KEY 0x80020000
+#define EPP_MAINSLIDE_PERSIST_KEY 0x80030000
+#define EPP_MAINNOTES_PERSIST_KEY 0x80040000
+
+#define EPP_Persist_Document 0x80080000
+#define EPP_Persist_MainMaster 0x80100000
+#define EPP_Persist_MainNotes 0x80200000
+#define EPP_Persist_Slide 0x80400000
+#define EPP_Persist_Notes 0x80800000
+#define EPP_Persist_CurrentPos 0x81000000
+#define EPP_Persist_VBAInfoAtom 0x84000000
+#define EPP_Persist_ExObj 0x88000000
+
+#define EPP_TEXTSTYLE_NORMAL 0x00000001
+#define EPP_TEXTSTYLE_TITLE 0x00000010
+#define EPP_TEXTSTYLE_BODY 0x00000100
+#define EPP_TEXTSTYLE_TEXT 0x00001000
+
+// PLACEMENT_ID
+#define EPP_LAYOUT_TITLESLIDE 0 /* The slide is a title slide */
+#define EPP_LAYOUT_TITLEANDBODYSLIDE 1 /* Title and body slide */
+#define EPP_LAYOUT_TITLEMASTERSLIDE 2 /* Title master slide */
+#define EPP_LAYOUT_MASTERSLIDE 3 /* Master slide layout */
+#define EPP_LAYOUT_MASTERNOTES 4 /* Master notes layout */
+#define EPP_LAYOUT_NOTESTITLEBODY 5 /* Notes title/body layout */
+#define EPP_LAYOUT_HANDOUTLAYOUT 6 /* Handout layout, therefore it doesn't have placeholders except header, footer, and date */
+#define EPP_LAYOUT_ONLYTITLE 7 /* Only title placeholder */
+#define EPP_LAYOUT_2COLUMNSANDTITLE 8 /* Body of the slide has 2 columns and a title */
+#define EPP_LAYOUT_2ROWSANDTITLE 9 /* Slide's body has 2 rows and a title */
+#define EPP_LAYOUT_RIGHTCOLUMN2ROWS 10 /* Body contains 2 columns, right column has 2 rows */
+#define EPP_LAYOUT_LEFTCOLUMN2ROWS 11 /* Body contains 2 columns, left column has 2 rows */
+#define EPP_LAYOUT_BOTTOMROW2COLUMNS 12 /* Body contains 2 rows, bottom row has 2 columns */
+#define EPP_LAYOUT_TOPROW2COLUMN 13 /* Body contains 2 rows, top row has 2 columns */
+#define EPP_LAYOUT_4OBJECTS 14 /* 4 objects */
+#define EPP_LAYOUT_BIGOBJECT 15 /* Big object */
+#define EPP_LAYOUT_BLANCSLIDE 16 /* Blank slide */
+#define EPP_LAYOUT_TITLERIGHTBODYLEFT 17 /* Vertical title on the right, body on the left */
+#define EPP_LAYOUT_TITLERIGHT2BODIESLEFT 18 /* Vertical title on the right, body on the left split into 2 rows */
+
+class Polygon;
+class _EscherEx;
+class XStatusIndicatorRef;
+
+struct PHLayout
+{
+ sal_Int32 nLayout;
+ sal_uInt8 nPlaceHolder[ 8 ];
+ BOOL bTitlePossible;
+ BOOL bOutlinerPossible;
+ BOOL bSecOutlinerPossible;
+};
+
+static PHLayout pPHLayout[] =
+{
+ { EPP_LAYOUT_TITLEANDBODYSLIDE, 0x0d, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, TRUE, TRUE, FALSE },
+ { EPP_LAYOUT_TITLEANDBODYSLIDE, 0x0d, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, TRUE, TRUE, FALSE },
+ { EPP_LAYOUT_TITLEANDBODYSLIDE, 0x0d, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, TRUE, TRUE, FALSE },
+ { EPP_LAYOUT_2COLUMNSANDTITLE, 0x0d, 0x0e, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, TRUE, TRUE, TRUE },
+ { EPP_LAYOUT_2COLUMNSANDTITLE, 0x0d, 0x0e, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, TRUE, TRUE, FALSE },
+ { EPP_LAYOUT_BLANCSLIDE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, FALSE, FALSE, FALSE },
+ { EPP_LAYOUT_2COLUMNSANDTITLE, 0x0d, 0x0e, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, TRUE, TRUE, FALSE },
+ { EPP_LAYOUT_2COLUMNSANDTITLE, 0x0d, 0x14, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, TRUE, TRUE, FALSE },
+ { EPP_LAYOUT_TITLEANDBODYSLIDE, 0x0d, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, TRUE, FALSE, FALSE },
+ { EPP_LAYOUT_2COLUMNSANDTITLE, 0x0d, 0x16, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, TRUE, TRUE, FALSE },
+ { EPP_LAYOUT_2COLUMNSANDTITLE, 0x0d, 0x0e, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, TRUE, TRUE, FALSE },
+ { EPP_LAYOUT_TITLEANDBODYSLIDE, 0x0d, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, TRUE, FALSE, FALSE },
+ { EPP_LAYOUT_RIGHTCOLUMN2ROWS, 0x0d, 0x0e, 0x13, 0x13, 0x00, 0x00, 0x00, 0x00, TRUE, TRUE, FALSE },
+ { EPP_LAYOUT_2COLUMNSANDTITLE, 0x0d, 0x13, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, TRUE, TRUE, FALSE },
+ { EPP_LAYOUT_2ROWSANDTITLE, 0x0d, 0x13, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, TRUE, TRUE, FALSE },
+ { EPP_LAYOUT_LEFTCOLUMN2ROWS, 0x0d, 0x13, 0x13, 0x0e, 0x00, 0x00, 0x00, 0x00, TRUE, TRUE, FALSE },
+ { EPP_LAYOUT_TOPROW2COLUMN, 0x0d, 0x13, 0x13, 0x0e, 0x00, 0x00, 0x00, 0x00, TRUE, TRUE, FALSE },
+ { EPP_LAYOUT_2ROWSANDTITLE, 0x0d, 0x0e, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, TRUE, TRUE, FALSE },
+ { EPP_LAYOUT_4OBJECTS, 0x0d, 0x13, 0x13, 0x13, 0x13, 0x00, 0x00, 0x00, TRUE, FALSE, FALSE },
+ { EPP_LAYOUT_ONLYTITLE, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, TRUE, FALSE, FALSE },
+ { EPP_LAYOUT_BLANCSLIDE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, FALSE, FALSE, FALSE }
+};
+
+struct SOParagraph
+{
+ sal_Bool bDepth;
+ sal_Bool bExtendedParameters;
+ sal_uInt32 nParaFlags;
+ sal_Int16 nBulletFlags;
+ String sPrefix;
+ String sSuffix;
+ String sGraphicUrl; // String auf eine Graphic
+ sal_uInt32 nNumberingType; // in wirlichkeit ist dies ein SvxEnum
+ sal_uInt32 nHorzAdjust;
+ sal_uInt32 nBulletColor;
+ sal_Int32 nBulletOfs;
+ sal_Int16 nStartWith; // Start der nummerierung
+ sal_Int16 nTextOfs;
+ sal_Int16 nBulletRealSize; // GroessenVerhaeltnis in Proz
+ sal_Int16 nDepth; // aktuelle tiefe
+ sal_Unicode cBulletId; // wenn Numbering Type == CharSpecial
+ ::com::sun::star::awt::FontDescriptor aFontDesc;
+
+ sal_Bool bExtendedBulletsUsed;
+ sal_uInt16 nBulletId;
+ sal_uInt32 nMappedNumType;
+
+ SOParagraph()
+ {
+ nDepth = 0;
+ bDepth = TRUE;
+ bExtendedParameters = FALSE;
+ nParaFlags = 0;
+ nBulletFlags = 0;
+ bExtendedBulletsUsed = FALSE;
+ nBulletId = 0xffff;
+ };
+};
+
+// ------------------------------------------------------------------------
+
+class _EscherGraphicProvider;
+class PPTExBulletProvider
+{
+ friend struct PPTExParaSheet;
+
+ protected :
+
+ SvMemoryStream aBuExPictureStream;
+ SvMemoryStream aBuExOutlineStream;
+ SvMemoryStream aBuExMasterStream;
+
+ _EscherGraphicProvider* pGraphicProv;
+
+ public :
+
+ sal_uInt16 GetId( Graphic& rBitmap );
+
+ PPTExBulletProvider();
+ ~PPTExBulletProvider();
+};
+
+class Collection : private List
+{
+public:
+
+ Collection() {}
+ ~Collection();
+
+ sal_uInt32 GetCount() const;
+ sal_uInt32 GetId( const ByteString& );
+ const ByteString* GetById( sal_uInt32 nId );
+};
+
+// ------------------------------------------------------------------------
+
+#define PPTEX_STYLESHEETENTRYS 9
+
+enum PPTExTextAttr
+{
+ ParaAttr_BulletOn,
+ ParaAttr_BuHardFont,
+ ParaAttr_BuHardColor,
+ ParaAttr_BuHardHeight,
+ ParaAttr_BulletChar,
+ ParaAttr_BulletFont,
+ ParaAttr_BulletHeight,
+ ParaAttr_BulletColor,
+ ParaAttr_Adjust,
+ ParaAttr_LineFeed,
+ ParaAttr_UpperDist,
+ ParaAttr_LowerDist,
+ ParaAttr_TextOfs,
+ ParaAttr_BulletOfs,
+ ParaAttr_DefaultTab,
+ CharAttr_Bold,
+ CharAttr_Italic,
+ CharAttr_Underline,
+ CharAttr_Shadow,
+ CharAttr_Strikeout,
+ CharAttr_Embossed,
+ CharAttr_Font,
+ CharAttr_Symbol,
+ CharAttr_FontHeight,
+ CharAttr_FontColor,
+ CharAttr_Escapement
+};
+
+struct PPTExCharLevel
+{
+ sal_uInt16 mnFlags;
+ sal_uInt16 mnFont;
+ sal_uInt16 mnFontHeight;
+ sal_uInt16 mnEscapement;
+ sal_uInt32 mnFontColor;
+};
+
+struct PPTExCharSheet
+{
+ PPTExCharLevel maCharLevel[ 5 ];
+
+ PPTExCharSheet( int nInstance );
+
+ void SetStyleSheet( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > &, Collection& rFontCollection, int nLevel );
+ void Write( SvStream& rSt, _EscherEx* pEx, sal_uInt16 nLev, sal_Bool bFirst, sal_Bool bSimpleText );
+
+};
+
+struct PPTExParaLevel
+{
+ sal_Bool mbIsBullet;
+ sal_uInt16 mnBulletChar;
+ sal_uInt16 mnBulletFont;
+ sal_uInt16 mnBulletHeight;
+ sal_uInt32 mnBulletColor;
+
+ sal_uInt16 mnAdjust;
+ sal_uInt16 mnLineFeed;
+ sal_uInt16 mnUpperDist;
+ sal_uInt16 mnLowerDist;
+ sal_uInt16 mnTextOfs;
+ sal_uInt16 mnBulletOfs;
+ sal_uInt16 mnDefaultTab;
+
+ sal_Bool mbExtendedBulletsUsed;
+ sal_uInt16 mnBulletId;
+ sal_uInt16 mnBulletStart;
+ sal_uInt32 mnMappedNumType;
+ sal_uInt32 mnNumberingType;
+
+};
+
+struct PPTExParaSheet
+{
+ PPTExBulletProvider& rBuProv;
+
+ sal_uInt32 mnInstance;
+
+ PPTExParaLevel maParaLevel[ 5 ];
+ PPTExParaSheet( int nInstance, sal_uInt16 nDefaultTab, PPTExBulletProvider& rProv );
+
+ void SetStyleSheet( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > &, Collection& rFontCollection, int nLevel );
+ void Write( SvStream& rSt, _EscherEx* pEx, sal_uInt16 nLev, sal_Bool bFirst, sal_Bool bSimpleText );
+};
+
+class PPTExStyleSheet
+{
+ PPTExCharSheet* mpCharSheet[ PPTEX_STYLESHEETENTRYS ];
+ PPTExParaSheet* mpParaSheet[ PPTEX_STYLESHEETENTRYS ];
+
+ public :
+ PPTExStyleSheet( sal_uInt16 nDefaultTab, PPTExBulletProvider& rBuProv );
+ ~PPTExStyleSheet();
+
+ PPTExParaSheet& GetParaSheet( int nInstance ) { return *mpParaSheet[ nInstance ]; };
+ PPTExCharSheet& GetCharSheet( int nInstance ) { return *mpCharSheet[ nInstance ]; };
+
+ void SetStyleSheet( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > &, Collection& rFontCollection, int nInstance, int nLevel );
+ sal_Bool IsHardAttribute( sal_uInt32 nInstance, sal_uInt32 nLevel, PPTExTextAttr eAttr, sal_uInt32 nValue );
+ void Write( SvStream& rSt, _EscherEx* pEx );
+};
+
+
+struct EPPTHyperlink
+{
+ String aURL;
+ sal_uInt32 nType; // bit 0-7 : type ( 1: click action to a slide )
+ // ( 2: hyperlink url )
+ // bit 8-23: index
+ // bit 31 : hyperlink is attached to a shape
+
+ EPPTHyperlink( const String rURL, sal_uInt32 nT ) :
+ aURL ( rURL ),
+ nType ( nT ){};
+};
+
+
+struct ConnectorRule
+{
+ sal_uInt32 nRuleId;
+ sal_uInt32 nShapeA; // SPID of shape A
+ sal_uInt32 nShapeB; // SPID of shape B
+ sal_uInt32 nShapeC; // SPID of connector shape
+ sal_uInt32 ncptiA; // Connection site Index of shape A
+ sal_uInt32 ncptiB; // Connection site Index of shape B
+};
+
+class ShapeListEntry
+{
+
+ friend class SolverContainer;
+
+protected:
+
+ ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > aXShape;
+ sal_uInt32 n_EscherId;
+
+public:
+ ShapeListEntry( ::com::sun::star::uno::Reference
+ < ::com::sun::star::drawing::XShape > & rShape, sal_uInt32 nId ) :
+ aXShape ( rShape ),
+ n_EscherId ( nId ) {}
+};
+
+struct PPTExOleObjEntry
+{
+ String aObject;
+ sal_uInt32 nOfsA; // offset to the EPP_ExOleObjAtom in mpExEmbed (set at creation)
+ sal_uInt32 nOfsB; // offset to the EPP_ExOleObjStg
+
+ PPTExOleObjEntry( String& rStr, sal_uInt32 nOfs ) :
+ nOfsA ( nOfs ),
+ aObject ( rStr ) {};
+};
+
+struct TextRuleEntry
+{
+ int nPageNumber;
+ SvMemoryStream* pOut;
+
+ TextRuleEntry( int nPg ) :
+ nPageNumber( nPg ),
+ pOut ( NULL ){};
+
+ ~TextRuleEntry() { delete pOut; };
+};
+
+class ConnectorListEntry
+{
+
+ friend class SolverContainer;
+
+protected:
+
+ ::com::sun::star::awt::Point maPointA;
+ ::com::sun::star::awt::Point maPointB;
+ ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > mXConnector;
+ ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > mXConnectToA;
+ ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > mXConnectToB;
+
+public:
+
+ sal_uInt32 GetConnectorRule( sal_Bool bFirst );
+
+ ConnectorListEntry( ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > & rC,
+ const ::com::sun::star::awt::Point& rPA,
+ ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > & rSA ,
+ const ::com::sun::star::awt::Point& rPB,
+ ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > & rSB ) :
+ mXConnector ( rC ),
+ maPointA ( rPA ),
+ maPointB ( rPB ),
+ mXConnectToA( rSA ),
+ mXConnectToB( rSB ) {}
+
+ static sal_uInt32 GetClosestPoint( const Polygon& rPoly, const ::com::sun::star::awt::Point& rP );
+};
+
+class SolverContainer
+{
+ List maShapeList;
+ List maConnectorList;
+
+ sal_uInt32 ImplGetId( const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > & rShape );
+
+public:
+ void AddShape( ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > &, sal_uInt32 nId );
+ void AddConnector( ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > &,
+ const ::com::sun::star::awt::Point& rA,
+ ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > &,
+ const ::com::sun::star::awt::Point& rB,
+ ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > & rConB );
+
+ void WriteSolver( SvStream*, _EscherEx* );
+
+ SolverContainer(){};
+ ~SolverContainer();
+};
+
+// ------------------------------------------------------------------------
+
+struct GroupEntry
+{
+ sal_uInt32 mnCurrentPos;
+ sal_uInt32 mnCount;
+ ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess > mXIndexAccess;
+ GroupEntry( ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess > & rIndex )
+ {
+ mXIndexAccess = rIndex;
+ mnCount =mXIndexAccess->getCount();
+ mnCurrentPos = 0;
+ };
+ GroupEntry( sal_uInt32 nCount )
+ {
+ mnCount = nCount;
+ mnCurrentPos = 0;
+ };
+ ~GroupEntry(){};
+};
+
+// ------------------------------------------------------------------------
+
+class GroupTable
+{
+ sal_uInt32 mnIndex;
+ sal_uInt32 mnCurrentGroupEntry;
+ sal_uInt32 mnMaxGroupEntry;
+ sal_uInt32 mnGroupsClosed;
+ GroupEntry** mpGroupEntry;
+
+ void ImplResizeGroupTable( sal_uInt32 nEntrys );
+
+ public:
+
+ sal_uInt32 GetCurrentGroupIndex() const { return mnIndex; };
+ sal_uInt32 GetCurrentGroupLevel() const { return mnCurrentGroupEntry - 1; };
+ ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess > &
+ GetCurrentGroupAccess() const { return mpGroupEntry[ mnCurrentGroupEntry - 1 ]->mXIndexAccess; };
+ sal_uInt32 GetGroupsClosed();
+ void SkipCurrentGroup();
+ void ResetGroupTable( sal_uInt32 nCount );
+ void ClearGroupTable();
+ void EnterGroup( ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess > & rIndex );
+ sal_Bool GetNextGroupEntry();
+ GroupTable();
+ ~GroupTable();
+};
+
+class PropValue
+{
+ protected :
+
+ ::com::sun::star::uno::Any mAny;
+
+ ::com::sun::star::uno::Reference
+ < ::com::sun::star::beans::XPropertySet > mXPropSet;
+
+ sal_Bool ImplGetPropertyValue( const String& rString );
+ sal_Bool ImplGetPropertyValue( const ::com::sun::star::uno::Reference
+ < ::com::sun::star::beans::XPropertySet > &, const String& );
+
+ public :
+
+ static sal_Bool GetPropertyValue( ::com::sun::star::uno::Any& rAny, const ::com::sun::star::uno::Reference
+ < ::com::sun::star::beans::XPropertySet > &, const String& );
+};
+
+class PropStateValue : public PropValue
+{
+ protected :
+
+ ::com::sun::star::beans::PropertyState ePropState;
+ ::com::sun::star::uno::Reference
+ < ::com::sun::star::beans::XPropertyState > mXPropState;
+
+ sal_Bool ImplGetPropertyValue( const String& rString, sal_Bool bGetPropertyState = TRUE );
+
+};
+
+// ------------------------------------------------------------------------
+
+struct FieldEntry;
+class PortionObj : public PropStateValue
+{
+
+ friend class ParagraphObj;
+
+ protected :
+
+ void ImplClear();
+ void ImplConstruct( PortionObj& rPortionObj );
+ sal_uInt32 ImplGetTextField( ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange > & rXTextRangeRef, String& rURL );
+ sal_uInt32 ImplCalculateTextPositions( sal_uInt32 nCurrentTextPosition );
+ void ImplGetPortionValues( Collection& rFontCollection, sal_Bool bGetPropStateValue = FALSE );
+
+ public :
+
+ ::com::sun::star::beans::PropertyState meCharColor;
+ ::com::sun::star::beans::PropertyState meCharHeight;
+ ::com::sun::star::beans::PropertyState meFontName;
+ ::com::sun::star::beans::PropertyState meCharEscapement;
+ sal_uInt16 mnCharAttrHard;
+
+ sal_uInt32 mnCharColor;
+ sal_uInt16 mnCharAttr;
+ sal_uInt16 mnCharHeight;
+ sal_uInt16 mnFont;
+ sal_Int16 mnCharEscapement;
+
+ sal_uInt32 mnTextSize;
+ sal_Bool mbLastPortion;
+
+ sal_uInt16* mpText;
+ FieldEntry* mpFieldEntry;
+
+ PortionObj( ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange > & rXTextRangeRef, sal_Bool bLast, Collection& rFontCollection );
+ PortionObj( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > & rXPropSetRef,
+ Collection& rFontCollection );
+ PortionObj( PortionObj& rPortionObj );
+ ~PortionObj();
+
+ void Write( SvStream* pStrm, sal_Bool bLast );
+ sal_uInt32 Count() const { return mnTextSize; };
+
+ PortionObj& operator=( PortionObj& rPortionObj );
+};
+
+struct ParaFlags
+{
+ sal_Bool bFirstParagraph : 1;
+ sal_Bool bLastParagraph : 1;
+
+ ParaFlags() { bFirstParagraph = TRUE; bLastParagraph = FALSE; };
+};
+
+class ParagraphObj : public List, public PropStateValue, public SOParagraph
+{
+ friend class TextObj;
+ friend struct PPTExParaSheet;
+
+ MapMode maMapModeSrc;
+ MapMode maMapModeDest;
+
+ protected :
+
+ void ImplConstruct( ParagraphObj& rParagraphObj );
+ void ImplClear();
+ sal_uInt32 ImplCalculateTextPositions( sal_uInt32 nCurrentTextPosition );
+ ::com::sun::star::awt::Size ImplMapSize( const ::com::sun::star::awt::Size& rSize );
+ void ImplGetParagraphValues( PPTExBulletProvider& rBuProv, sal_Bool bGetPropStateValue = FALSE );
+ void ImplGetNumberingLevel( PPTExBulletProvider& rBuProv, sal_Int16 nDepth, sal_Bool bGetPropStateValue = FALSE );
+
+ public :
+
+ sal_Int32* mpTab;
+ sal_uInt32 mnTextSize;
+
+ sal_Bool mbIsBullet;
+ sal_Bool mbFirstParagraph;
+ sal_Bool mbLastParagraph;
+
+ ::com::sun::star::beans::PropertyState meBullet;
+ ::com::sun::star::beans::PropertyState meTextAdjust;
+ ::com::sun::star::beans::PropertyState meLineSpacing;
+ ::com::sun::star::beans::PropertyState meLineSpacingTop;
+ ::com::sun::star::beans::PropertyState meLineSpacingBottom;
+
+ sal_uInt16 mnTextAdjust;
+ sal_Int16 mnLineSpacing;
+ sal_Int16 mnLineSpacingTop;
+ sal_Int16 mnLineSpacingBottom;
+
+ ParagraphObj( ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextContent > & rXTextContentRef,
+ ParaFlags, Collection& rFontCollection,
+ PPTExBulletProvider& rBuProv );
+ ParagraphObj( ParagraphObj& rParargraphObj );
+ ParagraphObj( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > & rXPropSetRef,
+ PPTExBulletProvider& rBuProv );
+ ~ParagraphObj();
+
+ void Write( SvStream* pStrm );
+ sal_uInt32 Count() const { return mnTextSize; };
+
+ ParagraphObj& operator=( ParagraphObj& rParagraphObj );
+};
+
+struct ImplTextObj
+{
+ sal_uInt32 mnRefCount;
+ sal_uInt32 mnTextSize;
+ int mnInstance;
+ List* mpList;
+ sal_Bool mbHasExtendedBullets;
+
+ ImplTextObj( int nInstance );
+ ~ImplTextObj();
+};
+
+class TextObj
+{
+ ImplTextObj* mpImplTextObj;
+ void ImplCalculateTextPositions();
+
+ public :
+ TextObj( ::com::sun::star::uno::Reference< ::com::sun::star::text::XSimpleText > &
+ rXText, int nInstance, Collection& rFontCollection, PPTExBulletProvider& rBuProv );
+ TextObj( TextObj& rTextObj );
+ ~TextObj();
+ void Write( SvStream* pStrm );
+ ParagraphObj* First(){ return (ParagraphObj*)mpImplTextObj->mpList->First(); };
+ ParagraphObj* Next(){ return(ParagraphObj*)mpImplTextObj->mpList->Next(); };
+ sal_uInt32 Count() const { return mpImplTextObj->mnTextSize; };
+ int GetInstance() const { return mpImplTextObj->mnInstance; };
+ sal_Bool HasExtendedBullets(){ return mpImplTextObj->mbHasExtendedBullets; };
+
+ TextObj& operator=( TextObj& rTextObj );
+};
+
+// ------------------------------------------------------------------------
+
+class PPTWriter : public GroupTable, public PropValue, public PPTExBulletProvider
+{
+ sal_Bool mbStatus;
+ sal_uInt32 mnStatMaxValue;
+ sal_uInt32 mnLatestStatValue;
+ PPTExStyleSheet* mpStyleSheet;
+ Fraction maFraction;
+ MapMode maMapModeSrc;
+ MapMode maMapModeDest;
+ ::com::sun::star::awt::Size maDestPageSize;
+ ::com::sun::star::awt::Size maNotesPageSize;
+ PageType meLatestPageType;
+ List maSlideNameList;
+
+ ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel > mXModel;
+ ::com::sun::star::uno::Reference< ::com::sun::star::task::XStatusIndicator > mXStatusIndicator;
+ ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XDrawPagesSupplier > mXDrawPagesSupplier;
+ ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XMasterPagesSupplier > mXMasterPagesSupplier;
+ ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XDrawPages > mXDrawPages;
+ ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XDrawPage > mXDrawPage;
+ ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > mXPagePropSet;
+ ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShapes > mXShapes;
+ ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > mXShape;
+ ::com::sun::star::uno::Reference< ::com::sun::star::text::XSimpleText > mXText; // TextRef des globalen Text
+ ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextCursor > mXCursor;
+ ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange > mXCursorText; // TextRef des Teilstuecks des Cursors
+ ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > mXCursorPropSet; // die Properties des Teilstueckes
+ ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextField > mXTextField;
+ ::com::sun::star::awt::Size maSize;
+ ::com::sun::star::awt::Point maPosition;
+ Rectangle maRect;
+ ByteString mType;
+ sal_Bool mbPresObj;
+ sal_Bool mbEmptyPresObj;
+ sal_Bool mbStatusIndicator;
+ sal_Int32 mnShadow; // eq 0 wenn fillstyle = None & linestyle = None
+ sal_Int32 mnAngle;
+ sal_uInt32 mnTextStyle;
+
+ sal_uInt32 mnMasterTitleIndex; // -1 wenn es keinen Title gibt
+ sal_uInt32 mnMasterBodyIndex; // -1 wenn es keinen Body gibt
+
+ sal_uInt32 mnTextSize;
+
+ SvStorageRef mrStg;
+ SvStorageRef mXSource;
+ SvStorageStream* mpCurUserStrm;
+ SvStorageStream* mpStrm;
+ SvStorageStream* mpPicStrm;
+ _EscherEx* mp_EscherEx;
+
+ List maExOleObj;
+ sal_uInt32 mnVBAOleOfs;
+ SvMemoryStream* mpVBA;
+ sal_uInt32 mnExEmbed;
+ SvMemoryStream* mpExEmbed;
+
+ sal_uInt32 mnPages; // anzahl einzelner Slides ( ohne masterpages & notes & handout )
+ sal_uInt32 mnMasterPages; //
+ sal_uInt32 mnDrawings; // anzahl Slides + masterpages + notes + handout
+ sal_uInt32 mnPagesWritten;
+ sal_uInt32 mnUniqueSlideIdentifier;
+ sal_uInt32 mnTxId; // Identifier determined by the HOST (PP) ????
+ sal_Int32 mnLayout; // nur bei normaler Seite gueltig
+ sal_uInt32 mnDiaMode; // 0 -> manuell
+ // 1 -> halbautomatisch
+ // 2 -> automatisch
+
+
+ sal_uInt32 mnFillColor;
+ sal_uInt32 mnFillBackColor;
+
+ sal_uInt32 mnShapeMasterTitle;
+ sal_uInt32 mnShapeMasterBody;
+
+ List maTextRuleList; // TextRuleEntry's
+ List maHyperlink;
+ Collection maFontCollection;
+ Collection maSoundCollection;
+
+ void ImplWriteExtParaHeader( SvMemoryStream& rSt, sal_uInt32 nRef, sal_uInt32 nInstance, sal_uInt32 nSlideId );
+
+
+ sal_uInt32 ImplProgBinaryTag( SvStream* pOutStrm = NULL );
+ sal_uInt32 ImplProgBinaryTagContainer( SvStream* pOutStrm = NULL, SvMemoryStream* pBinTag = NULL );
+ sal_uInt32 ImplProgTagContainer( SvStream* pOutStrm = NULL, SvMemoryStream* pBinTag = NULL );
+ sal_uInt32 ImplOutlineViewInfoContainer( SvStream* pOutStrm = NULL );
+ sal_uInt32 ImplSlideViewInfoContainer( sal_uInt32 nInstance, SvStream* pOutStrm = NULL );
+ sal_uInt32 ImplVBAInfoContainer( SvStream* pOutStrm = NULL );
+ sal_uInt32 ImplDocumentListContainer( SvStream* pOutStrm = NULL );
+ sal_uInt32 ImplMasterSlideListContainer( SvStream* pOutStrm = NULL );
+
+ protected:
+
+ sal_Bool ImplCreateSummaryInformation();
+ sal_Bool ImplCreateDocumentSummaryInformation();
+ sal_Bool ImplCreateCurrentUserStream();
+ sal_Bool ImplCreateDocument();
+ sal_Bool ImplCreateHyperBlob( SvMemoryStream& rStream );
+ sal_Bool ImplCreateMainMaster();
+ sal_Bool ImplCreateMainNotes();
+ sal_Bool ImplCreateTitleMasterPage( int nPageNum );
+ sal_Bool ImplCreateSlide( int nPageNum );
+ sal_Bool ImplCreateNotes( int nPageNum );
+ void ImplWriteBackground( ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > & rXBackgroundPropSet );
+ void ImplWriteVBA( SvMemoryStream* pVBA );
+ void ImplWriteOLE();
+ sal_Bool ImplWriteAtomEnding();
+
+ sal_Bool ImplInitSOIface();
+ sal_Bool ImplGetPageByIndex( sal_uInt32 nIndex, PageType );
+ sal_Bool ImplGetShapeByIndex( sal_uInt32 nIndex, sal_Bool bGroup = FALSE );
+ sal_uInt32 ImplGetMasterIndex( PageType ePageType );
+ void ImplFlipBoundingBox( const ::com::sun::star::awt::Point& rRefPoint );
+ sal_Bool ImplGetText();
+ void ImplWriteObjectEffect( SvStream& rSt,
+ ::com::sun::star::presentation::AnimationEffect eEffect,
+ ::com::sun::star::presentation::AnimationEffect eTextEffect,
+ sal_uInt16 nOrder );
+ void ImplWriteClickAction( SvStream& rSt, ::com::sun::star::presentation::ClickAction eAction );
+ void ImplWriteLineBundle( sal_Bool bEdge );
+ void ImplWriteFillBundle( sal_Bool bEdge );
+ void ImplWriteTextBundle( sal_Bool bDisableAutoGrowHeight = FALSE );
+ sal_Bool ImplGetMasterTitleAndBody();
+ sal_Bool ImplGetStyleSheets();
+ void ImplWriteParagraphs( SvStream& rOutStrm, TextObj& rTextObj, sal_uInt32 nTextStyle );
+ void ImplWritePortions( SvStream& rOutStrm, TextObj& rTextObj );
+ void ImplWriteTextStyleAtom( SvStream& rOut, int nTextInstance,
+ sal_uInt32 nAtomInstance, TextRuleEntry* pTextRule, SvStream& rExtBu );
+ void ImplWriteAny( sal_uInt32 nFlags, sal_Bool bBezier, Polygon* pPolygon = NULL );
+ void ImplWritePage( SolverContainer& rSolver, PageType ePageType, sal_Bool bMaster, int nPageNumber = 0 );
+ sal_Bool ImplIsAutoShape( const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > & rXShape,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > & rXPropSet,
+ sal_Bool bIsGroup, sal_Int32 nAngle, sal_uInt32& nNewShapeType, sal_uInt32& nReplace, List& rAdjustmentList,
+ Rectangle& rPolyBoundRect );
+ sal_Bool ImplIsMetaFile();
+ sal_Bool ImplGetGraphic( ::com::sun::star::uno::Reference < ::com::sun::star::beans::XPropertySet > & rXPropSet,
+ const String&, sal_Bool bFillBitmap, sal_Bool bOle = FALSE );
+
+ ::com::sun::star::awt::Point ImplMapPoint( const ::com::sun::star::awt::Point& );
+ ::com::sun::star::awt::Size ImplMapSize( const ::com::sun::star::awt::Size& );
+
+ sal_Bool ImplCloseDocument(); // die font-, hyper-, Soundliste wird geschrieben ..
+ void ImplWriteCString( SvStream&, const String&, sal_uInt32 nInstance = 0 );
+
+ public:
+ PPTWriter( SvStorageRef& rSvStorage, SvStorageRef& rSource,
+ ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel > & rModel,
+ ::com::sun::star::uno::Reference< ::com::sun::star::task::XStatusIndicator > & rStatInd,
+ SvMemoryStream* pVBA, sal_uInt32 nFilterOptions );
+
+ ~PPTWriter();
+
+ sal_Bool IsValid() const { return mbStatus; };
+};
+
+
+#endif
diff --git a/sd/source/filter/eppt/epptdef.hxx b/sd/source/filter/eppt/epptdef.hxx
new file mode 100644
index 000000000000..9dc74752d086
--- /dev/null
+++ b/sd/source/filter/eppt/epptdef.hxx
@@ -0,0 +1,296 @@
+/*************************************************************************
+ *
+ * $RCSfile: epptdef.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:45 $
+ *
+ * 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 _EPPT_DEF_HXX
+#define _EPPT_DEF_HXX
+
+#ifndef _SOLAR_H
+#include
+#endif
+
+#define EPP_FLAG_CONTAINER 0x0F // If the version field of a record
+ // header takes on this value, the
+ // record header marks the start of
+ // a container.
+
+#define EPP_Unknown 0
+#define EPP_SubContainerCompleted 1
+#define EPP_IRRAtom 2
+#define EPP_PSS 3
+#define EPP_SubContainerException 4
+#define EPP_ClientSignal1 6
+#define EPP_ClientSignal2 7
+#define EPP_PowerPointStateInfoAtom 10
+#define EPP_Document 1000
+#define EPP_DocumentAtom 1001
+#define EPP_EndDocument 1002
+#define EPP_SlidePersist 1003
+#define EPP_SlideBase 1004
+#define EPP_SlideBaseAtom 1005
+#define EPP_Slide 1006
+#define EPP_SlideAtom 1007
+#define EPP_Notes 1008
+#define EPP_NotesAtom 1009
+#define EPP_Environment 1010
+#define EPP_SlidePersistAtom 1011 //0x03F3
+#define EPP_Scheme 1012
+#define EPP_SchemeAtom 1013
+#define EPP_DocViewInfo 1014
+#define EPP_SslideLayoutAtom 1015
+#define EPP_MainMaster 1016
+#define EPP_SSSlideInfoAtom 1017
+#define EPP_SlideViewInfo 1018
+#define EPP_GuideAtom 1019
+#define EPP_ViewInfo 1020
+#define EPP_ViewInfoAtom 1021
+#define EPP_SlideViewInfoAtom 1022
+#define EPP_VBAInfo 1023
+#define EPP_VBAInfoAtom 1024
+#define EPP_SSDocInfoAtom 1025
+#define EPP_Summary 1026
+#define EPP_Texture 1027
+#define EPP_VBASlideInfo 1028
+#define EPP_VBASlideInfoAtom 1029
+#define EPP_DocRoutingSlip 1030
+#define EPP_OutlineViewInfo 1031
+#define EPP_SorterViewInfo 1032
+#define EPP_ExObjList 1033
+#define EPP_ExObjListAtom 1034
+#define EPP_PPDrawingGroup 1035
+#define EPP_PPDrawing 1036
+#define EPP_NamedShows 1040
+#define EPP_NamedShow 1041
+#define EPP_NamedShowSlides 1042
+#define EPP_List 2000
+#define EPP_FontCollection 2005
+#define EPP_ListPlaceholder 2017
+#define EPP_BookmarkCollection 2019
+#define EPP_SoundCollection 2020
+#define EPP_SoundCollAtom 2021
+#define EPP_Sound 2022
+#define EPP_SoundData 2023
+#define EPP_BookmarkSeedAtom 2025
+#define EPP_GuideList 2026
+#define EPP_RunArray 2028
+#define EPP_RunArrayAtom 2029
+#define EPP_ArrayElementAtom 2030
+#define EPP_Int4ArrayAtom 2031
+#define EPP_ColorSchemeAtom 2032
+
+// these atoms first was seen in ppt2000 in a private Tag atom
+#define EPP_PST_ExtendedBuGraContainer 2040 // consist of 4041
+#define EPP_PST_ExtendedBuGraAtom 2041 // the instance of this atom indices the current graphic
+
+#define EPP_OEShape 3008
+#define EPP_ExObjRefAtom 3009
+#define EPP_OEPlaceholderAtom 3011
+#define EPP_GrColor 3020
+#define EPP_GrectAtom 3025
+#define EPP_GratioAtom 3031
+#define EPP_Gscaling 3032
+#define EPP_GpointAtom 3034
+#define EPP_OEShapeAtom 3035
+#define EPP_OutlineTextRefAtom 3998
+#define EPP_TextHeaderAtom 3999
+#define EPP_TextCharsAtom 4000
+#define EPP_StyleTextPropAtom 4001
+#define EPP_BaseTextPropAtom 4002
+#define EPP_TxMasterStyleAtom 4003
+#define EPP_TxCFStyleAtom 4004
+#define EPP_TxPFStyleAtom 4005
+#define EPP_TextRulerAtom 4006
+#define EPP_TextBookmarkAtom 4007
+#define EPP_TextBytesAtom 4008
+#define EPP_TxSIStyleAtom 4009
+#define EPP_TextSpecInfoAtom 4010
+#define EPP_DefaultRulerAtom 4011
+
+// these atoms first was seen in ppt2000 in a private Tag atom
+#define EPP_PST_ExtendedParagraphAtom 4012
+#define EPP_PST_ExtendedParagraphMasterAtom 4013
+#define EPP_PST_ExtendedPresRuleContainer 4014 // consist of 4012, 4015,
+#define EPP_PST_ExtendedParagraphHeaderAtom 4015 // the instance of this atom indices the current presobj
+ // the first UINT32 in this atom indices the current slideId
+
+#define EPP_FontEnityAtom 4023
+#define EPP_FontEmbedData 4024
+#define EPP_TypeFace 4025
+#define EPP_CString 4026
+#define EPP_ExternalObject 4027
+#define EPP_MetaFile 4033
+#define EPP_ExOleObj 4034
+#define EPP_ExOleObjAtom 4035
+#define EPP_ExPlainLinkAtom 4036
+#define EPP_CorePict 4037
+#define EPP_CorePictAtom 4038
+#define EPP_ExPlainAtom 4039
+#define EPP_SrKinsoku 4040
+#define EPP_Handout 4041
+#define EPP_ExEmbed 4044
+#define EPP_ExEmbedAtom 4045
+#define EPP_ExLink 4046
+#define EPP_ExLinkAtom_old 4047
+#define EPP_BookmarkEntityAtom 4048
+#define EPP_ExLinkAtom 4049
+#define EPP_SrKinsokuAtom 4050
+#define EPP_ExHyperlinkAtom 4051
+#define EPP_ExPlain 4053
+#define EPP_ExPlainLink 4054
+#define EPP_ExHyperlink 4055
+#define EPP_SlideNumberMCAtom 4056
+#define EPP_HeadersFooters 4057
+#define EPP_HeadersFootersAtom 4058
+#define EPP_RecolorEntryAtom 4062
+#define EPP_TxInteractiveInfoAtom 4063
+#define EPP_EmFormatAtom 4065
+#define EPP_CharFormatAtom 4066
+#define EPP_ParaFormatAtom 4067
+#define EPP_MasterText 4068
+#define EPP_RecolorInfoAtom 4071
+#define EPP_ExQuickTime 4073
+#define EPP_ExQuickTimeMovie 4074
+#define EPP_ExQuickTimeMovieData 4075
+#define EPP_ExSubscription 4076
+#define EPP_ExSubscriptionSection 4077
+#define EPP_ExControl 4078
+#define EPP_ExControlAtom 4091
+#define EPP_SlideListWithText 4080 // 0x0FF0
+#define EPP_AnimationInfoAtom 4081
+#define EPP_InteractiveInfo 4082
+#define EPP_InteractiveInfoAtom 4083
+#define EPP_SlideList 4084
+#define EPP_UserEditAtom 4085
+#define EPP_CurrentUserAtom 4086
+#define EPP_DateTimeMCAtom 4087
+#define EPP_GenericDateMCAtom 4088
+#define EPP_HeaderMCAtom 4089
+#define EPP_FooterMCAtom 4090
+#define EPP_ExMediaAtom 4100
+#define EPP_ExVideo 4101
+#define EPP_ExAviMovie 4102
+#define EPP_ExMCIMovie 4103
+#define EPP_ExMIDIAudio 4109
+#define EPP_ExCDAudio 4110
+#define EPP_ExWAVAudioEmbedded 4111
+#define EPP_ExWAVAudioLink 4112
+#define EPP_ExOleObjStg 4113
+#define EPP_ExCDAudioAtom 4114
+#define EPP_ExWAVAudioEmbeddedAtom 4115
+#define EPP_AnimationInfo 4116
+#define EPP_RTFDateTimeMCAtom 4117
+#define EPP_ProgTags 5000
+#define EPP_ProgStringTag 5001
+#define EPP_ProgBinaryTag 5002
+#define EPP_BinaryTagData 5003
+#define EPP_PrintOptions 6000
+#define EPP_PersistPtrFullBlock 6001
+#define EPP_PersistPtrIncrementalBlock 6002
+#define EPP_RulerIndentAtom 10000
+#define EPP_GscalingAtom 10001
+#define EPP_GrColorAtom 10002
+#define EPP_GLPointAtom 10003
+
+#define EPP_PLACEHOLDER_NONE 0 /* 0 None */
+#define EPP_PLACEHOLDER_MASTERTITLE 1 /* 1 Master title */
+#define EPP_PLACEHOLDER_MASTERBODY 2 /* 2 Master body */
+#define EPP_PLACEHOLDER_MASTERCENTEREDTITLE 3 /* 3 Master centered title */
+#define EPP_PLACEHOLDER_MASTERNOTESSLIDEIMAGE 4 /* 4 Master notes slide image */
+#define EPP_PLACEHOLDER_MASTERNOTESBODYIMAGE 5 /* 5 Master notes body image */
+#define EPP_PLACEHOLDER_MASTERDATE 6 /* 6 Master date */
+#define EPP_PLACEHOLDER_MASTERSLIDENUMBER 7 /* 7 Master slide number */
+#define EPP_PLACEHOLDER_MASTERFOOTER 8 /* 8 Master footer */
+#define EPP_PLACEHOLDER_MASTERHEADER 9 /* 9 Master header */
+#define EPP_PLACEHOLDER_MASTERSUBTITLE 10 /* 10 Master subtitle */
+#define EPP_PLACEHOLDER_GENERICTEXTOBJECT 11 /* 11 Generic text object */
+#define EPP_PLACEHOLDER_TITLE 13 /* 12 Title */
+#define EPP_PLACEHOLDER_BODY 14 /* 13 Body */
+#define EPP_PLACEHOLDER_NOTESBODY 12 /* 14 Notes body */
+#define EPP_PLACEHOLDER_CENTEREDTITLE 15 /* 15 Centered title */
+#define EPP_PLACEHOLDER_SUBTITLE 16 /* 16 Subtitle */
+#define EPP_PLACEHOLDER_VERTICALTEXTTITLE 17 /* 17 Vertical text title */
+#define EPP_PLACEHOLDER_VERTICALTEXTBODY 18 /* 18 Vertical text body */
+#define EPP_PLACEHOLDER_NOTESSLIDEIMAGE 19 /* 19 Notes slide image */
+#define EPP_PLACEHOLDER_OBJECT 20 /* 20 Object (no matter the size) */
+#define EPP_PLACEHOLDER_GRAPH 21 /* 21 Graph */
+#define EPP_PLACEHOLDER_TABLE 22 /* 22 Table */
+#define EPP_PLACEHOLDER_CLIPART 23 /* 23 Clip Art */
+#define EPP_PLACEHOLDER_ORGANISZATIONCHART 24 /* 24 Organization Chart */
+#define EPP_PLACEHOLDER_MEDIACLIP 25 /* 25 Media Clip */
+
+#define EPP_TEXTTYPE_Title 0
+#define EPP_TEXTTYPE_Body 1
+#define EPP_TEXTTYPE_Notes 2
+#define EPP_TEXTTYPE_notUsed 3
+#define EPP_TEXTTYPE_Other 4 // ( Text in a shape )
+#define EPP_TEXTTYPE_CenterBody 5 // ( subtitle in title slide )
+#define EPP_TEXTTYPE_CenterTitle 6 // ( title in title slide )
+#define EPP_TEXTTYPE_HalfBody 7 // ( body in two-column slide )
+#define EPP_TEXTTYPE_QuarterBody 8 // ( body in four-body slide )
+
+#define EPP_SLIDESIZE_TYPEONSCREEN 0
+#define EPP_SLIDESIZE_TYPELETTERSIZERPAPER 1
+#define EPP_SLIDESIZE_TYPEA4PAPER 2
+#define EPP_SLIDESIZE_TYPE35MM 3
+#define EPP_SLIDESIZE_TYPEOVERHEAD 4
+#define EPP_SLIDESIZE_TYPEBANNER 5
+#define EPP_SLIDESIZE_TYPECUSTOM 6
+
+#endif
diff --git a/sd/source/filter/eppt/epptso.cxx b/sd/source/filter/eppt/epptso.cxx
new file mode 100644
index 000000000000..ca8aa488cc10
--- /dev/null
+++ b/sd/source/filter/eppt/epptso.cxx
@@ -0,0 +1,5519 @@
+/*************************************************************************
+ *
+ * $RCSfile: epptso.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:45 $
+ *
+ * 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 _EPPT_HXX_
+#include
+#endif
+#ifndef _EPPT_DEF_HXX
+#include "epptdef.hxx"
+#endif
+#ifndef __EscherEX_HXX
+#include "escherex.hxx"
+#endif
+#ifndef _SV_POLY_HXX
+#include
+#endif
+#ifndef _SV_BMPACC_HXX
+#include
+#endif
+#ifndef _SV_GRADIENT_HXX
+#include
+#endif
+#ifndef _SV_GFXLINK_HXX
+#include
+#endif
+#ifndef _STREAM_HXX
+#include
+#endif
+#ifndef _SVSTOR_HXX
+#include
+#endif
+#ifndef _SV_OUTDEV_HXX
+#include
+#endif
+#ifndef _SV_GRADIENT_HXX
+#include
+#endif
+//#ifndef _SVX_XIT_HXX
+//#include
+//#endif
+#ifndef _SVX_SVXENUM_HXX
+#include
+#endif
+#ifndef _COM_SUN_STAR_STYLE_VERTICALALIGNMENT_HPP_
+#include
+#endif
+#ifndef _COM_SUN_STAR_CONTAINER_XINDEXREPLACE_HPP_
+#include
+#endif
+#ifndef _COM_SUN_STAR_PRESENTATION_XPRESENTATIONPAGE_HPP_
+#include
+#endif
+#ifndef _COM_SUN_STAR_AWT_XFONT_HPP_
+#include
+#endif
+#ifndef _COM_SUN_STAR_AWT_XFONTWEIGHT_HPP_
+#include
+#endif
+#ifndef _COM_SUN_STAR_AWT_XFONTUNDERLINE_HPP_
+#include
+#endif
+#ifndef _COM_SUN_STAR_STYLE_TABSTOP_HPP_
+#include
+#endif
+#ifndef _COM_SUN_STAR_STYLE_PARAGRAPHADJUST_HPP_
+#include
+#endif
+#ifndef _COM_SUN_STAR_STYLE_LINESPACING_HPP_
+#include
+#endif
+#ifndef _COM_SUN_STAR_STYLE_LINESPACINGMODE_HPP_
+#include
+#endif
+#ifndef _COM_SUN_STAR_STYLE_XSTYLEFAMILIESSUPPLIER_PP_
+#include
+#endif
+#ifndef _COM_SUN_STAR_STYLE_XSTYLE_HPP_
+#include
+#endif
+#ifndef _COM_SUN_STAR_AWT_CHARSET_HPP_
+#include
+#endif
+#ifndef _COM_SUN_STAR_DRAWING_POINTSEQUENCE_HPP_
+#include
+#endif
+#ifndef _COM_SUN_STAR_DRAWING_FLAGSEQUENCE_HPP_
+#include
+#endif
+#ifndef _COM_SUN_STAR_DRAWING_POLYGONFLAGS_HPP_
+#include
+#endif
+#ifndef _COM_SUN_STAR_BEANS_PROPERTYVALUE_HPP_
+#include
+#endif
+#ifndef _COM_SUN_STAR_DRAWING_COLORMODE_HPP_
+#include
+#endif
+#ifndef _SV_CVTGRF_HXX
+#include
+#endif
+#ifndef _URLOBJ_HXX
+#include
+#endif
+#ifndef _CPPUHELPER_EXTRACT_HXX_
+#include
+#endif
+#ifndef _CPPUHELPER_PROPTYPEHLP_HXX_
+#include
+#endif
+#ifndef _UCBHELPER_CONTENT_HXX_
+#include
+#endif
+#ifndef _UCBHELPER_CONTENTBROKER_HXX_
+#include
+#endif
+#ifndef _TOOLKIT_UNOHLP_HXX
+#include
+#endif
+#ifndef _RTL_CRC_H_
+#include
+#endif
+#include
+
+//#include
+
+
+#include
+#ifndef _VOS_NO_NAMESPACE
+using namespace vos;
+#endif
+
+#define ANY_FLAGS_LINE 0x01
+#define ANY_FLAGS_POLYLINE 0x02
+#define ANY_FLAGS_POLYPOLYGON 0x04
+
+// ---------------------------------------------------------------------------------------------
+
+sal_Int16 EncodeAnyTosal_Int16( ::com::sun::star::uno::Any& rAny )
+{
+ sal_Int16 nVal = 0;
+#ifdef __BIGENDIAN
+ switch( rAny.getValueType().getTypeClass() )
+ {
+ case ::com::sun::star::uno::TypeClass_SHORT :
+ case ::com::sun::star::uno::TypeClass_UNSIGNED_SHORT : nVal = *((short*)rAny.getValue() ); break;
+ case ::com::sun::star::uno::TypeClass_LONG :
+ case ::com::sun::star::uno::TypeClass_UNSIGNED_LONG : nVal = (sal_Int16)(*((long*)rAny.getValue() ) ); break;
+ case ::com::sun::star::uno::TypeClass_ENUM :
+ {
+ nVal = (sal_Int16)(*( ::com::sun::star::drawing::TextAdjust*)rAny.getValue() ); break;
+ }
+ break;
+ }
+#else
+ nVal = *((sal_Int16*)rAny.getValue());
+#endif
+ return nVal;
+}
+
+PPTExBulletProvider::PPTExBulletProvider()
+{
+ pGraphicProv = new _EscherGraphicProvider( aBuExPictureStream, _E_GRAPH_PROV_USE_INSTANCES );
+}
+
+PPTExBulletProvider::~PPTExBulletProvider()
+{
+ delete pGraphicProv;
+}
+
+sal_uInt16 PPTExBulletProvider::GetId( Graphic& rGraphic )
+{
+ sal_uInt16 nRetValue = 0xffff;
+ if ( !!rGraphic )
+ {
+ sal_uInt32 nErrCode, nId = 0;
+ GraphicType eGraphicType = rGraphic.GetType();
+ if ( ( eGraphicType == GRAPHIC_BITMAP ) || ( eGraphicType == GRAPHIC_GDIMETAFILE ) )
+ {
+ SvMemoryStream aDestStrm;
+
+ nErrCode = GraphicConverter::Export( aDestStrm, rGraphic, ( eGraphicType == GRAPHIC_BITMAP ) ? CVT_PNG : CVT_WMF );
+ if ( nErrCode == ERRCODE_NONE )
+ {
+ sal_uInt32 nId;
+ if ( eGraphicType == GRAPHIC_BITMAP )
+ nId = pGraphicProv->ImplGetBlibID( aDestStrm, PNG );
+ else
+ {
+// sal_uInt32 nId = pGraphicProv->ImplGetBlibID( aDestStrm, WMF );
+ nId = 0;
+ }
+ if ( nId && ( nId < 0x10000 ) )
+ nRetValue = (sal_uInt16)nId - 1;
+ }
+ }
+ }
+ return nRetValue;
+}
+
+// ---------------------------------------------------------------------------------------------
+
+GroupTable::GroupTable() :
+ mpGroupEntry ( NULL ),
+ mnMaxGroupEntry ( 0 ),
+ mnCurrentGroupEntry ( 0 ),
+ mnGroupsClosed ( 0 )
+{
+ ImplResizeGroupTable( 32 );
+}
+
+// ---------------------------------------------------------------------------------------------
+
+GroupTable::~GroupTable()
+{
+ for ( sal_uInt32 i = 0; i < mnCurrentGroupEntry; delete mpGroupEntry[ i++ ] );
+ delete mpGroupEntry;
+}
+
+// ---------------------------------------------------------------------------------------------
+
+void GroupTable::ImplResizeGroupTable( sal_uInt32 nEntrys )
+{
+ if ( nEntrys > mnMaxGroupEntry )
+ {
+ mnMaxGroupEntry = nEntrys;
+ GroupEntry** pTemp = new GroupEntry*[ nEntrys ];
+ for ( sal_uInt32 i = 0; i < mnCurrentGroupEntry; i++ )
+ pTemp[ i ] = mpGroupEntry[ i ];
+ if ( mpGroupEntry )
+ delete mpGroupEntry;
+ mpGroupEntry = pTemp;
+ }
+}
+
+// ---------------------------------------------------------------------------------------------
+
+void GroupTable::EnterGroup( ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess >& rXIndexAccessRef )
+{
+ if ( rXIndexAccessRef.is() )
+ {
+ if ( mnMaxGroupEntry == mnCurrentGroupEntry )
+ ImplResizeGroupTable( mnMaxGroupEntry + 8 );
+ mpGroupEntry[ mnCurrentGroupEntry++ ] = new GroupEntry( rXIndexAccessRef );
+ }
+}
+
+// ---------------------------------------------------------------------------------------------
+
+sal_uInt32 GroupTable::GetGroupsClosed()
+{
+ sal_uInt32 nRet = mnGroupsClosed;
+ mnGroupsClosed = 0;
+ return nRet;
+}
+
+// ---------------------------------------------------------------------------------------------
+
+void GroupTable::ClearGroupTable()
+{
+ for ( sal_uInt32 i = 0; i < mnCurrentGroupEntry; i++, delete mpGroupEntry );
+ mnCurrentGroupEntry = 0;
+}
+
+// ---------------------------------------------------------------------------------------------
+
+void GroupTable::ResetGroupTable( sal_uInt32 nCount )
+{
+ ClearGroupTable();
+ mpGroupEntry[ mnCurrentGroupEntry++ ] = new GroupEntry( nCount );
+}
+
+// ---------------------------------------------------------------------------------------------
+
+sal_Bool GroupTable::GetNextGroupEntry()
+{
+ while ( mnCurrentGroupEntry )
+ {
+ mnIndex = mpGroupEntry[ mnCurrentGroupEntry - 1 ]->mnCurrentPos++;
+
+ if ( mpGroupEntry[ mnCurrentGroupEntry - 1 ]->mnCount > mnIndex )
+ return TRUE;
+
+ delete ( mpGroupEntry[ --mnCurrentGroupEntry ] );
+
+ if ( mnCurrentGroupEntry )
+ mnGroupsClosed++;
+ }
+ return FALSE;
+}
+
+// ---------------------------------------------------------------------------------------------
+
+void GroupTable::SkipCurrentGroup()
+{
+ if ( mnCurrentGroupEntry )
+ delete ( mpGroupEntry[ --mnCurrentGroupEntry ] );
+}
+
+// ---------------------------------------------------------------------------------------------
+
+Collection::~Collection()
+{
+ for( void* pStr = List::First(); pStr; pStr = List::Next() )
+ delete (ByteString*) pStr;
+}
+
+// ---------------------------------------------------------------------------------------------
+
+sal_uInt32 Collection::GetId( const ByteString& rString )
+{
+ if( rString.Len() )
+ {
+ const sal_uInt32 nCount = GetCount();
+
+ for( sal_uInt32 i = 0; i < nCount; i++ )
+ if( *GetById( i ) == rString )
+ return i;
+
+ List::Insert( new ByteString( rString ), LIST_APPEND );
+ return nCount;
+ }
+ return 0;
+}
+
+sal_uInt32 Collection::GetCount() const
+{
+ return List::Count();
+}
+
+const ByteString* Collection::GetById( sal_uInt32 nId )
+{
+ return (ByteString*) List::GetObject( nId );
+}
+
+// ---------------------------------------------------------------------------------------------
+// bei Rechtecken bei Ellipsen bei Polygonen
+//
+// nRule = 0 ->Top 0 ->Top nRule = Index auf ein (Poly)Polygon Punkt
+// 1 ->Left 2 ->Left
+// 2 ->Bottom 4 ->Bottom
+// 3 ->Right 6 ->Right
+
+
+sal_uInt32 ConnectorListEntry::GetClosestPoint( const Polygon& rPoly, const ::com::sun::star::awt::Point& rPoint )
+{
+ sal_uInt32 nCount = rPoly.GetSize();
+ sal_uInt32 nClosest = nCount;
+ double fDist = (sal_uInt32)0xffffffff;
+ while( nCount-- )
+ {
+ double fDistance = hypot( rPoint.X - rPoly[ nCount ].X(), rPoint.Y - rPoly[ nCount ].Y() );
+ if ( fDistance < fDist )
+ {
+ nClosest = nCount;
+ fDist = fDistance;
+ }
+ }
+ return nClosest;
+};
+
+sal_uInt32 ConnectorListEntry::GetConnectorRule( sal_Bool bFirst )
+{
+ sal_uInt32 nRule = 0;
+
+ ::com::sun::star::uno::Any aAny;
+ ::com::sun::star::awt::Point aRefPoint( ( bFirst ) ? maPointA : maPointB );
+ ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape >
+ aXShape( ( bFirst ) ? mXConnectToA : mXConnectToB );
+
+ String aString( (::rtl::OUString)aXShape->getShapeType() );
+ ByteString aType( aString, RTL_TEXTENCODING_UTF8 );
+ aType.Erase( 0, 19 ); // "smart.com.sun.star." entfernen
+ sal_uInt16 nPos = aType.Search( "Shape" );
+ aType.Erase( nPos, 5 );
+
+ ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >
+ aPropertySet( aXShape, ::com::sun::star::uno::UNO_QUERY );
+
+ if ( aType == "drawing.PolyPolygon" || aType == "drawing.PolyLine" )
+ {
+ if ( aPropertySet.is() )
+ {
+ if ( PropValue::GetPropertyValue( aAny, aPropertySet, String( RTL_CONSTASCII_USTRINGPARAM( "PolyPolygon" ) ) ) )
+ {
+ ::com::sun::star::drawing::PointSequenceSequence* pSourcePolyPolygon =
+ (::com::sun::star::drawing::PointSequenceSequence*)aAny.getValue();
+ sal_Int32 nOuterSequenceCount = pSourcePolyPolygon->getLength();
+ ::com::sun::star::drawing::PointSequence* pOuterSequence = pSourcePolyPolygon->getArray();
+
+ if ( pOuterSequence )
+ {
+ sal_Int32 a, b, nIndex = 0;
+ sal_uInt32 nDistance = 0xffffffff;
+ for( a = 0; a < nOuterSequenceCount; a++ )
+ {
+ ::com::sun::star::drawing::PointSequence* pInnerSequence = pOuterSequence++;
+ if ( pInnerSequence )
+ {
+ ::com::sun::star::awt::Point* pArray = pInnerSequence->getArray();
+ if ( pArray )
+ {
+ for ( b = 0; b < pInnerSequence->getLength(); b++, nIndex++, pArray++ )
+ {
+ sal_uInt32 nDist = (sal_uInt32)hypot( aRefPoint.X - pArray->X, aRefPoint.Y - pArray->Y );
+ if ( nDist < nDistance )
+ {
+ nRule = nIndex;
+ nDistance = nDist;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ else if ( ( aType == "drawing.OpenBezier" ) || ( aType == "drawing.OpenFreeHand" ) || ( aType == "drawing.PolyLinePath" )
+ || ( aType == "drawing.ClosedBezier" ) || ( aType == "drawing.ClosedFreeHand" ) || ( aType == "drawing.PolyPolygonPath" ) )
+ {
+ ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >
+ aPropertySet( aXShape, ::com::sun::star::uno::UNO_QUERY );
+ if ( aPropertySet.is() )
+ {
+ if ( PropValue::GetPropertyValue( aAny, aPropertySet, String( RTL_CONSTASCII_USTRINGPARAM( "PolyPolygonBezier" ) ) ) )
+ {
+ ::com::sun::star::drawing::PolyPolygonBezierCoords* pSourcePolyPolygon =
+ (::com::sun::star::drawing::PolyPolygonBezierCoords*)aAny.getValue();
+ sal_Int32 nOuterSequenceCount = pSourcePolyPolygon->Coordinates.getLength();
+
+ // Zeiger auf innere sequences holen
+ ::com::sun::star::drawing::PointSequence* pOuterSequence =
+ pSourcePolyPolygon->Coordinates.getArray();
+ ::com::sun::star::drawing::FlagSequence* pOuterFlags =
+ pSourcePolyPolygon->Flags.getArray();
+
+ if ( pOuterSequence && pOuterFlags )
+ {
+ sal_Int32 a, b, nIndex = 0;
+ sal_uInt32 nDistance = 0xffffffff;
+
+ for ( a = 0; a < nOuterSequenceCount; a++ )
+ {
+ ::com::sun::star::drawing::PointSequence* pInnerSequence = pOuterSequence++;
+ ::com::sun::star::drawing::FlagSequence* pInnerFlags = pOuterFlags++;
+ if ( pInnerSequence && pInnerFlags )
+ {
+ ::com::sun::star::awt::Point* pArray = pInnerSequence->getArray();
+ ::com::sun::star::drawing::PolygonFlags* pFlags = pInnerFlags->getArray();
+ if ( pArray && pFlags )
+ {
+ for ( b = 0; b < pInnerSequence->getLength(); b++, pArray++ )
+ {
+ PolyFlags ePolyFlags = *( (PolyFlags*)pFlags++ );
+ if ( ePolyFlags == POLY_CONTROL )
+ continue;
+ sal_uInt32 nDist = (sal_uInt32)hypot( aRefPoint.X - pArray->X, aRefPoint.Y - pArray->Y );
+ if ( nDist < nDistance )
+ {
+ nRule = nIndex;
+ nDistance = nDist;
+ }
+ nIndex++;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ else
+ {
+ ::com::sun::star::awt::Point aPoint( aXShape->getPosition() );
+ ::com::sun::star::awt::Size aSize( aXShape->getSize() );
+
+ Rectangle aRect( Point( aPoint.X, aPoint.Y ), Size( aSize.Width, aSize.Height ) );
+ Point aCenter( aRect.Center() );
+ Polygon aPoly( 4 );
+
+ aPoly[ 0 ] = Point( aCenter.X(), aRect.Top() );
+ aPoly[ 1 ] = Point( aRect.Left(), aCenter.Y() );
+ aPoly[ 2 ] = Point( aCenter.X(), aRect.Bottom() );
+ aPoly[ 3 ] = Point( aRect.Right(), aCenter.Y() );
+
+ sal_Int32 nAngle = ( PropValue::GetPropertyValue( aAny,
+ aPropertySet, String( RTL_CONSTASCII_USTRINGPARAM( "RotateAngle" ) ) ) )
+ ? *((sal_Int32*)aAny.getValue() ) : 0;
+ if ( nAngle )
+ aPoly.Rotate( aRect.TopLeft(), ( nAngle + 5 ) / 10 );
+ nRule = GetClosestPoint( aPoly, aRefPoint );
+ }
+ if ( aType == "drawing.Ellipse" )
+ nRule <<= 1; // In PPT hat eine Ellipse 8 Möglichkeiten sich zu connecten
+
+ return nRule;
+}
+
+// ---------------------------------------------------------------------------------------------
+
+SolverContainer::~SolverContainer()
+{
+ for( void* pP = maShapeList.First(); pP; pP = maShapeList.Next() )
+ delete (ShapeListEntry*)pP;
+ for( pP = maConnectorList.First(); pP; pP = maConnectorList.Next() )
+ delete (ConnectorListEntry*)pP;
+}
+
+// ---------------------------------------------------------------------------------------------
+
+void SolverContainer::AddShape( ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > & rXShape, sal_uInt32 nId )
+{
+ maShapeList.Insert( new ShapeListEntry( rXShape, nId ), LIST_APPEND );
+}
+
+// ---------------------------------------------------------------------------------------------
+
+void SolverContainer::AddConnector( ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > & rConnector,
+ const ::com::sun::star::awt::Point& rPA,
+ ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > & rConA,
+ const ::com::sun::star::awt::Point& rPB,
+ ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > & rConB )
+{
+ maConnectorList.Insert( new ConnectorListEntry( rConnector, rPA, rConA, rPB, rConB ), LIST_APPEND );
+}
+
+// ---------------------------------------------------------------------------------------------
+
+sal_uInt32 SolverContainer::ImplGetId( const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > & rXShape )
+{
+ for ( ShapeListEntry* pPtr = (ShapeListEntry*)maShapeList.First(); pPtr; pPtr = (ShapeListEntry*)maShapeList.Next() )
+ {
+ if ( rXShape == pPtr->aXShape )
+ return ( pPtr->n_EscherId );
+ }
+ return 0;
+}
+
+// ---------------------------------------------------------------------------------------------
+
+void SolverContainer::WriteSolver( SvStream* pStrm, _EscherEx* p_EscherEx )
+{
+ sal_uInt32 nCount = maConnectorList.Count();
+ if ( nCount )
+ {
+ p_EscherEx->OpenContainer( _Escher_SolverContainer, nCount );
+
+ ConnectorRule aConnectorRule;
+ aConnectorRule.nRuleId = 2;
+ for ( ConnectorListEntry* pPtr = (ConnectorListEntry*)maConnectorList.First(); pPtr; pPtr = (ConnectorListEntry*)maConnectorList.Next() )
+ {
+ aConnectorRule.ncptiA = aConnectorRule.ncptiB = 0xffffffff;
+ aConnectorRule.nShapeC = ImplGetId( pPtr->mXConnector );
+ aConnectorRule.nShapeA = ImplGetId( pPtr->mXConnectToA );
+ aConnectorRule.nShapeB = ImplGetId( pPtr->mXConnectToB );
+
+ if ( aConnectorRule.nShapeC )
+ {
+ if ( aConnectorRule.nShapeA )
+ aConnectorRule.ncptiA = pPtr->GetConnectorRule( TRUE );
+ if ( aConnectorRule.nShapeB )
+ aConnectorRule.ncptiB = pPtr->GetConnectorRule( FALSE );
+ }
+ p_EscherEx->AddAtom( 24, _Escher_ConnectorRule, 1 );
+ *pStrm << aConnectorRule.nRuleId
+ << aConnectorRule.nShapeA
+ << aConnectorRule.nShapeB
+ << aConnectorRule.nShapeC
+ << aConnectorRule.ncptiA
+ << aConnectorRule.ncptiB;
+
+ aConnectorRule.nRuleId += 2;
+ }
+ p_EscherEx->CloseContainer(); // _Escher_SolverContainer
+ }
+}
+
+// ---------------------------------------------------------------------------------------------
+
+sal_uInt32 PPTWriter::ImplVBAInfoContainer( SvStream* pStrm )
+{
+ sal_uInt32 nSize = 28;
+ if ( pStrm )
+ {
+ *pStrm << (sal_uInt32)( 0x1f | ( EPP_VBAInfo << 16 ) )
+ << (sal_uInt32)( nSize - 8 )
+ << (sal_uInt32)( 2 | ( EPP_VBAInfoAtom << 16 ) )
+ << (sal_uInt32)12;
+ mp_EscherEx->InsertPersistOffset( EPP_Persist_VBAInfoAtom, pStrm->Tell() );
+ *pStrm << (sal_uInt32)0
+ << (sal_uInt32)0
+ << (sal_uInt32)1;
+ }
+ return nSize;
+}
+
+// ---------------------------------------------------------------------------------------------
+
+sal_uInt32 PPTWriter::ImplSlideViewInfoContainer( sal_uInt32 nInstance, SvStream* pStrm )
+{
+ sal_uInt32 nSize = 111;
+ if ( pStrm )
+ {
+ sal_uInt8 bShowGuides = 0;
+ sal_uInt8 bSnapToGrid = 1;
+ sal_uInt8 bSnapToShape = 0;
+
+ sal_Int32 nScaling = 85;
+ sal_Int32 nMasterCoordinate = 0xdda;
+ sal_Int32 nXOrigin = -780;
+ sal_Int32 nYOrigin = -84;
+
+ sal_Int32 nPosition1 = 0x870;
+ sal_Int32 nPosition2 = 0xb40;
+
+ if ( nInstance )
+ {
+ bShowGuides = 1;
+ nScaling = 0x3b;
+ nMasterCoordinate = 0xf0c;
+ nXOrigin = -1752;
+ nYOrigin = -72;
+ nPosition1 = 0xb40;
+ nPosition2 = 0x870;
+ }
+ *pStrm << (sal_uInt32)( 0xf | ( EPP_SlideViewInfo << 16 ) | ( nInstance << 4 ) )
+ << (sal_uInt32)( nSize - 8 )
+ << (sal_uInt32)( EPP_SlideViewInfoAtom << 16 ) << (sal_uInt32)3
+ << bShowGuides << bSnapToGrid << bSnapToShape
+ << (sal_uInt32)( EPP_ViewInfoAtom << 16 ) << (sal_uInt32)52
+ << nScaling << (sal_Int32)100 << nScaling << (sal_Int32)100 // scaling atom - Keeps the current scale
+ << nScaling << (sal_Int32)100 << nScaling << (sal_Int32)100 // scaling atom - Keeps the previous scale
+ << (sal_Int32)0x17ac << nMasterCoordinate// Origin - Keeps the origin in master coordinates
+ << nXOrigin << nYOrigin // Origin
+ << (sal_uInt8)1 // Bool1 varScale - Set if zoom to fit is set
+ << (sal_uInt8)0 // bool1 draftMode - Not used
+ << (sal_uInt16)0 // padword
+ << (sal_uInt32)( ( 7 << 4 ) | ( EPP_GuideAtom << 16 ) ) << (sal_uInt32)8
+ << (sal_uInt32)0 // Type of the guide. If the guide is horizontal this value is zero. If it's vertical, it's one.
+ << nPosition1 // Position of the guide in master coordinates. X coordinate if it's vertical, and Y coordinate if it's horizontal.
+ << (sal_uInt32)( ( 7 << 4 ) | ( EPP_GuideAtom << 16 ) ) << (sal_uInt32)8
+ << (sal_Int32)1 // Type of the guide. If the guide is horizontal this value is zero. If it's vertical, it's one.
+ << nPosition2; // Position of the guide in master coordinates. X coordinate if it's vertical, and Y coordinate if it's horizontal.
+ }
+ return nSize;
+}
+
+// ---------------------------------------------------------------------------------------------
+
+sal_uInt32 PPTWriter::ImplOutlineViewInfoContainer( SvStream* pStrm )
+{
+ sal_uInt32 nSize = 68;
+ if ( pStrm )
+ {
+ *pStrm << (sal_uInt32)( 0xf | ( EPP_OutlineViewInfo << 16 ) ) << (sal_uInt32)( nSize - 8 )
+ << (sal_uInt32)( EPP_ViewInfoAtom << 16 ) << (sal_uInt32)52
+ << (sal_Int32)170 << (sal_Int32)200 << (sal_Int32)170 << (sal_Int32)200 // scaling atom - Keeps the current scale
+ << (sal_Int32)170 << (sal_Int32)200 << (sal_Int32)170 << (sal_Int32)200 // scaling atom - Keeps the previous scale
+ << (sal_Int32)0x17ac << 0xdda // Origin - Keeps the origin in master coordinates
+ << (sal_Int32)-780 << (sal_Int32)-84 // Origin
+ << (sal_uInt8)1 // bool1 varScale - Set if zoom to fit is set
+ << (sal_uInt8)0 // bool1 draftMode - Not used
+ << (sal_uInt16)0; // padword
+ }
+ return nSize;
+}
+
+// ---------------------------------------------------------------------------------------------
+
+sal_uInt32 PPTWriter::ImplProgBinaryTag( SvStream* pStrm )
+{
+ sal_uInt32 nPictureStreamSize, nOutlineStreamSize, nSize = 8;
+
+ nPictureStreamSize = aBuExPictureStream.Tell();
+ if ( nPictureStreamSize )
+ nSize += nPictureStreamSize + 8;
+
+ nOutlineStreamSize = aBuExOutlineStream.Tell();
+ if ( nOutlineStreamSize )
+ nSize += nOutlineStreamSize + 8;
+
+ if ( pStrm )
+ {
+ *pStrm << (sal_uInt32)( EPP_BinaryTagData << 16 ) << (sal_uInt32)( nSize - 8 );
+ if ( nPictureStreamSize )
+ {
+ *pStrm << (sal_uInt32)( 0xf | ( EPP_PST_ExtendedBuGraContainer << 16 ) ) << nPictureStreamSize;
+ pStrm->Write( aBuExPictureStream.GetData(), nPictureStreamSize );
+ }
+ if ( nOutlineStreamSize )
+ {
+ *pStrm << (sal_uInt32)( 0xf | ( EPP_PST_ExtendedPresRuleContainer << 16 ) ) << nOutlineStreamSize;
+ pStrm->Write( aBuExOutlineStream.GetData(), nOutlineStreamSize );
+ }
+ }
+ return nSize;
+}
+
+// ---------------------------------------------------------------------------------------------
+
+sal_uInt32 PPTWriter::ImplProgBinaryTagContainer( SvStream* pStrm, SvMemoryStream* pBinTagStrm )
+{
+ sal_uInt32 nSize = 8 + 8 + 14;
+ if ( pStrm )
+ {
+ *pStrm << (sal_uInt32)( 0xf | ( EPP_ProgBinaryTag << 16 ) ) << (sal_uInt32)0
+ << (sal_uInt32)( EPP_CString << 16 ) << (sal_uInt32)14
+ << (sal_uInt32)0x5f005f << (sal_uInt32)0x50005f
+ << (sal_uInt32)0x540050 << (sal_uInt16)0x39;
+ }
+ if ( pBinTagStrm )
+ {
+ sal_uInt32 nLen = pBinTagStrm->Tell();
+ nSize += nLen + 8;
+ *pStrm << (sal_uInt32)( EPP_BinaryTagData << 16 ) << nLen;
+ pStrm->Write( pBinTagStrm->GetData(), nLen );
+ }
+ else
+ nSize += ImplProgBinaryTag( pStrm );
+
+ if ( pStrm )
+ {
+ pStrm->SeekRel( - ( nSize - 4 ) );
+ *pStrm << (sal_uInt32)( nSize - 8 );
+ pStrm->SeekRel( nSize - 8 );
+ }
+ return nSize;
+}
+
+// ---------------------------------------------------------------------------------------------
+
+sal_uInt32 PPTWriter::ImplProgTagContainer( SvStream* pStrm, SvMemoryStream* pBinTagStrm )
+{
+ sal_uInt32 nSize = 0;
+ if ( aBuExPictureStream.Tell() || aBuExOutlineStream.Tell() || pBinTagStrm )
+ {
+ nSize = 8;
+ if ( pStrm )
+ {
+ *pStrm << (sal_uInt32)( 0xf | ( EPP_ProgTags << 16 ) ) << (sal_uInt32)0;
+ }
+ nSize += ImplProgBinaryTagContainer( pStrm, pBinTagStrm );
+ if ( pStrm )
+ {
+ pStrm->SeekRel( - ( nSize - 4 ) );
+ *pStrm << (sal_uInt32)( nSize - 8 );
+ pStrm->SeekRel( nSize - 8 );
+ }
+ }
+ return nSize;
+}
+
+// ---------------------------------------------------------------------------------------------
+
+sal_uInt32 PPTWriter::ImplDocumentListContainer( SvStream* pStrm )
+{
+ sal_uInt32 nSize = 8;
+ if ( pStrm )
+ {
+ *pStrm << (sal_uInt32)( ( EPP_List << 16 ) | 0xf ) << (sal_uInt32)0;
+ }
+
+ nSize += ImplVBAInfoContainer( pStrm );
+ nSize += ImplSlideViewInfoContainer( 0, pStrm );
+ nSize += ImplOutlineViewInfoContainer( pStrm );
+ nSize += ImplSlideViewInfoContainer( 1, pStrm );
+ nSize += ImplProgTagContainer( pStrm );
+
+ if ( pStrm )
+ {
+ pStrm->SeekRel( - ( nSize - 4 ) );
+ *pStrm << (sal_uInt32)( nSize - 8 );
+ pStrm->SeekRel( nSize - 8 );
+ }
+ return nSize;
+}
+
+// ---------------------------------------------------------------------------------------------
+
+sal_uInt32 PPTWriter::ImplMasterSlideListContainer( SvStream* pStrm )
+{
+ sal_uInt32 i, nSize = 28 * mnMasterPages + 8;
+ if ( pStrm )
+ {
+ *pStrm << (sal_uInt32)( 0x1f | ( EPP_SlideListWithText << 16 ) ) << (sal_uInt32)( nSize - 8 );
+
+ for ( i = 0; i < mnMasterPages; i++ )
+ {
+ *pStrm << (sal_uInt32)( EPP_SlidePersistAtom << 16 ) << (sal_uInt32)20;
+ mp_EscherEx->InsertPersistOffset( EPP_MAINMASTER_PERSIST_KEY | i, pStrm->Tell() );
+ *pStrm << (sal_uInt32)0 // psrReference - logical reference to the slide persist object ( EPP_MAINMASTER_PERSIST_KEY )
+ << (sal_uInt32)0 // flags - only bit 3 used, if set then slide contains shapes other than placeholders
+ << (sal_Int32)0 // numberTexts - number of placeholder texts stored with the persist object. Allows to display outline view without loading the slide persist objects
+ << (sal_Int32)( 0x80000000 | i ) // slideId - Unique slide identifier, used for OLE link monikers for example
+ << (sal_uInt32)0; // reserved, usualy 0
+ }
+ }
+ return nSize;
+}
+
+// ---------------------------------------------------------------------------------------------
+
+sal_Bool PPTWriter::ImplCloseDocument()
+{
+ sal_uInt32 nOfs = mp_EscherEx->PtGetOffsetByID( EPP_Persist_Document );
+ if ( nOfs )
+ {
+ mp_EscherEx->PtReplaceOrInsert( EPP_Persist_CurrentPos, mpStrm->Tell() );
+ mpStrm->Seek( nOfs );
+
+ mpExEmbed->Seek( STREAM_SEEK_TO_END );
+ sal_uInt32 nExEmbedSize = mpExEmbed->Tell();
+
+ // nEnviroment : Gesamtgroesse des Environment Containers
+ sal_uInt32 nEnvironment = maFontCollection.GetCount() * 76 // 68 bytes pro Fontenityatom und je 8 Bytes fuer die Header
+ + 8 // 1 FontCollection Container
+ + 20 // SrKinsoku Container
+ + 18 // 1 TxSiStyleAtom
+ + 118; // 1 TxMasterStyleAtom;
+
+ sal_uInt32 nBytesToInsert = nEnvironment + 8;
+
+ if ( nExEmbedSize )
+ nBytesToInsert += nExEmbedSize + 8 + 12;
+
+ // die Gesamtgroesse des evntl. spaeter folgenden Sound Containers ermitteln
+ sal_uInt32 nSound = 0;
+ sal_uInt32 nValidSoundCount = 0;
+ if ( maSoundCollection.GetCount() )
+ {
+ for ( sal_uInt32 i = 0; i < maSoundCollection.GetCount(); i++ )
+ {
+ const ByteString* pSoundFile = maSoundCollection.GetById( i );
+ if ( pSoundFile )
+ {
+ USHORT nStringLen = pSoundFile->Len();
+ if ( nStringLen )
+ {
+ try
+ {
+ ::ucb::Content aCnt( String( *pSoundFile, RTL_TEXTENCODING_UTF8 ),
+ ::com::sun::star::uno::Reference< ::com::sun::star::ucb::XCommandEnvironment >() );
+ sal_Int64 nVal;
+
+ ::cppu::convertPropertyValue( nVal, aCnt.getPropertyValue( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "size" ) ) ) );
+ sal_uInt32 nSizeOfSound = (sal_uInt32) nVal;
+
+ if ( nSizeOfSound )
+ {
+ nSound += 2 * nStringLen + 8; // Name Of Sound ( instance 0 )
+ if ( nStringLen > 4 )
+ {
+ if ( (sal_Char)'.' == pSoundFile->GetChar( nStringLen - 4 ) )
+ nSound += 16; // Type Of Sound ( instance 1 )
+ }
+ String aString = UniString::CreateFromInt32( i + 1 );
+ nSound += 2 * aString.Len() + 8;// reference Id ( instance 2 )
+ nSound += nSizeOfSound + 8; // SoundData Atom;
+ nValidSoundCount++;
+ }
+ }
+ catch( ... )
+ {
+ }
+ }
+ }
+ }
+ if ( nValidSoundCount )
+ {
+ nSound += 12 + nValidSoundCount * 8; // Size der SoundContainer + SoundCollAtom
+ nBytesToInsert += ( nSound + 8 ); // Size der SoundCollection Container + nSound
+ }
+ }
+ nBytesToInsert += mp_EscherEx->DrawingGroupContainerSize();
+ nBytesToInsert += ImplMasterSlideListContainer( NULL );
+ nBytesToInsert += ImplDocumentListContainer( NULL );
+
+ // nBytes im Stream einfuegen, und abhaengige Container anpassen
+ mp_EscherEx->InsertAtCurrentPos( nBytesToInsert, TRUE );
+
+ // CREATE HYPERLINK CONTAINER
+ if ( nExEmbedSize )
+ {
+ *mpStrm << (sal_uInt16)0xf
+ << (sal_uInt16)EPP_ExObjList
+ << (sal_uInt32)( nExEmbedSize + 12 )
+ << (sal_uInt16)0
+ << (sal_uInt16)EPP_ExObjListAtom
+ << (sal_uInt32)4
+ << (sal_uInt32)mnExEmbed;
+ mp_EscherEx->InsertPersistOffset( EPP_Persist_ExObj, mpStrm->Tell() );
+ mpStrm->Write( mpExEmbed->GetData(), nExEmbedSize );
+ }
+
+ // CREATE ENVIRONMENT
+ *mpStrm << (sal_uInt16)0xf << (sal_uInt16)EPP_Environment << (sal_uInt32)nEnvironment;
+
+ // Open Container ( EPP_SrKinsoku )
+ *mpStrm << (sal_uInt16)0x2f << (sal_uInt16)EPP_SrKinsoku << (sal_uInt32)12;
+ mp_EscherEx->AddAtom( 4, EPP_SrKinsokuAtom, 0, 3 );
+ *mpStrm << (sal_Int32)0; // SrKinsoku Level 0
+
+ // Open Container ( EPP_FontCollection )
+ *mpStrm << (sal_uInt16)0xf << (sal_uInt16)EPP_FontCollection << (sal_uInt32)maFontCollection.GetCount() * 76;
+
+ for ( sal_uInt32 i = 0; i < maFontCollection.GetCount(); i++ )
+ {
+ mp_EscherEx->AddAtom( 68, EPP_FontEnityAtom, 0, i );
+ const ByteString* pEntry = maFontCollection.GetById( i ); // the following byte/unicode conversion
+ sal_uInt32 nFontLen = pEntry->Len(); // is to optimize in future
+ for ( sal_uInt32 n = 0; n < 68; n++ )
+ {
+ char nByte = 0;
+ if ( ! ( n & 1 ) )
+ {
+ if ( ( n < 62 ) && ( ( n >> 1 ) < nFontLen ) )
+ {
+ nByte = pEntry->GetChar( n >> 1 );
+ }
+ }
+ *mpStrm << nByte;
+ }
+ }
+ mp_EscherEx->AddAtom( 10, EPP_TxSIStyleAtom );
+ *mpStrm << (sal_uInt32)7 // ?
+ << (sal_Int16)2 // ?
+ << (sal_uInt8)9 // ?
+ << (sal_uInt8)8 // ?
+ << (sal_Int16)0; // ?
+ mp_EscherEx->AddAtom( 110, EPP_TxMasterStyleAtom, 0, 4 );
+ static sal_uInt8 aTxSuStyleAtom[ 110 ] =
+ {
+ 0x05, 0x00, 0xff, 0xfd, 0x3f, 0x00, 0x00, 0x00, 0x22, 0x20, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x02,
+ 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xff, 0xff, 0xef, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x18, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x05,
+ 0x00, 0x00, 0x20, 0x01, 0x20, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x40, 0x02,
+ 0x40, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x60, 0x03, 0x60, 0x03, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x80, 0x04, 0x80, 0x04, 0x00, 0x00, 0x00, 0x00
+ };
+ mpStrm->Write( &aTxSuStyleAtom, 110 );
+
+ if ( nValidSoundCount )
+ {
+ sal_uInt8* pBuf = new sal_uInt8[ 0x10000 ]; // 64 kB Buffer
+
+ // Create Sound Container
+ *mpStrm << (sal_uInt16)0xf << (sal_uInt16)EPP_SoundCollection << (sal_uInt32)nSound;
+
+ // Create SoundCollAtom ( Referenz auf die naechste Freie SoundId );
+ mp_EscherEx->AddAtom( 4, EPP_SoundCollAtom );
+ *mpStrm << (sal_uInt32)( maSoundCollection.GetCount() );
+
+ for ( sal_uInt32 i = 0; i < maSoundCollection.GetCount(); i++ )
+ {
+ const ByteString* pSoundFile = maSoundCollection.GetById( i );
+ if ( pSoundFile )
+ {
+ USHORT nStringLen = pSoundFile->Len();
+ if ( nStringLen )
+ {
+ try
+ {
+ ::ucb::Content aCnt( String( *pSoundFile, RTL_TEXTENCODING_UTF8 ),
+ ::com::sun::star::uno::Reference< ::com::sun::star::ucb::XCommandEnvironment >() );
+ sal_Int64 nVal;
+
+ ::cppu::convertPropertyValue( nVal, aCnt.getPropertyValue( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "size" ) ) ) );
+ sal_uInt32 nSizeOfSound = (sal_uInt32) nVal;
+
+ if ( nSizeOfSound )
+ {
+ *mpStrm << (sal_uInt16)0xf << (sal_uInt16)EPP_Sound;
+ sal_uInt32 nOldSoundPos = mpStrm->Tell();
+ *mpStrm << (sal_uInt32)0;
+
+ mp_EscherEx->AddAtom( nStringLen * 2, EPP_CString ); // Name Of Sound ( instance 0 )
+ for ( USHORT k = 0; k < nStringLen; k++ )
+ *mpStrm << pSoundFile->GetChar( k ) << (sal_uInt8)0;
+
+ if ( nStringLen > 4 )
+ {
+ if ( (sal_Char)'.' == pSoundFile->GetChar( nStringLen - 4 ) )
+ {
+ mp_EscherEx->AddAtom( 8, EPP_CString, 0, 1 ); // Type Of Sound ( instance 1 )
+ for ( k = nStringLen - 4; k < nStringLen; k++ )
+ *mpStrm << pSoundFile->GetChar( k ) << (sal_uInt8)0;
+ }
+ }
+ ByteString aString( i + 1 );
+ mp_EscherEx->AddAtom( aString.Len() * 2, EPP_CString, 0, 2 );
+ for ( k = 0; k < aString.Len(); k++ )
+ *mpStrm << aString.GetChar( k ) << (sal_uInt8)0;
+ mp_EscherEx->AddAtom( nSizeOfSound, EPP_SoundData );
+
+ sal_uInt32 nBytesLeft = nSizeOfSound;
+ SvFileStream aSourceFile( String( *pSoundFile, RTL_TEXTENCODING_UTF8 ), STREAM_READ );
+ while ( nBytesLeft )
+ {
+ sal_uInt32 nToDo = ( nBytesLeft > 0x10000 ) ? 0x10000 : nBytesLeft;
+ aSourceFile.Read( pBuf, nToDo );
+ mpStrm->Write( pBuf, nToDo );
+ nBytesLeft -= nToDo;
+ }
+ sal_uInt32 nCurSoundPos = mpStrm->Tell();
+ mpStrm->Seek( nOldSoundPos );
+ *mpStrm << (sal_uInt32)( nCurSoundPos - nOldSoundPos - 4 );
+ mpStrm->Seek( nCurSoundPos );
+ }
+ }
+ catch( ... )
+ {
+ }
+ }
+ }
+ }
+ delete pBuf;
+ }
+
+ mp_EscherEx->WriteDrawingGroupContainer( *mpStrm );
+ ImplMasterSlideListContainer( mpStrm );
+ ImplDocumentListContainer( mpStrm );
+
+ sal_uInt32 nOldPos = mp_EscherEx->PtGetOffsetByID( EPP_Persist_CurrentPos );
+ if ( nOldPos )
+ {
+ mpStrm->Seek( nOldPos );
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+
+// ---------------------------------------------------------------------------------------------
+
+sal_Bool PropValue::GetPropertyValue( ::com::sun::star::uno::Any& rAny,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > & aXPropSet,
+ const String& rString )
+{
+ sal_Bool bRetValue = TRUE;
+ TRY
+ {
+ rAny = aXPropSet->getPropertyValue( rString );
+ if ( !rAny.hasValue() )
+ bRetValue = FALSE;
+ }
+ CATCH_ALL()
+ {
+ bRetValue = FALSE;
+ }
+ END_CATCH;
+
+ return bRetValue;
+}
+
+// ---------------------------------------------------------------------------------------------
+
+sal_Bool PropValue::ImplGetPropertyValue( const String& rString )
+{
+ return GetPropertyValue( mAny, mXPropSet, rString );
+}
+
+// ---------------------------------------------------------------------------------------------
+
+sal_Bool PropValue::ImplGetPropertyValue( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > & aXPropSet, const String& rString )
+{
+ return GetPropertyValue( mAny, aXPropSet, rString );
+}
+
+// ---------------------------------------------------------------------------------------------
+
+sal_Bool PropStateValue::ImplGetPropertyValue( const String& rString, sal_Bool bGetPropertyState )
+{
+ ePropState = ::com::sun::star::beans::PropertyState_AMBIGUOUS_VALUE;
+ sal_Bool bRetValue = TRUE;
+ TRY
+ {
+ mAny = mXPropSet->getPropertyValue( rString );
+ if ( !mAny.hasValue() )
+ bRetValue = FALSE;
+ else if ( bGetPropertyState )
+ ePropState = mXPropState->getPropertyState( rString );
+ else
+ ePropState = ::com::sun::star::beans::PropertyState_DIRECT_VALUE;
+ }
+ CATCH_ALL()
+ {
+ bRetValue = FALSE;
+ }
+ END_CATCH;
+
+ return bRetValue;
+}
+
+// ---------------------------------------------------------------------------------------------
+
+sal_Bool PPTWriter::ImplInitSOIface()
+{
+ while( TRUE )
+ {
+ mXDrawPagesSupplier = ::com::sun::star::uno::Reference<
+ ::com::sun::star::drawing::XDrawPagesSupplier >
+ ( mXModel, ::com::sun::star::uno::UNO_QUERY );
+ if ( !mXDrawPagesSupplier.is() )
+ break;
+
+ mXMasterPagesSupplier = ::com::sun::star::uno::Reference<
+ ::com::sun::star::drawing::XMasterPagesSupplier >
+ ( mXModel, ::com::sun::star::uno::UNO_QUERY );
+ if ( !mXMasterPagesSupplier.is() )
+ break;
+ mXDrawPages = mXMasterPagesSupplier->getMasterPages();
+ if ( !mXDrawPages.is() )
+ break;
+ mnMasterPages = mXDrawPages->getCount();
+ mXDrawPages = mXDrawPagesSupplier->getDrawPages();
+ if( !mXDrawPages.is() )
+ break;
+ mnPages = mXDrawPages->getCount();
+ if ( !ImplGetPageByIndex( 0, NORMAL ) )
+ break;
+
+ return TRUE;
+ }
+ return FALSE;
+}
+
+// ---------------------------------------------------------------------------------------------
+
+sal_Bool PPTWriter::ImplGetPageByIndex( sal_uInt32 nIndex, PageType ePageType )
+{
+ while( TRUE )
+ {
+ if ( ePageType != meLatestPageType )
+ {
+ switch( ePageType )
+ {
+ case NORMAL :
+ case NOTICE :
+ {
+ mXDrawPages = mXDrawPagesSupplier->getDrawPages();
+ if( !mXDrawPages.is() )
+ return FALSE;
+ }
+ break;
+
+ case MASTER :
+ {
+ mXDrawPages = mXMasterPagesSupplier->getMasterPages();
+ if( !mXDrawPages.is() )
+ return FALSE;
+ }
+ break;
+ }
+ meLatestPageType = ePageType;
+ }
+ ::com::sun::star::uno::Any aAny( mXDrawPages->getByIndex( nIndex ) );
+ aAny >>= mXDrawPage;
+ if ( !mXDrawPage.is() )
+ break;
+ if ( ePageType == NOTICE )
+ {
+ ::com::sun::star::uno::Reference< ::com::sun::star::presentation::XPresentationPage >
+ aXPresentationPage( mXDrawPage, ::com::sun::star::uno::UNO_QUERY );
+ if ( !aXPresentationPage.is() )
+ break;
+ mXDrawPage = aXPresentationPage->getNotesPage();
+ if ( !mXDrawPage.is() )
+ break;
+ }
+ mXPagePropSet = ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >
+ ( mXDrawPage, ::com::sun::star::uno::UNO_QUERY );
+ if ( !mXPagePropSet.is() )
+ break;
+
+ mXShapes = ::com::sun::star::uno::Reference<
+ ::com::sun::star::drawing::XShapes >
+ ( mXDrawPage, ::com::sun::star::uno::UNO_QUERY );
+ if ( !mXShapes.is() )
+ break;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+// ---------------------------------------------------------------------------------------------
+
+sal_Bool PPTWriter::ImplGetShapeByIndex( sal_uInt32 nIndex, sal_Bool bGroup )
+{
+ while(TRUE)
+ {
+ if ( ( bGroup == FALSE ) || ( GetCurrentGroupLevel() == 0 ) )
+ {
+ ::com::sun::star::uno::Any aAny( mXShapes->getByIndex( nIndex ) );
+ aAny >>= mXShape;
+ }
+ else
+ {
+ ::com::sun::star::uno::Any aAny( GetCurrentGroupAccess()->getByIndex( GetCurrentGroupIndex() ) );
+ aAny >>= mXShape;
+ }
+ if ( !mXShape.is() )
+ break;
+
+ ::com::sun::star::uno::Any aAny( mXShape->queryInterface( ::getCppuType( (const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >*) 0 ) ));
+ aAny >>= mXPropSet;
+
+ if ( !mXPropSet.is() )
+ break;
+ maPosition = ImplMapPoint( mXShape->getPosition() );
+ maSize = ImplMapSize( mXShape->getSize() );
+ maRect = Rectangle( Point( maPosition.X, maPosition.Y ), Size( maSize.Width, maSize.Height ) );
+ mType = ByteString( String( mXShape->getShapeType() ), RTL_TEXTENCODING_UTF8 );
+ mType.Erase( 0, 13 ); // "com.sun.star." entfernen
+ sal_uInt16 nPos = mType.Search( (const char*)"Shape" );
+ mType.Erase( nPos, 5 );
+
+ mbPresObj = mbEmptyPresObj = FALSE;
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "IsPresentationObject" ) ) ) )
+ mAny >>= mbPresObj;
+
+ if ( mbPresObj && ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "IsEmptyPresentationObject" ) ) ) )
+ mAny >>= mbEmptyPresObj;
+
+ mnAngle = ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "RotateAngle" ) ) ) )
+ ? *( (sal_Int32*)mAny.getValue() ) : 0;
+
+ return TRUE;
+ }
+ return FALSE;
+}
+
+// ---------------------------------------------------------------------------------------------
+
+void PPTWriter::ImplWriteLineBundle( sal_Bool bEdge )
+{
+ sal_uInt32 nLineFlags = 0x80008;
+ _Escher_LineEnd eLineEnd = _Escher_LineArrowEnd;
+
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "LineStart" ) ) ) )
+ {
+ ::com::sun::star::drawing::PointSequence* pPolyPolygon = (::com::sun::star::drawing::PointSequence*)mAny.getValue();
+ sal_Int32 nSequenceCount = pPolyPolygon->getLength();
+ if ( nSequenceCount )
+ {
+ // Zeiger auf innere sequences holen
+ ::com::sun::star::awt::Point* pSequence = pPolyPolygon->getArray();
+ if ( pSequence )
+ {
+ switch ( nSequenceCount )
+ {
+ case 0x4 :
+ {
+ switch( pSequence->X )
+ {
+ case 0 : eLineEnd = _Escher_LineArrowDiamondEnd; break;
+ case 0x529 : eLineEnd = _Escher_LineArrowStealthEnd; break;
+ }
+ }
+ break;
+ case 0x7 : eLineEnd = _Escher_LineArrowDiamondEnd; break;
+ case 0xa : eLineEnd = _Escher_LineArrowStealthEnd; break;
+ case 0xd :
+ {
+ switch ( pSequence->X )
+ {
+ case 0 : eLineEnd = _Escher_LineArrowDiamondEnd; break;
+ case 0x64 : eLineEnd = _Escher_LineArrowOvalEnd; break;
+ case 0x87c : eLineEnd = _Escher_LineArrowStealthEnd; break;
+ }
+ }
+ }
+ mp_EscherEx->AddOpt( _Escher_Prop_lineStartArrowLength, 2 );
+ mp_EscherEx->AddOpt( _Escher_Prop_lineStartArrowWidth, 2 );
+ mp_EscherEx->AddOpt( _Escher_Prop_lineStartArrowhead, eLineEnd );
+ nLineFlags |= 0x100010;
+ }
+ }
+ }
+
+ eLineEnd = _Escher_LineArrowEnd;
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "LineEnd" ) ) ) )
+ {
+ ::com::sun::star::drawing::PointSequence* pPolyPolygon = (::com::sun::star::drawing::PointSequence*)mAny.getValue();
+ sal_Int32 nSequenceCount = pPolyPolygon->getLength();
+ if ( nSequenceCount )
+ {
+ // Zeiger auf innere sequences holen
+ ::com::sun::star::awt::Point* pSequence = pPolyPolygon->getArray();
+ if ( pSequence )
+ {
+ switch ( nSequenceCount )
+ {
+ case 0x4 :
+ {
+ switch( pSequence->X )
+ {
+ case 0 : eLineEnd = _Escher_LineArrowDiamondEnd; break;
+ case 0x529 : eLineEnd = _Escher_LineArrowStealthEnd; break;
+ }
+ }
+ break;
+ case 0x7 : eLineEnd = _Escher_LineArrowDiamondEnd; break;
+ case 0xa : eLineEnd = _Escher_LineArrowStealthEnd; break;
+ case 0xd :
+ {
+ switch ( pSequence->X )
+ {
+ case 0 : eLineEnd = _Escher_LineArrowDiamondEnd; break;
+ case 0x64 : eLineEnd = _Escher_LineArrowOvalEnd; break;
+ case 0x87c : eLineEnd = _Escher_LineArrowStealthEnd; break;
+ }
+ }
+ }
+ mp_EscherEx->AddOpt( _Escher_Prop_lineEndArrowLength, 2 );
+ mp_EscherEx->AddOpt( _Escher_Prop_lineEndArrowWidth, 2 );
+ mp_EscherEx->AddOpt( _Escher_Prop_lineEndArrowhead, eLineEnd );
+ nLineFlags |= 0x100010;
+ }
+ }
+ }
+
+ mnShadow |= 1;
+
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "LineStyle" ) ) ) )
+ {
+ ::com::sun::star::drawing::LineStyle aLS;
+ mAny >>= aLS;
+ switch ( aLS )
+ {
+ case ::com::sun::star::drawing::LineStyle_NONE :
+ {
+ mp_EscherEx->AddOpt( _Escher_Prop_fNoLineDrawDash, 0x90000 ); // 80000
+ mnShadow ^= 1;
+ }
+ break;
+
+ case ::com::sun::star::drawing::LineStyle_DASH :
+ {
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "LineDash" ) ) ) )
+ {
+ _Escher_LineDashing eDash = _Escher_LineSolid;
+ ::com::sun::star::drawing::LineDash* pLineDash = (::com::sun::star::drawing::LineDash*)mAny.getValue();
+ sal_uInt32 nDistance = pLineDash->Distance << 1;
+ switch ( pLineDash->Style )
+ {
+ case ::com::sun::star::drawing::DashStyle_ROUND :
+ case ::com::sun::star::drawing::DashStyle_ROUNDRELATIVE :
+ mp_EscherEx->AddOpt( _Escher_Prop_lineEndCapStyle, 0 ); // Style Round setzen
+ break;
+ }
+ if ( ((!(pLineDash->Dots )) || (!(pLineDash->Dashes )) ) || ( pLineDash->DotLen == pLineDash->DashLen ) )
+ {
+ sal_uInt32 nLen = pLineDash->DotLen;
+ if ( pLineDash->Dashes )
+ nLen = pLineDash->DashLen;
+
+ if ( nLen >= nDistance )
+ eDash = _Escher_LineLongDashGEL;
+ else if ( pLineDash->Dots )
+ eDash = _Escher_LineDotSys;
+ else
+ eDash = _Escher_LineDashGEL;
+ }
+ else // X Y
+ {
+ if ( pLineDash->Dots != pLineDash->Dashes )
+ {
+ if ( ( pLineDash->DashLen > nDistance ) || ( pLineDash->DotLen > nDistance ) )
+ eDash = _Escher_LineLongDashDotDotGEL;
+ else
+ eDash = _Escher_LineDashDotDotSys;
+ }
+ else // X Y Y
+ {
+ if ( ( pLineDash->DashLen > nDistance ) || ( pLineDash->DotLen > nDistance ) )
+ eDash = _Escher_LineLongDashDotGEL;
+ else
+ eDash = _Escher_LineDashDotGEL;
+
+ }
+ }
+ mp_EscherEx->AddOpt( _Escher_Prop_lineDashing, eDash );
+ }
+ }
+ case ::com::sun::star::drawing::LineStyle_SOLID :
+ default:
+ {
+ mp_EscherEx->AddOpt( _Escher_Prop_fNoLineDrawDash, nLineFlags );
+ }
+ break;
+ }
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "LineColor" ) ) ) )
+ {
+ sal_uInt32 nLineColor = mp_EscherEx->GetColor( *((sal_uInt32*)mAny.getValue()) );
+ mp_EscherEx->AddOpt( _Escher_Prop_lineColor, nLineColor );
+ mp_EscherEx->AddOpt( _Escher_Prop_lineBackColor, nLineColor ^ 0xffffff );
+ }
+ }
+
+ sal_uInt32 nLineSize = ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "LineWidth" ) ) ) )
+ ? *((sal_uInt32*)mAny.getValue() ) : 0;
+
+ if ( nLineSize > 1 )
+ mp_EscherEx->AddOpt( _Escher_Prop_lineWidth, nLineSize * 360 ); // 100TH MM -> PT , 1PT = 12700 EMU
+ if ( bEdge == FALSE )
+ {
+ mp_EscherEx->AddOpt( _Escher_Prop_fFillOK, 0x1001 );
+ mp_EscherEx->AddOpt( _Escher_Prop_fNoFillHitTest, 0x100000 );
+ }
+}
+
+// -----------------------------------------------------------------------
+
+void PPTWriter::ImplWriteFillBundle( sal_Bool bEdge )
+{
+ mp_EscherEx->AddOpt( _Escher_Prop_WrapText, _Escher_WrapNone );
+ mp_EscherEx->AddOpt( _Escher_Prop_AnchorText, _Escher_AnchorMiddle );
+
+ sal_uInt32 nFillBackColor = 0;
+ mnShadow |= 2;
+
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "FillStyle" ) ) ) )
+ {
+ ::com::sun::star::drawing::FillStyle aFS;
+ mAny >>= aFS;
+ switch( aFS )
+ {
+ case ::com::sun::star::drawing::FillStyle_GRADIENT :
+ {
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "FillGradient" ) ) ) )
+ mp_EscherEx->WriteGradient( (::com::sun::star::awt::Gradient*)mAny.getValue() );
+ mp_EscherEx->AddOpt( _Escher_Prop_fNoFillHitTest, 0x140014 );
+ }
+ break;
+
+ case ::com::sun::star::drawing::FillStyle_BITMAP :
+ {
+ ImplGetGraphic( mXPropSet, String( RTL_CONSTASCII_USTRINGPARAM( "FillBitmap" ) ), TRUE );
+ mp_EscherEx->AddOpt( _Escher_Prop_fNoFillHitTest, 0x140014 );
+ mp_EscherEx->AddOpt( _Escher_Prop_fillBackColor, nFillBackColor );
+ }
+ break;
+ case ::com::sun::star::drawing::FillStyle_HATCH :
+ case ::com::sun::star::drawing::FillStyle_SOLID :
+ default:
+ {
+ sal_uInt16 nTransparency = ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "FillTransparence" ) ) ) )
+ ? *((sal_Int16*)mAny.getValue()) : NULL;
+ if ( nTransparency != 100 )
+ {
+ if ( nTransparency ) // opacity
+ mp_EscherEx->AddOpt( _Escher_Prop_fillOpacity, ( ( 100 - nTransparency ) << 16 ) / 100 );
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "FillColor" ) ) ) )
+ {
+ sal_uInt32 nFillColor = mp_EscherEx->GetColor( *((sal_uInt32*)mAny.getValue()) );
+ nFillBackColor = nFillColor ^ 0xffffff;
+ mp_EscherEx->AddOpt( _Escher_Prop_fillColor, nFillColor );
+ }
+ mp_EscherEx->AddOpt( _Escher_Prop_fNoFillHitTest, 0x100010 );
+ mp_EscherEx->AddOpt( _Escher_Prop_fillBackColor, nFillBackColor );
+ break;
+ }
+ }
+ case ::com::sun::star::drawing::FillStyle_NONE :
+ {
+ mp_EscherEx->AddOpt( _Escher_Prop_fNoFillHitTest, 0x100000 );
+ mnShadow ^= 2;
+ }
+ break;
+ }
+ }
+ ImplWriteLineBundle( bEdge );
+}
+
+// -----------------------------------------------------------------------
+
+void PPTWriter::ImplWriteTextBundle( sal_Bool bDisableAutoGrowHeight )
+{
+ if ( ImplGetText() )
+ {
+ _Escher_AnchorText eAnchor = _Escher_AnchorTop;
+ sal_uInt32 nTextAttr = 0x40004; // rotate text with shape
+
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "TextVerticalAdjust" ) ) ) )
+ {
+ ::com::sun::star::style::VerticalAlignment aVA;
+ mAny >>= aVA;
+ switch ( aVA )
+ {
+ case ::com::sun::star::style::VerticalAlignment_MIDDLE :
+ eAnchor = _Escher_AnchorMiddle;
+ break;
+
+ case ::com::sun::star::style::VerticalAlignment_BOTTOM :
+ eAnchor = _Escher_AnchorBottom;
+ break;
+
+ default :
+ case ::com::sun::star::style::VerticalAlignment_TOP :
+ eAnchor = _Escher_AnchorTop;
+ break;
+ }
+ }
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "TextHorizontalAdjust" ) ) ) )
+ {
+ ::com::sun::star::drawing::TextAdjust aTA;
+ mAny >>= aTA;
+ switch ( aTA )
+ {
+ case ::com::sun::star::drawing::TextAdjust_CENTER :
+ {
+ switch( eAnchor )
+ {
+ case _Escher_AnchorMiddle :
+ eAnchor = _Escher_AnchorMiddleCentered;
+ break;
+ case _Escher_AnchorBottom :
+ eAnchor = _Escher_AnchorBottomCentered;
+ break;
+ case _Escher_AnchorTop :
+ eAnchor = _Escher_AnchorTopCentered;
+ break;
+ }
+ }
+ break;
+ case ::com::sun::star::drawing::TextAdjust_RIGHT :
+ case ::com::sun::star::drawing::TextAdjust_LEFT :
+ case ::com::sun::star::drawing::TextAdjust_STRETCH :
+ case ::com::sun::star::drawing::TextAdjust_BLOCK :
+ break;
+ }
+ }
+/*
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "TextFitToSize" ) ) ) )
+ {
+ if ( *( (sal_Int16*)mAny.get() ) == 1 )
+ {
+ nTextAttr |= 0x10001;
+ mp_EscherEx->AddOpt( _Escher_Prop_scaleText, ? );
+ }
+ }
+*/
+
+ sal_Int32 nLeft = ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "TextLeftDistance" ) ) ) ) ? *(sal_Int32*)mAny.getValue() : 0;
+ sal_Int32 nTop = ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "TextUpperDistance" ) ) ) ) ? *(sal_Int32*)mAny.getValue() : 0;
+ sal_Int32 nRight = ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "TextRightDistance" ) ) ) ) ? *(sal_Int32*)mAny.getValue() : 0;
+ sal_Int32 nBottom = ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "TextLowerDistance" ) ) ) ) ? *(sal_Int32*)mAny.getValue() : 0;
+
+
+ _Escher_WrapMode eWrapMode = _Escher_WrapSquare;
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "TextAutoGrowWidth" ) ) ) )
+ {
+ sal_Bool bBool;
+ mAny >>= bBool;
+ if ( bBool )
+ eWrapMode = _Escher_WrapNone;
+ }
+ if ( !bDisableAutoGrowHeight && ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "TextAutoGrowHeight" ) ) ) )
+ {
+ sal_Bool bBool;
+ mAny >>= bBool;
+ if ( bBool )
+ nTextAttr |= 0x20002;
+ }
+ mp_EscherEx->AddOpt( _Escher_Prop_dxTextLeft, nLeft * 360 );
+ mp_EscherEx->AddOpt( _Escher_Prop_dxTextRight, nRight * 360 );
+ mp_EscherEx->AddOpt( _Escher_Prop_dyTextTop, nTop * 360 );
+ mp_EscherEx->AddOpt( _Escher_Prop_dyTextBottom, nBottom * 360 );
+
+ mp_EscherEx->AddOpt( _Escher_Prop_WrapText, eWrapMode );
+ mp_EscherEx->AddOpt( _Escher_Prop_AnchorText, eAnchor );
+ mp_EscherEx->AddOpt( _Escher_Prop_FitTextToShape, nTextAttr );
+ mp_EscherEx->AddOpt( _Escher_Prop_lTxid, mnTxId += 0x60 );
+ }
+}
+
+// -----------------------------------------------------------------------
+
+sal_uInt32 PPTWriter::ImplGetMasterIndex( PageType ePageType )
+{
+ sal_uInt32 nRetValue = 0;
+ ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XMasterPageTarget >
+ aXMasterPageTarget( mXDrawPage, ::com::sun::star::uno::UNO_QUERY );
+
+ if ( aXMasterPageTarget.is() )
+ {
+ ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XDrawPage >
+ aXDrawPage = aXMasterPageTarget->getMasterPage();
+ if ( aXDrawPage.is() )
+ {
+ ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >
+ aXPropertySet( aXDrawPage, ::com::sun::star::uno::UNO_QUERY );
+
+ if ( aXPropertySet.is() )
+ {
+ if ( ImplGetPropertyValue( aXPropertySet, String( RTL_CONSTASCII_USTRINGPARAM( "Number" ) ) ) )
+ nRetValue |= *(sal_Int16*)mAny.getValue();
+ if ( nRetValue & 0xffff ) // ueberlauf vermeiden
+ nRetValue--;
+ }
+ }
+ }
+ if ( ePageType == NOTICE )
+ nRetValue += mnMasterPages;
+ return nRetValue;
+}
+
+// -----------------------------------------------------------------------
+
+sal_Bool PPTWriter::ImplGetStyleSheets()
+{
+ int nInstance, nLevel;
+
+ ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >
+ aXPropSet( mXModel, ::com::sun::star::uno::UNO_QUERY );
+
+ sal_uInt16 nDefaultTab = ( aXPropSet.is() && ImplGetPropertyValue( aXPropSet, String( RTL_CONSTASCII_USTRINGPARAM( "TabStop" ) ) ) )
+ ? (sal_uInt16)( *(sal_Int32*)mAny.getValue() / 4.40972 )
+ : 1250;
+
+ mpStyleSheet = new PPTExStyleSheet( nDefaultTab, (PPTExBulletProvider&)*this );
+
+ if ( !ImplGetPageByIndex( 0, MASTER ) )
+ return FALSE;
+
+ for ( nInstance = EPP_TEXTTYPE_Title; nInstance <= EPP_TEXTTYPE_Other; nInstance++ )
+ {
+ String aStyle;
+ switch ( nInstance )
+ {
+ case EPP_TEXTTYPE_Title :
+ aStyle = String( RTL_CONSTASCII_USTRINGPARAM( "title" ) );
+ break;
+ case EPP_TEXTTYPE_Body :
+ aStyle = String( RTL_CONSTASCII_USTRINGPARAM( "outline1" ) ); // SD_LT_SEPARATOR
+ break;
+ case EPP_TEXTTYPE_Other :
+ aStyle = String( RTL_CONSTASCII_USTRINGPARAM( "standard" ) );
+ break;
+ }
+ if ( aStyle.Len() )
+ {
+ ::com::sun::star::uno::Reference< ::com::sun::star::container::XNamed >
+ aXNamed( mXDrawPage, ::com::sun::star::uno::UNO_QUERY );
+
+ if ( aXNamed.is() )
+ {
+ ::com::sun::star::uno::Reference< ::com::sun::star::style::XStyleFamiliesSupplier >
+ aXStyleFamiliesSupplier( mXModel, ::com::sun::star::uno::UNO_QUERY );
+ if ( aXStyleFamiliesSupplier.is() )
+ {
+ ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess >
+ aXNameAccess( aXStyleFamiliesSupplier->getStyleFamilies() );
+
+ if ( aXNameAccess.is() )
+ {
+ TRY
+ {
+ ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess >xNameAccess;
+ ::com::sun::star::uno::Any aAny( aXNameAccess->getByName( aXNamed->getName() ) );
+ if( aAny.getValue() && ::cppu::extractInterface( xNameAccess, aAny ) )
+ {
+ ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > aXFamily;
+ if ( aAny >>= aXFamily )
+ {
+ ::com::sun::star::uno::Reference< ::com::sun::star::style::XStyle > xStyle;
+ aAny = aXFamily->getByName( aStyle );
+ if( aAny.getValue() && ::cppu::extractInterface( xStyle, aAny ) )
+ {
+ ::com::sun::star::uno::Reference< ::com::sun::star::style::XStyle > aXStyle;
+ aAny >>= aXStyle;
+ ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >
+ xPropSet( aXStyle, ::com::sun::star::uno::UNO_QUERY );
+ if( xPropSet.is() )
+ mpStyleSheet->SetStyleSheet( xPropSet, maFontCollection, nInstance, 0 );
+ if ( nInstance == EPP_TEXTTYPE_Body )
+ {
+ for ( nLevel = 1; nLevel < 5; nLevel++ )
+ {
+ sal_Unicode cTemp = aStyle.GetChar( aStyle.Len() - 1 );
+ aStyle.SetChar( aStyle.Len() - 1, ++cTemp );
+ aAny = aXFamily->getByName( aStyle );
+ if( aAny.getValue() && ::cppu::extractInterface( xStyle, aAny ) )
+ {
+ ::com::sun::star::uno::Reference< ::com::sun::star::style::XStyle > aXStyle;
+ aAny >>= aXStyle;
+ ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >
+ xPropSet( aXStyle, ::com::sun::star::uno::UNO_QUERY );
+ if ( xPropSet.is() )
+ mpStyleSheet->SetStyleSheet( xPropSet, maFontCollection, nInstance, nLevel );
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ CATCH_ALL()
+ {
+ //
+ }
+ END_CATCH;
+ }
+ }
+ }
+ }
+ }
+ for ( ; nInstance <= EPP_TEXTTYPE_QuarterBody; nInstance++ )
+ {
+
+ }
+ return TRUE;
+}
+
+// -----------------------------------------------------------------------
+
+sal_Bool PPTWriter::ImplGetMasterTitleAndBody()
+{
+ sal_uInt32 i, nSearchFor, nShapes;
+
+ if ( !ImplGetPageByIndex( 0, MASTER ) )
+ return FALSE;
+
+ nShapes = mXShapes->getCount();
+
+ // ueber die Seite gehen um den Index des Title and Body Objects zu bekommen
+ for ( nSearchFor = 2, i = 0; i < nShapes; i++ )
+ {
+ if ( !ImplGetShapeByIndex( i ) )
+ break;
+
+ if ( mType == "presentation.TitleText" )
+ {
+ mnMasterTitleIndex = i;
+ if ( ! ( --nSearchFor ) )
+ break;
+ }
+ else if ( mType == "presentation.Outliner" )
+ {
+ mnMasterBodyIndex = i;
+ if ( ! ( --nSearchFor ) )
+ break;
+ }
+ };
+ return TRUE;
+}
+
+// -----------------------------------------------------------------------
+
+void PPTWriter::ImplWriteParagraphs( SvStream& rOut, TextObj& rTextObj, sal_uInt32 nTextStyle )
+{
+ sal_Bool bFirstParagraph = TRUE;
+ sal_uInt32 nCharCount;
+ sal_uInt32 nPropertyFlags = 0;
+ sal_uInt16 nDepth = 0;
+ sal_Int16 nLineSpacing;
+ int nInstance = rTextObj.GetInstance();
+
+ for ( ParagraphObj* pPara = rTextObj.First() ; pPara; pPara = rTextObj.Next(), bFirstParagraph = FALSE )
+ {
+ nCharCount = pPara->Count();
+
+ nDepth = pPara->nDepth;
+ if ( nDepth > 4)
+ nDepth = 4;
+
+ if ( ( pPara->meTextAdjust == ::com::sun::star::beans::PropertyState_DIRECT_VALUE ) ||
+ ( mpStyleSheet->IsHardAttribute( nInstance, pPara->bDepth, ParaAttr_Adjust, pPara->mnTextAdjust ) ) )
+ nPropertyFlags |= 0x00000800;
+ nLineSpacing = pPara->mnLineSpacing;
+ if ( bFirstParagraph && ( nLineSpacing > 100 ) )
+ {
+ nLineSpacing = 100;
+ nPropertyFlags |= 0x00001000;
+ }
+ else if ( ( pPara->meLineSpacing == ::com::sun::star::beans::PropertyState_DIRECT_VALUE ) ||
+ ( mpStyleSheet->IsHardAttribute( nInstance, pPara->bDepth, ParaAttr_LineFeed, nLineSpacing ) ) )
+ nPropertyFlags |= 0x00001000;
+ if ( ( pPara->meLineSpacingBottom == ::com::sun::star::beans::PropertyState_DIRECT_VALUE ) ||
+ ( mpStyleSheet->IsHardAttribute( nInstance, pPara->bDepth, ParaAttr_LowerDist, pPara->mnLineSpacingBottom ) ) )
+ nPropertyFlags |= 0x00004000;
+ if ( ( pPara->meLineSpacingTop == ::com::sun::star::beans::PropertyState_DIRECT_VALUE ) ||
+ ( mpStyleSheet->IsHardAttribute( nInstance, pPara->bDepth, ParaAttr_UpperDist, pPara->mnLineSpacingTop ) ) )
+ nPropertyFlags |= 0x00002000;
+
+ sal_Int32 nBuRealSize = pPara->nBulletRealSize;
+ sal_Int16 nBulletFlags = pPara->nBulletFlags;
+
+ if ( pPara->bExtendedParameters )
+ nPropertyFlags |= pPara->nParaFlags;
+ else
+ {
+ nPropertyFlags |= 1; // turn off bullet explicit
+ nBulletFlags = 0;
+ }
+ PortionObj* pPortion = (PortionObj*)pPara->First();
+ if ( pPortion ) // in SO the bulletrealsize does not depend to the following portion charactersize
+ {
+ if ( pPortion->mnCharHeight )
+ {
+ if ( mpStyleSheet->IsHardAttribute( nInstance, pPara->bDepth, CharAttr_FontHeight, pPortion->mnCharHeight ) )
+ { // the fontsize is unequal to the StyleSheetFontSize, so the BulletRealSize has to be set again
+ nPropertyFlags |= 0x44;
+ nBulletFlags |= 8;
+ nBuRealSize *= mpStyleSheet->GetCharSheet( nInstance ).maCharLevel[ pPara->nDepth ].mnFontHeight;
+ nBuRealSize /= pPortion->mnCharHeight;
+ }
+ }
+ }
+ rOut << nCharCount
+ << nDepth // Level
+ << (sal_uInt32)nPropertyFlags; // Paragraph Attribut Set
+
+ if ( nPropertyFlags & 0xf )
+ rOut << nBulletFlags;
+ if ( nPropertyFlags & 0x80 )
+ rOut << (sal_uInt16)( pPara->cBulletId );
+ if ( nPropertyFlags & 0x10 )
+ rOut << (sal_uInt16)( maFontCollection.GetId( ByteString( String( pPara->aFontDesc.Name ), RTL_TEXTENCODING_UTF8 ) ) );
+ if ( nPropertyFlags & 0x40 )
+ rOut << (sal_Int16)nBuRealSize;
+ if ( nPropertyFlags & 0x20 )
+ rOut << pPara->nBulletColor;
+ if ( nPropertyFlags & 0x00000800 )
+ rOut << (sal_uInt16)( pPara->mnTextAdjust );
+ if ( nPropertyFlags & 0x00001000 )
+ rOut << (sal_uInt16)( nLineSpacing );
+ if ( nPropertyFlags & 0x00002000 )
+ rOut << (sal_uInt16)( pPara->mnLineSpacingTop );
+ if ( nPropertyFlags & 0x00004000 )
+ rOut << (sal_uInt16)( pPara->mnLineSpacingBottom );
+ }
+}
+
+// -----------------------------------------------------------------------
+
+void PPTWriter::ImplWritePortions( SvStream& rOut, TextObj& rTextObj )
+{
+ sal_uInt32 nPropertyFlags, i = 0;
+ int nInstance = rTextObj.GetInstance();
+
+ for ( ParagraphObj* pPara = rTextObj.First(); pPara; pPara = rTextObj.Next(), i++ )
+ {
+ for ( PortionObj* pPortion = (PortionObj*)pPara->First(); pPortion; pPortion = (PortionObj*)pPara->Next() )
+ {
+ nPropertyFlags = 0;
+ sal_uInt32 nCharAttr = pPortion->mnCharAttr;
+
+ if ( ( pPortion->mnCharAttrHard & 1 ) ||
+ ( mpStyleSheet->IsHardAttribute( nInstance, pPara->bDepth, CharAttr_Bold, nCharAttr ) ) )
+ nPropertyFlags |= 1;
+ if ( ( pPortion->mnCharAttrHard & 2 ) ||
+ ( mpStyleSheet->IsHardAttribute( nInstance, pPara->bDepth, CharAttr_Italic, nCharAttr ) ) )
+ nPropertyFlags |= 2;
+ if ( ( pPortion->mnCharAttrHard & 4 ) ||
+ ( mpStyleSheet->IsHardAttribute( nInstance, pPara->bDepth, CharAttr_Underline, nCharAttr ) ) )
+ nPropertyFlags |= 4;
+ if ( ( pPortion->mnCharAttrHard & 0x10 ) ||
+ ( mpStyleSheet->IsHardAttribute( nInstance, pPara->bDepth, CharAttr_Shadow, nCharAttr ) ) )
+ nPropertyFlags |= 0x10;
+ if ( rTextObj.HasExtendedBullets() )
+ {
+ if ( i > 63 )
+ i = 63;
+
+ nPropertyFlags |= i << 10 ;
+ nCharAttr |= i << 10;
+ }
+ if ( ( pPortion->meFontName == ::com::sun::star::beans::PropertyState_DIRECT_VALUE ) ||
+ ( mpStyleSheet->IsHardAttribute( nInstance, pPara->bDepth, CharAttr_Font, pPortion->mnFont ) ) )
+ nPropertyFlags |= 0x00010000;
+ if ( ( pPortion->meCharHeight == ::com::sun::star::beans::PropertyState_DIRECT_VALUE ) ||
+ ( mpStyleSheet->IsHardAttribute( nInstance, pPara->bDepth, CharAttr_FontHeight, pPortion->mnCharHeight ) ) )
+ nPropertyFlags |= 0x00020000;
+ if ( ( pPortion->meCharColor == ::com::sun::star::beans::PropertyState_DIRECT_VALUE ) ||
+ ( mpStyleSheet->IsHardAttribute( nInstance, pPara->bDepth, CharAttr_FontColor, pPortion->mnCharColor ) ) )
+ nPropertyFlags |= 0x00040000;
+ if ( ( pPortion->meCharEscapement == ::com::sun::star::beans::PropertyState_DIRECT_VALUE ) ||
+ ( mpStyleSheet->IsHardAttribute( nInstance, pPara->bDepth, CharAttr_Escapement, pPortion->mnCharEscapement ) ) )
+ nPropertyFlags |= 0x00080000;
+
+ sal_uInt32 nCharCount = pPortion->Count();
+
+ rOut << nCharCount
+ << nPropertyFlags; //PropertyFlags
+
+ if ( nPropertyFlags & 0xffff )
+ rOut << (sal_uInt16)( nCharAttr );
+ if ( nPropertyFlags & 0x00010000 )
+ rOut << pPortion->mnFont;
+ if ( nPropertyFlags & 0x00020000 )
+ rOut << (sal_uInt16)( pPortion->mnCharHeight );
+ if ( nPropertyFlags & 0x00040000 )
+ rOut << (sal_uInt32)pPortion->mnCharColor;
+ if ( nPropertyFlags & 0x00080000 )
+ rOut << pPortion->mnCharEscapement;
+ }
+ }
+}
+
+// ----------------------------------------------------------------------------------------
+// laedt und konvertiert text aus shape, ergebnis ist mnTextSize gespeichert;
+sal_Bool PPTWriter::ImplGetText()
+{
+ mnTextSize = 0;
+ mXText = ::com::sun::star::uno::Reference<
+ ::com::sun::star::text::XSimpleText >
+ ( mXShape, ::com::sun::star::uno::UNO_QUERY );
+
+ if ( mXText.is() )
+ mnTextSize = mXText->getString().len();
+ return ( mnTextSize != 0 );
+}
+
+// -----------------------------------------------------------------------
+
+void PPTWriter::ImplFlipBoundingBox( const ::com::sun::star::awt::Point& rRefPoint )
+{
+ if ( mnAngle < 0 )
+ mnAngle = ( 36000 + mnAngle ) % 36000;
+ else
+ mnAngle = ( 36000 - ( mnAngle % 36000 ) );
+
+ double fCos = cos( (double)mnAngle * F_PI18000 );
+ double fSin = sin( (double)mnAngle * F_PI18000 );
+
+ double nWidthHalf = maRect.GetWidth() / 2;
+ double nHeightHalf = maRect.GetHeight() / 2;
+
+ sal_Int32 nXDiff = fCos * nWidthHalf + fSin * (-nHeightHalf);
+ sal_Int32 nYDiff = - ( fSin * nWidthHalf - fCos * ( -nHeightHalf ) );
+
+ maRect.Move( -( nWidthHalf - nXDiff ), - ( nHeightHalf + nYDiff ) );
+
+ if ( ( mnAngle > 4500 && mnAngle <= 13500 ) || ( mnAngle > 22500 && mnAngle <= 31500 ) )
+ {
+ // In diesen beiden Bereichen steht in PPT gemeinerweise die
+ // BoundingBox bereits senkrecht. Daher muss diese VOR
+ // DER ROTATION flachgelegt werden.
+ ::com::sun::star::awt::Point
+ aTopLeft( maRect.Left() + nWidthHalf - nHeightHalf, maRect.Top() + nHeightHalf - nWidthHalf );
+ Size aNewSize( maRect.GetHeight(), maRect.GetWidth() );
+ maRect = Rectangle( Point( aTopLeft.X, aTopLeft.Y ), aNewSize );
+ }
+ mnAngle *= 655;
+ mnAngle += 0x8000;
+ mnAngle &=~0xffff; // nAngle auf volle Gradzahl runden
+ mp_EscherEx->AddOpt( _Escher_Prop_Rotation, mnAngle );
+}
+
+// -----------------------------------------------------------------------
+
+struct FieldEntry
+{
+ sal_uInt32 nFieldType;
+ sal_uInt32 nFieldStartPos;
+ sal_uInt32 nFieldEndPos;
+ String aFieldUrl;
+
+ FieldEntry( sal_uInt32 nType, sal_uInt32 nStart, sal_uInt32 nEnd )
+ {
+ nFieldType = nType;
+ nFieldStartPos = nStart;
+ nFieldEndPos = nEnd;
+ }
+ FieldEntry( FieldEntry& rFieldEntry )
+ {
+ nFieldType = rFieldEntry.nFieldType;
+ nFieldStartPos = rFieldEntry.nFieldStartPos;
+ nFieldEndPos = rFieldEntry.nFieldEndPos;
+ aFieldUrl = rFieldEntry.aFieldUrl;
+ }
+};
+
+// -----------------------------------------------------------------------
+
+PortionObj::PortionObj( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > & rXPropSet,
+ Collection& rFontCollection ) :
+ mbLastPortion ( TRUE ),
+ mnCharAttrHard ( 0 ),
+ mnCharAttr ( 0 ),
+ mnTextSize ( 0 ),
+ mnFont ( 0 ),
+ mpFieldEntry ( NULL ),
+ mpText ( NULL )
+{
+ mXPropSet = rXPropSet;
+
+ ImplGetPortionValues( rFontCollection, FALSE );
+}
+
+PortionObj::PortionObj( ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange > & rXTextRange,
+ sal_Bool bLast, Collection& rFontCollection ) :
+ mbLastPortion ( bLast ),
+ mnCharAttrHard ( 0 ),
+ mnCharAttr ( 0 ),
+ mnFont ( 0 ),
+ mpFieldEntry ( NULL ),
+ mpText ( NULL )
+{
+ String aString( rXTextRange->getString() );
+ String aURL;
+
+ mnTextSize = aString.Len();
+ if ( bLast )
+ mnTextSize++;
+
+ if ( mnTextSize )
+ {
+ mpFieldEntry = NULL;
+ sal_uInt32 nFieldType = 0;
+
+ mXPropSet = ::com::sun::star::uno::Reference<
+ ::com::sun::star::beans::XPropertySet >
+ ( rXTextRange, ::com::sun::star::uno::UNO_QUERY );
+ mXPropState = ::com::sun::star::uno::Reference<
+ ::com::sun::star::beans::XPropertyState >
+ ( rXTextRange, ::com::sun::star::uno::UNO_QUERY );
+
+ sal_Bool bPropSetsValid = ( mXPropSet.is() && mXPropState.is() );
+ if ( bPropSetsValid )
+ nFieldType = ImplGetTextField( rXTextRange, aURL );
+ if ( nFieldType )
+ {
+ mpFieldEntry = new FieldEntry( nFieldType, 0, mnTextSize );
+ if ( ( nFieldType >> 28 == 4 ) )
+ {
+ INetURLObject aUrl;
+ if ( aURL.Len() )
+ aUrl.SetSmartURL( aString );
+ else
+ aUrl.SetSmartURL( aString );
+ mpFieldEntry->aFieldUrl = aUrl.GetMainURL();
+ }
+ }
+
+ sal_Bool bSymbol = FALSE;
+ if ( bPropSetsValid && ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "FontCharset" ) ), FALSE ) )
+ {
+ sal_Int16 nCharset;
+ mAny >>= nCharset;
+ if ( nCharset == ::com::sun::star::awt::CharSet::SYMBOL )
+ bSymbol = TRUE;
+ }
+ if ( mpFieldEntry && ( nFieldType & 0x800000 ) ) // placeholder ?
+ {
+ mnTextSize = 1;
+ if ( bLast )
+ mnTextSize++;
+ mpText = new sal_uInt16[ mnTextSize ];
+ mpText[ 0 ] = 0x2a;
+ }
+ else
+ {
+ mpText = new sal_uInt16[ mnTextSize ];
+ const sal_Unicode* pText = aString.GetBuffer();
+ sal_uInt16 nChar;
+ for ( int i = 0; i < aString.Len(); i++ )
+ {
+ nChar = (sal_uInt16)pText[ i ];
+ if ( nChar == 0xa )
+ nChar++;
+ else if ( !bSymbol )
+ {
+ switch ( nChar )
+ {
+ // Currency
+ case 128: nChar = 0x20AC; break;
+ // Punctuation and other
+ case 130: nChar = 0x201A; break;// SINGLE LOW-9 QUOTATION MARK
+ case 131: nChar = 0x0192; break;// LATIN SMALL LETTER F WITH HOOK
+ case 132: nChar = 0x201E; break;// DOUBLE LOW-9 QUOTATION MARK
+ // LOW DOUBLE PRIME QUOTATION MARK
+ case 133: nChar = 0x2026; break;// HORIZONTAL ELLIPSES
+ case 134: nChar = 0x2020; break;// DAGGER
+ case 135: nChar = 0x2021; break;// DOUBLE DAGGER
+ case 136: nChar = 0x02C6; break;// MODIFIER LETTER CIRCUMFLEX ACCENT
+ case 137: nChar = 0x2030; break;// PER MILLE SIGN
+ case 138: nChar = 0x0160; break;// LATIN CAPITAL LETTER S WITH CARON
+ case 139: nChar = 0x2039; break;// SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+ case 140: nChar = 0x0152; break;// LATIN CAPITAL LIGATURE OE
+ case 142: nChar = 0x017D; break;// LATIN CAPITAL LETTER Z WITH CARON
+ case 145: nChar = 0x2018; break;// LEFT SINGLE QUOTATION MARK
+ // MODIFIER LETTER TURNED COMMA
+ case 146: nChar = 0x2019; break;// RIGHT SINGLE QUOTATION MARK
+ // MODIFIER LETTER APOSTROPHE
+ case 147: nChar = 0x201C; break;// LEFT DOUBLE QUOTATION MARK
+ // REVERSED DOUBLE PRIME QUOTATION MARK
+ case 148: nChar = 0x201D; break;// RIGHT DOUBLE QUOTATION MARK
+ // REVERSED DOUBLE PRIME QUOTATION MARK
+ case 149: nChar = 0x2022; break;// BULLET
+ case 150: nChar = 0x2013; break;// EN DASH
+ case 151: nChar = 0x2014; break;// EM DASH
+ case 152: nChar = 0x02DC; break;// SMALL TILDE
+ case 153: nChar = 0x2122; break;// TRADE MARK SIGN
+ case 154: nChar = 0x0161; break;// LATIN SMALL LETTER S WITH CARON
+ case 155: nChar = 0x203A; break;// SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+ case 156: nChar = 0x0153; break;// LATIN SMALL LIGATURE OE
+ case 158: nChar = 0x017E; break;// LATIN SMALL LETTER Z WITH CARON
+ case 159: nChar = 0x0178; break;// LATIN CAPITAL LETTER Y WITH DIAERESIS
+// case 222: nChar = 0x00B6; break;// PILCROW SIGN / PARAGRAPH SIGN
+ }
+ }
+ mpText[ i ] = nChar;
+ }
+ }
+ if ( bLast )
+ mpText[ mnTextSize - 1 ] = 0xd;
+
+ if ( bPropSetsValid )
+ ImplGetPortionValues( rFontCollection, TRUE );
+ }
+}
+
+PortionObj::PortionObj( PortionObj& rPortionObj )
+{
+ ImplConstruct( rPortionObj );
+}
+
+PortionObj::~PortionObj()
+{
+ ImplClear();
+}
+
+void PortionObj::Write( SvStream* pStrm, sal_Bool bLast )
+{
+ sal_uInt32 nCount = mnTextSize;
+ if ( bLast && mbLastPortion )
+ nCount--;
+ for ( sal_uInt32 i = 0; i < nCount; i++ )
+ *pStrm << (sal_uInt16)mpText[ i ];
+}
+
+void PortionObj::ImplGetPortionValues( Collection& rFontCollection, sal_Bool bGetPropStateValue )
+{
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "CharFontName" ) ), bGetPropStateValue ) )
+ {
+ String aString( *(::rtl::OUString*)mAny.getValue() );
+ mnFont = (sal_uInt16)rFontCollection.GetId( ByteString( aString, RTL_TEXTENCODING_UTF8 ) );
+ }
+ meFontName = ePropState;
+
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "CharWeight" ) ), bGetPropStateValue ) )
+ {
+ float fFloat;
+ mAny >>= fFloat;
+ if ( fFloat >= ::com::sun::star::awt::FontWeight::SEMIBOLD )
+ mnCharAttr |= 1;
+ }
+ if ( ePropState == ::com::sun::star::beans::PropertyState_DIRECT_VALUE )
+ mnCharAttrHard |= 1;
+
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "CharPosture" ) ), bGetPropStateValue ) )
+ {
+ ::com::sun::star::awt::FontSlant aFS;
+ mAny >>= aFS;
+ switch ( aFS )
+ {
+ case ::com::sun::star::awt::FontSlant_OBLIQUE :
+ case ::com::sun::star::awt::FontSlant_ITALIC :
+ mnCharAttr |= 2;
+ }
+ }
+ if ( ePropState == ::com::sun::star::beans::PropertyState_DIRECT_VALUE )
+ mnCharAttrHard |= 2;
+
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "CharUnderline" ) ), bGetPropStateValue ) )
+ {
+ sal_Int16 nVal;
+ mAny >>= nVal;
+ switch ( nVal )
+ {
+ case ::com::sun::star::awt::FontUnderline::SINGLE :
+ case ::com::sun::star::awt::FontUnderline::DOUBLE :
+ case ::com::sun::star::awt::FontUnderline::DOTTED :
+ mnCharAttr |= 4;
+ }
+ }
+ if ( ePropState == ::com::sun::star::beans::PropertyState_DIRECT_VALUE )
+ mnCharAttrHard |= 4;
+
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "CharShadowed" ) ), bGetPropStateValue ) )
+ {
+ sal_Bool bBool;
+ mAny >>= bBool;
+ if ( bBool )
+ mnCharAttr |= 0x10;
+ }
+ if ( ePropState == ::com::sun::star::beans::PropertyState_DIRECT_VALUE )
+ mnCharAttrHard |= 16;
+
+ mnCharHeight = 24;
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "CharHeight" ) ), bGetPropStateValue ) )
+ {
+ float fVal;
+ mAny >>= fVal;
+ mnCharHeight = (sal_uInt16)( fVal + 0.5 );
+ }
+ meCharHeight = ePropState;
+
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "CharColor" ) ), bGetPropStateValue ) )
+ {
+ sal_uInt32 nSOColor = *( (sal_uInt32*)mAny.getValue() );
+ mnCharColor = nSOColor & 0xff00; // green
+ mnCharColor |= (sal_uInt8)( nSOColor ) << 16; // red
+ mnCharColor |= (sal_uInt8)( nSOColor >> 16 ) | 0xfe000000; // blue
+ }
+ meCharColor = ePropState;
+
+ mnCharEscapement = 0;
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "CharEscapement" ) ), bGetPropStateValue ) )
+ {
+ mAny >>= mnCharEscapement;
+ if ( mnCharEscapement > 100 )
+ mnCharEscapement = 33;
+ else if ( mnCharEscapement < -100 )
+ mnCharEscapement = -33;
+ }
+ meCharEscapement = ePropState;
+}
+
+void PortionObj::ImplClear()
+{
+ delete (FieldEntry*)mpFieldEntry;
+ delete mpText;
+}
+
+void PortionObj::ImplConstruct( PortionObj& rPortionObj )
+{
+ mbLastPortion = rPortionObj.mbLastPortion;
+ mnTextSize = rPortionObj.mnTextSize;
+ mnCharColor = rPortionObj.mnCharColor;
+ mnCharEscapement = rPortionObj.mnCharEscapement;
+ mnCharAttr = rPortionObj.mnCharAttr;
+ mnCharHeight = rPortionObj.mnCharHeight;
+ mnFont = rPortionObj.mnFont;
+
+ if ( rPortionObj.mpText )
+ {
+ mpText = new sal_uInt16[ mnTextSize ];
+ memcpy( mpText, rPortionObj.mpText, mnTextSize << 1 );
+ }
+ else
+ mpText = NULL;
+
+ if ( rPortionObj.mpFieldEntry )
+ mpFieldEntry = new FieldEntry( *( rPortionObj.mpFieldEntry ) );
+ else
+ mpFieldEntry = NULL;
+}
+
+sal_uInt32 PortionObj::ImplCalculateTextPositions( sal_uInt32 nCurrentTextPosition )
+{
+ if ( mpFieldEntry && ( !mpFieldEntry->nFieldStartPos ) )
+ {
+ mpFieldEntry->nFieldStartPos += nCurrentTextPosition;
+ mpFieldEntry->nFieldEndPos += nCurrentTextPosition;
+ }
+ return mnTextSize;
+}
+
+// -----------------------------------------------------------------------
+// Rueckgabe: 0 = kein TextField
+// bit28->31 art des TextFields :
+// 1 = Date
+// 2 = Time
+// 3 = SlideNumber
+// 4 = Url
+// bit24->27 PPT Textfield type
+// 23-> PPT Textfield needs a placeholder
+
+sal_uInt32 PortionObj::ImplGetTextField( ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange >
+ & rXCursorText, String& rURL )
+{
+ sal_uInt32 nRetValue = 0;
+ sal_Int32 nFormat;
+ ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextField >
+ aXTextField( rXCursorText, ::com::sun::star::uno::UNO_QUERY );
+
+ if ( aXTextField.is() )
+ {
+ mXPropSet = ::com::sun::star::uno::Reference<
+ ::com::sun::star::beans::XPropertySet >
+ ( aXTextField, ::com::sun::star::uno::UNO_QUERY );
+
+ if ( mXPropSet.is() )
+ {
+ String aFieldKind( aXTextField->getPresentation( TRUE ) );
+ if ( aFieldKind == String( RTL_CONSTASCII_USTRINGPARAM( "Date" ) ) )
+ {
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "IsFix" ) ) ) )
+ {
+ sal_Bool bBool;
+ mAny >>= bBool;
+ if ( !bBool ) // Fixed DateFields gibt es in PPT nicht
+ {
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "Format" ) ) ) )
+ {
+ nFormat = *(sal_Int32*)mAny.getValue();
+ switch ( nFormat )
+ {
+ default:
+ case 5 :
+ case 4 :
+ case 2 : nFormat = 0; break;
+ case 8 :
+ case 9 :
+ case 3 : nFormat = 1; break;
+ case 7 :
+ case 6 : nFormat = 2; break;
+ }
+ nRetValue |= ( ( ( 1 << 4 ) | nFormat ) << 24 ) | 0x800000;
+ }
+ }
+ }
+ }
+ else if ( aFieldKind == String( RTL_CONSTASCII_USTRINGPARAM( "Url" ) ) )
+ {
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "URL" ) ) ) )
+ rURL = String( *(::rtl::OUString*)mAny.getValue() );
+ nRetValue = 4 << 28;
+ }
+ else if ( aFieldKind == String( RTL_CONSTASCII_USTRINGPARAM( "Page" ) ) )
+ {
+ nRetValue = 3 << 28 | 0x800000;
+ }
+ else if ( aFieldKind == String( RTL_CONSTASCII_USTRINGPARAM( "Pages" ) ) )
+ {
+
+ }
+ else if ( aFieldKind == String( RTL_CONSTASCII_USTRINGPARAM( "Time" ) ) )
+ {
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "IsFix" ) ) ) )
+ {
+ sal_Bool bBool;
+ mAny >>= bBool;
+ if ( !bBool )
+ {
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "IsFix" ) ) ) )
+ {
+ nFormat = *(sal_Int32*)mAny.getValue();
+ nRetValue |= ( ( ( 2 << 4 ) | nFormat ) << 24 ) | 0x800000;
+ }
+ }
+ }
+ }
+ else if ( aFieldKind == String( RTL_CONSTASCII_USTRINGPARAM( "File" ) ) )
+ {
+
+ }
+ else if ( aFieldKind == String( RTL_CONSTASCII_USTRINGPARAM( "Table" ) ) )
+ {
+
+ }
+ else if ( aFieldKind == String( RTL_CONSTASCII_USTRINGPARAM( "ExtTime" ) ) )
+ {
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "IsFix" ) ) ) )
+ {
+ sal_Bool bBool;
+ mAny >>= bBool;
+ if ( !bBool )
+ {
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "Format" ) ) ) )
+ {
+ nFormat = *(sal_Int32*)mAny.getValue();
+ switch ( nFormat )
+ {
+ default:
+ case 6 :
+ case 7 :
+ case 8 :
+ case 2 : nFormat = 12; break;
+ case 3 : nFormat = 9; break;
+ case 5 :
+ case 4 : nFormat = 10; break;
+
+ }
+ nRetValue |= ( ( ( 2 << 4 ) | nFormat ) << 24 ) | 0x800000;
+ }
+ }
+ }
+ }
+ else if ( aFieldKind == String( RTL_CONSTASCII_USTRINGPARAM( "ExtFile" ) ) )
+ {
+
+ }
+ else if ( aFieldKind == String( RTL_CONSTASCII_USTRINGPARAM( "Author" ) ) )
+ {
+
+ }
+ }
+ }
+ return nRetValue;
+}
+
+PortionObj& PortionObj::operator=( PortionObj& rPortionObj )
+{
+ if ( this != &rPortionObj )
+ {
+ ImplClear();
+ ImplConstruct( rPortionObj );
+ }
+ return *this;
+}
+
+// -----------------------------------------------------------------------
+
+ParagraphObj::ParagraphObj( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > & rXPropSet,
+ PPTExBulletProvider& rProv ) :
+ maMapModeSrc ( MAP_100TH_MM ),
+ maMapModeDest ( MAP_INCH, Point(), Fraction( 1, 576 ), Fraction( 1, 576 ) ),
+ mpTab ( NULL )
+{
+ mXPropSet = rXPropSet;
+
+ bDepth = bExtendedParameters = FALSE;
+
+ nDepth = 0;
+ nBulletFlags = 0;
+ nParaFlags = 0;
+
+ ImplGetParagraphValues( rProv, FALSE );
+}
+
+ ParagraphObj::ParagraphObj( ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextContent > & rXTextContent,
+ ParaFlags aParaFlags, Collection& rFontCollection, PPTExBulletProvider& rProv ) :
+ maMapModeSrc ( MAP_100TH_MM ),
+ maMapModeDest ( MAP_INCH, Point(), Fraction( 1, 576 ), Fraction( 1, 576 ) ),
+ mbFirstParagraph ( aParaFlags.bFirstParagraph ),
+ mbLastParagraph ( aParaFlags.bLastParagraph ),
+ mpTab ( NULL )
+{
+ bDepth = bExtendedParameters = FALSE;
+
+ nDepth = 0;
+ nBulletFlags = 0;
+ nParaFlags = 0;
+
+ mXPropSet = ::com::sun::star::uno::Reference<
+ ::com::sun::star::beans::XPropertySet >
+ ( rXTextContent, ::com::sun::star::uno::UNO_QUERY );
+
+ mXPropState = ::com::sun::star::uno::Reference<
+ ::com::sun::star::beans::XPropertyState >
+ ( rXTextContent, ::com::sun::star::uno::UNO_QUERY );
+
+ if ( mXPropSet.is() && mXPropState.is() )
+ {
+ ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumerationAccess >
+ aXTextPortionEA( rXTextContent, ::com::sun::star::uno::UNO_QUERY );
+ if ( aXTextPortionEA.is() )
+ {
+ ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration >
+ aXTextPortionE( aXTextPortionEA->createEnumeration() );
+ if ( aXTextPortionE.is() )
+ {
+ while ( aXTextPortionE->hasMoreElements() )
+ {
+ ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange > aXCursorText;
+ ::com::sun::star::uno::Any aAny( aXTextPortionE->nextElement() );
+ ;
+ if ( aAny >>= aXCursorText )
+ Insert( new PortionObj( aXCursorText, !aXTextPortionE->hasMoreElements(), rFontCollection ), LIST_APPEND );
+ }
+ }
+ }
+ ImplGetParagraphValues( rProv, TRUE );//
+ }
+}
+
+ParagraphObj::ParagraphObj( ParagraphObj& rObj )
+{
+ ImplConstruct( rObj );
+}
+
+ParagraphObj::~ParagraphObj()
+{
+ ImplClear();
+}
+
+void ParagraphObj::Write( SvStream* pStrm )
+{
+ for ( void* pPtr = First(); pPtr; pPtr = Next() )
+ ((PortionObj*)pPtr)->Write( pStrm, mbLastParagraph );
+}
+
+void ParagraphObj::ImplClear()
+{
+ for ( void* pPtr = First(); pPtr; pPtr = Next() )
+ delete (PortionObj*)pPtr;
+ delete mpTab;
+}
+
+void ParagraphObj::ImplGetNumberingLevel( PPTExBulletProvider& rBuProv, sal_Int16 nDepth, sal_Bool bGetPropStateValue )
+{
+ ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexReplace > aXIndexReplace;
+
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "NumberingRules" ) ), bGetPropStateValue ) )
+ {
+ if ( ( mAny >>= aXIndexReplace ) && nDepth < aXIndexReplace->getCount() )
+ {
+ mAny <<= aXIndexReplace->getByIndex( nDepth );
+ ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue>
+ aPropertySequence( *( ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue>*)mAny.getValue() );
+
+ const ::com::sun::star::beans::PropertyValue* pPropValue = aPropertySequence.getArray();
+
+ sal_Int16 nCount = aPropertySequence.getLength();
+ if ( nCount )
+ {
+ bExtendedParameters = TRUE;
+ nBulletRealSize = 0;
+
+ sal_Bool bFastFind = TRUE;
+
+ Size aBuGraSize( 0, 0 );
+
+ nMappedNumType = 0;
+
+ for ( sal_Int16 i = 0; i < nCount; i++ )
+ {
+ sal_Int16 nQuickIndex = i;
+
+ const void* pValue = pPropValue[ i ].Value.getValue();
+ if ( pValue )
+ {
+ String aString( pPropValue[ i ].Name );
+ ByteString aPropName( aString, RTL_TEXTENCODING_UTF8 );
+ if ( !bFastFind )
+ {
+ if ( aPropName == "NumberingType" )
+ nQuickIndex = 0;
+ else if ( aPropName == "Adjust" )
+ nQuickIndex = 1;
+ else if ( aPropName == "Prefix" )
+ nQuickIndex = 2;
+ else if ( aPropName == "Suffix" )
+ nQuickIndex = 3;
+ else if ( aPropName == "BulletId" )
+ nQuickIndex = 4;
+ else if ( aPropName == "BulletFont" )
+ nQuickIndex = 5;
+ else if ( aPropName == "Graphic" )
+ nQuickIndex = 6;
+ else if ( aPropName == "GraphicSize" )
+ nQuickIndex = 7;
+ else if ( aPropName == "StartWith" )
+ nQuickIndex = 8;
+ else if ( aPropName == "LeftMargin" )
+ nQuickIndex = 9;
+ else if ( aPropName == "FirstLineOffset" )
+ nQuickIndex = 10;
+ else if ( aPropName == "BulletColor" )
+ nQuickIndex = 11;
+ else if ( aPropName == "BulletRelSize" )
+ nQuickIndex = 12;
+ else
+ {
+ DBG_ERROR( "Unbekanntes Property" );
+ bFastFind = TRUE;
+ continue; // unbekanntes Property;
+ }
+ pValue = pPropValue[ i ].Value.getValue();
+ }
+ switch( nQuickIndex )
+ {
+ case 0 :
+ {
+ if ( aPropName == "NumberingType" )
+ {
+ nNumberingType = *( (sal_Int16*)pValue );
+ continue;
+ }
+ }
+ break;
+ case 1 :
+ {
+ if ( aPropName == "Adjust" )
+ {
+ nHorzAdjust = *( (sal_Int16*)pValue );
+ continue;
+ }
+ }
+ break;
+ case 2 :
+ {
+ if ( aPropName == "Prefix" )
+ {
+// sPrefix = *( (String*)pValue );
+ continue;
+ }
+ }
+ break;
+ case 3 :
+ {
+ if ( aPropName == "Suffix" )
+ {
+// sSuffix = *( (String*)pValue );
+ continue;
+ }
+ }
+ break;
+ case 4 :
+ {
+ if ( aPropName == "BulletId" )
+ {
+ cBulletId = *( (sal_Int16*)pValue );
+ continue;
+ }
+ }
+ break;
+ case 5 :
+ {
+ if ( aPropName == "BulletFont" )
+ {
+ aFontDesc = *( (::com::sun::star::awt::FontDescriptor*)pValue );
+ continue;
+ }
+ }
+ break;
+ case 6 :
+ {
+ if ( aPropName == "Graphic" )
+ {
+ ::com::sun::star::uno::Reference< ::com::sun::star::awt::XBitmap >xBitmap;
+ if ( ::cppu::extractInterface( xBitmap, pPropValue[ i ].Value ) )
+ {
+ ::com::sun::star::uno::Reference< ::com::sun::star::awt::XBitmap >
+ xBitmap( *(::com::sun::star::uno::Reference< ::com::sun::star::awt::XBitmap >*)pValue );
+ if ( xBitmap.is() )
+ {
+ Graphic aGraphic( VCLUnoHelper::GetBitmap( xBitmap ) );
+ nBulletId = rBuProv.GetId( aGraphic );
+ if ( nBulletId != 0xffff )
+ bExtendedBulletsUsed = TRUE;
+ }
+ }
+ continue;
+ }
+ }
+ break;
+ case 7 :
+ {
+ if ( aPropName == "GraphicSize" )
+ {
+ if ( pPropValue[ i ].Value.getValueType() == ::getCppuType( (::com::sun::star::awt::Size*)0) )
+ aBuGraSize = *(Size*)pValue;
+ continue;
+ }
+ }
+ break;
+ case 8 :
+ {
+ if ( aPropName == "StartWith" )
+ {
+ nStartWith = *( (sal_Int16*)pValue );
+ continue;
+ }
+ }
+ break;
+ case 9 :
+ {
+ if ( aPropName == "LeftMargin" )
+ {
+ nTextOfs = *( (sal_Int32*)pValue );
+ nTextOfs /= 4.40972;
+ continue;
+ }
+ }
+ break;
+ case 10 :
+ {
+ if ( aPropName == "FirstLineOffset" )
+ {
+ nBulletOfs = *( (sal_Int32*)pValue );
+ nBulletOfs /= 4.40972;
+ continue;
+ }
+ }
+ break;
+ case 11 :
+ {
+ if ( aPropName == "BulletColor" )
+ {
+ sal_uInt32 nSOColor = *( (sal_uInt32*)pValue );
+ nBulletColor = nSOColor & 0xff00; // GRUEN
+ nBulletColor |= (sal_uInt8)( nSOColor ) << 16; // ROT
+ nBulletColor |= (sal_uInt8)( nSOColor >> 16 ) | 0xfe000000; // BLAU
+ continue;
+ }
+ }
+ break;
+ case 12 :
+ {
+ if ( aPropName == "BulletRelSize" )
+ {
+ nBulletRealSize = *( (sal_Int16*)pValue );
+ nParaFlags |= 0x40;
+ nBulletFlags |= 8;
+ continue;
+ }
+ }
+ }
+ if ( bFastFind )
+ {
+ bFastFind = FALSE;
+ i--; // nochmal den letzten index, aber diesmal andere Reihenfolge beruecksichtigen
+ }
+ }
+ }
+ if ( ( (SvxExtNumType)nNumberingType == SVX_NUM_BITMAP ) && ( nBulletId != 0xffff ) )
+ {
+ // calculate the bulletrealsize for this grafik
+ nBulletRealSize = 100;
+ if ( aBuGraSize.Width() && aBuGraSize.Height() )
+ {
+ sal_Int32 nCharHeight = 24;
+ PortionObj* pPortion = (PortionObj*)First();
+ if ( pPortion )
+ nCharHeight = pPortion->mnCharHeight;
+
+ sal_Int32 nLen = aBuGraSize.Width();
+ if ( aBuGraSize.Height() > nLen )
+ nLen = aBuGraSize.Height();
+
+ nCharHeight = (double)nCharHeight * 25.40;
+ double fQuo = (double)nLen / (double)nCharHeight;
+ nBulletRealSize = 100 * fQuo;
+ if ( (sal_uInt16)nBulletRealSize > 400 )
+ nBulletRealSize = 400;
+ }
+ }
+ switch( (SvxExtNumType)nNumberingType )
+ {
+ case SVX_NUM_NUMBER_NONE : nParaFlags |= 0xf; break;
+
+ case SVX_NUM_CHAR_SPECIAL : // Bullet
+ {
+ if ( aFontDesc.Name.len() )
+ {
+ if ( aFontDesc.CharSet != ::com::sun::star::awt::CharSet::SYMBOL )
+ {
+ switch ( cBulletId )
+ {
+ // Currency
+ case 128: cBulletId = 0x20AC; break;
+ // Punctuation and other
+ case 130: cBulletId = 0x201A; break;// SINGLE LOW-9 QUOTATION MARK
+ case 131: cBulletId = 0x0192; break;// LATIN SMALL LETTER F WITH HOOK
+ case 132: cBulletId = 0x201E; break;// DOUBLE LOW-9 QUOTATION MARK
+ // LOW DOUBLE PRIME QUOTATION MARK
+ case 133: cBulletId = 0x2026; break;// HORIZONTAL ELLIPSES
+ case 134: cBulletId = 0x2020; break;// DAGGER
+ case 135: cBulletId = 0x2021; break;// DOUBLE DAGGER
+ case 136: cBulletId = 0x02C6; break;// MODIFIER LETTER CIRCUMFLEX ACCENT
+ case 137: cBulletId = 0x2030; break;// PER MILLE SIGN
+ case 138: cBulletId = 0x0160; break;// LATIN CAPITAL LETTER S WITH CARON
+ case 139: cBulletId = 0x2039; break;// SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+ case 140: cBulletId = 0x0152; break;// LATIN CAPITAL LIGATURE OE
+ case 142: cBulletId = 0x017D; break;// LATIN CAPITAL LETTER Z WITH CARON
+ case 145: cBulletId = 0x2018; break;// LEFT SINGLE QUOTATION MARK
+ // MODIFIER LETTER TURNED COMMA
+ case 146: cBulletId = 0x2019; break;// RIGHT SINGLE QUOTATION MARK
+ // MODIFIER LETTER APOSTROPHE
+ case 147: cBulletId = 0x201C; break;// LEFT DOUBLE QUOTATION MARK
+ // REVERSED DOUBLE PRIME QUOTATION MARK
+ case 148: cBulletId = 0x201D; break;// RIGHT DOUBLE QUOTATION MARK
+ // REVERSED DOUBLE PRIME QUOTATION MARK
+ case 149: cBulletId = 0x2022; break;// BULLET
+ case 150: cBulletId = 0x2013; break;// EN DASH
+ case 151: cBulletId = 0x2014; break;// EM DASH
+ case 152: cBulletId = 0x02DC; break;// SMALL TILDE
+ case 153: cBulletId = 0x2122; break;// TRADE MARK SIGN
+ case 154: cBulletId = 0x0161; break;// LATIN SMALL LETTER S WITH CARON
+ case 155: cBulletId = 0x203A; break;// SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+ case 156: cBulletId = 0x0153; break;// LATIN SMALL LIGATURE OE
+ case 158: cBulletId = 0x017E; break;// LATIN SMALL LETTER Z WITH CARON
+ case 159: cBulletId = 0x0178; break;// LATIN CAPITAL LETTER Y WITH DIAERESIS
+// case 222: cBulletId = 0x00B6; break;// PILCROW SIGN / PARAGRAPH SIGN
+ }
+ }
+ nParaFlags |= 0x90; // wir geben den Font und den Charset vor
+ }
+ }
+ case SVX_NUM_CHARS_UPPER_LETTER : // zaehlt von a-z, aa - az, ba - bz, ...
+ case SVX_NUM_CHARS_LOWER_LETTER :
+ case SVX_NUM_ROMAN_UPPER :
+ case SVX_NUM_ROMAN_LOWER :
+ case SVX_NUM_ARABIC :
+ case SVX_NUM_PAGEDESC : // Numerierung aus der Seitenvorlage
+ case SVX_NUM_BITMAP :
+ case SVX_NUM_CHARS_UPPER_LETTER_N : // zaehlt von a-z, aa-zz, aaa-zzz
+ case SVX_NUM_CHARS_LOWER_LETTER_N :
+ {
+ if ( nNumberingType != SVX_NUM_CHAR_SPECIAL )
+ {
+ bExtendedBulletsUsed = TRUE;
+ if ( nDepth & 1 )
+ cBulletId = 0x2013; // defaulting bullet characters for ppt97
+ else if ( nDepth == 4 )
+ cBulletId = 0xbb;
+ else
+ cBulletId = 0x2022;
+
+ switch( (SvxExtNumType)nNumberingType )
+ {
+ case SVX_NUM_CHARS_UPPER_LETTER :
+ case SVX_NUM_CHARS_UPPER_LETTER_N :
+ {
+ if ( sSuffix == String( RTL_CONSTASCII_USTRINGPARAM( ")" ) ) )
+ {
+ if ( sPrefix == String( RTL_CONSTASCII_USTRINGPARAM( "(" ) ) )
+ nMappedNumType = 0xa0001; // (A)
+ else
+ nMappedNumType = 0xb0001; // A)
+ }
+ else
+ nMappedNumType = 0x10001; // A.
+ }
+ break;
+ case SVX_NUM_CHARS_LOWER_LETTER :
+ case SVX_NUM_CHARS_LOWER_LETTER_N :
+ {
+ if ( sSuffix == String( RTL_CONSTASCII_USTRINGPARAM( ")" ) ) )
+ {
+ if ( sPrefix == String( RTL_CONSTASCII_USTRINGPARAM( "(" ) ) )
+ nMappedNumType = 0x80001; // (a)
+ else
+ nMappedNumType = 0x90001; // a)
+ }
+ else
+ nMappedNumType = 0x00001; // a.
+ }
+ break;
+ case SVX_NUM_ROMAN_UPPER :
+ {
+ if ( sSuffix == String( RTL_CONSTASCII_USTRINGPARAM( ")" ) ) )
+ {
+ if ( sPrefix == String( RTL_CONSTASCII_USTRINGPARAM( "(" ) ) )
+ nMappedNumType = 0xe0001; // (I)
+ else
+ nMappedNumType = 0xf0001; // I)
+ }
+ else
+ nMappedNumType = 0x70001; // I.
+ }
+ break;
+ case SVX_NUM_ROMAN_LOWER :
+ {
+ if ( sSuffix == String( RTL_CONSTASCII_USTRINGPARAM( ")" ) ) )
+ {
+ if ( sPrefix == String( RTL_CONSTASCII_USTRINGPARAM( "(" ) ) )
+ nMappedNumType = 0x40001; // (i)
+ else
+ nMappedNumType = 0x50001; // i)
+ }
+ else
+ nMappedNumType = 0x60001; // i.
+ }
+ break;
+ case SVX_NUM_ARABIC :
+ {
+ if ( sSuffix == String( RTL_CONSTASCII_USTRINGPARAM( ")" ) ) )
+ {
+ if ( sPrefix == String( RTL_CONSTASCII_USTRINGPARAM( "(" ) ) )
+ nMappedNumType = 0xc0001; // (1)
+ else
+ nMappedNumType = 0x20001; // 1)
+ }
+ else
+ {
+ if ( ! ( sSuffix.Len() + sPrefix.Len() ) )
+ nMappedNumType = 0xd0001; // 1
+ else
+ nMappedNumType = 0x30001; // 1.
+ }
+ }
+ break;
+ }
+ }
+ nParaFlags |= 0x2f;
+ nBulletFlags |= 6;
+ if ( mbIsBullet )
+ nBulletFlags |= 1;
+ }
+ }
+ }
+ nBulletOfs = nTextOfs + nBulletOfs;
+ if ( nBulletOfs < 0 )
+ nBulletOfs = 0;
+ }
+ }
+}
+
+void ParagraphObj::ImplGetParagraphValues( PPTExBulletProvider& rBuProv, sal_Bool bGetPropStateValue )
+{
+ meBullet = ::com::sun::star::beans::PropertyState_DIRECT_VALUE;
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "IsNumbering" ) ), bGetPropStateValue ) )
+ {
+ meBullet = ePropState;
+ mAny >>= mbIsBullet;
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "NumberingLevel" ) ), bGetPropStateValue ) )
+ {
+ meBullet = ePropState;
+ nDepth = *( (sal_Int16*)mAny.getValue() );
+ if ( nDepth > 4 )
+ nDepth = 4;
+ bDepth = TRUE;
+ }
+ else
+ nDepth = 0;
+ ImplGetNumberingLevel( rBuProv, nDepth, bGetPropStateValue );
+ }
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "ParaTabstops" ) ), bGetPropStateValue ) )
+ {
+ ::com::sun::star::uno::Sequence< ::com::sun::star::style::TabStop>& rSeq =
+ *( ::com::sun::star::uno::Sequence< ::com::sun::star::style::TabStop>*)mAny.getValue();
+ sal_Int32 nCount = rSeq.getLength();
+ ::com::sun::star::style::TabStop* pTabStop = (::com::sun::star::style::TabStop*)rSeq.getConstArray();
+ if ( nCount && pTabStop )
+ {
+ mpTab = new sal_Int32[ nCount + 1 ];
+ mpTab[ 0 ] = nCount;
+ for ( sal_uInt32 i = 0; i < nCount; i++ )
+ mpTab[ i + 1 ] = ( pTabStop[ i ].Position / 4.40972 ) + nTextOfs;
+ }
+ }
+ ::com::sun::star::drawing::TextAdjust eTextAdjust( ::com::sun::star::drawing::TextAdjust_LEFT );
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "ParaAdjust" ) ), bGetPropStateValue ) )
+ eTextAdjust = (::com::sun::star::drawing::TextAdjust)EncodeAnyTosal_Int16( mAny );
+ switch ( eTextAdjust )
+ {
+ case ::com::sun::star::drawing::TextAdjust_CENTER :
+ mnTextAdjust = 1;
+ break;
+ case ::com::sun::star::drawing::TextAdjust_RIGHT :
+ mnTextAdjust = 2;
+ break;
+ default :
+ case ::com::sun::star::drawing::TextAdjust_LEFT :
+ mnTextAdjust = 0;
+ break;
+ }
+ meTextAdjust = ePropState;
+
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "ParaLineSpacing" ) ), bGetPropStateValue ) )
+ {
+ ::com::sun::star::style::LineSpacing aLineSpacing
+ = *( (::com::sun::star::style::LineSpacing*)mAny.getValue() );
+ switch ( aLineSpacing.Mode )
+ {
+ case ::com::sun::star::style::LineSpacingMode::MINIMUM :
+ case ::com::sun::star::style::LineSpacingMode::LEADING :
+ case ::com::sun::star::style::LineSpacingMode::FIX :
+ mnLineSpacing = (sal_Int16)(-( aLineSpacing.Height / 4.40972 ) );
+ break;
+
+ case ::com::sun::star::style::LineSpacingMode::PROP :
+ default:
+ mnLineSpacing = (sal_Int16)( aLineSpacing.Height );
+ break;
+ }
+ }
+ meLineSpacing = ePropState;
+
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "ParaBottomMargin" ) ), bGetPropStateValue ) )
+ {
+ sal_uInt32 nSpacing = *( (sal_uInt32*)mAny.getValue() );
+ mnLineSpacingBottom = (sal_Int16)(-( nSpacing / 4.40972 ) );
+ }
+ meLineSpacingBottom = ePropState;
+
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "ParaTopMargin" ) ), bGetPropStateValue ) )
+ {
+ sal_uInt32 nSpacing = *( (sal_uInt32*)mAny.getValue() );
+ mnLineSpacingTop = (sal_Int16)(-( nSpacing / 4.40972 ) );
+ }
+ meLineSpacingTop = ePropState;
+}
+
+void ParagraphObj::ImplConstruct( ParagraphObj& rParagraphObj )
+{
+ mnTextSize = rParagraphObj.mnTextSize;
+ mnTextAdjust = rParagraphObj.mnTextAdjust;
+ mnLineSpacing = rParagraphObj.mnLineSpacing;
+ mnLineSpacingTop = rParagraphObj.mnLineSpacingTop;
+ mnLineSpacingBottom = rParagraphObj.mnLineSpacingBottom;
+ mbFirstParagraph = rParagraphObj.mbFirstParagraph;
+ mbLastParagraph = rParagraphObj.mbLastParagraph;
+
+ for ( void* pPtr = rParagraphObj.First(); pPtr; pPtr = rParagraphObj.Next() )
+ Insert( new PortionObj( *(PortionObj*)pPtr ), LIST_APPEND );
+
+ if ( rParagraphObj.mpTab && rParagraphObj.mpTab[ 0 ] )
+ {
+ sal_uInt32 nCount = rParagraphObj.mpTab[ 0 ] + 1;
+ mpTab = new sal_Int32[ nCount ];
+ memcpy( mpTab, rParagraphObj.mpTab, nCount << 2 );
+ }
+ else
+ mpTab = NULL;
+
+ bDepth = rParagraphObj.bDepth;
+ bExtendedParameters = rParagraphObj.bExtendedParameters;
+ nParaFlags = rParagraphObj.nParaFlags;
+ nBulletFlags = rParagraphObj.nBulletFlags;
+ sPrefix = rParagraphObj.sPrefix;
+ sSuffix = rParagraphObj.sSuffix;
+ sGraphicUrl = rParagraphObj.sGraphicUrl; // String auf eine Graphic
+ nNumberingType = rParagraphObj.nNumberingType; // in wirlichkeit ist dies ein SvxEnum
+ nHorzAdjust = rParagraphObj.nHorzAdjust;
+ nBulletColor = rParagraphObj.nBulletColor;
+ nBulletOfs = rParagraphObj.nBulletOfs;
+ nStartWith = rParagraphObj.nStartWith; // Start der nummerierung
+ nTextOfs = rParagraphObj.nTextOfs;
+ nBulletRealSize = rParagraphObj.nBulletRealSize; // GroessenVerhaeltnis in Proz
+ nDepth = rParagraphObj.nDepth; // aktuelle tiefe
+ cBulletId = rParagraphObj.cBulletId; // wenn Numbering Type == CharSpecial
+ aFontDesc = rParagraphObj.aFontDesc;
+
+ bExtendedBulletsUsed = rParagraphObj.bExtendedBulletsUsed;
+ nBulletId = rParagraphObj.nBulletId;
+}
+
+::com::sun::star::awt::Size ParagraphObj::ImplMapSize( const ::com::sun::star::awt::Size& rSize )
+{
+ Size aSize( OutputDevice::LogicToLogic( Size( rSize.Width, rSize.Height ), maMapModeSrc, maMapModeDest ) );
+ if ( !aSize.Width() )
+ aSize.Width()++;
+ if ( !aSize.Height() )
+ aSize.Height()++;
+ return ::com::sun::star::awt::Size( aSize.Width(), aSize.Height() );
+}
+
+sal_uInt32 ParagraphObj::ImplCalculateTextPositions( sal_uInt32 nCurrentTextPosition )
+{
+ mnTextSize = 0;
+ for ( void* pPtr = First(); pPtr; pPtr = Next() )
+ mnTextSize += ((PortionObj*)pPtr)->ImplCalculateTextPositions( nCurrentTextPosition + mnTextSize );
+ return mnTextSize;
+}
+
+ParagraphObj& ParagraphObj::operator=( ParagraphObj& rParagraphObj )
+{
+ if ( this != &rParagraphObj )
+ {
+ ImplClear();
+ ImplConstruct( rParagraphObj );
+ }
+ return *this;
+}
+
+// -----------------------------------------------------------------------
+
+ImplTextObj::ImplTextObj( int nInstance )
+{
+ mnRefCount = 1;
+ mnTextSize = 0;
+ mnInstance = nInstance;
+ mpList = new List;
+ mbHasExtendedBullets = FALSE;
+}
+
+ImplTextObj::~ImplTextObj()
+{
+ for ( ParagraphObj* pPtr = (ParagraphObj*)mpList->First(); pPtr; pPtr = (ParagraphObj*)mpList->Next() )
+ delete pPtr;
+ delete mpList;
+}
+
+TextObj::TextObj( ::com::sun::star::uno::Reference< ::com::sun::star::text::XSimpleText > & rXTextRef,
+ int nInstance, Collection& rFontCollection, PPTExBulletProvider& rProv )
+{
+ mpImplTextObj = new ImplTextObj( nInstance );
+
+ ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumerationAccess >
+ aXTextParagraphEA( rXTextRef, ::com::sun::star::uno::UNO_QUERY );
+
+ if ( aXTextParagraphEA.is() )
+ {
+ ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration >
+ aXTextParagraphE( aXTextParagraphEA->createEnumeration() );
+ if ( aXTextParagraphE.is() )
+ {
+ ParaFlags aParaFlags;
+ while ( aXTextParagraphE->hasMoreElements() )
+ {
+ ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextContent > aXParagraph;
+ ::com::sun::star::uno::Any aAny( aXTextParagraphE->nextElement() );
+ if ( aAny >>= aXParagraph )
+ {
+ if ( !aXTextParagraphE->hasMoreElements() )
+ aParaFlags.bLastParagraph = TRUE;
+ ParagraphObj* pPara = new ParagraphObj( aXParagraph, aParaFlags, rFontCollection, rProv );
+ mpImplTextObj->mbHasExtendedBullets |= pPara->bExtendedBulletsUsed;
+ mpImplTextObj->mpList->Insert( pPara, LIST_APPEND );
+ aParaFlags.bFirstParagraph = FALSE;
+ }
+ }
+ }
+ }
+ ImplCalculateTextPositions();
+}
+
+TextObj::TextObj( TextObj& rTextObj )
+{
+ mpImplTextObj = rTextObj.mpImplTextObj;
+ mpImplTextObj->mnRefCount++;
+}
+
+TextObj::~TextObj()
+{
+ if ( ! ( --mpImplTextObj->mnRefCount ) )
+ delete mpImplTextObj;
+}
+
+void TextObj::Write( SvStream* pStrm )
+{
+ sal_uInt32 nSize, nPos = pStrm->Tell();
+ *pStrm << (sal_uInt32)( EPP_TextCharsAtom << 16 ) << (sal_uInt32)0;
+ for ( void* pPtr = First(); pPtr; pPtr = Next() )
+ ((ParagraphObj*)pPtr)->Write( pStrm );
+ nSize = pStrm->Tell() - nPos;
+ pStrm->SeekRel( - ( nSize - 4 ) );
+ *pStrm << (sal_uInt32)( nSize - 8 );
+ pStrm->SeekRel( nSize - 8 );
+}
+
+void TextObj::ImplCalculateTextPositions()
+{
+ mpImplTextObj->mnTextSize = 0;
+ for ( void* pPtr = First(); pPtr; pPtr = Next() )
+ mpImplTextObj->mnTextSize += ((ParagraphObj*)pPtr)->ImplCalculateTextPositions( mpImplTextObj->mnTextSize );
+}
+
+TextObj& TextObj::operator=( TextObj& rTextObj )
+{
+ if ( this != &rTextObj )
+ {
+ if ( ! ( --mpImplTextObj->mnRefCount ) )
+ delete mpImplTextObj;
+ mpImplTextObj = rTextObj.mpImplTextObj;
+ mpImplTextObj->mnRefCount++;
+ }
+ return *this;
+}
+
+// -----------------------------------------------------------------------
+
+void PPTWriter::ImplWriteTextStyleAtom( SvStream& rOut, int nTextInstance,
+ sal_uInt32 nAtomInstance, TextRuleEntry* pTextRule, SvStream& rExtBuStr )
+{
+ PPTExParaSheet& rParaSheet = mpStyleSheet->GetParaSheet( nTextInstance );
+
+ rOut << (sal_uInt32)( ( EPP_TextHeaderAtom << 16 ) | ( nAtomInstance << 4 ) ) << (sal_uInt32)4
+ << nTextInstance;
+
+ List* pFieldList = NULL;
+
+ if ( mbEmptyPresObj )
+ mnTextSize = 0;
+ if ( mnTextSize )
+ {
+ TextObj aTextObj( mXText, nTextInstance, maFontCollection, (PPTExBulletProvider&)*this );
+ aTextObj.Write( &rOut );
+
+ sal_uInt32 nSize, nPos = rOut.Tell();
+ rOut << (sal_uInt32)( EPP_StyleTextPropAtom << 16 ) << (sal_uInt32)0;
+ ImplWriteParagraphs( rOut, aTextObj, mnTextStyle );
+ ImplWritePortions( rOut, aTextObj );
+ nSize = rOut.Tell() - nPos;
+ rOut.SeekRel( - ( nSize - 4 ) );
+ rOut << (sal_uInt32)( nSize - 8 );
+ rOut.SeekRel( nSize - 8 );
+
+ for ( ParagraphObj* pPara = aTextObj.First(); pPara; pPara = aTextObj.Next() )
+ {
+ for ( PortionObj* pPortion = (PortionObj*)pPara->First(); pPortion; pPortion = (PortionObj*)pPara->Next() )
+ {
+ if ( pPortion->mpFieldEntry )
+ {
+ const FieldEntry* pFieldEntry = pPortion->mpFieldEntry;
+
+ switch ( pFieldEntry->nFieldType >> 28 )
+ {
+ case 1 :
+ case 2 :
+ {
+ rOut << (sal_uInt32)( EPP_DateTimeMCAtom << 16 ) << (sal_uInt32)8
+ << (sal_uInt32)( pFieldEntry->nFieldStartPos ) // TxtOffset auf TxtField;
+ << (sal_uInt8)( ( pFieldEntry->nFieldType >> 24 ) & 0xf )// Type
+ << (sal_uInt8)0 << (sal_uInt16)0; // PadBytes
+ }
+ break;
+ case 3 :
+ {
+ rOut << (sal_uInt32)( EPP_SlideNumberMCAtom << 16 ) << (sal_uInt32 ) 4
+ << (sal_uInt32)( pFieldEntry->nFieldStartPos );
+ }
+ break;
+ case 4 :
+ {
+ sal_uInt32 nHyperId = ++mnExEmbed;
+
+ rOut << (sal_uInt32)( ( EPP_InteractiveInfo << 16 ) | 0xf ) << (sal_uInt32)24
+ << (sal_uInt32)( EPP_InteractiveInfoAtom << 16 ) << (sal_uInt32)16
+ << (sal_uInt32)0 // soundref
+ << nHyperId // hyperlink id
+ << (sal_uInt8)4 // hyperlink action
+ << (sal_uInt8)0 // ole verb
+ << (sal_uInt8)0 // jump
+ << (sal_uInt8)0 // flags
+ << (sal_uInt8)8 // hyperlink type ?
+ << (sal_uInt8)0 << (sal_uInt8)0 << (sal_uInt8)0
+ << (sal_uInt32)( EPP_TxInteractiveInfoAtom << 16 ) << (sal_uInt32)8
+ << (sal_uInt32)( pFieldEntry->nFieldStartPos )
+ << (sal_uInt32)( pFieldEntry->nFieldEndPos );
+
+ maHyperlink.Insert( new EPPTHyperlink( pFieldEntry->aFieldUrl, 2 | ( nHyperId << 8 ) ), LIST_APPEND );
+
+ *mpExEmbed << (sal_uInt16)0xf
+ << (sal_uInt16)EPP_ExHyperlink
+ << (sal_uInt32)12
+ << (sal_uInt16)0
+ << (sal_uInt16)EPP_ExHyperlinkAtom
+ << (sal_uInt32)4
+ << nHyperId;
+ }
+ default:
+ break;
+ }
+ }
+ }
+ }
+ // SJ: if this textspecinfoatom is missing, ppt will crash as often as possible
+ // MS documentation : special parsing code is needed to parse this content !?!
+ rOut << (sal_uInt32)( EPP_TextSpecInfoAtom << 16 ) << (sal_uInt32)10 // ??????????????????????????
+ << (sal_uInt32)aTextObj.Count() << (sal_uInt32)2 << (sal_uInt8)9 << (sal_uInt8)8; // ??????????????????????????
+
+ // Star Office Default TabSizes schreiben ( wenn noetig )
+ pPara = aTextObj.First();
+ if ( pPara )
+ {
+ sal_uInt32 nParaFlags = 0x1f;
+ sal_Int16 nDepth, nMask, nNumberingRule[ 10 ];
+ const sal_Int32* pTab = pPara->mpTab;
+
+ for ( ; pPara; pPara = aTextObj.Next() )
+ {
+ if ( pPara->bExtendedParameters )
+ {
+ nDepth = pPara->nDepth;
+ if ( nDepth < 5 )
+ {
+ nMask = 1 << nDepth;
+ if ( nParaFlags & nMask )
+ {
+ nParaFlags &=~ nMask;
+ if ( ( rParaSheet.maParaLevel[ nDepth ].mnTextOfs != pPara->nTextOfs ) ||
+ ( rParaSheet.maParaLevel[ nDepth ].mnBulletOfs != pPara->nBulletOfs ) )
+ {
+ nParaFlags |= nMask << 16;
+ nNumberingRule[ nDepth << 1 ] = pPara->nTextOfs;
+ nNumberingRule[ ( nDepth << 1 ) + 1 ] = pPara->nBulletOfs;
+ }
+ }
+ }
+ }
+ }
+ nParaFlags >>= 16;
+
+ sal_uInt32 nDefaultTabSize = ImplMapSize( ::com::sun::star::awt::Size( 2011, 1 ) ).Width;
+ sal_uInt32 nTabs = ( pTab ) ? pTab[ 0 ] : 0;
+ sal_Int32 nDefaultTabs = abs( maRect.GetWidth() ) / nDefaultTabSize;
+ if ( nTabs )
+ nDefaultTabs -= pTab[ nTabs ] / nDefaultTabSize;
+ if ( nDefaultTabs < 0 )
+ nDefaultTabs = 0;
+
+ sal_uInt32 nTabCount = nTabs + nDefaultTabs;
+ sal_uInt32 i, nTextRulerAtomFlags = 0;
+
+ if ( nTabCount )
+ nTextRulerAtomFlags |= 4;
+ if ( nParaFlags )
+ nTextRulerAtomFlags |= ( ( nParaFlags << 3 ) | ( nParaFlags << 8 ) );
+
+ if ( nTextRulerAtomFlags )
+ {
+ SvStream* pRuleOut = &rOut;
+ if ( pTextRule )
+ pRuleOut = pTextRule->pOut = new SvMemoryStream( 0x100, 0x100 );
+
+ sal_uInt32 nPos = pRuleOut->Tell();
+ *pRuleOut << (sal_uInt32)( EPP_TextRulerAtom << 16 ) << (sal_uInt32)0;
+ *pRuleOut << nTextRulerAtomFlags;
+ if ( nTextRulerAtomFlags & 4 )
+ {
+ *pRuleOut << (sal_uInt16)nTabCount;
+ for ( sal_uInt32 i = 1; i <= nTabs; i++ )
+ *pRuleOut << (sal_uInt32)pTab[ i ];
+
+ sal_uInt32 nWidth = 1;
+ if ( pTab )
+ nWidth += ( pTab[ nTabs ] / nDefaultTabSize );
+ nWidth *= nDefaultTabSize;
+ for ( i = 0; i < nDefaultTabs; i++, nWidth += nDefaultTabSize )
+ *pRuleOut << nWidth;
+ }
+ for ( i = 0; i < 5; i++ )
+ {
+ if ( nTextRulerAtomFlags & ( 8 << i ) )
+ *pRuleOut << nNumberingRule[ i << 1 ];
+ if ( nTextRulerAtomFlags & ( 256 << i ) )
+ *pRuleOut << nNumberingRule[ ( i << 1 ) + 1 ];
+ }
+ sal_uInt32 nBufSize = pRuleOut->Tell() - nPos;
+ pRuleOut->SeekRel( - ( nBufSize - 4 ) );
+ *pRuleOut << (sal_uInt32)( nBufSize - 8 );
+ pRuleOut->SeekRel( nBufSize - 8 );
+ }
+ }
+ if ( aTextObj.HasExtendedBullets() )
+ {
+ ParagraphObj* pPara = aTextObj.First();
+ if ( pPara )
+ {
+ sal_uInt32 nBulletFlags;
+ sal_uInt32 nNumberingType, nPos = rExtBuStr.Tell();
+
+ rExtBuStr << (sal_uInt32)( EPP_PST_ExtendedParagraphAtom << 16 ) << (sal_uInt32)0;
+
+ for ( ; pPara; pPara = aTextObj.Next() )
+ {
+ nBulletFlags = 0;
+ sal_uInt16 nBulletId = pPara->nBulletId;
+ if ( pPara->bExtendedBulletsUsed )
+ {
+ nBulletFlags = 0x800000;
+ if ( pPara->nNumberingType != SVX_NUM_BITMAP )
+ nBulletFlags = 0x3000000;
+ }
+ rExtBuStr << (sal_uInt32)nBulletFlags;
+
+ if ( nBulletFlags & 0x800000 )
+ rExtBuStr << nBulletId;
+ if ( nBulletFlags & 0x1000000 )
+ {
+ switch( pPara->nNumberingType )
+ {
+ case SVX_NUM_NUMBER_NONE :
+ case SVX_NUM_CHAR_SPECIAL :
+ nNumberingType = 0;
+ break;
+ case SVX_NUM_CHARS_UPPER_LETTER :
+ case SVX_NUM_CHARS_UPPER_LETTER_N :
+ case SVX_NUM_CHARS_LOWER_LETTER :
+ case SVX_NUM_CHARS_LOWER_LETTER_N :
+ case SVX_NUM_ROMAN_UPPER :
+ case SVX_NUM_ROMAN_LOWER :
+ case SVX_NUM_ARABIC :
+ nNumberingType = pPara->nMappedNumType;
+ break;
+
+ // case SVX_NUM_PAGEDESC :
+ case SVX_NUM_BITMAP :
+ nNumberingType = 0;
+ break;
+
+ }
+ rExtBuStr << (sal_uInt32)nNumberingType;
+ }
+ if ( nBulletFlags & 0x2000000 )
+ rExtBuStr << (sal_uInt16)pPara->nStartWith;
+ rExtBuStr << (sal_uInt32)0 << (sal_uInt32)0;
+ }
+ sal_uInt32 nSize = ( rExtBuStr.Tell() - nPos ) - 8;
+ rExtBuStr.SeekRel( - ( nSize + 4 ) );
+ rExtBuStr << nSize;
+ rExtBuStr.SeekRel( nSize );
+ }
+ }
+ }
+}
+
+// -----------------------------------------------------------------------
+
+void PPTWriter::ImplWriteAny( sal_uInt32 nFlags, sal_Bool bBezier, Polygon* pPolygon )
+{
+
+ PolyPolygon aPolyPolygon;
+ Polygon aPolygon;
+
+ if ( pPolygon )
+ aPolyPolygon.Insert( *pPolygon, POLYPOLY_APPEND );
+ else
+ {
+ if ( bBezier )
+ {
+ if ( !ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "PolyPolygonBezier" ) ) ) )
+ return;
+ }
+ else if ( !ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "PolyPolygon" ) ) ) )
+ return;
+
+ if ( bBezier )
+ {
+ ::com::sun::star::drawing::PolyPolygonBezierCoords* pSourcePolyPolygon
+ = (::com::sun::star::drawing::PolyPolygonBezierCoords*)mAny.getValue();
+ sal_Int32 nOuterSequenceCount = pSourcePolyPolygon->Coordinates.getLength();
+
+ // Zeiger auf innere sequences holen
+ ::com::sun::star::drawing::PointSequence* pOuterSequence = pSourcePolyPolygon->Coordinates.getArray();
+ ::com::sun::star::drawing::FlagSequence* pOuterFlags = pSourcePolyPolygon->Flags.getArray();
+
+ if ( ! ( pOuterSequence && pOuterFlags ) )
+ return;
+
+ sal_Int32 a, b, nInnerSequenceCount;
+ ::com::sun::star::awt::Point* pArray;
+
+ // dies wird ein Polygon set
+ for ( a = 0; a < nOuterSequenceCount; a++ )
+ {
+ ::com::sun::star::drawing::PointSequence* pInnerSequence = pOuterSequence++;
+ ::com::sun::star::drawing::FlagSequence* pInnerFlags = pOuterFlags++;
+
+ if ( ! ( pInnerSequence && pInnerFlags ) )
+ return;
+
+ // Zeiger auf Arrays holen
+ pArray = pInnerSequence->getArray();
+ ::com::sun::star::drawing::PolygonFlags* pFlags = pInnerFlags->getArray();
+
+ if ( pArray && pFlags )
+ {
+ nInnerSequenceCount = pInnerSequence->getLength();
+ aPolygon = Polygon( nInnerSequenceCount );
+ for( b = 0; b < nInnerSequenceCount; b++)
+ {
+ PolyFlags ePolyFlags( *( (PolyFlags*)pFlags++ ) );
+ ::com::sun::star::awt::Point aPoint( (::com::sun::star::awt::Point)*(pArray++) );
+ aPolygon[ b ] = Point( aPoint.X, aPoint.Y );
+ aPolygon.SetFlags( b, ePolyFlags );
+
+ if ( ePolyFlags == POLY_CONTROL )
+ continue;
+ }
+ aPolyPolygon.Insert( aPolygon, POLYPOLY_APPEND );
+ }
+ }
+ }
+ else
+ {
+ ::com::sun::star::drawing::PointSequenceSequence* pSourcePolyPolygon
+ = (::com::sun::star::drawing::PointSequenceSequence*)mAny.getValue();
+ sal_Int32 nOuterSequenceCount = pSourcePolyPolygon->getLength();
+
+ // Zeiger auf innere sequences holen
+ ::com::sun::star::drawing::PointSequence* pOuterSequence = pSourcePolyPolygon->getArray();
+ if ( !( pOuterSequence ) )
+ return;
+
+ // ist dies ein Polygon oder gar ein PolyPolygon ?
+ // sogar eine einfache Line wird als Polygon verpackt !!! ????
+
+ if ( nFlags & ANY_FLAGS_LINE )
+ {
+ ::com::sun::star::drawing::PointSequence* pInnerSequence = pOuterSequence++;
+ if ( !( pInnerSequence ) )
+ return;
+
+ ::com::sun::star::awt::Point* pArray = pInnerSequence->getArray();
+ if ( pArray )
+ {
+ ::com::sun::star::awt::Point aTopLeft( ImplMapPoint( pArray[ 0 ] ) );
+ ::com::sun::star::awt::Point aBottomRight( ImplMapPoint( pArray[ 1 ] ) );
+ maRect = Rectangle( Point( aTopLeft.X, aTopLeft.Y ), Point( aBottomRight.X, aBottomRight.Y ) );
+ }
+ return;
+ }
+ sal_Int32 a, b, nInnerSequenceCount;
+ ::com::sun::star::awt::Point* pArray;
+
+ // dies wird ein Polygon set
+ for( a = 0; a < nOuterSequenceCount; a++ )
+ {
+ ::com::sun::star::drawing::PointSequence* pInnerSequence = pOuterSequence++;
+ if ( !( pInnerSequence ) )
+ return;
+
+ // Zeiger auf Arrays holen
+ if ( pArray = pInnerSequence->getArray() )
+ {
+ nInnerSequenceCount = pInnerSequence->getLength();
+ aPolygon = Polygon( nInnerSequenceCount );
+ for( b = 0; b < nInnerSequenceCount; b++)
+ {
+ aPolygon[ b ] = Point( pArray->X, pArray->Y );
+ pArray++;
+ }
+ aPolyPolygon.Insert( aPolygon, POLYPOLY_APPEND );
+ }
+ }
+ }
+ }
+ sal_Int32 i, j, k, nPoints, nBezPoints, nPolyCount = aPolyPolygon.Count();
+
+ Rectangle aGeoRect( aPolyPolygon.GetBoundRect() );
+
+ maPosition = ImplMapPoint( ::com::sun::star::awt::Point( aGeoRect.Left(), aGeoRect.Top() ) );
+ maSize = ImplMapSize( ::com::sun::star::awt::Size( aGeoRect.GetWidth(), aGeoRect.GetHeight() ) );
+ maRect = Rectangle( Point( maPosition.X, maPosition.Y ), Size( maSize.Width, maSize.Height ) );
+
+ for ( nBezPoints = nPoints = i = 0; i < nPolyCount; i++ )
+ {
+ k = aPolyPolygon[ i ].GetSize();
+ nPoints += k;
+ for ( j = 0; j < k; j++ )
+ {
+ if ( aPolyPolygon[ i ].GetFlags( j ) != POLY_CONTROL )
+ nBezPoints++;
+ }
+ }
+ sal_uInt32 nVerticesBufSize = ( nPoints << 2 ) + 6;
+ sal_uInt8* pVerticesBuf = new sal_uInt8[ nVerticesBufSize ];
+
+
+ sal_uInt32 nSegmentBufSize = ( ( nBezPoints << 2 ) + 8 );
+ if ( nPolyCount > 1 )
+ nSegmentBufSize += ( nPolyCount << 1 );
+ sal_uInt8* pSegmentBuf = new sal_uInt8[ nSegmentBufSize ];
+
+ sal_uInt8* pPtr = pVerticesBuf;
+ *pPtr++ = (sal_uInt8)( nPoints ); // Little endian
+ *pPtr++ = (sal_uInt8)( nPoints >> 8 );
+ *pPtr++ = (sal_uInt8)( nPoints );
+ *pPtr++ = (sal_uInt8)( nPoints >> 8 );
+ *pPtr++ = (sal_uInt8)0xf0;
+ *pPtr++ = (sal_uInt8)0xff;
+
+ for ( j = 0; j < nPolyCount; j++ )
+ {
+ aPolygon = aPolyPolygon[ j ];
+ nPoints = aPolygon.GetSize();
+ for ( i = 0; i < nPoints; i++ ) // Punkte aus Polygon in Buffer schreiben
+ {
+ Point aPoint = aPolygon[ i ];
+ aPoint.X() -= aGeoRect.Left();
+ aPoint.Y() -= aGeoRect.Top();
+
+ *pPtr++ = (sal_uInt8)( aPoint.X() );
+ *pPtr++ = (sal_uInt8)( aPoint.X() >> 8 );
+ *pPtr++ = (sal_uInt8)( aPoint.Y() );
+ *pPtr++ = (sal_uInt8)( aPoint.Y() >> 8 );
+ }
+ }
+
+ pPtr = pSegmentBuf;
+ *pPtr++ = (sal_uInt8)( ( nSegmentBufSize - 6 ) >> 1 );
+ *pPtr++ = (sal_uInt8)( ( nSegmentBufSize - 6 ) >> 9 );
+ *pPtr++ = (sal_uInt8)( ( nSegmentBufSize - 6 ) >> 1 );
+ *pPtr++ = (sal_uInt8)( ( nSegmentBufSize - 6 ) >> 9 );
+ *pPtr++ = (sal_uInt8)2;
+ *pPtr++ = (sal_uInt8)0;
+
+ for ( j = 0; j < nPolyCount; j++ )
+ {
+ *pPtr++ = 0x0; // Polygon start
+ *pPtr++ = 0x40;
+ aPolygon = aPolyPolygon[ j ];
+ nPoints = aPolygon.GetSize();
+ for ( i = 0; i < nPoints; i++ ) // Polyflags in Buffer schreiben
+ {
+ *pPtr++ = 0;
+ if ( bBezier )
+ *pPtr++ = 0xb3;
+ else
+ *pPtr++ = 0xac;
+ if ( ( i + 1 ) != nPoints )
+ {
+ *pPtr++ = 1;
+ if ( aPolygon.GetFlags( i + 1 ) == POLY_CONTROL )
+ {
+ *pPtr++ = 0x20;
+ i += 2;
+ }
+ else
+ *pPtr++ = 0;
+ }
+ }
+ if ( nPolyCount > 1 )
+ {
+ *pPtr++ = 1; // end of polygon
+ *pPtr++ = 0x60;
+ }
+ }
+ *pPtr++ = 0;
+ *pPtr++ = 0x80;
+
+ mp_EscherEx->AddOpt( _Escher_Prop_geoRight, aGeoRect.GetSize().Width() );
+ mp_EscherEx->AddOpt( _Escher_Prop_geoBottom, aGeoRect.GetSize().Height() );
+
+ mp_EscherEx->AddOpt( _Escher_Prop_shapePath, _Escher_ShapeComplex );
+ mp_EscherEx->AddOpt( _Escher_Prop_pVertices, TRUE, nVerticesBufSize - 6, (sal_uInt8*)pVerticesBuf, nVerticesBufSize );
+ mp_EscherEx->AddOpt( _Escher_Prop_pSegmentInfo, TRUE, nSegmentBufSize, (sal_uInt8*)pSegmentBuf, nSegmentBufSize );
+}
+
+// -----------------------------------------------------------------------
+
+void PPTWriter::ImplWriteObjectEffect( SvStream& rSt,
+ ::com::sun::star::presentation::AnimationEffect eAe,
+ ::com::sun::star::presentation::AnimationEffect eTe,
+ sal_uInt16 nOrder )
+{
+ sal_uInt32 nDimColor = 0x7000000; // color to use for dimming
+ sal_uInt32 nFlags = 0x4400; // set of flags that determine type of build
+ sal_uInt32 nSoundRef = 0; // 0 if storage is from clipboard. Otherwise index(ID) in SoundCollection list.
+ sal_uInt32 nDelayTime = 0; // delay before playing object
+ sal_uInt16 nSlideCount = 1; // number of slides to play object
+ UINT8 nBuildType = 1; // type of build
+ UINT8 nFlyMethod = 0; // animation effect( fly, zoom, appear, etc )
+ UINT8 nFlyDirection = 0; // Animation direction( left, right, up, down, etc )
+ UINT8 nAfterEffect = 0; // what to do after build
+ UINT8 nSubEffect = 0; // build by word or letter
+ UINT8 nOleVerb = 0; // Determines object's class (sound, video, other)
+
+ if ( eAe == ::com::sun::star::presentation::AnimationEffect_NONE )
+ eAe = eTe;
+ switch ( eAe )
+ {
+ case ::com::sun::star::presentation::AnimationEffect_WAVYLINE_FROM_TOP :
+ case ::com::sun::star::presentation::AnimationEffect_LASER_FROM_TOP :
+ case ::com::sun::star::presentation::AnimationEffect_FADE_FROM_TOP :
+ nFlyDirection++;
+ case ::com::sun::star::presentation::AnimationEffect_WAVYLINE_FROM_LEFT :
+ case ::com::sun::star::presentation::AnimationEffect_LASER_FROM_LEFT :
+ case ::com::sun::star::presentation::AnimationEffect_FADE_FROM_LEFT :
+ nFlyDirection++;
+ case ::com::sun::star::presentation::AnimationEffect_WAVYLINE_FROM_BOTTOM :
+ case ::com::sun::star::presentation::AnimationEffect_LASER_FROM_BOTTOM :
+ case ::com::sun::star::presentation::AnimationEffect_FADE_FROM_BOTTOM :
+ nFlyDirection++;
+ case ::com::sun::star::presentation::AnimationEffect_WAVYLINE_FROM_RIGHT :
+ case ::com::sun::star::presentation::AnimationEffect_LASER_FROM_RIGHT :
+ case ::com::sun::star::presentation::AnimationEffect_FADE_FROM_RIGHT :
+ nFlyMethod = 0xa;
+ break;
+
+ case ::com::sun::star::presentation::AnimationEffect_FADE_TO_CENTER :
+ nFlyDirection++;
+ case ::com::sun::star::presentation::AnimationEffect_FADE_FROM_CENTER :
+ nFlyMethod = 0xb;
+ break;
+
+ case ::com::sun::star::presentation::AnimationEffect_MOVE_FROM_BOTTOM :
+ nFlyDirection++;
+ case ::com::sun::star::presentation::AnimationEffect_MOVE_FROM_RIGHT :
+ nFlyDirection++;
+ case ::com::sun::star::presentation::AnimationEffect_MOVE_FROM_TOP :
+ nFlyDirection++;
+ case ::com::sun::star::presentation::AnimationEffect_MOVE_FROM_LEFT :
+ nFlyMethod = 0xc;
+ break;
+
+ case ::com::sun::star::presentation::AnimationEffect_VERTICAL_LINES :
+ case ::com::sun::star::presentation::AnimationEffect_VERTICAL_STRIPES :
+ nFlyDirection++;
+ case ::com::sun::star::presentation::AnimationEffect_HORIZONTAL_LINES :
+ case ::com::sun::star::presentation::AnimationEffect_HORIZONTAL_STRIPES :
+ nFlyMethod = 8;
+ break;
+
+ case ::com::sun::star::presentation::AnimationEffect_CLOCKWISE :
+ nFlyDirection++;
+ case ::com::sun::star::presentation::AnimationEffect_COUNTERCLOCKWISE :
+ nFlyMethod = 3;
+ break;
+
+ case ::com::sun::star::presentation::AnimationEffect_LASER_FROM_UPPERLEFT :
+ case ::com::sun::star::presentation::AnimationEffect_FADE_FROM_UPPERLEFT :
+ nFlyDirection++;
+ case ::com::sun::star::presentation::AnimationEffect_LASER_FROM_UPPERRIGHT :
+ case ::com::sun::star::presentation::AnimationEffect_FADE_FROM_UPPERRIGHT :
+ nFlyDirection++;
+ case ::com::sun::star::presentation::AnimationEffect_LASER_FROM_LOWERLEFT :
+ case ::com::sun::star::presentation::AnimationEffect_FADE_FROM_LOWERLEFT :
+ nFlyDirection++;
+ case ::com::sun::star::presentation::AnimationEffect_LASER_FROM_LOWERRIGHT :
+ case ::com::sun::star::presentation::AnimationEffect_FADE_FROM_LOWERRIGHT :
+ nFlyDirection += 4;
+ nFlyMethod = 9;
+ break;
+
+ case ::com::sun::star::presentation::AnimationEffect_CLOSE_VERTICAL :
+ nFlyDirection++;
+ case ::com::sun::star::presentation::AnimationEffect_OPEN_HORIZONTAL :
+ nFlyDirection++;
+ case ::com::sun::star::presentation::AnimationEffect_CLOSE_HORIZONTAL :
+ nFlyDirection++;
+ case ::com::sun::star::presentation::AnimationEffect_OPEN_VERTICAL :
+ nFlyMethod = 0xd;
+ break;
+
+ case ::com::sun::star::presentation::AnimationEffect_PATH :
+ nFlyDirection = 0x1c;
+ nFlyMethod = 0xc;
+ break;
+
+ case ::com::sun::star::presentation::AnimationEffect_SPIRALIN_LEFT :
+ case ::com::sun::star::presentation::AnimationEffect_SPIRALOUT_LEFT :
+ nFlyDirection++;
+ case ::com::sun::star::presentation::AnimationEffect_SPIRALIN_RIGHT :
+ case ::com::sun::star::presentation::AnimationEffect_SPIRALOUT_RIGHT :
+ nFlyMethod = 0x3;
+ break;
+
+ case ::com::sun::star::presentation::AnimationEffect_DISSOLVE :
+ nFlyMethod = 5;
+ break;
+
+ case ::com::sun::star::presentation::AnimationEffect_NONE :
+ case ::com::sun::star::presentation::AnimationEffect_APPEAR :
+ break;
+
+ case ::com::sun::star::presentation::AnimationEffect_HIDE :
+ case ::com::sun::star::presentation::AnimationEffect_MOVE_TO_LEFT :
+ case ::com::sun::star::presentation::AnimationEffect_MOVE_TO_TOP :
+ case ::com::sun::star::presentation::AnimationEffect_MOVE_TO_RIGHT :
+ case ::com::sun::star::presentation::AnimationEffect_MOVE_TO_BOTTOM :
+ case ::com::sun::star::presentation::AnimationEffect_RANDOM :
+ nFlyMethod = 1;
+ break;
+ }
+ if ( mnDiaMode >= 1 )
+ nFlags |= 4;
+ if ( eTe != ::com::sun::star::presentation::AnimationEffect_NONE )
+ nBuildType = 2;
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "SoundOn" ) ) ) )
+ {
+ sal_Bool bBool;
+ mAny >>= bBool;
+ if ( bBool )
+ {
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "Sound" ) ) ) )
+ {
+ String aString( *(::rtl::OUString*)mAny.getValue() );
+ if ( aString.Len() )
+ {
+ nSoundRef = maSoundCollection.GetId( ByteString( aString, RTL_TEXTENCODING_UTF8 ) ) + 1;
+ nFlags |= 0x10;
+ }
+ }
+ }
+ }
+ sal_Bool bDimHide = FALSE;
+ sal_Bool bDimPrevious = FALSE;
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "DimHide" ) ) ) )
+ mAny >>= bDimHide;
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "DimPrevious" ) ) ) )
+ mAny >>= bDimPrevious;
+ if ( bDimPrevious )
+ nAfterEffect |= 1;
+ if ( bDimHide )
+ nAfterEffect |= 2;
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "DimColor" ) ) ) )
+ nDimColor = mp_EscherEx->GetColor( *((sal_uInt32*)mAny.getValue()) ) | 0xfe000000;
+
+ rSt << (sal_uInt32)( ( EPP_AnimationInfo << 16 ) | 0xf ) << (sal_uInt32)36
+ << (sal_uInt32)( ( EPP_AnimationInfoAtom << 16 ) | 1 )<< (sal_uInt32)28
+ << nDimColor << nFlags << nSoundRef << nDelayTime
+ << nOrder // order of build ( 1.. )
+ << nSlideCount << nBuildType << nFlyMethod << nFlyDirection
+ << nAfterEffect << nSubEffect << nOleVerb
+ << (sal_uInt16)0; // PadWord
+}
+
+// -----------------------------------------------------------------------
+
+void PPTWriter::ImplWriteClickAction( SvStream& rSt, ::com::sun::star::presentation::ClickAction eCa )
+{
+ sal_uInt32 nSoundRef = 0; // a reference to a sound in the sound collection, or NULL.
+ sal_uInt32 nHyperLinkID = 0;// a persistent unique identifier to an external hyperlink object (only valid when action == HyperlinkAction).
+ sal_uInt8 nAction = 0; // Action See Action Table
+ sal_uInt8 nOleVerb = 0; // OleVerb Only valid when action == OLEAction. OLE verb to use, 0 = first verb, 1 = second verb, etc.
+ sal_uInt8 nJump = 0; // Jump See Jump Table
+ sal_uInt8 nFlags = 0; // Bit 1: Animated. If 1, then button is animated
+ // Bit 2: Stop sound. If 1, then stop current sound when button is pressed.
+ // Bit 3: CustomShowReturn. If 1, and this is a jump to custom show, then return to this slide after custom show.
+ sal_uInt8 nHyperLinkType = 0;// HyperlinkType a value from the LinkTo enum, such as LT_URL (only valid when action == HyperlinkAction).
+
+ String aFile;
+
+ /*
+ Action Table: Action Value
+ NoAction 0
+ MacroAction 1
+ RunProgramAction 2
+ JumpAction 3
+ HyperlinkAction 4
+ OLEAction 5
+ MediaAction 6
+ CustomShowAction 7
+
+ Jump Table: Jump Value
+ NoJump 0
+ NextSlide, 1
+ PreviousSlide, 2
+ FirstSlide, 3
+ LastSlide, 4
+ LastSlideViewed 5
+ EndShow 6
+ */
+
+ switch( eCa )
+ {
+ case ::com::sun::star::presentation::ClickAction_STOPPRESENTATION :
+ nJump += 2;
+ case ::com::sun::star::presentation::ClickAction_LASTPAGE :
+ nJump++;
+ case ::com::sun::star::presentation::ClickAction_FIRSTPAGE :
+ nJump++;
+ case ::com::sun::star::presentation::ClickAction_PREVPAGE :
+ nJump++;
+ case ::com::sun::star::presentation::ClickAction_NEXTPAGE :
+ {
+ nJump++;
+ nAction = 3;
+ }
+ break;
+ case ::com::sun::star::presentation::ClickAction_SOUND :
+ {
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "Bookmark" ) ) ) )
+ {
+ String aString( *(::rtl::OUString*)mAny.getValue() );
+ nSoundRef = maSoundCollection.GetId( ByteString( aString, RTL_TEXTENCODING_UTF8 ) ) + 1;
+ }
+ }
+ break;
+ case ::com::sun::star::presentation::ClickAction_PROGRAM :
+ {
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "Bookmark" ) ) ) )
+ {
+ INetURLObject aUrl( *(::rtl::OUString*)mAny.getValue() );
+ if ( INET_PROT_FILE == aUrl.GetProtocol() )
+ {
+ aFile = aUrl.PathToFileName();
+ nAction = 2;
+ }
+ }
+ }
+ break;
+
+ case ::com::sun::star::presentation::ClickAction_BOOKMARK :
+ {
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "Bookmark" ) ) ) )
+ {
+ String aBookmark( *(::rtl::OUString*)mAny.getValue() );
+ sal_uInt32 nIndex = 0;
+ for ( String* pStr = (String*)maSlideNameList.First(); pStr; pStr = (String*)maSlideNameList.Next(), nIndex++ )
+ {
+ if ( *pStr == aBookmark )
+ {
+ // Bookmark ist ein link zu einer Dokumentseite
+ nAction = 4;
+ nHyperLinkID = ++mnExEmbed; //( maHyperlink.Count() + 1 ) << 1;
+ nHyperLinkType = 7;
+ String aHyperString = UniString::CreateFromInt32( 256 + nIndex );
+ aHyperString.Append( String( RTL_CONSTASCII_USTRINGPARAM( "," ) ) );
+ aHyperString.Append( String::CreateFromInt32( nIndex + 1 ) );
+ aHyperString.Append( String( RTL_CONSTASCII_USTRINGPARAM( ",Slide " ) ) );
+ aHyperString.Append( String::CreateFromInt32( nIndex + 1 ) );
+ maHyperlink.Insert( new EPPTHyperlink( aHyperString, 1 | ( nIndex << 8 ) | ( 1 << 31 ) ), LIST_APPEND );
+
+ *mpExEmbed << (sal_uInt16)0xf
+ << (sal_uInt16)EPP_ExHyperlink
+ << (sal_uInt32)12
+ << (sal_uInt16)0
+ << (sal_uInt16)EPP_ExHyperlinkAtom
+ << (sal_uInt32)4
+ << nHyperLinkID;
+ break;
+ }
+ }
+ }
+ }
+ break;
+
+ case ::com::sun::star::presentation::ClickAction_DOCUMENT :
+ case ::com::sun::star::presentation::ClickAction_INVISIBLE :
+ case ::com::sun::star::presentation::ClickAction_VERB :
+ case ::com::sun::star::presentation::ClickAction_VANISH :
+ case ::com::sun::star::presentation::ClickAction_MACRO :
+ default :
+ break;
+ }
+
+ sal_uInt32 nContainerSize = 24;
+ if ( nAction == 2 )
+ nContainerSize += ( aFile.Len() * 2 ) + 8;
+ rSt << (sal_uInt32)( ( EPP_InteractiveInfo << 16 ) | 0xf ) << (sal_uInt32)nContainerSize
+ << (sal_uInt32)( EPP_InteractiveInfoAtom << 16 ) << (sal_uInt32)16
+ << nSoundRef
+ << nHyperLinkID
+ << nAction
+ << nOleVerb
+ << nJump
+ << nFlags
+ << (sal_uInt32)nHyperLinkType;
+
+ if ( nAction == 2 ) // run program Action
+ {
+ rSt << (sal_uInt32)( ( EPP_CString << 16 ) | 0x20 ) << (sal_uInt32)( aFile.Len() * 2 );
+ for ( sal_Int32 i = 0; i < aFile.Len(); i++ )
+ rSt << aFile.GetChar( i );
+ }
+
+ rSt << (sal_uInt32)( ( EPP_InteractiveInfo << 16 ) | 0x1f ) << (sal_uInt32)24 // Mouse Over Action
+ << (sal_uInt32)( EPP_InteractiveInfo << 16 ) << (sal_uInt32)16;
+ for ( int i = 0; i < 4; i++, rSt << (sal_uInt32)0 );
+}
+
+// -----------------------------------------------------------------------
+
+sal_Bool PPTWriter::ImplIsAutoShape ( const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > & rXShape,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > & rXPropertySet,
+ sal_Bool bIsGroup, sal_Int32 nAngle, sal_uInt32& nShapeType, sal_uInt32& nReplace, List& rAdjustmentList,
+ Rectangle& rPolyBoundRect )
+{
+ sal_Bool bIsAutoShape = FALSE;
+ TRY
+ {
+ sal_uInt32 i;
+ sal_uInt32 nSequenceCount = 0;
+ sal_uInt32* pPtr = NULL;
+
+ ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess > aXIndexAccess;
+ ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > aXShape( rXShape );
+ ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > aXPropSet( rXPropertySet );
+ ::com::sun::star::uno::Sequence< sal_uInt32 > aSequence;
+
+ if ( !bIsGroup )
+ nReplace = 1;
+ else
+ {
+ aXIndexAccess = ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess >
+ ( rXShape, ::com::sun::star::uno::UNO_QUERY );
+
+ if ( !aXIndexAccess.is() )
+ return FALSE;
+ nReplace = aXIndexAccess->getCount();
+ if ( !nReplace )
+ return FALSE;
+ }
+
+ sal_uInt32 nChecksum = 0;
+ sal_Int32 aVal[ 3 ];
+ double fAngle;
+ if ( nAngle )
+ fAngle = F_PI18000 * ( 36000 - ( nAngle % 36000 ) );
+
+ ::com::sun::star::awt::Point aPos( rXShape->getPosition() );
+ ::com::sun::star::awt::Size aSize( rXShape->getSize() );
+ ::com::sun::star::awt::Point aCenter( aPos.X + ( aSize.Width >> 1 ), aPos.Y + ( aSize.Height >> 1 ) );
+
+ for ( i = 0; i < nReplace; i++ )
+ {
+ sal_Bool bBezier;
+ ByteString aType;
+
+ if ( bIsGroup )
+ {
+ ::com::sun::star::uno::Any aAny( aXIndexAccess->getByIndex( i ) );
+ if (!( aAny >>= aXShape ) )
+ return FALSE;
+ aType = ByteString( String( aXShape->getShapeType() ), RTL_TEXTENCODING_UTF8 );
+ aAny = ::com::sun::star::uno::Any( aXShape->queryInterface( ::getCppuType( (const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >*) 0 ) ));
+ if (!( aAny >>= aXPropSet ) )
+ return FALSE;
+ }
+ else
+ aType = ByteString( String( aXShape->getShapeType() ), RTL_TEXTENCODING_UTF8 );
+
+ sal_Bool bPossibleAutoShape =
+ ( aType == "com.sun.star.drawing.PolyPolygonShape" )
+ || ( aType == "com.sun.star.drawing.PolyLineShape" )
+ || ( aType == "com.sun.star.drawing.OpenBezierShape" )
+ || ( aType == "com.sun.star.drawing.OpenFreeHandShape" )
+ || ( aType == "com.sun.star.drawing.PolyLinePathShape" )
+ || ( aType == "com.sun.star.drawing.ClosedBezierShape" )
+ || ( aType == "com.sun.star.drawing.ClosedFreeHandShape" )
+ || ( aType == "com.sun.star.drawing.PolyPolygonPathShape" );
+
+ if ( !bPossibleAutoShape )
+ return FALSE;
+
+ bBezier = ( aType != "com.sun.star.drawing.PolyPolygonShape" )
+ && ( aType != "com.sun.star.drawing.PolyLineShape" );
+
+ if ( !i )
+ {
+ ::com::sun::star::uno::Any aAny( aXPropSet->getPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "AutoShapeAdjustment" ) ) ) );
+ if( !( aAny >>= aSequence ) )
+ return FALSE;
+ nSequenceCount = aSequence.getLength();
+ if ( nSequenceCount < 3 )
+ return FALSE;
+ pPtr = aSequence.getArray();
+ if ( pPtr[ nSequenceCount - 1 ] != 0x80001234 ) // this is a magic number, perhaps a ms autoshape is possible
+ return FALSE;
+ if ( (sal_uInt16)pPtr[ nSequenceCount - 2 ] != nReplace ) // this is the original number of polygons the autoshape
+ return FALSE; // was created to by the AutoShapeImport
+ nShapeType = pPtr[ nSequenceCount - 2 ] >> 16; // now we are setting the destination ms shapetype
+ }
+
+ ::com::sun::star::uno::Any aAny;
+ if ( bBezier )
+ aAny = ::com::sun::star::uno::Any( aXPropSet->getPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "PolyPolygonBezier" ) ) ) );
+ else
+ aAny = ::com::sun::star::uno::Any( aXPropSet->getPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "PolyPolygon" ) ) ) );
+
+ if ( aAny.getValue() )
+ {
+ sal_Int32 nOuterSequenceCount, nInnerSequenceCount;
+ ::com::sun::star::drawing::PointSequence* pOuterSequence = NULL;
+ ::com::sun::star::drawing::FlagSequence* pOuterFlags = NULL;
+ if ( bBezier )
+ {
+ ::com::sun::star::drawing::PolyPolygonBezierCoords* pSourcePolyPolygon =
+ ( ::com::sun::star::drawing::PolyPolygonBezierCoords* )aAny.getValue();
+ nOuterSequenceCount = pSourcePolyPolygon->Coordinates.getLength();
+ pOuterSequence = pSourcePolyPolygon->Coordinates.getArray();
+ pOuterFlags = pSourcePolyPolygon->Flags.getArray();
+ }
+ else
+ {
+ ::com::sun::star::drawing::PointSequenceSequence* pSourcePolyPolygon =
+ ( ::com::sun::star::drawing::PointSequenceSequence*)aAny.getValue();
+ nOuterSequenceCount = pSourcePolyPolygon->getLength();
+ pOuterSequence = pSourcePolyPolygon->getArray();
+ }
+ while( nOuterSequenceCount )
+ {
+ nOuterSequenceCount--;
+ ::com::sun::star::drawing::PointSequence* pInnerSequence = pOuterSequence + nOuterSequenceCount;
+ ::com::sun::star::drawing::FlagSequence* pInnerFlags = ( pOuterFlags ) ? pOuterFlags + nOuterSequenceCount : NULL;
+ ::com::sun::star::awt::Point* pArray = pInnerSequence->getArray();
+ ::com::sun::star::drawing::PolygonFlags* pFlags = ( pInnerFlags ) ? pInnerFlags->getArray() : NULL;
+ nInnerSequenceCount = pInnerSequence->getLength();
+ while ( nInnerSequenceCount )
+ {
+ nInnerSequenceCount--;
+ ::com::sun::star::drawing::PolygonFlags ePolyFlags
+ = ( pFlags ) ? pFlags[ nInnerSequenceCount ]
+ : ::com::sun::star::drawing::PolygonFlags_NORMAL;
+ Point aPoint( pArray[ nInnerSequenceCount ].X, pArray[ nInnerSequenceCount ].Y );
+
+ if ( nAngle )
+ {
+ sal_Int32 nX = aPoint.X() - aCenter.X;
+ sal_Int32 nY = aPoint.Y() - aCenter.Y;
+ Point aRotPoint( (sal_Int32)( cos( fAngle ) * nX + sin( fAngle ) * nY + 0.5 ),
+ -(sal_Int32)( sin( fAngle ) * nX - cos( fAngle ) * nY + 0.5 ) );
+ Rectangle aRotPointRect( aRotPoint, Size( 1, 1 ) );
+ rPolyBoundRect.Union( aRotPointRect );
+ }
+#ifdef __LITTLEENDIAN
+ aVal[ 0 ] = SWAPLONG( aPoint.X() - aPos.X );
+ aVal[ 1 ] = SWAPLONG( aPoint.Y() - aPos.Y );
+ aVal[ 2 ] = SWAPLONG( ePolyFlags );
+#else
+ aVal[ 0 ] = aPoint.X() - aPos.X;
+ aVal[ 1 ] = aPoint.Y() - aPos.Y;
+ aVal[ 2 ] = ePolyFlags;
+#endif
+ nChecksum = rtl_crc32( nChecksum, &aVal[ 0 ], 12 );
+ }
+ }
+ }
+ }
+
+ bIsAutoShape = pPtr[ nSequenceCount - 3 ] == nChecksum; // testing the checksum
+ if ( bIsAutoShape )
+ {
+ if ( !nAngle )
+ rPolyBoundRect = Rectangle( Point( aPos.X, aPos.Y ), Size( aSize.Width, aSize.Height ) );
+ else
+ rPolyBoundRect.Move( aCenter.X, aCenter.Y );
+ rAdjustmentList.Clear();
+ for ( i = 0; i < ( nSequenceCount - 3 ); i++ )
+ rAdjustmentList.Insert( (void*)pPtr[ i ], LIST_APPEND );
+ }
+ if ( bIsGroup ) // the groupshape is to be removed too
+ nReplace++;
+ }
+
+ CATCH_ALL()
+ {
+ bIsAutoShape = FALSE;
+ }
+ END_CATCH;
+
+ return bIsAutoShape;
+}
+
+// -----------------------------------------------------------------------
+
+#define ADD_SHAPE( nType, nFlags ) \
+{ \
+ sal_uInt32 nId = mp_EscherEx->GetShapeID(); \
+ mp_EscherEx->AddShape( (sal_uInt32)nType, (sal_uInt32)nFlags, nId ); \
+ aSolverContainer.AddShape( mXShape, nId ); \
+}
+
+#define SHAPE_TEXT( bFill ) \
+{ \
+ mnTextStyle = EPP_TEXTSTYLE_TEXT; \
+ mp_EscherEx->OpenContainer( _Escher_SpContainer ); \
+ ADD_SHAPE( _Escher_ShpInst_TextBox, 0xa00 ); \
+ mp_EscherEx->BeginCount(); \
+ if ( bFill ) \
+ ImplWriteFillBundle( TRUE ); \
+ ImplWriteTextBundle(); \
+}
+
+void PPTWriter::ImplWritePage( SolverContainer& aSolverContainer, PageType ePageType, sal_Bool bMasterPage, int nPageNumber )
+{
+ sal_uInt32 nInstance, nGroups, nShapes, nShapeCount, nPer, nLastPer, nIndices, nGroupLevel, nOlePictureId;
+ sal_uInt16 nEffectCount;
+ ::com::sun::star::awt::Point aTextRefPoint;
+
+ ResetGroupTable( nShapes = mXShapes->getCount() );
+
+ nIndices = nInstance = nLastPer = nShapeCount = nEffectCount = 0;
+
+ sal_Bool bIsTitlePossible = TRUE; // bei mehr als einem title geht powerpoint in die knie
+
+ sal_uInt32 nOutlinerCount = 0; // die gliederungsobjekte muessen dem layout entsprechen,
+ sal_uInt32 nPrevTextStyle; // es darf nicht mehr als zwei geben
+
+ nOlePictureId = 0;
+
+ sal_Bool bAdditionalText = FALSE;
+
+ SvMemoryStream* pClientTextBox = NULL;
+ SvMemoryStream* pClientData = NULL;
+
+ const PHLayout& rLayout =
+ ( ePageType == NORMAL ) ? pPHLayout[ mnLayout ]
+ : ( ePageType == MASTER ) ? pPHLayout[ 0 ] : pPHLayout[ 20 ];
+
+ while( GetNextGroupEntry() )
+ {
+ nShapeCount++;
+
+ nPer = ( 5 * nShapeCount ) / nShapes;
+ if ( nPer != nLastPer )
+ {
+ nLastPer = nPer;
+ sal_uInt32 nValue = mnPagesWritten * 5 + nPer;
+ if ( nValue > mnStatMaxValue )
+ nValue = mnStatMaxValue;
+ if ( mbStatusIndicator && ( nValue > mnLatestStatValue ) )
+ {
+ mXStatusIndicator->setValue( nValue );
+ mnLatestStatValue = nValue;
+ }
+ }
+ nGroups = GetGroupsClosed();
+ for ( sal_uInt32 i = 0; i < nGroups; i++, mp_EscherEx->LeaveGroup() );
+
+ if ( ImplGetShapeByIndex( GetCurrentGroupIndex(), TRUE ) )
+ {
+ sal_Bool bIsAutoShape = FALSE;
+ sal_Bool bGroup = mType == "drawing.Group";
+ sal_Bool bOpenBezier = ( mType == "drawing.OpenBezier" ) || ( mType == "drawing.OpenFreeHand" )
+ || ( mType == "drawing.PolyLinePath" );
+ sal_Bool bClosedBezier = ( mType == "drawing.ClosedBezier" ) || ( mType == "drawing.ClosedFreeHand" )
+ || ( mType == "drawing.PolyPolygonPath" );
+ sal_Bool bPolyPolygon = mType == "drawing.PolyPolygon";
+ sal_Bool bPolyLine = mType == "drawing.PolyLine";
+
+
+ sal_uInt32 nReplace;
+ sal_uInt32 nShapeType;
+ List aAdjustmentList;
+ Rectangle aPolyBoundRect;
+ if ( bGroup || bOpenBezier || bClosedBezier || bPolyPolygon || bPolyLine )
+ bIsAutoShape = ImplIsAutoShape( mXShape, mXPropSet, bGroup, mnAngle, nShapeType, nReplace, aAdjustmentList, aPolyBoundRect );
+
+ if ( bIsAutoShape )
+ {
+ if ( bGroup )
+ {
+ ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess >
+ aXIndexAccess( mXShape, ::com::sun::star::uno::UNO_QUERY );
+ EnterGroup( aXIndexAccess );
+ GetNextGroupEntry();
+ ImplGetShapeByIndex( GetCurrentGroupIndex(), TRUE );
+ SkipCurrentGroup();
+ }
+ }
+ else
+ {
+ if ( bGroup )
+ {
+ ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess >
+ aXIndexAccess( mXShape, ::com::sun::star::uno::UNO_QUERY );
+ EnterGroup( aXIndexAccess );
+ mp_EscherEx->EnterGroup( &maRect );
+ continue;
+ }
+ sal_Bool bIsFontwork = FALSE;
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "IsFontwork" ) ) ) )
+ mAny >>= bIsFontwork;
+ if ( bIsFontwork || ( mType == "drawing.Measure" ) || ( mType == "drawing.Caption" ) )
+ {
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "BoundRect" ) ) ) )
+ {
+ ::com::sun::star::awt::Rectangle aRect( *(::com::sun::star::awt::Rectangle*)mAny.getValue() );
+ maPosition = ImplMapPoint( ::com::sun::star::awt::Point( aRect.X, aRect.Y ) );
+ maSize = ImplMapSize( ::com::sun::star::awt::Size( aRect.Width, aRect.Height ) );
+ maRect = Rectangle( Point( maPosition.X, maPosition.Y ), Size( maSize.Width, maSize.Height ) );
+ }
+ mType = "drawing.dontknow";
+ }
+ }
+
+ sal_uInt8 nPlaceHolderAtom = EPP_PLACEHOLDER_NONE;
+
+ mnShadow = 2;
+ mnTextSize = 0;
+ mnTextStyle = EPP_TEXTSTYLE_NORMAL;
+
+ if ( bIsAutoShape )
+ {
+ mp_EscherEx->OpenContainer( _Escher_SpContainer );
+ ADD_SHAPE( nShapeType, 0xa00 );
+ mp_EscherEx->BeginCount();
+
+ ::com::sun::star::awt::Point aP( aPolyBoundRect.Left(), aPolyBoundRect.Top() );
+ ::com::sun::star::awt::Size aS( aPolyBoundRect.GetWidth(), aPolyBoundRect.GetHeight() );
+ maPosition = ImplMapPoint( aP );
+ maSize = ImplMapSize( aS );
+ maRect = Rectangle( Point( maPosition.X, maPosition.Y ), Size( maSize.Width, maSize.Height ) );
+ if ( mnAngle < 0 )
+ mnAngle = ( 36000 + mnAngle ) % 36000;
+ else
+ mnAngle = ( 36000 - ( mnAngle % 36000 ) );
+ if ( ( mnAngle > 4500 && mnAngle <= 13500 ) || ( mnAngle > 22500 && mnAngle <= 31500 ) )
+ {
+ double nWidthHalf = maRect.GetWidth() / 2;
+ double nHeightHalf = maRect.GetHeight() / 2;
+
+ Point aTopLeft( maRect.Left() + nWidthHalf - nHeightHalf,
+ maRect.Top() + nHeightHalf - nWidthHalf );
+ Size aNewSize( maRect.GetHeight(), maRect.GetWidth() );
+ maRect = Rectangle( aTopLeft, aNewSize );
+ }
+ mnAngle *= 655;
+ mnAngle += 0x8000;
+ mnAngle &=~0xffff; // nAngle auf volle Gradzahl runden
+ mp_EscherEx->AddOpt( _Escher_Prop_Rotation, mnAngle );
+ mnAngle = 0;
+
+ sal_uInt32 nAdjCount;
+ for ( nAdjCount = 0; nAdjCount < aAdjustmentList.Count(); nAdjCount++ )
+ mp_EscherEx->AddOpt( _Escher_Prop_adjustValue + nAdjCount, (sal_uInt32)aAdjustmentList.GetObject( nAdjCount ) );
+
+ ImplWriteFillBundle( TRUE );
+ ImplWriteTextBundle();
+ }
+ else if ( mType == "drawing.Rectangle" )
+ {
+ sal_Int32 nRadius = 0;
+ mp_EscherEx->OpenContainer( _Escher_SpContainer );
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "CornerRadius" ) ) ) )
+ {
+ mAny >>= nRadius;
+ nRadius = ImplMapSize( ::com::sun::star::awt::Size( nRadius, 0 ) ).Width;
+ }
+ if ( nRadius )
+ {
+ ADD_SHAPE( _Escher_ShpInst_RoundRectangle, 0xa00 ); // Flags: Connector | HasSpt
+ mp_EscherEx->BeginCount();
+ sal_Int32 nLenght = maRect.GetWidth();
+ if ( nLenght > maRect.GetHeight() )
+ nLenght = maRect.GetHeight();
+ nLenght >>= 1;
+ if ( nRadius >= nLenght )
+ nRadius = 0x2a30; // 0x2a30 ist PPTs maximum radius
+ else
+ nRadius = ( 0x2a30 * nRadius ) / nLenght;
+ mp_EscherEx->AddOpt( _Escher_Prop_adjustValue, nRadius );
+ }
+ else
+ {
+ ADD_SHAPE( _Escher_ShpInst_Rectangle, 0xa00 ); // Flags: Connector | HasSpt
+ mp_EscherEx->BeginCount();
+ }
+ ImplWriteFillBundle( TRUE );
+ ImplWriteTextBundle();
+ }
+ else if ( mType == "drawing.Ellipse" )
+ {
+ ::com::sun::star::drawing::CircleKind eCircleKind( ::com::sun::star::drawing::CircleKind_FULL );
+ PolyStyle ePolyKind;
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "CircleKind" ) ) ) )
+ {
+ mAny >>= eCircleKind;
+ switch ( eCircleKind )
+ {
+ case ::com::sun::star::drawing::CircleKind_SECTION :
+ {
+ ePolyKind = POLY_PIE;
+ }
+ break;
+ case ::com::sun::star::drawing::CircleKind_ARC :
+ {
+ ePolyKind = POLY_ARC;
+ }
+ break;
+
+ case ::com::sun::star::drawing::CircleKind_CUT :
+ {
+ ePolyKind = POLY_CHORD;
+ }
+ break;
+
+ default:
+ eCircleKind = ::com::sun::star::drawing::CircleKind_FULL;
+ }
+ }
+ if ( eCircleKind == ::com::sun::star::drawing::CircleKind_FULL )
+ {
+ mp_EscherEx->OpenContainer( _Escher_SpContainer );
+ ADD_SHAPE( _Escher_ShpInst_Ellipse, 0xa00 ); // Flags: Connector | HasSpt
+ mp_EscherEx->BeginCount();
+ ImplWriteFillBundle( TRUE );
+ }
+ else
+ {
+ sal_Int32 nStartAngle, nEndAngle;
+ if ( !ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "CircleStartAngle" ) ) ) )
+ continue;
+ nStartAngle = *( (sal_Int32*)mAny.getValue() );
+ if( !ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "CircleEndAngle" ) ) ) )
+ continue;
+ nEndAngle = *( (sal_Int32*)mAny.getValue() );
+
+ maPosition = mXShape->getPosition();
+ maSize = mXShape->getSize();
+ maRect = Rectangle( Point( maPosition.X, maPosition.Y ), Size( maSize.Width, maSize.Height ) );
+
+ ::com::sun::star::awt::Point aStart, aEnd, aCenter;
+ aStart.X = (sal_Int32)( ( cos( (double)( nStartAngle * F_PI18000 ) ) * 100.0 ) );
+ aStart.Y = - (sal_Int32)( ( sin( (double)( nStartAngle * F_PI18000 ) ) * 100.0 ) );
+ aEnd.X = (sal_Int32)( ( cos( (double)( nEndAngle * F_PI18000 ) ) * 100.0 ) );
+ aEnd.Y = - (sal_Int32)( ( sin( (double)( nEndAngle * F_PI18000 ) ) * 100.0 ) );
+ aCenter.X = maRect.Left() + ( maRect.GetWidth() / 2 );
+ aCenter.Y = maRect.Top() + ( maRect.GetHeight() / 2 );
+ aStart.X += aCenter.X;
+ aStart.Y += aCenter.Y;
+ aEnd.X += aCenter.X;
+ aEnd.Y += aCenter.Y;
+ Polygon aPolygon( maRect, Point( aStart.X, aStart.Y ), Point( aEnd.X, aEnd.Y ), ePolyKind );
+ mp_EscherEx->OpenContainer( _Escher_SpContainer );
+ ADD_SHAPE( _Escher_ShpInst_NotPrimitive, 0xa00 ); // Flags: Connector | HasSpt
+ mp_EscherEx->BeginCount();
+ switch ( ePolyKind )
+ {
+ case POLY_PIE :
+ case POLY_CHORD :
+ {
+ ImplWriteAny( ANY_FLAGS_POLYPOLYGON, FALSE, &aPolygon );
+ ImplWriteFillBundle( TRUE );
+ }
+ break;
+
+ case POLY_ARC :
+ {
+ ImplWriteAny( ANY_FLAGS_POLYLINE, FALSE, &aPolygon );
+ ImplWriteLineBundle( FALSE );
+ }
+ break;
+ }
+ }
+ ImplWriteTextBundle();
+ }
+ else if ( mType == "drawing.Control" )
+ {
+ continue;
+ }
+ else if ( mType == "drawing.Connector" )
+ {
+ ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > aShapeA, aShapeB;
+ ::com::sun::star::awt::Point aStartPoint, aEndPoint;
+
+ if ( !ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "EdgeKind" ) ) ) )
+ continue;
+
+ ::com::sun::star::drawing::ConnectorType eCt;
+ mAny >>= eCt;
+
+ if ( !ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "EdgeStartPoint" ) ) ) )
+ continue;
+ aStartPoint = *(::com::sun::star::awt::Point*)mAny.getValue();
+
+ if ( !ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "EdgeEndPoint" ) ) ) )
+ continue;
+ aEndPoint = *(::com::sun::star::awt::Point*)mAny.getValue();
+
+ sal_uInt32 nAdjustValue1, nAdjustValue2, nAdjustValue3;
+ nAdjustValue1 = nAdjustValue2 = nAdjustValue3 = 0x2a30;
+
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "EdgeStartConnection" ) ) ) )
+ mAny >>= aShapeA;
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "EdgeEndConnection" ) ) ) )
+ mAny >>= aShapeB;
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "EdgeLine1Delta" ) ) ) )
+ {
+ }
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "EdgeLine2Delta" ) ) ) )
+ {
+ }
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "EdgeLine3Delta" ) ) ) )
+ {
+ }
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "EdgeNode1HorzDist" ) ) ) )
+ {
+ }
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "EdgeNode1VertDist" ) ) ) )
+ {
+ }
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "EdgeNode2HorzDist" ) ) ) )
+ {
+ }
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "EdgeNode2VertDist" ) ) ) )
+ {
+ }
+ aSolverContainer.AddConnector( mXShape, aStartPoint, aShapeA, aEndPoint, aShapeB );
+ ::com::sun::star::awt::Point aBeg( ImplMapPoint( aStartPoint ) );
+ ::com::sun::star::awt::Point aEnd( ImplMapPoint( aEndPoint ) );
+ maRect = Rectangle( Point( aBeg.X, aBeg.Y ), Point( aEnd.X, aEnd.Y ) );
+ ImplWriteAny( ANY_FLAGS_LINE, FALSE );
+ mp_EscherEx->OpenContainer( _Escher_SpContainer );
+ sal_uInt32 nFlags = 0xa00; // Flags: Connector | HasSpt
+ if ( maRect.Top() > maRect.Bottom() )
+ nFlags |= 0x80; // Flags: VertMirror
+ if ( maRect.Left() > maRect.Right() )
+ nFlags |= 0x40; // Flags: HorzMirror
+
+ Rectangle aJustifiedRect( maRect );
+ aJustifiedRect.Justify();
+
+ switch ( eCt )
+ {
+ case ::com::sun::star::drawing::ConnectorType_CURVE :
+ {
+ ADD_SHAPE( _Escher_ShpInst_CurvedConnector3, nFlags );
+ mp_EscherEx->BeginCount();
+ mp_EscherEx->AddOpt( _Escher_Prop_cxstyle, _Escher_cxstyleCurved );
+ mp_EscherEx->AddOpt( _Escher_Prop_adjustValue, nAdjustValue1 );
+ mp_EscherEx->AddOpt( _Escher_Prop_adjust2Value, -nAdjustValue2 );
+ }
+ break;
+
+ case ::com::sun::star::drawing::ConnectorType_STANDARD :// Connector 2->5
+ {
+ ADD_SHAPE( _Escher_ShpInst_BentConnector3, nFlags );
+ mp_EscherEx->BeginCount();
+ mp_EscherEx->AddOpt( _Escher_Prop_cxstyle, _Escher_cxstyleBent );
+ }
+ break;
+
+ default:
+ case ::com::sun::star::drawing::ConnectorType_LINE :
+ case ::com::sun::star::drawing::ConnectorType_LINES : // Connector 2->5
+ {
+ nFlags |= 0x100;
+ ADD_SHAPE( _Escher_ShpInst_StraightConnector1, nFlags );
+ mp_EscherEx->BeginCount();
+ mp_EscherEx->AddOpt( _Escher_Prop_cxstyle, _Escher_cxstyleStraight );
+ }
+ break;
+ }
+ ImplWriteLineBundle( FALSE );
+ mnAngle = 0;
+ }
+ else if ( mType == "drawing.Measure" )
+ {
+/*
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "MeasureKind" ) ) ) )
+ {
+ mp_EscherEx->EnterGroup( &maRect );
+ mp_EscherEx->OpenContainer( _Escher_SpContainer );
+ ImplWriteAny( ANY_FLAGS_LINE, FALSE );
+ sal_uInt32 nFlags = 0xa00; // Flags: Connector | HasSpt
+ if ( maRect.Top() > maRect.Bottom() )
+ nFlags |= 0x80; // Flags: VertMirror
+ if ( maRect.Left() > maRect.Right() )
+ nFlags |= 0x40; // Flags: HorzMirror
+
+ ADD_SHAPE( _Escher_ShpInst_Line, nFlags );
+ mp_EscherEx->BeginCount();
+ mp_EscherEx->AddOpt( _Escher_Prop_shapePath, _Escher_ShapeComplex );
+ ImplWriteLineBundle( FALSE );
+ mp_EscherEx->EndCount( _Escher_OPT, 3 );
+ maRect.Justify();
+ mp_EscherEx->AddClientAnchor( maRect );
+ mp_EscherEx->CloseContainer(); // _Escher_SpContainer
+
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "MeasureTextHorizontalPosition" ) ) ) )
+ {
+ }
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "MeasureTextVerticalPosition" ) ) ) )
+ {
+ }
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "MeasureLineDistance" ) ) ) )
+ {
+ }
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "MeasureHelpLineOverhang" ) ) ) )
+ {
+ }
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "MeasureHelpLineDistance" ) ) ) )
+ {
+ }
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "MeasureHelpLine1Length" ) ) ) )
+ {
+ }
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "MeasureHelpLine2Length" ) ) ) )
+ {
+ }
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "MeasureBelowReferenceEdge" ) ) ) )
+ {
+ }
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "MeasureTextRotate90" ) ) ) )
+ {
+ }
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "MeasureTextUpsideDown" ) ) ) )
+ {
+ }
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "MeasureOverhang" ) ) ) )
+ {
+ }
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "MeasureUnit" ) ) ) )
+ {
+ }
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "MeasureScale" ) ) ) )
+ {
+ }
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "MeasureShowUnit" ) ) ) )
+ {
+ }
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "MeasureFormatString" ) ) ) )
+ {
+ }
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "MeasureTextAutoAngle" ) ) ) )
+ {
+ }
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "MeasureTextAutoAngleView" ) ) ) )
+ {
+ }
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "MeasureTextIsFixedAngle" ) ) ) )
+ {
+ }
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "MeasureTextFixedAngle" ) ) ) )
+ {
+ }
+ mp_EscherEx->LeaveGroup();
+ }
+*/
+ continue;
+ }
+ else if ( mType == "drawing.Line" )
+ {
+ ImplWriteAny( ANY_FLAGS_LINE, FALSE );
+ if ( ImplGetText() )
+ {
+ aTextRefPoint = ::com::sun::star::awt::Point( maRect.Left(), maRect.Top() );
+ mnTextSize = 0;
+ bAdditionalText = TRUE;
+ mp_EscherEx->EnterGroup( &maRect );
+ }
+ mp_EscherEx->OpenContainer( _Escher_SpContainer );
+ sal_uInt32 nFlags = 0xa00; // Flags: Connector | HasSpt
+ if ( maRect.Top() > maRect.Bottom() )
+ nFlags |= 0x80; // Flags: VertMirror
+ if ( maRect.Left() > maRect.Right() )
+ nFlags |= 0x40; // Flags: HorzMirror
+
+ ADD_SHAPE( _Escher_ShpInst_Line, nFlags );
+ mp_EscherEx->BeginCount();
+ mp_EscherEx->AddOpt( _Escher_Prop_shapePath, _Escher_ShapeComplex );
+ ImplWriteLineBundle( FALSE );
+ mnAngle = 0;
+ }
+ else if ( bPolyPolygon )
+ {
+ if ( ImplGetText() )
+ {
+ mp_EscherEx->EnterGroup( NULL );
+ nGroupLevel = mp_EscherEx->GetGroupLevel();
+ bAdditionalText = TRUE;
+ mnTextSize = 0;
+ }
+ mp_EscherEx->OpenContainer( _Escher_SpContainer );
+ ADD_SHAPE( _Escher_ShpInst_NotPrimitive, 0xa00 ); // Flags: Connector | HasSpt
+ mp_EscherEx->BeginCount();
+ ImplWriteAny( ANY_FLAGS_POLYPOLYGON, FALSE );
+ ImplWriteFillBundle( TRUE );
+ mnAngle = 0;
+ }
+ else if ( bPolyLine )
+ {
+ if ( ImplGetText() )
+ {
+ mp_EscherEx->EnterGroup( NULL );
+ nGroupLevel = mp_EscherEx->GetGroupLevel();
+ bAdditionalText = TRUE;
+ mnTextSize = 0;
+ }
+ mp_EscherEx->OpenContainer( _Escher_SpContainer );
+ ADD_SHAPE( _Escher_ShpInst_NotPrimitive, 0xa00 ); // Flags: Connector | HasSpt
+ mp_EscherEx->BeginCount();
+ ImplWriteAny( ANY_FLAGS_POLYLINE, FALSE );
+ ImplWriteLineBundle( FALSE );
+ mnAngle = 0;
+ }
+ else if ( bOpenBezier )
+ {
+ if ( ImplGetText() )
+ {
+ mp_EscherEx->EnterGroup( NULL );
+ nGroupLevel = mp_EscherEx->GetGroupLevel();
+ bAdditionalText = TRUE;
+ mnTextSize = 0;
+ }
+ mp_EscherEx->OpenContainer( _Escher_SpContainer );
+ ADD_SHAPE( _Escher_ShpInst_NotPrimitive, 0xa00 ); // Flags: Connector | HasSpt
+ mp_EscherEx->BeginCount();
+ ImplWriteAny( ANY_FLAGS_POLYLINE, TRUE );
+ ImplWriteLineBundle( FALSE );
+ mnAngle = 0;
+ }
+ else if ( bClosedBezier )
+ {
+ if ( ImplGetText() )
+ {
+ mp_EscherEx->EnterGroup( NULL );
+ nGroupLevel = mp_EscherEx->GetGroupLevel();
+ bAdditionalText = TRUE;
+ mnTextSize = 0;
+ }
+ mp_EscherEx->OpenContainer( _Escher_SpContainer );
+ ADD_SHAPE( _Escher_ShpInst_NotPrimitive, 0xa00 ); // Flags: Connector | HasSpt
+ mp_EscherEx->BeginCount();
+ ImplWriteAny( ANY_FLAGS_POLYPOLYGON, TRUE );
+ ImplWriteFillBundle( TRUE );
+ mnAngle = 0;
+ }
+ else if ( ( mType == "drawing.GraphicObject" ) || ( mType == "presentation.GraphicObject" ) )
+ {
+ mp_EscherEx->OpenContainer( _Escher_SpContainer );
+
+ // ein GraphicObject kann auch ein ClickMe Element sein
+ if ( mbEmptyPresObj && ( ePageType == NORMAL ) )
+ {
+ nPlaceHolderAtom = 19; // EPP_PLACEHOLDER_OBJECT;
+ if ( mnLayout == 8 )
+ nPlaceHolderAtom = 21; // EPP_PLACEHOLDER_OBJECT_TABLE
+ else if ( ( mnLayout == 2 ) || ( mnLayout == 4 ) || ( mnLayout == 7 ) )
+ nPlaceHolderAtom = 20; // EPP_PLACEHOLDER_GRAPH;
+ else if ( ( mnLayout == 9 ) || ( mnLayout == 6 ) )
+ nPlaceHolderAtom = 22; // EPP_PLACEHOLDER_CLIPART
+ ADD_SHAPE( _Escher_ShpInst_Rectangle, 0x220 ); // Flags: HaveAnchor | HaveMaster
+ mp_EscherEx->BeginCount();
+ mp_EscherEx->AddOpt( _Escher_Prop_lTxid, mnTxId += 0x60 );
+ mp_EscherEx->AddOpt( _Escher_Prop_fNoFillHitTest, 0x10001 );
+ mp_EscherEx->AddOpt( _Escher_Prop_fNoLineDrawDash, 0x10001 );
+ mp_EscherEx->AddOpt( _Escher_Prop_hspMaster, mnShapeMasterBody );
+ }
+ else
+ {
+ mXText = ::com::sun::star::uno::Reference<
+ ::com::sun::star::text::XSimpleText >
+ ( mXShape, ::com::sun::star::uno::UNO_QUERY );
+
+ if ( mXText.is() )
+ mnTextSize = mXText->getString().len();
+
+ if ( mnTextSize ) // graphic object oder Flachenfuellung
+ {
+ ADD_SHAPE( _Escher_ShpInst_Rectangle, 0xa00 ); // Flags: Connector | HasSpt
+ mp_EscherEx->BeginCount();
+ if ( ImplGetGraphic( mXPropSet, String( RTL_CONSTASCII_USTRINGPARAM( "GraphicObjectFillBitmap" ) ), TRUE ) )
+ {
+ mp_EscherEx->AddOpt( _Escher_Prop_WrapText, _Escher_WrapNone );
+ mp_EscherEx->AddOpt( _Escher_Prop_AnchorText, _Escher_AnchorMiddle );
+ mp_EscherEx->AddOpt( _Escher_Prop_fNoFillHitTest, 0x140014 );
+ mp_EscherEx->AddOpt( _Escher_Prop_fillBackColor, 0x8000000 );
+ mp_EscherEx->AddOpt( _Escher_Prop_fNoLineDrawDash, 0x80000 );
+ ImplWriteTextBundle();
+ }
+ }
+ else
+ {
+ ADD_SHAPE( _Escher_ShpInst_PictureFrame, 0xa00 );
+ mp_EscherEx->BeginCount();
+ if ( ImplGetGraphic( mXPropSet, String( RTL_CONSTASCII_USTRINGPARAM( "GraphicObjectFillBitmap" ) ), FALSE ) )
+ mp_EscherEx->AddOpt( _Escher_Prop_LockAgainstGrouping, 0x800080 );
+ }
+ sal_uInt32 nPicFlags = 0;
+ ::com::sun::star::drawing::ColorMode eColorMode( ::com::sun::star::drawing::ColorMode_STANDARD );
+ sal_Int16 nLuminance = 0;
+ sal_Int16 nContrast = 0;
+ sal_Int16 nRed = 0;
+ sal_Int16 nGreen = 0;
+ sal_Int16 nBlue = 0;
+ double fGamma = 1.0;
+ sal_Int16 nTransparency = 0;
+
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "GraphicColorMode" ) ) ) )
+ mAny >>= eColorMode;
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "AdjustLuminance" ) ) ) )
+ mAny >>= nLuminance;
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "AdjustContrast" ) ) ) )
+ mAny >>= nContrast;
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "AdjustRed" ) ) ) )
+ mAny >>= nRed;
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "AdjustGreen" ) ) ) )
+ mAny >>= nGreen;
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "AdjustBlue" ) ) ) )
+ mAny >>= nBlue;
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "Gamma" ) ) ) )
+ mAny >>= fGamma;
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "Transparency" ) ) ) )
+ mAny >>= nTransparency;
+
+ if ( ( eColorMode == ::com::sun::star::drawing::ColorMode_WATERMARK )
+ && ( nLuminance || nContrast ) )
+ {
+ eColorMode = ::com::sun::star::drawing::ColorMode_STANDARD;
+ nLuminance += 5000;
+ if ( nLuminance > 10000 )
+ nLuminance = 10000;
+ nContrast -= 7000;
+ if ( nContrast < 10000 )
+ nContrast = 10000;
+ }
+ nContrast *= 327;
+ nLuminance *= 327;
+ switch ( eColorMode )
+ {
+ case ::com::sun::star::drawing::ColorMode_GREYS :
+ nPicFlags |= 0x40004;
+ break;
+ case ::com::sun::star::drawing::ColorMode_MONO :
+ nPicFlags |= 0x60006;
+ break;
+ case ::com::sun::star::drawing::ColorMode_WATERMARK :
+ {
+ nContrast = 0x4ccd;
+ nLuminance = 0x599a;
+ }
+ break;
+ }
+ if ( nContrast )
+ mp_EscherEx->AddOpt( _Escher_Prop_pictureContrast, nContrast );
+ if ( nLuminance )
+ mp_EscherEx->AddOpt( _Escher_Prop_pictureBrightness, nLuminance );
+ if ( nPicFlags )
+ mp_EscherEx->AddOpt( _Escher_Prop_pictureActive, nPicFlags );
+ }
+ }
+ else if ( ( mType == "drawing.Text" ) || ( mType == "presentation.Subtitle" ) || ( mType == "presentation.Notes" ) )
+ {
+ if ( ( ePageType == NOTICE ) && mbPresObj )
+ {
+ if ( bMasterPage )
+ nPlaceHolderAtom = EPP_PLACEHOLDER_MASTERDATE; // be sure to correct all defines, they are not in the right order,
+ else // cause this is not a masterdate,´it is realy a masternotesbodyimage
+ nPlaceHolderAtom = EPP_PLACEHOLDER_NOTESBODY;
+ }
+ SHAPE_TEXT( TRUE );
+ }
+ else if ( mType == "presentation.TitleText" )
+ {
+ if ( mbPresObj )
+ {
+ if ( ( ePageType == NOTICE ) && mbEmptyPresObj )
+ {
+ mp_EscherEx->OpenContainer( _Escher_SpContainer );
+ nPlaceHolderAtom = EPP_PLACEHOLDER_MASTERNOTESBODYIMAGE;
+ ADD_SHAPE( _Escher_ShpInst_Rectangle, 0x200 );
+ mp_EscherEx->BeginCount();
+ ImplWriteLineBundle( FALSE );
+ mp_EscherEx->AddOpt( _Escher_Prop_fNoFillHitTest, 0x10001 );
+ }
+ else if ( rLayout.bTitlePossible && bIsTitlePossible )
+ {
+ bIsTitlePossible = FALSE;
+
+ if ( ePageType == MASTER )
+ continue;
+
+ mp_EscherEx->OpenContainer( _Escher_SpContainer );
+ mnTextStyle = EPP_TEXTSTYLE_TITLE;
+ nPlaceHolderAtom = EPP_PLACEHOLDER_TITLE;
+ ADD_SHAPE( _Escher_ShpInst_Rectangle, 0x220 ); // Flags: HaveAnchor | HaveMaster
+ mp_EscherEx->BeginCount();
+ mp_EscherEx->AddOpt( _Escher_Prop_hspMaster, mnShapeMasterTitle );
+ ImplWriteFillBundle( TRUE );
+ ImplWriteTextBundle( TRUE );
+ if ( mbEmptyPresObj )
+ {
+ sal_uInt32 nNoLineDrawDash = 0;
+ mp_EscherEx->GetOpt( _Escher_Prop_fNoLineDrawDash, nNoLineDrawDash );
+ nNoLineDrawDash |= 0x10001;
+ mp_EscherEx->AddOpt( _Escher_Prop_fNoLineDrawDash, nNoLineDrawDash );
+ }
+ }
+ else
+ mbPresObj = FALSE;
+ }
+ if ( !mbPresObj )
+ {
+ mType = "drawing.Text";
+ SHAPE_TEXT( TRUE );
+ }
+ }
+ else if ( mType == "presentation.Outliner" )
+ {
+ if ( mbPresObj )
+ {
+ nOutlinerCount++;
+ if ( rLayout.bOutlinerPossible && ( nOutlinerCount == 1 ) ||
+ ( ( rLayout.bSecOutlinerPossible && ( nOutlinerCount == 2 ) )
+ && ( nPrevTextStyle == EPP_TEXTSTYLE_BODY ) ) )
+ {
+ if ( ePageType == MASTER )
+ {
+ nPrevTextStyle = EPP_TEXTSTYLE_TITLE;
+ continue;
+ }
+ sal_uInt32 nOutlCount = 0;
+ for ( sal_uInt32 nI = 0; nI < 8; nI++ )
+ {
+ sal_uInt8 nC = pPHLayout[ mnLayout ].nPlaceHolder[ nI ];
+ if ( !nC )
+ break;
+ if ( nC == 0xe )
+ nOutlCount++;
+ }
+ if ( nOutlCount >= nOutlinerCount )
+ {
+ mnTextStyle = EPP_TEXTSTYLE_BODY;
+ nPlaceHolderAtom = EPP_PLACEHOLDER_BODY;
+ mp_EscherEx->OpenContainer( _Escher_SpContainer );
+ ADD_SHAPE( _Escher_ShpInst_Rectangle, 0x220 ); // Flags: HaveAnchor | HaveMaster
+ mp_EscherEx->BeginCount();
+ mp_EscherEx->AddOpt( _Escher_Prop_hspMaster, mnShapeMasterBody );
+ ImplWriteFillBundle( TRUE );
+ ImplWriteTextBundle( TRUE );
+ if ( mbEmptyPresObj )
+ {
+ sal_uInt32 nNoLineDrawDash = 0;
+ mp_EscherEx->GetOpt( _Escher_Prop_fNoLineDrawDash, nNoLineDrawDash );
+ nNoLineDrawDash |= 0x10001;
+ mp_EscherEx->AddOpt( _Escher_Prop_fNoLineDrawDash, nNoLineDrawDash );
+ }
+ }
+ else mbPresObj = FALSE;
+ }
+ else mbPresObj = FALSE;
+ }
+ if ( !mbPresObj )
+ {
+ mType = "drawing.Text";
+ SHAPE_TEXT( TRUE );
+ }
+ }
+ else if ( ( mType == "drawing.Page" ) || ( mType == "presentation.Page" ) )
+ {
+ nPlaceHolderAtom = EPP_PLACEHOLDER_GENERICTEXTOBJECT;
+ mp_EscherEx->OpenContainer( _Escher_SpContainer );
+ ADD_SHAPE( _Escher_ShpInst_Rectangle, 0xa00 );
+ mp_EscherEx->BeginCount();
+ mp_EscherEx->AddOpt( _Escher_Prop_LockAgainstGrouping, 0x40004 );
+ mp_EscherEx->AddOpt( _Escher_Prop_fFillOK, 0x100001 );
+ mp_EscherEx->AddOpt( _Escher_Prop_fNoFillHitTest, 0x110011 );
+ mp_EscherEx->AddOpt( _Escher_Prop_fNoLineDrawDash, 0x90008 );
+ mp_EscherEx->AddOpt( _Escher_Prop_fshadowObscured, 0x10001 );
+ }
+ else if ( mType == "drawing.Frame" )
+ {
+ continue;
+ }
+ else if ( ( mType == "drawing.OLE2" ) || ( mType == "presentation.OLE2" )
+ || ( mType == "presentation.Chart" ) || ( mType == "presentation.Table" )
+ || ( mType == "presentation.OrgChart" ) )
+ {
+ mp_EscherEx->OpenContainer( _Escher_SpContainer );
+ if ( mbEmptyPresObj && ( ePageType == NORMAL ) )
+ {
+ nPlaceHolderAtom = 19; // EPP_PLACEHOLDER_OBJECT;
+ if ( mnLayout == 8 )
+ nPlaceHolderAtom = 21; // EPP_PLACEHOLDER_OBJECT_TABLE
+ else if ( ( mnLayout == 2 ) || ( mnLayout == 4 ) || ( mnLayout == 7 ) )
+ nPlaceHolderAtom = 20; // EPP_PLACEHOLDER_GRAPH;
+ else if ( ( mnLayout == 9 ) || ( mnLayout == 6 ) )
+ nPlaceHolderAtom = 22; // EPP_PLACEHOLDER_CLIPART
+ ADD_SHAPE( _Escher_ShpInst_Rectangle, 0x220 ); // Flags: HaveAnchor | HaveMaster
+ mp_EscherEx->BeginCount();
+ mp_EscherEx->AddOpt( _Escher_Prop_lTxid, mnTxId += 0x60 );
+ mp_EscherEx->AddOpt( _Escher_Prop_fNoFillHitTest, 0x10001 );
+ mp_EscherEx->AddOpt( _Escher_Prop_fNoLineDrawDash, 0x10001 );
+ mp_EscherEx->AddOpt( _Escher_Prop_hspMaster, mnShapeMasterBody );
+ }
+ else
+ {
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "LinkDisplayName" ) ) ) )
+ {
+ String aString( *(::rtl::OUString*)mAny.getValue() );
+ if ( aString.Len() )
+ {
+ SvStorageRef xSrcStor = mXSource->OpenStorage( aString, STREAM_READ | STREAM_NOCREATE | STREAM_SHARE_DENYALL );
+ if ( xSrcStor.Is() )
+ {
+ SvStorageStreamRef xSrcTst = xSrcStor->OpenStream(
+ String( RTL_CONSTASCII_USTRINGPARAM( "\1Ole" ) ),
+ STREAM_READ | STREAM_NOCREATE | STREAM_SHARE_DENYALL );
+ sal_uInt8 aTestA[ 10 ];
+ if ( sizeof( aTestA ) == xSrcTst->Read( aTestA, sizeof( aTestA ) ) )
+ {
+ *mpExEmbed << (sal_uInt32)( 0xf | ( EPP_ExEmbed << 16 ) )
+ << (sal_uInt32)0; // Size of this container
+
+ sal_uInt32 nSize, nOldPos = mpExEmbed->Tell();
+
+ *mpExEmbed << (sal_uInt32)( EPP_ExEmbedAtom << 16 )
+ << (sal_uInt32)8
+ << (sal_uInt32)0
+ << (sal_uInt32)0x30000001;
+
+ maExOleObj.Insert( new PPTExOleObjEntry( aString, mpExEmbed->Tell() ) );
+
+ mnExEmbed++;
+
+ *mpExEmbed << (sal_uInt32)( 1 | ( EPP_ExOleObjAtom << 16 ) )
+ << (sal_uInt32)24
+ << (sal_uInt32)1
+ << (sal_uInt32)0
+ << (sal_uInt32)mnExEmbed
+ << (sal_uInt32)0
+ << (sal_uInt32)0 // index to the persist table
+ << (sal_uInt32)0x0012b600;
+
+// ImplWriteCString( *mpExEmbed, "Photo Editor Photo", 1 );
+// ImplWriteCString( *mpExEmbed, "MSPhotoEd.3", 2 );
+// ImplWriteCString( *mpExEmbed, "Microsoft Photo Editor 3.0 Photo", 3 );
+
+ nSize = mpExEmbed->Tell() - nOldPos;
+ mpExEmbed->Seek( nOldPos - 4 );
+ *mpExEmbed << nSize;
+ mpExEmbed->Seek( STREAM_SEEK_TO_END );
+ nOlePictureId = mnExEmbed;
+ }
+ }
+ }
+ }
+ sal_uInt32 nSpFlags = 0xa00;
+ if ( nOlePictureId )
+ nSpFlags |= 0x10;
+ ADD_SHAPE( _Escher_ShpInst_PictureFrame, nSpFlags );
+ mp_EscherEx->BeginCount();
+ if ( ImplGetGraphic( mXPropSet, String( RTL_CONSTASCII_USTRINGPARAM( "MetaFile" ) ), FALSE, TRUE ) )
+ mp_EscherEx->AddOpt( _Escher_Prop_LockAgainstGrouping, 0x800080 );
+ if ( nOlePictureId )
+ mp_EscherEx->AddOpt( _Escher_Prop_pictureId, nOlePictureId );
+ }
+ }
+ else if ( ( (sal_Char)'3' == mType.GetChar( 8 ) ) && ( (char)'D' == mType.GetChar( 9 ) ) ) // drawing.3D
+ {
+ // SceneObject, CubeObject, SphereObject, LatheObject, ExtrudeObject, PolygonObject
+ if ( !ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "Bitmap" ) ) ) )
+ continue;
+
+ mp_EscherEx->OpenContainer( _Escher_SpContainer );
+ ADD_SHAPE( _Escher_ShpInst_PictureFrame, 0xa00 );
+ mp_EscherEx->BeginCount();
+
+ if ( ImplGetGraphic( mXPropSet, String( RTL_CONSTASCII_USTRINGPARAM( "Bitmap" ) ), FALSE ) )
+ mp_EscherEx->AddOpt( _Escher_Prop_LockAgainstGrouping, 0x800080 );
+ }
+ else if ( mType == "drawing.dontknow" )
+ {
+ mnAngle = 0;
+ mp_EscherEx->OpenContainer( _Escher_SpContainer );
+ ADD_SHAPE( _Escher_ShpInst_PictureFrame, 0xa00 );
+ mp_EscherEx->BeginCount();
+ if ( ImplGetGraphic( mXPropSet, String( RTL_CONSTASCII_USTRINGPARAM( "MetaFile" ) ), FALSE ) )
+ mp_EscherEx->AddOpt( _Escher_Prop_LockAgainstGrouping, 0x800080 );
+ }
+ else
+ {
+ continue;
+ }
+ if ( mnShadow ) // shadow wird nur ausgegeben, wenn es mindestens einen LinesStyle oder FillStyle gibt
+ {
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "Shadow" ) ) ) )
+ {
+ sal_Bool bBool;
+ mAny >>= bBool;
+ if ( bBool )
+ {
+ mp_EscherEx->AddOpt( _Escher_Prop_fshadowObscured, 0x20002 );
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "ShadowColor" ) ) ) )
+ mp_EscherEx->AddOpt( _Escher_Prop_shadowColor, mp_EscherEx->GetColor( *((sal_uInt32*)mAny.getValue()) ) );
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "ShadowXDistance" ) ) ) )
+ mp_EscherEx->AddOpt( _Escher_Prop_shadowOffsetX, *((sal_Int32*)mAny.getValue()) * 360 );
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "ShadowYDistance" ) ) ) )
+ mp_EscherEx->AddOpt( _Escher_Prop_shadowOffsetY, *((sal_Int32*)mAny.getValue()) * 360 );
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "ShadowTransparence" ) ) ) )
+ mp_EscherEx->AddOpt( _Escher_Prop_shadowOpacity, ( ( ( 100 - (*((sal_uInt16*)mAny.getValue()) ) ) << 16 ) / 100 ) );
+ }
+ }
+ }
+ maRect.Justify();
+
+ if ( mnAngle )
+ {
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "RotationPointX" ) ) ) )
+ {
+ ::com::sun::star::awt::Point aRefPoint( *( (sal_Int32*)mAny.getValue() ), 0 );
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "RotationPointY" ) ) ) )
+ {
+ aRefPoint.Y = *( (sal_Int32*)mAny.getValue() );
+ ImplFlipBoundingBox( ImplMapPoint( aRefPoint ) );
+ }
+ }
+ }
+ mp_EscherEx->EndCount( _Escher_OPT, 3 );
+ mp_EscherEx->AddClientAnchor( maRect );
+
+ ::com::sun::star::presentation::AnimationEffect eAe( ::com::sun::star::presentation::AnimationEffect_NONE );
+ ::com::sun::star::presentation::AnimationEffect eTe( ::com::sun::star::presentation::AnimationEffect_NONE );
+ ::com::sun::star::presentation::ClickAction eCa = ::com::sun::star::presentation::ClickAction_NONE;
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "Effect" ) ) ) )
+ mAny >>= eAe;
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "TextEffect" ) ) ) )
+ mAny >>= eTe;
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "PresentationOrder" ) ) ) )
+ nEffectCount = *(sal_uInt16*)mAny.getValue();
+
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "OnClick" ) ) ) )
+ mAny >>= eCa;
+
+ sal_Int32 nPlacementID = -1;
+
+ sal_Bool bIsSound = FALSE;
+ if ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "SoundOn" ) ) ) )
+ mAny >>= bIsSound;
+ sal_Bool bEffect = ( ( eAe != ::com::sun::star::presentation::AnimationEffect_NONE )
+ || ( eTe != ::com::sun::star::presentation::AnimationEffect_NONE ) || bIsSound );
+ sal_Bool bClientData = ( bEffect || ( eCa != ::com::sun::star::presentation::ClickAction_NONE ) ||
+ nPlaceHolderAtom || nOlePictureId );
+ if ( bClientData )
+ {
+ if ( nPlaceHolderAtom )
+ {
+ if ( ( mnTextStyle == EPP_TEXTSTYLE_TITLE ) || ( mnTextStyle == EPP_TEXTSTYLE_BODY ) )
+ nPlacementID = nIndices++;
+ else
+ {
+ switch ( nPlaceHolderAtom )
+ {
+ default :
+ {
+ if ( nPlaceHolderAtom < 19 )
+ break;
+ }
+ case EPP_PLACEHOLDER_NOTESBODY :
+ case EPP_PLACEHOLDER_MASTERDATE :
+ case EPP_PLACEHOLDER_GENERICTEXTOBJECT :
+ case EPP_PLACEHOLDER_MASTERNOTESBODYIMAGE :
+ nPlacementID = nIndices++;
+ }
+ }
+ if ( !pClientData )
+ pClientData = new SvMemoryStream( 0x200, 0x200 );
+
+ *pClientData << (sal_uInt32)( EPP_OEPlaceholderAtom << 16 ) << (sal_uInt32)8
+ << nPlacementID // PlacementID
+ << (sal_uInt8)nPlaceHolderAtom // PlaceHolderID
+ << (sal_uInt8)0 // Size of PlaceHolder ( 0 = FULL, 1 = HALF, 2 = QUARTER )
+ << (sal_uInt16)0; // padword
+ }
+ if ( nOlePictureId )
+ {
+ if ( !pClientData )
+ pClientData = new SvMemoryStream( 0x200, 0x200 );
+
+ *pClientData << (sal_uInt32)( EPP_ExObjRefAtom << 16 ) << (sal_uInt32)4
+ << nOlePictureId;
+ nOlePictureId = 0;
+ }
+ if ( bEffect )
+ {
+ if ( !pClientData )
+ pClientData = new SvMemoryStream( 0x200, 0x200 );
+
+ ImplWriteObjectEffect( *pClientData, eAe, eTe, ++nEffectCount );
+ }
+
+ if ( eCa != ::com::sun::star::presentation::ClickAction_NONE )
+ {
+ if ( !pClientData )
+ pClientData = new SvMemoryStream( 0x200, 0x200 );
+ ImplWriteClickAction( *pClientData, eCa );
+ }
+ }
+ if ( mnTextSize )
+ {
+ if ( ( mnTextStyle == EPP_TEXTSTYLE_TITLE ) || ( mnTextStyle == EPP_TEXTSTYLE_BODY ) )
+ {
+ if ( !pClientTextBox )
+ pClientTextBox = new SvMemoryStream( 0x200, 0x200 );
+
+ *pClientTextBox << (sal_uInt32)( EPP_OutlineTextRefAtom << 16 ) << (sal_uInt32)4
+ << nPlacementID;
+
+ if ( mbEmptyPresObj == FALSE )
+ {
+ if ( ( ePageType == NORMAL ) && ( bMasterPage == FALSE ) )
+ { // try to allocate the textruleratom
+ TextRuleEntry* pTextRule = (TextRuleEntry*)maTextRuleList.GetCurObject();
+ while ( pTextRule )
+ {
+ int nRulePage = pTextRule->nPageNumber;
+ if ( nRulePage > nPageNumber )
+ break;
+ else if ( nRulePage < nPageNumber )
+ pTextRule = (TextRuleEntry*)maTextRuleList.Next();
+ else
+ {
+ SvMemoryStream* pOut = pTextRule->pOut;
+ if ( pOut )
+ {
+ pClientTextBox->Write( pOut->GetData(), pOut->Tell() );
+ delete pOut, pTextRule->pOut = NULL;
+ }
+ maTextRuleList.Next();
+ break;
+ }
+ }
+ }
+ }
+ }
+ else
+ {
+ int nInstance;
+ if ( ( nPlaceHolderAtom == EPP_PLACEHOLDER_MASTERDATE ) || ( nPlaceHolderAtom == EPP_PLACEHOLDER_NOTESBODY ) )
+ nInstance = 2;
+ else
+ nInstance = EPP_TEXTTYPE_Other; // Text in a Shape
+
+ if ( !pClientTextBox )
+ pClientTextBox = new SvMemoryStream( 0x200, 0x200 );
+
+ SvMemoryStream aExtBu( 0x200, 0x200 );
+ ImplWriteTextStyleAtom( *pClientTextBox, nInstance, 0, NULL, aExtBu );
+ if ( aExtBu.Tell() )
+ {
+ if ( !pClientData )
+ pClientData = new SvMemoryStream( 0x200, 0x200 );
+ ImplProgTagContainer( pClientData, &aExtBu );
+ }
+ }
+ }
+ else if ( nPlaceHolderAtom >= 19 )
+ {
+ if ( !pClientTextBox )
+ pClientTextBox = new SvMemoryStream( 12 );
+
+ *pClientTextBox << (sal_uInt32)( EPP_TextHeaderAtom << 16 ) << (sal_uInt32)4
+ << (sal_uInt32)7;
+ }
+
+ if ( pClientData )
+ {
+ *mpStrm << (sal_uInt32)( ( _Escher_ClientData << 16 ) | 0xf )
+ << (sal_uInt32)pClientData->Tell();
+
+ mpStrm->Write( pClientData->GetData(), pClientData->Tell() );
+ delete pClientData, pClientData = NULL;
+ }
+ if ( pClientTextBox )
+ {
+ *mpStrm << (sal_uInt32)( ( _Escher_ClientTextbox << 16 ) | 0xf )
+ << (sal_uInt32)pClientTextBox->Tell();
+
+ mpStrm->Write( pClientTextBox->GetData(), pClientTextBox->Tell() );
+ delete pClientTextBox, pClientTextBox = NULL;
+ }
+ mp_EscherEx->CloseContainer(); // _Escher_SpContainer
+ }
+ nPrevTextStyle = mnTextStyle;
+
+ if ( bAdditionalText )
+ {
+ bAdditionalText = FALSE;
+
+ mnAngle = ( ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "RotateAngle" ) )) )
+ ? *( (sal_Int32*)mAny.getValue() ) : 0;
+
+ if ( mType == "drawing.Line" )
+ {
+ double fDist = hypot( maRect.GetWidth(), maRect.GetHeight() );
+ maRect = Rectangle( Point( aTextRefPoint.X, aTextRefPoint.Y ),
+ Point( aTextRefPoint.X + fDist, aTextRefPoint.Y - 1 ) );
+ SHAPE_TEXT( FALSE );
+ mp_EscherEx->AddOpt( _Escher_Prop_fNoLineDrawDash, 0x90000 );
+ mp_EscherEx->AddOpt( _Escher_Prop_fNoFillHitTest, 0x100000 );
+ mp_EscherEx->AddOpt( _Escher_Prop_FitTextToShape, 0x60006 ); // Size Shape To Fit Text
+ if ( mnAngle < 0 )
+ mnAngle = ( 36000 + mnAngle ) % 36000;
+ if ( mnAngle )
+ ImplFlipBoundingBox( ::com::sun::star::awt::Point( maRect.Left(), maRect.Top() ) );
+ }
+ else
+ {
+ SHAPE_TEXT( FALSE );
+ mp_EscherEx->AddOpt( _Escher_Prop_fNoLineDrawDash, 0x90000 );
+ mp_EscherEx->AddOpt( _Escher_Prop_fNoFillHitTest, 0x100000 );
+
+ if ( mnAngle < 0 )
+ mnAngle = ( 36000 + mnAngle ) % 36000;
+ else
+ mnAngle = ( 36000 - ( mnAngle % 36000 ) );
+
+ mnAngle *= 655;
+ mnAngle += 0x8000;
+ mnAngle &=~0xffff; // nAngle auf volle Gradzahl runden
+ mp_EscherEx->AddOpt( _Escher_Prop_Rotation, mnAngle );
+ mp_EscherEx->SetGroupSnapRect( nGroupLevel, maRect );
+ mp_EscherEx->SetGroupLogicRect( nGroupLevel, maRect );
+ }
+ mp_EscherEx->EndCount( _Escher_OPT, 3 );
+ mp_EscherEx->AddClientAnchor( maRect );
+
+ if ( !pClientTextBox )
+ pClientTextBox = new SvMemoryStream( 0x200, 0x200 );
+
+ SvMemoryStream aExtBu( 0x200, 0x200 );
+ ImplWriteTextStyleAtom( *pClientTextBox, EPP_TEXTTYPE_Other, 0, NULL, aExtBu );
+
+ *mpStrm << (sal_uInt32)( ( _Escher_ClientTextbox << 16 ) | 0xf )
+ << (sal_uInt32)pClientTextBox->Tell();
+
+ mpStrm->Write( pClientTextBox->GetData(), pClientTextBox->Tell() );
+ delete pClientTextBox, pClientTextBox = NULL;
+
+ mp_EscherEx->CloseContainer(); // _Escher_SpContainer
+ mp_EscherEx->LeaveGroup();
+ }
+ }
+ ClearGroupTable(); // gruppierungen wegschreiben, sofern noch irgendwelche offen sind, was eigendlich nicht sein sollte
+ nGroups = GetGroupsClosed();
+ for ( sal_uInt32 i = 0; i < nGroups; i++, mp_EscherEx->LeaveGroup() );
+ mnPagesWritten++;
+}
+
+// ---------------------------------------------------------------------------------------------
+
+sal_Bool PPTWriter::ImplIsMetaFile()
+{
+ if ( !ImplGetPropertyValue( String( RTL_CONSTASCII_USTRINGPARAM( "GraphicObjectFillBitmap" ) ) ) )
+ return FALSE;
+
+ ::com::sun::star::uno::Reference< ::com::sun::star::awt::XBitmap >xBitmap;
+ return ( ::cppu::extractInterface( xBitmap, mAny ) == FALSE );
+}
+
+// ---------------------------------------------------------------------------------------------
+
+sal_Bool PPTWriter::ImplGetGraphic( ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > & rXPropSet, const String& rSource, sal_Bool bFillBitmap, sal_Bool bOle )
+{
+ _Escher_BlibType eBlipType( UNKNOWN );
+ ::com::sun::star::uno::Sequence aSeq;
+
+ const sal_uInt8* pAry = NULL;
+ sal_uInt32 nAryLen = 0;
+ sal_Bool bMirrored = FALSE;
+
+ if ( ImplGetPropertyValue( rXPropSet, String( RTL_CONSTASCII_USTRINGPARAM( "IsMirrored" ) ) ) )
+ mAny >>= bMirrored;
+
+ sal_Bool bCanExportNative = ( ( bMirrored == FALSE ) && ( mnAngle == 0 ) ) || ( bFillBitmap == TRUE );
+
+ if ( bCanExportNative ) // ppt does not support rotated or mirrored grafics,
+ { // so we can't use the native format
+ GfxLinkType eLinkType( GFX_LINK_TYPE_NONE );
+ if ( ImplGetPropertyValue( rXPropSet, String( RTL_CONSTASCII_USTRINGPARAM( "LinkType" ) ) ) )
+ eLinkType = (GfxLinkType)(*(sal_Int32*)mAny.getValue());
+
+ switch ( eLinkType )
+ {
+// case GFX_LINK_TYPE_NATIVE_PCT :
+// case GFX_LINK_TYPE_NATIVE_MET :
+// case GFX_LINK_TYPE_NATIVE_TIF :
+// case GFX_LINK_TYPE_NATIVE_GIF :
+// case GFX_LINK_TYPE_EPS_BUFFER :
+// case GFX_LINK_TYPE_USER :
+// case GFX_LINK_TYPE_NONE :
+
+ case GFX_LINK_TYPE_NATIVE_JPG :
+ case GFX_LINK_TYPE_NATIVE_PNG :
+ case GFX_LINK_TYPE_NATIVE_WMF :
+ {
+ sal_Bool bUseNative = ImplGetPropertyValue( rXPropSet, String( RTL_CONSTASCII_USTRINGPARAM( "NativeFormat" ) ) );
+
+ if ( bUseNative )
+ bUseNative = mAny.hasValue();
+ if ( bUseNative )
+ {
+ aSeq = *(::com::sun::star::uno::Sequence*)mAny.getValue();
+ pAry = aSeq.getArray();
+ nAryLen = aSeq.getLength();
+
+ switch ( eLinkType )
+ {
+ case GFX_LINK_TYPE_NATIVE_JPG : eBlipType = PEG; break;
+ case GFX_LINK_TYPE_NATIVE_PNG : eBlipType = PNG; break;
+ case GFX_LINK_TYPE_NATIVE_WMF :
+ {
+ sal_uInt32 nLen = aSeq.getLength();
+ if ( nLen > 0x2c )
+ {
+ if ( ( pAry[ 0x28 ] == 0x20 ) && ( pAry[ 0x29 ] == 0x45 ) // check the magic
+ && ( pAry[ 0x2a ] == 0x4d ) && ( pAry[ 0x2b ] == 0x46 ) ) // number ( emf detection )
+ {
+ eBlipType = EMF;
+ }
+ else
+ {
+ eBlipType = WMF;
+ if ( ( pAry[ 0 ] == 0xd7 ) && ( pAry[ 1 ] == 0xcd )
+ && ( pAry[ 2 ] == 0xc6 ) && ( pAry[ 3 ] == 0x9a ) )
+ { // we have to get rid of the metafileheader
+ pAry += 22;
+ nLen -= 22;
+ }
+ }
+ }
+ }
+ break;
+ }
+ }
+ }
+ break;
+ }
+ }
+ if ( !pAry && ImplGetPropertyValue( rXPropSet, rSource ) )
+ {
+ ::com::sun::star::uno::Reference< ::com::sun::star::awt::XBitmap >xBitmap;
+ if ( ::cppu::extractInterface( xBitmap, mAny ) )
+ {
+ if ( !mpPicStrm )
+ mpPicStrm = mrStg->OpenStream( String( RTL_CONSTASCII_USTRINGPARAM( "Pictures" ) ) );
+ if ( mpPicStrm )
+ {
+ ::com::sun::star::uno::Reference< ::com::sun::star::awt::XBitmap > xBitmap;
+ if ( mAny >>= xBitmap )
+ {
+ BitmapEx aBitmapEx( VCLUnoHelper::GetBitmap( xBitmap ) );
+ sal_Bool bBitmapTile = FALSE;
+ if ( rSource == String( RTL_CONSTASCII_USTRINGPARAM( "FillBitmap" ) ) )
+ {
+ if ( ImplGetPropertyValue( rXPropSet, String( RTL_CONSTASCII_USTRINGPARAM( "FillBitmapTile" ) ) ) )
+ mAny >>= bBitmapTile;
+ }
+ if ( ( rSource == String( RTL_CONSTASCII_USTRINGPARAM( "FillBitmap" ) )) && bBitmapTile )
+ mp_EscherEx->AddOpt( _Escher_Prop_fillType, _Escher_FillTexture );
+ else
+ {
+ if ( mnAngle && ( bFillBitmap == FALSE ) ) // ppoint does not rotate graphics !
+ {
+ mnAngle = ( mnAngle + 5 ) / 10;
+ Polygon aPoly( maRect );
+ aPoly.Rotate( maRect.TopLeft(), mnAngle );
+ maRect = aPoly.GetBoundRect();
+ aBitmapEx.Rotate( mnAngle, COL_TRANSPARENT );
+ mnAngle = 0;
+ }
+ if ( bMirrored && ( bFillBitmap == FALSE ) )
+ {
+ aBitmapEx.Mirror( BMP_MIRROR_HORZ );
+ }
+ mp_EscherEx->AddOpt( _Escher_Prop_fillType, _Escher_FillPicture );
+ }
+ mp_EscherEx->AddOpt( ( bFillBitmap )
+ ? _Escher_Prop_fillBlip
+ : _Escher_Prop_pib, mp_EscherEx->AddGraphic( *mpPicStrm, Graphic( aBitmapEx ) ), TRUE );
+ return TRUE;
+ }
+ }
+ }
+ else
+ {
+ aSeq = *(::com::sun::star::uno::Sequence*)mAny.getValue();
+ pAry = aSeq.getArray();
+ nAryLen = aSeq.getLength();
+ eBlipType = WMF;
+ }
+ }
+ if ( pAry && ( eBlipType != UNKNOWN ) )
+ {
+ if ( !mpPicStrm )
+ mpPicStrm = mrStg->OpenStream( String( RTL_CONSTASCII_USTRINGPARAM( "Pictures" ) ) );
+ if ( mpPicStrm )
+ {
+ ::com::sun::star::awt::Size aSize( mXShape->getSize() );
+ Point aEmptyPoint;
+ Rectangle aRect( aEmptyPoint, Size( aSize.Width, aSize.Height ) );
+ if ( bOle && ImplGetPropertyValue( rXPropSet, String( RTL_CONSTASCII_USTRINGPARAM( "OriginalSize" ) ) ) )
+ {
+ if ( mAny.getValueType() == ::getCppuType( (::com::sun::star::awt::Size*)0) )
+ {
+ ::com::sun::star::awt::Size aSize( *(::com::sun::star::awt::Size*)mAny.getValue() );
+ aRect = Rectangle( Point(), Size( aSize.Width, aSize.Height ) );
+ }
+ }
+ mp_EscherEx->AddOpt( _Escher_Prop_pib, mp_EscherEx->AddGraphic( *mpPicStrm, pAry, aSeq.getLength(), aRect, eBlipType ), TRUE );
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+
+// -----------------------------------------------------------------------
+
+::com::sun::star::awt::Point PPTWriter::ImplMapPoint( const ::com::sun::star::awt::Point& rPoint )
+{
+ Point aRet( OutputDevice::LogicToLogic( Point( rPoint.X, rPoint.Y ), maMapModeSrc, maMapModeDest ) );
+ return ::com::sun::star::awt::Point( aRet.X(), aRet.Y() );
+}
+
+// -----------------------------------------------------------------------
+
+::com::sun::star::awt::Size PPTWriter::ImplMapSize( const ::com::sun::star::awt::Size& rSize )
+{
+ Size aRetSize( OutputDevice::LogicToLogic( Size( rSize.Width, rSize.Height ), maMapModeSrc, maMapModeDest ) );
+
+ if ( !aRetSize.Width() )
+ aRetSize.Width()++;
+ if ( !aRetSize.Height() )
+ aRetSize.Height()++;
+ return ::com::sun::star::awt::Size( aRetSize.Width(), aRetSize.Height() );
+}
+
diff --git a/sd/source/filter/eppt/escherex.cxx b/sd/source/filter/eppt/escherex.cxx
new file mode 100644
index 000000000000..96066c20ae78
--- /dev/null
+++ b/sd/source/filter/eppt/escherex.cxx
@@ -0,0 +1,1231 @@
+/*************************************************************************
+ *
+ * $RCSfile: escherex.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:45 $
+ *
+ * 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 __EscherEX_HXX
+#include "escherex.hxx"
+#endif
+#ifndef _SVSTOR_HXX
+#include
+#endif
+#ifndef _SV_GRAPH_HXX
+#include
+#endif
+#ifndef _SV_CVTGRF_HXX
+#include
+#endif
+#ifndef _ZCODEC_HXX
+#include
+#endif
+#ifndef _INC_STDLIB
+#include
+#endif
+#ifndef _RTL_CRC_H_
+#include
+#endif
+
+// ---------------------------------------------------------------------------------------------
+
+_EscherPersistTable::_EscherPersistTable()
+{
+}
+
+// ---------------------------------------------------------------------------------------------
+
+_EscherPersistTable::~_EscherPersistTable()
+{
+ for ( void* pPtr = maPersistTable.First(); pPtr; pPtr = maPersistTable.Next() )
+ delete (_EscherPersistEntry*)pPtr;
+}
+
+// ---------------------------------------------------------------------------------------------
+
+BOOL _EscherPersistTable::PtIsID( UINT32 nID )
+{
+ for ( void* pPtr = maPersistTable.First(); pPtr; pPtr = maPersistTable.Next() )
+ {
+ if ( ((_EscherPersistEntry*)pPtr)->mnID == nID )
+ return TRUE;
+ }
+ return FALSE;
+}
+
+// ---------------------------------------------------------------------------------------------
+
+void _EscherPersistTable::PtInsert( UINT32 nID, UINT32 nOfs )
+{
+ maPersistTable.Insert( new _EscherPersistEntry( nID, nOfs ) );
+}
+
+// ---------------------------------------------------------------------------------------------
+
+UINT32 _EscherPersistTable::PtDelete( UINT32 nID )
+{
+ for ( void* pPtr = maPersistTable.First(); pPtr; pPtr = maPersistTable.Next() )
+ {
+ if ( ((_EscherPersistEntry*)pPtr)->mnID == nID )
+ {
+ UINT32 nRetValue = ((_EscherPersistEntry*)pPtr)->mnOffset;
+ delete (_EscherPersistEntry*)maPersistTable.Remove();
+ }
+ }
+ return 0;
+}
+
+// ---------------------------------------------------------------------------------------------
+
+UINT32 _EscherPersistTable::PtGetOffsetByID( UINT32 nID )
+{
+ for ( void* pPtr = maPersistTable.First(); pPtr; pPtr = maPersistTable.Next() )
+ {
+ if ( ((_EscherPersistEntry*)pPtr)->mnID == nID )
+ return ((_EscherPersistEntry*)pPtr)->mnOffset;
+ }
+ return 0;
+};
+
+// ---------------------------------------------------------------------------------------------
+
+UINT32 _EscherPersistTable::PtReplace( UINT32 nID, UINT32 nOfs )
+{
+ for ( void* pPtr = maPersistTable.First(); pPtr; pPtr = maPersistTable.Next() )
+ {
+ if ( ((_EscherPersistEntry*)pPtr)->mnID == nID )
+ {
+ UINT32 nRetValue = ((_EscherPersistEntry*)pPtr)->mnOffset;
+ ((_EscherPersistEntry*)pPtr)->mnOffset = nOfs;
+ return nRetValue;
+ }
+ }
+ return 0;
+}
+
+// ---------------------------------------------------------------------------------------------
+
+UINT32 _EscherPersistTable::PtReplaceOrInsert( UINT32 nID, UINT32 nOfs )
+{
+ for ( void* pPtr = maPersistTable.First(); pPtr; pPtr = maPersistTable.Next() )
+ {
+ if ( ((_EscherPersistEntry*)pPtr)->mnID == nID )
+ {
+ UINT32 nRetValue = ((_EscherPersistEntry*)pPtr)->mnOffset;
+ ((_EscherPersistEntry*)pPtr)->mnOffset = nOfs;
+ return nRetValue;
+ }
+ }
+ PtInsert( nID, nOfs );
+ return 0;
+}
+
+// ---------------------------------------------------------------------------------------------
+// ---------------------------------------------------------------------------------------------
+// ---------------------------------------------------------------------------------------------
+
+_EscherBlibEntry::_EscherBlibEntry( SvMemoryStream& rStream, _Escher_BlibType eBlibType, UINT32 nPictureOffset )
+{
+ UINT32* pPtr = &mnIdentifier[0];
+ UINT32 nLenght, nType, nPos, nCRC, nOldPos = rStream.Tell();
+ rStream.Seek( STREAM_SEEK_TO_END );
+ mnSize = rStream.Tell();
+ rStream.Seek( STREAM_SEEK_TO_BEGIN );
+ mnPictureOffset = nPictureOffset;
+ meBlibType = eBlibType;
+ switch( eBlibType ) // Bitmap ID ermitteln, um keine doppelten Grafiken abzuspeichern
+ {
+ case PEG :
+ {
+ nCRC = rtl_crc32( 0, rStream.GetData(), mnSize );
+ nLenght = mnSize;
+ nPos = 0;
+ }
+ break;
+ case PNG :
+ {
+ rStream.SetNumberFormatInt( NUMBERFORMAT_INT_BIGENDIAN );
+ rStream.SeekRel( 8 );
+ do
+ {
+ rStream >> nLenght >> nType; // wir ermitteln die den Identifier anhand der Checksumme des PNG IDat chunks
+ nPos = rStream.Tell() + nLenght; // naechste chunk position
+ if ( nPos >= mnSize ) // kein IDAT -> break;
+ break;
+ rStream.Seek( nPos );
+ rStream >> nCRC;
+ }
+ while ( nType != 0x49444154 ); // IDAT chunk suchen
+ }
+ break;
+ case EMF :
+ case WMF :
+ {
+ if ( mnSize > 8 )
+ {
+ rStream.SeekRel( mnSize - 8 );
+ rStream >> nPos >> nCRC; // ( Komprimiertes UINT32 + Checksumme des ZCodec ) ergeben einen Teil der UID
+ nLenght = mnSize;
+ }
+ }
+ break;
+ }
+ *pPtr++ = nCRC; // LitteEndian / BigEndian ist fuer die Checksumme egal
+ *pPtr++ = nLenght;
+ *pPtr++ = nPos;
+ *pPtr = 0;
+ rStream.Seek( nOldPos );
+};
+
+// ---------------------------------------------------------------------------------------------
+
+_EscherBlibEntry::~_EscherBlibEntry()
+{
+};
+
+// ---------------------------------------------------------------------------------------------
+
+BOOL _EscherBlibEntry::operator==( const _EscherBlibEntry& r_EscherBlibEntry ) const
+{
+ if ( meBlibType != r_EscherBlibEntry.meBlibType )
+ return FALSE;
+ for ( int i = 0; i < 3; i++ )
+ {
+ if ( mnIdentifier[ i ] != r_EscherBlibEntry.mnIdentifier[ i ] )
+ return FALSE;
+ }
+ return TRUE;
+}
+
+// ---------------------------------------------------------------------------------------------
+// ---------------------------------------------------------------------------------------------
+// ---------------------------------------------------------------------------------------------
+
+_EscherEx::_EscherEx( SvStorageStream& rOutStrm, UINT32 nDrawings ) :
+ mpOutStrm ( &rOutStrm ),
+ mpGraphicProvider ( NULL ),
+ mpOffsets ( new UINT32[ 32 ] ),
+ mpRecTypes ( new UINT16[ 32 ] ),
+ mnDrawings ( nDrawings ),
+ mnLevel ( 0 ),
+ mb_EscherSpgr ( FALSE ),
+ mb_EscherDg ( FALSE ),
+ mpSortStruct ( NULL ),
+ mnGroupLevel ( 0 ),
+ mnFIDCLs ( nDrawings ),
+ mnCurrentDg ( 0 ),
+ mnCurrentShapeID ( 0 ),
+ mnTotalShapesDgg ( 0 ),
+ mnCurrentShapeMaximumID ( 0 )
+{
+ mnStrmStartOfs = mpOutStrm->Tell();
+}
+
+// ---------------------------------------------------------------------------------------------
+
+UINT32 _EscherEx::DrawingGroupContainerSize()
+{
+ return ImplDggContainerSize() + 8;
+}
+
+void _EscherEx::WriteDrawingGroupContainer( SvStream& rSt )
+{
+ UINT32 nSize = DrawingGroupContainerSize();
+ rSt << (UINT32)( 0xf | ( 1035 << 16 ) ) // EPP_PPDrawingGroup
+ << (UINT32)( nSize - 8 );
+
+ ImplWriteDggContainer( rSt );
+}
+
+// ---------------------------------------------------------------------------------------------
+
+UINT32 _EscherEx::ImplDggContainerSize()
+{
+ UINT32 nSize;
+
+ nSize = ImplDggAtomSize();
+ nSize += ImplBlibStoreContainerSize();
+ nSize += ImplOptAtomSize();
+ nSize += ImplSplitMenuColorsAtomSize();
+
+ return nSize + 8;
+}
+
+void _EscherEx::ImplWriteDggContainer( SvStream& rSt )
+{
+ UINT32 nSize = ImplDggContainerSize();
+ if ( nSize )
+ {
+ rSt << (UINT32)( 0xf | ( _Escher_DggContainer << 16 ) )
+ << (UINT32)( nSize - 8 );
+
+ ImplWriteDggAtom( rSt );
+ ImplWriteBlibStoreContainer( rSt );
+ ImplWriteOptAtom( rSt );
+ ImplWriteSplitMenuColorsAtom( rSt );
+ }
+}
+
+// ---------------------------------------------------------------------------------------------
+
+UINT32 _EscherEx::ImplDggAtomSize()
+{
+ return maFIDCLs.Tell() + 24;
+}
+
+void _EscherEx::ImplWriteDggAtom( SvStream& rSt )
+{
+ UINT32 nSize = ImplDggAtomSize();
+ if ( nSize )
+ {
+ rSt << (UINT32)( _Escher_Dgg << 16 )
+ << (UINT32)( nSize - 8 )
+ << mnCurrentShapeID
+ << (UINT32)( mnFIDCLs + 1 )
+ << mnTotalShapesDgg
+ << mnDrawings;
+
+ rSt.Write( maFIDCLs.GetData(), nSize - 24 );
+ }
+}
+
+// ---------------------------------------------------------------------------------------------
+
+UINT32 _EscherEx::ImplBlibStoreContainerSize()
+{
+ UINT32 nSize = 0;
+ if ( mpGraphicProvider && mpGraphicProvider->mnBlibEntrys )
+ nSize = 44 * mpGraphicProvider->mnBlibEntrys + 8;
+ return nSize;
+}
+
+void _EscherEx::ImplWriteBlibStoreContainer( SvStream& rSt )
+{
+ UINT32 nSize = ImplBlibStoreContainerSize();
+ if ( nSize )
+ {
+ rSt << (UINT32)( ( _Escher_BstoreContainer << 16 ) | 0x1f )
+ << (UINT32)( nSize - 8 );
+
+ for ( UINT32 i = 0; i < mpGraphicProvider->mnBlibEntrys; i++ )
+ {
+ _EscherBlibEntry* pBlibEntry = mpGraphicProvider->mpBlibEntrys[ i ];
+ BYTE nBlibType = pBlibEntry->meBlibType;
+ AddAtom( 36, _Escher_BSE, 2, nBlibType );
+ rSt << nBlibType;
+ if ( ( nBlibType == WMF ) || ( nBlibType == EMF ) )
+ { // WMF auf OS2 zu Pict Konvertieren
+ rSt << (BYTE)4;
+ rSt.Write( &pBlibEntry->mnIdentifier[ 0 ], 16 );
+ rSt << (UINT16)0 << (UINT32)( pBlibEntry->mnSize + 0x4a ) << (UINT32)( i + 1 ) << pBlibEntry->mnPictureOffset << (UINT32)0;
+ }
+ else
+ {
+ rSt << nBlibType;
+ rSt.Write( &pBlibEntry->mnIdentifier[ 0 ], 16 );
+ rSt << (UINT16)0 << pBlibEntry->mnSize << (UINT32)( i + 1 ) << pBlibEntry->mnPictureOffset << (UINT32)0;
+ }
+ }
+ }
+}
+
+// ---------------------------------------------------------------------------------------------
+
+#define ESCHER_OPT_COUNT 6
+
+UINT32 _EscherEx::ImplOptAtomSize()
+{
+ UINT32 nSize = 0;
+ if ( ESCHER_OPT_COUNT )
+ nSize = ( ESCHER_OPT_COUNT * 6 ) + 8;
+ return nSize;
+}
+
+void _EscherEx::ImplWriteOptAtom( SvStream& rSt )
+{
+ UINT32 nSize = ImplOptAtomSize();
+ if ( nSize )
+ {
+ rSt << (UINT32)( ( _Escher_OPT << 16 ) | ( ESCHER_OPT_COUNT << 4 ) | 0x3 )
+ << (UINT32)( nSize - 8 )
+ << (UINT16)_Escher_Prop_fillColor << (UINT32)0xffb800
+ << (UINT16)_Escher_Prop_fillBackColor << (UINT32)0
+ << (UINT16)_Escher_Prop_fNoFillHitTest << (UINT32)0x00100010
+ << (UINT16)_Escher_Prop_lineColor << (UINT32)0x8000001
+ << (UINT16)_Escher_Prop_fNoLineDrawDash << (UINT32)0x00080008
+ << (UINT16)_Escher_Prop_shadowColor << (UINT32)0x8000002;
+ }
+
+}
+
+// ---------------------------------------------------------------------------------------------
+
+#define ESCHER_SPLIT_MENU_COLORS_COUNT 4
+
+UINT32 _EscherEx::ImplSplitMenuColorsAtomSize()
+{
+ UINT32 nSize = 0;
+ if ( ESCHER_SPLIT_MENU_COLORS_COUNT )
+ nSize = ( ESCHER_SPLIT_MENU_COLORS_COUNT << 2 ) + 8;
+ return nSize;
+}
+
+void _EscherEx::ImplWriteSplitMenuColorsAtom( SvStream& rSt )
+{
+ UINT32 nSize = ImplSplitMenuColorsAtomSize();
+ if ( nSize )
+ {
+ rSt << (UINT32)( ( _Escher_SplitMenuColors << 16 ) | ( ESCHER_SPLIT_MENU_COLORS_COUNT << 4 ) )
+ << (UINT32)( nSize - 8 )
+ << (UINT32)0x08000004
+ << (UINT32)0x08000001
+ << (UINT32)0x08000002
+ << (UINT32)0x100000f7;
+ }
+
+}
+
+// ---------------------------------------------------------------------------------------------
+
+_EscherEx::~_EscherEx()
+{
+ delete mpGraphicProvider;
+ delete[] mpSortStruct;
+ delete[] mpRecTypes;
+ delete[] mpOffsets;
+}
+
+// ---------------------------------------------------------------------------------------------
+
+_EscherGraphicProvider::_EscherGraphicProvider( SvStream& rStream, UINT32 nFlags ) :
+ mrPicOutStrm ( rStream ),
+ mnFlags ( nFlags ),
+ mpBlibEntrys ( NULL ),
+ mnBlibBufSize ( 0 ),
+ mnBlibEntrys ( 0 )
+{
+}
+
+_EscherGraphicProvider::~_EscherGraphicProvider()
+{
+ for ( UINT32 i = 0; i < mnBlibEntrys; delete mpBlibEntrys[ i++ ] );
+ delete mpBlibEntrys;
+}
+
+UINT32 _EscherGraphicProvider::ImplInsertBlib( _EscherBlibEntry* p_EscherBlibEntry )
+{
+ if ( mnBlibBufSize == mnBlibEntrys )
+ {
+ mnBlibBufSize += 64;
+ _EscherBlibEntry** pTemp = new _EscherBlibEntry*[ mnBlibBufSize ];
+ for ( UINT32 i = 0; i < mnBlibEntrys; i++ )
+ {
+ pTemp[ i ] = mpBlibEntrys[ i ];
+ }
+ delete mpBlibEntrys;
+ mpBlibEntrys = pTemp;
+ }
+ mpBlibEntrys[ mnBlibEntrys++ ] = p_EscherBlibEntry;
+ return mnBlibEntrys;
+}
+
+UINT32 _EscherGraphicProvider::ImplGetBlibID( SvMemoryStream& rSource, _Escher_BlibType eBlibType, const _Escher_GDIStruct* pGDI )
+{
+ _EscherBlibEntry* p_EscherBlibEntry = new _EscherBlibEntry( rSource, eBlibType, mrPicOutStrm.Tell() );
+ for ( UINT32 i = 0; i < mnBlibEntrys; i++ )
+ {
+ if ( *( mpBlibEntrys[ i ] ) == *p_EscherBlibEntry )
+ {
+ delete p_EscherBlibEntry;
+ return i + 1;
+ }
+ }
+
+ UINT32 nAtomSize = 0;
+ if ( mnFlags & _E_GRAPH_PROV_USE_INSTANCES )
+ {
+ mrPicOutStrm << (UINT32)( 0x7f90000 | (UINT16)( mnBlibEntrys << 4 ) )
+ << (UINT32)0;
+ nAtomSize = mrPicOutStrm.Tell();
+ if ( eBlibType == PNG )
+ mrPicOutStrm << (UINT16)0x0606;
+ else if ( eBlibType == WMF )
+ mrPicOutStrm << (UINT16)0x0403;
+ }
+ UINT32 nInstance;
+ switch ( eBlibType )
+ {
+ case PEG :
+ case PNG :
+ {
+ nInstance = ( eBlibType == PNG ) ? 0xf01e6e00 : 0xf01d46a0;
+ mrPicOutStrm << nInstance << (UINT32)( p_EscherBlibEntry->mnSize + 17 );
+ mrPicOutStrm.Write( p_EscherBlibEntry->mnIdentifier, 16 );
+ mrPicOutStrm << (BYTE)0xff;
+ mrPicOutStrm.Write( rSource.GetData(), p_EscherBlibEntry->mnSize );
+ }
+ break;
+ case EMF :
+ case WMF :
+ {
+ nInstance = ( eBlibType == WMF ) ? 0xf01b2170 : 0xf01a3d50;
+ mrPicOutStrm << nInstance << (UINT32)( p_EscherBlibEntry->mnSize + 0x42 );
+ mrPicOutStrm.Write( p_EscherBlibEntry->mnIdentifier, 16 );
+ mrPicOutStrm.Write( p_EscherBlibEntry->mnIdentifier, 16 );
+ UINT32 nWidth = pGDI->GDIBoundRect.GetWidth() * 360;
+ UINT32 nHeight = pGDI->GDIBoundRect.GetHeight() * 360;
+ double fWidth = (double)pGDI->GDIBoundRect.GetWidth() / 10000.0 * 1027.0;
+ double fHeight = (double)pGDI->GDIBoundRect.GetHeight() / 10000.0 * 1027.0;
+
+ mrPicOutStrm << (UINT32)( pGDI->GDIUncompressedSize )// WMFSize ohne FileHeader
+ << (INT32)0 // da die Originalgroesse des WMF's (ohne FileHeader)
+ << (INT32)0 // nicht mehr feststellbar ist, schreiben wir 10cm / x
+ << (INT32)fWidth
+ << (INT32)fHeight
+ << nWidth
+ << nHeight
+ << (UINT32)( p_EscherBlibEntry->mnSize )
+ << (UINT16)0xfe00; // compression Flags
+ mrPicOutStrm.Write( rSource.GetData(), p_EscherBlibEntry->mnSize );
+ }
+ break;
+ }
+ if ( nAtomSize )
+ {
+ UINT32 nPos = mrPicOutStrm.Tell();
+ mrPicOutStrm.Seek( nAtomSize - 4 );
+ mrPicOutStrm << (UINT32)( nPos - nAtomSize );
+ mrPicOutStrm.Seek( nPos );
+ }
+ return ImplInsertBlib( p_EscherBlibEntry );
+}
+
+// ---------------------------------------------------------------------------------------------
+
+void _EscherEx::InsertAtCurrentPos( UINT32 nBytes, BOOL bContainer )
+{
+ UINT32 i, nSize, nType, nSource, nBufSize, nToCopy, nCurPos = mpOutStrm->Tell();
+ BYTE* pBuf;
+
+ // Persist table anpassen
+ for ( void* pPtr = maPersistTable.First(); pPtr; pPtr = maPersistTable.Next() )
+ {
+ UINT32 nOfs = ((_EscherPersistEntry*)pPtr)->mnOffset;
+ if ( nOfs >= nCurPos )
+ ((_EscherPersistEntry*)pPtr)->mnOffset += nBytes;
+ }
+
+ // container und atom sizes anpassen
+ mpOutStrm->Seek( mnStrmStartOfs );
+ while ( mpOutStrm->Tell() < nCurPos )
+ {
+ *mpOutStrm >> nType >> nSize;
+ if ( ( mpOutStrm->Tell() + nSize ) >= ( ( bContainer ) ? nCurPos + 1 : nCurPos ) )
+ {
+ mpOutStrm->SeekRel( -4 );
+ *mpOutStrm << (UINT32)( nSize + nBytes );
+ if ( ( nType & 0xf ) != 0xf )
+ mpOutStrm->SeekRel( nSize );
+ }
+ else
+ mpOutStrm->SeekRel( nSize );
+ }
+
+ // Container Offsets verschieben
+ for ( i = 1; i <= (UINT32)mnLevel; i++ )
+ {
+ if ( mpOffsets[ i ] > nCurPos )
+ mpOffsets[ i ] += nBytes;
+ }
+ mpOutStrm->Seek( STREAM_SEEK_TO_END );
+ nSource = mpOutStrm->Tell();
+ nToCopy = nSource - nCurPos; // Stream um nBytes vergroessern
+ pBuf = new BYTE[ 0x40000 ]; // 256KB Buffer
+ while ( nToCopy )
+ {
+ nBufSize = ( nToCopy >= 0x40000 ) ? 0x40000 : nToCopy;
+ nToCopy -= nBufSize;
+ nSource -= nBufSize;
+ mpOutStrm->Seek( nSource );
+ mpOutStrm->Read( pBuf, nBufSize );
+ mpOutStrm->Seek( nSource + nBytes );
+ mpOutStrm->Write( pBuf, nBufSize );
+ }
+ delete pBuf;
+ mpOutStrm->Seek( nCurPos );
+}
+
+// ---------------------------------------------------------------------------------------------
+
+BOOL _EscherEx::SeekBehindRecHeader( UINT16 nRecType )
+{
+ UINT32 nOldPos, nStreamEnd, nType, nSize;
+
+ nOldPos = mpOutStrm->Tell();
+ nStreamEnd = mpOutStrm->Seek( STREAM_SEEK_TO_END );
+ mpOutStrm->Seek( nOldPos );
+ while ( mpOutStrm->Tell() < nStreamEnd )
+ {
+ *mpOutStrm >> nType >> nSize;
+ if ( ( nType >> 16 ) == nRecType )
+ return TRUE;
+ if ( ( nType & 0xf ) != 0xf )
+ mpOutStrm->SeekRel( nSize );
+ }
+ mpOutStrm->Seek( nOldPos );
+ return FALSE;
+}
+
+// ---------------------------------------------------------------------------------------------
+
+void _EscherEx::InsertPersistOffset( UINT32 nKey, UINT32 nOffset )
+{
+ PtInsert( _Escher_Persist_PrivateEntry | nKey, nOffset );
+}
+
+// ---------------------------------------------------------------------------------------------
+
+BOOL _EscherEx::ImplSeek( UINT32 nKey )
+{
+ UINT32 nPos = PtGetOffsetByID( nKey );
+ if ( nPos )
+ mpOutStrm->Seek( nPos );
+ else
+ {
+ if (! PtIsID( nKey ) )
+ return FALSE;
+ mpOutStrm->Seek( 0 );
+ }
+ return TRUE;
+}
+
+// ---------------------------------------------------------------------------------------------
+
+BOOL _EscherEx::SeekToPersistOffset( UINT32 nKey )
+{
+ return ImplSeek( _Escher_Persist_PrivateEntry | nKey );
+}
+
+// ---------------------------------------------------------------------------------------------
+
+BOOL _EscherEx::InsertAtPersistOffset( UINT32 nKey, UINT32 nValue )
+{
+ UINT32 nOldPos = mpOutStrm->Tell();
+ BOOL bRetValue = SeekToPersistOffset( nKey );
+ if ( bRetValue )
+ {
+ *mpOutStrm << nValue;
+ mpOutStrm->Seek( nOldPos );
+ }
+ return bRetValue;
+}
+
+// ---------------------------------------------------------------------------------------------
+
+void _EscherEx::OpenContainer( UINT16 n_EscherContainer, int nRecInstance )
+{
+ *mpOutStrm << (UINT16)( ( nRecInstance << 4 ) | 0xf ) << n_EscherContainer << (UINT32)0;
+ mpOffsets[ ++mnLevel ] = mpOutStrm->Tell() - 4;
+ mpRecTypes[ mnLevel ] = n_EscherContainer;
+
+ switch( n_EscherContainer )
+ {
+ case _Escher_DgContainer :
+ {
+ if ( !mb_EscherDg )
+ {
+ mb_EscherDg = TRUE;
+ mnCurrentDg++;
+ mnTotalShapesDg = 0;
+ mnTotalShapeIdUsedDg = 0;
+ mnCurrentShapeID = ( mnCurrentShapeMaximumID &~0x3ff ) + 0x400; // eine neue Seite bekommt immer eine neue ShapeId die ein vielfaches von 1024 ist,
+ // damit ist erste aktuelle Shape ID 0x400
+ AddAtom( 8, _Escher_Dg, 0, mnCurrentDg );
+ PtReplaceOrInsert( _Escher_Persist_Dg | mnCurrentDg, mpOutStrm->Tell() );
+ *mpOutStrm << (UINT32)0 // The number of shapes in this drawing
+ << (UINT32)0; // The last MSOSPID given to an SP in this DG
+ }
+ }
+ break;
+
+ case _Escher_SpgrContainer :
+ {
+ if ( mb_EscherDg )
+ {
+ mb_EscherSpgr = TRUE;
+ }
+ }
+ break;
+
+ case _Escher_SpContainer :
+ {
+ }
+ break;
+
+ default:
+ break;
+ }
+}
+
+// ---------------------------------------------------------------------------------------------
+
+void _EscherEx::CloseContainer()
+{
+ UINT32 nSize, nPos = mpOutStrm->Tell();
+ nSize = ( nPos - mpOffsets[ mnLevel ] ) - 4;
+ mpOutStrm->Seek( mpOffsets[ mnLevel ] );
+ *mpOutStrm << nSize;
+
+ switch( mpRecTypes[ mnLevel ] )
+ {
+ case _Escher_DgContainer :
+ {
+ if ( mb_EscherDg )
+ {
+ mb_EscherDg = FALSE;
+ if ( ImplSeek( _Escher_Persist_Dg | mnCurrentDg ) )
+ {
+ // shapeanzahl des drawings setzen
+ mnTotalShapesDgg += mnTotalShapesDg;
+ *mpOutStrm << mnTotalShapesDg << mnCurrentShapeMaximumID;
+
+ if ( !mnTotalShapesDg )
+ {
+ maFIDCLs << (UINT32)0
+ << (UINT32)0;
+ }
+ else
+ {
+ if ( mnTotalShapeIdUsedDg )
+ {
+ UINT32 i, nFIDCL = ( ( mnTotalShapeIdUsedDg - 1 ) / 0x400 );
+ if ( nFIDCL )
+ mnFIDCLs += nFIDCL;
+ for ( i = 0; i <= nFIDCL; i++ )
+ {
+ maFIDCLs << mnCurrentDg; // drawing number
+ if ( i < nFIDCL )
+ maFIDCLs << 0x400;
+ else
+ {
+ UINT32 nShapesLeft = mnTotalShapeIdUsedDg % 0x400;
+ if ( !nShapesLeft )
+ nShapesLeft = 0x400; // shape count in this IDCL
+ maFIDCLs << (UINT32)nShapesLeft;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ break;
+
+ case _Escher_SpgrContainer :
+ {
+ if ( mb_EscherSpgr )
+ {
+ mb_EscherSpgr = FALSE;
+
+ }
+ }
+ break;
+
+ default:
+ break;
+ }
+ --mnLevel;
+ mpOutStrm->Seek( nPos );
+}
+
+// ---------------------------------------------------------------------------------------------
+
+void _EscherEx::BeginAtom()
+{
+ mnCountOfs = mpOutStrm->Tell();
+ *mpOutStrm << (UINT32)0 << (UINT32)0; // record header wird spaeter geschrieben
+}
+
+// ---------------------------------------------------------------------------------------------
+
+void _EscherEx::EndAtom( UINT16 nRecType, int nRecVersion, int nRecInstance )
+{
+ UINT32 nOldPos = mpOutStrm->Tell();
+ mpOutStrm->Seek( mnCountOfs );
+ mnCountSize = nOldPos - mnCountOfs;
+ *mpOutStrm << (UINT16)( ( nRecInstance << 4 ) | ( nRecVersion & 0xf ) ) << nRecType << (UINT32)( mnCountSize - 8 );
+ mpOutStrm->Seek( nOldPos );
+}
+
+// ---------------------------------------------------------------------------------------------
+
+void _EscherEx::AddAtom( UINT32 nAtomSize, UINT16 nRecType, int nRecVersion, int nRecInstance )
+{
+ *mpOutStrm << (UINT16)( ( nRecInstance << 4 ) | ( nRecVersion & 0xf ) ) << nRecType << nAtomSize;
+}
+
+// ---------------------------------------------------------------------------------------------
+
+void _EscherEx::AddClientAnchor( const Rectangle& rRect )
+{
+ AddAtom( 8, _Escher_ClientAnchor );
+ *mpOutStrm << (INT16)rRect.Top() << (INT16)rRect.Left() << (INT16)rRect.Right() << (INT16)rRect.Bottom();
+}
+
+// ---------------------------------------------------------------------------------------------
+
+void _EscherEx::EnterGroup( Rectangle* pBoundRect )
+{
+ Rectangle aRect;
+ if ( pBoundRect )
+ aRect = *pBoundRect;
+
+ OpenContainer( _Escher_SpgrContainer );
+ OpenContainer( _Escher_SpContainer );
+ AddAtom( 16, _Escher_Spgr, 1 );
+ PtReplaceOrInsert( _Escher_Persist_Grouping_Snap | mnGroupLevel, mpOutStrm->Tell() );
+ *mpOutStrm << (INT32)aRect.Left() // Bounding box fuer die Gruppierten shapes an die sie attached werden
+ << (INT32)aRect.Top()
+ << (INT32)aRect.Right()
+ << (INT32)aRect.Bottom();
+
+ if ( !mnGroupLevel )
+ {
+ AddShape( _Escher_ShpInst_Min, 5 ); // Flags: Group | Patriarch
+ CloseContainer(); // _Escher_SpContainer
+ }
+ else
+ {
+ AddShape( _Escher_ShpInst_Min, 0x201 ); // Flags: Group | HaveAnchor
+ AddAtom( 8, _Escher_ClientAnchor );
+ PtReplaceOrInsert( _Escher_Persist_Grouping_Logic | mnGroupLevel, mpOutStrm->Tell() );
+ *mpOutStrm << (INT16)aRect.Top() << (INT16)aRect.Left() << (INT16)aRect.Right() << (INT16)aRect.Bottom();
+ CloseContainer(); // _Escher_SpContainer
+ }
+ mnGroupLevel++;
+}
+
+// ---------------------------------------------------------------------------------------------
+
+BOOL _EscherEx::SetGroupSnapRect( UINT32 nGroupLevel, const Rectangle& rRect )
+{
+ BOOL bRetValue = FALSE;
+ if ( nGroupLevel )
+ {
+ UINT32 nCurrentPos = mpOutStrm->Tell();
+ if ( ImplSeek( _Escher_Persist_Grouping_Snap | ( nGroupLevel - 1 ) ) )
+ {
+ *mpOutStrm << (INT32)rRect.Left() // Bounding box fuer die Gruppierten shapes an die sie attached werden
+ << (INT32)rRect.Top()
+ << (INT32)rRect.Right()
+ << (INT32)rRect.Bottom();
+ mpOutStrm->Seek( nCurrentPos );
+ }
+ }
+ return bRetValue;
+}
+
+// ---------------------------------------------------------------------------------------------
+
+BOOL _EscherEx::SetGroupLogicRect( UINT32 nGroupLevel, const Rectangle& rRect )
+{
+ BOOL bRetValue = FALSE;
+ if ( nGroupLevel )
+ {
+ UINT32 nCurrentPos = mpOutStrm->Tell();
+ if ( ImplSeek( _Escher_Persist_Grouping_Logic | ( nGroupLevel - 1 ) ) )
+ {
+ *mpOutStrm << (INT16)rRect.Top() << (INT16)rRect.Left() << (INT16)rRect.Right() << (INT16)rRect.Bottom();
+ mpOutStrm->Seek( nCurrentPos );
+ }
+ }
+ return bRetValue;
+}
+
+// ---------------------------------------------------------------------------------------------
+
+void _EscherEx::LeaveGroup()
+{
+ --mnGroupLevel;
+ PtDelete( _Escher_Persist_Grouping_Snap | mnGroupLevel );
+ PtDelete( _Escher_Persist_Grouping_Logic | mnGroupLevel );
+ CloseContainer();
+}
+
+// ---------------------------------------------------------------------------------------------
+
+void _EscherEx::AddShape( UINT32 nShpInstance, UINT32 nFlags, UINT32 nShapeID )
+{
+ AddAtom( 8, _Escher_Sp, 2, nShpInstance );
+
+ if ( !nShapeID )
+ nShapeID = GetShapeID();
+
+ if ( nFlags ^ 1 ) // is this a group shape ?
+ { // if not
+ if ( mnGroupLevel > 1 )
+ nFlags |= 2; // this not a topmost shape
+ }
+ *mpOutStrm << nShapeID << nFlags;
+
+ if ( mb_EscherSpgr )
+ mnTotalShapesDg++;
+}
+
+// ---------------------------------------------------------------------------------------------
+
+UINT32 _EscherEx::GetShapeID()
+{
+ mnCurrentShapeMaximumID = mnCurrentShapeID; // maximum setzen
+ mnCurrentShapeID++; // mnCurrentShape ID auf nachste freie ID
+ mnTotalShapeIdUsedDg++;
+ return mnCurrentShapeMaximumID;
+}
+
+// ---------------------------------------------------------------------------------------------
+
+extern "C" int __LOADONCALLAPI _EscherPropSortFunc( const void* p1, const void* p2 )
+{
+ INT16 nID1 = ((_EscherPropSortStruct*)p1)->nPropId &~0xc000;
+ INT16 nID2 = ((_EscherPropSortStruct*)p2)->nPropId &~0xc000;
+
+ if( nID1 < nID2 )
+ return -1;
+ else if( nID1 > nID2 )
+ return 1;
+ else
+ return 0;
+}
+
+// ---------------------------------------------------------------------------------------------
+
+void _EscherEx::BeginCount()
+{
+ mnCountOfs = mpOutStrm->Tell();
+ *mpOutStrm << (UINT32)0 << (UINT32)0; // record header wird spaeter geschrieben
+ mnSortCount = 0; // normale Properties werden automatisch sortiert
+ mnCountCount = 0;
+ mnCountSize = 8;
+
+ if ( !mpSortStruct )
+ mpSortStruct = new _EscherPropSortStruct[ mnSortBufSize = 64 ];
+}
+
+// ---------------------------------------------------------------------------------------------
+
+void _EscherEx::AddOpt( UINT16 nPropID, UINT32 nPropValue, BOOL bBlib )
+{
+ AddOpt( nPropID, bBlib, nPropValue, NULL, 0 );
+}
+
+// ---------------------------------------------------------------------------------------------
+
+void _EscherEx::AddOpt( UINT16 nPropID, BOOL bBlib, UINT32 nPropValue, BYTE* pProp, UINT32 nPropSize )
+{
+ if ( bBlib ) // bBlib is only valid when fComplex = 0
+ nPropID |= 0x4000;
+ if ( pProp )
+ nPropID |= 0x8000; // fComplex = TRUE;
+
+ for( UINT32 i = 0; i < mnSortCount; i++ )
+ {
+ if ( ( mpSortStruct[ i ].nPropId &~0xc000 ) == ( nPropID &~0xc000 ) ) // pruefen, ob Property nur ersetzt wird
+ {
+ mpSortStruct[ i ].nPropId = nPropID;
+ if ( mpSortStruct[ i ].pBuf )
+ {
+ mnCountSize -= mpSortStruct[ i ].nPropSize;
+ delete mpSortStruct[ i ].pBuf;
+ }
+ mpSortStruct[ i ].pBuf = pProp;
+ mpSortStruct[ i ].nPropSize = nPropSize;
+ mpSortStruct[ i ].nPropValue = nPropValue;
+ if ( pProp )
+ mnCountSize += nPropSize;
+ return;
+ }
+ }
+ mnCountCount++;
+ mnCountSize += 6;
+ if ( mnSortCount == mnSortBufSize ) // buffer vergroessern
+ {
+ mnSortBufSize <<= 1;
+ _EscherPropSortStruct* pTemp = new _EscherPropSortStruct[ mnSortBufSize ];
+ for( i = 0; i < mnSortCount; i++ )
+ {
+ pTemp[ i ] = mpSortStruct[ i ];
+ }
+ delete mpSortStruct;
+ mpSortStruct = pTemp;
+ }
+ mpSortStruct[ mnSortCount ].nPropId = nPropID; // property einfuegen
+ mpSortStruct[ mnSortCount ].pBuf = pProp;
+ mpSortStruct[ mnSortCount ].nPropSize = nPropSize;
+ mpSortStruct[ mnSortCount++ ].nPropValue = nPropValue;
+
+ if ( pProp )
+ mnCountSize += nPropSize;
+}
+
+BOOL _EscherEx::GetOpt( UINT16 nPropId, UINT32& nPropValue )
+{
+ BOOL bRetValue = FALSE;
+ for( UINT32 i = 0; i < mnSortCount; i++ )
+ {
+ if ( ( mpSortStruct[ i ].nPropId &~0xc000 ) == ( nPropId &~0xc000 ) ) // pruefen, ob Property nur ersetzt wird
+ {
+ nPropValue = mpSortStruct[ i ].nPropValue;
+ bRetValue = TRUE;
+ break;
+ }
+ }
+ return bRetValue;
+}
+
+// ---------------------------------------------------------------------------------------------
+
+void _EscherEx::AddColor( UINT32 nColor )
+{
+ mnCountCount++;
+ mnCountSize += 4;
+ *mpOutStrm << nColor;
+}
+
+// ---------------------------------------------------------------------------------------------
+
+void _EscherEx::EndCount( UINT16 nRecType, UINT16 nRecVersion )
+{
+ UINT32 nOldPos = mpOutStrm->Tell();
+ mpOutStrm->Seek( mnCountOfs );
+ *mpOutStrm << (UINT16)( ( mnCountCount << 4 ) | ( nRecVersion & 0xf ) ) << (UINT16)nRecType << (UINT32)( mnCountSize - 8 );
+ mpOutStrm->Seek( nOldPos );
+ if ( mnSortCount )
+ {
+ qsort( mpSortStruct, mnSortCount, sizeof( _EscherPropSortStruct ), _EscherPropSortFunc );
+ BOOL bComplex = FALSE;
+ for ( UINT32 i = 0; i < mnSortCount; i++ )
+ {
+ *mpOutStrm << (UINT16)mpSortStruct[ i ].nPropId
+ << (UINT32)mpSortStruct[ i ].nPropValue;
+ if ( mpSortStruct[ i ].pBuf )
+ bComplex = TRUE;
+ }
+ if ( bComplex )
+ {
+ for ( i = 0; i < mnSortCount; i++ )
+ {
+ if ( mpSortStruct[ i ].pBuf )
+ {
+ mpOutStrm->Write( mpSortStruct[ i ].pBuf, mpSortStruct[ i ].nPropSize );
+ delete mpSortStruct[ i ].pBuf;
+ }
+ }
+ }
+ mnSortCount = 0;
+ }
+}
+
+// ---------------------------------------------------------------------------------------------
+
+UINT32 _EscherEx::GetColor( const UINT32 nSOColor, BOOL bSwap )
+{
+ if ( bSwap )
+ {
+ UINT32 nColor = nSOColor & 0xff00; // GRUEN
+ nColor |= (BYTE)( nSOColor ) << 16; // ROT
+ nColor |= (BYTE)( nSOColor >> 16 ); // BLAU
+ return nColor;
+ }
+ else
+ return nSOColor & 0xffffff;
+}
+
+// ---------------------------------------------------------------------------------------------
+
+UINT32 _EscherEx::GetColor( const Color& rSOColor, BOOL bSwap )
+{
+ UINT32 nColor = ( rSOColor.GetRed() << 16 );
+ nColor |= ( rSOColor.GetGreen() << 8 );
+ nColor |= rSOColor.GetBlue();
+
+ if ( !bSwap )
+ nColor = GetColor( nColor, TRUE );
+
+ return nColor;
+}
+
+// ---------------------------------------------------------------------------------------------
+
+UINT32 _EscherEx::GetGradientColor( const ::com::sun::star::awt::Gradient* pGradient, UINT32 nStartColor )
+{
+ UINT32 nIntensity;
+ Color aColor;
+ if ( nStartColor & 1 )
+ {
+ nIntensity = pGradient->StartIntensity;
+ aColor = pGradient->StartColor;
+ }
+ else
+ {
+ nIntensity = pGradient->EndIntensity;
+ aColor = pGradient->EndColor;
+ }
+ UINT32 nRed = ( ( aColor.GetRed() * nIntensity ) / 100 );
+ UINT32 nGreen = ( ( aColor.GetGreen() * nIntensity ) / 100 ) << 8;
+ UINT32 nBlue = ( ( aColor.GetBlue() * nIntensity ) / 100 ) << 16;
+ return nRed | nGreen | nBlue;
+}
+
+// ---------------------------------------------------------------------------------------------
+
+void _EscherEx::WriteGradient( const ::com::sun::star::awt::Gradient* pGradient )
+{
+ UINT32 nFillFocus = 0x64;
+ UINT32 nFirstColor = 0;
+
+
+ switch ( pGradient->Style )
+ {
+ default:
+ case ::com::sun::star::awt::GradientStyle_LINEAR :
+ {
+ }
+ break;
+ case ::com::sun::star::awt::GradientStyle_AXIAL :
+ {
+ nFillFocus = 0x32;
+ nFirstColor = 1;
+ }
+ break;
+ case ::com::sun::star::awt::GradientStyle_RADIAL :
+ {
+ }
+ break;
+ case ::com::sun::star::awt::GradientStyle_ELLIPTICAL :
+ {
+ }
+ break;
+ case ::com::sun::star::awt::GradientStyle_SQUARE :
+ {
+ }
+ break;
+ case ::com::sun::star::awt::GradientStyle_RECT :
+ {
+ }
+ break;
+ }
+ AddOpt( _Escher_Prop_fillType, _Escher_FillShadeScale );
+ AddOpt( _Escher_Prop_fillAngle, ( ( -3600 + pGradient->Angle ) << 16 ) / 10 );
+ AddOpt( _Escher_Prop_fillColor, GetGradientColor( pGradient, nFirstColor ) );
+ AddOpt( _Escher_Prop_fillBackColor, GetGradientColor( pGradient, nFirstColor ^ 1 ) );
+ AddOpt( _Escher_Prop_fillFocus, nFillFocus );
+};
+
+// ---------------------------------------------------------------------------------------------
+
+UINT32 _EscherEx::AddGraphic( SvStorageStream& rStrm, const Graphic& rGraphic )
+{
+ if ( !mpGraphicProvider )
+ mpGraphicProvider = new _EscherGraphicProvider( rStrm );
+
+ UINT32 nErrCode, nId = 0;
+ GraphicType eGraphicType = rGraphic.GetType();
+ if ( ( eGraphicType == GRAPHIC_BITMAP ) || ( eGraphicType == GRAPHIC_GDIMETAFILE ) )
+ {
+ SvMemoryStream aDestStrm;
+
+ nErrCode = GraphicConverter::Export( aDestStrm, rGraphic, ( eGraphicType == GRAPHIC_BITMAP ) ? CVT_PNG : CVT_WMF );
+ if ( nErrCode == ERRCODE_NONE )
+ {
+ return mpGraphicProvider->ImplGetBlibID( aDestStrm, ( eGraphicType == GRAPHIC_BITMAP ) ? PNG : WMF );
+ }
+ }
+ return nId;
+}
+
+// ---------------------------------------------------------------------------------------------
+
+UINT32 _EscherEx::AddGraphic( SvStorageStream& rStrm, const BYTE* pSource,
+ UINT32 nSize, const Rectangle& rRect, _Escher_BlibType eBlipType )
+{
+ _Escher_GDIStruct aGDIStruct;
+ aGDIStruct.GDIBoundRect = rRect;
+ aGDIStruct.GDISize = rRect.GetSize();
+ aGDIStruct.GDIUncompressedSize = nSize;
+
+ if ( !mpGraphicProvider )
+ mpGraphicProvider = new _EscherGraphicProvider( rStrm );
+
+ if ( ( eBlipType == PEG ) || ( eBlipType == PNG ) )
+ {
+ SvMemoryStream aDestStrm( (char*)pSource, nSize, STREAM_READ );
+ aDestStrm.ObjectOwnsMemory( FALSE );
+ return mpGraphicProvider->ImplGetBlibID( aDestStrm, eBlipType, &aGDIStruct );
+ }
+ else
+ {
+ ZCodec aZCodec( 0x8000, 0x8000 );
+ aZCodec.BeginCompression();
+ SvMemoryStream aDestStrm;
+ aZCodec.Write( aDestStrm, pSource, nSize );
+ aZCodec.EndCompression();
+ return mpGraphicProvider->ImplGetBlibID( aDestStrm, eBlipType, &aGDIStruct );
+ }
+}
+
+
diff --git a/sd/source/filter/eppt/escherex.hxx b/sd/source/filter/eppt/escherex.hxx
new file mode 100644
index 000000000000..07dd409d5a63
--- /dev/null
+++ b/sd/source/filter/eppt/escherex.hxx
@@ -0,0 +1,1209 @@
+/*************************************************************************
+ *
+ * $RCSfile: escherex.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:45 $
+ *
+ * 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 __EscherEX_HXX
+#define __EscherEX_HXX
+
+#ifndef _SOLAR_H
+#include
+#endif
+#ifndef _SV_GEN_HXX
+#include
+#endif
+#ifndef _LIST_HXX
+#include
+#endif
+#ifndef _STREAM_HXX
+#include
+#endif
+#ifndef _COM_SUN_STAR_AWT_GRADIENT_HPP_
+#include
+#endif
+
+ /*Record Name FBT-Value Instance Contents Wrd Exl PPt Ver*/
+// In der Mickysoft-Doku heissen die msofbt... statt _Escher_...
+#define _Escher_DggContainer 0xF000 /* per-document data X X X */
+#define _Escher_Dgg 0xF006 /* an FDGG and several FIDCLs X X X 0 */
+#define _Escher_CLSID 0xF016 /* the CLSID of the application that put the data on the clipboard C C C 0 */
+#define _Escher_OPT 0xF00B /* count of properties the document-wide default shape properties X X X 3 */
+#define _Escher_ColorMRU 0xF11A /* count of colors the colors in the MRU swatch X X X 0 */
+#define _Escher_SplitMenuColors 0xF11E /* count of colors the colors in the top-level split menus X X X 0 */
+#define _Escher_BstoreContainer 0xF001 /* count of BLIPs all images in the document (JPEGs, metafiles, etc.) X X X */
+#define _Escher_BSE 0xF007 /* BLIP type an FBSE (one per BLIP) X X X 2 */
+#define _Escher_BlipFirst 0xF018 /* range of fbts reserved for various kinds of BLIPs X X X */
+#define _Escher_BlipLast 0xF117 /* range of fbts reserved for various kinds of BLIPs X X X */
+
+#define _Escher_DgContainer 0xF002 /* per-sheet/page/slide data X X X */
+#define _Escher_Dg 0xF008 /* drawing ID an FDG X X X 0 */
+#define _Escher_RegroupItems 0xF118 /* count of regroup entries several FRITs X X X 0 */
+#define _Escher_ColorScheme 0xF120 /* count of colors the colors of the source host's color scheme C C 0 */
+#define _Escher_SpgrContainer 0xF003 /* several SpContainers, the first of which is the group shape itself X X X */
+#define _Escher_SpContainer 0xF004 /* a shape X X X */
+#define _Escher_Spgr 0xF009 /* an FSPGR; only present if the shape is a group shape X X X 1 */
+#define _Escher_Sp 0xF00A /* shape type an FSP X X X 2 */
+//#define _Escher_OPT 0xF00B /* count of properties a shape property table X X X 3 */
+#define _Escher_Textbox 0xF00C /* RTF text C C C 0 */
+#define _Escher_ClientTextbox 0xF00D /* host-defined the text in the textbox, in host-defined format X X X */
+#define _Escher_Anchor 0xF00E /* a RECT, in 100000ths of an inch C C C 0 */
+#define _Escher_ChildAnchor 0xF00F /* a RECT, in units relative to the parent group X X X 0 */
+#define _Escher_ClientAnchor 0xF010 /* host-defined the location of the shape, in a host-defined format X X X */
+#define _Escher_ClientData 0xF011 /* host-defined host-specific data X X X */
+#define _Escher_OleObject 0xF11F /* a serialized IStorage for an OLE object C C C 0 */
+#define _Escher_DeletedPspl 0xF11D /* an FPSPL; only present in top-level deleted shapes X 0 */
+#define _Escher_SolverContainer 0xF005 /* count of rules the rules governing shapes X X X */
+#define _Escher_ConnectorRule 0xF012 /* an FConnectorRule X X 1 */
+#define _Escher_AlignRule 0xF013 /* an FAlignRule X X X 0 */
+#define _Escher_ArcRule 0xF014 /* an FARCRU X X X 0 */
+#define _Escher_ClientRule 0xF015 /* host-defined host-defined */
+#define _Escher_CalloutRule 0xF017 /* an FCORU X X X 0 */
+#define _Escher_Selection 0xF119 /* an FDGSL followed by the SPIDs of the shapes in the selection X 0 */
+
+#define SHAPEFLAG_GROUP 0x001 // This shape is a group shape
+#define SHAPEFLAG_CHILD 0x002 // Not a top-level shape
+#define SHAPEFLAG_PATRIARCH 0x004 // This is the topmost group shape. Exactly one of these per drawing.
+#define SHAPEFLAG_DELETED 0x008 // The shape has been deleted
+#define SHAPEFLAG_OLESHAPE 0x010 // The shape is an OLE object
+#define SHAPEFLAG_HAVEMASTER 0x020 // Shape has a hspMaster property
+#define SHAPEFLAG_FLIPH 0x040 // Shape is flipped horizontally
+#define SHAPEFLAG_FLIPV 0x080 // Shape is flipped vertically
+#define SHAPEFLAG_CONNECTOR 0x100 // Connector type of shape
+#define SHAPEFLAG_HAVEANCHOR 0x200 // Shape has an anchor of some kind
+#define SHAPEFLAG_BACKGROUND 0x400 // Background shape
+#define SHAPEFLAG_HAVESPT 0x800 // Shape has a shape type property
+
+#define _Escher_ShpInst_Min 0
+#define _Escher_ShpInst_NotPrimitive _Escher_ShpInst_Min
+#define _Escher_ShpInst_Rectangle 1
+#define _Escher_ShpInst_RoundRectangle 2
+#define _Escher_ShpInst_Ellipse 3
+#define _Escher_ShpInst_Diamond 4
+#define _Escher_ShpInst_IsocelesTriangle 5
+#define _Escher_ShpInst_RightTriangle 6
+#define _Escher_ShpInst_Parallelogram 7
+#define _Escher_ShpInst_Trapezoid 8
+#define _Escher_ShpInst_Hexagon 9
+#define _Escher_ShpInst_Octagon 10
+#define _Escher_ShpInst_Plus 11
+#define _Escher_ShpInst_Star 12
+#define _Escher_ShpInst_Arrow 13
+#define _Escher_ShpInst_ThickArrow 14
+#define _Escher_ShpInst_HomePlate 15
+#define _Escher_ShpInst_Cube 16
+#define _Escher_ShpInst_Balloon 17
+#define _Escher_ShpInst_Seal 18
+#define _Escher_ShpInst_Arc 19
+#define _Escher_ShpInst_Line 20
+#define _Escher_ShpInst_Plaque 21
+#define _Escher_ShpInst_Can 22
+#define _Escher_ShpInst_Donut 23
+#define _Escher_ShpInst_TextSimple 24
+#define _Escher_ShpInst_TextOctagon 25
+#define _Escher_ShpInst_TextHexagon 26
+#define _Escher_ShpInst_TextCurve 27
+#define _Escher_ShpInst_TextWave 28
+#define _Escher_ShpInst_TextRing 29
+#define _Escher_ShpInst_TextOnCurve 30
+#define _Escher_ShpInst_TextOnRing 31
+#define _Escher_ShpInst_StraightConnector1 32
+#define _Escher_ShpInst_BentConnector2 33
+#define _Escher_ShpInst_BentConnector3 34
+#define _Escher_ShpInst_BentConnector4 35
+#define _Escher_ShpInst_BentConnector5 36
+#define _Escher_ShpInst_CurvedConnector2 37
+#define _Escher_ShpInst_CurvedConnector3 38
+#define _Escher_ShpInst_CurvedConnector4 39
+#define _Escher_ShpInst_CurvedConnector5 40
+#define _Escher_ShpInst_Callout1 41
+#define _Escher_ShpInst_Callout2 42
+#define _Escher_ShpInst_Callout3 43
+#define _Escher_ShpInst_AccentCallout1 44
+#define _Escher_ShpInst_AccentCallout2 45
+#define _Escher_ShpInst_AccentCallout3 46
+#define _Escher_ShpInst_BorderCallout1 47
+#define _Escher_ShpInst_BorderCallout2 48
+#define _Escher_ShpInst_BorderCallout3 49
+#define _Escher_ShpInst_AccentBorderCallout1 50
+#define _Escher_ShpInst_AccentBorderCallout2 51
+#define _Escher_ShpInst_AccentBorderCallout3 52
+#define _Escher_ShpInst_Ribbon 53
+#define _Escher_ShpInst_Ribbon2 54
+#define _Escher_ShpInst_Chevron 55
+#define _Escher_ShpInst_Pentagon 56
+#define _Escher_ShpInst_NoSmoking 57
+#define _Escher_ShpInst_Seal8 58
+#define _Escher_ShpInst_Seal16 59
+#define _Escher_ShpInst_Seal32 60
+#define _Escher_ShpInst_WedgeRectCallout 61
+#define _Escher_ShpInst_WedgeRRectCallout 62
+#define _Escher_ShpInst_WedgeEllipseCallout 63
+#define _Escher_ShpInst_Wave 64
+#define _Escher_ShpInst_FoldedCorner 65
+#define _Escher_ShpInst_LeftArrow 66
+#define _Escher_ShpInst_DownArrow 67
+#define _Escher_ShpInst_UpArrow 68
+#define _Escher_ShpInst_LeftRightArrow 69
+#define _Escher_ShpInst_UpDownArrow 70
+#define _Escher_ShpInst_IrregularSeal1 71
+#define _Escher_ShpInst_IrregularSeal2 72
+#define _Escher_ShpInst_LightningBolt 73
+#define _Escher_ShpInst_Heart 74
+#define _Escher_ShpInst_PictureFrame 75
+#define _Escher_ShpInst_QuadArrow 76
+#define _Escher_ShpInst_LeftArrowCallout 77
+#define _Escher_ShpInst_RightArrowCallout 78
+#define _Escher_ShpInst_UpArrowCallout 79
+#define _Escher_ShpInst_DownArrowCallout 80
+#define _Escher_ShpInst_LeftRightArrowCallout 81
+#define _Escher_ShpInst_UpDownArrowCallout 82
+#define _Escher_ShpInst_QuadArrowCallout 83
+#define _Escher_ShpInst_Bevel 84
+#define _Escher_ShpInst_LeftBracket 85
+#define _Escher_ShpInst_RightBracket 86
+#define _Escher_ShpInst_LeftBrace 87
+#define _Escher_ShpInst_RightBrace 88
+#define _Escher_ShpInst_LeftUpArrow 89
+#define _Escher_ShpInst_BentUpArrow 90
+#define _Escher_ShpInst_BentArrow 91
+#define _Escher_ShpInst_Seal24 92
+#define _Escher_ShpInst_StripedRightArrow 93
+#define _Escher_ShpInst_NotchedRightArrow 94
+#define _Escher_ShpInst_BlockArc 95
+#define _Escher_ShpInst_SmileyFace 96
+#define _Escher_ShpInst_VerticalScroll 97
+#define _Escher_ShpInst_HorizontalScroll 98
+#define _Escher_ShpInst_CircularArrow 99
+#define _Escher_ShpInst_NotchedCircularArrow 100
+#define _Escher_ShpInst_UturnArrow 101
+#define _Escher_ShpInst_CurvedRightArrow 102
+#define _Escher_ShpInst_CurvedLeftArrow 103
+#define _Escher_ShpInst_CurvedUpArrow 104
+#define _Escher_ShpInst_CurvedDownArrow 105
+#define _Escher_ShpInst_CloudCallout 106
+#define _Escher_ShpInst_EllipseRibbon 107
+#define _Escher_ShpInst_EllipseRibbon2 108
+#define _Escher_ShpInst_FlowChartProcess 109
+#define _Escher_ShpInst_FlowChartDecision 110
+#define _Escher_ShpInst_FlowChartInputOutput 111
+#define _Escher_ShpInst_FlowChartPredefinedProcess 112
+#define _Escher_ShpInst_FlowChartInternalStorage 113
+#define _Escher_ShpInst_FlowChartDocument 114
+#define _Escher_ShpInst_FlowChartMultidocument 115
+#define _Escher_ShpInst_FlowChartTerminator 116
+#define _Escher_ShpInst_FlowChartPreparation 117
+#define _Escher_ShpInst_FlowChartManualInput 118
+#define _Escher_ShpInst_FlowChartManualOperation 119
+#define _Escher_ShpInst_FlowChartConnector 120
+#define _Escher_ShpInst_FlowChartPunchedCard 121
+#define _Escher_ShpInst_FlowChartPunchedTape 122
+#define _Escher_ShpInst_FlowChartSummingJunction 123
+#define _Escher_ShpInst_FlowChartOr 124
+#define _Escher_ShpInst_FlowChartCollate 125
+#define _Escher_ShpInst_FlowChartSort 126
+#define _Escher_ShpInst_FlowChartExtract 127
+#define _Escher_ShpInst_FlowChartMerge 128
+#define _Escher_ShpInst_FlowChartOfflineStorage 129
+#define _Escher_ShpInst_FlowChartOnlineStorage 130
+#define _Escher_ShpInst_FlowChartMagneticTape 131
+#define _Escher_ShpInst_FlowChartMagneticDisk 132
+#define _Escher_ShpInst_FlowChartMagneticDrum 133
+#define _Escher_ShpInst_FlowChartDisplay 134
+#define _Escher_ShpInst_FlowChartDelay 135
+#define _Escher_ShpInst_TextPlainText 136
+#define _Escher_ShpInst_TextStop 137
+#define _Escher_ShpInst_TextTriangle 138
+#define _Escher_ShpInst_TextTriangleInverted 139
+#define _Escher_ShpInst_TextChevron 140
+#define _Escher_ShpInst_TextChevronInverted 141
+#define _Escher_ShpInst_TextRingInside 142
+#define _Escher_ShpInst_TextRingOutside 143
+#define _Escher_ShpInst_TextArchUpCurve 144
+#define _Escher_ShpInst_TextArchDownCurve 145
+#define _Escher_ShpInst_TextCircleCurve 146
+#define _Escher_ShpInst_TextButtonCurve 147
+#define _Escher_ShpInst_TextArchUpPour 148
+#define _Escher_ShpInst_TextArchDownPour 149
+#define _Escher_ShpInst_TextCirclePour 150
+#define _Escher_ShpInst_TextButtonPour 151
+#define _Escher_ShpInst_TextCurveUp 152
+#define _Escher_ShpInst_TextCurveDown 153
+#define _Escher_ShpInst_TextCascadeUp 154
+#define _Escher_ShpInst_TextCascadeDown 155
+#define _Escher_ShpInst_TextWave1 156
+#define _Escher_ShpInst_TextWave2 157
+#define _Escher_ShpInst_TextWave3 158
+#define _Escher_ShpInst_TextWave4 159
+#define _Escher_ShpInst_TextInflate 160
+#define _Escher_ShpInst_TextDeflate 161
+#define _Escher_ShpInst_TextInflateBottom 162
+#define _Escher_ShpInst_TextDeflateBottom 163
+#define _Escher_ShpInst_TextInflateTop 164
+#define _Escher_ShpInst_TextDeflateTop 165
+#define _Escher_ShpInst_TextDeflateInflate 166
+#define _Escher_ShpInst_TextDeflateInflateDeflate 167
+#define _Escher_ShpInst_TextFadeRight 168
+#define _Escher_ShpInst_TextFadeLeft 169
+#define _Escher_ShpInst_TextFadeUp 170
+#define _Escher_ShpInst_TextFadeDown 171
+#define _Escher_ShpInst_TextSlantUp 172
+#define _Escher_ShpInst_TextSlantDown 173
+#define _Escher_ShpInst_TextCanUp 174
+#define _Escher_ShpInst_TextCanDown 175
+#define _Escher_ShpInst_FlowChartAlternateProcess 176
+#define _Escher_ShpInst_FlowChartOffpageConnector 177
+#define _Escher_ShpInst_Callout90 178
+#define _Escher_ShpInst_AccentCallout90 179
+#define _Escher_ShpInst_BorderCallout90 180
+#define _Escher_ShpInst_AccentBorderCallout90 181
+#define _Escher_ShpInst_LeftRightUpArrow 182
+#define _Escher_ShpInst_Sun 183
+#define _Escher_ShpInst_Moon 184
+#define _Escher_ShpInst_BracketPair 185
+#define _Escher_ShpInst_BracePair 186
+#define _Escher_ShpInst_Seal4 187
+#define _Escher_ShpInst_DoubleWave 188
+#define _Escher_ShpInst_ActionButtonBlank 189
+#define _Escher_ShpInst_ActionButtonHome 190
+#define _Escher_ShpInst_ActionButtonHelp 191
+#define _Escher_ShpInst_ActionButtonInformation 192
+#define _Escher_ShpInst_ActionButtonForwardNext 193
+#define _Escher_ShpInst_ActionButtonBackPrevious 194
+#define _Escher_ShpInst_ActionButtonEnd 195
+#define _Escher_ShpInst_ActionButtonBeginning 196
+#define _Escher_ShpInst_ActionButtonReturn 197
+#define _Escher_ShpInst_ActionButtonDocument 198
+#define _Escher_ShpInst_ActionButtonSound 199
+#define _Escher_ShpInst_ActionButtonMovie 200
+#define _Escher_ShpInst_HostControl 201
+#define _Escher_ShpInst_TextBox 202
+#define _Escher_ShpInst_Max 0x0FFF
+#define _Escher_ShpInst_Nil _Escher_ShpInst_Max
+
+// Werte fuer den ULONG im PPT_PST_TextHeaderAtom
+enum PPT_TextHeader
+{
+ PPTTH_TITLE,
+ PPTTH_BODY,
+ PPTTH_NOTES,
+ PPTTH_NOTUSED,
+ PPTTH_OTHER, // Text in a Shape
+ PPTTH_CENTERBODY, // Subtitle in Title-Slide
+ PPTTH_CENTERTITLE, // Title in Title-Slide
+ PPTTH_HALFBODY, // Body in two-column slide
+ PPTTH_QUARTERBODY // Body in four-body slide
+};
+
+enum _Escher_BlibType
+{ // GEL provided types...
+ ERROR = 0, // An error occured during loading
+ UNKNOWN, // An unknown blip type
+ EMF, // Windows Enhanced Metafile
+ WMF, // Windows Metafile
+ PICT, // Macintosh PICT
+ PEG, // JFIF
+ PNG, // PNG
+ DIB, // Windows DIB
+ FirstClient = 32, // First client defined blip type
+ LastClient = 255 // Last client defined blip type
+};
+
+enum _Escher_FillStyle
+{
+ _Escher_FillSolid, // Fill with a solid color
+ _Escher_FillPattern, // Fill with a pattern (bitmap)
+ _Escher_FillTexture, // A texture (pattern with its own color map)
+ _Escher_FillPicture, // Center a picture in the shape
+ _Escher_FillShade, // Shade from start to end points
+ _Escher_FillShadeCenter, // Shade from bounding rectangle to end point
+ _Escher_FillShadeShape, // Shade from shape outline to end point
+ _Escher_FillShadeScale,
+ _Escher_FillShadeTitle,
+ _Escher_FillBackground
+};
+
+enum _Escher_wMode
+{
+ _Escher_wColor, // only used for predefined shades
+ _Escher_wAutomatic, // depends on object type
+ _Escher_wGrayScale, // shades of gray only
+ _Escher_wLightGrayScale, // shades of light gray only
+ _Escher_wInverseGray, // dark gray mapped to light gray, etc.
+ _Escher_wGrayOutline, // pure gray and white
+ _Escher_wBlackTextLine, // black text and lines, all else grayscale
+ _Escher_wHighContrast, // pure black and white mode (no grays)
+ _Escher_wBlack, // solid black msobwWhite, // solid white
+ _Escher_wDontShow, // object not drawn
+ _Escher_wNumModes // number of Black and white modes
+};
+
+
+//
+enum _Escher_ShapePath
+{
+ _Escher_ShapeLines, // A line of straight segments
+ _Escher_ShapeLinesClosed, // A closed polygonal object
+ _Escher_ShapeCurves, // A line of Bezier curve segments
+ _Escher_ShapeCurvesClosed, // A closed shape with curved edges
+ _Escher_ShapeComplex // pSegmentInfo must be non-empty
+};
+
+
+enum _Escher_WrapMode
+{
+ _Escher_WrapSquare,
+ _Escher_WrapByPoints,
+ _Escher_WrapNone,
+ _Escher_WrapTopBottom,
+ _Escher_WrapThrough
+};
+
+//
+enum _Escher_bwMode
+{
+ _Escher_bwColor, // only used for predefined shades
+ _Escher_bwAutomatic, // depends on object type
+ _Escher_bwGrayScale, // shades of gray only
+ _Escher_bwLightGrayScale, // shades of light gray only
+ _Escher_bwInverseGray, // dark gray mapped to light gray, etc.
+ _Escher_bwGrayOutline, // pure gray and white
+ _Escher_bwBlackTextLine, // black text and lines, all else grayscale
+ _Escher_bwHighContrast, // pure black and white mode (no grays)
+ _Escher_bwBlack, // solid black
+ _Escher_bwWhite, // solid white
+ _Escher_bwDontShow, // object not drawn
+ _Escher_bwNumModes // number of Black and white modes
+};
+
+
+enum _Escher_AnchorText
+{
+ _Escher_AnchorTop,
+ _Escher_AnchorMiddle,
+ _Escher_AnchorBottom,
+ _Escher_AnchorTopCentered,
+ _Escher_AnchorMiddleCentered,
+ _Escher_AnchorBottomCentered,
+ _Escher_AnchorTopBaseline,
+ _Escher_AnchorBottomBaseline,
+ _Escher_AnchorTopCenteredBaseline,
+ _Escher_AnchorBottomCenteredBaseline
+};
+
+enum _Escher_cDir
+{
+ _Escher_cDir0, // Right
+ _Escher_cDir90, // Down
+ _Escher_cDir180, // Left
+ _Escher_cDir270 // Up
+};
+
+// connector style
+enum _Escher_cxSTYLE
+{
+ _Escher_cxstyleStraight = 0,
+ _Escher_cxstyleBent,
+ _Escher_cxstyleCurved,
+ _Escher_cxstyleNone
+};
+
+// text flow
+enum _Escher_txfl
+{
+ _Escher_txflHorzN, // Horizontal non-@
+ _Escher_txflTtoBA, // Top to Bottom @-font
+ _Escher_txflBtoT, // Bottom to Top non-@
+ _Escher_txflTtoBN, // Top to Bottom non-@
+ _Escher_txflHorzA, // Horizontal @-font
+ _Escher_txflVertN // Vertical, non-@
+};
+
+// text direction (needed for Bi-Di support)
+enum _Escher_txDir
+{
+ _Escher_txdirLTR, // left-to-right text direction
+ _Escher_txdirRTL, // right-to-left text direction
+ _Escher_txdirContext // context text direction
+};
+
+// Callout Type
+enum _Escher_spcot
+{
+ _Escher_spcotRightAngle = 1,
+ _Escher_spcotOneSegment = 2,
+ _Escher_spcotTwoSegment = 3,
+ _Escher_spcotThreeSegment = 4
+};
+
+// Callout Angle
+enum _Escher_spcoa
+{
+ _Escher_spcoaAny,
+ _Escher_spcoa30,
+ _Escher_spcoa45,
+ _Escher_spcoa60,
+ _Escher_spcoa90,
+ _Escher_spcoa0
+};
+
+// Callout Drop
+enum _Escher_spcod
+{
+ _Escher_spcodTop,
+ _Escher_spcodCenter,
+ _Escher_spcodBottom,
+ _Escher_spcodSpecified
+};
+
+// WordArt alignment
+enum _Escher_GeoTextAlign
+{
+ _Escher_AlignTextStretch, /* Stretch each line of text to fit width. */
+ _Escher_AlignTextCenter, /* Center text on width. */
+ _Escher_AlignTextLeft, /* Left justify. */
+ _Escher_AlignTextRight, /* Right justify. */
+ _Escher_AlignTextLetterJust, /* Spread letters out to fit width. */
+ _Escher_AlignTextWordJust, /* Spread words out to fit width. */
+ _Escher_AlignTextInvalid /* Invalid */
+};
+
+// flags for pictures
+enum _Escher_BlipFlags
+{
+ _Escher_BlipFlagDefault = 0,
+ _Escher_BlipFlagComment = 0, // Blip name is a comment
+ _Escher_BlipFlagFile, // Blip name is a file name
+ _Escher_BlipFlagURL, // Blip name is a full URL
+ _Escher_BlipFlagType = 3, // Mask to extract type
+ /* Or the following flags with any of the above. */
+ _Escher_BlipFlagDontSave = 4, // A "dont" is the depression in the metal
+ // body work of an automobile caused when a
+ // cyclist violently thrusts his or her nose
+ // at it, thus a DontSave is another name for
+ // a cycle lane.
+ _Escher_BlipFlagDoNotSave = 4, // For those who prefer English
+ _Escher_BlipFlagLinkToFile = 8
+};
+
+//
+enum _Escher_3DRenderMode
+{
+ _Escher_FullRender, // Generate a full rendering
+ _Escher_Wireframe, // Generate a wireframe
+ _Escher_BoundingCube // Generate a bounding cube
+};
+
+//
+enum _Escher_xFormType
+{
+ _Escher_xFormAbsolute, // Apply transform in absolute space centered on shape
+ _Escher_xFormShape, // Apply transform to shape geometry
+ _Escher_xFormDrawing // Apply transform in drawing space
+};
+
+//
+enum _Escher_ShadowType
+{
+ _Escher_ShadowOffset, // N pixel offset shadow
+ _Escher_ShadowDouble, // Use second offset too
+ _Escher_ShadowRich, // Rich perspective shadow (cast relative to shape)
+ _Escher_ShadowShape, // Rich perspective shadow (cast in shape space)
+ _Escher_ShadowDrawing, // Perspective shadow cast in drawing space
+ _Escher_ShadowEmbossOrEngrave
+};
+
+// - the type of a (length) measurement
+enum _Escher_dzType
+ {
+ _Escher_dzTypeMin = 0,
+ _Escher_dzTypeDefault = 0, // Default size, ignore the values
+ _Escher_dzTypeA = 1, // Values are in EMUs
+ _Escher_dzTypeV = 2, // Values are in pixels
+ _Escher_dzTypeShape = 3, // Values are 16.16 fractions of shape size
+ _Escher_dzTypeFixedAspect = 4, // Aspect ratio is fixed
+ _Escher_dzTypeAFixed = 5, // EMUs, fixed aspect ratio
+ _Escher_dzTypeVFixed = 6, // Pixels, fixed aspect ratio
+ _Escher_dzTypeShapeFixed = 7, // Proportion of shape, fixed aspect ratio
+ _Escher_dzTypeFixedAspectEnlarge= 8, // Aspect ratio is fixed, favor larger size
+ _Escher_dzTypeAFixedBig = 9, // EMUs, fixed aspect ratio
+ _Escher_dzTypeVFixedBig = 10, // Pixels, fixed aspect ratio
+ _Escher_dzTypeShapeFixedBig= 11, // Proportion of shape, fixed aspect ratio
+ _Escher_dzTypeMax = 11
+};
+
+// how to interpret the colors in a shaded fill.
+enum _Escher_ShadeType
+{
+ _Escher_ShadeNone = 0, // Interpolate without correction between RGBs
+ _Escher_ShadeGamma = 1, // Apply gamma correction to colors
+ _Escher_ShadeSigma = 2, // Apply a sigma transfer function to position
+ _Escher_ShadeBand = 4, // Add a flat band at the start of the shade
+ _Escher_ShadeOneColor = 8, // This is a one color shade
+
+ /* A parameter for the band or sigma function can be stored in the top
+ 16 bits of the value - this is a proportion of *each* band of the
+ shade to make flat (or the approximate equal value for a sigma
+ function). NOTE: the parameter is not used for the sigma function,
+ instead a built in value is used. This value should not be changed
+ from the default! */
+ _Escher_ShadeParameterShift = 16,
+ _Escher_ShadeParameterMask = 0xffff0000,
+
+ _Escher_ShadeDefault = (_Escher_ShadeGamma|_Escher_ShadeSigma|
+ (16384<<_Escher_ShadeParameterShift))
+};
+
+// compound line style
+enum _Escher_LineStyle
+{
+ _Escher_LineSimple, // Single line (of width lineWidth)
+ _Escher_LineDouble, // Double lines of equal width
+ _Escher_LineThickThin, // Double lines, one thick, one thin
+ _Escher_LineThinThick, // Double lines, reverse order
+ _Escher_LineTriple // Three lines, thin, thick, thin
+};
+
+// how to "fill" the line contour
+enum _Escher_LineType
+{
+ _Escher_lineSolidType, // Fill with a solid color
+ _Escher_linePattern, // Fill with a pattern (bitmap)
+ _Escher_lineTexture, // A texture (pattern with its own color map)
+ _Escher_linePicture // Center a picture in the shape
+};
+
+// dashed line style
+enum _Escher_LineDashing
+{
+ _Escher_LineSolid, // Solid (continuous) pen
+ _Escher_LineDashSys, // PS_DASH system dash style
+ _Escher_LineDotSys, // PS_DOT system dash style
+ _Escher_LineDashDotSys, // PS_DASHDOT system dash style
+ _Escher_LineDashDotDotSys, // PS_DASHDOTDOT system dash style
+ _Escher_LineDotGEL, // square dot style
+ _Escher_LineDashGEL, // dash style
+ _Escher_LineLongDashGEL, // long dash style
+ _Escher_LineDashDotGEL, // dash short dash
+ _Escher_LineLongDashDotGEL, // long dash short dash
+ _Escher_LineLongDashDotDotGEL // long dash short dash short dash
+};
+
+// line end effect
+enum _Escher_LineEnd
+{
+ _Escher_LineNoEnd,
+ _Escher_LineArrowEnd,
+ _Escher_LineArrowStealthEnd,
+ _Escher_LineArrowDiamondEnd,
+ _Escher_LineArrowOvalEnd,
+ _Escher_LineArrowOpenEnd
+};
+
+// size of arrowhead
+enum _Escher_LineWidth
+{
+ _Escher_LineNarrowArrow,
+ _Escher_LineMediumWidthArrow,
+ _Escher_LineWideArrow
+};
+
+// size of arrowhead
+enum _Escher_LineEndLenght
+{
+ _Escher_LineShortArrow,
+ _Escher_LineMediumLenArrow,
+ _Escher_LineLongArrow
+};
+
+// line join style.
+enum _Escher_LineJoin
+{
+ _Escher_LineJoinBevel, // Join edges by a straight line
+ _Escher_LineJoinMiter, // Extend edges until they join
+ _Escher_LineJoinRound // Draw an arc between the two edges
+};
+
+// line cap style (applies to ends of dash segments too).
+enum _Escher_LineCap
+{
+ _Escher_LineEndCapRound, // Rounded ends - the default
+ _Escher_LineEndCapSquare, // Square protrudes by half line width
+ _Escher_LineEndCapFlat // Line ends at end point
+};
+// Shape Properties
+// 1pt = 12700 EMU (English Metric Units)
+// 1pt = 20 Twip = 20/1440" = 1/72"
+// 1twip=635 EMU
+// 1" = 12700*72 = 914400 EMU
+// 1" = 25.4mm
+// 1mm = 36000 EMU
+// Transform
+#define _Escher_Prop_Rotation 4 /* Fixed Point 16.16 degrees */
+// Protection
+#define _Escher_Prop_LockRotation 119 /* BOOL No rotation */
+#define _Escher_Prop_LockAspectRatio 120 /* BOOL Don't allow changes in aspect ratio */
+#define _Escher_Prop_LockPosition 121 /* BOOL Don't allow the shape to be moved */
+#define _Escher_Prop_LockAgainstSelect 122 /* BOOL Shape may not be selected */
+#define _Escher_Prop_LockCropping 123 /* BOOL No cropping this shape */
+#define _Escher_Prop_LockVertices 124 /* BOOL Edit Points not allowed */
+#define _Escher_Prop_LockText 125 /* BOOL Do not edit text */
+#define _Escher_Prop_LockAdjustHandles 126 /* BOOL Do not adjust */
+#define _Escher_Prop_LockAgainstGrouping 127 /* BOOL Do not group this shape */
+// Text
+#define _Escher_Prop_lTxid 128 /* LONG id for the text, value determined by the host */
+#define _Escher_Prop_dxTextLeft 129 /* LONG margins relative to shape's inscribed */
+#define _Escher_Prop_dyTextTop 130 /* LONG text rectangle (in EMUs) */
+#define _Escher_Prop_dxTextRight 131 /* LONG */
+#define _Escher_Prop_dyTextBottom 132 /* LONG */
+#define _Escher_Prop_WrapText 133 /* MSOWRAPMODE Wrap text at shape margins */
+#define _Escher_Prop_scaleText 134 /* LONG Text zoom/scale (used if fFitTextToShape) */
+#define _Escher_Prop_AnchorText 135 /* _Escher_AnchorText How to anchor the text */
+#define _Escher_Prop_txflTextFlow 136 /* MSOTXFL Text flow */
+#define _Escher_Prop_cdirFont 137 /* MSOCDIR Font rotation */
+#define _Escher_Prop_hspNext 138 /* MSOHSP ID of the next shape (used by Word for linked textboxes) */
+#define _Escher_Prop_txdir 139 /* MSOTXDIR Bi-Di Text direction */
+#define _Escher_Prop_SelectText 187 /* BOOL TRUE if single click selects text, FALSE if two clicks */
+#define _Escher_Prop_AutoTextMargin 188 /* BOOL use host's margin calculations */
+#define _Escher_Prop_RotateText 189 /* BOOL Rotate text with shape */
+#define _Escher_Prop_FitShapeToText 190 /* BOOL Size shape to fit text size */
+#define _Escher_Prop_FitTextToShape 191 /* BOOL Size text to fit shape size */
+// GeoText
+#define _Escher_Prop_gtextUNICODE 192 /* WCHAR* UNICODE text string */
+#define _Escher_Prop_gtextRTF 193 /* char* RTF text string */
+#define _Escher_Prop_gtextAlign 194 /* MSOGEOTEXTALIGN alignment on curve */
+#define _Escher_Prop_gtextSize 195 /* LONG default point size */
+#define _Escher_Prop_gtextSpacing 196 /* LONG fixed point 16.16 */
+#define _Escher_Prop_gtextFont 197 /* WCHAR* font family name */
+#define _Escher_Prop_gtextFReverseRows 240 /* BOOL Reverse row order */
+#define _Escher_Prop_fGtext 241 /* BOOL Has text effect */
+#define _Escher_Prop_gtextFVertical 242 /* BOOL Rotate characters */
+#define _Escher_Prop_gtextFKern 243 /* BOOL Kern characters */
+#define _Escher_Prop_gtextFTight 244 /* BOOL Tightening or tracking */
+#define _Escher_Prop_gtextFStretch 245 /* BOOL Stretch to fit shape */
+#define _Escher_Prop_gtextFShrinkFit 246 /* BOOL Char bounding box */
+#define _Escher_Prop_gtextFBestFit 247 /* BOOL Scale text-on-path */
+#define _Escher_Prop_gtextFNormalize 248 /* BOOL Stretch char height */
+#define _Escher_Prop_gtextFDxMeasure 249 /* BOOL Do not measure along path */
+#define _Escher_Prop_gtextFBold 250 /* BOOL Bold font */
+#define _Escher_Prop_gtextFItalic 251 /* BOOL Italic font */
+#define _Escher_Prop_gtextFUnderline 252 /* BOOL Underline font */
+#define _Escher_Prop_gtextFShadow 253 /* BOOL Shadow font */
+#define _Escher_Prop_gtextFSmallcaps 254 /* BOOL Small caps font */
+#define _Escher_Prop_gtextFStrikethrough 255 /* BOOL Strike through font */
+// Blip
+#define _Escher_Prop_cropFromTop 256 /* LONG 16.16 fraction times total */
+#define _Escher_Prop_cropFromBottom 257 /* LONG image width or height, */
+#define _Escher_Prop_cropFromLeft 258 /* LONG as appropriate. */
+#define _Escher_Prop_cropFromRight 259 /* LONG */
+#define _Escher_Prop_pib 260 /* IMsoBlip* Blip to display */
+#define _Escher_Prop_pibName 261 /* WCHAR* Blip file name */
+#define _Escher_Prop_pibFlags 262 /* MSOBLIPFLAGS Blip flags */
+#define _Escher_Prop_pictureTransparent 263 /* LONG transparent color (none if ~0UL) */
+#define _Escher_Prop_pictureContrast 264 /* LONG contrast setting */
+#define _Escher_Prop_pictureBrightness 265 /* LONG brightness setting */
+#define _Escher_Prop_pictureGamma 266 /* LONG 16.16 gamma */
+#define _Escher_Prop_pictureId 267 /* LONG Host-defined ID for OLE objects (usually a pointer) */
+#define _Escher_Prop_pictureDblCrMod 268 /* MSOCLR Modification used if shape has double shadow */
+#define _Escher_Prop_pictureFillCrMod 269 /* MSOCLR */
+#define _Escher_Prop_pictureLineCrMod 270 /* MSOCLR */
+#define _Escher_Prop_pibPrint 271 /* IMsoBlip* Blip to display when printing */
+#define _Escher_Prop_pibPrintName 272 /* WCHAR* Blip file name */
+#define _Escher_Prop_pibPrintFlags 273 /* MSOBLIPFLAGS Blip flags */
+#define _Escher_Prop_fNoHitTestPicture 316 /* BOOL Do not hit test the picture */
+#define _Escher_Prop_pictureGray 317 /* BOOL grayscale display */
+#define _Escher_Prop_pictureBiLevel 318 /* BOOL bi-level display */
+#define _Escher_Prop_pictureActive 319 /* BOOL Server is active (OLE objects only) */
+// Geometry
+#define _Escher_Prop_geoLeft 320 /* LONG Defines the G (geometry) coordinate space. */
+#define _Escher_Prop_geoTop 321 /* LONG */
+#define _Escher_Prop_geoRight 322 /* LONG */
+#define _Escher_Prop_geoBottom 323 /* LONG */
+#define _Escher_Prop_shapePath 324 /* MSOSHAPEPATH */
+#define _Escher_Prop_pVertices 325 /* IMsoArray An array of points, in G units. */
+#define _Escher_Prop_pSegmentInfo 326 /* IMsoArray */
+#define _Escher_Prop_adjustValue 327 /* LONG Adjustment values corresponding to */
+#define _Escher_Prop_adjust2Value 328 /* LONG the positions of the adjust handles */
+#define _Escher_Prop_adjust3Value 329 /* LONG of the shape. The number of values */
+#define _Escher_Prop_adjust4Value 330 /* LONG used and their allowable ranges vary */
+#define _Escher_Prop_adjust5Value 331 /* LONG from shape type to shape type. */
+#define _Escher_Prop_adjust6Value 332 /* LONG */
+#define _Escher_Prop_adjust7Value 333 /* LONG */
+#define _Escher_Prop_adjust8Value 334 /* LONG */
+#define _Escher_Prop_adjust9Value 335 /* LONG */
+#define _Escher_Prop_adjust10Value 336 /* LONG */
+#define _Escher_Prop_fShadowOK 378 /* BOOL Shadow may be set */
+#define _Escher_Prop_f3DOK 379 /* BOOL 3D may be set */
+#define _Escher_Prop_fLineOK 380 /* BOOL Line style may be set */
+#define _Escher_Prop_fGtextOK 381 /* BOOL Text effect (WordArt) supported */
+#define _Escher_Prop_fFillShadeShapeOK 382 /* BOOL */
+#define _Escher_Prop_fFillOK 383 /* BOOL OK to fill the shape through the UI or VBA? */
+// FillStyle
+#define _Escher_Prop_fillType 384 /* _Escher_FillStyle Type of fill */
+#define _Escher_Prop_fillColor 385 /* MSOCLR Foreground color */
+#define _Escher_Prop_fillOpacity 386 /* LONG Fixed 16.16 */
+#define _Escher_Prop_fillBackColor 387 /* MSOCLR Background color */
+#define _Escher_Prop_fillBackOpacity 388 /* LONG Shades only */
+#define _Escher_Prop_fillCrMod 389 /* MSOCLR Modification for BW views */
+#define _Escher_Prop_fillBlip 390 /* IMsoBlip* Pattern/texture */
+#define _Escher_Prop_fillBlipName 391 /* WCHAR* Blip file name */
+#define _Escher_Prop_fillBlipFlags 392 /* MSOBLIPFLAGS Blip flags */
+#define _Escher_Prop_fillWidth 393 /* LONG How big (A units) to make a metafile texture. */
+#define _Escher_Prop_fillHeight 394 /* LONG */
+#define _Escher_Prop_fillAngle 395 /* LONG Fade angle - degrees in 16.16 */
+#define _Escher_Prop_fillFocus 396 /* LONG Linear shaded fill focus percent */
+#define _Escher_Prop_fillToLeft 397 /* LONG Fraction 16.16 */
+#define _Escher_Prop_fillToTop 398 /* LONG Fraction 16.16 */
+#define _Escher_Prop_fillToRight 399 /* LONG Fraction 16.16 */
+#define _Escher_Prop_fillToBottom 400 /* LONG Fraction 16.16 */
+#define _Escher_Prop_fillRectLeft 401 /* LONG For shaded fills, use the specified rectangle */
+#define _Escher_Prop_fillRectTop 402 /* LONG instead of the shape's bounding rect to */
+#define _Escher_Prop_fillRectRight 403 /* LONG define how large the fade is going to be. */
+#define _Escher_Prop_fillRectBottom 404 /* LONG */
+#define _Escher_Prop_fillDztype 405 /* MSODZTYPE */
+#define _Escher_Prop_fillShadePreset 406 /* LONG Special shades */
+#define _Escher_Prop_fillShadeColors 407 /* IMsoArray a preset array of colors */
+#define _Escher_Prop_fillOriginX 408 /* LONG */
+#define _Escher_Prop_fillOriginY 409 /* LONG */
+#define _Escher_Prop_fillShapeOriginX 410 /* LONG */
+#define _Escher_Prop_fillShapeOriginY 411 /* LONG */
+#define _Escher_Prop_fillShadeType 412 /* MSOSHADETYPE Type of shading, if a shaded (gradient) fill. */
+#define _Escher_Prop_fFilled 443 /* BOOL Is shape filled? */
+#define _Escher_Prop_fHitTestFill 444 /* BOOL Should we hit test fill? */
+#define _Escher_Prop_fillShape 445 /* BOOL Register pattern on shape */
+#define _Escher_Prop_fillUseRect 446 /* BOOL Use the large rect? */
+#define _Escher_Prop_fNoFillHitTest 447 /* BOOL Hit test a shape as though filled */
+// LineStyle
+#define _Escher_Prop_lineColor 448 /* MSOCLR Color of line */
+#define _Escher_Prop_lineOpacity 449 /* LONG Not implemented */
+#define _Escher_Prop_lineBackColor 450 /* MSOCLR Background color */
+#define _Escher_Prop_lineCrMod 451 /* MSOCLR Modification for BW views */
+#define _Escher_Prop_lineType 452 /* MSOLINETYPE Type of line */
+#define _Escher_Prop_lineFillBlip 453 /* IMsoBlip* Pattern/texture */
+#define _Escher_Prop_lineFillBlipName 454 /* WCHAR* Blip file name */
+#define _Escher_Prop_lineFillBlipFlags 455 /* MSOBLIPFLAGS Blip flags */
+#define _Escher_Prop_lineFillWidth 456 /* LONG How big (A units) to make */
+#define _Escher_Prop_lineFillHeight 457 /* LONG a metafile texture. */
+#define _Escher_Prop_lineFillDztype 458 /* MSODZTYPE How to interpret fillWidth/Height numbers. */
+#define _Escher_Prop_lineWidth 459 /* LONG A units; 1pt == 12700 EMUs */
+#define _Escher_Prop_lineMiterLimit 460 /* LONG ratio (16.16) of width */
+#define _Escher_Prop_lineStyle 461 /* MSOLINESTYLE Draw parallel lines? */
+#define _Escher_Prop_lineDashing 462 /* MSOLINEDASHING Can be overridden by: */
+#define _Escher_Prop_lineDashStyle 463 /* IMsoArray As Win32 ExtCreatePen */
+#define _Escher_Prop_lineStartArrowhead 464 /* MSOLINEEND Arrow at start */
+#define _Escher_Prop_lineEndArrowhead 465 /* MSOLINEEND Arrow at end */
+#define _Escher_Prop_lineStartArrowWidth 466 /* MSOLINEENDWIDTH Arrow at start */
+#define _Escher_Prop_lineStartArrowLength 467 /* MSOLINEENDLENGTH Arrow at end */
+#define _Escher_Prop_lineEndArrowWidth 468 /* MSOLINEENDWIDTH Arrow at start */
+#define _Escher_Prop_lineEndArrowLength 469 /* MSOLINEENDLENGTH Arrow at end */
+#define _Escher_Prop_lineJoinStyle 470 /* MSOLINEJOIN How to join lines */
+#define _Escher_Prop_lineEndCapStyle 471 /* MSOLINECAP How to end lines */
+#define _Escher_Prop_fArrowheadsOK 507 /* BOOL Allow arrowheads if prop. is set */
+#define _Escher_Prop_fLine 508 /* BOOL Any line? */
+#define _Escher_Prop_fHitTestLine 509 /* BOOL Should we hit test lines? */
+#define _Escher_Prop_lineFillShape 510 /* BOOL Register pattern on shape */
+#define _Escher_Prop_fNoLineDrawDash 511 /* BOOL Draw a dashed line if no line */
+// ShadowStyle
+#define _Escher_Prop_shadowType 512 /* MSOSHADOWTYPE Type of effect */
+#define _Escher_Prop_shadowColor 513 /* MSOCLR Foreground color */
+#define _Escher_Prop_shadowHighlight 514 /* MSOCLR Embossed color */
+#define _Escher_Prop_shadowCrMod 515 /* MSOCLR Modification for BW views */
+#define _Escher_Prop_shadowOpacity 516 /* LONG Fixed 16.16 */
+#define _Escher_Prop_shadowOffsetX 517 /* LONG Offset shadow */
+#define _Escher_Prop_shadowOffsetY 518 /* LONG Offset shadow */
+#define _Escher_Prop_shadowSecondOffsetX 519 /* LONG Double offset shadow */
+#define _Escher_Prop_shadowSecondOffsetY 520 /* LONG Double offset shadow */
+#define _Escher_Prop_shadowScaleXToX 521 /* LONG 16.16 */
+#define _Escher_Prop_shadowScaleYToX 522 /* LONG 16.16 */
+#define _Escher_Prop_shadowScaleXToY 523 /* LONG 16.16 */
+#define _Escher_Prop_shadowScaleYToY 524 /* LONG 16.16 */
+#define _Escher_Prop_shadowPerspectiveX 525 /* LONG 16.16 / weight */
+#define _Escher_Prop_shadowPerspectiveY 526 /* LONG 16.16 / weight */
+#define _Escher_Prop_shadowWeight 527 /* LONG scaling factor */
+#define _Escher_Prop_shadowOriginX 528 /* LONG */
+#define _Escher_Prop_shadowOriginY 529 /* LONG */
+#define _Escher_Prop_fShadow 574 /* BOOL Any shadow? */
+#define _Escher_Prop_fshadowObscured 575 /* BOOL Excel5-style shadow */
+// PerspectiveStyle
+#define _Escher_Prop_perspectiveType 576 /* MSOXFORMTYPE Where transform applies */
+#define _Escher_Prop_perspectiveOffsetX 577 /* LONG The LONG values define a */
+#define _Escher_Prop_perspectiveOffsetY 578 /* LONG transformation matrix, */
+#define _Escher_Prop_perspectiveScaleXToX 579 /* LONG effectively, each value */
+#define _Escher_Prop_perspectiveScaleYToX 580 /* LONG is scaled by the */
+#define _Escher_Prop_perspectiveScaleXToY 581 /* LONG perspectiveWeight parameter. */
+#define _Escher_Prop_perspectiveScaleYToY 582 /* LONG */
+#define _Escher_Prop_perspectivePerspectiveX 583 /* LONG */
+#define _Escher_Prop_perspectivePerspectiveY 584 /* LONG */
+#define _Escher_Prop_perspectiveWeight 585 /* LONG Scaling factor */
+#define _Escher_Prop_perspectiveOriginX 586 /* LONG */
+#define _Escher_Prop_perspectiveOriginY 587 /* LONG */
+#define _Escher_Prop_fPerspective 639 /* BOOL On/off */
+// 3D Object
+#define _Escher_Prop_c3DSpecularAmt 640 /* LONG Fixed-point 16.16 */
+#define _Escher_Prop_c3DDiffuseAmt 641 /* LONG Fixed-point 16.16 */
+#define _Escher_Prop_c3DShininess 642 /* LONG Default gives OK results */
+#define _Escher_Prop_c3DEdgeThickness 643 /* LONG Specular edge thickness */
+#define _Escher_Prop_c3DExtrudeForward 644 /* LONG Distance of extrusion in EMUs */
+#define _Escher_Prop_c3DExtrudeBackward 645 /* LONG */
+#define _Escher_Prop_c3DExtrudePlane 646 /* LONG Extrusion direction */
+#define _Escher_Prop_c3DExtrusionColor 647 /* MSOCLR Basic color of extruded part of shape; the lighting model used will determine the exact shades used when rendering. */
+#define _Escher_Prop_c3DCrMod 648 /* MSOCLR Modification for BW views */
+#define _Escher_Prop_f3D 700 /* BOOL Does this shape have a 3D effect? */
+#define _Escher_Prop_fc3DMetallic 701 /* BOOL Use metallic specularity? */
+#define _Escher_Prop_fc3DUseExtrusionColor 702 /* BOOL */
+#define _Escher_Prop_fc3DLightFace 703 /* BOOL */
+// 3D Style
+#define _Escher_Prop_c3DYRotationAngle 704 /* LONG degrees (16.16) about y axis */
+#define _Escher_Prop_c3DXRotationAngle 705 /* LONG degrees (16.16) about x axis */
+#define _Escher_Prop_c3DRotationAxisX 706 /* LONG These specify the rotation axis; */
+#define _Escher_Prop_c3DRotationAxisY 707 /* LONG only their relative magnitudes */
+#define _Escher_Prop_c3DRotationAxisZ 708 /* LONG matter. */
+#define _Escher_Prop_c3DRotationAngle 709 /* LONG degrees (16.16) about axis */
+#define _Escher_Prop_c3DRotationCenterX 710 /* LONG rotation center x (16.16 or g-units) */
+#define _Escher_Prop_c3DRotationCenterY 711 /* LONG rotation center y (16.16 or g-units) */
+#define _Escher_Prop_c3DRotationCenterZ 712 /* LONG rotation center z (absolute (emus)) */
+#define _Escher_Prop_c3DRenderMode 713 /* MSO3DRENDERMODE Full,wireframe, or bcube */
+#define _Escher_Prop_c3DTolerance 714 /* LONG pixels (16.16) */
+#define _Escher_Prop_c3DXViewpoint 715 /* LONG X view point (emus) */
+#define _Escher_Prop_c3DYViewpoint 716 /* LONG Y view point (emus) */
+#define _Escher_Prop_c3DZViewpoint 717 /* LONG Z view distance (emus) */
+#define _Escher_Prop_c3DOriginX 718 /* LONG */
+#define _Escher_Prop_c3DOriginY 719 /* LONG */
+#define _Escher_Prop_c3DSkewAngle 720 /* LONG degree (16.16) skew angle */
+#define _Escher_Prop_c3DSkewAmount 721 /* LONG Percentage skew amount */
+#define _Escher_Prop_c3DAmbientIntensity 722 /* LONG Fixed point intensity */
+#define _Escher_Prop_c3DKeyX 723 /* LONG Key light source direc- */
+#define _Escher_Prop_c3DKeyY 724 /* LONG tion; only their relative */
+#define _Escher_Prop_c3DKeyZ 725 /* LONG magnitudes matter */
+#define _Escher_Prop_c3DKeyIntensity 726 /* LONG Fixed point intensity */
+#define _Escher_Prop_c3DFillX 727 /* LONG Fill light source direc- */
+#define _Escher_Prop_c3DFillY 728 /* LONG tion; only their relative */
+#define _Escher_Prop_c3DFillZ 729 /* LONG magnitudes matter */
+#define _Escher_Prop_c3DFillIntensity 730 /* LONG Fixed point intensity */
+#define _Escher_Prop_fc3DConstrainRotation 763 /* BOOL */
+#define _Escher_Prop_fc3DRotationCenterAuto 764 /* BOOL */
+#define _Escher_Prop_fc3DParallel 765 /* BOOL Parallel projection? */
+#define _Escher_Prop_fc3DKeyHarsh 766 /* BOOL Is key lighting harsh? */
+#define _Escher_Prop_fc3DFillHarsh 767 /* BOOL Is fill lighting harsh? */
+// Shape
+#define _Escher_Prop_hspMaster 769 /* MSOHSP master shape */
+#define _Escher_Prop_cxstyle 771 /* MSOCXSTYLE Type of connector */
+#define _Escher_Prop_bWMode 772 /* _EscherwMode Settings for modifications to */
+#define _Escher_Prop_bWModePureBW 773 /* _EscherwMode be made when in different */
+#define _Escher_Prop_bWModeBW 774 /* _EscherwMode forms of black-and-white mode. */
+#define _Escher_Prop_fOleIcon 826 /* BOOL For OLE objects, whether the object is in icon form */
+#define _Escher_Prop_fPreferRelativeResize 827 /* BOOL For UI only. Prefer relative resizing. */
+#define _Escher_Prop_fLockShapeType 828 /* BOOL Lock the shape type (don't allow Change Shape) */
+#define _Escher_Prop_fDeleteAttachedObject 830 /* BOOL */
+#define _Escher_Prop_fBackground 831 /* BOOL If TRUE, this is the background shape. */
+// Callout
+#define _Escher_Prop_spcot 832 /* MSOSPCOT Callout type */
+#define _Escher_Prop_dxyCalloutGap 833 /* LONG Distance from box to first point.(EMUs) */
+#define _Escher_Prop_spcoa 834 /* MSOSPCOA Callout angle */
+#define _Escher_Prop_spcod 835 /* MSOSPCOD Callout drop type */
+#define _Escher_Prop_dxyCalloutDropSpecified 836 /* LONG if msospcodSpecified, the actual drop distance */
+#define _Escher_Prop_dxyCalloutLengthSpecified 837 /* LONG if fCalloutLengthSpecified, the actual distance */
+#define _Escher_Prop_fCallout 889 /* BOOL Is the shape a callout? */
+#define _Escher_Prop_fCalloutAccentBar 890 /* BOOL does callout have accent bar */
+#define _Escher_Prop_fCalloutTextBorder 891 /* BOOL does callout have a text border */
+#define _Escher_Prop_fCalloutMinusX 892 /* BOOL */
+#define _Escher_Prop_fCalloutMinusY 893 /* BOOL */
+#define _Escher_Prop_fCalloutDropAuto 894 /* BOOL If true, then we occasionally invert the drop distance */
+#define _Escher_Prop_fCalloutLengthSpecified 895 /* BOOL if true, we look at dxyCalloutLengthSpecified */
+// GroupShape
+#define _Escher_Prop_wzName 896 /* WCHAR* Shape Name (present only if explicitly set) */
+#define _Escher_Prop_wzDescription 897 /* WCHAR* alternate text */
+#define _Escher_Prop_pihlShape 898 /* IHlink* The hyperlink in the shape. */
+#define _Escher_Prop_pWrapPolygonVertices 899 /* IMsoArray The polygon that text will be wrapped around (Word) */
+#define _Escher_Prop_dxWrapDistLeft 900 /* LONG Left wrapping distance from text (Word) */
+#define _Escher_Prop_dyWrapDistTop 901 /* LONG Top wrapping distance from text (Word) */
+#define _Escher_Prop_dxWrapDistRight 902 /* LONG Right wrapping distance from text (Word) */
+#define _Escher_Prop_dyWrapDistBottom 903 /* LONG Bottom wrapping distance from text (Word) */
+#define _Escher_Prop_lidRegroup 904 /* LONG Regroup ID */
+#define _Escher_Prop_fEditedWrap 953 /* BOOL Has the wrap polygon been edited? */
+#define _Escher_Prop_fBehindDocument 954 /* BOOL Word-only (shape is behind text) */
+#define _Escher_Prop_fOnDblClickNotify 955 /* BOOL Notify client on a double click */
+#define _Escher_Prop_fIsButton 956 /* BOOL A button shape (i.e., clicking performs an action). Set for shapes with attached hyperlinks or macros. */
+#define _Escher_Prop_fOneD 957 /* BOOL 1D adjustment */
+#define _Escher_Prop_fHidden 958 /* BOOL Do not display */
+#define _Escher_Prop_fPrint 959 /* BOOL Print this shape */
+
+
+#define _Escher_PERSISTENTRY_PREALLOCATE 64
+
+#define _Escher_Persist_PrivateEntry 0x80000000
+#define _Escher_Persist_Dg 0x00020000
+#define _Escher_Persist_CurrentPosition 0x00040000
+#define _Escher_Persist_Grouping_Snap 0x00050000
+#define _Escher_Persist_Grouping_Logic 0x00060000
+
+// ---------------------------------------------------------------------------------------------
+
+struct _EscherPropSortStruct
+{
+ BYTE* pBuf;
+ UINT32 nPropSize;
+ UINT32 nPropValue;
+ UINT16 nPropId;
+};
+
+struct _Escher_GDIStruct
+{
+ Rectangle GDIBoundRect;
+ Size GDISize;
+ UINT32 GDIUncompressedSize;
+};
+
+// ---------------------------------------------------------------------------------------------
+
+struct _EscherPersistEntry
+{
+ UINT32 mnID;
+ UINT32 mnOffset;
+ _EscherPersistEntry( UINT32 nId, UINT32 nOffset ) { mnID = nId; mnOffset = nOffset; };
+
+};
+
+
+// ---------------------------------------------------------------------------------------------
+
+class SvMemoryStream;
+class _EscherBlibEntry
+{
+ friend class _EscherGraphicProvider;
+ friend class _EscherEx;
+
+ protected:
+
+ UINT32 mnPictureOffset; // offset auf die grafik im PictureStreams
+ UINT32 mnSize;
+ _Escher_BlibType meBlibType;
+ UINT32 mnIdentifier[ 4 ];
+
+ public:
+
+ _EscherBlibEntry( SvMemoryStream& rStream, _Escher_BlibType eBlibType, UINT32 nPicOffset );
+ ~_EscherBlibEntry();
+
+ BOOL operator==( const _EscherBlibEntry& ) const;
+};
+
+// ---------------------------------------------------------------------------------------------
+
+class _EscherPersistTable
+{
+
+ public:
+ List maPersistTable;
+
+ BOOL PtIsID( UINT32 nID );
+ void PtInsert( UINT32 nID, UINT32 nOfs );
+ UINT32 PtDelete( UINT32 nID );
+ UINT32 PtGetOffsetByID( UINT32 nID );
+ UINT32 PtReplace( UINT32 nID, UINT32 nOfs );
+ UINT32 PtReplaceOrInsert( UINT32 nID, UINT32 nOfs );
+ UINT32 PtGetCount() const { return maPersistTable.Count(); };
+
+ _EscherPersistTable();
+ ~_EscherPersistTable();
+};
+
+// ---------------------------------------------------------------------------------------------
+
+#define _E_GRAPH_PROV_USE_INSTANCES 1
+
+class _EscherGraphicProvider
+{
+ UINT32 mnFlags;
+ SvStream& mrPicOutStrm;
+
+ UINT32 ImplInsertBlib( _EscherBlibEntry* p_EscherBlibEntry );
+
+ public :
+
+ _EscherBlibEntry** mpBlibEntrys;
+ UINT32 mnBlibBufSize;
+ UINT32 mnBlibEntrys;
+
+ UINT32 ImplGetBlibID( SvMemoryStream& rStrm, _Escher_BlibType eBlibType, const _Escher_GDIStruct* pStruct = NULL );
+
+ _EscherGraphicProvider( SvStream& rSt, UINT32 nFlags = 0 );
+ ~_EscherGraphicProvider();
+
+};
+
+// ---------------------------------------------------------------------------------------------
+
+class Color;
+class Graphic;
+class SvMemoryStream;
+class SvStorageStream;
+class _EscherEx : public _EscherPersistTable
+{
+ SvStorageStream* mpOutStrm;
+ _EscherGraphicProvider* mpGraphicProvider;
+
+ UINT32 mnStrmStartOfs;
+ int mnLevel;
+ UINT32* mpOffsets;
+ UINT32* mpSizes;
+ UINT16* mpRecTypes; // nimmt die Container RecTypes auf
+
+ UINT32 mnDrawings;
+ SvMemoryStream maFIDCLs;
+ UINT32 mnFIDCLs; // anzahl der cluster ID's
+
+ UINT32 mnCurrentDg;
+ UINT32 mnCurrentShapeID; // die naechste freie ID
+ UINT32 mnCurrentShapeMaximumID; // die hoechste und auch benutzte ID
+ UINT32 mnTotalShapesDg; // anzahl der shapes im Dg
+ UINT32 mnTotalShapeIdUsedDg; // anzahl der benutzten shape Id's im Dg
+ UINT32 mnTotalShapesDgg; // anzahl der shapes im Dgg
+ UINT32 mnCountOfs;
+ UINT32 mnSortCount;
+ UINT32 mnSortBufSize;
+ _EscherPropSortStruct* mpSortStruct;
+ UINT32 mnCountCount;
+ UINT32 mnCountSize;
+ BOOL mb_EscherSpgr;
+ BOOL mb_EscherDg;
+
+ UINT32 mnGroupLevel;
+
+ BOOL ImplSeek( UINT32 nKey );
+
+ // ist die graphic noch nicht vorhanden, so wird sie eingefuegt
+
+ UINT32 ImplDggContainerSize();
+ void ImplWriteDggContainer( SvStream& rSt );
+
+ UINT32 ImplDggAtomSize();
+ void ImplWriteDggAtom( SvStream& rSt );
+
+ UINT32 ImplBlibStoreContainerSize();
+ void ImplWriteBlibStoreContainer( SvStream& rSt );
+
+ UINT32 ImplOptAtomSize();
+ void ImplWriteOptAtom( SvStream& rSt );
+
+ UINT32 ImplSplitMenuColorsAtomSize();
+ void ImplWriteSplitMenuColorsAtom( SvStream& rSt );
+
+ public:
+
+ _EscherEx( SvStorageStream& rOut, UINT32 nDrawings );
+ ~_EscherEx();
+
+ void InsertAtCurrentPos( UINT32 nBytes, BOOL bCont = FALSE );// es werden nBytes an der aktuellen Stream Position eingefuegt,
+ // die PersistantTable und interne Zeiger angepasst
+
+ void InsertPersistOffset( UINT32 nKey, UINT32 nOffset ); // Es wird nicht geprueft, ob sich jener schluessel schon in der PersistantTable befindet
+ BOOL SeekToPersistOffset( UINT32 nKey );
+ BOOL InsertAtPersistOffset( UINT32 nKey, UINT32 nValue );// nValue wird im Stream an entrsprechender Stelle eingefuegt(overwrite modus), ohne dass sich die
+ // aktuelle StreamPosition aendert
+
+ BOOL SeekBehindRecHeader( UINT16 nRecType ); // der stream muss vor einem gueltigen Record Header oder Atom stehen
+
+ // features beim erzeugen folgender Container:
+ //
+ // _Escher_DggContainer: ein _EscherDgg Atom wird automatisch erzeugt und verwaltet
+ // _Escher_DgContainer: ein _EscherDg Atom wird automatisch erzeugt und verwaltet
+ // _Escher_SpgrContainer:
+ // _Escher_SpContainer:
+
+ void OpenContainer( UINT16 n_EscherContainer, int nRecInstance = 0 );
+ void CloseContainer();
+
+ void BeginAtom();
+ void EndAtom( UINT16 nRecType, int nRecVersion = 0, int nRecInstance = 0 );
+ void AddAtom( UINT32 nAtomSitze, UINT16 nRecType, int nRecVersion = 0, int nRecInstance = 0 );
+ void AddClientAnchor( const Rectangle& rRectangle );
+
+ void EnterGroup( Rectangle* pBoundRect = NULL );
+ UINT32 GetGroupLevel() const { return mnGroupLevel; };
+ BOOL SetGroupSnapRect( UINT32 nGroupLevel, const Rectangle& rRect );
+ BOOL SetGroupLogicRect( UINT32 nGroupLevel, const Rectangle& rRect );
+ void LeaveGroup();
+
+ // ein _Escher_Sp wird geschrieben ( Ein _Escher_DgContainer muss dazu geoeffnet sein !!)
+ void AddShape( UINT32 nShpInstance, UINT32 nFlagIds, UINT32 nShapeID = 0 );
+ // reserviert eine ShapeId
+ UINT32 GetShapeID();
+
+ void BeginCount();
+ void AddOpt( UINT16 nPropertyID, UINT32 nPropValue, BOOL bBlib = FALSE );
+ // der Buffer pProp wird spaeter bei einem EndCount automatisch freigegeben!!
+ BOOL GetOpt( UINT16 nPropertyID, UINT32& rPropValue );
+ void AddOpt( UINT16 nPropertyID, BOOL bBlib, UINT32 nPropValue, BYTE* pProp, UINT32 nPropSize );
+ void AddColor( UINT32 nColor );
+ void EndCount( UINT16 nRecType, UINT16 nRecVersion = 0 );
+
+ UINT32 GetColor( const UINT32 nColor, BOOL bSwap = TRUE );
+ UINT32 GetColor( const Color& rColor, BOOL bSwap = TRUE );
+ UINT32 GetGradientColor( const ::com::sun::star::awt::Gradient* pGradient, UINT32 bStartColor );
+ void WriteGradient( const ::com::sun::star::awt::Gradient* pGradient );
+ UINT32 AddGraphic( SvStorageStream& rPicStrm, const Graphic& rGraphic );
+ UINT32 AddGraphic( SvStorageStream& rPicStrm, const BYTE* pSource,
+ UINT32 nSize, const Rectangle&, _Escher_BlibType eBlipType );
+
+ UINT32 DrawingGroupContainerSize();
+ void WriteDrawingGroupContainer( SvStream& rSt );
+};
+
+
+#endif
diff --git a/sd/source/filter/eppt/makefile.mk b/sd/source/filter/eppt/makefile.mk
new file mode 100644
index 000000000000..f65550f42ab2
--- /dev/null
+++ b/sd/source/filter/eppt/makefile.mk
@@ -0,0 +1,198 @@
+#*************************************************************************
+#
+# $RCSfile: makefile.mk,v $
+#
+# $Revision: 1.1.1.1 $
+#
+# last change: $Author: hr $ $Date: 2000-09-18 16:48:45 $
+#
+# 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): _______________________________________
+#
+#
+#
+#*************************************************************************
+
+PRJ=..$/..$/..
+PRJNAME=sd
+TARGET=eppt
+ENABLE_EXCEPTIONS=TRUE
+
+# --- Settings -----------------------------------------------------
+
+.INCLUDE : svpre.mk
+.INCLUDE : settings.mk
+.INCLUDE : sv.mk
+.INCLUDE : $(PRJ)$/util$/makefile.pmk
+
+# --- Files --------------------------------------------------------
+
+CXXFILES= eppt.cxx \
+ epptso.cxx \
+ escherex.cxx \
+ dinfos2.cxx
+
+.IF "$(COM)"=="GCC"
+NOOPTFILES= $(SLO)$/epptso.obj
+.ENDIF
+
+SLOFILES = $(SLO)$/eppt.obj \
+ $(SLO)$/epptso.obj \
+ $(SLO)$/escherex.obj \
+ $(SLO)$/dinfos2.obj
+
+SHL1TARGET = emp$(UPD)$(DLLPOSTFIX)
+SHL1IMPLIB = eppt
+SHL1DEPN = $(LB)$/eppt.lib
+SHL1DEF = $(MISC)$/$(SHL1TARGET).def
+SHL1DEPN = $(LB)$/eppt.lib
+SHL1LIBS = $(SLB)$/eppt.lib
+SHL1BASE = 0x1c000000
+
+SHL1STDLIBS = \
+ $(VOSLIB) \
+ $(SALLIB) \
+ $(SJLIB) \
+ $(SOTLIB) \
+ $(CPPULIB) \
+ $(TKLIB) \
+ $(SO2LIB) \
+ $(GOLIB) \
+ $(SVLLIB) \
+ $(TOOLSLIB) \
+ $(SVTOOLLIB) \
+ $(VCLLIB) \
+ $(UCBHELPERLIB)
+
+# --- Targets --------------------------------------------------------------
+
+.INCLUDE : target.mk
+
+# -------------------------------------------------------------------------
+
+$(MISC)$/$(SHL1TARGET).flt:
+ @echo ------------------------------
+ @echo Making: $@
+ @echo WEP>$@
+ @echo LIBMAIN>>$@
+ @echo LibMain>>$@
+
+# -------------------------------------------------------------------------
+
+.IF "$(GUI)"=="MAC"
+
+$(MISC)$/$(SHL1TARGET).def: $(MISC)$/$(SHL1TARGET).flt makefile.mk
+ @echo ExportPPT > $@
+.ENDIF
+
+# ------------------
+
+.IF "$(GUI)"=="WIN"
+
+$(MISC)$/$(SHL1TARGET).def: $(MISC)$/$(SHL1TARGET).flt makefile.mk
+ @echo ------------------------------
+ @echo Making: $@
+ @echo LIBRARY $(SHL1TARGET) >$@
+ @echo DESCRIPTION 'Filter DLL' >>$@
+ @echo EXETYPE WINDOWS >>$@
+ @echo PROTMODE >>$@
+ @echo CODE LOADONCALL MOVEABLE DISCARDABLE >>$@
+ @echo DATA PRELOAD MOVEABLE SINGLE >>$@
+ @echo HEAPSIZE 0 >>$@
+ @echo EXPORTS >>$@
+ @echo _ExportPPT >>$@
+.ENDIF
+
+# ------------------
+
+.IF "$(GUI)" == "OS2"
+
+$(MISC)$/$(SHL1TARGET).def:\
+ makefile.mk \
+ $(MISC)$/$(SHL1TARGET).flt
+ @echo -------------------------------------------
+ @echo DEF-File erstellen
+.IF "$(COM)"!="WTC"
+ @echo LIBRARY $(DLLNAME) INITINSTANCE TERMINSTANCE >$@
+ @echo DESCRIPTION 'FILTER DLL' >>$@
+.IF "$(COM)" == "ZTC"
+ @echo STUB 'os2STUB.EXE' >>$@
+.ENDIF
+ @echo PROTMODE >>$@
+ @echo CODE LOADONCALL >>$@
+ @echo DATA PRELOAD MULTIPLE NONSHARED >>$@
+ @echo EXPORTS >>$@
+.IF "$(COM)"=="ICC"
+ @echo ExportPPT >>$@
+.ELSE
+ @echo _ExportPPT >>$@
+.ENDIF
+.ELSE
+ @echo option DESCRIPTION 'Filter DLL' >$@
+ @echo name $(BIN)$/$(SHL1TARGET) >>$@
+ @echo ExportPPT_ >>$@
+ @gawk -f s:\util\exp.awk temp.def >>$@
+ @del temp.def
+.ENDIF
+.ENDIF
+
+# ------------------
+
+.IF "$(GUI)"=="WNT"
+
+$(MISC)$/$(SHL1TARGET).def: makefile.mk $(MISC)$/$(SHL1TARGET).flt
+ @echo -------------------------------------------
+ @echo DEF-File erstellen
+ @echo LIBRARY $(DLLNAME) >$@
+ @echo DESCRIPTION 'Filter DLL' >>$@
+ @echo DATA READ WRITE NONSHARED >>$@
+ @echo EXPORTS >>$@
+ @echo ExportPPT >>$@
+.ENDIF
diff --git a/sd/source/filter/makefile.mk b/sd/source/filter/makefile.mk
new file mode 100644
index 000000000000..9026d1a0653a
--- /dev/null
+++ b/sd/source/filter/makefile.mk
@@ -0,0 +1,91 @@
+#*************************************************************************
+#
+# $RCSfile: makefile.mk,v $
+#
+# $Revision: 1.1.1.1 $
+#
+# last change: $Author: hr $ $Date: 2000-09-18 16:48:45 $
+#
+# 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): _______________________________________
+#
+#
+#
+#*************************************************************************
+
+PRJ=..$/..
+
+PROJECTPCH=sd
+PROJECTPCHSOURCE=$(PRJ)$/util\sd
+PRJNAME=sd
+TARGET=filter
+
+AUTOSEG=true
+
+# --- Settings -----------------------------------------------------
+
+.INCLUDE : svpre.mk
+.INCLUDE : settings.mk
+.INCLUDE : sv.mk
+.INCLUDE : $(PRJ)$/util$/makefile.pmk
+
+# --- Files --------------------------------------------------------
+
+CXXFILES = $(PRJ)$/util$/sd.cxx \
+ pptin.cxx \
+ propread.cxx
+
+SLOFILES = $(SLO)$/pptin.obj \
+ $(SLO)$/propread.obj
+
+# --- Tagets -------------------------------------------------------
+
+.INCLUDE : target.mk
+
diff --git a/sd/source/filter/pptin.cxx b/sd/source/filter/pptin.cxx
new file mode 100644
index 000000000000..26e792b59c6f
--- /dev/null
+++ b/sd/source/filter/pptin.cxx
@@ -0,0 +1,2558 @@
+/*************************************************************************
+ *
+ * $RCSfile: pptin.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:45 $
+ *
+ * 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): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#include
+
+#ifndef _SV_WRKWIN_HXX
+#include
+#endif
+#ifndef _SVXIDS_HRC
+#include
+#endif
+#ifndef _SVDFPPT_HXX
+#include
+#endif
+#ifndef _SVDITER_HXX
+#include
+#endif
+#ifndef _SFXDOCFILE_HXX //autogen
+#include
+#endif
+#ifndef _SFXAPP_HXX //autogen
+#include
+#endif
+#ifndef _SVDOGRAF_HXX //autogen
+#include
+#endif
+#ifndef _SVDLAYER_HXX //autogen
+#include
+#endif
+#ifndef _SV_MSGBOX_HXX //autogen
+#include
+#endif
+#ifndef _SFXSTYLE_HXX //autogen
+#include
+#endif
+#ifndef _SVX_XFLCLIT_HXX
+#include
+#endif
+#ifndef _EEITEM_HXX
+#include
+#endif
+#define ITEMID_COLOR EE_CHAR_COLOR
+#ifndef _SVX_COLRITEM_HXX //autogen
+#include
+#endif
+#ifndef _SFX_WHITER_HXX //autogen
+#include
+#endif
+
+#ifndef _SVX__XGRADIENT_HXX
+#include
+#endif
+#ifndef _SVX_XFLGRIT_HXX
+#include
+#endif
+#ifndef _SVX_XBTMPIT_HXX
+#include
+#endif
+#ifndef _SVX_XLNCLIT_HXX
+#include
+#endif
+
+#ifndef _EEITEMID_HXX
+#include
+#endif
+#ifndef _SVX_ADJITEM_HXX
+#include
+#endif
+#ifndef _MyEDITENG_HXX
+#include
+#endif
+
+#ifndef _SVX_BULITEM_HXX
+#include
+#endif
+
+#ifndef _SVX_LRSPITEM_HXX
+#include
+#endif
+
+#ifndef _SVX_LSPCITEM_HXX
+#include
+#endif
+
+#ifndef _SVX_TSPTITEM_HXX
+#include
+#endif
+
+#ifndef _SFX_INIMGR_HXX
+#include
+#endif
+
+#pragma hdrstop
+
+#include "glob.hrc"
+#include "pptin.hxx"
+#include "sdoutl.hxx"
+#include "drawdoc.hxx"
+#include "sdpage.hxx"
+#include "sdresid.hxx"
+#include "pres.hxx"
+#include "sdresid.hxx"
+
+#ifndef _SD_STLPOOL_HXX
+#include "stlpool.hxx"
+#endif
+#ifndef _SD_ANMINFO_HXX
+#include "anminfo.hxx"
+#endif
+#ifndef _GALLERY_HXX_
+#include
+#endif
+#ifndef _URLOBJ_HXX
+#include
+#endif
+
+#ifndef _SFXITEMPOOL_HXX
+#include
+#endif
+
+#ifndef _SVX_FHGTITEM_HXX
+#include
+#endif
+#ifndef _SVX_SVDOPAGE
+#include
+#endif
+#ifndef _SVDOGRP_HXX
+#include
+#endif
+#ifndef _PROPREAD_HXX_
+#include
+#endif
+#ifndef _SD_CUSSHOW_HXX
+#include
+#endif
+
+#ifndef _SFXSTBMGR_HXX
+#include
+#endif
+
+#ifndef _SV_BMPACC_HXX
+#include
+#endif
+
+#ifndef MAC
+#include "../ui/inc/docshell.hxx"
+#else
+#include "docshell.hxx"
+#endif
+
+#include
+#ifndef _OFA_FLTRCFG_HXX
+#include
+#endif
+#ifndef _SFX_PROGRESS_HXX
+#include
+#endif
+#define MAX_USER_MOVE 2
+
+//////////////////////////////////////////////////////////////////////////
+//
+// Ctor
+//
+//////////////////////////////////////////////////////////////////////////
+
+SdPPTImport::SdPPTImport( SdDrawDocument* pDocument, SvStream& rDocStream, SvStorage& rStorage_ ) :
+ SdrPowerPointImport( rDocStream ),
+ rStorage( rStorage_ ),
+ pSdPPTImportData ( new SdPPTImportData ),
+ nFilterOptions( 0 )
+{
+ pSdPPTImportData->pDoc = pDocument;
+ if ( bOk )
+ {
+ bDocumentFound = SeekToDocument( &aDocHd ); // aDocHd = the latest DocumentHeader
+ while ( SeekToRec( rStCtrl, PPT_PST_Document, nStreamLen, &aDocHd ) )
+ bDocumentFound = TRUE;
+
+ UINT32 nDggContainerOfs = 0;
+
+ if ( bDocumentFound )
+ {
+ ULONG nPosMerk = rStCtrl.Tell();
+
+ pStData = rStorage_.OpenStream( String( RTL_CONSTASCII_USTRINGPARAM( "Pictures" ) ), STREAM_STD_READ );
+
+ rStCtrl.Seek( aDocHd.GetRecBegFilePos() + 8 );
+ ULONG nDocLen = aDocHd.GetRecEndFilePos();
+ DffRecordHeader aPPDGHd;
+ if ( SeekToRec( rStCtrl, PPT_PST_PPDrawingGroup, nDocLen, &aPPDGHd ) )
+ {
+ ULONG nPPDGLen = aPPDGHd.GetRecEndFilePos();
+ if ( SeekToRec( rStCtrl, DFF_msofbtDggContainer, nPPDGLen, NULL ) )
+ nDggContainerOfs = rStCtrl.Tell();
+ }
+ rStCtrl.Seek( nPosMerk );
+ }
+ sal_uInt32 nSvxMSDffOLEConvFlags = 0;
+ OfficeApplication* pApplication = OFF_APP();
+ if ( pApplication )
+ {
+ OfaFilterOptions* pBasOpt = pApplication->GetFilterOptions();
+ if ( pBasOpt )
+ {
+ if ( pBasOpt->IsLoadPPointBasicCode() )
+ nFilterOptions |= 1;
+ if ( pBasOpt->IsMathType2StarMath() )
+ nSvxMSDffOLEConvFlags |= OLE_MATHTYPE_2_STARMATH;
+ if ( pBasOpt->IsWinWord2StarWriter() )
+ nSvxMSDffOLEConvFlags |= OLE_WINWORD_2_STARWRITER;
+ if ( pBasOpt->IsExcel2StarCalc() )
+ nSvxMSDffOLEConvFlags |= OLE_EXCEL_2_STARCALC;
+ if ( pBasOpt->IsPowerPoint2StarImpress() )
+ nSvxMSDffOLEConvFlags |= OLE_POWERPOINT_2_STARIMPRESS;
+ }
+ }
+ InitSvxMSDffManager( nDggContainerOfs, pStData, nSvxMSDffOLEConvFlags );
+ SetSvxMSDffSettings( SVXMSDFF_SETTINGS_CROP_BITMAPS | 2 ); // SVXMSDFF_SETTINGS_IMPORT_PPT
+ SetModel( pSdPPTImportData->pDoc, 576 );
+ }
+}
+
+//////////////////////////////////////////////////////////////////////////
+//
+// Dtor
+//
+//////////////////////////////////////////////////////////////////////////
+
+SdPPTImport::~SdPPTImport()
+{
+ for ( void* pPtr = aSlideNameList.First(); pPtr; pPtr = aSlideNameList.Next() )
+ delete (String*)pPtr;
+ delete pStData;
+ delete pSdPPTImportData;
+}
+
+//////////////////////////////////////////////////////////////////////////
+//
+// Import
+//
+//////////////////////////////////////////////////////////////////////////
+
+BOOL SdPPTImport::Import()
+{
+ if ( !bOk )
+ return FALSE;
+
+ SdDrawDocument* pDoc = pSdPPTImportData->pDoc;
+
+ SetStarDraw();
+ SdrOutliner& rOutl = pDoc->GetDrawOutliner();
+ SdrLayerAdmin& rAdmin = pDoc->GetLayerAdmin();
+ SdrLayerID nBackgroundLayerID = rAdmin.GetLayerID( String( SdResId( STR_LAYER_BCKGRND )), FALSE );
+ SdrLayerID nBackgroundObjectsLayerID = rAdmin.GetLayerID( String( SdResId( STR_LAYER_BCKGRNDOBJ )), FALSE );
+
+ SdDrawDocShell* pDocShell = pDoc->GetDocSh();
+ if ( pDocShell )
+ SeekOle( pDocShell, nFilterOptions );
+
+ // hyperlinks
+ PropRead* pDInfoSec2 = new PropRead( rStorage, String( RTL_CONSTASCII_USTRINGPARAM( "\005DocumentSummaryInformation" ) ) );
+ if ( pDInfoSec2->IsValid() )
+ {
+ PropItem aPropItem;
+
+ UINT32 nType, nPropSize, nPropCount;
+
+ pDInfoSec2->Read();
+
+ BYTE aPropSetGUID[ 16 ] =
+ {
+ 0x02, 0xd5, 0xcd, 0xd5, 0x9c, 0x2e, 0x1b, 0x10, 0x93, 0x97, 0x08, 0x00, 0x2b, 0x2c, 0xf9, 0xae
+ };
+ Section* pSection = (Section*)pDInfoSec2->GetSection( aPropSetGUID );
+ if ( pSection )
+ {
+ if ( pSection->GetProperty( PID_SLIDECOUNT, aPropItem ) )
+ {
+ aPropItem >> nType;
+ if ( ( nType == VT_I4 ) || ( nType == VT_UI4 ) )
+ {
+ // examine PID_HEADINGPAIR to get the correct entry for PID_DOCPARTS
+ UINT32 nSlideCount, nVecCount;
+ aPropItem >> nSlideCount;
+ if ( nSlideCount && pSection->GetProperty( PID_HEADINGPAIR, aPropItem ) )
+ {
+ UINT32 nSlideTitleIndex, nSlideTitleCount = 0;
+ UINT32 nFontIndex, nFontCount = 0;
+ UINT32 nDesignTemplateIndex, nDesignTemplateCount = 0;
+ UINT32 i, nTemp, nEntryCount = 0;
+
+ String aUString;
+
+ aPropItem >> nType
+ >> nVecCount;
+
+ if ( ( nType == ( VT_VARIANT | VT_VECTOR ) ) && ( nVecCount ^ 1 ) )
+ {
+ nVecCount >>= 1;
+
+ for ( i = 0; i < nVecCount; i++ )
+ {
+ if ( !aPropItem.Read( aUString, VT_EMPTY, FALSE ) )
+ break;
+ aPropItem >> nType;
+ if ( ( nType != VT_I4 ) && ( nType != VT_UI4 ) )
+ break;
+ aPropItem >> nTemp;
+ if ( aUString.EqualsAscii("Slide Titles") || aUString.EqualsAscii("Folientitel") )
+ {
+ nSlideTitleCount = nTemp;
+ nSlideTitleIndex = nEntryCount;
+ }
+ else if ( aUString.EqualsAscii("Fonts Used") )
+ {
+ nFontCount = nTemp;
+ nFontIndex = nEntryCount;
+ }
+ else if ( aUString.EqualsAscii("Design Template") )
+ {
+ nDesignTemplateCount = nTemp;
+ nDesignTemplateIndex = nEntryCount;
+ }
+ nEntryCount += nTemp;
+ }
+ }
+ if ( ( nSlideCount == nSlideTitleCount ) && pSection->GetProperty( PID_DOCPARTS, aPropItem ) )
+ {
+ aPropItem >> nType
+ >> nVecCount;
+
+ if ( ( nVecCount >= ( nSlideTitleIndex + nSlideTitleCount ) )
+ && ( nType == ( VT_LPSTR | VT_VECTOR ) ) )
+ {
+ for ( i = 0; i != nSlideTitleIndex; i++ )
+ {
+ aPropItem >> nTemp;
+ aPropItem.SeekRel( nTemp );
+ }
+ for ( i = 0; i < nSlideTitleCount; i++ )
+ {
+ if ( !aPropItem.Read( aUString, nType, FALSE ) )
+ break;
+ String* pString = new String( aUString );
+ if ( pString->EqualsAscii( "No Slide Title" ))
+ *pString = String();
+ else
+ {
+ void* pPtr;
+ for ( pPtr = aSlideNameList.First(); pPtr; pPtr = aSlideNameList.Next() )
+ {
+ if ( *((String*)pPtr ) == *pString )
+ {
+ *pString = String();
+ break;
+ }
+ }
+ }
+ aSlideNameList.Insert( pString, LIST_APPEND );
+ }
+ }
+ }
+ }
+ }
+ }
+
+ BYTE aUserPropSetGUID[ 16 ] =
+ {
+ 0x05, 0xd5, 0xcd, 0xd5, 0x9c, 0x2e, 0x1b, 0x10, 0x93, 0x97, 0x08, 0x00, 0x2b, 0x2c, 0xf9, 0xae
+ };
+ pSection = (Section*)pDInfoSec2->GetSection( aUserPropSetGUID );
+ if ( pSection )
+ {
+ Dictionary aDict;
+ if ( pSection->GetDictionary( aDict ) )
+ {
+ UINT32 nPropId = aDict.GetProperty( rtl::OUString::createFromAscii("_PID_HLINKS" ));
+ if ( nPropId )
+ {
+ if ( pSection->GetProperty( nPropId, aPropItem ) )
+ {
+ aPropItem.Seek( STREAM_SEEK_TO_BEGIN );
+ aPropItem >> nType;
+ if ( nType == VT_BLOB )
+ {
+ aPropItem >> nPropSize
+ >> nPropCount;
+
+ if ( ! ( nPropCount % 6 ) )
+ {
+ nPropCount /= 6; // 6 propertys a hyperlink
+
+ SdHyperlinkEntry* pHyperlink;
+ for ( UINT32 i = 0; i < nPropCount; i++ )
+ {
+ pHyperlink = new SdHyperlinkEntry;
+ pHyperlink->nIndex = 0;
+ aPropItem >> nType;
+ if ( nType != VT_I4 )
+ break;
+ aPropItem >> pHyperlink->nPrivate1
+ >> nType;
+ if ( nType != VT_I4 )
+ break;
+ aPropItem >> pHyperlink->nPrivate2
+ >> nType;
+ if ( nType != VT_I4 )
+ break;
+ aPropItem >> pHyperlink->nPrivate3
+ >> nType;
+ if ( nType != VT_I4 )
+ break;
+ aPropItem >> pHyperlink->nInfo;
+ if ( !aPropItem.Read( pHyperlink->aTarget, VT_EMPTY ) )
+ break;
+ if ( !aPropItem.Read( pHyperlink->aSubAdress, VT_EMPTY ) )
+ break;
+ pHyperlink->nStartPos = pHyperlink->nEndPos = -1;
+ aHyperList.Insert( pHyperlink, LIST_APPEND );
+ }
+ if ( i != nPropCount )
+ delete pHyperlink;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ delete pDInfoSec2;
+
+ if ( bDocumentFound )
+ {
+ rStCtrl.Seek( aDocHd.GetRecBegFilePos() + 8 );
+ // HyperList lesen / Indexe der einzelnen Eintraege setzen
+ DffRecordHeader aHyperHd;
+ if ( SeekToRec( rStCtrl, PPT_PST_ExObjList, aDocHd.GetRecEndFilePos(), &aHyperHd ) )
+ {
+ UINT32 nExObjHyperListLen = aHyperHd.GetRecEndFilePos();
+ for ( void* pPtr = aHyperList.First(); pPtr; pPtr = aHyperList.Next() )
+ {
+ DffRecordHeader aHyperE;
+ if ( !SeekToRec( rStCtrl, PPT_PST_ExHyperlink, nExObjHyperListLen, &aHyperE ) )
+ break;
+ if ( !SeekToRec( rStCtrl, PPT_PST_ExHyperlinkAtom, nExObjHyperListLen, NULL, 0 ) )
+ break;
+ rStCtrl.SeekRel( 8 );
+ rStCtrl >> ((SdHyperlinkEntry*)pPtr)->nIndex;
+ aHyperE.SeekToEndOfRecord( rStCtrl );
+ }
+ }
+ }
+ ///////////////////////////////////////////////////////////
+ // create master pages:
+ ///////////////////////////////////////////////////////////
+ SfxProgress* pStbMgr = new SfxProgress( pDocShell, String( RTL_CONSTASCII_USTRINGPARAM( "PPTImport" ) ),
+ pMasterPages->Count() + pSlidePages->Count() + pNotePages->Count() );
+
+ UINT32 nImportedPages = 0;
+ {
+ PptPageKind ePageKind = eAktPageKind;
+ UINT16 nPageNum = nAktPageNum;
+ UINT16 nMasterAnz = GetPageCount( PPT_MASTERPAGE );
+
+ SdOutliner* pInternalOutl = pDoc->GetInternalOutliner();
+
+ for ( USHORT nMasterNum = 0; nMasterNum < nMasterAnz; nMasterNum++ )
+ {
+ SetPageNum( nMasterNum, PPT_MASTERPAGE );
+ SdPage* pPage = (SdPage*)MakeBlancPage( TRUE );
+ if ( pPage )
+ {
+ BOOL bNotesMaster = (*GetPageList( eAktPageKind ) )[ nAktPageNum ]->bNotesMaster;
+ BOOL bStarDrawFiller = (*GetPageList( eAktPageKind ) )[ nAktPageNum ]->bStarDrawFiller;
+
+ PageKind ePgKind = ( bNotesMaster ) ? PK_NOTES : PK_STANDARD;
+ pPage->SetPageKind( ePgKind );
+ pSdrModel->InsertMasterPage( (SdrPage*)pPage );
+ if ( bNotesMaster && bStarDrawFiller )
+ ((SdPage*)pPage)->SetAutoLayout( AUTOLAYOUT_NOTES, TRUE );
+ if ( nMasterNum )
+ {
+ SfxStyleSheet* pSheet;
+ if ( nMasterNum == 1 )
+ {
+ ///////////////////
+ // standardsheet //
+ ///////////////////
+ pSheet = (SfxStyleSheet*)pDoc->GetStyleSheetPool()->Find( String(SdResId( STR_STANDARD_STYLESHEET_NAME )), SFX_STYLE_FAMILY_PARA );
+ if ( pSheet )
+ {
+ SfxItemSet& rItemSet = pSheet->GetItemSet();
+ PPTParagraphObj aParagraph( *pPPTStyleSheet, TSS_TYPE_TEXT_IN_SHAPE, 0 );
+ PPTPortionObj aPortion( *pPPTStyleSheet, TSS_TYPE_TEXT_IN_SHAPE, 0 );
+ aParagraph.AppendPortion( aPortion );
+ aParagraph.ApplyTo( rItemSet, (SdrPowerPointImport&)*this, 0xffffffff, NULL );
+ aPortion.ApplyTo( rItemSet, (SdrPowerPointImport&)*this, 0xffffffff );
+ }
+ }
+
+ ///////////////////////////////////////////////////////////
+ // create layoutstylesheets, set layoutname and stylesheet
+ // (nur auf Standard- und Notizseiten)
+ ///////////////////////////////////////////////////////////
+ const PptSlideLayoutAtom* pSlideLayout = GetSlideLayoutAtom();
+ String aLayoutName( SdResId( STR_LAYOUT_DEFAULT_NAME ) );
+ if ( nMasterNum > 2 )
+ {
+ if ( ePgKind == PK_STANDARD )
+ {
+ // Standardseite: Neues Praesentationslayout erzeugen
+ if ( pSlideLayout && pSlideLayout->eLayout == PPT_LAYOUT_TITLEMASTERSLIDE )
+ aLayoutName = String( SdResId( STR_LAYOUT_DEFAULT_TITLE_NAME ) );
+ else
+ aLayoutName += String::CreateFromInt32( (sal_Int32)( ( nMasterNum + 1 ) / 2 - 1 ) );
+ ( (SdStyleSheetPool*)pDoc->GetStyleSheetPool() )->CreateLayoutStyleSheets( aLayoutName );
+ }
+ else // Notizseite: Praesentationslayout von der Standardseite verwenden
+ aLayoutName = ( (SdPage*)pDoc->GetMasterPage( nMasterNum - 1 ) )->GetName();
+ }
+ pPage->SetName( aLayoutName );
+ aLayoutName.AppendAscii( RTL_CONSTASCII_STRINGPARAM( SD_LT_SEPARATOR ));
+ aLayoutName += String( SdResId( STR_LAYOUT_OUTLINE ) );
+ pPage->SetLayoutName( aLayoutName );
+
+ /////////////////////
+ // set stylesheets //
+ /////////////////////
+ if ( pPage->GetPageKind() == PK_STANDARD )
+ {
+ UINT32 nTitleInstance = TSS_TYPE_PAGETITLE;
+ UINT32 nOutlinerInstance = TSS_TYPE_BODY;
+// BOOL bSwapStyleSheet = pSlideLayout->eLayout == PPT_LAYOUT_TITLEMASTERSLIDE;
+// if ( bSwapStyleSheet )
+// {
+// nTitleInstance = TSS_TYPE_TITLE;
+// nOutlinerInstance = TSS_TYPE_SUBTITLE;
+// }
+ /////////////////////
+ // titelstylesheet //
+ /////////////////////
+ pSheet = pPage->GetStyleSheetForPresObj( PRESOBJ_TITLE );
+ if ( pSheet )
+ {
+ SfxItemSet& rItemSet = pSheet->GetItemSet();
+ PPTParagraphObj aParagraph( *pPPTStyleSheet, nTitleInstance, 0 );
+ PPTPortionObj aPortion( *pPPTStyleSheet, nTitleInstance, 0 );
+ aParagraph.AppendPortion( aPortion );
+ aParagraph.ApplyTo( rItemSet, (SdrPowerPointImport&)*this, 0xffffffff, NULL );
+ aPortion.ApplyTo( rItemSet, (SdrPowerPointImport&)*this, 0xffffffff );
+ }
+ ////////////////////////
+ // outlinerstylesheet //
+ ////////////////////////
+ UINT16 nLevel;
+ PPTParagraphObj* pParagraphs[ 9 ];
+ PPTParagraphObj* pPreviousPara = NULL;
+
+ for ( nLevel = 0; nLevel < 9; nLevel++ )
+ {
+ String aName( pPage->GetLayoutName() );
+ aName.Append( (sal_Unicode)( ' ' ) );
+ aName.Append( String::CreateFromInt32( nLevel + 1 ) );
+ SfxStyleSheet* pSheet = (SfxStyleSheet*)pDoc->GetStyleSheetPool()->Find( aName, SD_LT_FAMILY );
+ DBG_ASSERT( pSheet, "Vorlage fuer Gliederungsobjekt nicht gefunden" );
+ if ( pSheet )
+ {
+ pParagraphs[ nLevel ] = new PPTParagraphObj( *pPPTStyleSheet, nOutlinerInstance, nLevel );
+ SfxItemSet& rItemSet = pSheet->GetItemSet();
+ PPTPortionObj aPortion( *pPPTStyleSheet, nOutlinerInstance, nLevel );
+ pParagraphs[ nLevel ]->AppendPortion( aPortion );
+ pParagraphs[ nLevel ]->ApplyTo( rItemSet, (SdrPowerPointImport&)*this, 0xffffffff, pPreviousPara );
+ aPortion.ApplyTo( rItemSet, (SdrPowerPointImport&)*this, 0xffffffff );
+ pPreviousPara = pParagraphs[ nLevel ];
+ }
+ else
+ pParagraphs[ nLevel ] = NULL;
+ }
+ for ( nLevel = 0; nLevel < 9; delete pParagraphs[ nLevel++ ] );
+ /////////////////////////
+ // subtitle stylesheet //
+ /////////////////////////
+ pSheet = pPage->GetStyleSheetForPresObj( PRESOBJ_TEXT );
+ if ( pSheet )
+ {
+ SfxItemSet& rItemSet = pSheet->GetItemSet();
+ PPTParagraphObj aParagraph( *pPPTStyleSheet, TSS_TYPE_SUBTITLE, 0 );
+ PPTPortionObj aPortion( *pPPTStyleSheet, TSS_TYPE_SUBTITLE, 0 );
+ aParagraph.AppendPortion( aPortion );
+ aParagraph.ApplyTo( rItemSet, (SdrPowerPointImport&)*this, 0xffffffff, NULL );
+ aPortion.ApplyTo( rItemSet, (SdrPowerPointImport&)*this, 0xffffffff );
+ }
+ }
+ else if ( ePgKind == PK_NOTES )
+ {
+ pSheet = pPage->GetStyleSheetForPresObj( PRESOBJ_NOTES );
+ if ( pSheet )
+ {
+ SfxItemSet& rItemSet = pSheet->GetItemSet();
+ PPTParagraphObj aParagraph( *pPPTStyleSheet, TSS_TYPE_NOTES, 0 );
+ PPTPortionObj aPortion( *pPPTStyleSheet, TSS_TYPE_NOTES, 0 );
+ aParagraph.AppendPortion( aPortion );
+ aParagraph.ApplyTo( rItemSet, (SdrPowerPointImport&)*this, 0xffffffff, NULL );
+ aPortion.ApplyTo( rItemSet, (SdrPowerPointImport&)*this, 0xffffffff );
+ }
+ }
+ }
+ }
+ }
+ }
+ SdPage* pMPage;
+ UINT32 i;
+ for ( i = 1; i < pDoc->GetMasterPageCount() && ( pMPage = (SdPage*)pDoc->GetMasterPage( i ) ); i++ )
+ {
+ SetPageNum( i, PPT_MASTERPAGE );
+ const PptSlideLayoutAtom* pSlideLayout = GetSlideLayoutAtom();
+ /////////////////////////////////////////////
+ // importing master page objects //
+ /////////////////////////////////////////////
+ PptSlidePersistList* pList = GetPageList( eAktPageKind );
+ if ( !( pList && nAktPageNum < pList->Count() && (*pList)[ nAktPageNum ]->bStarDrawFiller ) )
+ {
+ SdrObject* pObj = ImportPageBackgroundObject( *pMPage, TRUE ); // import background
+ if ( pObj )
+ pMPage->NbcInsertObject( pObj );
+
+ ProcessData aProcessData( *(*pList)[ nAktPageNum ], (SdPage*)pMPage );
+
+ // und nun die Page nach Objekten abklappern
+ ULONG nObjAnz = GetObjCount();
+ for ( ULONG nObjNum = 0; nObjNum < nObjAnz; nObjNum++ )
+ {
+ SdrObject* pObj = NULL;
+ ULONG nFPosMerk = rStCtrl.Tell();
+ if ( SeekToObj( nObjNum ) )
+ pObj = ImportObj( rStCtrl, (void*)&aProcessData, NULL );
+ rStCtrl.Seek( nFPosMerk );
+ if ( pObj )
+ {
+ pObj->SetLayer( nBackgroundObjectsLayerID );
+ pMPage->NbcInsertObject( pObj );
+ }
+ }
+ ImportPageEffect( (SdPage*)pMPage );
+ if( pStbMgr )
+ pStbMgr->SetState( nImportedPages++ );
+// pStbMgr->SetProgressState( nImportedPages++ );
+ }
+ ///////////////////////
+ // background object //
+ ///////////////////////
+ SdrObject* pObj = pMPage->GetObj( 0 );
+ if ( pObj && pObj->GetObjIdentifier() == OBJ_RECT )
+ {
+ if ( pMPage->GetPageKind() == PK_STANDARD )
+ {
+ // Hintergrundobjekt gefunden (erstes Objekt der MasterPage)
+ pObj->SetEmptyPresObj( TRUE );
+ pObj->SetUserCall( pMPage );
+ pObj->SetLayer( nBackgroundLayerID );
+
+ // Schatten am ersten Objekt (Hintergrundobjekt) entfernen (#57918#)
+ SfxItemSet aTempAttr(pDoc->GetPool());
+ pObj->TakeAttributes(aTempAttr, FALSE, TRUE);
+ BOOL bShadowIsOn = ( (SdrShadowItem&)( aTempAttr.Get( SDRATTR_SHADOW ) ) ).GetValue();
+ if( bShadowIsOn )
+ {
+ aTempAttr.Put(SdrShadowItem( FALSE ) );
+ pObj->NbcSetAttributes( aTempAttr, FALSE );
+ }
+ SfxStyleSheet* pSheet = pMPage->GetStyleSheetForPresObj( PRESOBJ_BACKGROUND );
+ if ( pSheet )
+ { // StyleSheet fuellen und dem Objekt zuweisen
+ pSheet->GetItemSet().ClearItem();
+ pObj->TakeAttributes( pSheet->GetItemSet(), TRUE, FALSE );
+ pObj->SetStyleSheet( pSheet, TRUE );
+ SfxItemSet aSet( pDoc->GetPool() );
+ pObj->NbcSetAttributes( aSet, TRUE );
+ }
+ pMPage->GetPresObjList()->Insert( pObj, LIST_APPEND );
+ }
+ }
+ }
+ ////////////////////////////////////
+ // importing slide pages //
+ ////////////////////////////////////
+ {
+ UINT32 nFPosMerk = rStCtrl.Tell();
+ PptPageKind ePageKind = eAktPageKind;
+ UINT16 nPageNum = nAktPageNum;
+
+ eAktPageKind = PPT_NOTEPAGE; // fuer das richtige Seitenformat
+ SdrPage* pPage = MakeBlancPage( FALSE );
+ pSdrModel->InsertPage( pPage );
+
+ USHORT nPageAnz = GetPageCount( PPT_SLIDEPAGE );
+ if ( nPageAnz )
+ {
+ for ( USHORT nPageNum = 0; nPageNum < nPageAnz; nPageNum++ )
+ {
+ pSdPPTImportData->ePresChange = PRESCHANGE_SEMIAUTO;
+ SetPageNum( nPageNum, PPT_SLIDEPAGE );
+ SdPage* pPage = (SdPage*)ImportPage();
+ if ( pPage )
+ {
+ pPage->SetPageKind( PK_STANDARD );
+ ImportPageEffect( (SdPage*)pPage );
+ pSdrModel->InsertPage( pPage );
+ if ( HasNotesPage( nAktPageNum, eAktPageKind ) )
+ {
+ USHORT nNotesPageNum = GetNotesPageIndex( nAktPageNum, eAktPageKind );
+ SetPageNum( nNotesPageNum, PPT_NOTEPAGE );
+ SdPage* pPage = (SdPage*)ImportPage();
+ nImportedPages++;
+ if ( pPage )
+ {
+ pPage->SetPageKind( PK_NOTES );
+ USHORT nMasterNum = GetMasterPageIndex( nAktPageNum, eAktPageKind );
+ pPage->InsertMasterPage( nMasterNum );
+ pPage->SetAutoLayout( AUTOLAYOUT_NOTES, FALSE );
+ pSdrModel->InsertPage( pPage );
+ }
+ }
+ else
+ {
+ eAktPageKind = PPT_NOTEPAGE; // fuer das richtige Seitenformat
+ SdPage* pPage = (SdPage*)MakeBlancPage( FALSE );
+ pPage->SetPageKind( PK_NOTES );
+ USHORT nMasterNum = GetMasterPageIndex( nAktPageNum, eAktPageKind );
+ pPage->InsertMasterPage( nMasterNum );
+ pPage->SetAutoLayout( AUTOLAYOUT_NOTES, TRUE );
+ pSdrModel->InsertPage( pPage );
+ SdrObject* pPageObj = pPage->GetPresObj( PRESOBJ_PAGE, 1 );
+ if ( pPageObj )
+ ((SdrPageObj*)pPageObj)->SetPageNum( ( nPageNum << 1 ) + 1 );
+ }
+ }
+ if( pStbMgr )
+ pStbMgr->SetState( nImportedPages++ );
+// pStbMgr->SetProgressState( nImportedPages++ );
+ }
+ }
+ else
+ {
+ // Das kann bei Dokumentvorlagen vorkommen
+ eAktPageKind = PPT_SLIDEPAGE;
+ SdrPage* pPage = MakeBlancPage( FALSE );
+ pSdrModel->InsertPage( pPage );
+
+ eAktPageKind = PPT_NOTEPAGE;
+ SdrPage* pNPage = MakeBlancPage( FALSE );
+ pSdrModel->InsertPage( pNPage );
+ }
+ SetPageNum( nPageNum, ePageKind );
+ rStCtrl.Seek( nFPosMerk );
+ }
+ ///////////////////////////////////////////////////////////////////
+ // Handzettel und Notiz-Seiten erzeugen //
+ ///////////////////////////////////////////////////////////////////
+ bOk = pDoc->CreateMissingNotesAndHandoutPages();
+ if ( bOk )
+ {
+ for ( i = 0; i < pDoc->GetSdPageCount( PK_STANDARD ); i++ )
+ {
+ ////////////////////
+ // set AutoLayout //
+ ////////////////////
+ SetPageNum( i, PPT_SLIDEPAGE );
+ SdPage* pPage = pDoc->GetSdPage( i, PK_STANDARD );
+ pPage->SetLayoutName( ( (SdPage*)pPage->GetMasterPage( 0 ) )->GetLayoutName() );
+ AutoLayout eAutoLayout = AUTOLAYOUT_NONE;
+ const PptSlideLayoutAtom* pSlideLayout = GetSlideLayoutAtom();
+ if ( pSlideLayout )
+ {
+ switch ( pSlideLayout->eLayout ) // Praesentationslayouts fuer Standard-Seiten
+ {
+ case PPT_LAYOUT_TITLEANDBODYSLIDE :
+ {
+ eAutoLayout = AUTOLAYOUT_ENUM;
+ USHORT nID1 = pSlideLayout->aPlaceholderId[ 1 ];
+ switch ( nID1 )
+ {
+ case PPT_PLACEHOLDER_BODY :
+ eAutoLayout = AUTOLAYOUT_ENUM;
+ break;
+ case PPT_PLACEHOLDER_TABLE :
+ eAutoLayout = AUTOLAYOUT_TAB;
+ break;
+ case PPT_PLACEHOLDER_ORGANISZATIONCHART :
+ eAutoLayout = AUTOLAYOUT_ORG;
+ break;
+ case PPT_PLACEHOLDER_GRAPH :
+ eAutoLayout = AUTOLAYOUT_CHART;
+ break;
+ case PPT_PLACEHOLDER_OBJECT :
+ eAutoLayout = AUTOLAYOUT_OBJ;
+ break;
+ }
+ }
+ break;
+
+ case PPT_LAYOUT_2COLUMNSANDTITLE :
+ {
+ eAutoLayout = AUTOLAYOUT_2TEXT;
+ USHORT nID1 = pSlideLayout->aPlaceholderId[ 1 ];
+ USHORT nID2 = pSlideLayout->aPlaceholderId[ 2 ];
+ if ( nID1 == PPT_PLACEHOLDER_BODY && nID2 == PPT_PLACEHOLDER_GRAPH )
+ eAutoLayout = AUTOLAYOUT_TEXTCHART;
+ else if ( nID1 == PPT_PLACEHOLDER_GRAPH && nID2 == PPT_PLACEHOLDER_BODY )
+ eAutoLayout = AUTOLAYOUT_CHARTTEXT;
+ else if ( nID1 == PPT_PLACEHOLDER_BODY && nID2 == PPT_PLACEHOLDER_CLIPART )
+ eAutoLayout = AUTOLAYOUT_TEXTCLIP;
+ else if ( nID1 == PPT_PLACEHOLDER_CLIPART && nID2 == PPT_PLACEHOLDER_BODY )
+ eAutoLayout = AUTOLAYOUT_CLIPTEXT;
+ else if ( ( nID1 == PPT_PLACEHOLDER_BODY )
+ && ( ( nID2 == PPT_PLACEHOLDER_OBJECT ) || ( nID2 == PPT_PLACEHOLDER_MEDIACLIP ) ) )
+ eAutoLayout = AUTOLAYOUT_TEXTOBJ;
+ else if ( ( nID2 == PPT_PLACEHOLDER_BODY )
+ && ( ( nID1 == PPT_PLACEHOLDER_OBJECT ) || ( nID1 == PPT_PLACEHOLDER_MEDIACLIP ) ) )
+ eAutoLayout = AUTOLAYOUT_OBJTEXT;
+ }
+ break;
+
+ case PPT_LAYOUT_2ROWSANDTITLE :
+ {
+ eAutoLayout = AUTOLAYOUT_2TEXT;
+ USHORT nID1 = pSlideLayout->aPlaceholderId[ 1 ];
+ USHORT nID2 = pSlideLayout->aPlaceholderId[ 2 ];
+ if ( nID1 == PPT_PLACEHOLDER_BODY && nID2 == PPT_PLACEHOLDER_OBJECT )
+ eAutoLayout = AUTOLAYOUT_TEXTOVEROBJ;
+ else if ( nID1 == PPT_PLACEHOLDER_OBJECT && nID2 == PPT_PLACEHOLDER_BODY )
+ eAutoLayout = AUTOLAYOUT_OBJOVERTEXT;
+ }
+ break;
+
+ case PPT_LAYOUT_TITLESLIDE :
+ eAutoLayout = AUTOLAYOUT_TITLE;
+ break;
+ case PPT_LAYOUT_ONLYTITLE :
+ eAutoLayout = AUTOLAYOUT_ONLY_TITLE;
+ break;
+ case PPT_LAYOUT_RIGHTCOLUMN2ROWS :
+ eAutoLayout = AUTOLAYOUT_TEXT2OBJ;
+ break;
+ case PPT_LAYOUT_LEFTCOLUMN2ROWS :
+ eAutoLayout = AUTOLAYOUT_2OBJTEXT;
+ break;
+ case PPT_LAYOUT_TOPROW2COLUMN :
+ eAutoLayout = AUTOLAYOUT_2OBJOVERTEXT;
+ break;
+ case PPT_LAYOUT_4OBJECTS :
+ eAutoLayout = AUTOLAYOUT_4OBJ;
+ break;
+ case PPT_LAYOUT_BIGOBJECT :
+ eAutoLayout = AUTOLAYOUT_OBJ;
+ break;
+ case PPT_LAYOUT_TITLERIGHTBODYLEFT :
+ eAutoLayout = AUTOLAYOUT_ENUM;
+ break;
+ case PPT_LAYOUT_TITLERIGHT2BODIESLEFT :
+ eAutoLayout = AUTOLAYOUT_TEXT2OBJ;
+ break;
+
+ case PPT_LAYOUT_BOTTOMROW2COLUMNS :
+ case PPT_LAYOUT_BLANCSLIDE :
+ case PPT_LAYOUT_MASTERSLIDE : // Layout der Standard- und Titel-MasterPage
+ case PPT_LAYOUT_TITLEMASTERSLIDE :
+ case PPT_LAYOUT_MASTERNOTES : // Layout der Notizen-MasterPage
+ case PPT_LAYOUT_NOTESTITLEBODY : // Praesentationslayout fuer Notiz-Seiten
+ case PPT_LAYOUT_HANDOUTLAYOUT : // Praesentationslayout fuer Handzettelseiten
+ eAutoLayout = AUTOLAYOUT_NONE;
+ break;
+ }
+ if ( eAutoLayout != AUTOLAYOUT_NONE )
+ pPage->SetAutoLayout( eAutoLayout, FALSE );
+ }
+ }
+ //////////////////////////////////////////////////////////////
+ // Handzettel-MasterPage: Autolayout setzen //
+ //////////////////////////////////////////////////////////////
+ SdPage* pHandoutMPage = pDoc->GetMasterSdPage( 0, PK_HANDOUT );
+ pHandoutMPage->SetAutoLayout( AUTOLAYOUT_HANDOUT4, TRUE );
+ }
+
+ /////////////////////////////////
+ // create missing headerfooter //
+ /////////////////////////////////
+ HeaderFooterMaster* pM;
+ for ( pM = (HeaderFooterMaster*)aHFMasterList.First(); pM; pM = (HeaderFooterMaster*)aHFMasterList.Next() )
+ {
+ HeaderFooterEntry *pSlave, *pMaster = (HeaderFooterEntry*)pM->aHeaderFooterEntryList.First();
+ if ( pMaster )
+ {
+ HeaderFooterMaster& rM = pMaster->rMaster;
+ SdrObject* pObj;
+ for ( UINT32 nInstanceCount = pMaster->nInstanceCount; nInstanceCount; )
+ {
+ UINT32 nInstance = pMaster->pInstanceOrder[ --nInstanceCount ];
+ if ( nInstance < 4 )
+ {
+ if ( rM.nDirtyInstance & ( 1 << nInstance ) )
+ {
+ while ( ( pSlave = (HeaderFooterEntry*)pM->aHeaderFooterEntryList.Next() ) )
+ {
+ if ( pSlave->IsToDisplay( nInstance ) )
+ { // this headerfooter is to display
+ pObj = pSlave->pSdrObject[ nInstance ];
+ if ( pObj )
+ pSlave->pSdrObject[ nInstance ] = NULL;
+ else
+ { // we have to use the default from the masterpage
+ pObj = pMaster->pSdrObject[ nInstance ];
+ if ( pObj )
+ pObj = pObj->Clone();
+ }
+ if ( pObj )
+ pSlave->pSdPage->NbcInsertObject( pObj, 0 );
+ }
+ }
+ pM->aHeaderFooterEntryList.Seek( (UINT32)0 );
+ }
+ else
+ {
+ pObj = pMaster->pSdrObject[ nInstance ];
+ if ( pObj && pMaster->IsToDisplay( nInstance ) )
+ {
+ pMaster->pSdPage->NbcInsertObject( pObj, pMaster->pPageIndex[ nInstance ] );
+ pMaster->pSdrObject[ nInstance ] = NULL;
+ }
+ }
+ }
+ }
+ }
+ }
+
+ UINT32 nSlideCount = GetPageCount();
+ for ( i = 0; ( i < nSlideCount) && ( i < aSlideNameList.Count() ); i++ )
+ {
+ SdPage* pPage = pDoc->GetSdPage( i, PK_STANDARD );
+ String* pName = (String*)aSlideNameList.GetObject( i );
+ if ( pPage && pName )
+ {
+ if ( pName->Len() )
+ pPage->SetName( *pName );
+ else
+ *pName = pPage->GetName();
+ }
+ }
+ if ( bDocumentFound )
+ {
+ DffRecordHeader aCustomShowHeader;
+
+ // custom show einlesen und setzen
+ rStCtrl.Seek( aDocHd.GetRecBegFilePos() + 8 );
+ if ( SeekToRec( rStCtrl, PPT_PST_NamedShows, aDocHd.GetRecEndFilePos(), &aCustomShowHeader ) )
+ {
+ DffRecordHeader aCuHeader;
+ while( SeekToRec( rStCtrl, PPT_PST_NamedShow, aCustomShowHeader.GetRecEndFilePos(), &aCuHeader ) )
+ {
+ DffRecordHeader aContent;
+ if ( SeekToRec( rStCtrl, PPT_PST_CString, aCuHeader.GetRecEndFilePos(), &aContent ) )
+ {
+ String aCuShow;
+ aContent.SeekToBegOfRecord( rStCtrl );
+ if ( ReadString( aCuShow ) )
+ {
+ if ( SeekToRec( rStCtrl, PPT_PST_NamedShowSlides, aCuHeader.GetRecEndFilePos(), &aContent ) )
+ {
+ PptSlidePersistList* pPageList = GetPageList( PPT_SLIDEPAGE );
+ UINT32 nSCount = aContent.nRecLen >> 2;
+ if ( pPageList && nSCount )
+ {
+ List* pList = pDoc->GetCustomShowList( TRUE );
+ if ( pList )
+ {
+ SdCustomShow* pSdCustomShow = new SdCustomShow( pDoc );
+ if ( pSdCustomShow )
+ {
+ pSdCustomShow->SetName( aCuShow );
+ UINT32 nFound = 0;
+ for ( UINT32 i = 0; i < nSCount; i++ )
+ {
+ UINT32 nPageNumber;
+ rStCtrl >> nPageNumber;
+ USHORT nPage = pPageList->FindPage( nPageNumber );
+ if ( nPage != PPTSLIDEPERSIST_ENTRY_NOTFOUND )
+ {
+ SdPage* pPage = pDoc->GetSdPage( nPage, PK_STANDARD );
+ if ( pPage )
+ {
+ pSdCustomShow->Insert( pPage, LIST_APPEND );
+ nFound++;
+ }
+ }
+ }
+ if ( nFound )
+ pList->Insert( pSdCustomShow, LIST_APPEND );
+ else
+ delete pSdCustomShow;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ // this is defaulted, maybe there is no SSDocInfoAtom
+ String aCustomShow;
+ UINT32 nPenColor = 0x1000000;
+ INT32 nRestartTime = 0x7fffffff;
+ INT16 nStartSlide = 0;
+ INT16 nEndSlide = 0;
+ UINT32 nFlags = 0; // Bit 0: Auto advance
+
+ // read the pres. configuration
+ rStCtrl.Seek( aDocHd.GetRecBegFilePos() + 8 );
+ if ( SeekToRec( rStCtrl, PPT_PST_SSDocInfoAtom, aDocHd.GetRecEndFilePos(), &aCustomShowHeader ) )
+ {
+ rStCtrl >> nPenColor
+ >> nRestartTime
+ >> nStartSlide
+ >> nEndSlide;
+
+ sal_Unicode nChar;
+ for ( UINT32 i = 0; i < 32; i++ )
+ {
+ rStCtrl >> nChar;
+ if ( nChar )
+ aCustomShow.Append( nChar );
+ else
+ {
+ rStCtrl.SeekRel( ( 31 - i ) << 1 );
+ break;
+ }
+ }
+ rStCtrl >> nFlags;
+ }
+ // set the current custom show
+ if ( aCustomShow.Len() )
+ {
+ List* pList = pDoc->GetCustomShowList( FALSE );
+ if ( pList )
+ {
+ for ( void* pPtr = pList->First(); pPtr; pPtr = pList->Next() )
+ {
+ if ( ((SdCustomShow*)pPtr)->GetName() == aCustomShow )
+ break;
+ }
+ if ( !pPtr )
+ pList->First();
+ }
+ }
+ pDoc->SetPresManual( ( nFlags & 1 ) == 0 );
+ pDoc->SetAnimationAllowed( ( nFlags & 2 ) == 0 );
+ pDoc->SetPresAll( ( nFlags & 4 ) == 0 );
+ pDoc->SetCustomShow( ( nFlags & 8 ) != 0 );
+ pDoc->SetPresEndless( ( nFlags & 0x80 ) != 0 );
+ pDoc->SetPresFullScreen( ( nFlags & 0x10 ) == 0 );
+// pDoc->SetPresPause( );
+// pDoc->SetPresShowLogo( );
+ if ( nStartSlide && ( nStartSlide <= aSlideNameList.Count() ) )
+ {
+ String aPresPage( *(String*)aSlideNameList.GetObject( nStartSlide - 1 ) );
+ pDoc->SetPresPage( aPresPage );
+ }
+ }
+
+ delete pStbMgr;
+ // DocInfo lesen und an der ObjectShell setzen
+ SfxDocumentInfo* pNewDocInfo = new SfxDocumentInfo();
+ pNewDocInfo->LoadPropertySet( &rStorage );
+ pNewDocInfo->SetTemplateName( String() );
+ SfxDocumentInfo& rOldInfo = pDoc->GetObjectShell()->GetDocInfo();
+ rOldInfo = *pNewDocInfo;
+ delete( pNewDocInfo );
+ return bOk;
+}
+
+//////////////////////////////////////////////////////////////////////////
+//
+// Import von Seiten
+//
+//////////////////////////////////////////////////////////////////////////
+
+void SdPPTImport::ImportPageEffect( SdPage* pPage )
+{
+ SdDrawDocument* pDoc = pSdPPTImportData->pDoc;
+ ULONG nFilePosMerk = rStCtrl.Tell();
+
+ // PageKind an der Seite setzen (bisher nur PK_STANDARD oder PK_NOTES)
+ if ( pPage->GetPageKind() == PK_STANDARD )
+ {
+ DffRecordHeader aPageRecHd;
+
+ if ( pPage && SeekToAktPage( &aPageRecHd ) )
+ {
+ ULONG nPageRecEnd = aPageRecHd.GetRecEndFilePos();
+
+ BOOL bTryTwice = ( eAktPageKind == PPT_SLIDEPAGE );
+ BOOL bSSSlideInfoAtom = FALSE;
+ while ( TRUE )
+ {
+ while ( ( rStCtrl.GetError() == 0 ) && ( rStCtrl.Tell() < nPageRecEnd ) )
+ {
+ DffRecordHeader aHd;
+ rStCtrl >> aHd;
+ switch ( aHd.nRecType )
+ {
+ case PPT_PST_SSSlideInfoAtom:
+ {
+ bSSSlideInfoAtom = TRUE;
+ if ( eAktPageKind == PPT_MASTERPAGE )
+ {
+ PptSlidePersistList* pPersistList = GetPageList( eAktPageKind );
+ if ( pPersistList && nAktPageNum < pPersistList->Count() )
+ {
+ PptSlidePersistEntry* pE = (*pPersistList)[ nAktPageNum ];
+ if ( pE )
+ pE->aPersistAtom.nReserved = aHd.GetRecBegFilePos();
+ }
+ }
+ else
+ {
+ BYTE nDirection, nTransitionType, nBuildFlags, nByteDummy, nSpeed;
+ INT32 nSlideTime, nSoundRef;
+ rStCtrl >> nSlideTime // Standzeit (in Ticks)
+ >> nSoundRef // Index in SoundCollection
+ >> nDirection // Richtung des Ueberblendeffekts
+ >> nTransitionType // Ueberblendeffekt
+ >> nBuildFlags // Buildflags (s.u.)
+ >> nByteDummy
+ >> nSpeed // Geschwindigkeit (langsam, mittel, schnell)
+ >> nByteDummy >> nByteDummy >> nByteDummy;
+
+ switch ( nTransitionType )
+ {
+ case PPT_TRANSITION_TYPE_NONE :
+ {
+ if ( nDirection == 0 )
+ pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_NONE ); // Direkt
+ else if ( nDirection == 1 )
+ pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_NONE ); // Direkt ueber Schwarz
+ }
+ break;
+
+ case PPT_TRANSITION_TYPE_RANDOM :
+ pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_RANDOM ); // Automatisch
+ break;
+
+ case PPT_TRANSITION_TYPE_BLINDS :
+ {
+ if ( nDirection == 0 )
+ pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_VERTICAL_STRIPES );// Vertikal blenden
+ else if ( nDirection == 1 )
+ pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_HORIZONTAL_STRIPES );// Horizontal blenden
+ }
+ break;
+
+ case PPT_TRANSITION_TYPE_CHECKER :
+ {
+ if ( nDirection == 0 )
+ pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_VERTICAL_STRIPES );// Vertikal versetzt einblenden ??
+ else if ( nDirection == 1 )
+ pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_HORIZONTAL_STRIPES );// Horizontal versetzt einblenden ??
+ }
+ break;
+
+ case PPT_TRANSITION_TYPE_COVER :
+ {
+ if ( nDirection == 0 )
+ pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_MOVE_FROM_RIGHT ); // Von rechts ueberdecken
+ else if ( nDirection == 1 )
+ pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_MOVE_FROM_BOTTOM );// Von unten ueberdecken
+ else if ( nDirection == 2 )
+ pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_MOVE_FROM_LEFT ); // Von links ueberdecken
+ else if ( nDirection == 3 )
+ pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_MOVE_FROM_TOP ); // Von oben ueberdecken
+ else if ( nDirection == 4 )
+ pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_MOVE_FROM_BOTTOM );// Von rechts unten ueberdecken ??
+ else if ( nDirection == 5 )
+ pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_MOVE_FROM_BOTTOM );// Von links unten ueberdecken ??
+ else if ( nDirection == 6 )
+ pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_MOVE_FROM_TOP ); // Von rechts oben ueberdecken
+ else if ( nDirection == 7 )
+ pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_MOVE_FROM_TOP ); // Von links oben ueberdecken ??
+ }
+ break;
+
+ case PPT_TRANSITION_TYPE_DISSOLVE :
+ pPage->SetFadeEffect(::com::sun::star::presentation::FadeEffect_DISSOLVE); // Aufloesen
+ break;
+
+ case PPT_TRANSITION_TYPE_FADE :
+ pPage->SetFadeEffect(::com::sun::star::presentation::FadeEffect_NONE); // Ueber Schwarz blenden ??
+ break;
+
+ case PPT_TRANSITION_TYPE_PULL :
+ {
+ if ( nDirection == 0 )
+ pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_FADE_FROM_RIGHT ); // Nach links aufdecken
+ else if ( nDirection == 1 )
+ pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_FADE_FROM_BOTTOM );// Nach oben aufdecken
+ else if ( nDirection == 2 )
+ pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_FADE_FROM_LEFT ); // Nach rechts aufdecken
+ else if ( nDirection == 3 )
+ pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_FADE_FROM_TOP ); // Nach unten aufdecken
+ else if ( nDirection == 4 )
+ pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_FADE_FROM_BOTTOM );// Nach links oben aufdecken
+ else if ( nDirection == 5 )
+ pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_FADE_FROM_LEFT ); // Nach rechts oben aufdecken
+ else if ( nDirection == 6 )
+ pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_FADE_FROM_RIGHT ); // Nach links unten aufdecken
+ else if ( nDirection == 7 )
+ pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_FADE_FROM_TOP ); // Nach rechts unten aufdecken
+ }
+ break;
+
+ case PPT_TRANSITION_TYPE_RANDOM_BARS :
+ {
+ if ( nDirection == 0 )
+ pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_HORIZONTAL_LINES );// Horizontale Linien
+ else if ( nDirection == 1 )
+ pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_VERTICAL_LINES ); // Vertikale Linien
+ }
+ break;
+
+ case PPT_TRANSITION_TYPE_STRIPS :
+ {
+ if ( nDirection == 4 )
+ pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_FADE_FROM_LOWERRIGHT );// Diagonal nach links oben
+ else if ( nDirection == 5 )
+ pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_FADE_FROM_LOWERLEFT ); // Diagonal nach rechts oben
+ else if ( nDirection == 6 )
+ pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_FADE_FROM_UPPERRIGHT );// Diagonal nach links unten
+ else if ( nDirection == 7 )
+ pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_FADE_FROM_UPPERLEFT ); // Diagonal nach rechts unten
+ }
+ break;
+
+ case PPT_TRANSITION_TYPE_WIPE :
+ {
+ if ( nDirection == 0 )
+ pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_ROLL_FROM_RIGHT ); // Von rechts rollen
+ else if ( nDirection == 1 )
+ pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_ROLL_FROM_BOTTOM );// Von unten rollen
+ else if ( nDirection == 2 )
+ pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_ROLL_FROM_LEFT ); // Von links rollen
+ else if ( nDirection == 3 )
+ pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_ROLL_FROM_TOP ); // Von oben rollen
+ }
+ break;
+
+ case PPT_TRANSITION_TYPE_ZOOM :
+ {
+ if ( nDirection == 0 )
+ pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_FADE_FROM_CENTER );// Von innen einblenden
+ else if ( nDirection == 1 )
+ pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_FADE_TO_CENTER ); // Von aussen einblenden
+ }
+ break;
+
+ case PPT_TRANSITION_TYPE_SPLIT :
+ {
+ if ( nDirection == 0 )
+ pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_OPEN_VERTICAL ); // Horizontal oeffnen
+ else if ( nDirection == 1 )
+ pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_CLOSE_VERTICAL ); // Horizontal schliessen
+ else if ( nDirection == 2 )
+ pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_OPEN_HORIZONTAL ); // Vertikal oeffnen
+ else if ( nDirection == 3 )
+ pPage->SetFadeEffect( ::com::sun::star::presentation::FadeEffect_CLOSE_HORIZONTAL );// Vertikal schliessen
+ }
+ break ;
+ }
+
+ if ( nSpeed == 0 )
+ pPage->SetFadeSpeed( FADE_SPEED_SLOW ); // langsam
+ else if ( nSpeed == 1 )
+ pPage->SetFadeSpeed( FADE_SPEED_MEDIUM ); // mittel
+ else if ( nSpeed == 2 )
+ pPage->SetFadeSpeed( FADE_SPEED_FAST ); // schnell
+
+ if ( nBuildFlags & 1 )
+ pPage->SetPresChange( pSdPPTImportData->ePresChange ); // Diawechsel bei Klick auf Hintergrund
+ else
+ { // Standzeit (in Ticks)
+ pPage->SetPresChange( PRESCHANGE_AUTO );
+ pPage->SetTime( nSlideTime / 1000 );
+ }
+ if ( nBuildFlags & 4 )
+ pPage->SetExcluded( TRUE ); // Dia nicht anzeigen
+ if ( nBuildFlags & 16 )
+ { // Dia mit Soundeffekt
+ pPage->SetSound( TRUE );
+ String aSoundFile( ReadSound( nSoundRef ) );
+ pPage->SetSoundFile( aSoundFile );
+ }
+ // if ( nBuildFlags & ( 1 << 6 ) ) Loop until next sound: wird nicht unterstuetzt
+ // if ( nBuildFlags & ( 1 << 8 ) ) Stop the previous sound: wird nicht unterstuetzt
+ break;
+ }
+ }
+ }
+ aHd.SeekToEndOfRecord( rStCtrl );
+ }
+ if ( bTryTwice && ( bSSSlideInfoAtom == FALSE ) )
+ {
+ bTryTwice = FALSE;
+ if ( HasMasterPage( nAktPageNum, eAktPageKind ) )
+ {
+ USHORT nMasterNum = GetMasterPageIndex( nAktPageNum, eAktPageKind );
+ PptSlidePersistList* pPageList = GetPageList( PPT_MASTERPAGE );
+ if ( pPageList && ( nMasterNum < pPageList->Count() ) )
+ {
+ PptSlidePersistEntry* pE = (*pPageList)[ nMasterNum ];
+ if ( pE )
+ {
+ UINT32 nOfs = pE->aPersistAtom.nReserved;
+ if ( nOfs )
+ {
+ rStCtrl.Seek( nOfs );
+ nPageRecEnd = nOfs + 16;
+ continue;
+ }
+ }
+ }
+
+ }
+ }
+ break;
+ }
+ }
+ }
+
+
+ // Animationsobjekte der Page in der Reihenfolge abstimmen
+ SdrObjListIter aIter( *pPage, IM_FLAT );
+ INT32 i;
+ List aAnimInfo;
+ while ( aIter.IsMore() )
+ {
+ SdrObject* pObj = aIter.Next();
+ const SdAnimationInfo *pInfo = pDoc->GetAnimationInfo( pObj );
+ if ( pInfo )
+ {
+ for ( i = aAnimInfo.Count() - 1; i >= 0; i-- )
+ {
+ if ( ( (const SdAnimationInfo*)aAnimInfo.GetObject( i ) )->nPresOrder <= pInfo->nPresOrder )
+ break;
+ }
+ aAnimInfo.Insert( (void*)pInfo, i + 1 );
+ }
+ }
+ for ( i = 0; i < aAnimInfo.Count(); i++ )
+ ( (SdAnimationInfo*)aAnimInfo.GetObject( i ) )->nPresOrder = i + 1;
+
+ rStCtrl.Seek( nFilePosMerk );
+}
+
+//////////////////////////////////////////////////////////////////////////
+//
+// Import von Sounds
+//
+// Die Sounds werden nicht nur als String importiert sondern auch
+// in die Gallery einefuegt, falls dort noch nicht vorhanden.
+//
+///////////////////////////////////////////////////////////////////////////
+
+String SdPPTImport::ReadSound(UINT32 nSoundRef) const
+{
+ String aRetval;
+ UINT32 nPosMerk = rStCtrl.Tell();
+ DffRecordHeader aDocHd;
+ if ( SeekToDocument( &aDocHd ) )
+ {
+ UINT32 nSoundLen = aDocHd.GetRecEndFilePos();
+ DffRecordHeader aSoundBlockRecHd;
+ if( SeekToRec( rStCtrl, PPT_PST_SoundCollection, nSoundLen, &aSoundBlockRecHd ) )
+ {
+ UINT32 nDataLen = aSoundBlockRecHd.GetRecEndFilePos();
+ DffRecordHeader aSoundRecHd;
+ BOOL bRefStrValid = FALSE;
+ BOOL bDone = FALSE;
+
+ while( !bDone && SeekToRec( rStCtrl, PPT_PST_Sound, nDataLen, &aSoundRecHd ) )
+ {
+ UINT32 nStrLen = aSoundRecHd.GetRecEndFilePos();
+ String aRefStr;
+ UINT32 nPosMerk2 = rStCtrl.Tell();
+ if ( SeekToRec( rStCtrl, PPT_PST_CString, nStrLen, NULL, 2 ) )
+ {
+ if ( ReadString( aRefStr ) )
+ bRefStrValid = TRUE;
+ }
+ if ( bRefStrValid )
+ {
+ if ( UniString::CreateFromInt32( nSoundRef ) == aRefStr )
+ {
+ rStCtrl.Seek( nPosMerk2 );
+ if ( SeekToRec( rStCtrl, PPT_PST_CString, nStrLen, NULL, 0 ) )
+ {
+ ReadString( aRetval );
+ bDone = TRUE;
+ }
+ }
+ }
+ if ( bDone )
+ {
+ // ueberpruefen, ob diese Sound-Datei schon
+ // existiert. Wenn nicht, exportiere diese
+ // in unser lokales Sound-Verzeichnis.
+ BOOL bSoundExists = FALSE;
+ List* pSoundList = new List();
+ if ( pSoundList )
+ {
+ GalleryExplorer::FillObjList( GALLERY_THEME_SOUNDS, *pSoundList );
+ for( UINT16 a = 0; a < pSoundList->Count(); a++ )
+ {
+ INetURLObject aURL;
+ aURL.SetSmartURL( *(String*)pSoundList->GetObject( a ) );
+ String aSoundName( aURL.GetName() );
+ if ( aSoundName == aRetval )
+ {
+ aRetval = *(String*)pSoundList->GetObject( a );
+ bSoundExists = TRUE;
+ }
+ }
+ for ( void* pPtr = pSoundList->First(); pPtr; pPtr = pSoundList->Next() )
+ delete (String*)pPtr;
+ delete pSoundList;
+ }
+ if ( !bSoundExists )
+ {
+ rStCtrl.Seek( nPosMerk2 );
+ DffRecordHeader aSoundDataRecHd;
+ if ( SeekToRec( rStCtrl, PPT_PST_SoundData, nStrLen, &aSoundDataRecHd, 0 ) )
+ {
+ String aGalleryDir( SFX_INIMANAGER()->Get( SFX_KEY_GALLERY_DIR ) );
+ INetURLObject aGalleryUserSound;
+ aGalleryUserSound.SetSmartURL( aGalleryDir.GetToken( aGalleryDir.GetTokenCount( ';' ) - 1 ) );
+ aGalleryUserSound.Append( aRetval );
+ UINT32 nSoundLen = aSoundDataRecHd.nRecLen;
+ UINT8* pBuf = new UINT8[ nSoundLen ];
+ rStCtrl.Read( pBuf, nSoundLen );
+ SvFileStream aOStm( aGalleryUserSound.PathToFileName(), STREAM_WRITE | STREAM_TRUNC );
+ aOStm.Write( pBuf, nSoundLen );
+ UINT32 nFileError = aOStm.GetError();
+ aOStm.Close();
+ delete[] pBuf;
+ // Hat das Schreiben in die Gallery geklappt?
+ if ( nFileError == ERRCODE_NONE )
+ {
+ GalleryExplorer::InsertURL( GALLERY_THEME_SOUNDS, aGalleryUserSound.PathToFileName() );
+ aRetval = aGalleryUserSound.GetFull();
+ }
+ }
+ }
+ }
+ if ( !bDone )
+ aSoundRecHd.SeekToEndOfRecord( rStCtrl );
+ }
+ }
+ }
+ rStCtrl.Seek( nPosMerk );
+ return aRetval;
+}
+
+//////////////////////////////////////////////////////////////////////////
+//
+// Import von Objekten
+//
+//////////////////////////////////////////////////////////////////////////
+
+// Hilfsklasse zum Einlesen der PPT AnimationInfoAtom
+struct PptAnimationInfoAtom
+{
+ UINT32 nDimColor;
+ UINT32 nFlags; // 0x0004: Zeit statt Mausklick
+ UINT32 nSoundRef;
+ INT32 nDelayTime; // 1/1000stel Sekunden
+ UINT16 nOrderID;
+ UINT16 nSlideCount;
+ UINT8 nBuildType;
+ UINT8 nFlyMethod;
+ UINT8 nFlyDirection;
+ UINT8 nAfterEffect;
+ UINT8 nSubEffect;
+ UINT8 nOLEVerb;
+
+ // unknown, da Gesamtgroesse 28 ist
+ UINT8 nUnknown1;
+ UINT8 nUnknown2;
+
+public:
+ ::com::sun::star::presentation::AnimationEffect GetAnimationEffect(::com::sun::star::presentation::AnimationSpeed& rSpeed);
+ friend SvStream& operator>>(SvStream& rIn, PptAnimationInfoAtom& rAtom);
+};
+
+SvStream& operator>>(SvStream& rIn, PptAnimationInfoAtom& rAtom)
+{
+ rIn >> rAtom.nDimColor;
+ rIn >> rAtom.nFlags;
+ rIn >> rAtom.nSoundRef;
+ rIn >> rAtom.nDelayTime;
+ rIn >> rAtom.nOrderID;
+ rIn >> rAtom.nSlideCount;
+ rIn >> rAtom.nBuildType;
+ rIn >> rAtom.nFlyMethod;
+ rIn >> rAtom.nFlyDirection;
+ rIn >> rAtom.nAfterEffect;
+ rIn >> rAtom.nSubEffect;
+ rIn >> rAtom.nOLEVerb;
+ rIn >> rAtom.nUnknown1;
+ rIn >> rAtom.nUnknown2;
+ return rIn;
+}
+
+::com::sun::star::presentation::AnimationEffect PptAnimationInfoAtom::GetAnimationEffect( ::com::sun::star::presentation::AnimationSpeed& rSpeed )
+{
+ ::com::sun::star::presentation::AnimationEffect eRetval( ::com::sun::star::presentation::AnimationEffect_APPEAR );
+ if ( !nBuildType )
+ eRetval = ::com::sun::star::presentation::AnimationEffect_NONE;
+ else
+ {
+ switch ( nFlyMethod )
+ {
+ case 0x0:
+ eRetval = ::com::sun::star::presentation::AnimationEffect_APPEAR; // Erscheinen
+ break;
+ case 0x01:
+ eRetval = ::com::sun::star::presentation::AnimationEffect_RANDOM; // Random
+ break;
+ case 0x02: // Blinds Effekt
+ {
+ switch ( nFlyDirection )
+ {
+ case 0x0:
+ eRetval = ::com::sun::star::presentation::AnimationEffect_HORIZONTAL_LINES; // Horizontal
+ break;
+ case 0x1:
+ eRetval = ::com::sun::star::presentation::AnimationEffect_VERTICAL_LINES; // Vertical
+ break;
+ }
+ }
+ break;
+ case 0x03: // (hor/ver) versetzt Einblenden
+ {
+ switch ( nFlyDirection )
+ {
+ case 0x0:
+ eRetval = ::com::sun::star::presentation::AnimationEffect_WAVYLINE_FROM_LEFT; // vertikal
+ break;
+ case 0x1:
+ eRetval = ::com::sun::star::presentation::AnimationEffect_WAVYLINE_FROM_TOP; // horizontal
+ break;
+ }
+ }
+ break;
+ case 0x05:
+ eRetval = ::com::sun::star::presentation::AnimationEffect_DISSOLVE; // Aufloesen
+ break;
+ case 0x08: // (hor/ver) Linien
+ {
+ switch ( nFlyDirection )
+ {
+ case 0x0:
+ eRetval = ::com::sun::star::presentation::AnimationEffect_HORIZONTAL_LINES; // horizontal
+ break;
+ case 0x1:
+ eRetval = ::com::sun::star::presentation::AnimationEffect_VERTICAL_LINES; // vertikal
+ break;
+ }
+ }
+ break;
+ case 0x09: // Diagonal
+ {
+ switch ( nFlyDirection )
+ {
+ case 0x4:
+ eRetval = ::com::sun::star::presentation::AnimationEffect_FADE_FROM_LOWERRIGHT; // nach links oben
+ break;
+ case 0x5:
+ eRetval = ::com::sun::star::presentation::AnimationEffect_FADE_FROM_LOWERLEFT; // nach rechts oben
+ break;
+ case 0x6:
+ eRetval = ::com::sun::star::presentation::AnimationEffect_FADE_FROM_UPPERRIGHT; // nach links unten
+ break;
+ case 0x7:
+ eRetval = ::com::sun::star::presentation::AnimationEffect_FADE_FROM_UPPERLEFT; // nach rechts unten
+ break;
+ }
+ }
+ break;
+ case 0x0a: // rollen
+ {
+ switch ( nFlyDirection )
+ {
+ case 0x0:
+ eRetval = ::com::sun::star::presentation::AnimationEffect_FADE_FROM_RIGHT; // von rechts
+ break;
+ case 0x1:
+ eRetval = ::com::sun::star::presentation::AnimationEffect_FADE_FROM_BOTTOM; // von unten
+ break;
+ case 0x2:
+ eRetval = ::com::sun::star::presentation::AnimationEffect_FADE_FROM_LEFT; // von links
+ break;
+ case 0x3:
+ eRetval = ::com::sun::star::presentation::AnimationEffect_FADE_FROM_TOP; // von oben
+ break;
+ }
+ }
+ break;
+ case 0x0b: // (von aussen/innen) Einblenden
+ {
+ switch ( nFlyDirection )
+ {
+ case 0x0:
+ eRetval = ::com::sun::star::presentation::AnimationEffect_FADE_FROM_CENTER; // von innen
+ break;
+ case 0x1:
+ eRetval = ::com::sun::star::presentation::AnimationEffect_FADE_TO_CENTER; // von aussen
+ break;
+ }
+ }
+ break;
+ case 0x0c: // Text-Effekt
+ {
+ switch ( nFlyDirection )
+ {
+ case 0x0:
+ eRetval = ::com::sun::star::presentation::AnimationEffect_MOVE_FROM_LEFT;
+ break;
+ case 0x1:
+ eRetval = ::com::sun::star::presentation::AnimationEffect_MOVE_FROM_TOP;
+ break;
+ case 0x2:
+ eRetval = ::com::sun::star::presentation::AnimationEffect_MOVE_FROM_RIGHT;
+ break;
+ case 0x3:
+ eRetval = ::com::sun::star::presentation::AnimationEffect_MOVE_FROM_BOTTOM;
+ break;
+ case 0x4:
+ eRetval = ::com::sun::star::presentation::AnimationEffect_MOVE_FROM_LEFT; // von oben links
+ break;
+ case 0x5:
+ eRetval = ::com::sun::star::presentation::AnimationEffect_MOVE_FROM_TOP; // von oben rechts
+ break;
+ case 0x6:
+ eRetval = ::com::sun::star::presentation::AnimationEffect_MOVE_FROM_BOTTOM; // von unten links
+ break;
+ case 0x7:
+ eRetval = ::com::sun::star::presentation::AnimationEffect_MOVE_FROM_RIGHT; // von unten rechts
+ break;
+ case 0x8:
+ eRetval = ::com::sun::star::presentation::AnimationEffect_OPEN_HORIZONTAL; // verkürzt von links
+ break;
+ case 0x9:
+ eRetval = ::com::sun::star::presentation::AnimationEffect_OPEN_VERTICAL; // verkürzt von unten
+ break;
+ case 0xa:
+ eRetval = ::com::sun::star::presentation::AnimationEffect_OPEN_HORIZONTAL; // verkürzt von rechts
+ break;
+ case 0xb:
+ eRetval = ::com::sun::star::presentation::AnimationEffect_OPEN_VERTICAL; // verkürzt von oben
+ break;
+ case 0xc:
+ {
+ eRetval = ::com::sun::star::presentation::AnimationEffect_MOVE_FROM_LEFT; // langsam von links
+ rSpeed = ::com::sun::star::presentation::AnimationSpeed_SLOW;
+ }
+ break;
+ case 0xd:
+ {
+ eRetval = ::com::sun::star::presentation::AnimationEffect_MOVE_FROM_TOP; // langsam von oben
+ rSpeed = ::com::sun::star::presentation::AnimationSpeed_SLOW;
+ }
+ break;
+ case 0xe:
+ {
+ eRetval = ::com::sun::star::presentation::AnimationEffect_MOVE_FROM_RIGHT; // langsam von rechts
+ rSpeed = ::com::sun::star::presentation::AnimationSpeed_SLOW;
+ }
+ break;
+ case 0xf:
+ {
+ eRetval = ::com::sun::star::presentation::AnimationEffect_MOVE_FROM_BOTTOM; // langsam von unten
+ rSpeed = ::com::sun::star::presentation::AnimationSpeed_SLOW;
+ }
+ break;
+ case 0x10:
+ eRetval = ::com::sun::star::presentation::AnimationEffect_FADE_FROM_CENTER; // Vergroessern
+ break;
+ case 0x11:
+ eRetval = ::com::sun::star::presentation::AnimationEffect_FADE_FROM_CENTER; // etwas Vergroessern
+ break;
+ case 0x12:
+ eRetval = ::com::sun::star::presentation::AnimationEffect_FADE_TO_CENTER; // Verkleinern
+ break;
+ case 0x13:
+ eRetval = ::com::sun::star::presentation::AnimationEffect_FADE_TO_CENTER; // etwas Verkleinern
+ break;
+ case 0x14:
+ eRetval = ::com::sun::star::presentation::AnimationEffect_FADE_FROM_CENTER; // Vergroessern von Bildschirmmitte
+ break;
+ case 0x15:
+ eRetval = ::com::sun::star::presentation::AnimationEffect_FADE_TO_CENTER; // Verkleinern von unterem Bildschirm
+ break;
+ case 0x16:
+ {
+ eRetval = ::com::sun::star::presentation::AnimationEffect_OPEN_HORIZONTAL; // quer dehnen
+ rSpeed = ::com::sun::star::presentation::AnimationSpeed_SLOW;
+ }
+ break;
+ case 0x17:
+ eRetval = ::com::sun::star::presentation::AnimationEffect_OPEN_HORIZONTAL; // von links dehnen
+ break;
+ case 0x18:
+ eRetval = ::com::sun::star::presentation::AnimationEffect_OPEN_VERTICAL; // von oben dehnen
+ break;
+ case 0x19:
+ eRetval = ::com::sun::star::presentation::AnimationEffect_OPEN_HORIZONTAL; // von rechts dehnen
+ break;
+ case 0x1a:
+ eRetval = ::com::sun::star::presentation::AnimationEffect_OPEN_VERTICAL; // von unten dehnen
+ break;
+ case 0x1b:
+ eRetval = ::com::sun::star::presentation::AnimationEffect_CLOCKWISE; // Rotieren
+ break;
+ case 0x1c:
+ eRetval = ::com::sun::star::presentation::AnimationEffect_SPIRALOUT_LEFT; // Spirale
+ break;
+ }
+ }
+ break;
+ case 0x0d: // Schliessen/Oeffnen
+ {
+ switch ( nFlyDirection )
+ {
+ case 0x0:
+ eRetval = ::com::sun::star::presentation::AnimationEffect_OPEN_VERTICAL; // hor oeffnen
+ break;
+ case 0x1:
+ eRetval = ::com::sun::star::presentation::AnimationEffect_CLOSE_VERTICAL; // hor schliessen
+ break;
+ case 0x2:
+ eRetval = ::com::sun::star::presentation::AnimationEffect_OPEN_HORIZONTAL; // vert oeffnen
+ break;
+ case 0x3:
+ eRetval = ::com::sun::star::presentation::AnimationEffect_CLOSE_HORIZONTAL; // vert schliessen
+ break;
+ }
+ }
+ break;
+ case 0x0e: // Blinken, danach unsichtbar
+ {
+ if( !nAfterEffect )
+ nAfterEffect = 3;
+ switch ( nFlyDirection )
+ {
+ case 0x0:
+ rSpeed = ::com::sun::star::presentation::AnimationSpeed_FAST; // schnell
+ break;
+ case 0x1:
+ rSpeed = ::com::sun::star::presentation::AnimationSpeed_MEDIUM; // mittel
+ break;
+ case 0x2:
+ rSpeed = ::com::sun::star::presentation::AnimationSpeed_SLOW; // langsam
+ break;
+ }
+ }
+ break;
+ }
+ }
+ return eRetval;
+}
+
+void SdPPTImport::FillSdAnimationInfo( SdAnimationInfo* pInfo, PptInteractiveInfoAtom* pIAtom, String aMacroName )
+{
+ // Lokale Informationen in pInfo eintragen
+ if( pIAtom->nSoundRef )
+ {
+ pInfo->aBookmark = ReadSound( pIAtom->nSoundRef ); // Pfad zum Soundfile in MSDOS-Notation
+ pInfo->eClickAction = ::com::sun::star::presentation::ClickAction_SOUND; // RunProgramAction
+ }
+// if ( nFlags & 0x01 ) // koennen wir nicht ( beim Anklicken markieren )
+ switch ( pIAtom->nAction )
+ {
+// case 0x01 : // MacroAction
+// {
+// pInfo->eClickAction = ::com::sun::star::presentation::::com::sun::star::presentation::ClickAction_MACRO;
+// // aMacro liegt in folgender Form vor:
+// // "Macroname.Modulname.Libname.Dokumentname" oder
+// // "Macroname.Modulname.Libname.Applikationsname"
+// pInfo->aBookmark = aMacroName;
+// }
+// break;
+ case 0x02 : // RunProgramAction
+ {
+ pInfo->eClickAction = ::com::sun::star::presentation::ClickAction_PROGRAM;
+ pInfo->aBookmark = aMacroName; // Programmname in aBookmark
+ }
+ break;
+ case 0x03 : // JumpAction
+ {
+ switch( pIAtom->nJump )
+ {
+ case 0x01 :
+ pInfo->eClickAction = ::com::sun::star::presentation::ClickAction_NEXTPAGE; // Next slide
+ break;
+ case 0x02 :
+ pInfo->eClickAction = ::com::sun::star::presentation::ClickAction_PREVPAGE; // Previous slide
+ break;
+ case 0x03 :
+ pInfo->eClickAction = ::com::sun::star::presentation::ClickAction_FIRSTPAGE; // First slide
+ break;
+ case 0x04 :
+ pInfo->eClickAction = ::com::sun::star::presentation::ClickAction_LASTPAGE; // last Slide
+ break;
+ case 0x05 :
+ pInfo->eClickAction = ::com::sun::star::presentation::ClickAction_PREVPAGE; // Last slide viewed
+ break;
+ case 0x06 :
+ pInfo->eClickAction = ::com::sun::star::presentation::ClickAction_STOPPRESENTATION; // End show
+ break;
+ default :
+ pInfo->eClickAction = ::com::sun::star::presentation::ClickAction_NONE; // 0x00: no action, else unknown
+ break;
+ }
+ }
+ break;
+ case 0x04 :
+ {
+ SdHyperlinkEntry* pPtr;
+ for ( pPtr = (SdHyperlinkEntry*)aHyperList.First(); pPtr; pPtr = (SdHyperlinkEntry*)aHyperList.Next() )
+ {
+ if ( pPtr->nIndex == pIAtom->nExHyperlinkId )
+ break;
+ }
+ if ( pPtr )
+ {
+ switch( pIAtom->nHyperlinkType )
+ {
+ case 9:
+ case 10:
+ break;
+ case 8: // hyperlink : URL
+ {
+ if ( pPtr->aTarget.Len() )
+ {
+ pInfo->aBookmark = String( pPtr->aTarget );
+ pInfo->eClickAction = ::com::sun::star::presentation::ClickAction_DOCUMENT;
+ }
+ }
+ break;
+ case 7: // hyperlink auf eine Seite
+ {
+ if ( pPtr->aSubAdress.Len() )
+ {
+ UINT32 nPageNumber = 0;
+ String aString( pPtr->aSubAdress );
+ String aStringAry[ 3 ];
+
+ USHORT nTokenCount = aString.GetTokenCount( ',' );
+ if ( nTokenCount > 3 )
+ nTokenCount = 3;
+ USHORT nIndex, nLtT = 0;
+ for ( USHORT i = 0; i < nTokenCount; i++ )
+ {
+ nIndex = aString.Search( sal_Unicode(','), nLtT );
+ if ( nIndex == STRING_NOTFOUND )
+ {
+ if ( nLtT < aString.Len() )
+ aStringAry[ i ] = UniString( aString, nLtT, aString.Len() - nLtT );
+ break;
+ }
+ if ( nLtT < nIndex )
+ aStringAry[ i ] = UniString( aString, nLtT, nIndex - nLtT );
+ nLtT = nIndex + 1;
+ }
+ BOOL bPageByName = FALSE;
+ for ( INT32 j = nTokenCount - 1; !bPageByName && ( j >= 0 ); j-- )
+ {
+ const String* pString = &aStringAry[ i ];
+ for ( void* pPtr = aSlideNameList.First(); pPtr; pPtr = aSlideNameList.Next() )
+ {
+ if ( *(String*)pPtr == *pString )
+ {
+ nPageNumber = aSlideNameList.GetCurPos() + 1;
+ bPageByName = TRUE;
+ break;
+ }
+ }
+ }
+ if ( !bPageByName )
+ {
+ for ( i = 0; i < nTokenCount; i++ )
+ {
+ if ( ByteString( aStringAry[ i ], gsl_getSystemTextEncoding() ).IsNumericAscii() )
+ {
+ for ( INT32 j = 0; j < aStringAry[ i ].Len(); j++ )
+ {
+ nPageNumber *= 10;
+ nPageNumber += aString.GetChar( j ) - '0';
+ }
+ if ( nPageNumber &~ 0xff ) // then we assume that this is the pageID,
+ {
+ PptSlidePersistList* pPageList = GetPageList( PPT_SLIDEPAGE );
+ if ( pPageList )
+ {
+ USHORT nPage = pPageList->FindPage( nPageNumber );
+ if ( nPage != PPTSLIDEPERSIST_ENTRY_NOTFOUND )
+ nPageNumber = nPage + 1;
+ }
+ }
+ break;
+ }
+ }
+ }
+ if ( nPageNumber && ( nPageNumber > aSlideNameList.Count() ) )
+ {
+ SdPage* pPage = pSdPPTImportData->pDoc->GetSdPage( 0, PK_STANDARD );
+ if ( pPage )
+ {
+ String aName( pPage->GetName() );
+ USHORT nLen = aName.Len();
+ while( --nLen && ( ( aName.GetChar( nLen ) >= '0' ) && ( aName.GetChar( nLen ) <= '9' ) ) )
+ aName.Erase( nLen );
+ if ( aName.Len() )
+ {
+ pInfo->aBookmark = aName;
+ pInfo->aBookmark += String::CreateFromInt32( (sal_Int32)nPageNumber ); // sal_uInt32 -> sal_Int32 !
+ pInfo->eClickAction = ::com::sun::star::presentation::ClickAction_BOOKMARK;
+ }
+ }
+ }
+ else
+ {
+ pInfo->aBookmark = *(String*)aSlideNameList.GetObject( nPageNumber - 1 );
+ pInfo->eClickAction = ::com::sun::star::presentation::ClickAction_BOOKMARK;
+ }
+ }
+ }
+ break;
+ }
+ }
+ }
+ break;
+ case 0x05 : // OLEAction ( OLEVerb to use, 0==first, 1==secnd, .. )
+ case 0x06 : // MediaAction
+ case 0x07 : // CustomShowAction
+ default : // 0x00: no action, else unknown action
+ break;
+ }
+}
+
+void SdPPTImport::FillSdAnimationInfo( SdAnimationInfo* pInfo, PptAnimationInfoAtom* pAnim )
+{
+ // Lokale Informationen in pInfo eintragen
+ // Praesentationsreihenfolge; diese wird
+ // eventuell (falls alle gleich sind) noch in
+ // ImportPage() korrigiert
+
+ pInfo->aBlueScreen = Color( (BYTE)1, (BYTE)2, (BYTE)3 ); // ppt does not have transparent objects, but we
+ // have to set a color. ( this color is rarely used )
+ pInfo->nPresOrder = pAnim->nOrderID;
+ pInfo->nVerb = pAnim->nOLEVerb; // fuer OLE-Objekt
+ pInfo->eSpeed = ::com::sun::star::presentation::AnimationSpeed_MEDIUM; // Geschwindigkeit der Animation
+ pInfo->eEffect = pAnim->GetAnimationEffect( pInfo->eSpeed ); // Animationseffekt
+ pInfo->bDimPrevious = FALSE; // Objekt abblenden
+ pInfo->aDimColor = Color(COL_WHITE); // Default-Ausblendfarbe auf weiss
+
+ if( pAnim->nSoundRef && ( pAnim->nFlags & 0x0010 ) ) // Sound
+ {
+ pInfo->bSoundOn = TRUE; // Sound ist an
+ pInfo->aSoundFile = ReadSound( pAnim->nSoundRef ); // Pfad zum Soundfile in MSDOS-Notation
+ }
+ else
+ pInfo->bSoundOn = FALSE; // Sound ist aus
+
+ if( pAnim->nFlags & 0x0040 )
+ pInfo->bPlayFull = FALSE; // Sound des vorherigen Objektes abbrechen
+ else
+ pInfo->bPlayFull = TRUE;
+
+// if ( nFlags & 4 ) // mouse over effect after nDelayTime ( not supported )
+ if ( pInfo->eEffect != ::com::sun::star::presentation::AnimationEffect_NONE )
+ {
+ switch ( pAnim->nAfterEffect )
+ {
+ case 1 : // zur Farbe in nDimColor ausblenden
+ {
+ pInfo->bDimPrevious = TRUE; // Objekt abblenden
+ pInfo->bDimHide = FALSE; // verstecken statt abblenden
+ pInfo->aDimColor = pAnim->nDimColor; // zum Abblenden des Objekts
+ }
+ break;
+ case 2 : // Beim naechsten Mausklick ausblenden
+ {
+ pSdPPTImportData->ePresChange = PRESCHANGE_MANUAL;
+ pInfo->bDimHide = TRUE; // verstecken statt abblenden
+ }
+ break;
+ case 3 : // Nach Animation ausblenden
+ pInfo->bDimHide = TRUE; // verstecken statt abblenden
+ break;
+ default :
+ pInfo->bDimHide = FALSE; // verstecken statt abblenden
+ break;
+ }
+ }
+ if ( pAnim->nBuildType > 1 ) // texteffect active ( paragraph grouping level )
+ {
+ pInfo->eTextEffect = pInfo->eEffect;
+ if ( ! ( pAnim->nFlags & 0x4000 ) )
+ { // Verknuepfte Form animieren aus
+// switch ( pAnim->nSubEffect )
+// {
+// case 0 : // Text einfuehren - Paragraphweise
+// case 1 : // Text einfuehren - Wortweise
+// case 2 : // Text einfuehren - Zeichenweise
+// }
+ if ( pInfo->eTextEffect != ::com::sun::star::presentation::AnimationEffect_NONE )
+ pInfo->eEffect = ::com::sun::star::presentation::AnimationEffect_APPEAR;
+ }
+ }
+ else
+ pInfo->eTextEffect = ::com::sun::star::presentation::AnimationEffect_NONE;
+
+// if ( nFlags & 1 ) // Koennen wir nicht: In umgekehrter Reihenfolge an
+}
+
+SdrObject* SdPPTImport::ApplyTextObj( PPTTextObj* pTextObj, SdrTextObj* pObj, SdPage* pPage, SfxStyleSheet* pSheet ) const
+{
+ SdDrawDocument* pDoc = pSdPPTImportData->pDoc;
+ SdrTextObj* pText = pObj;
+ SdrObject* pRet = pText;
+ PresObjKind ePresKind = PRESOBJ_NONE;
+ PptOEPlaceholderAtom* pPlaceHolder = pTextObj->GetOEPlaceHolderAtom();
+ switch ( pTextObj->GetInstance() )
+ {
+ case TSS_TYPE_PAGETITLE :
+ case TSS_TYPE_TITLE :
+ {
+ ePresKind = PRESOBJ_TITLE;
+ pSheet = pPage->GetStyleSheetForPresObj( ePresKind );
+ if ( pSheet )
+ ((SdrAttrObj*)pText)->SdrAttrObj::NbcSetStyleSheet( pSheet, TRUE );
+ DBG_ASSERT( pSheet, "SdPPTImport::ApplyTextObj -> could not get stylesheet for titleobject (SJ)" );
+ }
+ break;
+ case TSS_TYPE_SUBTITLE :
+ {
+ ePresKind = PRESOBJ_TEXT;
+ pSheet = pPage->GetStyleSheetForPresObj( ePresKind );
+ if ( pSheet )
+ ((SdrAttrObj*)pText)->SdrAttrObj::NbcSetStyleSheet( pSheet, TRUE );
+ DBG_ASSERT( pSheet, "SdPPTImport::ApplyTextObj -> could not get stylesheet for subtitleobject (SJ)" );
+ }
+ break;
+ case TSS_TYPE_BODY :
+ case TSS_TYPE_HALFBODY :
+ case TSS_TYPE_QUARTERBODY :
+ {
+ ePresKind = PRESOBJ_OUTLINE;
+ for ( UINT16 nLevel = 9; nLevel; nLevel-- )
+ {
+ String aName( pPage->GetLayoutName() );
+ aName.Append( (sal_Unicode)( ' ' ) );
+ aName.Append( String::CreateFromInt32( nLevel ) );
+ pSheet = (SfxStyleSheet*)pDoc->GetStyleSheetPool()->Find( aName, SD_LT_FAMILY );
+ if ( pSheet )
+ pText->StartListening( *pSheet );
+ }
+ DBG_ASSERT( pSheet, "SdPPTImport::ApplyTextObj -> could not get stylesheet for outlinerobject (SJ)" );
+ if ( pSheet )
+ ((SdrAttrObj*)pText)->SdrAttrObj::NbcSetStyleSheet( pSheet, TRUE );
+ }
+ break;
+ case TSS_TYPE_NOTES :
+ {
+ ePresKind = PRESOBJ_NOTES;
+ if ( pPlaceHolder && ( ( pPlaceHolder->nPlaceholderId == PPT_PLACEHOLDER_NOTESSLIDEIMAGE )
+ || ( pPlaceHolder->nPlaceholderId == PPT_PLACEHOLDER_MASTERNOTESSLIDEIMAGE ) ) )
+ {
+ ePresKind = PRESOBJ_TITLE;
+ pSheet = pPage->GetStyleSheetForPresObj( ePresKind );
+ if ( pSheet )
+ ((SdrAttrObj*)pText)->SdrAttrObj::NbcSetStyleSheet( pSheet, TRUE );
+ DBG_ASSERT( pSheet, "SdPPTImport::ApplyTextObj -> could not get stylesheet for titleobject (SJ)" );
+ }
+ else
+ {
+ pSheet = pPage->GetStyleSheetForPresObj( ePresKind );
+ DBG_ASSERT( pSheet, "SdPPTImport::ApplyTextObj -> could not get stylesheet for notesobj (SJ)" );
+ if ( pSheet )
+ ((SdrAttrObj*)pText)->SdrAttrObj::NbcSetStyleSheet( pSheet, TRUE );
+ }
+ }
+ break;
+ case TSS_TYPE_UNUSED :
+ case TSS_TYPE_TEXT_IN_SHAPE :
+ pSheet = (SfxStyleSheet*)pDoc->GetStyleSheetPool()->Find( String(SdResId( STR_STANDARD_STYLESHEET_NAME )), SFX_STYLE_FAMILY_PARA );
+ break;
+ }
+ pText = (SdrTextObj*)SdrPowerPointImport::ApplyTextObj( pTextObj, pText, pPage, pSheet );
+ if ( pPlaceHolder && pPlaceHolder->nPlaceholderId )
+ {
+ if ( eAktPageKind == PPT_MASTERPAGE )
+ {
+ if ( ePresKind != PRESOBJ_NONE )
+ {
+ if ( pTextObj->GetInstance() != TSS_TYPE_SUBTITLE )
+ {
+ pText->SetNotVisibleAsMaster( TRUE );
+ pText->SetEmptyPresObj( TRUE );
+ // if ( pPlaceHolder->nPlaceholderId == PPT_PLACEHOLDER_MASTERNOTESSLIDEIMAGE )
+ // ePresKind = PRESOBJ_TITLE;
+ String aString( pPage->GetPresObjText( ePresKind ) );
+ pText->SetUserCall( pPage );
+ pPage->GetPresObjList()->Insert( pText, LIST_APPEND );
+ SdrOutliner* pOutl = NULL;
+ if ( pTextObj->GetInstance() == TSS_TYPE_NOTES )
+ pOutl = GetDrawOutliner( pText );
+ pPage->SetObjText( (SdrTextObj*)pText, pOutl, ePresKind, aString);
+ pText->NbcSetStyleSheet( pPage->GetStyleSheetForPresObj( ePresKind ), TRUE );
+ SfxItemSet aTempAttr( pDoc->GetPool() );
+ SdrTextMinFrameHeightItem aMinHeight( pText->GetLogicRect().GetSize().Height() );
+ aTempAttr.Put( aMinHeight );
+ SdrTextAutoGrowHeightItem aAutoGrowHeight( FALSE );
+ aTempAttr.Put( aAutoGrowHeight );
+ pText->NbcSetAttributes( aTempAttr, FALSE );
+ }
+ else
+ {
+ pRet = NULL;
+ }
+ }
+ }
+ else
+ {
+ const PptSlideLayoutAtom* pSlideLayout = GetSlideLayoutAtom();
+ if ( pSlideLayout || ( eAktPageKind == PPT_NOTEPAGE ) )
+ {
+ INT16 nPlaceholderId = pPlaceHolder->nPlaceholderId;
+ UINT16 i = 0;
+ if ( eAktPageKind == PPT_SLIDEPAGE )
+ {
+ for ( ; i < 8; i++ )
+ {
+ if ( pSlideLayout->aPlaceholderId[ i ] == nPlaceholderId )
+ break;
+ }
+ }
+ if ( i < 8 )
+ {
+ PresObjKind ePresObjKind = PRESOBJ_NONE;
+ BOOL bEmptyPresObj = TRUE;
+ if ( ( pTextObj->GetShapeType() == mso_sptRectangle ) || ( pTextObj->GetShapeType() == mso_sptTextBox ) )
+ {
+ if ( pTextObj->Count() )
+ bEmptyPresObj = FALSE;
+ switch ( nPlaceholderId )
+ {
+ case PPT_PLACEHOLDER_NOTESBODY : ePresObjKind = PRESOBJ_NOTES; break;
+ case PPT_PLACEHOLDER_TITLE : ePresObjKind = PRESOBJ_TITLE; break;
+ case PPT_PLACEHOLDER_BODY : ePresObjKind = PRESOBJ_OUTLINE; break;
+ case PPT_PLACEHOLDER_CENTEREDTITLE :ePresObjKind = PRESOBJ_TITLE; break;
+ case PPT_PLACEHOLDER_SUBTITLE : ePresObjKind = PRESOBJ_TEXT; break; // PRESOBJ_OUTLINE
+
+ default :
+ {
+ if ( !pTextObj->Count() )
+ {
+ switch ( nPlaceholderId )
+ {
+ case PPT_PLACEHOLDER_MEDIACLIP :
+ case PPT_PLACEHOLDER_OBJECT : ePresObjKind = PRESOBJ_OBJECT; break;
+ case PPT_PLACEHOLDER_GRAPH : ePresObjKind = PRESOBJ_CHART; break;
+ case PPT_PLACEHOLDER_TABLE : ePresObjKind = PRESOBJ_TABLE; break;
+ case PPT_PLACEHOLDER_CLIPART : ePresObjKind = PRESOBJ_GRAPHIC; break;
+ case PPT_PLACEHOLDER_ORGANISZATIONCHART : ePresObjKind = PRESOBJ_ORGCHART; break;
+ }
+ }
+ };
+ }
+ }
+ else if ( pTextObj->GetShapeType() == mso_sptPictureFrame )
+ {
+ if ( !pTextObj->Count() && pObj->ISA( SdrGrafObj ) )
+ {
+ bEmptyPresObj = FALSE;
+ switch ( nPlaceholderId )
+ {
+ case PPT_PLACEHOLDER_MEDIACLIP :
+ case PPT_PLACEHOLDER_OBJECT : ePresObjKind = PRESOBJ_OBJECT; break;
+ case PPT_PLACEHOLDER_GRAPH : ePresObjKind = PRESOBJ_CHART; break;
+ case PPT_PLACEHOLDER_TABLE : ePresObjKind = PRESOBJ_TABLE; break;
+ case PPT_PLACEHOLDER_CLIPART : ePresObjKind = PRESOBJ_GRAPHIC; break;
+ case PPT_PLACEHOLDER_ORGANISZATIONCHART : ePresObjKind = PRESOBJ_ORGCHART; break;
+ }
+ }
+ }
+ if ( ePresObjKind != PRESOBJ_NONE )
+ {
+ if ( !bEmptyPresObj )
+ {
+ List* pPresObjList = pPage->GetPresObjList();
+ pPresObjList->Insert( pRet );
+ }
+ else
+ {
+ SdrObject* pPresObj = pPage->CreatePresObj( ePresObjKind, pText->GetLogicRect(), TRUE );
+ pPresObj->SetUserCall( pPage );
+
+ SfxItemSet aSet( pSdrModel->GetItemPool() );
+ ApplyAttributes( rStCtrl, aSet, pPresObj );
+ pPresObj->NbcSetAttributes( aSet, FALSE );
+
+ if ( ( eAktPageKind != PPT_NOTEPAGE ) && ( pSlideLayout->aPlacementId[ i ] != -1 ) )
+ {
+ SdrObject* pTitleObj = ((SdPage*)pPage->GetMasterPage(0))->GetPresObj( PRESOBJ_TITLE );
+ SdrObject* pOutlineObj = ((SdPage*)pPage->GetMasterPage(0))->GetPresObj( PRESOBJ_OUTLINE );
+
+ Rectangle aTitleRect;
+ Rectangle aOutlineRect;
+ Size aOutlineSize;
+
+ if ( pTitleObj )
+ aTitleRect = pTitleObj->GetLogicRect();
+ if ( pOutlineObj )
+ {
+ aOutlineRect = pOutlineObj->GetLogicRect();
+ aOutlineSize = aOutlineRect.GetSize();
+ }
+ Rectangle aLogicRect( pPresObj->GetLogicRect() );
+ Size aLogicSize( aLogicRect.GetSize() );
+
+ switch ( pSlideLayout->aPlacementId[ i ] )
+ {
+ case 0 : // Lage im Titelbereich
+ {
+ if ( aLogicRect != aTitleRect )
+ pPresObj->SetUserCall( NULL );
+ }
+ break;
+
+ case 1:
+ {
+ if ( pSlideLayout->eLayout == PPT_LAYOUT_TITLEANDBODYSLIDE )
+ { // Lage im Outlinebereich
+ if ( aLogicRect != aOutlineRect )
+ pPresObj->SetUserCall( NULL );
+ }
+ else if ( pSlideLayout->eLayout == PPT_LAYOUT_2COLUMNSANDTITLE )
+ { // Lage im Outlinebereich links
+ if (Abs(aLogicRect.Left() - aOutlineRect.Left()) > MAX_USER_MOVE ||
+ Abs(aLogicRect.Top() - aOutlineRect.Top()) > MAX_USER_MOVE ||
+ Abs(aLogicRect.Bottom() - aOutlineRect.Bottom()) > MAX_USER_MOVE ||
+ aLogicSize.Width() / aOutlineSize.Width() < 0.48 ||
+ aLogicSize.Width() / aOutlineSize.Width() > 0.5)
+ {
+ pPresObj->SetUserCall(NULL);
+ }
+ }
+ else if ( pSlideLayout->eLayout == PPT_LAYOUT_2ROWSANDTITLE )
+ { // Lage im Outlinebereich oben
+ if (Abs(aLogicRect.Left() - aOutlineRect.Left()) > MAX_USER_MOVE ||
+ Abs(aLogicRect.Top() - aOutlineRect.Top()) > MAX_USER_MOVE ||
+ Abs(aLogicRect.Right() - aOutlineRect.Right()) > MAX_USER_MOVE)
+ {
+ pPresObj->SetUserCall( NULL );
+ }
+ }
+ else if (Abs(aLogicRect.Left() - aOutlineRect.Left()) > MAX_USER_MOVE ||
+ Abs(aLogicRect.Top() - aOutlineRect.Top()) > MAX_USER_MOVE)
+ { // Lage im Outlinebereich links oben
+ pPresObj->SetUserCall( NULL );
+ }
+ }
+ break;
+
+ case 2:
+ {
+ if ( pSlideLayout->eLayout == PPT_LAYOUT_2COLUMNSANDTITLE )
+ { // Lage im Outlinebereich rechts
+ if (Abs(aLogicRect.Right() - aOutlineRect.Right()) > MAX_USER_MOVE ||
+ Abs(aLogicRect.Top() - aOutlineRect.Top()) > MAX_USER_MOVE ||
+ Abs(aLogicRect.Bottom() - aOutlineRect.Bottom()) > MAX_USER_MOVE ||
+ aLogicSize.Width() / aOutlineSize.Width() < 0.48 ||
+ aLogicSize.Width() / aOutlineSize.Width() > 0.5)
+ {
+ pPresObj->SetUserCall( NULL );
+ }
+ }
+ else if ( pSlideLayout->eLayout == PPT_LAYOUT_2ROWSANDTITLE )
+ { // Lage im Outlinebereich unten
+ if (Abs(aLogicRect.Left() - aOutlineRect.Left()) > MAX_USER_MOVE ||
+ Abs(aLogicRect.Bottom() - aOutlineRect.Bottom()) > MAX_USER_MOVE ||
+ Abs(aLogicRect.Right() - aOutlineRect.Right()) > MAX_USER_MOVE)
+ {
+ pPresObj->SetUserCall( NULL );
+ }
+ }
+ else if (Abs(aLogicRect.Right() - aOutlineRect.Right()) > MAX_USER_MOVE ||
+ Abs(aLogicRect.Top() - aOutlineRect.Top()) > MAX_USER_MOVE)
+ { // Lage im Outlinebereich rechts oben
+ pPresObj->SetUserCall(NULL);
+ }
+ }
+ break;
+
+ case 3:
+ { // Lage im Outlinebereich links unten
+ if (Abs(aLogicRect.Left() - aOutlineRect.Left()) > MAX_USER_MOVE ||
+ Abs(aLogicRect.Bottom() - aOutlineRect.Bottom()) > MAX_USER_MOVE)
+ {
+ pPresObj->SetUserCall( NULL );
+ }
+ }
+ break;
+
+ case 4:
+ { // Lage im Outlinebereich rechts unten
+ if (Abs(aLogicRect.Right() - aOutlineRect.Right()) > MAX_USER_MOVE ||
+ Abs(aLogicRect.Bottom() - aOutlineRect.Bottom()) > MAX_USER_MOVE)
+ {
+ pObj->SetUserCall( NULL );
+ }
+ }
+ break;
+ }
+ }
+ pRet = NULL; // return zero cause this obj was already inserted by CreatePresObj
+ }
+ }
+ else if ( !pTextObj->Count() )
+ pRet = NULL;
+ }
+ }
+ }
+ }
+ if ( pRet != pText )
+ delete (SdrObject*)pText;
+ return pRet;
+}
+
+SdrObject* SdPPTImport::ProcessObj( SvStream& rSt, DffObjData& rObjData, void* pData, Rectangle& rTextRect, SdrObject* pRet )
+{
+ SdDrawDocument* pDoc = pSdPPTImportData->pDoc;
+ SdrObject* pObj = SdrPowerPointImport::ProcessObj( rSt, rObjData, pData, rTextRect, pRet );
+ // Animationseffekte des Objektes lesen
+ if ( pObj )
+ {
+ BOOL bInhabitanceChecked = FALSE;
+ BOOL bAnimationInfoFound = FALSE;
+ DffRecordHeader aMasterShapeHd;
+
+ PptSlidePersistEntry& rEntry = ((ProcessData*)pData)->rPersistEntry;
+ if ( maShapeRecords.SeekToContent( rSt, DFF_msofbtClientData, SEEK_FROM_CURRENT_AND_RESTART ) )
+ {
+ DffRecordHeader& rHdClientData = *maShapeRecords.Current();
+ while( TRUE )
+ {
+ UINT32 nClientDataLen = rHdClientData.GetRecEndFilePos();
+ DffRecordHeader aHd;
+ do
+ {
+ rSt >> aHd;
+ UINT32 nHdRecEnd = aHd.GetRecEndFilePos();
+ switch ( aHd.nRecType )
+ {
+ case PPT_PST_AnimationInfo :
+ {
+ DffRecordHeader aHdAnimInfoAtom;
+ if ( SeekToRec( rSt, PPT_PST_AnimationInfoAtom, nHdRecEnd, &aHdAnimInfoAtom ) )
+ {
+ // Daten holen
+ PptAnimationInfoAtom aAnimationInfo;
+ rSt >> aAnimationInfo;
+
+ // Farbe aufloesen nach RGB
+ aAnimationInfo.nDimColor = MSO_CLR_ToColor(aAnimationInfo.nDimColor).GetColor();
+
+ SdrObject* pEffObj = pObj;
+ if ( ( !rObjData.nCalledByGroup ) && pObj->ISA( SdrObjGroup ) )
+ {
+ if ( aAnimationInfo.nBuildType > 1 ) // ( ( aAnimationInfo.nFlags & 0x4000 ) == 0 )
+ { // if texteffect is used, we will split this groupobject later
+ SdrObjList* pObjectList = ((SdrObjGroup*)pObj)->GetSubList();
+ if ( pObjectList )
+ {
+ if ( pObjectList->GetObjCount() == 2 )
+ {
+ pEffObj = pObjectList->GetObj( 1 );
+ ((ProcessData*)pData)->nGroupingFlags = 1;
+ }
+ }
+ }
+ }
+ // Objekt ist animiert
+ SdAnimationInfo* pInfo = pDoc->GetAnimationInfo( pEffObj );
+ if( !pInfo )
+ pInfo = new SdAnimationInfo( pDoc );
+ ( (SdPPTImport*) this )->FillSdAnimationInfo( pInfo, &aAnimationInfo );
+
+ if ( pInfo->eEffect == ::com::sun::star::presentation::AnimationEffect_NONE )
+ delete pInfo;
+ else
+ { // transparency color: ppt does not support one, so a not used color is to set
+ // ( #71012# on badly configured systems only 16 system colors are available, so
+ // get the standard palette by temporarly create a 4Bit depth Bitmap );
+ Color aBlueScreen( 0x00, 0xff, 0xff );
+ Bitmap aBitmap( Size( 1, 1 ), 4 );
+ BitmapReadAccess* pAcc = aBitmap.AcquireReadAccess();
+ if ( pAcc )
+ {
+ UINT16 i;
+ BitmapColor aForegroundColor( pAcc->GetBestMatchingColor( MSO_CLR_ToColor( GetPropertyValue( DFF_Prop_fillColor, COL_WHITE ) ) ) );
+ BitmapColor aBackgroundColor( pAcc->GetBestMatchingColor( MSO_CLR_ToColor( GetPropertyValue( DFF_Prop_fillBackColor, COL_WHITE ) ) ) );
+ BitmapColor aLineColor( pAcc->GetBestMatchingColor( MSO_CLR_ToColor( GetPropertyValue( DFF_Prop_lineColor, 0 ) ) ) );
+ BitmapColor aLineBackColor( pAcc->GetBestMatchingColor( MSO_CLR_ToColor( GetPropertyValue( DFF_Prop_lineBackColor, 0 ) ) ) );
+
+ for ( i = 5; i < 9; i++ )
+ {
+ if ( pAcc->GetPaletteColor( i ) == aForegroundColor )
+ continue;
+ if ( pAcc->GetPaletteColor( i ) == aBackgroundColor )
+ continue;
+ if ( pAcc->GetPaletteColor( i ) == aLineColor )
+ continue;
+ if ( pAcc->GetPaletteColor( i ) != aLineBackColor )
+ break;
+ }
+ aBlueScreen = pAcc->GetPaletteColor( i );
+ aBitmap.ReleaseAccess( pAcc );
+ }
+ if ( !bInhabitanceChecked ) // be sure that the master effects comes
+ pInfo->nPresOrder |= 0x80000000; // first by setting the highest presorder bit
+
+ pInfo->aBlueScreen = aBlueScreen;
+ pEffObj->InsertUserData( pInfo );
+ }
+ bAnimationInfoFound = TRUE;
+ }
+ }
+ break;
+ case PPT_PST_InteractiveInfo:
+ {
+ UINT32 nFilePosMerk2 = rSt.Tell();
+ String aMacroName;
+
+ if(SeekToRec( rSt, PPT_PST_CString, nHdRecEnd, NULL, 0 ) )
+ ReadString(aMacroName);
+
+ rSt.Seek( nFilePosMerk2 );
+ DffRecordHeader aHdInteractiveInfoAtom;
+ if ( SeekToRec( rSt, PPT_PST_InteractiveInfoAtom, nHdRecEnd, &aHdInteractiveInfoAtom ) )
+ {
+ PptInteractiveInfoAtom aInteractiveInfoAtom;
+ rSt >> aInteractiveInfoAtom;
+
+ // interactive object
+ SdAnimationInfo* pInfo = pDoc->GetAnimationInfo(pObj);
+ if( !pInfo )
+ {
+ pInfo = new SdAnimationInfo( pDoc );
+ pObj->InsertUserData( pInfo );
+ }
+ ( (SdPPTImport*) this )->FillSdAnimationInfo( pInfo, &aInteractiveInfoAtom, aMacroName );
+ }
+ break;
+ }
+ }
+ aHd.SeekToEndOfRecord( rSt );
+ }
+ while( ( rSt.GetError() == 0 ) && ( rSt.Tell() < nClientDataLen ) );
+
+ if ( bInhabitanceChecked || bAnimationInfoFound )
+ break;
+ bInhabitanceChecked = TRUE;
+ if ( ! ( IsProperty( DFF_Prop_hspMaster ) && SeekToShape( rSt, pData, GetPropertyValue( DFF_Prop_hspMaster ) ) ) )
+ break;
+ rSt >> aMasterShapeHd;
+ if ( !SeekToRec( rSt, DFF_msofbtClientData, aMasterShapeHd.GetRecEndFilePos(), &aMasterShapeHd ) )
+ break;
+ aMasterShapeHd.SeekToContent( rSt );
+ rHdClientData = aMasterShapeHd;
+ }
+ }
+ }
+ return pObj;
+}
+
+
diff --git a/sd/source/filter/propread.cxx b/sd/source/filter/propread.cxx
new file mode 100644
index 000000000000..cbb6a8664766
--- /dev/null
+++ b/sd/source/filter/propread.cxx
@@ -0,0 +1,648 @@
+/*************************************************************************
+ *
+ * $RCSfile: propread.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:45 $
+ *
+ * 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 _PROPREAD_HXX_
+#include
+#endif
+#ifndef _BIGINT_HXX
+#include
+#endif
+
+// ------------------------------------------------------------------------
+
+struct PropEntry
+{
+ UINT32 mnId;
+ UINT32 mnSize;
+ BYTE* mpBuf;
+
+ PropEntry( UINT32 nId, const BYTE* pBuf, UINT32 nBufSize );
+ PropEntry( const PropEntry& rProp );
+ ~PropEntry() { delete mpBuf; } ;
+
+ const PropEntry& operator=(const PropEntry& rPropEntry);
+};
+
+PropEntry::PropEntry( UINT32 nId, const BYTE* pBuf, UINT32 nBufSize ) :
+ mnId ( nId ),
+ mnSize ( nBufSize ),
+ mpBuf ( new BYTE[ nBufSize ] )
+{
+ memcpy( (void*)mpBuf, (void*)pBuf, nBufSize );
+};
+
+PropEntry::PropEntry( const PropEntry& rProp ) :
+ mnId ( rProp.mnId ),
+ mnSize ( rProp.mnSize ),
+ mpBuf ( new BYTE[ mnSize ] )
+{
+ memcpy( (void*)mpBuf, (void*)rProp.mpBuf, mnSize );
+};
+
+const PropEntry& PropEntry::operator=(const PropEntry& rPropEntry)
+{
+ if ( this != &rPropEntry )
+ {
+ delete mpBuf;
+ mnId = rPropEntry.mnId;
+ mnSize = rPropEntry.mnSize;
+ mpBuf = new BYTE[ mnSize ];
+ memcpy( (void*)mpBuf, (void*)rPropEntry.mpBuf, mnSize );
+ }
+ return *this;
+}
+
+// -----------------------------------------------------------------------
+
+void PropItem::Clear()
+{
+ Seek( STREAM_SEEK_TO_BEGIN );
+ delete SwitchBuffer();
+}
+
+// -----------------------------------------------------------------------
+
+BOOL PropItem::Read( String& rString, UINT32 nStringType, BOOL bAlign )
+{
+ UINT32 nSize, nType, nPos;
+ BOOL bRetValue = FALSE;
+
+ nPos = Tell();
+
+ if ( nStringType == VT_EMPTY )
+ *this >> nType;
+ else
+ nType = nStringType & VT_TYPEMASK;
+
+ *this >> nSize;
+
+ switch( nType )
+ {
+ case VT_LPSTR :
+ {
+ if ( nSize )
+ {
+ // ignore codepage, we will read just UNICODE or ANSI
+ char* pString = new char[ nSize ];
+ SvMemoryStream::Read( pString, nSize );
+ if ( pString[ nSize - 1 ] == 0 )
+ {
+ if ( nSize > 1 )
+ rString = String( ByteString( pString ), RTL_TEXTENCODING_MS_1252 );
+ else
+ rString = String();
+ bRetValue = TRUE;
+ }
+ delete pString;
+ }
+ if ( bAlign )
+ SeekRel( ( 4 - ( nSize & 3 ) ) & 3 ); // dword align
+ }
+ break;
+
+ case VT_LPWSTR :
+ {
+ if ( nSize )
+ {
+ sal_Unicode* pString = new sal_Unicode[ nSize ];
+ for ( UINT32 i = 0; i < nSize; i++ )
+ *this >> pString[ i ];
+ if ( pString[ i - 1 ] == 0 )
+ {
+ if ( nSize > 1 )
+ rString = String( pString, nSize - 1 );
+ else
+ rString = String();
+ bRetValue = TRUE;
+ }
+ delete pString;
+ }
+ if ( bAlign && ( nSize & 1 ) )
+ SeekRel( 2 ); // dword align
+ }
+ break;
+ }
+ if ( !bRetValue )
+ Seek( nPos );
+ return bRetValue;
+}
+
+// -----------------------------------------------------------------------
+
+PropItem& PropItem::operator=( PropItem& rPropItem )
+{
+ if ( this != &rPropItem )
+ {
+ Seek( STREAM_SEEK_TO_BEGIN );
+ delete SwitchBuffer();
+
+ UINT32 nPos = rPropItem.Tell();
+ rPropItem.Seek( STREAM_SEEK_TO_END );
+ SvMemoryStream::Write( rPropItem.GetData(), rPropItem.Tell() );
+ rPropItem.Seek( nPos );
+ }
+ return *this;
+}
+
+// -----------------------------------------------------------------------
+
+struct Dict
+{
+ UINT32 mnId;
+ String aString;
+
+ Dict( UINT32 nId, String rString ) { mnId = nId; aString = rString; };
+};
+
+// -----------------------------------------------------------------------
+
+Dictionary::~Dictionary()
+{
+ for ( void* pPtr = First(); pPtr; pPtr = Next() )
+ delete (Dict*)pPtr;
+}
+
+// -----------------------------------------------------------------------
+
+void Dictionary::AddProperty( UINT32 nId, const String& rString )
+{
+ if ( rString.Len() ) // eindeutige namen bei properties
+ {
+ // pruefen, ob es die Propertybeschreibung in der Dictionary schon gibt
+ for ( Dict* pDict = (Dict*)First(); pDict; pDict = (Dict*)Next() )
+ {
+ if ( pDict->mnId == nId )
+ {
+ pDict->aString = rString;
+ return;
+ }
+ }
+ Insert( new Dict( nId, rString ), LIST_APPEND );
+ }
+}
+
+// -----------------------------------------------------------------------
+
+UINT32 Dictionary::GetProperty( const String& rString )
+{
+ for ( Dict* pDict = (Dict*)First(); pDict; pDict = (Dict*)Next() )
+ {
+ if ( pDict->aString == rString )
+ return pDict->mnId;
+ }
+ return 0;
+}
+
+// -----------------------------------------------------------------------
+
+Dictionary& Dictionary::operator=( Dictionary& rDictionary )
+{
+ if ( this != &rDictionary )
+ {
+ for ( void* pPtr = First(); pPtr; pPtr = Next() )
+ delete (Dict*)pPtr;
+
+ for ( pPtr = rDictionary.First(); pPtr; pPtr = rDictionary.Next() )
+ Insert( new Dict( ((Dict*)pPtr)->mnId, ((Dict*)pPtr)->aString ), LIST_APPEND );
+ }
+ return *this;
+}
+
+// -----------------------------------------------------------------------
+
+Section::Section( Section& rSection )
+{
+ for ( int i = 0; i < 16; i++ )
+ aFMTID[ i ] = rSection.aFMTID[ i ];
+ for ( PropEntry* pProp = (PropEntry*)rSection.First(); pProp; pProp = (PropEntry*)rSection.Next() )
+ Insert( new PropEntry( *pProp ), LIST_APPEND );
+}
+
+// -----------------------------------------------------------------------
+
+Section::Section( const BYTE* pFMTID )
+{
+ for ( int i = 0; i < 16; i++ )
+ aFMTID[ i ] = pFMTID[ i ];
+}
+
+// -----------------------------------------------------------------------
+
+BOOL Section::GetProperty( UINT32 nId, PropItem& rPropItem )
+{
+ if ( nId )
+ {
+ for ( PropEntry* pProp = (PropEntry*)First(); pProp; pProp = (PropEntry*)Next() )
+ {
+ if ( pProp->mnId == nId )
+ break;
+ }
+ if ( pProp )
+ {
+ rPropItem.Clear();
+ rPropItem.Write( pProp->mpBuf, pProp->mnSize );
+ rPropItem.Seek( STREAM_SEEK_TO_BEGIN );
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+
+// -----------------------------------------------------------------------
+
+void Section::AddProperty( UINT32 nId, const BYTE* pBuf, UINT32 nBufSize )
+{
+ // kleiner id check
+
+ if ( !nId )
+ return;
+ if ( nId == 0xffffffff )
+ nId = 0;
+
+ // keine doppelten PropId's zulassen, sortieren
+ for ( UINT32 i = 0; i < Count(); i++ )
+ {
+ PropEntry* pPropEntry = (PropEntry*)GetObject( i );
+ if ( pPropEntry->mnId == nId )
+ delete (PropEntry*)Replace( new PropEntry( nId, pBuf, nBufSize ), i );
+ else if ( pPropEntry->mnId > nId )
+ Insert( new PropEntry( nId, pBuf, nBufSize ), i );
+ else
+ continue;
+ return;
+ }
+ Insert( new PropEntry( nId, pBuf, nBufSize ), LIST_APPEND );
+}
+
+// -----------------------------------------------------------------------
+
+BOOL Section::GetDictionary( Dictionary& rDict )
+{
+ BOOL bRetValue = FALSE;
+
+ Dictionary aDict;
+
+ for ( PropEntry* pProp = (PropEntry*)First(); pProp; pProp = (PropEntry*)Next() )
+ {
+ if ( pProp->mnId == 0 )
+ break;
+ }
+ if ( pProp )
+ {
+ UINT32 nCount, nId, nSize, nPos;
+ SvMemoryStream aStream( (char*)pProp->mpBuf, pProp->mnSize, STREAM_READ );
+ aStream.Seek( STREAM_SEEK_TO_BEGIN );
+ aStream >> nCount;
+ for ( UINT32 i = 0; i < nCount; i++ )
+ {
+ aStream >> nId >> nSize;
+ if ( nSize )
+ {
+ String aString;
+ nPos = aStream.Tell();
+ char* pString = new char[ nSize ];
+ aStream.Read( pString, nSize );
+ if ( pString[ nSize - 2 ] )
+ aString = String( ByteString( pString, nSize - 1 ), RTL_TEXTENCODING_MS_1252 );
+ else if ( nSize ^ 1 )
+ {
+ nSize >>= 1;
+ aStream.Seek( nPos );
+ sal_Unicode* pWString = (sal_Unicode*)pString;
+ for ( i = 0; i < nSize; i++ )
+ aStream >> pWString[ i ];
+ aString = String( pWString, nSize - 1 );
+ }
+ delete pString;
+ if ( !aString.Len() )
+ break;
+ aDict.AddProperty( nId, aString );
+ }
+ bRetValue = TRUE;
+ }
+ }
+ rDict = aDict;
+ return bRetValue;
+}
+
+// -----------------------------------------------------------------------
+
+Section::~Section()
+{
+ for ( PropEntry* pProp = (PropEntry*)First(); pProp; pProp = (PropEntry*)Next() )
+ delete pProp;
+}
+
+// -----------------------------------------------------------------------
+
+void Section::Read( SvStorageStream *pStrm )
+{
+ UINT32 nSecOfs, nSecSize, nPropCount, nPropId, nPropOfs, nPropType, nPropSize, nCurrent, nVectorCount, nTemp;
+ nSecOfs = pStrm->Tell();
+ *pStrm >> nSecSize >> nPropCount;
+ while( nPropCount-- && ( pStrm->GetError() == ERRCODE_NONE ) )
+ {
+ *pStrm >> nPropId >> nPropOfs;
+ nCurrent = pStrm->Tell();
+ pStrm->Seek( nPropOfs + nSecOfs );
+ if ( nPropId ) // dictionary wird nicht eingelesen
+ {
+
+ *pStrm >> nPropType;
+
+ nPropSize = 4;
+
+ if ( nPropType & VT_VECTOR )
+ {
+ *pStrm >> nVectorCount;
+ nPropType &=~VT_VECTOR;
+ nPropSize += 4;
+ }
+ else
+ nVectorCount = 1;
+
+
+ BOOL bVariant = ( nPropType == VT_VARIANT );
+
+ for ( UINT32 i = 0; nPropSize && ( i < nVectorCount ); i++ )
+ {
+ if ( bVariant )
+ {
+ *pStrm >> nPropType;
+ nPropSize += 4;
+ }
+ switch( nPropType )
+ {
+ case VT_UI1 :
+ nPropSize++;
+ break;
+
+ case VT_I2 :
+ case VT_UI2 :
+ case VT_BOOL :
+ nPropSize += 2;
+ break;
+
+ case VT_I4 :
+ case VT_R4 :
+ case VT_UI4 :
+ case VT_ERROR :
+ nPropSize += 4;
+ break;
+
+ case VT_I8 :
+ case VT_R8 :
+ case VT_CY :
+ case VT_UI8 :
+ case VT_DATE :
+ case VT_FILETIME :
+ nPropSize += 8;
+ break;
+
+ case VT_BSTR :
+ *pStrm >> nTemp;
+ nPropSize += ( nTemp + 4 );
+ break;
+
+ case VT_LPSTR :
+ *pStrm >> nTemp;
+ nPropSize += ( nTemp + 4 );
+ break;
+
+ case VT_LPWSTR :
+ *pStrm >> nTemp;
+ nPropSize += ( nTemp << 1 ) + 4;
+ break;
+
+ case VT_BLOB_OBJECT :
+ case VT_BLOB :
+ case VT_CF :
+ *pStrm >> nTemp;
+ nPropSize += ( nTemp + 4 );
+ break;
+
+ case VT_CLSID :
+ case VT_STREAM :
+ case VT_STORAGE :
+ case VT_STREAMED_OBJECT :
+ case VT_STORED_OBJECT :
+ case VT_VARIANT :
+ case VT_VECTOR :
+ default :
+ nPropSize = 0;
+ }
+ if ( nPropSize )
+ {
+ if ( ( nVectorCount - i ) > 1 )
+ pStrm->Seek( nPropOfs + nSecOfs + nPropSize );
+ }
+ else
+ break;
+ }
+ if ( nPropSize )
+ {
+ pStrm->Seek( nPropOfs + nSecOfs );
+ BYTE* pBuf = new BYTE[ nPropSize ];
+ pStrm->Read( pBuf, nPropSize );
+ AddProperty( nPropId, pBuf, nPropSize );
+ delete pBuf;
+ }
+ }
+ else
+ {
+ UINT32 nDictCount, nSize;
+ *pStrm >> nDictCount;
+ for ( UINT32 i = 0; i < nDictCount; i++ )
+ {
+ *pStrm >> nSize >> nSize;
+ pStrm->SeekRel( nSize );
+ }
+ nSize = pStrm->Tell();
+ pStrm->Seek( nPropOfs + nSecOfs );
+ nSize -= pStrm->Tell();
+ BYTE* pBuf = new BYTE[ nSize ];
+ pStrm->Read( pBuf, nSize );
+ AddProperty( 0xffffffff, pBuf, nSize );
+ delete pBuf;
+ }
+ pStrm->Seek( nCurrent );
+ }
+ pStrm->Seek( nSecOfs + nSecSize );
+}
+
+// -----------------------------------------------------------------------
+
+Section& Section::operator=( Section& rSection )
+{
+ if ( this != &rSection )
+ {
+ memcpy( (void*)aFMTID, (void*)rSection.aFMTID, 16 );
+ for ( PropEntry* pProp = (PropEntry*)First(); pProp; pProp = (PropEntry*)Next() )
+ delete pProp;
+ Clear();
+ for ( pProp = (PropEntry*)rSection.First(); pProp; pProp = (PropEntry*)rSection.Next() )
+ Insert( new PropEntry( *pProp ), LIST_APPEND );
+ }
+ return *this;
+}
+
+// -----------------------------------------------------------------------
+
+PropRead::PropRead( SvStorage& rStorage, const String& rName ) :
+ mbStatus ( FALSE ),
+ mnByteOrder ( 0xfffe ),
+ mnFormat ( 0 ),
+ mnVersionLo ( 4 ),
+ mnVersionHi ( 2 )
+{
+ if ( rStorage.IsStream( rName ) )
+ {
+ mpSvStream = rStorage.OpenStream( rName, STREAM_STD_READ );
+ if ( mpSvStream )
+ {
+ mpSvStream->SetNumberFormatInt( NUMBERFORMAT_INT_LITTLEENDIAN );
+ memset( mApplicationCLSID, 0, 16 );
+ mbStatus = TRUE;
+ }
+ }
+}
+
+// -----------------------------------------------------------------------
+
+void PropRead::AddSection( Section& rSection )
+{
+ Insert( new Section( rSection ), LIST_APPEND );
+}
+
+// -----------------------------------------------------------------------
+
+const Section* PropRead::GetSection( const BYTE* pFMTID )
+{
+ for ( Section* pSection = (Section*)First(); pSection; pSection = (Section*)Next() )
+ {
+ if ( memcmp( pSection->GetFMTID(), pFMTID, 16 ) == 0 )
+ break;
+ }
+ return pSection;
+}
+
+// -----------------------------------------------------------------------
+
+PropRead::~PropRead()
+{
+ for ( Section* pSection = (Section*)First(); pSection; pSection = (Section*)Next() )
+ delete pSection;
+}
+
+// -----------------------------------------------------------------------
+
+void PropRead::Read()
+{
+ for ( Section* pSection = (Section*)First(); pSection; pSection = (Section*)Next() )
+ delete pSection;
+ Clear();
+ if ( mbStatus )
+ {
+ UINT32 nSections;
+ UINT32 nSectionOfs;
+ UINT32 nCurrent;
+ BYTE* pSectCLSID = new BYTE[ 16 ];
+ *mpSvStream >> mnByteOrder >> mnFormat >> mnVersionLo >> mnVersionHi;
+ mpSvStream->Read( mApplicationCLSID, 16 );
+ *mpSvStream >> nSections;
+ for ( UINT32 i = 0; i < nSections; i++ )
+ {
+ mpSvStream->Read( pSectCLSID, 16 );
+ *mpSvStream >> nSectionOfs;
+ nCurrent = mpSvStream->Tell();
+ mpSvStream->Seek( nSectionOfs );
+ Section aSection( pSectCLSID );
+ aSection.Read( mpSvStream );
+ AddSection( aSection );
+ mpSvStream->Seek( nCurrent );
+ }
+ delete pSectCLSID;
+ }
+}
+
+// -----------------------------------------------------------------------
+
+PropRead& PropRead::operator=( PropRead& rPropRead )
+{
+ if ( this != &rPropRead )
+ {
+ mbStatus = rPropRead.mbStatus;
+ mpSvStream = rPropRead.mpSvStream;
+
+ mnByteOrder = rPropRead.mnByteOrder;
+ mnFormat = rPropRead.mnFormat;
+ mnVersionLo = rPropRead.mnVersionLo;
+ mnVersionHi = rPropRead.mnVersionHi;
+ memcpy( mApplicationCLSID, rPropRead.mApplicationCLSID, 16 );
+
+ for ( Section* pSection = (Section*)First(); pSection; pSection = (Section*)Next() )
+ delete pSection;
+ Clear();
+ for ( pSection = (Section*)rPropRead.First(); pSection; pSection = (Section*)rPropRead.Next() )
+ Insert( new Section( *pSection ), LIST_APPEND );
+ }
+ return *this;
+}
diff --git a/sd/source/filter/propread.hxx b/sd/source/filter/propread.hxx
new file mode 100644
index 000000000000..019fc612fbc3
--- /dev/null
+++ b/sd/source/filter/propread.hxx
@@ -0,0 +1,231 @@
+/*************************************************************************
+ *
+ * $RCSfile: propread.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:45 $
+ *
+ * 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 _PROPREAD_HXX_
+#define _PROPREAD_HXX_
+
+#ifndef _SOLAR_H
+#include
+#endif
+#ifndef _SVSTOR_HXX
+#include
+#endif
+#ifndef _SV_GEN_HXX
+#include
+#endif
+#ifndef _LIST_HXX
+#include
+#endif
+#ifndef _STREAM_HXX
+#include
+#endif
+#ifndef _DATETIME_HXX
+#include
+#endif
+
+#include
+
+// SummaryInformation
+#define PID_TITLE 0x02
+#define PID_SUBJECT 0x03
+#define PID_AUTHOR 0x04
+#define PID_KEYWORDS 0x05
+#define PID_COMMENTS 0x06
+#define PID_TEMPLATE 0x07
+#define PID_LASTAUTHOR 0x08
+#define PID_REVNUMBER 0x09
+#define PID_EDITTIME 0x0a
+#define PID_LASTPRINTED_DTM 0x0b
+#define PID_CREATE_DTM 0x0c
+#define PID_LASTSAVED_DTM 0x0d
+
+// DocumentSummaryInformation
+#define PID_CATEGORY 0x02
+#define PID_PRESFORMAT 0x03
+#define PID_BYTECOUNT 0x04
+#define PID_LINECOUNT 0x05
+#define PID_PARACOUNT 0x06
+#define PID_SLIDECOUNT 0x07
+#define PID_NOTECOUNT 0x08
+#define PID_HIDDENCOUNT 0x09
+#define PID_MMCLIPCOUNT 0x0a
+#define PID_SCALE 0x0b
+#define PID_HEADINGPAIR 0x0c
+#define PID_DOCPARTS 0x0d
+#define PID_MANAGER 0x0e
+#define PID_COMPANY 0x0f
+#define PID_LINKSDIRTY 0x10
+
+#define VT_EMPTY 0
+#define VT_NULL 1
+#define VT_I2 2
+#define VT_I4 3
+#define VT_R4 4
+#define VT_R8 5
+#define VT_CY 6
+#define VT_DATE 7
+#define VT_BSTR 8
+#define VT_UI4 9
+#define VT_ERROR 10
+#define VT_BOOL 11
+#define VT_VARIANT 12
+#define VT_DECIMAL 14
+#define VT_I1 16
+#define VT_UI1 17
+#define VT_UI2 18
+#define VT_I8 20
+#define VT_UI8 21
+#define VT_INT 22
+#define VT_UINT 23
+#define VT_LPSTR 30
+#define VT_LPWSTR 31
+#define VT_FILETIME 64
+#define VT_BLOB 65
+#define VT_STREAM 66
+#define VT_STORAGE 67
+#define VT_STREAMED_OBJECT 68
+#define VT_STORED_OBJECT 69
+#define VT_BLOB_OBJECT 70
+#define VT_CF 71
+#define VT_CLSID 72
+#define VT_VECTOR 0x1000
+#define VT_ARRAY 0x2000
+#define VT_BYREF 0x4000
+#define VT_TYPEMASK 0xFFF
+
+// ------------------------------------------------------------------------
+
+class PropItem : public SvMemoryStream
+{
+ public :
+ PropItem(){};
+ void Clear();
+
+ BOOL Read( String& rString, UINT32 nType = VT_EMPTY, BOOL bDwordAlign = TRUE );
+ PropItem& operator=( PropItem& rPropItem );
+};
+
+// ------------------------------------------------------------------------
+
+class Dictionary : protected List
+{
+ friend class Section;
+
+ void AddProperty( UINT32 nId, const String& rString );
+
+ public :
+ Dictionary(){};
+ ~Dictionary();
+ Dictionary& operator=( Dictionary& rDictionary );
+ UINT32 GetProperty( const String& rPropName );
+};
+
+// ------------------------------------------------------------------------
+
+class Section : private List
+{
+
+ protected:
+
+ BYTE aFMTID[ 16 ];
+
+ void AddProperty( UINT32 nId, const BYTE* pBuf, UINT32 nBufSize );
+
+ public:
+ Section( const BYTE* pFMTID );
+ Section( Section& rSection );
+ ~Section();
+
+ Section& operator=( Section& rSection );
+ BOOL GetProperty( UINT32 nId, PropItem& rPropItem );
+ BOOL GetDictionary( Dictionary& rDict );
+ const BYTE* GetFMTID() const { return aFMTID; };
+ void Read( SvStorageStream* pStrm );
+};
+
+// ------------------------------------------------------------------------
+
+class PropRead : private List
+{
+ BOOL mbStatus;
+ SvStorageStream* mpSvStream;
+
+ UINT16 mnByteOrder;
+ UINT16 mnFormat;
+ UINT16 mnVersionLo;
+ UINT16 mnVersionHi;
+ BYTE mApplicationCLSID[ 16 ];
+
+ void AddSection( Section& rSection );
+
+ public:
+ PropRead( SvStorage& rSvStorage, const String& rName );
+ ~PropRead();
+
+ PropRead& operator=( PropRead& rPropRead );
+ const Section* GetSection( const BYTE* pFMTID );
+ BOOL IsValid() const { return mbStatus; };
+ void Read();
+};
+
+
+#endif
+
diff --git a/sd/source/filter/xml/makefile.mk b/sd/source/filter/xml/makefile.mk
new file mode 100644
index 000000000000..365fedc267cf
--- /dev/null
+++ b/sd/source/filter/xml/makefile.mk
@@ -0,0 +1,83 @@
+#*************************************************************************
+#
+# $RCSfile: makefile.mk,v $
+#
+# $Revision: 1.1.1.1 $
+#
+# last change: $Author: hr $ $Date: 2000-09-18 16:48:45 $
+#
+# 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): _______________________________________
+#
+#
+#
+#*************************************************************************
+
+PRJ=..$/..$/..
+PRJNAME=sd
+TARGET=xml
+ENABLE_EXCEPTIONS=TRUE
+
+# --- Settings -----------------------------------------------------
+
+.INCLUDE : svpre.mk
+.INCLUDE : settings.mk
+.INCLUDE : sv.mk
+.INCLUDE : $(PRJ)$/util$/makefile.pmk
+
+# --- Files --------------------------------------------------------
+
+SLOFILES = \
+ $(SLO)$/sdxmlwrp.obj
+
+# --- Targets --------------------------------------------------------------
+
+.INCLUDE : target.mk
+
diff --git a/sd/source/filter/xml/sdxmlwrp.cxx b/sd/source/filter/xml/sdxmlwrp.cxx
new file mode 100644
index 000000000000..ff8fb83df3ca
--- /dev/null
+++ b/sd/source/filter/xml/sdxmlwrp.cxx
@@ -0,0 +1,328 @@
+/*************************************************************************
+ *
+ * $RCSfile: sdxmlwrp.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 16:48:45 $
+ *
+ * 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): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#pragma hdrstop
+
+#ifndef _SFXDOCFILE_HXX
+#include
+#endif
+
+#ifndef _SDXMLWRP_HXX
+#include "sdxmlwrp.hxx"
+#endif
+
+#ifndef _SDXMLIMP_HXX
+#include
+#endif
+
+#ifndef _SDXMLEXP_HXX
+#include
+#endif
+
+#ifndef _DRAWDOC_HXX
+#include "drawdoc.hxx"
+#endif
+
+#ifndef _UNO_MAPPING_HXX_
+#include //! only necessary until SfxMedium has a uno3 DataSource / DataSink
+#endif
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+#ifndef _COM_SUN_STAR_LANG_XSERVICEINFO_HPP_
+#include
+#endif
+
+#ifndef _UNOTOOLS_PROCESSFACTORY_HXX_
+#include
+#endif
+
+#include
+
+using namespace com::sun::star;
+using namespace rtl;
+
+//////////////////////////////////////////////////////////////////////////////
+
+char __READONLY_DATA sXML_draw[] = "draw";
+char __READONLY_DATA sXML_impress[] = "presentation";
+
+//////////////////////////////////////////////////////////////////////////////
+
+SdXMLWrapper::SdXMLWrapper(
+ uno::Reference& xRef,
+ SfxMedium& rMedium,
+ BOOL bIsDraw, BOOL bShowProg)
+: mxLocalModel(xRef),
+ mrMedium(rMedium),
+ mbIsDraw(bIsDraw),
+ mbShowProgress(bShowProg)
+{
+}
+
+BOOL SdXMLWrapper::Import()
+{
+ if(!mxLocalModel.is())
+ {
+ DBG_ERROR("Got NO Model in XMLImport");
+ return FALSE;
+ }
+
+ uno::Reference xServiceInfo(mxLocalModel, uno::UNO_QUERY);
+ if(!xServiceInfo.is() || !xServiceInfo->supportsService(OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.drawing.DrawingDocument"))))
+ {
+ DBG_ERROR("Model is no DrawingDocument in XMLImport");
+ return FALSE;
+ }
+
+ uno::Reference xServiceFactory(utl::getProcessServiceFactory());
+ if(!xServiceFactory.is())
+ {
+ DBG_ERROR("XMLReader::Read: got no service manager");
+ return FALSE;
+ }
+
+ // Get data source ...
+ uno::Reference xSource = mrMedium.GetDataSource();
+
+ if(!xSource.is())
+ {
+// // If we didn't get a data source from a medium, we have to create one
+// XInterfaceRef xFactory = xServiceFactory->createInstance(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.frame.DataSourceFactory"));
+// if(xFactory.is())
+// {
+// XMultiServiceFactoryRef xMFactory(xFactory, USR_QUERY);
+//
+// if(xMFactory.is())
+// {
+// UString sURL(S2WS(mrMedium.GetName()));
+// Sequence aArgs(1);
+// Any* pArgs = aArgs.getArray();
+//
+// pArgs->setString(sURL);
+//
+// XInterfaceRef xSrc = xMFactory->createInstanceWithArguments(sURL, aArgs);
+//
+// if(xSrc.is())
+// {
+// xSrc->queryInterface(XActiveDataSource::getSmartUik(), xSource);
+// }
+// }
+// }
+ }
+
+ // get data source
+ if(!xSource.is())
+ {
+ DBG_ERROR("XMLReader::Read: data source missing");
+ return FALSE;
+ }
+
+ // get parser
+ uno::Reference xXMLParser(xServiceFactory->createInstance(
+ OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.xml.sax.Parser"))));
+ if(!xXMLParser.is())
+ {
+ DBG_ERROR("com.sun.star.xml.sax.Parser service missing");
+ return FALSE;
+ }
+
+ // get a pipe for connecting the data source to the parser
+ uno::Reference xPipe(xServiceFactory->createInstance(
+ OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.io.Pipe"))));
+ if(!xPipe.is())
+ {
+ DBG_ERROR("com.sun.star.io.Pipe service missing");
+ return FALSE;
+ }
+
+ UINT16 nStyleFamilyMask(0);
+ BOOL bLoadDoc(TRUE);
+
+// this is stuff for loading only styles or add-load documents, needed later
+// USHORT nStyleFamilyMask = SFX_STYLE_FAMILY_ALL;
+// BOOL bInsert;
+// if( aOpt.IsFmtsOnly() )
+// {
+// bLoadDoc = FALSE;
+// bInsert = aOpt.IsMerge();
+// nStyleFamilyMask = 0U;
+// if( aOpt.IsFrmFmts() )
+// nStyleFamilyMask |= SFX_STYLE_FAMILY_FRAME;
+// if( aOpt.IsPageDescs() )
+// nStyleFamilyMask |= SFX_STYLE_FAMILY_PAGE;
+// if( aOpt.IsTxtFmts() )
+// nStyleFamilyMask |= (SFX_STYLE_FAMILY_CHAR|SFX_STYLE_FAMILY_PARA);
+// if( aOpt.IsNumRules() )
+// nStyleFamilyMask |= SFX_STYLE_FAMILY_PSEUDO;
+// }
+// else
+// {
+// bLoadDoc = TRUE;
+// bInsert = bInsertMode;
+// nStyleFamilyMask = SFX_STYLE_FAMILY_ALL;
+// }
+// aOpt.ResetAllFmtsOnly();
+
+ // get filter
+ uno::Reference xFilter =
+ new SdXMLImport(mxLocalModel, bLoadDoc, nStyleFamilyMask, mbShowProgress, IsDraw());
+
+ // connect pipe's output stream to the data source
+ uno::Reference xPipeOutput(xPipe, uno::UNO_QUERY);
+ xSource->setOutputStream(xPipeOutput);
+
+ // connect pipe's input stream to the parser
+ xml::sax::InputSource aParserInput;
+ uno::Reference